{"version":3,"file":"umd.min.js","sources":["../src/stackblur.js","../src/index.js"],"sourcesContent":["/*\n    StackBlur - a fast almost Gaussian Blur For Canvas\n\n    Version:     0.5\n    Author:        Mario Klingemann\n    Contact:     mario@quasimondo.com\n    Website:    http://www.quasimondo.com/StackBlurForCanvas\n    Twitter:    @quasimondo\n\n    In case you find this class useful - especially in commercial projects -\n    I am not totally unhappy for a small donation to my PayPal account\n    mario@quasimondo.de\n\n    Or support me on flattr:\n    https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript\n\n    Copyright (c) 2010 Mario Klingemann\n\n    Permission is hereby granted, free of charge, to any person\n    obtaining a copy of this software and associated documentation\n    files (the \"Software\"), to deal in the Software without\n    restriction, including without limitation the rights to use,\n    copy, modify, merge, publish, distribute, sublicense, and/or sell\n    copies of the Software, and to permit persons to whom the\n    Software is furnished to do so, subject to the following\n    conditions:\n\n    The above copyright notice and this permission notice shall be\n    included in all copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n    OTHER DEALINGS IN THE SOFTWARE.\n    */\n\n\nvar mul_table = [\n  512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,\n  454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,\n  482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,\n  437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,\n  497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,\n  320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,\n  446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,\n  329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,\n  505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,\n  399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,\n  324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,\n  268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,\n  451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,\n  385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,\n  332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,\n  289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];\n\n\nvar shg_table = [\n  9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n  17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n  19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n  20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n  21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n  21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n  22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n  22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n  23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 ];\n\n\nfunction processImage(img, canvas, radius, blurAlphaChannel)\n{\n  if (typeof(img) == 'string') {\n    var img = document.getElementById(img);\n  }\n  else if (typeof HTMLImageElement !== 'undefined' && !img instanceof HTMLImageElement) {\n    return;\n  }\n  var w = img.naturalWidth;\n  var h = img.naturalHeight;\n\n  if (typeof(canvas) == 'string') {\n    var canvas = document.getElementById(canvas);\n  }\n  else if (typeof HTMLCanvasElement !== 'undefined' && !canvas instanceof HTMLCanvasElement) {\n    return;\n  }\n\n  // canvas.style.width  = w + 'px';\n  // canvas.style.height = h + 'px';\n  // console.log(w, h, img, img.naturalHeight)\n  canvas.width = w;\n  canvas.height = h;\n\n  var context = canvas.getContext('2d');\n  context.clearRect(0, 0, w, h);\n  context.drawImage(img, 0, 0);\n\n  if (isNaN(radius) || radius < 1) return;\n\n  if (blurAlphaChannel)\n    processCanvasRGBA(canvas, 0, 0, w, h, radius);\n  else\n    processCanvasRGB(canvas, 0, 0, w, h, radius);\n}\n\nfunction getImageDataFromCanvas(canvas, top_x, top_y, width, height)\n{\n  if (typeof(canvas) == 'string')\n    var canvas  = document.getElementById(canvas);\n  else if (typeof HTMLCanvasElement !== 'undefined' && !canvas instanceof HTMLCanvasElement)\n    return;\n\n  var context = canvas.getContext('2d');\n  var imageData;\n\n  try {\n    try {\n      imageData = context.getImageData(top_x, top_y, width, height);\n    } catch(e) {\n      throw new Error(\"unable to access local image data: \" + e);\n      return;\n    }\n  } catch(e) {\n    throw new Error(\"unable to access image data: \" + e);\n  }\n\n  return imageData;\n}\n\nfunction processCanvasRGBA(canvas, top_x, top_y, width, height, radius)\n{\n  if (isNaN(radius) || radius < 1) return;\n  radius |= 0;\n\n  var imageData = getImageDataFromCanvas(canvas, top_x, top_y, width, height);\n\n  imageData = processImageDataRGBA(imageData, top_x, top_y, width, height, radius);\n\n  canvas.getContext('2d').putImageData(imageData, top_x, top_y);\n}\n\nfunction processImageDataRGBA(imageData, top_x, top_y, width, height, radius)\n{\n  var pixels = imageData.data;\n\n  var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,\n      r_out_sum, g_out_sum, b_out_sum, a_out_sum,\n      r_in_sum, g_in_sum, b_in_sum, a_in_sum,\n      pr, pg, pb, pa, rbs;\n\n  var div = radius + radius + 1;\n  var w4 = width << 2;\n  var widthMinus1  = width - 1;\n  var heightMinus1 = height - 1;\n  var radiusPlus1  = radius + 1;\n  var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n  var stackStart = new BlurStack();\n  var stack = stackStart;\n  for (i = 1; i < div; i++)\n  {\n    stack = stack.next = new BlurStack();\n    if (i == radiusPlus1) var stackEnd = stack;\n  }\n  stack.next = stackStart;\n  var stackIn = null;\n  var stackOut = null;\n\n  yw = yi = 0;\n\n  var mul_sum = mul_table[radius];\n  var shg_sum = shg_table[radius];\n\n  for (y = 0; y < height; y++)\n  {\n    r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\n    r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n    g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n    b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n    a_out_sum = radiusPlus1 * (pa = pixels[yi+3]);\n\n    r_sum += sumFactor * pr;\n    g_sum += sumFactor * pg;\n    b_sum += sumFactor * pb;\n    a_sum += sumFactor * pa;\n\n    stack = stackStart;\n\n    for (i = 0; i < radiusPlus1; i++)\n    {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack.a = pa;\n      stack = stack.next;\n    }\n\n    for (i = 1; i < radiusPlus1; i++)\n    {\n      p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n      r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n      g_sum += (stack.g = (pg = pixels[p+1])) * rbs;\n      b_sum += (stack.b = (pb = pixels[p+2])) * rbs;\n      a_sum += (stack.a = (pa = pixels[p+3])) * rbs;\n\n      r_in_sum += pr;\n      g_in_sum += pg;\n      b_in_sum += pb;\n      a_in_sum += pa;\n\n      stack = stack.next;\n    }\n\n\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (x = 0; x < width; x++)\n    {\n      pixels[yi+3] = pa = (a_sum * mul_sum) >> shg_sum;\n      if (pa != 0)\n      {\n        pa = 255 / pa;\n        pixels[yi]   = ((r_sum * mul_sum) >> shg_sum) * pa;\n        pixels[yi+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n        pixels[yi+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n      } else {\n        pixels[yi] = pixels[yi+1] = pixels[yi+2] = 0;\n      }\n\n      r_sum -= r_out_sum;\n      g_sum -= g_out_sum;\n      b_sum -= b_out_sum;\n      a_sum -= a_out_sum;\n\n      r_out_sum -= stackIn.r;\n      g_out_sum -= stackIn.g;\n      b_out_sum -= stackIn.b;\n      a_out_sum -= stackIn.a;\n\n      p =  (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n      r_in_sum += (stackIn.r = pixels[p]);\n      g_in_sum += (stackIn.g = pixels[p+1]);\n      b_in_sum += (stackIn.b = pixels[p+2]);\n      a_in_sum += (stackIn.a = pixels[p+3]);\n\n      r_sum += r_in_sum;\n      g_sum += g_in_sum;\n      b_sum += b_in_sum;\n      a_sum += a_in_sum;\n\n      stackIn = stackIn.next;\n\n      r_out_sum += (pr = stackOut.r);\n      g_out_sum += (pg = stackOut.g);\n      b_out_sum += (pb = stackOut.b);\n      a_out_sum += (pa = stackOut.a);\n\n      r_in_sum -= pr;\n      g_in_sum -= pg;\n      b_in_sum -= pb;\n      a_in_sum -= pa;\n\n      stackOut = stackOut.next;\n\n      yi += 4;\n    }\n    yw += width;\n  }\n\n\n  for (x = 0; x < width; x++)\n  {\n    g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\n    yi = x << 2;\n    r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n    g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n    b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n    a_out_sum = radiusPlus1 * (pa = pixels[yi+3]);\n\n    r_sum += sumFactor * pr;\n    g_sum += sumFactor * pg;\n    b_sum += sumFactor * pb;\n    a_sum += sumFactor * pa;\n\n    stack = stackStart;\n\n    for (i = 0; i < radiusPlus1; i++)\n    {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack.a = pa;\n      stack = stack.next;\n    }\n\n    yp = width;\n\n    for (i = 1; i <= radius; i++)\n    {\n      yi = (yp + x) << 2;\n\n      r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n      g_sum += (stack.g = (pg = pixels[yi+1])) * rbs;\n      b_sum += (stack.b = (pb = pixels[yi+2])) * rbs;\n      a_sum += (stack.a = (pa = pixels[yi+3])) * rbs;\n\n      r_in_sum += pr;\n      g_in_sum += pg;\n      b_in_sum += pb;\n      a_in_sum += pa;\n\n      stack = stack.next;\n\n      if(i < heightMinus1)\n      {\n        yp += width;\n      }\n    }\n\n    yi = x;\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (y = 0; y < height; y++)\n    {\n      p = yi << 2;\n      pixels[p+3] = pa = (a_sum * mul_sum) >> shg_sum;\n      if (pa > 0)\n      {\n        pa = 255 / pa;\n        pixels[p]   = ((r_sum * mul_sum) >> shg_sum) * pa;\n        pixels[p+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n        pixels[p+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n      } else {\n        pixels[p] = pixels[p+1] = pixels[p+2] = 0;\n      }\n\n      r_sum -= r_out_sum;\n      g_sum -= g_out_sum;\n      b_sum -= b_out_sum;\n      a_sum -= a_out_sum;\n\n      r_out_sum -= stackIn.r;\n      g_out_sum -= stackIn.g;\n      b_out_sum -= stackIn.b;\n      a_out_sum -= stackIn.a;\n\n      p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n      r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n      g_sum += (g_in_sum += (stackIn.g = pixels[p+1]));\n      b_sum += (b_in_sum += (stackIn.b = pixels[p+2]));\n      a_sum += (a_in_sum += (stackIn.a = pixels[p+3]));\n\n      stackIn = stackIn.next;\n\n      r_out_sum += (pr = stackOut.r);\n      g_out_sum += (pg = stackOut.g);\n      b_out_sum += (pb = stackOut.b);\n      a_out_sum += (pa = stackOut.a);\n\n      r_in_sum -= pr;\n      g_in_sum -= pg;\n      b_in_sum -= pb;\n      a_in_sum -= pa;\n\n      stackOut = stackOut.next;\n\n      yi += width;\n    }\n  }\n  return imageData;\n}\n\nfunction processCanvasRGB(canvas, top_x, top_y, width, height, radius)\n{\n  if (isNaN(radius) || radius < 1) return;\n  radius |= 0;\n\n  var imageData = getImageDataFromCanvas(canvas, top_x, top_y, width, height);\n  imageData = processImageDataRGB(imageData, top_x, top_y, width, height, radius);\n\n  canvas.getContext('2d').putImageData(imageData, top_x, top_y);\n}\n\nfunction processImageDataRGB(imageData, top_x, top_y, width, height, radius)\n{\n  var pixels = imageData.data;\n\n  var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum,\n      r_out_sum, g_out_sum, b_out_sum,\n      r_in_sum, g_in_sum, b_in_sum,\n      pr, pg, pb, rbs;\n\n  var div = radius + radius + 1;\n  var w4 = width << 2;\n  var widthMinus1  = width - 1;\n  var heightMinus1 = height - 1;\n  var radiusPlus1  = radius + 1;\n  var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n  var stackStart = new BlurStack();\n  var stack = stackStart;\n  for (i = 1; i < div; i++)\n  {\n    stack = stack.next = new BlurStack();\n    if (i == radiusPlus1) var stackEnd = stack;\n  }\n  stack.next = stackStart;\n  var stackIn = null;\n  var stackOut = null;\n\n  yw = yi = 0;\n\n  var mul_sum = mul_table[radius];\n  var shg_sum = shg_table[radius];\n\n  for (y = 0; y < height; y++)\n  {\n    r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0;\n\n    r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n    g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n    b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n\n    r_sum += sumFactor * pr;\n    g_sum += sumFactor * pg;\n    b_sum += sumFactor * pb;\n\n    stack = stackStart;\n\n    for (i = 0; i < radiusPlus1; i++)\n    {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack = stack.next;\n    }\n\n    for (i = 1; i < radiusPlus1; i++)\n    {\n      p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n      r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n      g_sum += (stack.g = (pg = pixels[p+1])) * rbs;\n      b_sum += (stack.b = (pb = pixels[p+2])) * rbs;\n\n      r_in_sum += pr;\n      g_in_sum += pg;\n      b_in_sum += pb;\n\n      stack = stack.next;\n    }\n\n\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (x = 0; x < width; x++)\n    {\n      pixels[yi]   = (r_sum * mul_sum) >> shg_sum;\n      pixels[yi+1] = (g_sum * mul_sum) >> shg_sum;\n      pixels[yi+2] = (b_sum * mul_sum) >> shg_sum;\n\n      r_sum -= r_out_sum;\n      g_sum -= g_out_sum;\n      b_sum -= b_out_sum;\n\n      r_out_sum -= stackIn.r;\n      g_out_sum -= stackIn.g;\n      b_out_sum -= stackIn.b;\n\n      p =  (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n      r_in_sum += (stackIn.r = pixels[p]);\n      g_in_sum += (stackIn.g = pixels[p+1]);\n      b_in_sum += (stackIn.b = pixels[p+2]);\n\n      r_sum += r_in_sum;\n      g_sum += g_in_sum;\n      b_sum += b_in_sum;\n\n      stackIn = stackIn.next;\n\n      r_out_sum += (pr = stackOut.r);\n      g_out_sum += (pg = stackOut.g);\n      b_out_sum += (pb = stackOut.b);\n\n      r_in_sum -= pr;\n      g_in_sum -= pg;\n      b_in_sum -= pb;\n\n      stackOut = stackOut.next;\n\n      yi += 4;\n    }\n    yw += width;\n  }\n\n\n  for (x = 0; x < width; x++)\n  {\n    g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0;\n\n    yi = x << 2;\n    r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n    g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n    b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n\n    r_sum += sumFactor * pr;\n    g_sum += sumFactor * pg;\n    b_sum += sumFactor * pb;\n\n    stack = stackStart;\n\n    for (i = 0; i < radiusPlus1; i++)\n    {\n      stack.r = pr;\n      stack.g = pg;\n      stack.b = pb;\n      stack = stack.next;\n    }\n\n    yp = width;\n\n    for (i = 1; i <= radius; i++)\n    {\n      yi = (yp + x) << 2;\n\n      r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n      g_sum += (stack.g = (pg = pixels[yi+1])) * rbs;\n      b_sum += (stack.b = (pb = pixels[yi+2])) * rbs;\n\n      r_in_sum += pr;\n      g_in_sum += pg;\n      b_in_sum += pb;\n\n      stack = stack.next;\n\n      if(i < heightMinus1)\n      {\n        yp += width;\n      }\n    }\n\n    yi = x;\n    stackIn = stackStart;\n    stackOut = stackEnd;\n    for (y = 0; y < height; y++)\n    {\n      p = yi << 2;\n      pixels[p]   = (r_sum * mul_sum) >> shg_sum;\n      pixels[p+1] = (g_sum * mul_sum) >> shg_sum;\n      pixels[p+2] = (b_sum * mul_sum) >> shg_sum;\n\n      r_sum -= r_out_sum;\n      g_sum -= g_out_sum;\n      b_sum -= b_out_sum;\n\n      r_out_sum -= stackIn.r;\n      g_out_sum -= stackIn.g;\n      b_out_sum -= stackIn.b;\n\n      p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n      r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n      g_sum += (g_in_sum += (stackIn.g = pixels[p+1]));\n      b_sum += (b_in_sum += (stackIn.b = pixels[p+2]));\n\n      stackIn = stackIn.next;\n\n      r_out_sum += (pr = stackOut.r);\n      g_out_sum += (pg = stackOut.g);\n      b_out_sum += (pb = stackOut.b);\n\n      r_in_sum -= pr;\n      g_in_sum -= pg;\n      b_in_sum -= pb;\n\n      stackOut = stackOut.next;\n\n      yi += width;\n    }\n  }\n\n  return imageData;\n}\n\nfunction BlurStack()\n{\n  this.r = 0;\n  this.g = 0;\n  this.b = 0;\n  this.a = 0;\n  this.next = null;\n}\n\nmodule.exports = {\n  image: processImage,\n  canvasRGBA: processCanvasRGBA,\n  canvasRGB: processCanvasRGB,\n  imageDataRGBA: processImageDataRGBA,\n  imageDataRGB: processImageDataRGB\n};\n","/**\n * @file index\n * @author Cuttle Cong\n * @date 2018/3/11\n * @description\n */\nimport StackBlur from './stackblur'\nimport css from './style'\n\nlet style = null\nfunction injectStyle(text) {\n  style = style || document.createElement('style')\n  style.type = 'text/css'\n  style.textContent = text\n  ;(document.head || document.getElementsByTagName('head')[0]).appendChild(style)\n}\n\nlet uId = 0\n/**\n *\n * @param elems {Array|String|NodeList}\n */\nexport default function progress(elems, options = {}) {\n  if (typeof document === 'undefined') {\n    console.error('medium-image-progress only works on browser.')\n    return\n  }\n\n  if (typeof elems === 'string') {\n    elems = [...document.querySelectorAll(elems)]\n  }\n  if (elems instanceof window.NodeList) {\n    elems = [...elems]\n  }\n  if (!Array.isArray(elems)) {\n    elems = [elems]\n  }\n\n  const {\n    progressImageUrlGetter = (elem) => {\n      return elem.getAttribute('src')\n    },\n    originImageUrlGetter = (elem) => {\n      return elem.getAttribute('data-src')\n    },\n    widthGetter = elem => elem.getAttribute('width'),\n    heightGetter = elem => elem.getAttribute('height'),\n    blurEnable = true\n  } = options\n\n  if (!style) {\n    injectStyle(css)\n  }\n\n  elems.forEach(function (ele) {\n    if (!ele.tagName || ele.tagName.toLowerCase() !== 'img') {\n      throw new Error('medium-image-progress requires <img/> element, but ' + ele.tagName)\n    }\n\n    // const wrapper = createElement('div', {\n    //   'class': 'medium-image-progressive-container'\n    // })\n    const pImageUrl = encodeURI(progressImageUrlGetter(ele))\n    const oImageUrl = encodeURI(originImageUrlGetter(ele))\n    let width = widthGetter(ele)\n    let height = heightGetter(ele)\n    width = width && parseFloat(width)\n    height = height && parseFloat(height)\n    let scale = 1\n    if (width && height) {\n       scale = height / width\n    }\n    width = !width ? '100%' : width + 'px'\n    height = !height ? '0' : height + 'px'\n    const parent = ele.parentElement\n\n    const id = 'medium-progress-' + uId++\n    ele.outerHTML = `\n<div id=${id} class=\"medium-image-progressive-container\" style=\"max-width: ${width}; max-height: ${height}\">\n<div class=\"medium-image-progressive-placeholder\" style=\"padding-bottom: ${(scale * 100) + '%'}\"></div>\n<div class=\"medium-image-progressive\">\n  <img class=\"medium-image-progress\" src=\"${pImageUrl}\" style=\"${blurEnable ? 'display: none;' : ''}\"/>\n  ${blurEnable ? '<canvas></canvas>' : ''}\n  <img class=\"medium-image-origin\" src=\"${oImageUrl}\"/>\n</div>\n</div>`\n\n    ele = parent.querySelector('#' + id)\n    const progressive = ele.querySelector('.medium-image-progressive')\n    const pImg = progressive.querySelector('.medium-image-progress')\n    const oImg = progressive.querySelector('.medium-image-origin')\n    const canvas = blurEnable && progressive.querySelector('canvas')\n    oImg.addEventListener('load', () => {\n      progressive.classList.add('image-loaded')\n    })\n    pImg.addEventListener('load', () => {\n      if (blurEnable) {\n        // https://github.com/flozz/StackBlur\n        // StackBlur.image(sourceImage, targetCanvas, radius, blurAlphaChannel);\n        StackBlur.image(pImg, canvas)\n        progressive.classList.add('canvas-loaded')\n      }\n    })\n  })\n}\n"],"names":["mul_table","shg_table","getImageDataFromCanvas","canvas","top_x","top_y","width","height","document","getElementById","HTMLCanvasElement","imageData","context","getContext","getImageData","e","Error","processCanvasRGBA","radius","isNaN","processImageDataRGBA","putImageData","x","y","i","p","yp","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pr","pg","pb","pa","rbs","pixels","data","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","next","stackEnd","stackIn","stackOut","mul_sum","shg_sum","r","g","b","a","processCanvasRGB","processImageDataRGB","module","img","blurAlphaChannel","HTMLImageElement","w","naturalWidth","h","naturalHeight","clearRect","drawImage","style","uId","elems","options","querySelectorAll","window","NodeList","Array","isArray","text","progressImageUrlGetter","elem","getAttribute","originImageUrlGetter","widthGetter","heightGetter","blurEnable","css","createElement","type","textContent","head","getElementsByTagName","appendChild","forEach","ele","tagName","toLowerCase","pImageUrl","encodeURI","oImageUrl","parseFloat","scale","parent","parentElement","id","outerHTML","progressive","querySelector","pImg","oImg","addEventListener","classList","add","image","error"],"mappings":"kMAyCA,IAAIA,GACF,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAGtDC,GACF,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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"}