!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VueClazyLoad",[],t):"object"==typeof exports?exports.VueClazyLoad=t():e.VueClazyLoad=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r.d(t,"install",function(){return o}),r.d(t,"VueClazyLoad",function(){return i});/*!
 * Vue Clazy Load
 * Component-based lazy (CLazy) load images in Vue.js 2
 * @author Matheus Grieger
 * @version 0.4.2
 */
var n={name:"ClazyLoad",props:{tag:{type:String,default:"div"},src:{type:String,required:!0},element:String,threshold:{type:[Array,Number],default:function(){return[0,.5,1]}},ratio:{type:Number,default:.4,validator:function(e){return e>0&&e<=1}},margin:{type:String,default:"0px"},crossorigin:{type:String,default:null,validator:function(e){return"anonymous"===e||"use-credentials"===e}},loadedClass:{type:String,default:"loaded"},loadingClass:{type:String,default:"loading"},errorClass:{type:String,default:null}},data:function(){return{loaded:!1,observer:null,errored:!1}},methods:{load:function(){var e=this;if(this.$emit("loading"),this.observer.disconnect(),!this.loaded){var t=new Image;t.addEventListener("load",function(){e.loaded=!0,e.$emit("load"),r()}),t.addEventListener("error",function(t){e.errored=!0,e.$emit("error",t),r()});var r=function(){t=null,e.observer=null};null!==this.crossorigin&&(t.crossOrigin=this.crossorigin),t.src=this.src}},observe:function(){var e=this,t={threshold:this.threshold,root:this.element?document.querySelector(this.element):null,rootMargin:this.margin};this.observer=new IntersectionObserver(function(t){t[0].intersectionRatio>=e.ratio&&e.load()},t),this.observer.observe(this.$el)}},render:function(e){var t=this.loaded?this.loadedClass:this.loadingClass;return e(this.tag,{class:this.errored&&this.errorClass?this.errorClass:t},[this.loaded?this.$slots.default||this.$slots.image:this.$slots.placeholder])},mounted:function(){this.$nextTick(this.observe)}},o=function(e){e.component("clazy-load",n)},i=n;t.default={install:o}}])});