{"version":3,"file":"6589.js","mappings":"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","sources":["webpack://sakurairo-scripts/./node_modules/.pnpm/color-space@2.0.1/node_modules/color-space/xyz.js","webpack://sakurairo-scripts/./node_modules/.pnpm/color-space@2.0.1/node_modules/color-space/lab.js","webpack://sakurairo-scripts/./node_modules/.pnpm/@kotorik+palette@3.0.4/node_modules/@kotorik/palette/dist/index.js","webpack://sakurairo-scripts/./node_modules/.pnpm/@kotorik+promise-worker@0.1.0/node_modules/@kotorik/promise-worker/dist/register.mjs","webpack://sakurairo-scripts/./src/app/theme-color/calc.ts"],"sourcesContent":["/**\n * CIE XYZ\n *\n * @module  color-space/xyz\n */\nimport rgb from './rgb.js';\n\nvar xyz = {\n\tname: 'xyz',\n\tmin: [0,0,0],\n\tchannel: ['X','Y','Z'],\n\talias: ['XYZ', 'ciexyz', 'cie1931']\n};\n\n\n/**\n * Whitepoint reference values with observer/illuminant\n *\n * http://en.wikipedia.org/wiki/Standard_illuminant\n */\nxyz.whitepoint = {\n\t//1931 2°\n\t2: {\n\t\t//incadescent\n\t\tA:[109.85, 100, 35.585],\n\t\t// B:[],\n\t\tC: [98.074, 100, 118.232],\n\t\tD50: [96.422, 100, 82.521],\n\t\tD55: [95.682, 100, 92.149],\n\t\t//daylight\n\t\tD65: [95.045592705167, 100, 108.9057750759878],\n\t\tD75: [94.972, 100, 122.638],\n\t\t//flourescent\n\t\t// F1: [],\n\t\tF2: [99.187, 100, 67.395],\n\t\t// F3: [],\n\t\t// F4: [],\n\t\t// F5: [],\n\t\t// F6:[],\n\t\tF7: [95.044, 100, 108.755],\n\t\t// F8: [],\n\t\t// F9: [],\n\t\t// F10: [],\n\t\tF11: [100.966, 100, 64.370],\n\t\t// F12: [],\n\t\tE: [100,100,100]\n\t},\n\n\t//1964  10°\n\t10: {\n\t\t//incadescent\n\t\tA:[111.144, 100, 35.200],\n\t\tC: [97.285, 100, 116.145],\n\t\tD50: [96.720, 100, 81.427],\n\t\tD55: [95.799, 100, 90.926],\n\t\t//daylight\n\t\tD65: [94.811, 100, 107.304],\n\t\tD75: [94.416, 100, 120.641],\n\t\t//flourescent\n\t\tF2: [103.280, 100, 69.026],\n\t\tF7: [95.792, 100, 107.687],\n\t\tF11: [103.866, 100, 65.627],\n\t\tE: [100,100,100]\n\t}\n};\n\n\n/**\n * Top values are the whitepoint’s top values, default are D65\n */\nxyz.max = xyz.whitepoint[2].D65;\n\n\n/**\n * Transform xyz to rgb\n *\n * @param {Array} xyz Array of xyz values\n *\n * @return {Array} RGB values\n */\nxyz.rgb = function (_xyz, white) {\n\t//FIXME: make sure we have to divide like this. Probably we have to replace matrix as well then\n\twhite = white || xyz.whitepoint[2].E;\n\n\tvar x = _xyz[0] / white[0],\n\t\ty = _xyz[1] / white[1],\n\t\tz = _xyz[2] / white[2],\n\t\tr, g, b;\n\n\t// assume sRGB\n\t// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\tr = (x * 3.240969941904521) + (y * -1.537383177570093) + (z * -0.498610760293);\n\tg = (x * -0.96924363628087) + (y * 1.87596750150772) + (z * 0.041555057407175);\n\tb = (x * 0.055630079696993) + (y * -0.20397695888897) + (z * 1.056971514242878);\n\n\tr = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r = (r * 12.92);\n\n\tg = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g = (g * 12.92);\n\n\tb = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b = (b * 12.92);\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n}\n\n\n\n/**\n * RGB to XYZ\n *\n * @param {Array} rgb RGB channels\n *\n * @return {Array} XYZ channels\n */\nrgb.xyz = function(rgb, white) {\n\tvar r = rgb[0] / 255,\n\t\t\tg = rgb[1] / 255,\n\t\t\tb = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.41239079926595) + (g * 0.35758433938387) + (b * 0.18048078840183);\n\tvar y = (r * 0.21263900587151) + (g * 0.71516867876775) + (b * 0.072192315360733);\n\tvar z = (r * 0.019330818715591) + (g * 0.11919477979462) + (b * 0.95053215224966);\n\n\twhite = white || xyz.whitepoint[2].E;\n\n\treturn [x * white[0], y * white[1], z * white[2]];\n};\n\n\n\nexport default xyz;\n","/**\n * CIE LAB space model\n *\n * @module color-space/lab\n */\n\nimport xyz from './xyz.js';\n\nexport default {\n\tname: 'lab',\n\tmin: [0,-100,-100],\n\tmax: [100,100,100],\n\tchannel: ['lightness', 'a', 'b'],\n\talias: ['LAB', 'cielab'],\n\n\txyz: function(lab) {\n\t\tvar l = lab[0],\n\t\t\t\ta = lab[1],\n\t\t\t\tb = lab[2],\n\t\t\t\tx, y, z, y2;\n\n\t\tif (l <= 8) {\n\t\t\ty = (l * 100) / 903.3;\n\t\t\ty2 = (7.787 * (y / 100)) + (16 / 116);\n\t\t} else {\n\t\t\ty = 100 * Math.pow((l + 16) / 116, 3);\n\t\t\ty2 = Math.pow(y / 100, 1/3);\n\t\t}\n\n\t\tx = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n\t\tz = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n\t\treturn [x, y, z];\n\t}\n};\n\n\n//extend xyz\nxyz.lab = function(xyz){\n\tvar x = xyz[0],\n\t\t\ty = xyz[1],\n\t\t\tz = xyz[2],\n\t\t\tl, a, b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n","import rgb from 'color-space/rgb.js';\nimport xyz from 'color-space/xyz.js';\nimport lab from 'color-space/lab.js';\n\nfunction _filled_array(fillWith, count) {\n  const array = [];\n  for (let i = 0; i < count; i++) {\n    array.push(fillWith);\n  }\n  return array;\n}\nfunction euclidean_distance_squared_index(a, a_start, b) {\n  const r = a[a_start++] - b[0];\n  const g = a[a_start++] - b[1];\n  const _b = a[a_start++] - b[2];\n  return r ** 2 + g ** 2 + _b ** 2;\n}\nfunction kmeans(data, k, maxAttempt, thresold = 2, clipAlpha = false) {\n  const cluster_sum = [];\n  const thresold_squared = thresold ** 2;\n  let pixelCount = data.length / 4;\n  let cluster_centers = [];\n  let new_cluster_centers = [];\n  let iteration = 0;\n  const isDataTypedArray = data instanceof Uint8ClampedArray;\n  const PIXEL_LEN = clipAlpha ? 3 : 4;\n  if (clipAlpha) {\n    let j = 0;\n    const dataNoAlpha = isDataTypedArray ? new Uint8ClampedArray(pixelCount * 3) : [];\n    for (let i = 0; i < data.length; ) {\n      if (data[i + 3] == 0) {\n        i += 4;\n        continue;\n      }\n      dataNoAlpha[j++] = data[i++];\n      dataNoAlpha[j++] = data[i++];\n      dataNoAlpha[j++] = data[i++];\n      i++;\n    }\n    data = dataNoAlpha.slice(0, j);\n    pixelCount = j / 3;\n  }\n  for (let i = 0; i < k; i++) {\n    const start = Math.floor(1 * (pixelCount - 1)) * PIXEL_LEN;\n    cluster_centers.push(\n      /* Array.from */\n      data.slice(start, start + 3)\n    );\n    new_cluster_centers.push(isDataTypedArray ? new Uint8ClampedArray(3) : _filled_array(0, 3));\n    cluster_sum.push(_filled_array(0, 4));\n  }\n  while (iteration < maxAttempt) {\n    for (let i = 0; i < data.length; ) {\n      let cluster_index = 0;\n      let _min_distance = euclidean_distance_squared_index(data, i, cluster_centers[0]);\n      for (let j = 1; j < k; j++) {\n        const distance = euclidean_distance_squared_index(data, i, cluster_centers[j]);\n        if (distance < _min_distance) {\n          _min_distance = distance;\n          cluster_index = j;\n        }\n      }\n      const sum = cluster_sum[cluster_index];\n      sum[0] += data[i++];\n      sum[1] += data[i++];\n      sum[2] += data[i++];\n      sum[3]++;\n      if (PIXEL_LEN === 4) i++;\n    }\n    let allStabled = true;\n    for (let i = 0; i < k; i++) {\n      const rgbc = cluster_sum[i];\n      const count = rgbc[3];\n      if (count == 0) {\n        const start = Math.floor(Math.random() * (pixelCount - 1)) * PIXEL_LEN;\n        new_cluster_centers[i] = /* Array.from */\n        data.slice(start, start + 3);\n        allStabled = false;\n      } else {\n        let new_center = new_cluster_centers[i];\n        let diffSquared = 0;\n        for (let j = 0; j < 3; j++) {\n          new_center[j] = rgbc[j] / count;\n          diffSquared += (new_center[j] - cluster_centers[i][j]) ** 2;\n        }\n        if (diffSquared > thresold_squared) {\n          allStabled = false;\n        }\n      }\n    }\n    if (allStabled) {\n      return {\n        centroid: new_cluster_centers,\n        iteration,\n        fit: true,\n        label: cluster_sum.map((v) => v[3]),\n        size: pixelCount\n      };\n    }\n    const medium = cluster_centers;\n    cluster_centers = new_cluster_centers;\n    new_cluster_centers = medium;\n    iteration++;\n    for (let i = 0; i < k; i++) {\n      cluster_sum[i].fill(0);\n    }\n  }\n  return {\n    centroid: cluster_centers,\n    iteration,\n    fit: false,\n    label: cluster_sum.map((v) => v[3]),\n    size: pixelCount\n  };\n}\n\n/**\n * NeuQuant Neural-Network Quantization Algorithm\n *\n * Copyright (c) 1994 Anthony Dekker\n *\n * See \"Kohonen neural networks for optimal colour quantization\" in \"Network:\n * Computation in Neural Systems\" Vol. 5 (1994) pp 351-367. for a discussion of\n * the algorithm.\n *\n * See also http://members.ozemail.com.au/~dekker/NEUQUANT.HTML\n *\n * Any party obtaining a copy of these files from the author, directly or\n * indirectly, is granted, free of charge, a full and unrestricted irrevocable,\n * world-wide, paid up, royalty-free, nonexclusive right and license to deal in\n * this software and documentation files (the \"Software\"), including without\n * limitation the rights to use, copy, modify, merge, publish, distribute,\n * sublicense, and/or sell copies of the Software, and to permit persons who\n * receive copies from any such party to do so, with the only requirement being\n * that this copyright notice remain intact.\n *\n * Copyright (c) 2012 Johan Nordberg (JavaScript port)\n * Copyright (c) 2014 Devon Govett (JavaScript port)\n */\n\nconst prime1 = 499;\nconst prime2 = 491;\nconst prime3 = 487;\nconst prime4 = 503;\n\nconst maxprime = Math.max(prime1, prime2, prime3, prime4);\nconst minpicturebytes = (3 * maxprime);\n\nconst defaults = {\n  ncycles: 100,\n  netsize: 256,\n  samplefac: 10\n};\n\nconst assign = function (target) {\n  for (let i = 1, l = arguments.length; i < l; i++) {\n    const nextSource = arguments[i];\n    if (nextSource != null) {\n      for (const nextKey in nextSource) {\n        if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n          target[nextKey] = nextSource[nextKey];\n        }\n      }\n    }\n  }\n  return target\n};\n\nclass NeuQuant {\n  constructor (pixels, options) {\n    assign(this, defaults, {pixels}, options);\n\n    if (this.netsize < 4 || this.netsize > 256) {\n      throw new Error('Color count must be between 4 and 256')\n    }\n\n    if (this.samplefac < 1 || this.samplefac > 30) {\n      throw new Error('Sampling factor must be between 1 and 30')\n    }\n\n    this.maxnetpos = this.netsize - 1;\n\n    this.netbiasshift = 4;\n    this.intbiasshift = 16;\n    this.intbias = (1 << this.intbiasshift);\n    this.gammashift = 10;\n    this.gamma = (1 << this.gammashift);\n    this.betashift = 10;\n    this.beta = (this.intbias >> this.betashift);\n    this.betagamma = (this.beta * this.gamma);\n\n    this.initrad = (this.netsize >> 3);\n    this.radiusbiasshift = 6;\n    this.radiusbias = (1 << this.radiusbiasshift);\n    this.initradius = (this.initrad * this.radiusbias);\n    this.radiusdec = 30;\n\n    this.alphabiasshift = 10;\n    this.initalpha = (1 << this.alphabiasshift);\n\n    this.radbiasshift = 8;\n    this.radbias = (1 << this.radbiasshift);\n    this.alpharadbshift = (this.alphabiasshift + this.radbiasshift);\n    this.alpharadbias = (1 << this.alpharadbshift);\n\n    this.network = [];\n    this.netindex = new Uint32Array(256);\n    this.bias = new Uint32Array(this.netsize);\n    this.freq = new Uint32Array(this.netsize);\n    this.radpower = new Uint32Array(this.netsize >> 3);\n\n    for (let i = 0, l = this.netsize; i < l; i++) {\n      let v = (i << (this.netbiasshift + 8)) / this.netsize;\n      this.network[i] = new Float64Array([v, v, v, 0]);\n      this.freq[i] = this.intbias / this.netsize;\n      this.bias[i] = 0;\n    }\n  }\n\n  unbiasnet () {\n    for (let i = 0, l = this.netsize; i < l; i++) {\n      this.network[i][0] >>= this.netbiasshift;\n      this.network[i][1] >>= this.netbiasshift;\n      this.network[i][2] >>= this.netbiasshift;\n      this.network[i][3] = i;\n    }\n  }\n\n  altersingle (alpha, i, b, g, r) {\n    this.network[i][0] -= (alpha * (this.network[i][0] - b)) / this.initalpha;\n    this.network[i][1] -= (alpha * (this.network[i][1] - g)) / this.initalpha;\n    this.network[i][2] -= (alpha * (this.network[i][2] - r)) / this.initalpha;\n  }\n\n  alterneigh (radius, i, b, g, r) {\n    const lo = Math.abs(i - radius);\n    const hi = Math.min(i + radius, this.netsize);\n\n    let j = i + 1;\n    let k = i - 1;\n    let m = 1;\n\n    while ((j < hi) || (k > lo)) {\n      const a = this.radpower[m++];\n\n      if (j < hi) {\n        const p = this.network[j++];\n        p[0] -= (a * (p[0] - b)) / this.alpharadbias;\n        p[1] -= (a * (p[1] - g)) / this.alpharadbias;\n        p[2] -= (a * (p[2] - r)) / this.alpharadbias;\n      }\n\n      if (k > lo) {\n        const p = this.network[k--];\n        p[0] -= (a * (p[0] - b)) / this.alpharadbias;\n        p[1] -= (a * (p[1] - g)) / this.alpharadbias;\n        p[2] -= (a * (p[2] - r)) / this.alpharadbias;\n      }\n    }\n  }\n\n  contest (b, g, r) {\n    let bestd = ~(1 << 31);\n    let bestbiasd = bestd;\n    let bestpos = -1;\n    let bestbiaspos = bestpos;\n\n    for (let i = 0, l = this.netsize; i < l; i++) {\n      let n = this.network[i];\n\n      let dist = Math.abs(n[0] - b) + Math.abs(n[1] - g) + Math.abs(n[2] - r);\n      if (dist < bestd) {\n        bestd = dist;\n        bestpos = i;\n      }\n\n      let biasdist = dist - ((this.bias[i]) >> (this.intbiasshift - this.netbiasshift));\n      if (biasdist < bestbiasd) {\n        bestbiasd = biasdist;\n        bestbiaspos = i;\n      }\n\n      let betafreq = (this.freq[i] >> this.betashift);\n      this.freq[i] -= betafreq;\n      this.bias[i] += (betafreq << this.gammashift);\n    }\n\n    this.freq[bestpos] += this.beta;\n    this.bias[bestpos] -= this.betagamma;\n\n    return bestbiaspos\n  }\n\n  inxbuild () {\n    let previouscol = 0;\n    let startpos = 0;\n\n    for (let i = 0, l = this.netsize; i < l; i++) {\n      let p = this.network[i];\n      let q = null;\n      let smallpos = i;\n      let smallval = p[1];\n\n      for (let j = i + 1; j < l; j++) {\n        q = this.network[j];\n        if (q[1] < smallval) {\n          smallpos = j;\n          smallval = q[1];\n        }\n      }\n      q = this.network[smallpos];\n\n      if (i !== smallpos) {\n        [p[0], q[0]] = [q[0], p[0]];\n        [p[1], q[1]] = [q[1], p[1]];\n        [p[2], q[2]] = [q[2], p[2]];\n        [p[3], q[3]] = [q[3], p[3]];\n      }\n\n      if (smallval !== previouscol) {\n        this.netindex[previouscol] = (startpos + i) >> 1;\n        for (let j = previouscol + 1; j < smallval; j++) {\n          this.netindex[j] = i;\n        }\n        previouscol = smallval;\n        startpos = i;\n      }\n    }\n\n    this.netindex[previouscol] = (startpos + this.maxnetpos) >> 1;\n    for (let i = previouscol + 1; i < 256; i++) {\n      this.netindex[i] = this.maxnetpos;\n    }\n  }\n\n  learn () {\n    const lengthcount = this.pixels.length;\n    const alphadec = 30 + ((this.samplefac - 1) / 3);\n    const samplepixels = lengthcount / (3 * this.samplefac);\n\n    let delta = samplepixels / this.ncycles | 0;\n    let alpha = this.initalpha;\n    let radius = this.initradius;\n\n    let rad = radius >> this.radiusbiasshift;\n\n    if (rad <= 1) {\n      rad = 0;\n    }\n\n    for (let i = 0; i < rad; i++) {\n      this.radpower[i] = alpha * (((rad * rad - i * i) * this.radbias) / (rad * rad));\n    }\n\n    let step;\n    if (lengthcount < minpicturebytes) {\n      this.samplefac = 1;\n      step = 3;\n    } else if ((lengthcount % prime1) !== 0) {\n      step = 3 * prime1;\n    } else if ((lengthcount % prime2) !== 0) {\n      step = 3 * prime2;\n    } else if ((lengthcount % prime3) !== 0) {\n      step = 3 * prime3;\n    } else {\n      step = 3 * prime4;\n    }\n\n    let pix = 0;\n\n    for (let i = 0; i < samplepixels;) {\n      let b = (this.pixels[pix] & 0xff) << this.netbiasshift;\n      let g = (this.pixels[pix + 1] & 0xff) << this.netbiasshift;\n      let r = (this.pixels[pix + 2] & 0xff) << this.netbiasshift;\n\n      let j = this.contest(b, g, r);\n      this.altersingle(alpha, j, b, g, r);\n      if (rad !== 0) {\n        this.alterneigh(rad, j, b, g, r);\n      }\n\n      pix += step;\n      if (pix >= lengthcount) {\n        pix -= lengthcount;\n      }\n\n      if (delta === 0) {\n        delta = 1;\n      }\n\n      if (++i % delta === 0) {\n        alpha -= alpha / alphadec;\n        radius -= radius / this.radiusdec;\n        rad = radius >> this.radiusbiasshift;\n\n        if (rad <= 1) {\n          rad = 0;\n        }\n\n        for (let k = 0; k < rad; k++) {\n          this.radpower[k] = alpha * (((rad * rad - k * k) * this.radbias) / (rad * rad));\n        }\n      }\n    }\n  }\n\n  buildColorMap () {\n    this.learn();\n    this.unbiasnet();\n    this.inxbuild();\n  }\n\n  getColorMap () {\n    const map = new Uint8Array(this.netsize * 3);\n    const index = new Uint8Array(this.netsize);\n\n    for (let i = 0, l = this.netsize; i < l; i++) {\n      index[this.network[i][3]] = i;\n    }\n\n    for (let i = 0, j = 0, k = 0, l = this.netsize; i < l; i++) {\n      k = index[i];\n      map[j++] = this.network[k][0] & 0xff;\n      map[j++] = this.network[k][1] & 0xff;\n      map[j++] = this.network[k][2] & 0xff;\n    }\n\n    return map\n  }\n}\n\nfunction findClosest (palette, r, g, b) {\n  let minpos = 0;\n  let mind = 256 * 256 * 256;\n\n  for (let i = 0, l = palette.length; i < l;) {\n    const dr = r - palette[i++];\n    const dg = g - palette[i++];\n    const db = b - palette[i];\n    const d = dr * dr + dg * dg + db * db;\n    const pos = i / 3 | 0;\n\n    if (d < mind) {\n      mind = d;\n      minpos = pos;\n    }\n\n    i++;\n  }\n\n  return minpos\n}\n\nfunction palette (pixels, options) {\n  const nq = new NeuQuant(pixels, options);\n  nq.buildColorMap();\n  return nq.getColorMap()\n}\n\nfunction indexed (pixels, palette) {\n  const indexed = new Uint8Array(pixels.length / 3);\n  const memo = {};\n\n  for (let i = 0, j = 0, l = pixels.length; i < l;) {\n    const r = pixels[i++];\n    const g = pixels[i++];\n    const b = pixels[i++];\n    const k = r << 16 | g << 8 | b;\n\n    if (k in memo) {\n      indexed[j++] = memo[k];\n    } else {\n      indexed[j++] = memo[k] = findClosest(palette, r, g, b);\n    }\n  }\n\n  return indexed\n}\n\nfunction rgba2Rgb(data) {\n  const rgb = new Uint8ClampedArray(data.length / 4 * 3);\n  const len = data.length;\n  let rgb_i = 0;\n  for (let i = 0; i < len; ) {\n    for (let j = 0; j < 3; j++) {\n      rgb[rgb_i++] = data[i++];\n    }\n    i++;\n  }\n  return rgb;\n}\nfunction neuquant(img, k, samplefac = 1) {\n  const img_rgb = rgba2Rgb(img);\n  const palette$1 = palette(img_rgb, { netsize: k, samplefac });\n  const indexed_pixel = indexed(img_rgb, palette$1);\n  const pixel = [];\n  const len = palette$1.length;\n  for (let i = 0; i < len; ) {\n    pixel.push([palette$1[i++], palette$1[i++], palette$1[i++], 255]);\n  }\n  return { centroid: pixel, label: count(k, indexed_pixel) };\n}\nfunction count(k, index) {\n  const counts = new Array(k).fill(0);\n  for (const i of index) {\n    counts[i]++;\n  }\n  return counts;\n}\n\nfunction _prepare2DContext(width, height) {\n  const canvas = document.createElement(\"canvas\");\n  const ctx = canvas.getContext(\"2d\");\n  canvas.height = height;\n  canvas.width = width;\n  return ctx;\n}\nfunction _prepare2DContextAsync(width, height) {\n  const canvas = new OffscreenCanvas(width, height);\n  const ctx = canvas.getContext(\"2d\");\n  return ctx;\n}\nfunction awaitImage(imgElement) {\n  return new Promise((resolve, reject) => {\n    if (imgElement.complete) {\n      resolve();\n    } else {\n      imgElement.addEventListener(\"load\", (e) => {\n        resolve(e);\n      });\n      imgElement.addEventListener(\"error\", (reason) => {\n        reject(reason);\n      });\n    }\n  });\n}\nfunction _readImage(prepareCtx, imgSource) {\n  const { naturalWidth, naturalHeight } = imgSource;\n  const ctx = prepareCtx(naturalWidth, naturalHeight);\n  ctx.drawImage(imgSource, 0, 0, naturalWidth, naturalHeight);\n  return ctx.getImageData(0, 0, naturalWidth, naturalHeight);\n}\nconst readImage = _readImage.bind(void 0, _prepare2DContext);\nconst readImageOffscreen = _readImage.bind(void 0, _prepare2DContextAsync);\nfunction _readImageDownsampling(prepareCtx, imgSource, maxSample) {\n  let { naturalWidth: width, naturalHeight: height } = imgSource;\n  const scale = width * height / maxSample;\n  if (scale > 1) {\n    const scaleSqrt = Math.sqrt(scale);\n    width = width / scaleSqrt | 0;\n    height = height / scaleSqrt | 0;\n  }\n  const ctx = prepareCtx(width, height);\n  ctx.drawImage(imgSource, 0, 0, width, height);\n  return ctx.getImageData(0, 0, width, height);\n}\nconst readImageDownsampling = _readImageDownsampling.bind(void 0, _prepare2DContext);\nconst readImageDownsamplingOffscreen = _readImageDownsampling.bind(void 0, _prepare2DContextAsync);\n\nfunction convertToLab(source) {\n  const array = [];\n  for (let i = 0; i < source.length; i += 4) {\n    const pixel = source.slice(i, i + 4);\n    const alpha = pixel[3];\n    const pixel_rgb = pixel.slice(0, 3);\n    const pixel_xyz = rgb.xyz(pixel_rgb);\n    const pixel_lab = xyz.lab(pixel_xyz);\n    array.push(...pixel_lab, alpha);\n  }\n  return array;\n}\nfunction labaToRGBA(laba) {\n  const pixel_lab = laba.slice(0, 3);\n  const alpha = laba[3];\n  const pixel_xyz = lab.xyz(pixel_lab);\n  const pixel_rgb = xyz.rgb(pixel_xyz);\n  pixel_rgb.push(alpha);\n  return pixel_rgb;\n}\n\nfunction max_min_of_three([a, b, c]) {\n  if (a > b) {\n    if (b > c) {\n      return [a, c];\n    } else {\n      if (a > c) {\n        return [a, b];\n      } else {\n        return [c, b];\n      }\n    }\n  } else {\n    if (b > c) {\n      if (c > a) {\n        return [b, a];\n      } else {\n        return [b, c];\n      }\n    } else {\n      return [c, a];\n    }\n  }\n}\n\nfunction normalizeRGBA(rgba) {\n  return rgba.map((v) => v / 255);\n}\nfunction rgbaToHSLA(rgba) {\n  let h, s;\n  const [max, min] = max_min_of_three(rgba);\n  const diff = max - min;\n  const light_2x = max + min;\n  if (diff == 0) {\n    h = 0;\n    s = 0;\n  } else {\n    if (max == rgba[0]) {\n      const temp_h = 60 * (rgba[1] - rgba[2]) / diff;\n      if (temp_h < 0) {\n        h = temp_h + 360;\n      } else {\n        h = temp_h;\n      }\n    } else if (max == rgba[1]) {\n      h = 60 * (rgba[2] - rgba[0]) / diff + 120;\n    } else {\n      h = 60 * (rgba[0] - rgba[1]) / diff + 240;\n    }\n    if (light_2x == 0) {\n      s = 0;\n    } else if (light_2x <= 1) {\n      s = diff / light_2x;\n    } else {\n      s = diff / (2 - light_2x);\n    }\n  }\n  return [h, s, light_2x / 2, rgba[3]];\n}\nconst getVector4Comparer = (sort = [0, 1, 2, 3]) => (a, b) => {\n  let result;\n  for (const s of sort) {\n    result = a[s] - b[s];\n    if (result != 0) {\n      return result;\n    }\n  }\n  return result;\n};\nconst hslaCSSText = ([h, s, l, a]) => `hsla(${h}deg,${s * 100}%,${l * 100}%,${a})`;\nconst rgbaCSSText = (pixel) => `rgba(${pixel.map((v) => Math.floor(v)).join(\",\")})`;\n\nexport { awaitImage, convertToLab, getVector4Comparer, hslaCSSText, kmeans, labaToRGBA, neuquant, normalizeRGBA, readImage, readImageDownsampling, readImageDownsamplingOffscreen, readImageOffscreen, rgbaCSSText, rgbaToHSLA };\n","export default function registerPromiseWorker(callback) {\n    self.addEventListener('message', async (e) => {\n        const payload = e.data;\n        const messageId = payload[0];\n        const message = payload[1];\n        try {\n            const transferList = [];\n            const callbackResult = await callback(message, (t) => transferList.push(t));\n            self.postMessage([messageId, null, callbackResult], transferList.length ? { transfer: transferList } : undefined);\n        }\n        catch (error) {\n            self.postMessage([messageId, {\n                    message: error.message\n                }]);\n        }\n    });\n}\n","import { neuquant } from '@kotorik/palette';\nexport default function neuquantCalc(data) {\n    const { label, centroid } = neuquant(data, 8);\n    const max = Math.max(...label);\n    const index = label.findIndex(value => value == max);\n    return centroid[index];\n}\n"],"names":["name","min","channel","alias","A","C","D50","D55","D65","D75","F2","F7","F11","E","max","whitepoint","rgb","_xyz","white","r","g","b","x","y","z","Math","pow","lab","xyz","minpicturebytes","defaults","ncycles","netsize","samplefac","NeuQuant","constructor","pixels","options","target","i","l","arguments","length","nextSource","nextKey","Object","prototype","hasOwnProperty","call","this","Error","maxnetpos","netbiasshift","intbiasshift","intbias","gammashift","gamma","betashift","beta","betagamma","initrad","radiusbiasshift","radiusbias","initradius","radiusdec","alphabiasshift","initalpha","radbiasshift","radbias","alpharadbshift","alpharadbias","network","netindex","Uint32Array","bias","freq","radpower","v","Float64Array","unbiasnet","altersingle","alpha","alterneigh","radius","lo","abs","hi","j","k","m","a","p","contest","bestd","bestbiasd","bestpos","bestbiaspos","n","dist","biasdist","betafreq","inxbuild","previouscol","startpos","q","smallpos","smallval","learn","lengthcount","alphadec","samplepixels","step","delta","rad","pix","buildColorMap","getColorMap","map","Uint8Array","index","findClosest","palette","minpos","mind","dr","dg","db","d","neuquant","img","img_rgb","data","Uint8ClampedArray","len","rgb_i","rgba2Rgb","palette$1","nq","indexed_pixel","indexed","memo","pixel","push","centroid","label","count","counts","Array","fill","_prepare2DContext","width","height","canvas","document","createElement","ctx","getContext","_prepare2DContextAsync","OffscreenCanvas","_readImage","prepareCtx","imgSource","naturalWidth","naturalHeight","drawImage","getImageData","bind","_readImageDownsampling","maxSample","scale","scaleSqrt","sqrt","callback","findIndex","value","self","addEventListener","async","e","payload","messageId","message","transferList","callbackResult","t","postMessage","transfer","undefined","error"],"sourceRoot":""}