{"version":3,"file":null,"sources":["../src/utils.js","../src/index.js"],"sourcesContent":["export function preloadImages(images) {\n let newimages = [],\n loadedImagesCount = 0,\n postAction = function () {};\n\n images = (typeof images != 'object') ? [images] : images;\n\n function imageLoadPost() {\n loadedImagesCount++;\n if (loadedImagesCount == images.length) postAction(newimages);\n }\n\n images.map((image, i) => {\n newimages[i] = new Image();\n newimages[i].crossOrigin = '*';\n newimages[i].src = image.dataset.src;\n newimages[i].onload = function () {\n imageLoadPost();\n };\n newimages[i].onerror = function () {\n imageLoadPost();\n };\n });\n\n return {\n done(callback) {\n postAction = callback || postAction;\n },\n };\n}\n\nexport function cssSupport(...args) {\n let el = document.createElement('div'),\n property = args[0],\n value = args[1];\n if (args.length === 1) {\n return property in el.style ? true : false;\n } else if (args.length === 2) {\n el.style[property] = value;\n return el.style[property] ? true : false;\n } else {\n return false;\n }\n}\n","import {\n preloadImages,\n cssSupport,\n} from './utils';\n\nexport default class blurify {\n constructor(options) {\n this.options = options;\n this.blur = options.blur || 6;\n this.mode = options.mode || 'css';\n this.$els = options.images.nodeType === 1 ? [options.images] : [].slice.call(options.images);\n\n if (this.mode == 'auto') {\n cssSupport('filter', 'blur(1px)') ? this.useCSSMode() : this.useCanvasMode();\n } else if (this.mode == 'css') {\n this.useCSSMode();\n } else {\n this.useCanvasMode();\n }\n }\n\n useCSSMode() {\n this.$els.map(el => {\n el.src = el.dataset.src;\n el.style['filter'] = el.style['-webkit-filter'] = `blur(${this.options.blur}px)`;\n });\n }\n\n useCanvasMode() {\n this.imageType = this.options.imageType || `image/jpeg`;\n preloadImages(this.$els).done(images => {\n images.map((image, index) => {\n this.$els[index].src = this.getDataURL(image);\n });\n });\n }\n\n blurify(canvas, blur) {\n let ctx = canvas.getContext('2d');\n ctx.globalAlpha = 0.5;\n for (let y = -blur; y <= blur; y += 2) {\n for (let x = -blur; x <= blur; x += 2) {\n ctx.drawImage(canvas, x, y);\n if (x >= 0 && y >= 0) ctx.drawImage(canvas, -(x - 1), -(y - 1));\n }\n }\n ctx.globalAlpha = 1;\n }\n\n getDataURL(image) {\n let canvas = document.createElement('canvas'),\n ctx = canvas.getContext('2d');\n\n canvas.width = image.width;\n canvas.height = image.height;\n ctx.drawImage(image, 0, 0);\n this.blurify(canvas, this.blur);\n return canvas.toDataURL(this.imageType);\n }\n}\n"],"names":["preloadImages","images","newimages","loadedImagesCount","postAction","imageLoadPost","length","map","image","i","Image","crossOrigin","src","dataset","onload","onerror","done","callback","cssSupport","el","document","createElement","property","value","style","blurify","options","blur","mode","$els","nodeType","slice","call","useCSSMode","useCanvasMode","imageType","index","getDataURL","canvas","ctx","getContext","globalAlpha","y","x","drawImage","width","height","toDataURL"],"mappings":";;;;;;;;AAAA,AAAO,IAAA,SAASA,aAAT,CAAuBC,MAAvB,EAA+B;AAClC,IAAA,QAAIC,YAAY,EAAhB;AAAA,IAAA,QACIC,oBAAoB,CADxB;AAAA,IAAA,QAEIC,aAAa,sBAAY,EAF7B;;AAIAH,IAAAA,aAAU,QAAOA,MAAP,yCAAOA,MAAP,MAAiB,QAAlB,GAA8B,CAACA,MAAD,CAA9B,GAAyCA,MAAlD;;AAEA,IAAA,aAASI,aAAT,GAAyB;AACrBF,IAAAA;AACA,IAAA,YAAIA,qBAAqBF,OAAOK,MAAhC,EAAwCF,WAAWF,SAAX;AAC3C,IAAA;;AAEDD,IAAAA,WAAOM,GAAP,CAAW,UAACC,KAAD,EAAQC,CAAR,EAAc;AACrBP,IAAAA,kBAAUO,CAAV,IAAe,IAAIC,KAAJ,EAAf;AACAR,IAAAA,kBAAUO,CAAV,EAAaE,WAAb,GAA2B,GAA3B;AACAT,IAAAA,kBAAUO,CAAV,EAAaG,GAAb,GAAmBJ,MAAMK,OAAN,CAAcD,GAAjC;AACAV,IAAAA,kBAAUO,CAAV,EAAaK,MAAb,GAAsB,YAAY;AAC9BT,IAAAA;AACH,IAAA,SAFD;AAGAH,IAAAA,kBAAUO,CAAV,EAAaM,OAAb,GAAuB,YAAY;AAC/BV,IAAAA;AACH,IAAA,SAFD;AAGH,IAAA,KAVD;;AAYA,IAAA,WAAO;AACHW,IAAAA,YADG,gBACEC,QADF,EACY;AACXb,IAAAA,yBAAaa,YAAYb,UAAzB;AACH,IAAA;AAHE,IAAA,KAAP;AAKH,IAAA;;AAED,AAAO,IAAA,SAASc,UAAT,GAA6B;AAChC,IAAA,QAAIC,KAAKC,SAASC,aAAT,CAAuB,KAAvB,CAAT;AAAA,IAAA,QACIC,2DADJ;AAAA,IAAA,QAEIC,wDAFJ;AAGA,IAAA,QAAI,UAAKjB,MAAL,KAAgB,CAApB,EAAuB;AACnB,IAAA,eAAOgB,YAAYH,GAAGK,KAAf,GAAuB,IAAvB,GAA8B,KAArC;AACH,IAAA,KAFD,MAEO,IAAI,UAAKlB,MAAL,KAAgB,CAApB,EAAuB;AAC1Ba,IAAAA,WAAGK,KAAH,CAASF,QAAT,IAAqBC,KAArB;AACA,IAAA,eAAOJ,GAAGK,KAAH,CAASF,QAAT,IAAqB,IAArB,GAA4B,KAAnC;AACH,IAAA,KAHM,MAGA;AACH,IAAA,eAAO,KAAP;AACH,IAAA;AACJ,IAAA;;;;;;AC3CD,QAKqBG;AACjB,IAAA,qBAAYC,OAAZ,EAAqB;AAAA,IAAA;;AACjB,IAAA,aAAKA,OAAL,GAAeA,OAAf;AACA,IAAA,aAAKC,IAAL,GAAYD,QAAQC,IAAR,IAAgB,CAA5B;AACA,IAAA,aAAKC,IAAL,GAAYF,QAAQE,IAAR,IAAgB,KAA5B;AACA,IAAA,aAAKC,IAAL,GAAYH,QAAQzB,MAAR,CAAe6B,QAAf,KAA4B,CAA5B,GAAgC,CAACJ,QAAQzB,MAAT,CAAhC,GAAmD,GAAG8B,KAAH,CAASC,IAAT,CAAcN,QAAQzB,MAAtB,CAA/D;;AAEA,IAAA,YAAI,KAAK2B,IAAL,IAAa,MAAjB,EAAyB;AACrBV,IAAAA,uBAAW,QAAX,EAAqB,WAArB,IAAoC,KAAKe,UAAL,EAApC,GAAwD,KAAKC,aAAL,EAAxD;AACH,IAAA,SAFD,MAEO,IAAI,KAAKN,IAAL,IAAa,KAAjB,EAAwB;AAC3B,IAAA,iBAAKK,UAAL;AACH,IAAA,SAFM,MAEA;AACH,IAAA,iBAAKC,aAAL;AACH,IAAA;AACJ,IAAA;;;;yCAEY;AAAA,IAAA;;AACT,IAAA,iBAAKL,IAAL,CAAUtB,GAAV,CAAc,cAAM;AAChBY,IAAAA,mBAAGP,GAAH,GAASO,GAAGN,OAAH,CAAWD,GAApB;AACAO,IAAAA,mBAAGK,KAAH,CAAS,QAAT,IAAqBL,GAAGK,KAAH,CAAS,gBAAT,cAAqC,MAAKE,OAAL,CAAaC,IAAlD,QAArB;AACH,IAAA,aAHD;AAIH,IAAA;;;4CAEe;AAAA,IAAA;;AACZ,IAAA,iBAAKQ,SAAL,GAAiB,KAAKT,OAAL,CAAaS,SAAb,gBAAjB;AACAnC,IAAAA,0BAAc,KAAK6B,IAAnB,EAAyBb,IAAzB,CAA8B,kBAAU;AACpCf,IAAAA,uBAAOM,GAAP,CAAW,UAACC,KAAD,EAAQ4B,KAAR,EAAkB;AACzB,IAAA,2BAAKP,IAAL,CAAUO,KAAV,EAAiBxB,GAAjB,GAAuB,OAAKyB,UAAL,CAAgB7B,KAAhB,CAAvB;AACH,IAAA,iBAFD;AAGH,IAAA,aAJD;AAKH,IAAA;;;oCAEO8B,QAAQX,MAAM;AAClB,IAAA,gBAAIY,MAAMD,OAAOE,UAAP,CAAkB,IAAlB,CAAV;AACAD,IAAAA,gBAAIE,WAAJ,GAAkB,GAAlB;AACA,IAAA,iBAAK,IAAIC,IAAI,CAACf,IAAd,EAAoBe,KAAKf,IAAzB,EAA+Be,KAAK,CAApC,EAAuC;AACnC,IAAA,qBAAK,IAAIC,IAAI,CAAChB,IAAd,EAAoBgB,KAAKhB,IAAzB,EAA+BgB,KAAK,CAApC,EAAuC;AACnCJ,IAAAA,wBAAIK,SAAJ,CAAcN,MAAd,EAAsBK,CAAtB,EAAyBD,CAAzB;AACA,IAAA,wBAAIC,KAAK,CAAL,IAAUD,KAAK,CAAnB,EAAsBH,IAAIK,SAAJ,CAAcN,MAAd,EAAsB,EAAEK,IAAI,CAAN,CAAtB,EAAgC,EAAED,IAAI,CAAN,CAAhC;AACzB,IAAA;AACJ,IAAA;AACDH,IAAAA,gBAAIE,WAAJ,GAAkB,CAAlB;AACH,IAAA;;;uCAEUjC,OAAO;AACd,IAAA,gBAAI8B,SAASlB,SAASC,aAAT,CAAuB,QAAvB,CAAb;AAAA,IAAA,gBACIkB,MAAMD,OAAOE,UAAP,CAAkB,IAAlB,CADV;;AAGAF,IAAAA,mBAAOO,KAAP,GAAerC,MAAMqC,KAArB;AACAP,IAAAA,mBAAOQ,MAAP,GAAgBtC,MAAMsC,MAAtB;AACAP,IAAAA,gBAAIK,SAAJ,CAAcpC,KAAd,EAAqB,CAArB,EAAwB,CAAxB;AACA,IAAA,iBAAKiB,OAAL,CAAaa,MAAb,EAAqB,KAAKX,IAA1B;AACA,IAAA,mBAAOW,OAAOS,SAAP,CAAiB,KAAKZ,SAAtB,CAAP;AACH,IAAA;;;;;;;;"}