├── .babelrc ├── .coveralls.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── config ├── karma.conf.js ├── webpack.dev.config.js └── webpack.prod.config.js ├── demo.gif ├── dist ├── VueLazyImages.js └── example.js ├── example ├── index.html ├── index.js └── loading.gif ├── package-lock.json ├── package.json ├── src ├── LazyImage.js ├── VueLazyImage.vue ├── index.js └── utils.js └── test ├── LazyImage.spec.js ├── tools.js └── utils.spec.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015","stage-0"] 3 | } 4 | -------------------------------------------------------------------------------- /.coveralls.yml: -------------------------------------------------------------------------------- 1 | service_name: travis-ci 2 | repo_token: GbifEcSbUl0kkaHRMAn8IGDRm1ADRL0KE -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /.idea 3 | /coverage -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6.4.0" 4 | cache: 5 | directories: 6 | - node_modules 7 | before_install: 8 | - npm install 9 | script: 10 | - npm run test 11 | - npm run build 12 | after_script: 13 | - npm run coverage -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 LowesYang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-lazyload-images 2 | [![npm](https://img.shields.io/badge/npm-v1.4.6-green.svg)](https://www.npmjs.com/package/vue-lazy-images) 3 | [![Build Status](https://travis-ci.org/yyh1102/vue-lazyload-images.svg?branch=master)](https://travis-ci.org/yyh1102/vue-lazyload-images) 4 | [![Coverage Status](https://coveralls.io/repos/github/yyh1102/vue-lazyload-images/badge.svg)](https://coveralls.io/github/yyh1102/vue-lazyload-images) 5 | [![npm](https://img.shields.io/npm/l/express.svg)](https://opensource.org/licenses/mit-license.php) 6 | 7 | A plugin of lazy-load images for Vue2.x 8 | 9 | Support images lazyload in window or build-in element. 10 | 11 | ## Demo 12 | ![Demo](https://github.com/yyh1102/vue-lazylaod-images/blob/master/demo.gif) 13 | 14 | ## Installation 15 | ### npm 16 | ``` 17 | $ npm install vue-lazy-images 18 | ``` 19 | or 20 | ### script 21 | ```html 22 | 23 | ``` 24 | 25 | ## Usage 26 | Entry.js 27 | ```javascript 28 | import Vue from "vue" 29 | import VueLazyImage from "vue-lazy-images"; 30 | Vue.use(VueLazyImage) 31 | ``` 32 | 33 | Template 34 | ```html 35 | 40 | ``` 41 | 42 | ## Options 43 | ```Vue.use(VueLazyImage,options)``` 44 | 45 | | key | description | default | type | 46 | |:----|:------------|:--------|:-----| 47 | | offset | offset distance for pre-loading | 0 | Number | 48 | | events | events that you want parentNode listen for | ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'] | Array | 49 | | throttle | spacing interval of continuous calling | 0(ms) | Number | 50 | | debounce | idle time between two actions | 0(ms) | Number | 51 | -------------------------------------------------------------------------------- /config/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration 2 | // Generated on Wed May 24 2017 23:11:10 GMT+0800 (中国标准时间) 3 | 4 | module.exports = function(config) { 5 | config.set({ 6 | 7 | // base path that will be used to resolve all patterns (eg. files, exclude) 8 | basePath: '../', 9 | 10 | 11 | // frameworks to use 12 | // available frameworks: https://npmjs.org/browse/keyword/karma-adapter 13 | frameworks: ['mocha','chai'], 14 | 15 | 16 | // list of files / patterns to load in the browser 17 | files: [ 18 | 'node_modules/babel-polyfill/dist/polyfill.min.js', // ES6 compatibility 19 | 'test/**/*.spec.js', 20 | ], 21 | 22 | 23 | // list of files to exclude 24 | exclude: [ 25 | ], 26 | 27 | 28 | // preprocess matching files before serving them to the browser 29 | // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 30 | preprocessors: { 31 | 'test/**/*.spec.js': ['webpack'] 32 | }, 33 | 34 | 35 | // test results reporter to use 36 | // possible values: 'dots', 'progress' 37 | // available reporters: https://npmjs.org/browse/keyword/karma-reporter 38 | reporters: ['progress','coverage','coveralls'], 39 | 40 | coverageReporter: { 41 | type: 'lcov', // lcov or lcovonly are required for generating lcov.info files 42 | dir: 'coverage/' 43 | }, 44 | 45 | // web server port 46 | port: 9876, 47 | 48 | 49 | // enable / disable colors in the output (reporters and logs) 50 | colors: true, 51 | 52 | 53 | // level of logging 54 | // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 55 | logLevel: config.LOG_INFO, 56 | 57 | 58 | // enable / disable watching file and executing tests whenever any file changes 59 | autoWatch: true, 60 | 61 | 62 | // start these browsers 63 | // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 64 | browsers: ['PhantomJS'], 65 | 66 | 67 | // Continuous Integration mode 68 | // if true, Karma captures browsers, runs the tests and exits 69 | singleRun: false, 70 | 71 | // Concurrency level 72 | // how many browser should be started simultaneous 73 | concurrency: Infinity, 74 | webpack: { 75 | module: { 76 | rules: [ 77 | { 78 | test: /\.js$/, 79 | loader: 'babel-loader', 80 | exclude: /node_modules/, 81 | query:{ 82 | plugins:['istanbul'] 83 | } 84 | }, 85 | { 86 | test:/\.vue$/, 87 | use:'vue-loader' 88 | } 89 | ] 90 | } 91 | } 92 | }) 93 | } 94 | -------------------------------------------------------------------------------- /config/webpack.dev.config.js: -------------------------------------------------------------------------------- 1 | var webpack=require("webpack"); 2 | var path=require("path"); 3 | 4 | module.exports={ 5 | entry: { 6 | example:'./example/index' 7 | }, 8 | output:{ 9 | libraryTarget:'umd', 10 | library:'[name]', 11 | path:path.resolve(__dirname,'..','dist'), 12 | publicPath:'/dist/', 13 | filename:'[name].js', 14 | }, 15 | module:{ 16 | rules:[ 17 | { 18 | test:/\.js[x]?$/, 19 | use:'babel-loader', 20 | exclude:/node_modules/ 21 | }, 22 | { 23 | test:/\.vue$/, 24 | use:'vue-loader' 25 | } 26 | ] 27 | }, 28 | resolve:{ 29 | extensions:['.js','.jsx'], 30 | alias:{ 31 | 'vue$':'vue/dist/vue.min.js' 32 | } 33 | }, 34 | plugins:[] 35 | } -------------------------------------------------------------------------------- /config/webpack.prod.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require("webpack"); 2 | var pack = require("../package.json"); 3 | var webpackDevConfig = require("./webpack.dev.config"); 4 | var merge = require("webpack-merge"); 5 | 6 | module.exports = merge.smart({}, webpackDevConfig, { 7 | entry: { 8 | VueLazyImages: './src/index' 9 | }, 10 | plugins: [ 11 | new webpack.optimize.UglifyJsPlugin({ 12 | compress: { 13 | warnings: false, 14 | drop_console: false 15 | }, 16 | comments: false, 17 | minimize: false 18 | }), 19 | new webpack.DefinePlugin({ 20 | 'process.env': { 21 | NODE_ENV: '"production"' 22 | } 23 | }), 24 | new webpack.BannerPlugin({ 25 | raw: true, 26 | banner: '/*!\n' + ' * ' + pack.name + ' v' + pack.version + '\n' 27 | + ' * (c) ' + new Date().getFullYear() + ' ' + pack.author + '\n' 28 | + ' * Released under the ' + pack.license + ' License.\n' 29 | + ' */' 30 | }) 31 | ] 32 | }); -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowesyang/vue-lazyload-images/7313a8b9586f6c68796a7cd6d3ce35915d822476/demo.gif -------------------------------------------------------------------------------- /dist/VueLazyImages.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * vue-lazy-images v1.4.6 3 | * (c) 2018 LowesYang 4 | * Released under the MIT License. 5 | */ 6 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueLazyImages=t():e.VueLazyImages=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=64)}({63:function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};o(this,e),this.init(t)}return r(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.images=[],this.scrollParent=new WeakSet,this.options=e,this.eventsList=e.eventsList||a}},{key:"addImage",value:function(e){if(e.tagName&&"img"===e.tagName.toLowerCase()){var t=(0,i.getScrollParent)(e);if(t){var n={el:e,scrollParent:t};this.images.push(n),this.initListener(t)}}}},{key:"removeImage",value:function(e){var t=this.images.findIndex(function(t){return t.el===e});this.images.splice(t,1)}},{key:"initListener",value:function(e){var t=this,n=void 0;if(n=this.options.throttle?(0,i.throttle)(this.loadImage,this.options.throttle):this.options.debounce?(0,i.debounce)(this.loadImage,this.options.debounce):this.loadImage,!this.scrollParent.has(e)){var o=(0,i.getStyle)(e,"position");""!==o&&"static"!==o||(e.style.position="relative"),this.scrollParent.add(e),this.eventsList.forEach(function(o){e.addEventListener(o,n.bind(t))})}}},{key:"loadImage",value:function(){for(var e=this,t=this.images,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};e.component("lazy-image",i.default),t.offset=parseInt(t.offset,10)||0;var n=new s.default(t);e.prototype.$lazyImages=n};t.default={install:l,VueLazyImage:i.default},t.install=l,t.VueLazyImage=i.default},65:function(e,t,n){var o=n(94)(n(66),n(95),null,null);o.options.__file="F:\\website\\vue-lazyload-images\\src\\VueLazyImage.vue",o.esModule&&Object.keys(o.esModule).some(function(e){return"default"!==e&&"__esModule"!==e})&&console.error("named exports are not supported in *.vue files."),o.options.functional&&console.error("[vue-loader] VueLazyImage.vue: functional components are not supported with templates, they should use render functions."),e.exports=o.exports},66:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{show:!1}},computed:{_class:function(){var e=void 0;return this.show&&(e=this.imgClass instanceof Array?this.imgClass.concat(["show"]):this.imgClass+" show"),e}},mounted:function(){var e=this;this.$lazyImages.addImage(this.$refs.target),this.$refs.target.onload=function(){e.show=!0},this.$lazyImages.loadImage()},beforeDestroy:function(){this.$lazyImages.removeImage(this.$refs.target)},props:{imgAlt:{type:String,default:""},src:{type:String,required:!0},placeholder:String,imgClass:{type:[Array,String],default:""}}}},67:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){return!!(window.ActiveXObject||"ActiveXObject"in window)},r=function(e,t){return e&&e!==window?(o()?e.currentStyle[t]:getComputedStyle?getComputedStyle(e,null).getPropertyValue(t):e.style[t])||e.style[t]:null},i=function(e){return/scroll|auto/.test(r(e,"overflow")+r(e,"overflow-y")+r(e,"overflow-x"))},a=function(e){if(!(e instanceof HTMLElement))return console.error(e+" is not an HTMLElement"),null;for(var t=e;t&&t!==document.body&&t!==document.documentElement;){if(!t.parentNode)return null;if(i(t))return t;t=t.parentNode}return window},s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=void 0,i=void 0,a=0,s=0,l=void 0;o=document.documentElement.clientHeight||document.body.clientHeight,i=document.documentElement.clientWidth||document.body.clientWidth;var u=void 0,c=void 0,f=void 0,d=void 0,p=void 0;if(p=e.getBoundingClientRect(),u=p.top-n,c=p.left-n,d=p.bottom+n,f=p.right+n,l=u0&&c0,t!==window){var h=t.scrollTop,v=t.scrollLeft,m=e.offsetWidth,g=e.offsetHeight;for(o=t.clientHeight,i=t.clientWidth;e&&e!==t;){var y=parseInt(r(e,"border-width"))||0;a+=e.offsetTop+y,s+=e.offsetLeft+y,e=e.offsetParent}l=l&&h+o>a-n&&a+g+n>h&&v+i>s-n&&s+m+n>v}return l},l=function(e,t){var n=0,o=void 0;return!t||t<=0?e:function(){var r=Date.now();r-n>t?(n=r,e.apply(this,arguments)):(clearTimeout(o),o=setTimeout(e.bind.apply(e,[this].concat(Array.prototype.slice.call(arguments))),t-(r-n)))}},u=function(e,t){var n=void 0;return!t||t<=0?e:function(){clearTimeout(n),n=setTimeout(e.bind.apply(e,[this].concat(Array.prototype.slice.call(arguments))),t)}};t.getScrollParent=a,t.getStyle=r,t.checkOverflow=i,t.checkInView=s,t.throttle=l,t.debounce=u},94:function(e,t){e.exports=function(e,t,n,o){var r,i=e=e||{},a=typeof e.default;"object"!==a&&"function"!==a||(r=e,i=e.default);var s="function"==typeof i?i.options:i;if(t&&(s.render=t.render,s.staticRenderFns=t.staticRenderFns),n&&(s._scopeId=n),o){var l=Object.create(s.computed||null);Object.keys(o).forEach(function(e){var t=o[e];l[e]=function(){return t}}),s.computed=l}return{esModule:r,exports:i,options:s}}},95:function(e,t,n){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("img",{ref:"target",class:e._class,attrs:{"data-src":e.src,src:e.placeholder,width:"100%",height:"100%",alt:e.imgAlt}})])},staticRenderFns:[]},e.exports.render._withStripped=!0}})}); -------------------------------------------------------------------------------- /dist/example.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * vue-lazy-images v1.4.6 3 | * (c) 2018 LowesYang 4 | * Released under the MIT License. 5 | */ 6 | !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.example=n():t.example=n()}(this,function(){return function(t){function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}var e={};return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},n.p="/dist/",n(n.s=133)}([function(t,n,e){var r=e(2),i=e(22),o=e(12),a=e(13),u=e(19),c=function(t,n,e){var s,f,l,p,v=t&c.F,d=t&c.G,h=t&c.S,y=t&c.P,g=t&c.B,m=d?r:h?r[n]||(r[n]={}):(r[n]||{}).prototype,_=d?i:i[n]||(i[n]={}),b=_.prototype||(_.prototype={});d&&(e=n);for(s in e)f=!v&&m&&void 0!==m[s],l=(f?m:e)[s],p=g&&f?u(l,r):y&&"function"==typeof l?u(Function.call,l):l,m&&a(m,s,l,t&c.U),_[s]!=l&&o(_,s,p),y&&b[s]!=l&&(b[s]=l)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,n,e){var r=e(4);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,e){var r=e(60)("wks"),i=e(41),o=e(2).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},function(t,n,e){t.exports=!e(3)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,n,e){var r=e(1),i=e(106),o=e(26),a=Object.defineProperty;n.f=e(6)?Object.defineProperty:function(t,n,e){if(r(t),n=o(n,!0),r(e),i)try{return a(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},function(t,n,e){var r=e(25),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,n,e){var r=e(23);t.exports=function(t){return Object(r(t))}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},function(t,n,e){var r=e(7),i=e(37);t.exports=e(6)?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){return t[n]=e,t}},function(t,n,e){var r=e(2),i=e(12),o=e(11),a=e(41)("src"),u=Function.toString,c=(""+u).split("toString");e(22).inspectSource=function(t){return u.call(t)},(t.exports=function(t,n,e,u){var s="function"==typeof e;s&&(o(e,"name")||i(e,"name",n)),t[n]!==e&&(s&&(o(e,a)||i(e,a,t[n]?""+t[n]:c.join(String(n)))),t===r?t[n]=e:u?t[n]?t[n]=e:i(t,n,e):(delete t[n],i(t,n,e)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||u.call(this)})},function(t,n,e){var r=e(0),i=e(3),o=e(23),a=/"/g,u=function(t,n,e,r){var i=String(o(t)),u="<"+n;return""!==e&&(u+=" "+e+'="'+String(r).replace(a,""")+'"'),u+">"+i+""};t.exports=function(t,n){var e={};e[t]=n(u),r(r.P+r.F*i(function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3}),"String",e)}},function(t,n,e){var r=e(48),i=e(37),o=e(17),a=e(26),u=e(11),c=e(106),s=Object.getOwnPropertyDescriptor;n.f=e(6)?s:function(t,n){if(t=o(t),n=a(n,!0),c)try{return s(t,n)}catch(t){}if(u(t,n))return i(!r.f.call(t,n),t[n])}},function(t,n,e){var r=e(11),i=e(9),o=e(84)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,n,e){var r=e(47),i=e(23);t.exports=function(t){return r(i(t))}},function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,n,e){var r=e(10);t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,i){return t.call(n,e,r,i)}}return function(){return t.apply(n,arguments)}}},function(t,n,e){"use strict";var r=e(3);t.exports=function(t,n){return!!t&&r(function(){n?t.call(null,function(){},1):t.call(null)})}},function(t,n,e){var r=e(19),i=e(47),o=e(9),a=e(8),u=e(69);t.exports=function(t,n){var e=1==t,c=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l,v=n||u;return function(n,u,d){for(var h,y,g=o(n),m=i(g),_=r(u,d,3),b=a(m.length),w=0,x=e?v(n,b):c?v(n,0):void 0;b>w;w++)if((p||w in m)&&(h=m[w],y=_(h,w,g),t))if(e)x[w]=y;else if(y)switch(t){case 3:return!0;case 5:return h;case 6:return w;case 2:x.push(h)}else if(f)return!1;return l?-1:s||f?f:x}}},function(t,n){var e=t.exports={version:"2.5.1"};"number"==typeof __e&&(__e=e)},function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,n,e){var r=e(0),i=e(22),o=e(3);t.exports=function(t,n){var e=(i.Object||{})[t]||Object[t],a={};a[t]=n(e),r(r.S+r.F*o(function(){e(1)}),"Object",a)}},function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},function(t,n,e){var r=e(4);t.exports=function(t,n){if(!r(t))return t;var e,i;if(n&&"function"==typeof(e=t.toString)&&!r(i=e.call(t)))return i;if("function"==typeof(e=t.valueOf)&&!r(i=e.call(t)))return i;if(!n&&"function"==typeof(e=t.toString)&&!r(i=e.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,n,e){var r=e(127),i=e(0),o=e(60)("metadata"),a=o.store||(o.store=new(e(130))),u=function(t,n,e){var i=a.get(t);if(!i){if(!e)return;a.set(t,i=new r)}var o=i.get(n);if(!o){if(!e)return;i.set(n,o=new r)}return o},c=function(t,n,e){var r=u(n,e,!1);return void 0!==r&&r.has(t)},s=function(t,n,e){var r=u(n,e,!1);return void 0===r?void 0:r.get(t)},f=function(t,n,e,r){u(e,r,!0).set(t,n)},l=function(t,n){var e=u(t,n,!1),r=[];return e&&e.forEach(function(t,n){r.push(n)}),r},p=function(t){return void 0===t||"symbol"==typeof t?t:String(t)},v=function(t){i(i.S,"Reflect",t)};t.exports={store:a,map:u,has:c,get:s,set:f,keys:l,key:p,exp:v}},function(t,n,e){"use strict";if(e(6)){var r=e(33),i=e(2),o=e(3),a=e(0),u=e(62),c=e(90),s=e(19),f=e(31),l=e(37),p=e(12),v=e(38),d=e(25),h=e(8),y=e(125),g=e(40),m=e(26),_=e(11),b=e(46),w=e(4),x=e(9),S=e(76),O=e(34),A=e(16),E=e(35).f,k=e(92),$=e(41),C=e(5),M=e(21),P=e(49),j=e(61),T=e(93),I=e(42),F=e(55),N=e(39),L=e(68),R=e(98),D=e(7),B=e(15),U=D.f,V=B.f,W=i.RangeError,z=i.TypeError,G=i.Uint8Array,H=Array.prototype,K=c.ArrayBuffer,J=c.DataView,q=M(0),Y=M(2),X=M(3),Z=M(4),Q=M(5),tt=M(6),nt=P(!0),et=P(!1),rt=T.values,it=T.keys,ot=T.entries,at=H.lastIndexOf,ut=H.reduce,ct=H.reduceRight,st=H.join,ft=H.sort,lt=H.slice,pt=H.toString,vt=H.toLocaleString,dt=C("iterator"),ht=C("toStringTag"),yt=$("typed_constructor"),gt=$("def_constructor"),mt=u.CONSTR,_t=u.TYPED,bt=u.VIEW,wt=M(1,function(t,n){return Et(j(t,t[gt]),n)}),xt=o(function(){return 1===new G(new Uint16Array([1]).buffer)[0]}),St=!!G&&!!G.prototype.set&&o(function(){new G(1).set({})}),Ot=function(t,n){var e=d(t);if(e<0||e%n)throw W("Wrong offset!");return e},At=function(t){if(w(t)&&_t in t)return t;throw z(t+" is not a typed array!")},Et=function(t,n){if(!(w(t)&&yt in t))throw z("It is not a typed array constructor!");return new t(n)},kt=function(t,n){return $t(j(t,t[gt]),n)},$t=function(t,n){for(var e=0,r=n.length,i=Et(t,r);r>e;)i[e]=n[e++];return i},Ct=function(t,n,e){U(t,n,{get:function(){return this._d[e]}})},Mt=function(t){var n,e,r,i,o,a,u=x(t),c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,p=k(u);if(void 0!=p&&!S(p)){for(a=p.call(u),r=[],n=0;!(o=a.next()).done;n++)r.push(o.value);u=r}for(l&&c>2&&(f=s(f,arguments[2],2)),n=0,e=h(u.length),i=Et(this,e);e>n;n++)i[n]=l?f(u[n],n):u[n];return i},Pt=function(){for(var t=0,n=arguments.length,e=Et(this,n);n>t;)e[t]=arguments[t++];return e},jt=!!G&&o(function(){vt.call(new G(1))}),Tt=function(){return vt.apply(jt?lt.call(At(this)):At(this),arguments)},It={copyWithin:function(t,n){return R.call(At(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return Z(At(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return L.apply(At(this),arguments)},filter:function(t){return kt(this,Y(At(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(At(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(At(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){q(At(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return et(At(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return nt(At(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return st.apply(At(this),arguments)},lastIndexOf:function(t){return at.apply(At(this),arguments)},map:function(t){return wt(At(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ut.apply(At(this),arguments)},reduceRight:function(t){return ct.apply(At(this),arguments)},reverse:function(){for(var t,n=this,e=At(n).length,r=Math.floor(e/2),i=0;i1?arguments[1]:void 0)},sort:function(t){return ft.call(At(this),t)},subarray:function(t,n){var e=At(this),r=e.length,i=g(t,r);return new(j(e,e[gt]))(e.buffer,e.byteOffset+i*e.BYTES_PER_ELEMENT,h((void 0===n?r:g(n,r))-i))}},Ft=function(t,n){return kt(this,lt.call(At(this),t,n))},Nt=function(t){At(this);var n=Ot(arguments[1],1),e=this.length,r=x(t),i=h(r.length),o=0;if(i+n>e)throw W("Wrong length!");for(;o255?255:255&r),i.v[v](e*n+i.o,r,xt)},C=function(t,n){U(t,n,{get:function(){return k(this,n)},set:function(t){return $(this,n,t)},enumerable:!0})};_?(d=e(function(t,e,r,i){f(t,d,s,"_d");var o,a,u,c,l=0,v=0;if(w(e)){if(!(e instanceof K||"ArrayBuffer"==(c=b(e))||"SharedArrayBuffer"==c))return _t in e?$t(d,e):Mt.call(d,e);o=e,v=Ot(r,n);var g=e.byteLength;if(void 0===i){if(g%n)throw W("Wrong length!");if((a=g-v)<0)throw W("Wrong length!")}else if((a=h(i)*n)+v>g)throw W("Wrong length!");u=a/n}else u=y(e),a=u*n,o=new K(a);for(p(t,"_d",{b:o,o:v,l:a,e:u,v:new J(o)});l_;_++)if((y=n?m(a(d=t[_])[0],d[1]):m(t[_]))===s||y===f)return y}else for(h=g.call(t);!(d=h.next()).done;)if((y=i(h,m,d.value,n))===s||y===f)return y};n.BREAK=s,n.RETURN=f},function(t,n){t.exports=!1},function(t,n,e){var r=e(1),i=e(115),o=e(72),a=e(84)("IE_PROTO"),u=function(){},c=function(){var t,n=e(71)("iframe"),r=o.length;for(n.style.display="none",e(74).appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write("