{"version":3,"sources":["webpack:///./node_modules/vue-lazyload/vue-lazyload.esm.js"],"names":["createCommonjsModule","fn","module","exports","assignSymbols$1","toString","Object","prototype","isEnumerable","propertyIsEnumerable","getSymbols","getOwnPropertySymbols","isObject","val","call","Array","isArray","target","_len","arguments","length","args","_key","TypeError","Symbol","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","iterator","next","done","arg","value","names","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","key","err","return","assignSymbols$2","freeze","__proto__","__moduleExports","assignSymbols","_typeof","obj","constructor","classCallCheck","instance","Constructor","createClass","defineProperties","props","i","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","assignDeep","isValidKey","assign","isPrimitive","keys","inBrowser","window","hasIntersectionObserver","checkIntersectionObserver","IntersectionObserverEntry","get","this","intersectionRatio","modeType","event","observer","CustomEvent","Event","params","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","remove","arr","item","index","indexOf","splice","some","has","len","getBestSelectionFromSrcset","el","scale","tagName","getAttribute","options","result","container","parentNode","containerWidth","offsetWidth","spaceIndex","tmpSrc","tmpWidth","trim","split","map","lastIndexOf","substr","parseInt","push","sort","a","b","bestSelectedSrc","tmpOption","find","getDPR","devicePixelRatio","supportWebp","support","elem","createElement","getContext","toDataURL","throttle","action","delay","timeout","movement","lastRun","needRun","elapsed","Date","now","context","runCallback","apply","setTimeout","clearTimeout","testSupportsPassive","opts","addEventListener","e","supportsPassive","_","on","type","func","capture","passive","off","removeEventListener","loadImageAsync","resolve","reject","image","Image","src","Error","cors","crossOrigin","onload","naturalHeight","naturalWidth","onerror","style","prop","getComputedStyle","getPropertyValue","overflow","scrollParent","HTMLElement","parent","body","documentElement","test","ObjectKeys","hasOwnProperty","ArrayFrom","arrLike","list","noop","ImageCache","_ref","max","_caches","free","shift","ReactiveListener","error","loading","bindType","$parent","elRenderer","imageCache","attempt","rect","_imageCache","performanceData","init","loadStart","loadEnd","filter","initState","render","dataset","setAttribute","state","loaded","rendered","_ref2","oldSrc","getBoundingClientRect","getRect","top","innerHeight","preLoad","bottom","preLoadTop","left","innerWidth","right","_this","cb","_this2","data","silent","console","warn","_this3","onFinish","log","renderLoading","adapter","record","add","cache","time","DEFAULT_URL","DEFAULT_EVENTS","DEFAULT_OBSERVER_OPTIONS","rootMargin","threshold","Lazy","Vue","throttleWait","dispatchEvent","_ref$silent","listenEvents","hasbind","observerOptions","version","mode","ListenerQueue","TargetIndex","TargetQueue","ListenEvents","_initEvent","lazyLoadHandler","_lazyLoadHandler","bind","setMode","performance","vm","_addListenerTarget","_observer","observe","$el","binding","vnode","update","nextTick","_valueFormatter2","_valueFormatter","modifiers","$refs","getElementById","newListener","_elRenderer","_valueFormatter3","exist","unobserve","existItem","_removeListenerTarget","$destroy","forEach","listener","_initListen","_initIntersectionObserver","childrenCount","id","listened","_this4","start","_this5","_this6","listeners","$on","$once","$off","$emit","inCache","_this7","freeList","catIn","checkInView","load","_this8","IntersectionObserver","_observerHandler","entries","_this9","entry","isIntersecting","install","LazyClass","lazy","isVue2","directive","componentUpdated","unbind","newValue","oldValue","$els","LazyComponent","tag","String","default","h","show","$slots","mounted","addLazyBox","beforeDestroy","removeComponent","methods","destroy","component","LazyContainerMananger","lazyContainerMananger","_queue","LazyContainer","clear","defaultOptions","selector","_ref3","imgs","getImgs","querySelectorAll","lazyContainer","LazyImage","lazyManager","attrs","renderSrc","watch","created","_lazyManager$_valueFo","$Lazyload","lazyComponent","lazyImage"],"mappings":"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","file":"js/vendors-b4cb9499.0be04c4b.js","sourcesContent":["/*!\n * Vue-Lazyload.js v1.3.5\n * (c) 2023 Awe \n * Released under the MIT License.\n */\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar assignSymbols$1 = createCommonjsModule(function (module) {\n\n var toString = Object.prototype.toString;\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var getSymbols = Object.getOwnPropertySymbols;\n\n module.exports = function (target) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!isObject(target)) {\n throw new TypeError('expected the first argument to be an object');\n }\n\n if (args.length === 0 || typeof Symbol !== 'function' || typeof getSymbols !== 'function') {\n return target;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = args[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var arg = _step.value;\n\n var names = getSymbols(arg);\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = names[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n if (isEnumerable.call(arg, key)) {\n target[key] = arg[key];\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return target;\n };\n\n function isObject(val) {\n return typeof val === 'function' || toString.call(val) === '[object Object]' || Array.isArray(val);\n }\n});\n\nvar assignSymbols$2 = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\t'default': assignSymbols$1,\n\t__moduleExports: assignSymbols$1\n});\n\nvar assignSymbols = ( assignSymbols$2 && assignSymbols$1 ) || assignSymbols$2;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar assignDeep = createCommonjsModule(function (module) {\n\n var toString = Object.prototype.toString;\n\n var isValidKey = function isValidKey(key) {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n };\n\n var assign = module.exports = function (target) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var i = 0;\n if (isPrimitive(target)) target = args[i++];\n if (!target) target = {};\n for (; i < args.length; i++) {\n if (isObject(args[i])) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = Object.keys(args[i])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n if (isValidKey(key)) {\n if (isObject(target[key]) && isObject(args[i][key])) {\n assign(target[key], args[i][key]);\n } else {\n target[key] = args[i][key];\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n assignSymbols(target, args[i]);\n }\n }\n return target;\n };\n\n function isObject(val) {\n return typeof val === 'function' || toString.call(val) === '[object Object]';\n }\n\n function isPrimitive(val) {\n return (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' ? val === null : typeof val !== 'function';\n }\n});\n\nvar inBrowser = typeof window !== 'undefined' && window !== null;\n\nvar hasIntersectionObserver = checkIntersectionObserver();\n\nfunction checkIntersectionObserver() {\n if (inBrowser && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n return true;\n }\n return false;\n}\n\nvar modeType = {\n event: 'event',\n observer: 'observer'\n\n // CustomEvent polyfill for IE\n};var CustomEvent = function () {\n if (!inBrowser) return;\n // not IE\n if (typeof window.CustomEvent === 'function') return window.CustomEvent;\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n CustomEvent.prototype = window.Event.prototype;\n return CustomEvent;\n}();\n\nfunction remove(arr, item) {\n if (!arr.length) return;\n var index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\n\nfunction some(arr, fn) {\n var has = false;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n has = true;\n break;\n }\n }\n return has;\n}\n\nfunction getBestSelectionFromSrcset(el, scale) {\n if (el.tagName !== 'IMG' || !el.getAttribute('data-srcset')) return;\n\n var options = el.getAttribute('data-srcset');\n var result = [];\n var container = el.parentNode;\n var containerWidth = container.offsetWidth * scale;\n\n var spaceIndex = void 0;\n var tmpSrc = void 0;\n var tmpWidth = void 0;\n\n options = options.trim().split(',');\n\n options.map(function (item) {\n item = item.trim();\n spaceIndex = item.lastIndexOf(' ');\n if (spaceIndex === -1) {\n tmpSrc = item;\n tmpWidth = 999998;\n } else {\n tmpSrc = item.substr(0, spaceIndex);\n tmpWidth = parseInt(item.substr(spaceIndex + 1, item.length - spaceIndex - 2), 10);\n }\n result.push([tmpWidth, tmpSrc]);\n });\n\n result.sort(function (a, b) {\n if (a[0] < b[0]) {\n return 1;\n }\n if (a[0] > b[0]) {\n return -1;\n }\n if (a[0] === b[0]) {\n if (b[1].indexOf('.webp', b[1].length - 5) !== -1) {\n return 1;\n }\n if (a[1].indexOf('.webp', a[1].length - 5) !== -1) {\n return -1;\n }\n }\n return 0;\n });\n var bestSelectedSrc = '';\n var tmpOption = void 0;\n\n for (var i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n var next = result[i + 1];\n if (next && next[0] < containerWidth) {\n bestSelectedSrc = tmpOption[1];\n break;\n } else if (!next) {\n bestSelectedSrc = tmpOption[1];\n break;\n }\n }\n\n return bestSelectedSrc;\n}\n\nfunction find(arr, fn) {\n var item = void 0;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n item = arr[i];\n break;\n }\n }\n return item;\n}\n\nvar getDPR = function getDPR() {\n var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return inBrowser ? window.devicePixelRatio || scale : scale;\n};\n\nfunction supportWebp() {\n if (!inBrowser) return false;\n\n var support = true;\n\n try {\n var elem = document.createElement('canvas');\n\n if (elem.getContext && elem.getContext('2d')) {\n support = elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;\n }\n } catch (err) {\n support = false;\n }\n\n return support;\n}\n\nfunction throttle(action, delay) {\n var timeout = null;\n var movement = null;\n var lastRun = 0;\n var needRun = false;\n return function () {\n needRun = true;\n if (timeout) {\n return;\n }\n var elapsed = Date.now() - lastRun;\n var context = this;\n var args = arguments;\n var runCallback = function runCallback() {\n lastRun = Date.now();\n timeout = false;\n action.apply(context, args);\n };\n if (elapsed >= delay) {\n runCallback();\n } else {\n timeout = setTimeout(runCallback, delay);\n }\n if (needRun) {\n clearTimeout(movement);\n movement = setTimeout(runCallback, 2 * delay);\n }\n };\n}\n\nfunction testSupportsPassive() {\n if (!inBrowser) return;\n var support = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n support = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return support;\n}\n\nvar supportsPassive = testSupportsPassive();\n\nvar _ = {\n on: function on(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (supportsPassive) {\n el.addEventListener(type, func, {\n capture: capture,\n passive: true\n });\n } else {\n el.addEventListener(type, func, capture);\n }\n },\n off: function off(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n el.removeEventListener(type, func, capture);\n }\n};\n\nvar loadImageAsync = function loadImageAsync(item, resolve, reject) {\n var image = new Image();\n if (!item || !item.src) {\n var err = new Error('image src is required');\n return reject(err);\n }\n\n image.src = item.src;\n if (item.cors) {\n image.crossOrigin = item.cors;\n }\n\n image.onload = function () {\n resolve({\n naturalHeight: image.naturalHeight,\n naturalWidth: image.naturalWidth,\n src: image.src\n });\n };\n\n image.onerror = function (e) {\n reject(e);\n };\n};\n\nvar style = function style(el, prop) {\n return typeof getComputedStyle !== 'undefined' ? getComputedStyle(el, null).getPropertyValue(prop) : el.style[prop];\n};\n\nvar overflow = function overflow(el) {\n return style(el, 'overflow') + style(el, 'overflow-y') + style(el, 'overflow-x');\n};\n\nvar scrollParent = function scrollParent(el) {\n if (!inBrowser) return;\n if (!(el instanceof HTMLElement)) {\n return window;\n }\n\n var parent = el;\n\n while (parent) {\n if (parent === document.body || parent === document.documentElement) {\n break;\n }\n\n if (!parent.parentNode) {\n break;\n }\n\n if (/(scroll|auto)/.test(overflow(parent))) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return window;\n};\n\nfunction isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n}\n\nfunction ObjectKeys(obj) {\n if (!(obj instanceof Object)) return [];\n if (Object.keys) {\n return Object.keys(obj);\n } else {\n var keys = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n\nfunction ArrayFrom(arrLike) {\n var len = arrLike.length;\n var list = [];\n for (var i = 0; i < len; i++) {\n list.push(arrLike[i]);\n }\n return list;\n}\n\nfunction noop() {}\n\nvar ImageCache = function () {\n function ImageCache(_ref) {\n var max = _ref.max;\n classCallCheck(this, ImageCache);\n\n this.options = {\n max: max || 100\n };\n this._caches = [];\n }\n\n createClass(ImageCache, [{\n key: 'has',\n value: function has(key) {\n return this._caches.indexOf(key) > -1;\n }\n }, {\n key: 'add',\n value: function add(key) {\n if (this.has(key)) return;\n this._caches.push(key);\n if (this._caches.length > this.options.max) {\n this.free();\n }\n }\n }, {\n key: 'free',\n value: function free() {\n this._caches.shift();\n }\n }]);\n return ImageCache;\n}();\n\n// el: {\n// state,\n// src,\n// error,\n// loading\n// }\n\nvar ReactiveListener = function () {\n function ReactiveListener(_ref) {\n var el = _ref.el,\n src = _ref.src,\n error = _ref.error,\n loading = _ref.loading,\n bindType = _ref.bindType,\n $parent = _ref.$parent,\n options = _ref.options,\n cors = _ref.cors,\n elRenderer = _ref.elRenderer,\n imageCache = _ref.imageCache;\n classCallCheck(this, ReactiveListener);\n\n this.el = el;\n this.src = src;\n this.error = error;\n this.loading = loading;\n this.bindType = bindType;\n this.attempt = 0;\n this.cors = cors;\n\n this.naturalHeight = 0;\n this.naturalWidth = 0;\n\n this.options = options;\n\n this.rect = null;\n\n this.$parent = $parent;\n this.elRenderer = elRenderer;\n this._imageCache = imageCache;\n this.performanceData = {\n init: Date.now(),\n loadStart: 0,\n loadEnd: 0\n };\n\n this.filter();\n this.initState();\n this.render('loading', false);\n }\n\n /*\r\n * init listener state\r\n * @return\r\n */\n\n\n createClass(ReactiveListener, [{\n key: 'initState',\n value: function initState() {\n if ('dataset' in this.el) {\n this.el.dataset.src = this.src;\n } else {\n this.el.setAttribute('data-src', this.src);\n }\n\n this.state = {\n loading: false,\n error: false,\n loaded: false,\n rendered: false\n };\n }\n\n /*\r\n * record performance\r\n * @return\r\n */\n\n }, {\n key: 'record',\n value: function record(event) {\n this.performanceData[event] = Date.now();\n }\n\n /*\r\n * update image listener data\r\n * @param {String} image uri\r\n * @param {String} loading image uri\r\n * @param {String} error image uri\r\n * @return\r\n */\n\n }, {\n key: 'update',\n value: function update(_ref2) {\n var src = _ref2.src,\n loading = _ref2.loading,\n error = _ref2.error;\n\n var oldSrc = this.src;\n this.src = src;\n this.loading = loading;\n this.error = error;\n this.filter();\n if (oldSrc !== this.src) {\n this.attempt = 0;\n this.initState();\n }\n }\n\n /*\r\n * get el node rect\r\n * @return\r\n */\n\n }, {\n key: 'getRect',\n value: function getRect() {\n this.rect = this.el.getBoundingClientRect();\n }\n\n /*\r\n * check el is in view\r\n * @return {Boolean} el is in view\r\n */\n\n }, {\n key: 'checkInView',\n value: function checkInView() {\n this.getRect();\n return this.rect.top < window.innerHeight * this.options.preLoad && this.rect.bottom > this.options.preLoadTop && this.rect.left < window.innerWidth * this.options.preLoad && this.rect.right > 0;\n }\n\n /*\r\n * listener filter\r\n */\n\n }, {\n key: 'filter',\n value: function filter() {\n var _this = this;\n\n ObjectKeys(this.options.filter).map(function (key) {\n _this.options.filter[key](_this, _this.options);\n });\n }\n\n /*\r\n * render loading first\r\n * @params cb:Function\r\n * @return\r\n */\n\n }, {\n key: 'renderLoading',\n value: function renderLoading(cb) {\n var _this2 = this;\n\n this.state.loading = true;\n loadImageAsync({\n src: this.loading,\n cors: this.cors\n }, function (data) {\n _this2.render('loading', false);\n _this2.state.loading = false;\n cb();\n }, function () {\n // handler `loading image` load failed\n cb();\n _this2.state.loading = false;\n if (!_this2.options.silent) console.warn('VueLazyload log: load failed with loading image(' + _this2.loading + ')');\n });\n }\n\n /*\r\n * try load image and render it\r\n * @return\r\n */\n\n }, {\n key: 'load',\n value: function load() {\n var _this3 = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.attempt > this.options.attempt - 1 && this.state.error) {\n if (!this.options.silent) console.log('VueLazyload log: ' + this.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n if (this.state.rendered && this.state.loaded) return;\n if (this._imageCache.has(this.src)) {\n this.state.loaded = true;\n this.render('loaded', true);\n this.state.rendered = true;\n return onFinish();\n }\n\n this.renderLoading(function () {\n _this3.attempt++;\n\n _this3.options.adapter['beforeLoad'] && _this3.options.adapter['beforeLoad'](_this3, _this3.options);\n _this3.record('loadStart');\n\n loadImageAsync({\n src: _this3.src,\n cors: _this3.cors\n }, function (data) {\n _this3.naturalHeight = data.naturalHeight;\n _this3.naturalWidth = data.naturalWidth;\n _this3.state.loaded = true;\n _this3.state.error = false;\n _this3.record('loadEnd');\n _this3.render('loaded', false);\n _this3.state.rendered = true;\n _this3._imageCache.add(_this3.src);\n onFinish();\n }, function (err) {\n !_this3.options.silent && console.error(err);\n _this3.state.error = true;\n _this3.state.loaded = false;\n _this3.render('error', false);\n });\n });\n }\n\n /*\r\n * render image\r\n * @param {String} state to render // ['loading', 'src', 'error']\r\n * @param {String} is form cache\r\n * @return\r\n */\n\n }, {\n key: 'render',\n value: function render(state, cache) {\n this.elRenderer(this, state, cache);\n }\n\n /*\r\n * output performance data\r\n * @return {Object} performance data\r\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var state = 'loading';\n var time = 0;\n\n if (this.state.loaded) {\n state = 'loaded';\n time = (this.performanceData.loadEnd - this.performanceData.loadStart) / 1000;\n }\n\n if (this.state.error) state = 'error';\n\n return {\n src: this.src,\n state: state,\n time: time\n };\n }\n\n /*\r\n * $destroy\r\n * @return\r\n */\n\n }, {\n key: '$destroy',\n value: function $destroy() {\n this.el = null;\n this.src = null;\n this.error = null;\n this.loading = null;\n this.bindType = null;\n this.attempt = 0;\n }\n }]);\n return ReactiveListener;\n}();\n\nvar DEFAULT_URL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nvar DEFAULT_EVENTS = ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'];\nvar DEFAULT_OBSERVER_OPTIONS = {\n rootMargin: '0px',\n threshold: 0\n};\n\nfunction Lazy(Vue) {\n return function () {\n function Lazy(_ref) {\n var preLoad = _ref.preLoad,\n error = _ref.error,\n throttleWait = _ref.throttleWait,\n preLoadTop = _ref.preLoadTop,\n dispatchEvent = _ref.dispatchEvent,\n loading = _ref.loading,\n attempt = _ref.attempt,\n _ref$silent = _ref.silent,\n silent = _ref$silent === undefined ? true : _ref$silent,\n scale = _ref.scale,\n listenEvents = _ref.listenEvents;\n _ref.hasbind;\n var filter = _ref.filter,\n adapter = _ref.adapter,\n observer = _ref.observer,\n observerOptions = _ref.observerOptions;\n classCallCheck(this, Lazy);\n\n this.version = '\"1.3.5\"';\n this.mode = modeType.event;\n this.ListenerQueue = [];\n this.TargetIndex = 0;\n this.TargetQueue = [];\n this.options = {\n silent: silent,\n dispatchEvent: !!dispatchEvent,\n throttleWait: throttleWait || 200,\n preLoad: preLoad || 1.3,\n preLoadTop: preLoadTop || 0,\n error: error || DEFAULT_URL,\n loading: loading || DEFAULT_URL,\n attempt: attempt || 3,\n scale: scale || getDPR(scale),\n ListenEvents: listenEvents || DEFAULT_EVENTS,\n hasbind: false,\n supportWebp: supportWebp(),\n filter: filter || {},\n adapter: adapter || {},\n observer: !!observer,\n observerOptions: observerOptions || DEFAULT_OBSERVER_OPTIONS\n };\n this._initEvent();\n this._imageCache = new ImageCache({ max: 200 });\n this.lazyLoadHandler = throttle(this._lazyLoadHandler.bind(this), this.options.throttleWait);\n\n this.setMode(this.options.observer ? modeType.observer : modeType.event);\n }\n\n /**\r\n * update config\r\n * @param {Object} config params\r\n * @return\r\n */\n\n\n createClass(Lazy, [{\n key: 'config',\n value: function config() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n assignDeep(this.options, options);\n }\n\n /**\r\n * output listener's load performance\r\n * @return {Array}\r\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var list = [];\n\n this.ListenerQueue.map(function (item) {\n list.push(item.performance());\n });\n\n return list;\n }\n\n /*\r\n * add lazy component to queue\r\n * @param {Vue} vm lazy component instance\r\n * @return\r\n */\n\n }, {\n key: 'addLazyBox',\n value: function addLazyBox(vm) {\n this.ListenerQueue.push(vm);\n if (inBrowser) {\n this._addListenerTarget(window);\n this._observer && this._observer.observe(vm.el);\n if (vm.$el && vm.$el.parentNode) {\n this._addListenerTarget(vm.$el.parentNode);\n }\n }\n }\n\n /*\r\n * add image listener to queue\r\n * @param {DOM} el\r\n * @param {object} binding vue directive binding\r\n * @param {vnode} vnode vue directive vnode\r\n * @return\r\n */\n\n }, {\n key: 'add',\n value: function add(el, binding, vnode) {\n var _this = this;\n\n if (some(this.ListenerQueue, function (item) {\n return item.el === el;\n })) {\n this.update(el, binding);\n return Vue.nextTick(this.lazyLoadHandler);\n }\n\n var _valueFormatter2 = this._valueFormatter(binding.value),\n src = _valueFormatter2.src,\n loading = _valueFormatter2.loading,\n error = _valueFormatter2.error,\n cors = _valueFormatter2.cors;\n\n Vue.nextTick(function () {\n src = getBestSelectionFromSrcset(el, _this.options.scale) || src;\n _this._observer && _this._observer.observe(el);\n\n var container = Object.keys(binding.modifiers)[0];\n var $parent = void 0;\n\n if (container) {\n $parent = vnode.context.$refs[container];\n // if there is container passed in, try ref first, then fallback to getElementById to support the original usage\n $parent = $parent ? $parent.$el || $parent : document.getElementById(container);\n }\n\n if (!$parent) {\n $parent = scrollParent(el);\n }\n\n var newListener = new ReactiveListener({\n bindType: binding.arg,\n $parent: $parent,\n el: el,\n loading: loading,\n error: error,\n src: src,\n cors: cors,\n elRenderer: _this._elRenderer.bind(_this),\n options: _this.options,\n imageCache: _this._imageCache\n });\n\n _this.ListenerQueue.push(newListener);\n\n if (inBrowser) {\n _this._addListenerTarget(window);\n _this._addListenerTarget($parent);\n }\n\n _this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this.lazyLoadHandler();\n });\n });\n }\n\n /**\r\n * update image src\r\n * @param {DOM} el\r\n * @param {object} vue directive binding\r\n * @return\r\n */\n\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var _this2 = this;\n\n var _valueFormatter3 = this._valueFormatter(binding.value),\n src = _valueFormatter3.src,\n loading = _valueFormatter3.loading,\n error = _valueFormatter3.error;\n\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n\n var exist = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (!exist) {\n this.add(el, binding, vnode);\n } else {\n exist.update({\n src: src,\n loading: loading,\n error: error\n });\n }\n if (this._observer) {\n this._observer.unobserve(el);\n this._observer.observe(el);\n }\n this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this2.lazyLoadHandler();\n });\n }\n\n /**\r\n * remove listener form list\r\n * @param {DOM} el\r\n * @return\r\n */\n\n }, {\n key: 'remove',\n value: function remove$1(el) {\n if (!el) return;\n this._observer && this._observer.unobserve(el);\n var existItem = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (existItem) {\n this._removeListenerTarget(existItem.$parent);\n this._removeListenerTarget(window);\n remove(this.ListenerQueue, existItem);\n existItem.$destroy();\n }\n }\n\n /*\r\n * remove lazy components form list\r\n * @param {Vue} vm Vue instance\r\n * @return\r\n */\n\n }, {\n key: 'removeComponent',\n value: function removeComponent(vm) {\n if (!vm) return;\n remove(this.ListenerQueue, vm);\n this._observer && this._observer.unobserve(vm.el);\n if (vm.$parent && vm.$el.parentNode) {\n this._removeListenerTarget(vm.$el.parentNode);\n }\n this._removeListenerTarget(window);\n }\n }, {\n key: 'setMode',\n value: function setMode(mode) {\n var _this3 = this;\n\n if (!hasIntersectionObserver && mode === modeType.observer) {\n mode = modeType.event;\n }\n\n this.mode = mode; // event or observer\n\n if (mode === modeType.event) {\n if (this._observer) {\n this.ListenerQueue.forEach(function (listener) {\n _this3._observer.unobserve(listener.el);\n });\n this._observer = null;\n }\n\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, true);\n });\n } else {\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, false);\n });\n this._initIntersectionObserver();\n }\n }\n\n /*\r\n *** Private functions ***\r\n */\n\n /*\r\n * add listener target\r\n * @param {DOM} el listener target\r\n * @return\r\n */\n\n }, {\n key: '_addListenerTarget',\n value: function _addListenerTarget(el) {\n if (!el) return;\n var target = find(this.TargetQueue, function (target) {\n return target.el === el;\n });\n if (!target) {\n target = {\n el: el,\n id: ++this.TargetIndex,\n childrenCount: 1,\n listened: true\n };\n this.mode === modeType.event && this._initListen(target.el, true);\n this.TargetQueue.push(target);\n } else {\n target.childrenCount++;\n }\n return this.TargetIndex;\n }\n\n /*\r\n * remove listener target or reduce target childrenCount\r\n * @param {DOM} el or window\r\n * @return\r\n */\n\n }, {\n key: '_removeListenerTarget',\n value: function _removeListenerTarget(el) {\n var _this4 = this;\n\n this.TargetQueue.forEach(function (target, index) {\n if (target.el === el) {\n target.childrenCount--;\n if (!target.childrenCount) {\n _this4._initListen(target.el, false);\n _this4.TargetQueue.splice(index, 1);\n target = null;\n }\n }\n });\n }\n\n /*\r\n * add or remove eventlistener\r\n * @param {DOM} el DOM or Window\r\n * @param {boolean} start flag\r\n * @return\r\n */\n\n }, {\n key: '_initListen',\n value: function _initListen(el, start) {\n var _this5 = this;\n\n this.options.ListenEvents.forEach(function (evt) {\n return _[start ? 'on' : 'off'](el, evt, _this5.lazyLoadHandler);\n });\n }\n }, {\n key: '_initEvent',\n value: function _initEvent() {\n var _this6 = this;\n\n this.Event = {\n listeners: {\n loading: [],\n loaded: [],\n error: []\n }\n };\n\n this.$on = function (event, func) {\n if (!_this6.Event.listeners[event]) _this6.Event.listeners[event] = [];\n _this6.Event.listeners[event].push(func);\n };\n\n this.$once = function (event, func) {\n var vm = _this6;\n function on() {\n vm.$off(event, on);\n func.apply(vm, arguments);\n }\n _this6.$on(event, on);\n };\n\n this.$off = function (event, func) {\n if (!func) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].length = 0;\n return;\n }\n remove(_this6.Event.listeners[event], func);\n };\n\n this.$emit = function (event, context, inCache) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].forEach(function (func) {\n return func(context, inCache);\n });\n };\n }\n\n /**\r\n * find nodes which in viewport and trigger load\r\n * @return\r\n */\n\n }, {\n key: '_lazyLoadHandler',\n value: function _lazyLoadHandler() {\n var _this7 = this;\n\n var freeList = [];\n this.ListenerQueue.forEach(function (listener, index) {\n if (!listener.el || !listener.el.parentNode) {\n freeList.push(listener);\n }\n var catIn = listener.checkInView();\n if (!catIn) return;\n listener.load();\n });\n freeList.forEach(function (item) {\n remove(_this7.ListenerQueue, item);\n item.$destroy();\n });\n }\n /**\r\n * init IntersectionObserver\r\n * set mode to observer\r\n * @return\r\n */\n\n }, {\n key: '_initIntersectionObserver',\n value: function _initIntersectionObserver() {\n var _this8 = this;\n\n if (!hasIntersectionObserver) return;\n this._observer = new IntersectionObserver(this._observerHandler.bind(this), this.options.observerOptions);\n if (this.ListenerQueue.length) {\n this.ListenerQueue.forEach(function (listener) {\n _this8._observer.observe(listener.el);\n });\n }\n }\n\n /**\r\n * init IntersectionObserver\r\n * @return\r\n */\n\n }, {\n key: '_observerHandler',\n value: function _observerHandler(entries, observer) {\n var _this9 = this;\n\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n _this9.ListenerQueue.forEach(function (listener) {\n if (listener.el === entry.target) {\n if (listener.state.loaded) return _this9._observer.unobserve(listener.el);\n listener.load();\n }\n });\n }\n });\n }\n\n /**\r\n * set element attribute with image'url and state\r\n * @param {object} lazyload listener object\r\n * @param {string} state will be rendered\r\n * @param {bool} inCache is rendered from cache\r\n * @return\r\n */\n\n }, {\n key: '_elRenderer',\n value: function _elRenderer(listener, state, cache) {\n if (!listener.el) return;\n var el = listener.el,\n bindType = listener.bindType;\n\n\n var src = void 0;\n switch (state) {\n case 'loading':\n src = listener.loading;\n break;\n case 'error':\n src = listener.error;\n break;\n default:\n src = listener.src;\n break;\n }\n\n if (bindType) {\n el.style[bindType] = 'url(\"' + src + '\")';\n } else if (el.getAttribute('src') !== src) {\n el.setAttribute('src', src);\n }\n\n el.setAttribute('lazy', state);\n\n this.$emit(state, listener, cache);\n this.options.adapter[state] && this.options.adapter[state](listener, this.options);\n\n if (this.options.dispatchEvent) {\n var event = new CustomEvent(state, {\n detail: listener\n });\n el.dispatchEvent(event);\n }\n }\n\n /**\r\n * generate loading loaded error image url\r\n * @param {string} image's src\r\n * @return {object} image's loading, loaded, error url\r\n */\n\n }, {\n key: '_valueFormatter',\n value: function _valueFormatter(value) {\n var src = value;\n var loading = this.options.loading;\n var error = this.options.error;\n\n // value is object\n if (isObject(value)) {\n if (!value.src && !this.options.silent) console.error('Vue Lazyload warning: miss src with ' + value);\n src = value.src;\n loading = value.loading || this.options.loading;\n error = value.error || this.options.error;\n }\n return {\n src: src,\n loading: loading,\n error: error\n };\n }\n }]);\n return Lazy;\n }();\n}\n\nLazy.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n if (isVue2) {\n Vue.directive('lazy', {\n bind: lazy.add.bind(lazy),\n update: lazy.update.bind(lazy),\n componentUpdated: lazy.lazyLoadHandler.bind(lazy),\n unbind: lazy.remove.bind(lazy)\n });\n } else {\n Vue.directive('lazy', {\n bind: lazy.lazyLoadHandler.bind(lazy),\n update: function update(newValue, oldValue) {\n assignDeep(this.vm.$refs, this.vm.$els);\n lazy.add(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazy.remove(this.el);\n }\n });\n }\n};\n\nvar LazyComponent = function LazyComponent(lazy) {\n return {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n },\n render: function render(h) {\n return h(this.tag, null, this.show ? this.$slots.default : null);\n },\n data: function data() {\n return {\n el: null,\n state: {\n loaded: false\n },\n rect: {},\n show: false\n };\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazy.addLazyBox(this);\n lazy.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazy.removeComponent(this);\n },\n\n methods: {\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazy.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazy.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n this.show = true;\n this.state.loaded = true;\n this.$emit('show', this);\n },\n destroy: function destroy() {\n return this.$destroy;\n }\n }\n };\n};\n\nLazyComponent.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n Vue.component('lazy-component', LazyComponent(lazy));\n};\n\nvar LazyContainerMananger = function () {\n function LazyContainerMananger(_ref) {\n var lazy = _ref.lazy;\n classCallCheck(this, LazyContainerMananger);\n\n this.lazy = lazy;\n lazy.lazyContainerMananger = this;\n this._queue = [];\n }\n\n createClass(LazyContainerMananger, [{\n key: 'bind',\n value: function bind(el, binding, vnode) {\n var container = new LazyContainer({ el: el, binding: binding, vnode: vnode, lazy: this.lazy });\n this._queue.push(container);\n }\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.update({ el: el, binding: binding, vnode: vnode });\n }\n }, {\n key: 'unbind',\n value: function unbind(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.clear();\n remove(this._queue, container);\n }\n }]);\n return LazyContainerMananger;\n}();\n\n\nvar defaultOptions = {\n selector: 'img'\n};\n\nvar LazyContainer = function () {\n function LazyContainer(_ref2) {\n var el = _ref2.el,\n binding = _ref2.binding,\n vnode = _ref2.vnode,\n lazy = _ref2.lazy;\n classCallCheck(this, LazyContainer);\n\n this.el = null;\n this.vnode = vnode;\n this.binding = binding;\n this.options = {};\n this.lazy = lazy;\n\n this._queue = [];\n this.update({ el: el, binding: binding });\n }\n\n createClass(LazyContainer, [{\n key: 'update',\n value: function update(_ref3) {\n var _this = this;\n\n var el = _ref3.el,\n binding = _ref3.binding;\n\n this.el = el;\n this.options = assignDeep({}, defaultOptions, binding.value);\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n _this.lazy.add(el, assignDeep({}, _this.binding, {\n value: {\n src: 'dataset' in el ? el.dataset.src : el.getAttribute('data-src'),\n error: ('dataset' in el ? el.dataset.error : el.getAttribute('data-error')) || _this.options.error,\n loading: ('dataset' in el ? el.dataset.loading : el.getAttribute('data-loading')) || _this.options.loading\n }\n }), _this.vnode);\n });\n }\n }, {\n key: 'getImgs',\n value: function getImgs() {\n return ArrayFrom(this.el.querySelectorAll(this.options.selector));\n }\n }, {\n key: 'clear',\n value: function clear() {\n var _this2 = this;\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n return _this2.lazy.remove(el);\n });\n\n this.vnode = null;\n this.binding = null;\n this.lazy = null;\n }\n }]);\n return LazyContainer;\n}();\n\nLazyContainer.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n var lazyContainer = new LazyContainer({ lazy: lazy });\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n if (isVue2) {\n Vue.directive('lazy-container', {\n bind: lazyContainer.bind.bind(lazyContainer),\n componentUpdated: lazyContainer.update.bind(lazyContainer),\n unbind: lazyContainer.unbind.bind(lazyContainer)\n });\n } else {\n Vue.directive('lazy-container', {\n update: function update(newValue, oldValue) {\n lazyContainer.update(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n};\n\nvar LazyImage = function LazyImage(lazyManager) {\n return {\n props: {\n src: [String, Object],\n tag: {\n type: String,\n default: 'img'\n }\n },\n render: function render(h) {\n return h(this.tag, {\n attrs: {\n src: this.renderSrc\n }\n }, this.$slots.default);\n },\n data: function data() {\n return {\n el: null,\n options: {\n src: '',\n error: '',\n loading: '',\n attempt: lazyManager.options.attempt\n },\n state: {\n loaded: false,\n error: false,\n attempt: 0\n },\n rect: {},\n renderSrc: ''\n };\n },\n\n watch: {\n src: function src() {\n this.init();\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n }\n },\n created: function created() {\n this.init();\n this.renderSrc = this.options.loading;\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazyManager.removeComponent(this);\n },\n\n methods: {\n init: function init() {\n var _lazyManager$_valueFo = lazyManager._valueFormatter(this.src),\n src = _lazyManager$_valueFo.src,\n loading = _lazyManager$_valueFo.loading,\n error = _lazyManager$_valueFo.error;\n\n this.state.loaded = false;\n this.options.src = src;\n this.options.error = error;\n this.options.loading = loading;\n this.renderSrc = this.options.loading;\n },\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazyManager.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazyManager.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n var _this = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.state.attempt > this.options.attempt - 1 && this.state.error) {\n if (!lazyManager.options.silent) console.log('VueLazyload log: ' + this.options.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n var src = this.options.src;\n loadImageAsync({ src: src }, function (_ref) {\n var src = _ref.src;\n\n _this.renderSrc = src;\n _this.state.loaded = true;\n }, function (e) {\n _this.state.attempt++;\n _this.renderSrc = _this.options.error;\n _this.state.error = true;\n });\n }\n }\n };\n};\n\nLazyImage.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n Vue.component('lazy-image', LazyImage(lazy));\n};\n\nvar index = {\n /*\r\n * install function\r\n * @param {Vue} Vue\r\n * @param {object} options lazyload options\r\n */\n install: function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n var lazyContainer = new LazyContainerMananger({ lazy: lazy });\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n\n Vue.prototype.$Lazyload = lazy;\n\n if (options.lazyComponent) {\n Vue.component('lazy-component', LazyComponent(lazy));\n }\n\n if (options.lazyImage) {\n Vue.component('lazy-image', LazyImage(lazy));\n }\n\n if (isVue2) {\n Vue.directive('lazy', {\n bind: lazy.add.bind(lazy),\n update: lazy.update.bind(lazy),\n componentUpdated: lazy.lazyLoadHandler.bind(lazy),\n unbind: lazy.remove.bind(lazy)\n });\n Vue.directive('lazy-container', {\n bind: lazyContainer.bind.bind(lazyContainer),\n componentUpdated: lazyContainer.update.bind(lazyContainer),\n unbind: lazyContainer.unbind.bind(lazyContainer)\n });\n } else {\n Vue.directive('lazy', {\n bind: lazy.lazyLoadHandler.bind(lazy),\n update: function update(newValue, oldValue) {\n assignDeep(this.vm.$refs, this.vm.$els);\n lazy.add(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazy.remove(this.el);\n }\n });\n\n Vue.directive('lazy-container', {\n update: function update(newValue, oldValue) {\n lazyContainer.update(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n }\n};\n\nexport { Lazy, LazyComponent, LazyContainerMananger as LazyContainer, LazyImage, index as default };\n"],"sourceRoot":""}