@nutui/nutui 2.3.13 → 2.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/.DS_Store +0 -0
- package/dist/nutui.css +1 -1
- package/dist/nutui.js +2380 -518
- package/dist/nutui.js.map +1 -1
- package/dist/nutui.min.css +1 -1
- package/dist/nutui.min.js +3 -3
- package/dist/nutui.min.js.map +1 -1
- package/dist/packages/.DS_Store +0 -0
- package/dist/packages/actionsheet/actionsheet.css +1 -1
- package/dist/packages/actionsheet/actionsheet.js +2 -2
- package/dist/packages/actionsheet/actionsheet.js.map +1 -1
- package/dist/packages/address/address.css +1 -1
- package/dist/packages/address/address.js +2 -2
- package/dist/packages/address/address.js.map +1 -1
- package/dist/packages/avatar/avatar.css +1 -1
- package/dist/packages/avatar/avatar.js +2 -2
- package/dist/packages/avatar/avatar.js.map +1 -1
- package/dist/packages/backtop/backtop.css +1 -1
- package/dist/packages/backtop/backtop.js +2 -2
- package/dist/packages/backtop/backtop.js.map +1 -1
- package/dist/packages/badge/badge.css +1 -1
- package/dist/packages/badge/badge.js +2 -2
- package/dist/packages/badge/badge.js.map +1 -1
- package/dist/packages/button/button.css +1 -1
- package/dist/packages/button/button.js +2 -2
- package/dist/packages/button/button.js.map +1 -1
- package/dist/packages/buttongroup/buttongroup.css +1 -1
- package/dist/packages/buttongroup/buttongroup.js +2 -2
- package/dist/packages/buttongroup/buttongroup.js.map +1 -1
- package/dist/packages/calendar/calendar.css +1 -1
- package/dist/packages/calendar/calendar.js +2 -2
- package/dist/packages/calendar/calendar.js.map +1 -1
- package/dist/packages/cell/cell.css +1 -1
- package/dist/packages/cell/cell.js +2 -2
- package/dist/packages/cell/cell.js.map +1 -1
- package/dist/packages/checkbox/checkbox.css +1 -1
- package/dist/packages/checkbox/checkbox.js +2 -2
- package/dist/packages/checkbox/checkbox.js.map +1 -1
- package/dist/packages/checkboxgroup/checkboxgroup.css +1 -1
- package/dist/packages/checkboxgroup/checkboxgroup.js +2 -2
- package/dist/packages/checkboxgroup/checkboxgroup.js.map +1 -1
- package/dist/packages/checkboxgroup/checkboxgroup.vue +6 -1
- package/dist/packages/circleprogress/circleprogress.css +1 -1
- package/dist/packages/circleprogress/circleprogress.js +2 -2
- package/dist/packages/circleprogress/circleprogress.js.map +1 -1
- package/dist/packages/col/col.css +1 -1
- package/dist/packages/col/col.js +2 -2
- package/dist/packages/col/col.js.map +1 -1
- package/dist/packages/collapse/collapse.css +1 -1
- package/dist/packages/collapse/collapse.js +2 -2
- package/dist/packages/collapse/collapse.js.map +1 -1
- package/dist/packages/collapseitem/collapseitem.css +1 -1
- package/dist/packages/collapseitem/collapseitem.js +2 -2
- package/dist/packages/collapseitem/collapseitem.js.map +1 -1
- package/dist/packages/collapseitem/collapseitem.vue +14 -2
- package/dist/packages/countdown/countdown.css +1 -1
- package/dist/packages/countdown/countdown.js +2 -2
- package/dist/packages/countdown/countdown.js.map +1 -1
- package/dist/packages/countup/countup.css +1 -1
- package/dist/packages/countup/countup.js +2 -2
- package/dist/packages/countup/countup.js.map +1 -1
- package/dist/packages/coupon/coupon.css +1 -1
- package/dist/packages/coupon/coupon.js +2 -2
- package/dist/packages/coupon/coupon.js.map +1 -1
- package/dist/packages/datepicker/datepicker.css +1 -1
- package/dist/packages/datepicker/datepicker.js +2 -2
- package/dist/packages/datepicker/datepicker.js.map +1 -1
- package/dist/packages/dialog/dialog.css +1 -1
- package/dist/packages/dialog/dialog.js +2 -2
- package/dist/packages/dialog/dialog.js.map +1 -1
- package/dist/packages/drag/drag.css +1 -1
- package/dist/packages/drag/drag.js +2 -2
- package/dist/packages/drag/drag.js.map +1 -1
- package/dist/packages/elevator/elevator.css +1 -1
- package/dist/packages/elevator/elevator.js +2 -2
- package/dist/packages/elevator/elevator.js.map +1 -1
- package/dist/packages/fixednav/fixednav.css +1 -1
- package/dist/packages/fixednav/fixednav.js +2 -2
- package/dist/packages/fixednav/fixednav.js.map +1 -1
- package/dist/packages/flex/flex.css +1 -1
- package/dist/packages/flex/flex.js +2 -2
- package/dist/packages/flex/flex.js.map +1 -1
- package/dist/packages/icon/icon.css +1 -1
- package/dist/packages/icon/icon.js +2 -2
- package/dist/packages/icon/icon.js.map +1 -1
- package/dist/packages/imagepicker/imagepicker.css +1 -1
- package/dist/packages/imagepicker/imagepicker.js +2 -2
- package/dist/packages/imagepicker/imagepicker.js.map +1 -1
- package/dist/packages/infiniteloading/infiniteloading.css +1 -1
- package/dist/packages/infiniteloading/infiniteloading.js +2 -2
- package/dist/packages/infiniteloading/infiniteloading.js.map +1 -1
- package/dist/packages/lazyload/lazyload.css +1 -1
- package/dist/packages/lazyload/lazyload.js +3 -3
- package/dist/packages/lazyload/lazyload.js.map +1 -1
- package/dist/packages/leftslip/leftslip.css +1 -1
- package/dist/packages/leftslip/leftslip.js +2 -2
- package/dist/packages/leftslip/leftslip.js.map +1 -1
- package/dist/packages/luckdraw/luckdraw.css +1 -1
- package/dist/packages/luckdraw/luckdraw.js +2 -2
- package/dist/packages/luckdraw/luckdraw.js.map +1 -1
- package/dist/packages/luckycard/luckycard.css +1 -1
- package/dist/packages/luckycard/luckycard.js +2 -2
- package/dist/packages/luckycard/luckycard.js.map +1 -1
- package/dist/packages/magic/magic.css +1 -1
- package/dist/packages/magic/magic.js +2 -2
- package/dist/packages/magic/magic.js.map +1 -1
- package/dist/packages/menu/menu.css +1 -1
- package/dist/packages/menu/menu.js +2 -2
- package/dist/packages/menu/menu.js.map +1 -1
- package/dist/packages/navbar/navbar.css +1 -1
- package/dist/packages/navbar/navbar.js +2 -2
- package/dist/packages/navbar/navbar.js.map +1 -1
- package/dist/packages/ninegrid/ninegrid.css +1 -1
- package/dist/packages/ninegrid/ninegrid.js +2 -2
- package/dist/packages/ninegrid/ninegrid.js.map +1 -1
- package/dist/packages/noticebar/noticebar.css +1 -1
- package/dist/packages/noticebar/noticebar.js +2 -2
- package/dist/packages/noticebar/noticebar.js.map +1 -1
- package/dist/packages/notify/notify.css +1 -1
- package/dist/packages/notify/notify.js +2 -2
- package/dist/packages/notify/notify.js.map +1 -1
- package/dist/packages/numberkeyboard/numberkeyboard.css +1 -1
- package/dist/packages/numberkeyboard/numberkeyboard.js +2 -2
- package/dist/packages/numberkeyboard/numberkeyboard.js.map +1 -1
- package/dist/packages/picker/picker.css +1 -1
- package/dist/packages/picker/picker.js +2 -2
- package/dist/packages/picker/picker.js.map +1 -1
- package/dist/packages/popup/popup.css +1 -1
- package/dist/packages/popup/popup.js +2 -2
- package/dist/packages/popup/popup.js.map +1 -1
- package/dist/packages/price/price.css +1 -1
- package/dist/packages/price/price.js +2 -2
- package/dist/packages/price/price.js.map +1 -1
- package/dist/packages/progress/progress.css +1 -1
- package/dist/packages/progress/progress.js +2 -2
- package/dist/packages/progress/progress.js.map +1 -1
- package/dist/packages/radio/radio.css +1 -1
- package/dist/packages/radio/radio.js +2 -2
- package/dist/packages/radio/radio.js.map +1 -1
- package/dist/packages/radiogroup/radiogroup.css +1 -1
- package/dist/packages/radiogroup/radiogroup.js +2 -2
- package/dist/packages/radiogroup/radiogroup.js.map +1 -1
- package/dist/packages/range/range.css +1 -1
- package/dist/packages/range/range.js +2 -2
- package/dist/packages/range/range.js.map +1 -1
- package/dist/packages/rate/rate.css +1 -1
- package/dist/packages/rate/rate.js +2 -2
- package/dist/packages/rate/rate.js.map +1 -1
- package/dist/packages/row/row.css +1 -1
- package/dist/packages/row/row.js +2 -2
- package/dist/packages/row/row.js.map +1 -1
- package/dist/packages/scroller/scroller.css +1 -1
- package/dist/packages/scroller/scroller.js +2 -2
- package/dist/packages/scroller/scroller.js.map +1 -1
- package/dist/packages/searchbar/searchbar.css +1 -1
- package/dist/packages/searchbar/searchbar.js +2 -2
- package/dist/packages/searchbar/searchbar.js.map +1 -1
- package/dist/packages/shortpassword/shortpassword.css +1 -1
- package/dist/packages/shortpassword/shortpassword.js +2 -2
- package/dist/packages/shortpassword/shortpassword.js.map +1 -1
- package/dist/packages/sidenavbar/sidenavbar.css +1 -1
- package/dist/packages/sidenavbar/sidenavbar.js +2 -2
- package/dist/packages/sidenavbar/sidenavbar.js.map +1 -1
- package/dist/packages/sidenavbaritem/sidenavbaritem.css +1 -1
- package/dist/packages/sidenavbaritem/sidenavbaritem.js +2 -2
- package/dist/packages/sidenavbaritem/sidenavbaritem.js.map +1 -1
- package/dist/packages/signature/signature.css +1 -1
- package/dist/packages/signature/signature.js +2 -2
- package/dist/packages/signature/signature.js.map +1 -1
- package/dist/packages/skeleton/skeleton.css +1 -1
- package/dist/packages/skeleton/skeleton.js +2 -2
- package/dist/packages/skeleton/skeleton.js.map +1 -1
- package/dist/packages/slider/slider.css +1 -1
- package/dist/packages/slider/slider.js +2 -2
- package/dist/packages/slider/slider.js.map +1 -1
- package/dist/packages/stepper/stepper.css +1 -1
- package/dist/packages/stepper/stepper.js +2 -2
- package/dist/packages/stepper/stepper.js.map +1 -1
- package/dist/packages/steps/steps.css +1 -1
- package/dist/packages/steps/steps.js +2 -2
- package/dist/packages/steps/steps.js.map +1 -1
- package/dist/packages/subsidenavbar/subsidenavbar.css +1 -1
- package/dist/packages/subsidenavbar/subsidenavbar.js +2 -2
- package/dist/packages/subsidenavbar/subsidenavbar.js.map +1 -1
- package/dist/packages/swiper/swiper.css +1 -1
- package/dist/packages/swiper/swiper.js +2 -2
- package/dist/packages/swiper/swiper.js.map +1 -1
- package/dist/packages/switch/switch.css +1 -1
- package/dist/packages/switch/switch.js +2 -2
- package/dist/packages/switch/switch.js.map +1 -1
- package/dist/packages/tab/tab.css +1 -1
- package/dist/packages/tab/tab.js +2 -2
- package/dist/packages/tab/tab.js.map +1 -1
- package/dist/packages/tabbar/tabbar.css +1 -1
- package/dist/packages/tabbar/tabbar.js +2 -2
- package/dist/packages/tabbar/tabbar.js.map +1 -1
- package/dist/packages/tabpanel/tabpanel.css +1 -1
- package/dist/packages/tabpanel/tabpanel.js +2 -2
- package/dist/packages/tabpanel/tabpanel.js.map +1 -1
- package/dist/packages/tabselect/tabselect.css +1 -1
- package/dist/packages/tabselect/tabselect.js +2 -2
- package/dist/packages/tabselect/tabselect.js.map +1 -1
- package/dist/packages/textbox/textbox.css +1 -1
- package/dist/packages/textbox/textbox.js +2 -2
- package/dist/packages/textbox/textbox.js.map +1 -1
- package/dist/packages/textinput/textinput.css +1 -1
- package/dist/packages/textinput/textinput.js +2 -2
- package/dist/packages/textinput/textinput.js.map +1 -1
- package/dist/packages/timeline/timeline.css +1 -1
- package/dist/packages/timeline/timeline.js +2 -2
- package/dist/packages/timeline/timeline.js.map +1 -1
- package/dist/packages/timelineitem/timelineitem.css +1 -1
- package/dist/packages/timelineitem/timelineitem.js +2 -2
- package/dist/packages/timelineitem/timelineitem.js.map +1 -1
- package/dist/packages/toast/toast.css +1 -1
- package/dist/packages/toast/toast.js +2 -2
- package/dist/packages/toast/toast.js.map +1 -1
- package/dist/packages/uploader/uploader.css +1 -1
- package/dist/packages/uploader/uploader.js +2 -2
- package/dist/packages/uploader/uploader.js.map +1 -1
- package/dist/packages/video/video.css +1 -1
- package/dist/packages/video/video.js +2 -2
- package/dist/packages/video/video.js.map +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./node_modules/vue-lazyload/vue-lazyload.esm.js","webpack://[name]/./src/packages/lazyload/index.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isPrimitive","isPrimitive$1","freeze","__proto__","__moduleExports","assignSymbols","receiver","objects","TypeError","getOwnPropertySymbols","isEnumerable","propertyIsEnumerable","target","len","arguments","length","provider","names","j","assignSymbols$1","toString","kindOf","val","type","Boolean","String","Number","Function","constructor","slice","Array","isArray","RegExp","Date","isBuffer","kindOf$1","isPrimitive$2","assignSymbols$2","typeOf","isObject","extend","obj","isValidKey","hasOwn","assignDeep","inBrowser","window","hasIntersectionObserver","IntersectionObserverEntry","intersectionRatio","checkIntersectionObserver","modeType","CustomEvent","Event","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","remove","arr","item","index","indexOf","splice","getBestSelectionFromSrcset","el","scale","tagName","getAttribute","options","result","containerWidth","parentNode","offsetWidth","spaceIndex","tmpSrc","tmpWidth","trim","split","map","lastIndexOf","substr","parseInt","push","sort","a","b","tmpOption","bestSelectedSrc","next","find","fn","getDPR","devicePixelRatio","supportWebp","support","elem","createElement","getContext","toDataURL","err","supportsPassive","opts","addEventListener","e","testSupportsPassive","_","func","capture","passive","removeEventListener","loadImageAsync","resolve","reject","image","Image","src","Error","cors","crossOrigin","onload","naturalHeight","naturalWidth","onerror","style","prop","getComputedStyle","getPropertyValue","overflow","noop","ImageCache","max","_caches","has","free","shift","ReactiveListener","error","loading","bindType","$parent","elRenderer","imageCache","attempt","rect","_imageCache","performanceData","init","now","loadStart","loadEnd","filter","initState","render","dataset","setAttribute","state","loaded","rendered","oldSrc","getBoundingClientRect","getRect","top","innerHeight","preLoad","bottom","preLoadTop","left","innerWidth","right","keys","ObjectKeys","cb","data","silent","console","warn","onFinish","log","renderLoading","adapter","record","add","cache","time","DEFAULT_URL","DEFAULT_EVENTS","DEFAULT_OBSERVER_OPTIONS","rootMargin","threshold","Lazy","Vue","throttleWait","dispatchEvent","listenEvents","hasbind","observer","observerOptions","version","ListenerQueue","TargetIndex","TargetQueue","ListenEvents","_initEvent","lazyLoadHandler","action","delay","timeout","movement","lastRun","needRun","elapsed","context","args","runCallback","apply","setTimeout","clearTimeout","throttle","_lazyLoadHandler","setMode","list","performance","vm","_addListenerTarget","_observer","observe","$el","binding","vnode","some","update","nextTick","_valueFormatter","container","modifiers","$refs","getElementById","HTMLElement","parent","body","documentElement","test","scrollParent","newListener","arg","_elRenderer","exist","unobserve","existItem","_removeListenerTarget","$destroy","forEach","listener","_initListen","_initIntersectionObserver","childrenCount","id","listened","start","listeners","$on","$once","on","$off","$emit","inCache","freeList","checkInView","load","IntersectionObserver","_observerHandler","entries","entry","isIntersecting","install","lazy","directive","componentUpdated","unbind","newValue","oldValue","$els","LazyComponent","props","tag","default","h","show","$slots","addLazyBox","removeComponent","methods","component","LazyContainerMananger","lazyContainerMananger","_queue","LazyContainer","clear","defaultOptions","selector","getImgs","arrLike","ArrayFrom","querySelectorAll","lazyContainer","LazyImage","lazyManager","attrs","renderSrc","watch","isVue2","$Lazyload","lazyComponent","lazyImage","Lazyload"],"mappings":"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","file":"lazyload/lazyload.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"lazyload\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"lazyload\"] = factory();\n\telse\n\t\troot[\"lazyload\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 214);\n","/*!\n * Vue-Lazyload.js v1.3.4\n * (c) 2021 Awe <hilongjw@gmail.com>\n * Released under the MIT License.\n */\n\n/*!\n * is-primitive <https://github.com/jonschlinkert/is-primitive>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n// see http://jsperf.com/testing-value-is-primitive/7\n\nvar isPrimitive = function isPrimitive(value) {\n return value == null || typeof value !== 'function' && typeof value !== 'object';\n};\n\nvar isPrimitive$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': isPrimitive,\n __moduleExports: isPrimitive\n});\n\n/*!\n * assign-symbols <https://github.com/jonschlinkert/assign-symbols>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nvar assignSymbols = function (receiver, objects) {\n if (receiver === null || typeof receiver === 'undefined') {\n throw new TypeError('expected first argument to be an object.');\n }\n\n if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {\n return receiver;\n }\n\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return receiver;\n }\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var target = Object(receiver);\n var len = arguments.length,\n i = 0;\n\n while (++i < len) {\n var provider = Object(arguments[i]);\n var names = Object.getOwnPropertySymbols(provider);\n\n for (var j = 0; j < names.length; j++) {\n var key = names[j];\n\n if (isEnumerable.call(provider, key)) {\n target[key] = provider[key];\n }\n }\n }\n return target;\n};\n\nvar assignSymbols$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': assignSymbols,\n __moduleExports: assignSymbols\n});\n\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param {*} `val`\n * @return {*} Native javascript type\n */\n\nvar kindOf = function kindOf(val) {\n var type = typeof val;\n\n // primitivies\n if (type === 'undefined') {\n return 'undefined';\n }\n if (val === null) {\n return 'null';\n }\n if (val === true || val === false || val instanceof Boolean) {\n return 'boolean';\n }\n if (type === 'string' || val instanceof String) {\n return 'string';\n }\n if (type === 'number' || val instanceof Number) {\n return 'number';\n }\n\n // functions\n if (type === 'function' || val instanceof Function) {\n if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {\n return 'generatorfunction';\n }\n return 'function';\n }\n\n // array\n if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n return 'array';\n }\n\n // check for instances of RegExp and Date before calling `toString`\n if (val instanceof RegExp) {\n return 'regexp';\n }\n if (val instanceof Date) {\n return 'date';\n }\n\n // other objects\n type = toString.call(val);\n\n if (type === '[object RegExp]') {\n return 'regexp';\n }\n if (type === '[object Date]') {\n return 'date';\n }\n if (type === '[object Arguments]') {\n return 'arguments';\n }\n if (type === '[object Error]') {\n return 'error';\n }\n if (type === '[object Promise]') {\n return 'promise';\n }\n\n // buffer\n if (isBuffer(val)) {\n return 'buffer';\n }\n\n // es6: Map, WeakMap, Set, WeakSet\n if (type === '[object Set]') {\n return 'set';\n }\n if (type === '[object WeakSet]') {\n return 'weakset';\n }\n if (type === '[object Map]') {\n return 'map';\n }\n if (type === '[object WeakMap]') {\n return 'weakmap';\n }\n if (type === '[object Symbol]') {\n return 'symbol';\n }\n\n if (type === '[object Map Iterator]') {\n return 'mapiterator';\n }\n if (type === '[object Set Iterator]') {\n return 'setiterator';\n }\n if (type === '[object String Iterator]') {\n return 'stringiterator';\n }\n if (type === '[object Array Iterator]') {\n return 'arrayiterator';\n }\n\n // typed arrays\n if (type === '[object Int8Array]') {\n return 'int8array';\n }\n if (type === '[object Uint8Array]') {\n return 'uint8array';\n }\n if (type === '[object Uint8ClampedArray]') {\n return 'uint8clampedarray';\n }\n if (type === '[object Int16Array]') {\n return 'int16array';\n }\n if (type === '[object Uint16Array]') {\n return 'uint16array';\n }\n if (type === '[object Int32Array]') {\n return 'int32array';\n }\n if (type === '[object Uint32Array]') {\n return 'uint32array';\n }\n if (type === '[object Float32Array]') {\n return 'float32array';\n }\n if (type === '[object Float64Array]') {\n return 'float64array';\n }\n\n // must be a plain object\n return 'object';\n};\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n return val.constructor && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\nvar kindOf$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': kindOf,\n __moduleExports: kindOf\n});\n\nvar isPrimitive$2 = ( isPrimitive$1 && isPrimitive ) || isPrimitive$1;\n\nvar assignSymbols$2 = ( assignSymbols$1 && assignSymbols ) || assignSymbols$1;\n\nvar typeOf = ( kindOf$1 && kindOf ) || kindOf$1;\n\nfunction assign(target /*, objects*/) {\n target = target || {};\n var len = arguments.length,\n i = 0;\n if (len === 1) {\n return target;\n }\n while (++i < len) {\n var val = arguments[i];\n if (isPrimitive$2(target)) {\n target = val;\n }\n if (isObject(val)) {\n extend(target, val);\n }\n }\n return target;\n}\n\n/**\n * Shallow extend\n */\n\nfunction extend(target, obj) {\n assignSymbols$2(target, obj);\n\n for (var key in obj) {\n if (isValidKey(key) && hasOwn(obj, key)) {\n var val = obj[key];\n if (isObject(val)) {\n if (typeOf(target[key]) === 'undefined' && typeOf(val) === 'function') {\n target[key] = val;\n }\n target[key] = assign(target[key] || {}, val);\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n}\n\n/**\n * Returns true if the object is a plain object or a function.\n */\n\nfunction isObject(obj) {\n return typeOf(obj) === 'object' || typeOf(obj) === 'function';\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Returns true if the given `key` is a valid key that can be used for assigning properties.\n */\n\nfunction isValidKey(key) {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n}\n\n/**\n * Expose `assign`\n */\n\nvar assignDeep = assign;\n\nconst inBrowser = typeof window !== 'undefined' && window !== null;\n\nconst 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 () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return true;\n }\n return false;\n}\n\nconst modeType = {\n event: 'event',\n observer: 'observer'\n\n // CustomEvent polyfill for IE\n};const 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 const index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\n\nfunction some(arr, fn) {\n let has = false;\n for (let 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 let options = el.getAttribute('data-srcset');\n const result = [];\n const container = el.parentNode;\n const containerWidth = container.offsetWidth * scale;\n\n let spaceIndex;\n let tmpSrc;\n let tmpWidth;\n\n options = options.trim().split(',');\n\n options.map(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 let bestSelectedSrc = '';\n let tmpOption;\n\n for (let i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n const 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 let item;\n for (let 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\nconst getDPR = (scale = 1) => inBrowser ? window.devicePixelRatio || scale : scale;\n\nfunction supportWebp() {\n if (!inBrowser) return false;\n\n let support = true;\n\n try {\n const 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 let timeout = null;\n let movement = null;\n let lastRun = 0;\n let needRun = false;\n return function () {\n needRun = true;\n if (timeout) {\n return;\n }\n let elapsed = Date.now() - lastRun;\n let context = this;\n let args = arguments;\n let runCallback = function () {\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 let support = false;\n try {\n let opts = Object.defineProperty({}, 'passive', {\n get: function () {\n support = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return support;\n}\n\nconst supportsPassive = testSupportsPassive();\n\nconst _ = {\n on(el, type, func, capture = false) {\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(el, type, func, capture = false) {\n el.removeEventListener(type, func, capture);\n }\n};\n\nconst loadImageAsync = (item, resolve, reject) => {\n let image = new Image();\n if (!item || !item.src) {\n const 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\nconst style = (el, prop) => {\n return typeof getComputedStyle !== 'undefined' ? getComputedStyle(el, null).getPropertyValue(prop) : el.style[prop];\n};\n\nconst overflow = el => {\n return style(el, 'overflow') + style(el, 'overflow-y') + style(el, 'overflow-x');\n};\n\nconst scrollParent = el => {\n if (!inBrowser) return;\n if (!(el instanceof HTMLElement)) {\n return window;\n }\n\n let 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$1(obj) {\n return obj !== null && 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 let keys = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n\nfunction ArrayFrom(arrLike) {\n let len = arrLike.length;\n const list = [];\n for (let i = 0; i < len; i++) {\n list.push(arrLike[i]);\n }\n return list;\n}\n\nfunction noop() {}\n\nclass ImageCache {\n constructor({ max }) {\n this.options = {\n max: max || 100\n };\n this._caches = [];\n }\n\n has(key) {\n return this._caches.indexOf(key) > -1;\n }\n\n 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 free() {\n this._caches.shift();\n }\n}\n\n// el: {\n// state,\n// src,\n// error,\n// loading\n// }\n\nclass ReactiveListener {\n constructor({ el, src, error, loading, bindType, $parent, options, cors, elRenderer, imageCache }) {\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 /*\n * init listener state\n * @return\n */\n 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 /*\n * record performance\n * @return\n */\n record(event) {\n this.performanceData[event] = Date.now();\n }\n\n /*\n * update image listener data\n * @param {String} image uri\n * @param {String} loading image uri\n * @param {String} error image uri\n * @return\n */\n update({ src, loading, error }) {\n const 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 /*\n * get el node rect\n * @return\n */\n getRect() {\n this.rect = this.el.getBoundingClientRect();\n }\n\n /*\n * check el is in view\n * @return {Boolean} el is in view\n */\n 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 /*\n * listener filter\n */\n filter() {\n ObjectKeys(this.options.filter).map(key => {\n this.options.filter[key](this, this.options);\n });\n }\n\n /*\n * render loading first\n * @params cb:Function\n * @return\n */\n renderLoading(cb) {\n this.state.loading = true;\n loadImageAsync({\n src: this.loading,\n cors: this.cors\n }, data => {\n this.render('loading', false);\n this.state.loading = false;\n cb();\n }, () => {\n // handler `loading image` load failed\n cb();\n this.state.loading = false;\n if (!this.options.silent) console.warn(`VueLazyload log: load failed with loading image(${this.loading})`);\n });\n }\n\n /*\n * try load image and render it\n * @return\n */\n load(onFinish = noop) {\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(() => {\n this.attempt++;\n\n this.options.adapter['beforeLoad'] && this.options.adapter['beforeLoad'](this, this.options);\n this.record('loadStart');\n\n loadImageAsync({\n src: this.src,\n cors: this.cors\n }, data => {\n this.naturalHeight = data.naturalHeight;\n this.naturalWidth = data.naturalWidth;\n this.state.loaded = true;\n this.state.error = false;\n this.record('loadEnd');\n this.render('loaded', false);\n this.state.rendered = true;\n this._imageCache.add(this.src);\n onFinish();\n }, err => {\n !this.options.silent && console.error(err);\n this.state.error = true;\n this.state.loaded = false;\n this.render('error', false);\n });\n });\n }\n\n /*\n * render image\n * @param {String} state to render // ['loading', 'src', 'error']\n * @param {String} is form cache\n * @return\n */\n render(state, cache) {\n this.elRenderer(this, state, cache);\n }\n\n /*\n * output performance data\n * @return {Object} performance data\n */\n performance() {\n let state = 'loading';\n let 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,\n time\n };\n }\n\n /*\n * $destroy\n * @return\n */\n $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\nconst DEFAULT_URL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nconst DEFAULT_EVENTS = ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'];\nconst DEFAULT_OBSERVER_OPTIONS = {\n rootMargin: '0px',\n threshold: 0\n};\n\nfunction Lazy(Vue) {\n return class Lazy {\n constructor({ preLoad, error, throttleWait, preLoadTop, dispatchEvent, loading, attempt, silent = true, scale, listenEvents, hasbind, filter, adapter, observer, observerOptions }) {\n this.version = '\"1.3.4\"';\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 /**\n * update config\n * @param {Object} config params\n * @return\n */\n config(options = {}) {\n assignDeep(this.options, options);\n }\n\n /**\n * output listener's load performance\n * @return {Array}\n */\n performance() {\n let list = [];\n\n this.ListenerQueue.map(item => {\n list.push(item.performance());\n });\n\n return list;\n }\n\n /*\n * add lazy component to queue\n * @param {Vue} vm lazy component instance\n * @return\n */\n 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 /*\n * add image listener to queue\n * @param {DOM} el\n * @param {object} binding vue directive binding\n * @param {vnode} vnode vue directive vnode\n * @return\n */\n add(el, binding, vnode) {\n if (some(this.ListenerQueue, item => item.el === el)) {\n this.update(el, binding);\n return Vue.nextTick(this.lazyLoadHandler);\n }\n\n let { src, loading, error, cors } = this._valueFormatter(binding.value);\n\n Vue.nextTick(() => {\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n this._observer && this._observer.observe(el);\n\n const container = Object.keys(binding.modifiers)[0];\n let $parent;\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 const newListener = new ReactiveListener({\n bindType: binding.arg,\n $parent,\n el,\n loading,\n error,\n src,\n 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(() => this.lazyLoadHandler());\n });\n }\n\n /**\n * update image src\n * @param {DOM} el\n * @param {object} vue directive binding\n * @return\n */\n update(el, binding, vnode) {\n let { src, loading, error } = this._valueFormatter(binding.value);\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n\n const exist = find(this.ListenerQueue, item => item.el === el);\n if (!exist) {\n this.add(el, binding, vnode);\n } else {\n exist.update({\n src,\n loading,\n error\n });\n }\n if (this._observer) {\n this._observer.unobserve(el);\n this._observer.observe(el);\n }\n this.lazyLoadHandler();\n Vue.nextTick(() => this.lazyLoadHandler());\n }\n\n /**\n * remove listener form list\n * @param {DOM} el\n * @return\n */\n remove(el) {\n if (!el) return;\n this._observer && this._observer.unobserve(el);\n const existItem = find(this.ListenerQueue, item => item.el === el);\n if (existItem) {\n this._removeListenerTarget(existItem.$parent);\n this._removeListenerTarget(window);\n remove(this.ListenerQueue, existItem);\n existItem.$destroy();\n }\n }\n\n /*\n * remove lazy components form list\n * @param {Vue} vm Vue instance\n * @return\n */\n 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 setMode(mode) {\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(listener => {\n this._observer.unobserve(listener.el);\n });\n this._observer = null;\n }\n\n this.TargetQueue.forEach(target => {\n this._initListen(target.el, true);\n });\n } else {\n this.TargetQueue.forEach(target => {\n this._initListen(target.el, false);\n });\n this._initIntersectionObserver();\n }\n }\n\n /*\n *** Private functions ***\n */\n\n /*\n * add listener target\n * @param {DOM} el listener target\n * @return\n */\n _addListenerTarget(el) {\n if (!el) return;\n let target = find(this.TargetQueue, target => target.el === el);\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 /*\n * remove listener target or reduce target childrenCount\n * @param {DOM} el or window\n * @return\n */\n _removeListenerTarget(el) {\n this.TargetQueue.forEach((target, index) => {\n if (target.el === el) {\n target.childrenCount--;\n if (!target.childrenCount) {\n this._initListen(target.el, false);\n this.TargetQueue.splice(index, 1);\n target = null;\n }\n }\n });\n }\n\n /*\n * add or remove eventlistener\n * @param {DOM} el DOM or Window\n * @param {boolean} start flag\n * @return\n */\n _initListen(el, start) {\n this.options.ListenEvents.forEach(evt => _[start ? 'on' : 'off'](el, evt, this.lazyLoadHandler));\n }\n\n _initEvent() {\n this.Event = {\n listeners: {\n loading: [],\n loaded: [],\n error: []\n }\n };\n\n this.$on = (event, func) => {\n if (!this.Event.listeners[event]) this.Event.listeners[event] = [];\n this.Event.listeners[event].push(func);\n };\n\n this.$once = (event, func) => {\n const vm = this;\n function on() {\n vm.$off(event, on);\n func.apply(vm, arguments);\n }\n this.$on(event, on);\n };\n\n this.$off = (event, func) => {\n if (!func) {\n if (!this.Event.listeners[event]) return;\n this.Event.listeners[event].length = 0;\n return;\n }\n remove(this.Event.listeners[event], func);\n };\n\n this.$emit = (event, context, inCache) => {\n if (!this.Event.listeners[event]) return;\n this.Event.listeners[event].forEach(func => func(context, inCache));\n };\n }\n\n /**\n * find nodes which in viewport and trigger load\n * @return\n */\n _lazyLoadHandler() {\n const freeList = [];\n this.ListenerQueue.forEach((listener, index) => {\n if (!listener.el || !listener.el.parentNode) {\n freeList.push(listener);\n }\n const catIn = listener.checkInView();\n if (!catIn) return;\n listener.load();\n });\n freeList.forEach(item => {\n remove(this.ListenerQueue, item);\n item.$destroy();\n });\n }\n /**\n * init IntersectionObserver\n * set mode to observer\n * @return\n */\n _initIntersectionObserver() {\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(listener => {\n this._observer.observe(listener.el);\n });\n }\n }\n\n /**\n * init IntersectionObserver\n * @return\n */\n _observerHandler(entries, observer) {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.ListenerQueue.forEach(listener => {\n if (listener.el === entry.target) {\n if (listener.state.loaded) return this._observer.unobserve(listener.el);\n listener.load();\n }\n });\n }\n });\n }\n\n /**\n * set element attribute with image'url and state\n * @param {object} lazyload listener object\n * @param {string} state will be rendered\n * @param {bool} inCache is rendered from cache\n * @return\n */\n _elRenderer(listener, state, cache) {\n if (!listener.el) return;\n const { el, bindType } = listener;\n\n let src;\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 const event = new CustomEvent(state, {\n detail: listener\n });\n el.dispatchEvent(event);\n }\n }\n\n /**\n * generate loading loaded error image url\n * @param {string} image's src\n * @return {object} image's loading, loaded, error url\n */\n _valueFormatter(value) {\n let src = value;\n let loading = this.options.loading;\n let error = this.options.error;\n\n // value is object\n if (isObject$1(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,\n loading,\n error\n };\n }\n };\n}\n\nLazy.install = (Vue, options = {}) => {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n\n const 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(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() {\n lazy.remove(this.el);\n }\n });\n }\n};\n\nconst LazyComponent = lazy => {\n return {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n },\n render(h) {\n return h(this.tag, null, this.show ? this.$slots.default : null);\n },\n data() {\n return {\n el: null,\n state: {\n loaded: false\n },\n rect: {},\n show: false\n };\n },\n mounted() {\n this.el = this.$el;\n lazy.addLazyBox(this);\n lazy.lazyLoadHandler();\n },\n beforeDestroy() {\n lazy.removeComponent(this);\n },\n methods: {\n getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n 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() {\n this.show = true;\n this.state.loaded = true;\n this.$emit('show', this);\n },\n destroy() {\n return this.$destroy;\n }\n }\n };\n};\n\nLazyComponent.install = function (Vue, options = {}) {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n Vue.component('lazy-component', LazyComponent(lazy));\n};\n\nclass LazyContainerMananger {\n constructor({ lazy }) {\n this.lazy = lazy;\n lazy.lazyContainerMananger = this;\n this._queue = [];\n }\n\n bind(el, binding, vnode) {\n const container = new LazyContainer({ el, binding, vnode, lazy: this.lazy });\n this._queue.push(container);\n }\n\n update(el, binding, vnode) {\n const container = find(this._queue, item => item.el === el);\n if (!container) return;\n container.update({ el, binding, vnode });\n }\n\n unbind(el, binding, vnode) {\n const container = find(this._queue, item => item.el === el);\n if (!container) return;\n container.clear();\n remove(this._queue, container);\n }\n}\n\nconst defaultOptions = {\n selector: 'img'\n};\n\nclass LazyContainer {\n constructor({ el, binding, vnode, lazy }) {\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, binding });\n }\n\n update({ el, binding }) {\n this.el = el;\n this.options = assignDeep({}, defaultOptions, binding.value);\n\n const imgs = this.getImgs();\n imgs.forEach(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 getImgs() {\n return ArrayFrom(this.el.querySelectorAll(this.options.selector));\n }\n\n clear() {\n const imgs = this.getImgs();\n imgs.forEach(el => this.lazy.remove(el));\n\n this.vnode = null;\n this.binding = null;\n this.lazy = null;\n }\n}\n\nLazyContainer.install = (Vue, options = {}) => {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n const lazyContainer = new LazyContainer({ lazy });\n\n const 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(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() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n};\n\nconst LazyImage = lazyManager => {\n return {\n props: {\n src: [String, Object],\n tag: {\n type: String,\n default: 'img'\n }\n },\n render(h) {\n return h(this.tag, {\n attrs: {\n src: this.renderSrc\n }\n }, this.$slots.default);\n },\n 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 watch: {\n src() {\n this.init();\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n }\n },\n created() {\n this.init();\n this.renderSrc = this.options.loading;\n },\n mounted() {\n this.el = this.$el;\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n },\n beforeDestroy() {\n lazyManager.removeComponent(this);\n },\n methods: {\n init() {\n const { src, loading, error } = lazyManager._valueFormatter(this.src);\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() {\n this.rect = this.$el.getBoundingClientRect();\n },\n 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(onFinish = noop) {\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 const src = this.options.src;\n loadImageAsync({ src }, ({ src }) => {\n this.renderSrc = src;\n this.state.loaded = true;\n }, e => {\n this.state.attempt++;\n this.renderSrc = this.options.error;\n this.state.error = true;\n });\n }\n }\n };\n};\n\nLazyImage.install = (Vue, options = {}) => {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n Vue.component('lazy-image', LazyImage(lazy));\n};\n\nvar index = {\n /*\n * install function\n * @param {Vue} Vue\n * @param {object} options lazyload options\n */\n install(Vue, options = {}) {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n const lazyContainer = new LazyContainerMananger({ lazy });\n\n const 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(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() {\n lazy.remove(this.el);\n }\n });\n\n Vue.directive('lazy-container', {\n 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() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n }\n};\n\nexport default index;\nexport { Lazy, LazyComponent, LazyContainerMananger as LazyContainer, LazyImage };\n","import Lazyload from 'vue-lazyload';\nLazyload.name = 'vue-lazyload';\nimport './lazyload.scss';\nexport default Lazyload;\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./node_modules/vue-lazyload/vue-lazyload.esm.js","webpack://[name]/./src/packages/lazyload/index.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isPrimitive","isPrimitive$1","freeze","__proto__","__moduleExports","assignSymbols","receiver","objects","TypeError","getOwnPropertySymbols","isEnumerable","propertyIsEnumerable","target","len","arguments","length","provider","names","j","assignSymbols$1","toString","kindOf","val","type","Boolean","String","Number","Function","constructor","slice","Array","isArray","RegExp","Date","isBuffer","kindOf$1","isPrimitive$2","assignSymbols$2","typeOf","isObject","extend","obj","isValidKey","hasOwn","assignDeep","inBrowser","window","hasIntersectionObserver","IntersectionObserverEntry","intersectionRatio","checkIntersectionObserver","modeType","CustomEvent","Event","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","remove","arr","item","index","indexOf","splice","getBestSelectionFromSrcset","el","scale","tagName","getAttribute","options","result","containerWidth","parentNode","offsetWidth","spaceIndex","tmpSrc","tmpWidth","trim","split","map","lastIndexOf","substr","parseInt","push","sort","a","b","tmpOption","bestSelectedSrc","next","find","fn","getDPR","devicePixelRatio","supportWebp","support","elem","createElement","getContext","toDataURL","err","supportsPassive","opts","addEventListener","e","testSupportsPassive","_","func","capture","passive","removeEventListener","loadImageAsync","resolve","reject","image","Image","src","Error","cors","crossOrigin","onload","naturalHeight","naturalWidth","onerror","style","prop","getComputedStyle","getPropertyValue","overflow","noop","ImageCache","max","_caches","has","free","shift","ReactiveListener","error","loading","bindType","$parent","elRenderer","imageCache","attempt","rect","_imageCache","performanceData","init","now","loadStart","loadEnd","filter","initState","render","dataset","setAttribute","state","loaded","rendered","oldSrc","getBoundingClientRect","getRect","top","innerHeight","preLoad","bottom","preLoadTop","left","innerWidth","right","keys","ObjectKeys","cb","data","silent","console","warn","onFinish","log","renderLoading","adapter","record","add","cache","time","DEFAULT_URL","DEFAULT_EVENTS","DEFAULT_OBSERVER_OPTIONS","rootMargin","threshold","Lazy","Vue","throttleWait","dispatchEvent","listenEvents","hasbind","observer","observerOptions","version","ListenerQueue","TargetIndex","TargetQueue","ListenEvents","_initEvent","lazyLoadHandler","action","delay","timeout","movement","lastRun","needRun","elapsed","context","args","runCallback","apply","setTimeout","clearTimeout","throttle","_lazyLoadHandler","setMode","list","performance","vm","_addListenerTarget","_observer","observe","$el","binding","vnode","some","update","nextTick","_valueFormatter","container","modifiers","$refs","getElementById","HTMLElement","parent","body","documentElement","test","scrollParent","newListener","arg","_elRenderer","exist","unobserve","existItem","_removeListenerTarget","$destroy","forEach","listener","_initListen","_initIntersectionObserver","childrenCount","id","listened","start","listeners","$on","$once","on","$off","$emit","inCache","freeList","checkInView","load","IntersectionObserver","_observerHandler","entries","entry","isIntersecting","install","lazy","directive","componentUpdated","unbind","newValue","oldValue","$els","LazyComponent","props","tag","default","h","show","$slots","addLazyBox","removeComponent","methods","component","LazyContainerMananger","lazyContainerMananger","_queue","LazyContainer","clear","defaultOptions","selector","getImgs","arrLike","ArrayFrom","querySelectorAll","lazyContainer","LazyImage","lazyManager","attrs","renderSrc","watch","isVue2","$Lazyload","lazyComponent","lazyImage","Lazyload"],"mappings":";;;;;CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,WAAY,GAAIH,GACG,iBAAZC,QACdA,QAAkB,SAAID,IAEtBD,EAAe,SAAIC,IARrB,CASoB,oBAATK,KAAuBA,KAAOC,MAAO,WAChD,O,YCTE,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUR,QAGnC,IAAIC,EAASK,EAAiBE,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACHV,QAAS,IAUV,OANAW,EAAQH,GAAUI,KAAKX,EAAOD,QAASC,EAAQA,EAAOD,QAASO,GAG/DN,EAAOS,GAAI,EAGJT,EAAOD,QA0Df,OArDAO,EAAoBM,EAAIF,EAGxBJ,EAAoBO,EAAIR,EAGxBC,EAAoBQ,EAAI,SAASf,EAASgB,EAAMC,GAC3CV,EAAoBW,EAAElB,EAASgB,IAClCG,OAAOC,eAAepB,EAASgB,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEV,EAAoBgB,EAAI,SAASvB,GACX,oBAAXwB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAepB,EAASwB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAepB,EAAS,aAAc,CAAE0B,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBQ,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAASjC,GAChC,IAAIgB,EAAShB,GAAUA,EAAO4B,WAC7B,WAAwB,OAAO5B,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAM,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG7B,EAAoBgC,EAAI,KAIjBhC,EAAoBA,EAAoBiC,EAAI,K;;;;;;;;;;;;ACnErD,IAAIC,EAAc,SAAqBf,GACrC,OAAgB,MAATA,GAAkC,mBAAVA,GAAyC,iBAAVA,GAG5DgB,EAA6BvB,OAAOwB,OAAO,CAC7CC,UAAW,KACX,QAAWH,EACXI,gBAAiBJ,IAUfK,EAAgB,SAAUC,EAAUC,GACtC,GAAID,QACF,MAAM,IAAIE,UAAU,4CAGtB,QAAuB,IAAZD,GAA6C,oBAAXxB,OAC3C,OAAOuB,EAGT,GAA4C,mBAAjC5B,OAAO+B,sBAChB,OAAOH,EAQT,IALA,IAAII,EAAehC,OAAOkB,UAAUe,qBAChCC,EAASlC,OAAO4B,GAChBO,EAAMC,UAAUC,OAChB/C,EAAI,IAECA,EAAI6C,GAIX,IAHA,IAAIG,EAAWtC,OAAOoC,UAAU9C,IAC5BiD,EAAQvC,OAAO+B,sBAAsBO,GAEhCE,EAAI,EAAGA,EAAID,EAAMF,OAAQG,IAAK,CACrC,IAAI3B,EAAM0B,EAAMC,GAEZR,EAAavC,KAAK6C,EAAUzB,KAC9BqB,EAAOrB,GAAOyB,EAASzB,IAI7B,OAAOqB,GAGLO,EAA+BzC,OAAOwB,OAAO,CAC/CC,UAAW,KACX,QAAWE,EACXD,gBAAiBC,IAGf,EAAW3B,OAAOkB,UAAUwB,SAS5BC,EAAS,SAAgBC,GAC3B,IAAIC,SAAcD,EAGlB,MAAa,cAATC,EACK,YAEG,OAARD,EACK,QAEG,IAARA,IAAwB,IAARA,GAAiBA,aAAeE,QAC3C,UAEI,WAATD,GAAqBD,aAAeG,OAC/B,SAEI,WAATF,GAAqBD,aAAeI,OAC/B,SAII,aAATH,GAAuBD,aAAeK,cACJ,IAAzBL,EAAIM,YAAYrD,MAA6D,cAArC+C,EAAIM,YAAYrD,KAAKsD,MAAM,EAAG,GACxE,oBAEF,gBAIoB,IAAlBC,MAAMC,SAA2BD,MAAMC,QAAQT,GACjD,QAILA,aAAeU,OACV,SAELV,aAAeW,KACV,OAMI,qBAFbV,EAAO,EAASpD,KAAKmD,IAGZ,SAEI,kBAATC,EACK,OAEI,uBAATA,EACK,YAEI,mBAATA,EACK,QAEI,qBAATA,EACK,UA4EX,SAAkBD,GAChB,OAAOA,EAAIM,aAAmD,mBAA7BN,EAAIM,YAAYM,UAA2BZ,EAAIM,YAAYM,SAASZ,GAzEjGY,CAASZ,GACJ,SAII,iBAATC,EACK,MAEI,qBAATA,EACK,UAEI,iBAATA,EACK,MAEI,qBAATA,EACK,UAEI,oBAATA,EACK,SAGI,0BAATA,EACK,cAEI,0BAATA,EACK,cAEI,6BAATA,EACK,iBAEI,4BAATA,EACK,gBAII,uBAATA,EACK,YAEI,wBAATA,EACK,aAEI,+BAATA,EACK,oBAEI,wBAATA,EACK,aAEI,yBAATA,EACK,cAEI,wBAATA,EACK,aAEI,yBAATA,EACK,cAEI,0BAATA,EACK,eAEI,0BAATA,EACK,eAIF,UAYT,IAAIY,EAAwBzD,OAAOwB,OAAO,CACxCC,UAAW,KACX,QAAWkB,EACXjB,gBAAiBiB,IAGfe,EAAkBnC,GAAiBD,GAAiBC,EAEpDoC,EAAoBlB,GAAmBd,GAAmBc,EAE1DmB,EAAWH,GAAYd,GAAYc,EAEvC,SAAS,EAAOvB,GACdA,EAASA,GAAU,GACnB,IAAIC,EAAMC,UAAUC,OAChB/C,EAAI,EACR,GAAY,IAAR6C,EACF,OAAOD,EAET,OAAS5C,EAAI6C,GAAK,CAChB,IAAIS,EAAMR,UAAU9C,GAChBoE,EAAcxB,KAChBA,EAASU,GAEPiB,EAASjB,IACXkB,EAAO5B,EAAQU,GAGnB,OAAOV,EAOT,SAAS4B,EAAO5B,EAAQ6B,GAGtB,IAAK,IAAIlD,KAFT8C,EAAgBzB,EAAQ6B,GAERA,EACd,GAAIC,EAAWnD,IAAQoD,EAAOF,EAAKlD,GAAM,CACvC,IAAI+B,EAAMmB,EAAIlD,GACVgD,EAASjB,IACiB,cAAxBgB,EAAO1B,EAAOrB,KAAyC,aAAhB+C,EAAOhB,KAChDV,EAAOrB,GAAO+B,GAEhBV,EAAOrB,GAAO,EAAOqB,EAAOrB,IAAQ,GAAI+B,IAExCV,EAAOrB,GAAO+B,EAIpB,OAAOV,EAOT,SAAS2B,EAASE,GAChB,MAAuB,WAAhBH,EAAOG,IAAqC,aAAhBH,EAAOG,GAO5C,SAASE,EAAOF,EAAKlD,GACnB,OAAOb,OAAOkB,UAAUC,eAAe1B,KAAKsE,EAAKlD,GAOnD,SAASmD,EAAWnD,GAClB,MAAe,cAARA,GAA+B,gBAARA,GAAiC,cAARA,EAOzD,IAAIqD,EAAa,EAEjB,MAAMC,EAA8B,oBAAXC,QAAqC,OAAXA,OAE7CC,EAEN,WACE,GAAIF,GAAa,yBAA0BC,QAAU,8BAA+BA,QAAU,sBAAuBA,OAAOE,0BAA0BpD,UAUpJ,MAPM,mBAAoBkD,OAAOE,0BAA0BpD,WACzDlB,OAAOC,eAAemE,OAAOE,0BAA0BpD,UAAW,iBAAkB,CAClFf,IAAK,WACH,OAAOjB,KAAKqF,kBAAoB,MAI/B,EAET,OAAO,EAfuBC,GAkBhC,MAAMC,EACG,QADHA,EAEM,WAGJC,EAAc,WACpB,GAAKP,EAEL,MAAkC,mBAAvBC,OAAOM,YAAmCN,OAAOM,aAO5DA,EAAYxD,UAAYkD,OAAOO,MAAMzD,UAC9BwD,GAPP,SAASA,EAAYE,EAAOC,GAC1BA,EAASA,GAAU,CAAEC,SAAS,EAAOC,YAAY,EAAOC,YAAQC,GAChE,IAAIC,EAAMC,SAASC,YAAY,eAE/B,OADAF,EAAIG,gBAAgBT,EAAOC,EAAOC,QAASD,EAAOE,WAAYF,EAAOG,QAC9DE,GARW,GActB,SAASI,EAAOC,EAAKC,GACnB,IAAKD,EAAIlD,OAAQ,OACjB,MAAMoD,EAAQF,EAAIG,QAAQF,GAC1B,OAAIC,GAAS,EAAUF,EAAII,OAAOF,EAAO,QAAzC,EAcF,SAASG,EAA2BC,EAAIC,GACtC,GAAmB,QAAfD,EAAGE,UAAsBF,EAAGG,aAAa,eAAgB,OAE7D,IAAIC,EAAUJ,EAAGG,aAAa,eAC9B,MAAME,EAAS,GAETC,EADYN,EAAGO,WACYC,YAAcP,EAE/C,IAAIQ,EACAC,EACAC,EAEJP,EAAUA,EAAQQ,OAAOC,MAAM,KAE/BT,EAAQU,IAAInB,IACVA,EAAOA,EAAKiB,OACZH,EAAad,EAAKoB,YAAY,MACV,IAAhBN,GACFC,EAASf,EACTgB,EAAW,SAEXD,EAASf,EAAKqB,OAAO,EAAGP,GACxBE,EAAWM,SAAStB,EAAKqB,OAAOP,EAAa,EAAGd,EAAKnD,OAASiE,EAAa,GAAI,KAEjFJ,EAAOa,KAAK,CAACP,EAAUD,MAGzBL,EAAOc,MAAK,SAAUC,EAAGC,GACvB,GAAID,EAAE,GAAKC,EAAE,GACX,OAAO,EAET,GAAID,EAAE,GAAKC,EAAE,GACX,OAAQ,EAEV,GAAID,EAAE,KAAOC,EAAE,GAAI,CACjB,IAAgD,IAA5CA,EAAE,GAAGxB,QAAQ,QAASwB,EAAE,GAAG7E,OAAS,GACtC,OAAO,EAET,IAAgD,IAA5C4E,EAAE,GAAGvB,QAAQ,QAASuB,EAAE,GAAG5E,OAAS,GACtC,OAAQ,EAGZ,OAAO,KAET,IACI8E,EADAC,EAAkB,GAGtB,IAAK,IAAI9H,EAAI,EAAGA,EAAI4G,EAAO7D,OAAQ/C,IAAK,CACtC6H,EAAYjB,EAAO5G,GACnB8H,EAAkBD,EAAU,GAC5B,MAAME,EAAOnB,EAAO5G,EAAI,GACxB,GAAI+H,GAAQA,EAAK,GAAKlB,EAAgB,CACpCiB,EAAkBD,EAAU,GAC5B,MACK,IAAKE,EAAM,CAChBD,EAAkBD,EAAU,GAC5B,OAIJ,OAAOC,EAGT,SAASE,EAAK/B,EAAKgC,GACjB,IAAI/B,EACJ,IAAK,IAAIlG,EAAI,EAAG6C,EAAMoD,EAAIlD,OAAQ/C,EAAI6C,EAAK7C,IACzC,GAAIiI,EAAGhC,EAAIjG,IAAK,CACdkG,EAAOD,EAAIjG,GACX,MAGJ,OAAOkG,EAGT,MAAMgC,EAAS,CAAC1B,EAAQ,IAAM3B,GAAYC,OAAOqD,kBAA4B3B,EAE7E,SAAS4B,IACP,IAAKvD,EAAW,OAAO,EAEvB,IAAIwD,GAAU,EAEd,IACE,MAAMC,EAAOzC,SAAS0C,cAAc,UAEhCD,EAAKE,YAAcF,EAAKE,WAAW,QACrCH,EAAsE,IAA5DC,EAAKG,UAAU,cAAcrC,QAAQ,oBAEjD,MAAOsC,GACPL,GAAU,EAGZ,OAAOA,EA+CT,MAAMM,EAdN,WACE,IAAK9D,EAAW,OAChB,IAAIwD,GAAU,EACd,IACE,IAAIO,EAAOlI,OAAOC,eAAe,GAAI,UAAW,CAC9CE,IAAK,WACHwH,GAAU,KAGdvD,OAAO+D,iBAAiB,OAAQ,KAAMD,GACtC,MAAOE,IACT,OAAOT,EAGeU,GAElBC,EAAI,CACR,GAAGzC,EAAIhD,EAAM0F,EAAMC,GAAU,GACvBP,EACFpC,EAAGsC,iBAAiBtF,EAAM0F,EAAM,CAC9BC,QAASA,EACTC,SAAS,IAGX5C,EAAGsC,iBAAiBtF,EAAM0F,EAAMC,IAGpC,IAAI3C,EAAIhD,EAAM0F,EAAMC,GAAU,GAC5B3C,EAAG6C,oBAAoB7F,EAAM0F,EAAMC,KAIjCG,EAAiB,CAACnD,EAAMoD,EAASC,KACrC,IAAIC,EAAQ,IAAIC,MAChB,IAAKvD,IAASA,EAAKwD,IAAK,CACtB,MAAMhB,EAAM,IAAIiB,MAAM,yBACtB,OAAOJ,EAAOb,GAGhBc,EAAME,IAAMxD,EAAKwD,IACbxD,EAAK0D,OACPJ,EAAMK,YAAc3D,EAAK0D,MAG3BJ,EAAMM,OAAS,WACbR,EAAQ,CACNS,cAAeP,EAAMO,cACrBC,aAAcR,EAAMQ,aACpBN,IAAKF,EAAME,OAIfF,EAAMS,QAAU,SAAUnB,GACxBS,EAAOT,KAILoB,EAAQ,CAAC3D,EAAI4D,IACkB,oBAArBC,iBAAmCA,iBAAiB7D,EAAI,MAAM8D,iBAAiBF,GAAQ5D,EAAG2D,MAAMC,GAG1GG,EAAW/D,GACR2D,EAAM3D,EAAI,YAAc2D,EAAM3D,EAAI,cAAgB2D,EAAM3D,EAAI,cA0DrE,SAASgE,KAET,MAAMC,EACJ,aAAY,IAAEC,IACZ7K,KAAK+G,QAAU,CACb8D,IAAKA,GAAO,KAEd7K,KAAK8K,QAAU,GAGjB,IAAInJ,GACF,OAAO3B,KAAK8K,QAAQtE,QAAQ7E,IAAQ,EAGtC,IAAIA,GACE3B,KAAK+K,IAAIpJ,KACb3B,KAAK8K,QAAQjD,KAAKlG,GACd3B,KAAK8K,QAAQ3H,OAASnD,KAAK+G,QAAQ8D,KACrC7K,KAAKgL,QAIT,OACEhL,KAAK8K,QAAQG,SAWjB,MAAMC,EACJ,aAAY,GAAEvE,EAAE,IAAEmD,EAAG,MAAEqB,EAAK,QAAEC,EAAO,SAAEC,EAAQ,QAAEC,EAAO,QAAEvE,EAAO,KAAEiD,EAAI,WAAEuB,EAAU,WAAEC,IACnFxL,KAAK2G,GAAKA,EACV3G,KAAK8J,IAAMA,EACX9J,KAAKmL,MAAQA,EACbnL,KAAKoL,QAAUA,EACfpL,KAAKqL,SAAWA,EAChBrL,KAAKyL,QAAU,EACfzL,KAAKgK,KAAOA,EAEZhK,KAAKmK,cAAgB,EACrBnK,KAAKoK,aAAe,EAEpBpK,KAAK+G,QAAUA,EAEf/G,KAAK0L,KAAO,KAEZ1L,KAAKsL,QAAUA,EACftL,KAAKuL,WAAaA,EAClBvL,KAAK2L,YAAcH,EACnBxL,KAAK4L,gBAAkB,CACrBC,KAAMxH,KAAKyH,MACXC,UAAW,EACXC,QAAS,GAGXhM,KAAKiM,SACLjM,KAAKkM,YACLlM,KAAKmM,OAAO,WAAW,GAOzB,YACM,YAAanM,KAAK2G,GACpB3G,KAAK2G,GAAGyF,QAAQtC,IAAM9J,KAAK8J,IAE3B9J,KAAK2G,GAAG0F,aAAa,WAAYrM,KAAK8J,KAGxC9J,KAAKsM,MAAQ,CACXlB,SAAS,EACTD,OAAO,EACPoB,QAAQ,EACRC,UAAU,GAQd,OAAO9G,GACL1F,KAAK4L,gBAAgBlG,GAASrB,KAAKyH,MAUrC,QAAO,IAAEhC,EAAG,QAAEsB,EAAO,MAAED,IACrB,MAAMsB,EAASzM,KAAK8J,IACpB9J,KAAK8J,IAAMA,EACX9J,KAAKoL,QAAUA,EACfpL,KAAKmL,MAAQA,EACbnL,KAAKiM,SACDQ,IAAWzM,KAAK8J,MAClB9J,KAAKyL,QAAU,EACfzL,KAAKkM,aAQT,UACElM,KAAK0L,KAAO1L,KAAK2G,GAAG+F,wBAOtB,cAEE,OADA1M,KAAK2M,UACE3M,KAAK0L,KAAKkB,IAAM1H,OAAO2H,YAAc7M,KAAK+G,QAAQ+F,SAAW9M,KAAK0L,KAAKqB,OAAS/M,KAAK+G,QAAQiG,YAAchN,KAAK0L,KAAKuB,KAAO/H,OAAOgI,WAAalN,KAAK+G,QAAQ+F,SAAW9M,KAAK0L,KAAKyB,MAAQ,EAMnM,UA3JF,SAAoBtI,GAClB,KAAMA,aAAe/D,QAAS,MAAO,GACrC,GAAIA,OAAOsM,KACT,OAAOtM,OAAOsM,KAAKvI,GACd,CACL,IAAIuI,EAAO,GACX,IAAK,IAAIzL,KAAOkD,EACVA,EAAI5C,eAAeN,IACrByL,EAAKvF,KAAKlG,GAGd,OAAOyL,IAiJPC,CAAWrN,KAAK+G,QAAQkF,QAAQxE,IAAI9F,IAClC3B,KAAK+G,QAAQkF,OAAOtK,GAAK3B,KAAMA,KAAK+G,WASxC,cAAcuG,GACZtN,KAAKsM,MAAMlB,SAAU,EACrB3B,EAAe,CACbK,IAAK9J,KAAKoL,QACVpB,KAAMhK,KAAKgK,MACVuD,IACDvN,KAAKmM,OAAO,WAAW,GACvBnM,KAAKsM,MAAMlB,SAAU,EACrBkC,KACC,KAEDA,IACAtN,KAAKsM,MAAMlB,SAAU,EAChBpL,KAAK+G,QAAQyG,QAAQC,QAAQC,KAAK,mDAAmD1N,KAAKoL,cAQnG,KAAKuC,EAAWhD,GACd,OAAI3K,KAAKyL,QAAUzL,KAAK+G,QAAQ0E,QAAU,GAAKzL,KAAKsM,MAAMnB,OACnDnL,KAAK+G,QAAQyG,QAAQC,QAAQG,IAAI,oBAAoB5N,KAAK8J,2BAA2B9J,KAAK+G,QAAQ0E,sBACvGkC,KAGE3N,KAAKsM,MAAME,UAAYxM,KAAKsM,MAAMC,YAAtC,EACIvM,KAAK2L,YAAYZ,IAAI/K,KAAK8J,MAC5B9J,KAAKsM,MAAMC,QAAS,EACpBvM,KAAKmM,OAAO,UAAU,GACtBnM,KAAKsM,MAAME,UAAW,EACfmB,UAGT3N,KAAK6N,cAAc,KACjB7N,KAAKyL,UAELzL,KAAK+G,QAAQ+G,QAAoB,YAAK9N,KAAK+G,QAAQ+G,QAAoB,WAAE9N,KAAMA,KAAK+G,SACpF/G,KAAK+N,OAAO,aAEZtE,EAAe,CACbK,IAAK9J,KAAK8J,IACVE,KAAMhK,KAAKgK,MACVuD,IACDvN,KAAKmK,cAAgBoD,EAAKpD,cAC1BnK,KAAKoK,aAAemD,EAAKnD,aACzBpK,KAAKsM,MAAMC,QAAS,EACpBvM,KAAKsM,MAAMnB,OAAQ,EACnBnL,KAAK+N,OAAO,WACZ/N,KAAKmM,OAAO,UAAU,GACtBnM,KAAKsM,MAAME,UAAW,EACtBxM,KAAK2L,YAAYqC,IAAIhO,KAAK8J,KAC1B6D,KACC7E,KACA9I,KAAK+G,QAAQyG,QAAUC,QAAQtC,MAAMrC,GACtC9I,KAAKsM,MAAMnB,OAAQ,EACnBnL,KAAKsM,MAAMC,QAAS,EACpBvM,KAAKmM,OAAO,SAAS,OAW3B,OAAOG,EAAO2B,GACZjO,KAAKuL,WAAWvL,KAAMsM,EAAO2B,GAO/B,cACE,IAAI3B,EAAQ,UACR4B,EAAO,EASX,OAPIlO,KAAKsM,MAAMC,SACbD,EAAQ,SACR4B,GAAQlO,KAAK4L,gBAAgBI,QAAUhM,KAAK4L,gBAAgBG,WAAa,KAGvE/L,KAAKsM,MAAMnB,QAAOmB,EAAQ,SAEvB,CACLxC,IAAK9J,KAAK8J,IACVwC,QACA4B,QAQJ,WACElO,KAAK2G,GAAK,KACV3G,KAAK8J,IAAM,KACX9J,KAAKmL,MAAQ,KACbnL,KAAKoL,QAAU,KACfpL,KAAKqL,SAAW,KAChBrL,KAAKyL,QAAU,GAInB,MAAM0C,EAAc,iFACdC,EAAiB,CAAC,SAAU,QAAS,aAAc,SAAU,eAAgB,gBAAiB,aAC9FC,EAA2B,CAC/BC,WAAY,MACZC,UAAW,GAGb,SAASC,EAAKC,GACZ,OAAO,MACL,aAAY,QAAE3B,EAAO,MAAE3B,EAAK,aAAEuD,EAAY,WAAE1B,EAAU,cAAE2B,EAAa,QAAEvD,EAAO,QAAEK,EAAO,OAAE+B,GAAS,EAAI,MAAE5G,EAAK,aAAEgI,EAAY,QAAEC,EAAO,OAAE5C,EAAM,QAAE6B,EAAO,SAAEgB,EAAQ,gBAAEC,IAC/J/O,KAAKgP,QAAU,UACfhP,KAAKuB,KAAOgE,EACZvF,KAAKiP,cAAgB,GACrBjP,KAAKkP,YAAc,EACnBlP,KAAKmP,YAAc,GACnBnP,KAAK+G,QAAU,CACbyG,OAAQA,EACRmB,gBAAiBA,EACjBD,aAAcA,GAAgB,IAC9B5B,QAASA,GAAW,IACpBE,WAAYA,GAAc,EAC1B7B,MAAOA,GAASgD,EAChB/C,QAASA,GAAW+C,EACpB1C,QAASA,GAAW,EACpB7E,MAAOA,GAAS0B,EAAO1B,GACvBwI,aAAcR,GAAgBR,EAC9BS,SAAS,EACTrG,YAAaA,IACbyD,OAAQA,GAAU,GAClB6B,QAASA,GAAW,GACpBgB,WAAYA,EACZC,gBAAiBA,GAAmBV,GAEtCrO,KAAKqP,aACLrP,KAAK2L,YAAc,IAAIf,EAAW,CAAEC,IAAK,MACzC7K,KAAKsP,gBApbX,SAAkBC,EAAQC,GACxB,IAAIC,EAAU,KACVC,EAAW,KACXC,EAAU,EACVC,GAAU,EACd,OAAO,WAEL,GADAA,GAAU,EACNH,EACF,OAEF,IAAII,EAAUxL,KAAKyH,MAAQ6D,EACvBG,EAAU9P,KACV+P,EAAO7M,UACP8M,EAAc,WAChBL,EAAUtL,KAAKyH,MACf2D,GAAU,EACVF,EAAOU,MAAMH,EAASC,IAEpBF,GAAWL,EACbQ,IAEAP,EAAUS,WAAWF,EAAaR,GAEhCI,IACFO,aAAaT,GACbA,EAAWQ,WAAWF,EAAa,EAAIR,KA2ZhBY,CAASpQ,KAAKqQ,iBAAiBzO,KAAK5B,MAAOA,KAAK+G,QAAQ2H,cAE/E1O,KAAKsQ,QAAQtQ,KAAK+G,QAAQ+H,SAAWvJ,EAAoBA,GAQ3D,OAAOwB,EAAU,IACf/B,EAAWhF,KAAK+G,QAASA,GAO3B,cACE,IAAIwJ,EAAO,GAMX,OAJAvQ,KAAKiP,cAAcxH,IAAInB,IACrBiK,EAAK1I,KAAKvB,EAAKkK,iBAGVD,EAQT,WAAWE,GACTzQ,KAAKiP,cAAcpH,KAAK4I,GACpBxL,IACFjF,KAAK0Q,mBAAmBxL,QACxBlF,KAAK2Q,WAAa3Q,KAAK2Q,UAAUC,QAAQH,EAAG9J,IACxC8J,EAAGI,KAAOJ,EAAGI,IAAI3J,YACnBlH,KAAK0Q,mBAAmBD,EAAGI,IAAI3J,aAYrC,IAAIP,EAAImK,EAASC,GACf,GAjlBN,SAAc1K,EAAKgC,GACjB,IAAI0C,GAAM,EACV,IAAK,IAAI3K,EAAI,EAAG6C,EAAMoD,EAAIlD,OAAQ/C,EAAI6C,EAAK7C,IACzC,GAAIiI,EAAGhC,EAAIjG,IAAK,CACd2K,GAAM,EACN,MAGJ,OAAOA,EAykBCiG,CAAKhR,KAAKiP,cAAe3I,GAAQA,EAAKK,KAAOA,GAE/C,OADA3G,KAAKiR,OAAOtK,EAAImK,GACTrC,EAAIyC,SAASlR,KAAKsP,iBAG3B,IAAI,IAAExF,EAAG,QAAEsB,EAAO,MAAED,EAAK,KAAEnB,GAAShK,KAAKmR,gBAAgBL,EAAQzP,OAEjEoN,EAAIyC,SAAS,KACXpH,EAAMpD,EAA2BC,EAAI3G,KAAK+G,QAAQH,QAAUkD,EAC5D9J,KAAK2Q,WAAa3Q,KAAK2Q,UAAUC,QAAQjK,GAEzC,MAAMyK,EAAYtQ,OAAOsM,KAAK0D,EAAQO,WAAW,GACjD,IAAI/F,EAEA8F,IACF9F,EAAUyF,EAAMjB,QAAQwB,MAAMF,GAE9B9F,EAAUA,EAAUA,EAAQuF,KAAOvF,EAAUrF,SAASsL,eAAeH,IAGlE9F,IACHA,EA9ZW3E,KACnB,IAAK1B,EAAW,OAChB,KAAM0B,aAAc6K,aAClB,OAAOtM,OAGT,IAAIuM,EAAS9K,EAEb,KAAO8K,GACDA,IAAWxL,SAASyL,MAAQD,IAAWxL,SAAS0L,iBAI/CF,EAAOvK,YALC,CASb,GAAI,gBAAgB0K,KAAKlH,EAAS+G,IAChC,OAAOA,EAGTA,EAASA,EAAOvK,WAGlB,OAAOhC,QAsYW2M,CAAalL,IAGzB,MAAMmL,EAAc,IAAI5G,EAAiB,CACvCG,SAAUyF,EAAQiB,IAClBzG,UACA3E,KACAyE,UACAD,QACArB,MACAE,OACAuB,WAAYvL,KAAKgS,YAAYpQ,KAAK5B,MAClC+G,QAAS/G,KAAK+G,QACdyE,WAAYxL,KAAK2L,cAGnB3L,KAAKiP,cAAcpH,KAAKiK,GAEpB7M,IACFjF,KAAK0Q,mBAAmBxL,QACxBlF,KAAK0Q,mBAAmBpF,IAG1BtL,KAAKsP,kBACLb,EAAIyC,SAAS,IAAMlR,KAAKsP,qBAU5B,OAAO3I,EAAImK,EAASC,GAClB,IAAI,IAAEjH,EAAG,QAAEsB,EAAO,MAAED,GAAUnL,KAAKmR,gBAAgBL,EAAQzP,OAC3DyI,EAAMpD,EAA2BC,EAAI3G,KAAK+G,QAAQH,QAAUkD,EAE5D,MAAMmI,EAAQ7J,EAAKpI,KAAKiP,cAAe3I,GAAQA,EAAKK,KAAOA,GACtDsL,EAGHA,EAAMhB,OAAO,CACXnH,MACAsB,UACAD,UALFnL,KAAKgO,IAAIrH,EAAImK,EAASC,GAQpB/Q,KAAK2Q,YACP3Q,KAAK2Q,UAAUuB,UAAUvL,GACzB3G,KAAK2Q,UAAUC,QAAQjK,IAEzB3G,KAAKsP,kBACLb,EAAIyC,SAAS,IAAMlR,KAAKsP,mBAQ1B,OAAO3I,GACL,IAAKA,EAAI,OACT3G,KAAK2Q,WAAa3Q,KAAK2Q,UAAUuB,UAAUvL,GAC3C,MAAMwL,EAAY/J,EAAKpI,KAAKiP,cAAe3I,GAAQA,EAAKK,KAAOA,GAC3DwL,IACFnS,KAAKoS,sBAAsBD,EAAU7G,SACrCtL,KAAKoS,sBAAsBlN,QAC3BkB,EAAOpG,KAAKiP,cAAekD,GAC3BA,EAAUE,YASd,gBAAgB5B,GACTA,IACLrK,EAAOpG,KAAKiP,cAAewB,GAC3BzQ,KAAK2Q,WAAa3Q,KAAK2Q,UAAUuB,UAAUzB,EAAG9J,IAC1C8J,EAAGnF,SAAWmF,EAAGI,IAAI3J,YACvBlH,KAAKoS,sBAAsB3B,EAAGI,IAAI3J,YAEpClH,KAAKoS,sBAAsBlN,SAG7B,QAAQ3D,GACD4D,GAA2B5D,IAASgE,IACvChE,EAAOgE,GAGTvF,KAAKuB,KAAOA,EAERA,IAASgE,GACPvF,KAAK2Q,YACP3Q,KAAKiP,cAAcqD,QAAQC,IACzBvS,KAAK2Q,UAAUuB,UAAUK,EAAS5L,MAEpC3G,KAAK2Q,UAAY,MAGnB3Q,KAAKmP,YAAYmD,QAAQtP,IACvBhD,KAAKwS,YAAYxP,EAAO2D,IAAI,OAG9B3G,KAAKmP,YAAYmD,QAAQtP,IACvBhD,KAAKwS,YAAYxP,EAAO2D,IAAI,KAE9B3G,KAAKyS,6BAaT,mBAAmB9L,GACjB,IAAKA,EAAI,OACT,IAAI3D,EAASoF,EAAKpI,KAAKmP,YAAanM,GAAUA,EAAO2D,KAAOA,GAa5D,OAZK3D,EAUHA,EAAO0P,iBATP1P,EAAS,CACP2D,GAAIA,EACJgM,KAAM3S,KAAKkP,YACXwD,cAAe,EACfE,UAAU,GAEZ5S,KAAKuB,OAASgE,GAAkBvF,KAAKwS,YAAYxP,EAAO2D,IAAI,GAC5D3G,KAAKmP,YAAYtH,KAAK7E,IAIjBhD,KAAKkP,YAQd,sBAAsBvI,GACpB3G,KAAKmP,YAAYmD,QAAQ,CAACtP,EAAQuD,KAC5BvD,EAAO2D,KAAOA,IAChB3D,EAAO0P,gBACF1P,EAAO0P,gBACV1S,KAAKwS,YAAYxP,EAAO2D,IAAI,GAC5B3G,KAAKmP,YAAY1I,OAAOF,EAAO,GAC/BvD,EAAS,SAYjB,YAAY2D,EAAIkM,GACd7S,KAAK+G,QAAQqI,aAAakD,QAAQtM,GAAOoD,EAAEyJ,EAAQ,KAAO,OAAOlM,EAAIX,EAAKhG,KAAKsP,kBAGjF,aACEtP,KAAKyF,MAAQ,CACXqN,UAAW,CACT1H,QAAS,GACTmB,OAAQ,GACRpB,MAAO,KAIXnL,KAAK+S,IAAM,CAACrN,EAAO2D,KACZrJ,KAAKyF,MAAMqN,UAAUpN,KAAQ1F,KAAKyF,MAAMqN,UAAUpN,GAAS,IAChE1F,KAAKyF,MAAMqN,UAAUpN,GAAOmC,KAAKwB,IAGnCrJ,KAAKgT,MAAQ,CAACtN,EAAO2D,KACnB,MAAMoH,EAAKzQ,KAKXA,KAAK+S,IAAIrN,GAJT,SAASuN,IACPxC,EAAGyC,KAAKxN,EAAOuN,GACf5J,EAAK4G,MAAMQ,EAAIvN,eAKnBlD,KAAKkT,KAAO,CAACxN,EAAO2D,KAClB,GAAKA,EAKLjD,EAAOpG,KAAKyF,MAAMqN,UAAUpN,GAAQ2D,OALpC,CACE,IAAKrJ,KAAKyF,MAAMqN,UAAUpN,GAAQ,OAClC1F,KAAKyF,MAAMqN,UAAUpN,GAAOvC,OAAS,IAMzCnD,KAAKmT,MAAQ,CAACzN,EAAOoK,EAASsD,KACvBpT,KAAKyF,MAAMqN,UAAUpN,IAC1B1F,KAAKyF,MAAMqN,UAAUpN,GAAO4M,QAAQjJ,GAAQA,EAAKyG,EAASsD,KAQ9D,mBACE,MAAMC,EAAW,GACjBrT,KAAKiP,cAAcqD,QAAQ,CAACC,EAAUhM,KAC/BgM,EAAS5L,IAAO4L,EAAS5L,GAAGO,YAC/BmM,EAASxL,KAAK0K,GAEFA,EAASe,eAEvBf,EAASgB,SAEXF,EAASf,QAAQhM,IACfF,EAAOpG,KAAKiP,cAAe3I,GAC3BA,EAAK+L,aAQT,4BACOlN,IACLnF,KAAK2Q,UAAY,IAAI6C,qBAAqBxT,KAAKyT,iBAAiB7R,KAAK5B,MAAOA,KAAK+G,QAAQgI,iBACrF/O,KAAKiP,cAAc9L,QACrBnD,KAAKiP,cAAcqD,QAAQC,IACzBvS,KAAK2Q,UAAUC,QAAQ2B,EAAS5L,OAStC,iBAAiB+M,EAAS5E,GACxB4E,EAAQpB,QAAQqB,IACVA,EAAMC,gBACR5T,KAAKiP,cAAcqD,QAAQC,IACzB,GAAIA,EAAS5L,KAAOgN,EAAM3Q,OAAQ,CAChC,GAAIuP,EAASjG,MAAMC,OAAQ,OAAOvM,KAAK2Q,UAAUuB,UAAUK,EAAS5L,IACpE4L,EAASgB,YAcnB,YAAYhB,EAAUjG,EAAO2B,GAC3B,IAAKsE,EAAS5L,GAAI,OAClB,MAAM,GAAEA,EAAE,SAAE0E,GAAakH,EAEzB,IAAIzI,EACJ,OAAQwC,GACN,IAAK,UACHxC,EAAMyI,EAASnH,QACf,MACF,IAAK,QACHtB,EAAMyI,EAASpH,MACf,MACF,QACErB,EAAMyI,EAASzI,IAenB,GAXIuB,EACF1E,EAAG2D,MAAMe,GAAY,QAAUvB,EAAM,KAC5BnD,EAAGG,aAAa,SAAWgD,GACpCnD,EAAG0F,aAAa,MAAOvC,GAGzBnD,EAAG0F,aAAa,OAAQC,GAExBtM,KAAKmT,MAAM7G,EAAOiG,EAAUtE,GAC5BjO,KAAK+G,QAAQ+G,QAAQxB,IAAUtM,KAAK+G,QAAQ+G,QAAQxB,GAAOiG,EAAUvS,KAAK+G,SAEtE/G,KAAK+G,QAAQ4H,cAAe,CAC9B,MAAMjJ,EAAQ,IAAIF,EAAY8G,EAAO,CACnCxG,OAAQyM,IAEV5L,EAAGgI,cAAcjJ,IASrB,gBAAgBrE,GACd,IAAIyI,EAAMzI,EACN+J,EAAUpL,KAAK+G,QAAQqE,QACvBD,EAAQnL,KAAK+G,QAAQoE,MAxrB/B,IAAoBtG,EAisBd,OAhsBW,QADGA,EA2rBCxD,IA1rBmB,iBAARwD,IA2rBnBxD,EAAMyI,KAAQ9J,KAAK+G,QAAQyG,QAAQC,QAAQtC,MAAM,uCAAyC9J,GAC/FyI,EAAMzI,EAAMyI,IACZsB,EAAU/J,EAAM+J,SAAWpL,KAAK+G,QAAQqE,QACxCD,EAAQ9J,EAAM8J,OAASnL,KAAK+G,QAAQoE,OAE/B,CACLrB,MACAsB,UACAD,WAMRqD,EAAKqF,QAAU,CAACpF,EAAK1H,EAAU,MAC7B,MACM+M,EAAO,IADKtF,EAAKC,GACV,CAAc1H,GAEkB,MAA9B0H,EAAIO,QAAQxH,MAAM,KAAK,GAEpCiH,EAAIsF,UAAU,OAAQ,CACpBnS,KAAMkS,EAAK9F,IAAIpM,KAAKkS,GACpB7C,OAAQ6C,EAAK7C,OAAOrP,KAAKkS,GACzBE,iBAAkBF,EAAKxE,gBAAgB1N,KAAKkS,GAC5CG,OAAQH,EAAK1N,OAAOxE,KAAKkS,KAG3BrF,EAAIsF,UAAU,OAAQ,CACpBnS,KAAMkS,EAAKxE,gBAAgB1N,KAAKkS,GAChC,OAAOI,EAAUC,GACfnP,EAAWhF,KAAKyQ,GAAGa,MAAOtR,KAAKyQ,GAAG2D,MAClCN,EAAK9F,IAAIhO,KAAK2G,GAAI,CAChB0K,UAAWrR,KAAKqR,WAAa,GAC7BU,IAAK/R,KAAK+R,IACV1Q,MAAO6S,EACPC,SAAUA,GACT,CACDrE,QAAS9P,KAAKyQ,MAGlB,SACEqD,EAAK1N,OAAOpG,KAAK2G,QAMzB,MAAM0N,EAAgBP,IACb,CACLQ,MAAO,CACLC,IAAK,CACH5Q,KAAME,OACN2Q,QAAS,QAGb,OAAOC,GACL,OAAOA,EAAEzU,KAAKuU,IAAK,KAAMvU,KAAK0U,KAAO1U,KAAK2U,OAAOH,QAAU,OAE7DjH,KAAI,KACK,CACL5G,GAAI,KACJ2F,MAAO,CACLC,QAAQ,GAEVb,KAAM,GACNgJ,MAAM,IAGV,UACE1U,KAAK2G,GAAK3G,KAAK6Q,IACfiD,EAAKc,WAAW5U,MAChB8T,EAAKxE,mBAEP,gBACEwE,EAAKe,gBAAgB7U,OAEvB8U,QAAS,CACP,UACE9U,KAAK0L,KAAO1L,KAAK6Q,IAAInE,yBAEvB,cAEE,OADA1M,KAAK2M,UACE1H,GAAajF,KAAK0L,KAAKkB,IAAM1H,OAAO2H,YAAciH,EAAK/M,QAAQ+F,SAAW9M,KAAK0L,KAAKqB,OAAS,GAAK/M,KAAK0L,KAAKuB,KAAO/H,OAAOgI,WAAa4G,EAAK/M,QAAQ+F,SAAW9M,KAAK0L,KAAKyB,MAAQ,GAE1L,OACEnN,KAAK0U,MAAO,EACZ1U,KAAKsM,MAAMC,QAAS,EACpBvM,KAAKmT,MAAM,OAAQnT,OAErB,UACE,OAAOA,KAAKqS,aAMpBgC,EAAcR,QAAU,SAAUpF,EAAK1H,EAAU,IAC/C,MACM+M,EAAO,IADKtF,EAAKC,GACV,CAAc1H,GAC3B0H,EAAIsG,UAAU,iBAAkBV,EAAcP,KAGhD,MAAMkB,EACJ,aAAY,KAAElB,IACZ9T,KAAK8T,KAAOA,EACZA,EAAKmB,sBAAwBjV,KAC7BA,KAAKkV,OAAS,GAGhB,KAAKvO,EAAImK,EAASC,GAChB,MAAMK,EAAY,IAAI+D,EAAc,CAAExO,KAAImK,UAASC,QAAO+C,KAAM9T,KAAK8T,OACrE9T,KAAKkV,OAAOrN,KAAKuJ,GAGnB,OAAOzK,EAAImK,EAASC,GAClB,MAAMK,EAAYhJ,EAAKpI,KAAKkV,OAAQ5O,GAAQA,EAAKK,KAAOA,GACnDyK,GACLA,EAAUH,OAAO,CAAEtK,KAAImK,UAASC,UAGlC,OAAOpK,EAAImK,EAASC,GAClB,MAAMK,EAAYhJ,EAAKpI,KAAKkV,OAAQ5O,GAAQA,EAAKK,KAAOA,GACnDyK,IACLA,EAAUgE,QACVhP,EAAOpG,KAAKkV,OAAQ9D,KAIxB,MAAMiE,EAAiB,CACrBC,SAAU,OAGZ,MAAMH,EACJ,aAAY,GAAExO,EAAE,QAAEmK,EAAO,MAAEC,EAAK,KAAE+C,IAChC9T,KAAK2G,GAAK,KACV3G,KAAK+Q,MAAQA,EACb/Q,KAAK8Q,QAAUA,EACf9Q,KAAK+G,QAAU,GACf/G,KAAK8T,KAAOA,EAEZ9T,KAAKkV,OAAS,GACdlV,KAAKiR,OAAO,CAAEtK,KAAImK,YAGpB,QAAO,GAAEnK,EAAE,QAAEmK,IACX9Q,KAAK2G,GAAKA,EACV3G,KAAK+G,QAAU/B,EAAW,GAAIqQ,EAAgBvE,EAAQzP,OAEzCrB,KAAKuV,UACbjD,QAAQ3L,IACX3G,KAAK8T,KAAK9F,IAAIrH,EAAI3B,EAAW,GAAIhF,KAAK8Q,QAAS,CAC7CzP,MAAO,CACLyI,IAAK,YAAanD,EAAKA,EAAGyF,QAAQtC,IAAMnD,EAAGG,aAAa,YACxDqE,OAAQ,YAAaxE,EAAKA,EAAGyF,QAAQjB,MAAQxE,EAAGG,aAAa,gBAAkB9G,KAAK+G,QAAQoE,MAC5FC,SAAU,YAAazE,EAAKA,EAAGyF,QAAQhB,QAAUzE,EAAGG,aAAa,kBAAoB9G,KAAK+G,QAAQqE,WAElGpL,KAAK+Q,SAIb,UACE,OA10BJ,SAAmByE,GACjB,IAAIvS,EAAMuS,EAAQrS,OAClB,MAAMoN,EAAO,GACb,IAAK,IAAInQ,EAAI,EAAGA,EAAI6C,EAAK7C,IACvBmQ,EAAK1I,KAAK2N,EAAQpV,IAEpB,OAAOmQ,EAo0BEkF,CAAUzV,KAAK2G,GAAG+O,iBAAiB1V,KAAK+G,QAAQuO,WAGzD,QACetV,KAAKuV,UACbjD,QAAQ3L,GAAM3G,KAAK8T,KAAK1N,OAAOO,IAEpC3G,KAAK+Q,MAAQ,KACb/Q,KAAK8Q,QAAU,KACf9Q,KAAK8T,KAAO,MAIhBqB,EAActB,QAAU,CAACpF,EAAK1H,EAAU,MACtC,MACM+M,EAAO,IADKtF,EAAKC,GACV,CAAc1H,GACrB4O,EAAgB,IAAIR,EAAc,CAAErB,SAEG,MAA9BrF,EAAIO,QAAQxH,MAAM,KAAK,GAEpCiH,EAAIsF,UAAU,iBAAkB,CAC9BnS,KAAM+T,EAAc/T,KAAKA,KAAK+T,GAC9B3B,iBAAkB2B,EAAc1E,OAAOrP,KAAK+T,GAC5C1B,OAAQ0B,EAAc1B,OAAOrS,KAAK+T,KAGpClH,EAAIsF,UAAU,iBAAkB,CAC9B,OAAOG,EAAUC,GACfwB,EAAc1E,OAAOjR,KAAK2G,GAAI,CAC5B0K,UAAWrR,KAAKqR,WAAa,GAC7BU,IAAK/R,KAAK+R,IACV1Q,MAAO6S,EACPC,SAAUA,GACT,CACDrE,QAAS9P,KAAKyQ,MAGlB,SACEkF,EAAc1B,OAAOjU,KAAK2G,QAMlC,MAAMiP,EAAYC,IACT,CACLvB,MAAO,CACLxK,IAAK,CAACjG,OAAQ/C,QACdyT,IAAK,CACH5Q,KAAME,OACN2Q,QAAS,QAGb,OAAOC,GACL,OAAOA,EAAEzU,KAAKuU,IAAK,CACjBuB,MAAO,CACLhM,IAAK9J,KAAK+V,YAEX/V,KAAK2U,OAAOH,UAEjBjH,KAAI,KACK,CACL5G,GAAI,KACJI,QAAS,CACP+C,IAAK,GACLqB,MAAO,GACPC,QAAS,GACTK,QAASoK,EAAY9O,QAAQ0E,SAE/Ba,MAAO,CACLC,QAAQ,EACRpB,OAAO,EACPM,QAAS,GAEXC,KAAM,GACNqK,UAAW,KAGfC,MAAO,CACL,MACEhW,KAAK6L,OACLgK,EAAYjB,WAAW5U,MACvB6V,EAAYvG,oBAGhB,UACEtP,KAAK6L,OACL7L,KAAK+V,UAAY/V,KAAK+G,QAAQqE,SAEhC,UACEpL,KAAK2G,GAAK3G,KAAK6Q,IACfgF,EAAYjB,WAAW5U,MACvB6V,EAAYvG,mBAEd,gBACEuG,EAAYhB,gBAAgB7U,OAE9B8U,QAAS,CACP,OACE,MAAM,IAAEhL,EAAG,QAAEsB,EAAO,MAAED,GAAU0K,EAAY1E,gBAAgBnR,KAAK8J,KACjE9J,KAAKsM,MAAMC,QAAS,EACpBvM,KAAK+G,QAAQ+C,IAAMA,EACnB9J,KAAK+G,QAAQoE,MAAQA,EACrBnL,KAAK+G,QAAQqE,QAAUA,EACvBpL,KAAK+V,UAAY/V,KAAK+G,QAAQqE,SAEhC,UACEpL,KAAK0L,KAAO1L,KAAK6Q,IAAInE,yBAEvB,cAEE,OADA1M,KAAK2M,UACE1H,GAAajF,KAAK0L,KAAKkB,IAAM1H,OAAO2H,YAAcgJ,EAAY9O,QAAQ+F,SAAW9M,KAAK0L,KAAKqB,OAAS,GAAK/M,KAAK0L,KAAKuB,KAAO/H,OAAOgI,WAAa2I,EAAY9O,QAAQ+F,SAAW9M,KAAK0L,KAAKyB,MAAQ,GAExM,KAAKQ,EAAWhD,GACd,GAAI3K,KAAKsM,MAAMb,QAAUzL,KAAK+G,QAAQ0E,QAAU,GAAKzL,KAAKsM,MAAMnB,MAG9D,OAFK0K,EAAY9O,QAAQyG,QAAQC,QAAQG,IAAI,oBAAoB5N,KAAK+G,QAAQ+C,2BAA2B9J,KAAK+G,QAAQ0E,sBACtHkC,IAGF,MAAM7D,EAAM9J,KAAK+G,QAAQ+C,IACzBL,EAAe,CAAEK,OAAO,EAAGA,UACzB9J,KAAK+V,UAAYjM,EACjB9J,KAAKsM,MAAMC,QAAS,GACnBrD,IACDlJ,KAAKsM,MAAMb,UACXzL,KAAK+V,UAAY/V,KAAK+G,QAAQoE,MAC9BnL,KAAKsM,MAAMnB,OAAQ,QAO7ByK,EAAU/B,QAAU,CAACpF,EAAK1H,EAAU,MAClC,MACM+M,EAAO,IADKtF,EAAKC,GACV,CAAc1H,GAC3B0H,EAAIsG,UAAU,aAAca,EAAU9B,KAGxC,IAyEe,EAzEH,CAMV,QAAQrF,EAAK1H,EAAU,IACrB,MACM+M,EAAO,IADKtF,EAAKC,GACV,CAAc1H,GACrB4O,EAAgB,IAAIX,EAAsB,CAAElB,SAE5CmC,EAAuC,MAA9BxH,EAAIO,QAAQxH,MAAM,KAAK,GAEtCiH,EAAIzM,UAAUkU,UAAYpC,EAEtB/M,EAAQoP,eACV1H,EAAIsG,UAAU,iBAAkBV,EAAcP,IAG5C/M,EAAQqP,WACV3H,EAAIsG,UAAU,aAAca,EAAU9B,IAGpCmC,GACFxH,EAAIsF,UAAU,OAAQ,CACpBnS,KAAMkS,EAAK9F,IAAIpM,KAAKkS,GACpB7C,OAAQ6C,EAAK7C,OAAOrP,KAAKkS,GACzBE,iBAAkBF,EAAKxE,gBAAgB1N,KAAKkS,GAC5CG,OAAQH,EAAK1N,OAAOxE,KAAKkS,KAE3BrF,EAAIsF,UAAU,iBAAkB,CAC9BnS,KAAM+T,EAAc/T,KAAKA,KAAK+T,GAC9B3B,iBAAkB2B,EAAc1E,OAAOrP,KAAK+T,GAC5C1B,OAAQ0B,EAAc1B,OAAOrS,KAAK+T,OAGpClH,EAAIsF,UAAU,OAAQ,CACpBnS,KAAMkS,EAAKxE,gBAAgB1N,KAAKkS,GAChC,OAAOI,EAAUC,GACfnP,EAAWhF,KAAKyQ,GAAGa,MAAOtR,KAAKyQ,GAAG2D,MAClCN,EAAK9F,IAAIhO,KAAK2G,GAAI,CAChB0K,UAAWrR,KAAKqR,WAAa,GAC7BU,IAAK/R,KAAK+R,IACV1Q,MAAO6S,EACPC,SAAUA,GACT,CACDrE,QAAS9P,KAAKyQ,MAGlB,SACEqD,EAAK1N,OAAOpG,KAAK2G,OAIrB8H,EAAIsF,UAAU,iBAAkB,CAC9B,OAAOG,EAAUC,GACfwB,EAAc1E,OAAOjR,KAAK2G,GAAI,CAC5B0K,UAAWrR,KAAKqR,WAAa,GAC7BU,IAAK/R,KAAK+R,IACV1Q,MAAO6S,EACPC,SAAUA,GACT,CACDrE,QAAS9P,KAAKyQ,MAGlB,SACEkF,EAAc1B,OAAOjU,KAAK2G,U,OCtmDpC0P,EAAS1V,KAAO,eAED0V","file":"lazyload/lazyload.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"lazyload\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"lazyload\"] = factory();\n\telse\n\t\troot[\"lazyload\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 216);\n","/*!\n * Vue-Lazyload.js v1.3.4\n * (c) 2021 Awe <hilongjw@gmail.com>\n * Released under the MIT License.\n */\n\n/*!\n * is-primitive <https://github.com/jonschlinkert/is-primitive>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n// see http://jsperf.com/testing-value-is-primitive/7\n\nvar isPrimitive = function isPrimitive(value) {\n return value == null || typeof value !== 'function' && typeof value !== 'object';\n};\n\nvar isPrimitive$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': isPrimitive,\n __moduleExports: isPrimitive\n});\n\n/*!\n * assign-symbols <https://github.com/jonschlinkert/assign-symbols>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nvar assignSymbols = function (receiver, objects) {\n if (receiver === null || typeof receiver === 'undefined') {\n throw new TypeError('expected first argument to be an object.');\n }\n\n if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {\n return receiver;\n }\n\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return receiver;\n }\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var target = Object(receiver);\n var len = arguments.length,\n i = 0;\n\n while (++i < len) {\n var provider = Object(arguments[i]);\n var names = Object.getOwnPropertySymbols(provider);\n\n for (var j = 0; j < names.length; j++) {\n var key = names[j];\n\n if (isEnumerable.call(provider, key)) {\n target[key] = provider[key];\n }\n }\n }\n return target;\n};\n\nvar assignSymbols$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': assignSymbols,\n __moduleExports: assignSymbols\n});\n\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param {*} `val`\n * @return {*} Native javascript type\n */\n\nvar kindOf = function kindOf(val) {\n var type = typeof val;\n\n // primitivies\n if (type === 'undefined') {\n return 'undefined';\n }\n if (val === null) {\n return 'null';\n }\n if (val === true || val === false || val instanceof Boolean) {\n return 'boolean';\n }\n if (type === 'string' || val instanceof String) {\n return 'string';\n }\n if (type === 'number' || val instanceof Number) {\n return 'number';\n }\n\n // functions\n if (type === 'function' || val instanceof Function) {\n if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {\n return 'generatorfunction';\n }\n return 'function';\n }\n\n // array\n if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n return 'array';\n }\n\n // check for instances of RegExp and Date before calling `toString`\n if (val instanceof RegExp) {\n return 'regexp';\n }\n if (val instanceof Date) {\n return 'date';\n }\n\n // other objects\n type = toString.call(val);\n\n if (type === '[object RegExp]') {\n return 'regexp';\n }\n if (type === '[object Date]') {\n return 'date';\n }\n if (type === '[object Arguments]') {\n return 'arguments';\n }\n if (type === '[object Error]') {\n return 'error';\n }\n if (type === '[object Promise]') {\n return 'promise';\n }\n\n // buffer\n if (isBuffer(val)) {\n return 'buffer';\n }\n\n // es6: Map, WeakMap, Set, WeakSet\n if (type === '[object Set]') {\n return 'set';\n }\n if (type === '[object WeakSet]') {\n return 'weakset';\n }\n if (type === '[object Map]') {\n return 'map';\n }\n if (type === '[object WeakMap]') {\n return 'weakmap';\n }\n if (type === '[object Symbol]') {\n return 'symbol';\n }\n\n if (type === '[object Map Iterator]') {\n return 'mapiterator';\n }\n if (type === '[object Set Iterator]') {\n return 'setiterator';\n }\n if (type === '[object String Iterator]') {\n return 'stringiterator';\n }\n if (type === '[object Array Iterator]') {\n return 'arrayiterator';\n }\n\n // typed arrays\n if (type === '[object Int8Array]') {\n return 'int8array';\n }\n if (type === '[object Uint8Array]') {\n return 'uint8array';\n }\n if (type === '[object Uint8ClampedArray]') {\n return 'uint8clampedarray';\n }\n if (type === '[object Int16Array]') {\n return 'int16array';\n }\n if (type === '[object Uint16Array]') {\n return 'uint16array';\n }\n if (type === '[object Int32Array]') {\n return 'int32array';\n }\n if (type === '[object Uint32Array]') {\n return 'uint32array';\n }\n if (type === '[object Float32Array]') {\n return 'float32array';\n }\n if (type === '[object Float64Array]') {\n return 'float64array';\n }\n\n // must be a plain object\n return 'object';\n};\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n return val.constructor && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\nvar kindOf$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': kindOf,\n __moduleExports: kindOf\n});\n\nvar isPrimitive$2 = ( isPrimitive$1 && isPrimitive ) || isPrimitive$1;\n\nvar assignSymbols$2 = ( assignSymbols$1 && assignSymbols ) || assignSymbols$1;\n\nvar typeOf = ( kindOf$1 && kindOf ) || kindOf$1;\n\nfunction assign(target /*, objects*/) {\n target = target || {};\n var len = arguments.length,\n i = 0;\n if (len === 1) {\n return target;\n }\n while (++i < len) {\n var val = arguments[i];\n if (isPrimitive$2(target)) {\n target = val;\n }\n if (isObject(val)) {\n extend(target, val);\n }\n }\n return target;\n}\n\n/**\n * Shallow extend\n */\n\nfunction extend(target, obj) {\n assignSymbols$2(target, obj);\n\n for (var key in obj) {\n if (isValidKey(key) && hasOwn(obj, key)) {\n var val = obj[key];\n if (isObject(val)) {\n if (typeOf(target[key]) === 'undefined' && typeOf(val) === 'function') {\n target[key] = val;\n }\n target[key] = assign(target[key] || {}, val);\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n}\n\n/**\n * Returns true if the object is a plain object or a function.\n */\n\nfunction isObject(obj) {\n return typeOf(obj) === 'object' || typeOf(obj) === 'function';\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Returns true if the given `key` is a valid key that can be used for assigning properties.\n */\n\nfunction isValidKey(key) {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n}\n\n/**\n * Expose `assign`\n */\n\nvar assignDeep = assign;\n\nconst inBrowser = typeof window !== 'undefined' && window !== null;\n\nconst 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 () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return true;\n }\n return false;\n}\n\nconst modeType = {\n event: 'event',\n observer: 'observer'\n\n // CustomEvent polyfill for IE\n};const 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 const index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\n\nfunction some(arr, fn) {\n let has = false;\n for (let 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 let options = el.getAttribute('data-srcset');\n const result = [];\n const container = el.parentNode;\n const containerWidth = container.offsetWidth * scale;\n\n let spaceIndex;\n let tmpSrc;\n let tmpWidth;\n\n options = options.trim().split(',');\n\n options.map(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 let bestSelectedSrc = '';\n let tmpOption;\n\n for (let i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n const 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 let item;\n for (let 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\nconst getDPR = (scale = 1) => inBrowser ? window.devicePixelRatio || scale : scale;\n\nfunction supportWebp() {\n if (!inBrowser) return false;\n\n let support = true;\n\n try {\n const 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 let timeout = null;\n let movement = null;\n let lastRun = 0;\n let needRun = false;\n return function () {\n needRun = true;\n if (timeout) {\n return;\n }\n let elapsed = Date.now() - lastRun;\n let context = this;\n let args = arguments;\n let runCallback = function () {\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 let support = false;\n try {\n let opts = Object.defineProperty({}, 'passive', {\n get: function () {\n support = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return support;\n}\n\nconst supportsPassive = testSupportsPassive();\n\nconst _ = {\n on(el, type, func, capture = false) {\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(el, type, func, capture = false) {\n el.removeEventListener(type, func, capture);\n }\n};\n\nconst loadImageAsync = (item, resolve, reject) => {\n let image = new Image();\n if (!item || !item.src) {\n const 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\nconst style = (el, prop) => {\n return typeof getComputedStyle !== 'undefined' ? getComputedStyle(el, null).getPropertyValue(prop) : el.style[prop];\n};\n\nconst overflow = el => {\n return style(el, 'overflow') + style(el, 'overflow-y') + style(el, 'overflow-x');\n};\n\nconst scrollParent = el => {\n if (!inBrowser) return;\n if (!(el instanceof HTMLElement)) {\n return window;\n }\n\n let 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$1(obj) {\n return obj !== null && 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 let keys = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n\nfunction ArrayFrom(arrLike) {\n let len = arrLike.length;\n const list = [];\n for (let i = 0; i < len; i++) {\n list.push(arrLike[i]);\n }\n return list;\n}\n\nfunction noop() {}\n\nclass ImageCache {\n constructor({ max }) {\n this.options = {\n max: max || 100\n };\n this._caches = [];\n }\n\n has(key) {\n return this._caches.indexOf(key) > -1;\n }\n\n 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 free() {\n this._caches.shift();\n }\n}\n\n// el: {\n// state,\n// src,\n// error,\n// loading\n// }\n\nclass ReactiveListener {\n constructor({ el, src, error, loading, bindType, $parent, options, cors, elRenderer, imageCache }) {\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 /*\n * init listener state\n * @return\n */\n 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 /*\n * record performance\n * @return\n */\n record(event) {\n this.performanceData[event] = Date.now();\n }\n\n /*\n * update image listener data\n * @param {String} image uri\n * @param {String} loading image uri\n * @param {String} error image uri\n * @return\n */\n update({ src, loading, error }) {\n const 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 /*\n * get el node rect\n * @return\n */\n getRect() {\n this.rect = this.el.getBoundingClientRect();\n }\n\n /*\n * check el is in view\n * @return {Boolean} el is in view\n */\n 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 /*\n * listener filter\n */\n filter() {\n ObjectKeys(this.options.filter).map(key => {\n this.options.filter[key](this, this.options);\n });\n }\n\n /*\n * render loading first\n * @params cb:Function\n * @return\n */\n renderLoading(cb) {\n this.state.loading = true;\n loadImageAsync({\n src: this.loading,\n cors: this.cors\n }, data => {\n this.render('loading', false);\n this.state.loading = false;\n cb();\n }, () => {\n // handler `loading image` load failed\n cb();\n this.state.loading = false;\n if (!this.options.silent) console.warn(`VueLazyload log: load failed with loading image(${this.loading})`);\n });\n }\n\n /*\n * try load image and render it\n * @return\n */\n load(onFinish = noop) {\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(() => {\n this.attempt++;\n\n this.options.adapter['beforeLoad'] && this.options.adapter['beforeLoad'](this, this.options);\n this.record('loadStart');\n\n loadImageAsync({\n src: this.src,\n cors: this.cors\n }, data => {\n this.naturalHeight = data.naturalHeight;\n this.naturalWidth = data.naturalWidth;\n this.state.loaded = true;\n this.state.error = false;\n this.record('loadEnd');\n this.render('loaded', false);\n this.state.rendered = true;\n this._imageCache.add(this.src);\n onFinish();\n }, err => {\n !this.options.silent && console.error(err);\n this.state.error = true;\n this.state.loaded = false;\n this.render('error', false);\n });\n });\n }\n\n /*\n * render image\n * @param {String} state to render // ['loading', 'src', 'error']\n * @param {String} is form cache\n * @return\n */\n render(state, cache) {\n this.elRenderer(this, state, cache);\n }\n\n /*\n * output performance data\n * @return {Object} performance data\n */\n performance() {\n let state = 'loading';\n let 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,\n time\n };\n }\n\n /*\n * $destroy\n * @return\n */\n $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\nconst DEFAULT_URL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nconst DEFAULT_EVENTS = ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'];\nconst DEFAULT_OBSERVER_OPTIONS = {\n rootMargin: '0px',\n threshold: 0\n};\n\nfunction Lazy(Vue) {\n return class Lazy {\n constructor({ preLoad, error, throttleWait, preLoadTop, dispatchEvent, loading, attempt, silent = true, scale, listenEvents, hasbind, filter, adapter, observer, observerOptions }) {\n this.version = '\"1.3.4\"';\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 /**\n * update config\n * @param {Object} config params\n * @return\n */\n config(options = {}) {\n assignDeep(this.options, options);\n }\n\n /**\n * output listener's load performance\n * @return {Array}\n */\n performance() {\n let list = [];\n\n this.ListenerQueue.map(item => {\n list.push(item.performance());\n });\n\n return list;\n }\n\n /*\n * add lazy component to queue\n * @param {Vue} vm lazy component instance\n * @return\n */\n 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 /*\n * add image listener to queue\n * @param {DOM} el\n * @param {object} binding vue directive binding\n * @param {vnode} vnode vue directive vnode\n * @return\n */\n add(el, binding, vnode) {\n if (some(this.ListenerQueue, item => item.el === el)) {\n this.update(el, binding);\n return Vue.nextTick(this.lazyLoadHandler);\n }\n\n let { src, loading, error, cors } = this._valueFormatter(binding.value);\n\n Vue.nextTick(() => {\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n this._observer && this._observer.observe(el);\n\n const container = Object.keys(binding.modifiers)[0];\n let $parent;\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 const newListener = new ReactiveListener({\n bindType: binding.arg,\n $parent,\n el,\n loading,\n error,\n src,\n 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(() => this.lazyLoadHandler());\n });\n }\n\n /**\n * update image src\n * @param {DOM} el\n * @param {object} vue directive binding\n * @return\n */\n update(el, binding, vnode) {\n let { src, loading, error } = this._valueFormatter(binding.value);\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n\n const exist = find(this.ListenerQueue, item => item.el === el);\n if (!exist) {\n this.add(el, binding, vnode);\n } else {\n exist.update({\n src,\n loading,\n error\n });\n }\n if (this._observer) {\n this._observer.unobserve(el);\n this._observer.observe(el);\n }\n this.lazyLoadHandler();\n Vue.nextTick(() => this.lazyLoadHandler());\n }\n\n /**\n * remove listener form list\n * @param {DOM} el\n * @return\n */\n remove(el) {\n if (!el) return;\n this._observer && this._observer.unobserve(el);\n const existItem = find(this.ListenerQueue, item => item.el === el);\n if (existItem) {\n this._removeListenerTarget(existItem.$parent);\n this._removeListenerTarget(window);\n remove(this.ListenerQueue, existItem);\n existItem.$destroy();\n }\n }\n\n /*\n * remove lazy components form list\n * @param {Vue} vm Vue instance\n * @return\n */\n 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 setMode(mode) {\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(listener => {\n this._observer.unobserve(listener.el);\n });\n this._observer = null;\n }\n\n this.TargetQueue.forEach(target => {\n this._initListen(target.el, true);\n });\n } else {\n this.TargetQueue.forEach(target => {\n this._initListen(target.el, false);\n });\n this._initIntersectionObserver();\n }\n }\n\n /*\n *** Private functions ***\n */\n\n /*\n * add listener target\n * @param {DOM} el listener target\n * @return\n */\n _addListenerTarget(el) {\n if (!el) return;\n let target = find(this.TargetQueue, target => target.el === el);\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 /*\n * remove listener target or reduce target childrenCount\n * @param {DOM} el or window\n * @return\n */\n _removeListenerTarget(el) {\n this.TargetQueue.forEach((target, index) => {\n if (target.el === el) {\n target.childrenCount--;\n if (!target.childrenCount) {\n this._initListen(target.el, false);\n this.TargetQueue.splice(index, 1);\n target = null;\n }\n }\n });\n }\n\n /*\n * add or remove eventlistener\n * @param {DOM} el DOM or Window\n * @param {boolean} start flag\n * @return\n */\n _initListen(el, start) {\n this.options.ListenEvents.forEach(evt => _[start ? 'on' : 'off'](el, evt, this.lazyLoadHandler));\n }\n\n _initEvent() {\n this.Event = {\n listeners: {\n loading: [],\n loaded: [],\n error: []\n }\n };\n\n this.$on = (event, func) => {\n if (!this.Event.listeners[event]) this.Event.listeners[event] = [];\n this.Event.listeners[event].push(func);\n };\n\n this.$once = (event, func) => {\n const vm = this;\n function on() {\n vm.$off(event, on);\n func.apply(vm, arguments);\n }\n this.$on(event, on);\n };\n\n this.$off = (event, func) => {\n if (!func) {\n if (!this.Event.listeners[event]) return;\n this.Event.listeners[event].length = 0;\n return;\n }\n remove(this.Event.listeners[event], func);\n };\n\n this.$emit = (event, context, inCache) => {\n if (!this.Event.listeners[event]) return;\n this.Event.listeners[event].forEach(func => func(context, inCache));\n };\n }\n\n /**\n * find nodes which in viewport and trigger load\n * @return\n */\n _lazyLoadHandler() {\n const freeList = [];\n this.ListenerQueue.forEach((listener, index) => {\n if (!listener.el || !listener.el.parentNode) {\n freeList.push(listener);\n }\n const catIn = listener.checkInView();\n if (!catIn) return;\n listener.load();\n });\n freeList.forEach(item => {\n remove(this.ListenerQueue, item);\n item.$destroy();\n });\n }\n /**\n * init IntersectionObserver\n * set mode to observer\n * @return\n */\n _initIntersectionObserver() {\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(listener => {\n this._observer.observe(listener.el);\n });\n }\n }\n\n /**\n * init IntersectionObserver\n * @return\n */\n _observerHandler(entries, observer) {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.ListenerQueue.forEach(listener => {\n if (listener.el === entry.target) {\n if (listener.state.loaded) return this._observer.unobserve(listener.el);\n listener.load();\n }\n });\n }\n });\n }\n\n /**\n * set element attribute with image'url and state\n * @param {object} lazyload listener object\n * @param {string} state will be rendered\n * @param {bool} inCache is rendered from cache\n * @return\n */\n _elRenderer(listener, state, cache) {\n if (!listener.el) return;\n const { el, bindType } = listener;\n\n let src;\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 const event = new CustomEvent(state, {\n detail: listener\n });\n el.dispatchEvent(event);\n }\n }\n\n /**\n * generate loading loaded error image url\n * @param {string} image's src\n * @return {object} image's loading, loaded, error url\n */\n _valueFormatter(value) {\n let src = value;\n let loading = this.options.loading;\n let error = this.options.error;\n\n // value is object\n if (isObject$1(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,\n loading,\n error\n };\n }\n };\n}\n\nLazy.install = (Vue, options = {}) => {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n\n const 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(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() {\n lazy.remove(this.el);\n }\n });\n }\n};\n\nconst LazyComponent = lazy => {\n return {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n },\n render(h) {\n return h(this.tag, null, this.show ? this.$slots.default : null);\n },\n data() {\n return {\n el: null,\n state: {\n loaded: false\n },\n rect: {},\n show: false\n };\n },\n mounted() {\n this.el = this.$el;\n lazy.addLazyBox(this);\n lazy.lazyLoadHandler();\n },\n beforeDestroy() {\n lazy.removeComponent(this);\n },\n methods: {\n getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n 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() {\n this.show = true;\n this.state.loaded = true;\n this.$emit('show', this);\n },\n destroy() {\n return this.$destroy;\n }\n }\n };\n};\n\nLazyComponent.install = function (Vue, options = {}) {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n Vue.component('lazy-component', LazyComponent(lazy));\n};\n\nclass LazyContainerMananger {\n constructor({ lazy }) {\n this.lazy = lazy;\n lazy.lazyContainerMananger = this;\n this._queue = [];\n }\n\n bind(el, binding, vnode) {\n const container = new LazyContainer({ el, binding, vnode, lazy: this.lazy });\n this._queue.push(container);\n }\n\n update(el, binding, vnode) {\n const container = find(this._queue, item => item.el === el);\n if (!container) return;\n container.update({ el, binding, vnode });\n }\n\n unbind(el, binding, vnode) {\n const container = find(this._queue, item => item.el === el);\n if (!container) return;\n container.clear();\n remove(this._queue, container);\n }\n}\n\nconst defaultOptions = {\n selector: 'img'\n};\n\nclass LazyContainer {\n constructor({ el, binding, vnode, lazy }) {\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, binding });\n }\n\n update({ el, binding }) {\n this.el = el;\n this.options = assignDeep({}, defaultOptions, binding.value);\n\n const imgs = this.getImgs();\n imgs.forEach(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 getImgs() {\n return ArrayFrom(this.el.querySelectorAll(this.options.selector));\n }\n\n clear() {\n const imgs = this.getImgs();\n imgs.forEach(el => this.lazy.remove(el));\n\n this.vnode = null;\n this.binding = null;\n this.lazy = null;\n }\n}\n\nLazyContainer.install = (Vue, options = {}) => {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n const lazyContainer = new LazyContainer({ lazy });\n\n const 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(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() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n};\n\nconst LazyImage = lazyManager => {\n return {\n props: {\n src: [String, Object],\n tag: {\n type: String,\n default: 'img'\n }\n },\n render(h) {\n return h(this.tag, {\n attrs: {\n src: this.renderSrc\n }\n }, this.$slots.default);\n },\n 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 watch: {\n src() {\n this.init();\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n }\n },\n created() {\n this.init();\n this.renderSrc = this.options.loading;\n },\n mounted() {\n this.el = this.$el;\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n },\n beforeDestroy() {\n lazyManager.removeComponent(this);\n },\n methods: {\n init() {\n const { src, loading, error } = lazyManager._valueFormatter(this.src);\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() {\n this.rect = this.$el.getBoundingClientRect();\n },\n 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(onFinish = noop) {\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 const src = this.options.src;\n loadImageAsync({ src }, ({ src }) => {\n this.renderSrc = src;\n this.state.loaded = true;\n }, e => {\n this.state.attempt++;\n this.renderSrc = this.options.error;\n this.state.error = true;\n });\n }\n }\n };\n};\n\nLazyImage.install = (Vue, options = {}) => {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n Vue.component('lazy-image', LazyImage(lazy));\n};\n\nvar index = {\n /*\n * install function\n * @param {Vue} Vue\n * @param {object} options lazyload options\n */\n install(Vue, options = {}) {\n const LazyClass = Lazy(Vue);\n const lazy = new LazyClass(options);\n const lazyContainer = new LazyContainerMananger({ lazy });\n\n const 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(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() {\n lazy.remove(this.el);\n }\n });\n\n Vue.directive('lazy-container', {\n 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() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n }\n};\n\nexport default index;\nexport { Lazy, LazyComponent, LazyContainerMananger as LazyContainer, LazyImage };\n","import Lazyload from 'vue-lazyload';\nLazyload.name = 'vue-lazyload';\nimport './lazyload.scss';\nexport default Lazyload;\n"],"sourceRoot":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @nutui/nutui v2.3.
|
|
2
|
+
* @nutui/nutui v2.3.14 - leftslip.css, ea1cfeedc4af744045aa, Thu Jul 27 2023 18:33:12 GMT+0800 (GMT+08:00)
|
|
3
3
|
* (c) 2017-2020 JDC
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/.nut-leftslip{position:relative;overflow:hidden}.nut-leftslip:first-child .nut-slip-main{border-top:1px solid #d8d8d8}.nut-leftslip .slip-main{padding:15px 10px;position:relative;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;background:#fff}.nut-leftslip .nut-leftslip-item{-webkit-transition:all .6s ease;-o-transition:all .6s ease;transition:all .6s ease}.nut-leftslip .delbtn{right:-52px;top:0;min-width:40px;background:#ff4949;color:#fff;padding:0 5px;font-size:14px}.nut-leftslip .delbtn,.nut-leftslip .delbtn span{position:absolute;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.nut-leftslip .delbtn span{right:0;width:50px}.nut-leftslip .nut-delet-btn{right:-50px;min-width:40px;background:#ff4949;color:#fff;padding:0 5px;font-size:14px}.nut-leftslip .nut-delet-btn,.nut-leftslip .slipbtns{position:absolute;top:0;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.nut-leftslip .slipbtns{right:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.nut-leftslip .slipbtns a{display:-webkit-box;display:-ms-flexbox;display:flex;width:40px;background:#ff4949;color:#fff;height:100%;padding:0 5px;font-size:14px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @nutui/nutui v2.3.
|
|
2
|
+
* @nutui/nutui v2.3.14 - leftslip.js, ea1cfeedc4af744045aa, Thu Jul 27 2023 18:33:12 GMT+0800 (GMT+08:00)
|
|
3
3
|
* (c) 2017-2020 JDC
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("leftslip",[],e):"object"==typeof exports?exports.leftslip=e():t.leftslip=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},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,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="./",n(n.s=
|
|
6
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("leftslip",[],e):"object"==typeof exports?exports.leftslip=e():t.leftslip=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},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,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="./",n(n.s=198)}({0:function(t,e,n){"use strict";function i(t,e,n,i,r,s,o,l){var a,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),o?(a=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},u._ssrRegister=a):r&&(a=l?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),a)if(u.functional){u._injectStyles=a;var f=u.render;u.render=function(t,e){return a.call(e),f(t,e)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,a):[a]}return{exports:t,options:u}}n.d(e,"a",(function(){return i}))},132:function(t,e,n){},198:function(t,e,n){"use strict";n.r(e);function i(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var i=0,s=function(){};return{s:s,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return l=t.done,t},e:function(t){a=!0,o=t},f:function(){try{l||null==n.return||n.return()}finally{if(a)throw o}}}}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var s={name:"nut-leftslip",props:{isClickBack:{type:Boolean,default:!0},rightWidth:{type:[Number,String],default:"0.8"},disabled:{type:Boolean,default:!1}},data:function(){return{startX:0,startY:0,moveX:0,moveY:0,buttonWidth:0,pageWidth:null,startPos:0,startLeft:0,startRightW:0,isOpen:!1,scrollTop:0,oldScrollTop:0,lock:!1}},watch:{},mounted:function(){var t=this;this.$nextTick((function(){var e,n=i(t.$slots.slipbtns);try{for(n.s();!(e=n.n()).done;){var r=e.value;t.buttonWidth=t.buttonWidth+r.elm.offsetWidth}}catch(t){n.e(t)}finally{n.f()}})),this.pageWidth=document.documentElement.clientWidth,this.sliderEle=this.$refs.slipItem},beforeDestroy:function(){window.removeEventListener("scroll",this.handleScroll())},methods:{handleRestet:function(){document.getElementsByClassName("leftslip-open")&&this.restSlide()},handleScroll:function(){var t=this;window.addEventListener("scroll",(function(){t.scrollTop=window.scrollY}))},touchStart:function(t){if(this.disabled)return!1;var e=t.currentTarget.parentElement;if(document.getElementsByClassName("leftslip-open")){if(1==e.dataset.type)return;this.restSlide()}1==t.touches.length&&(this.startX=t.touches[0].pageX,this.startY=t.touches[0].pageY);var n=this.sliderEle.style.transform;this.startLeft=Number(n?n.split("(")[1].split("px")[0]:0),this.startRightW=this.startLeft<0?Number(this.$refs.right.style.width.split("px")[0]):0},touchMove:function(t){if(this.disabled)return!1;t.currentTarget.parentElement;var e=t.touches[0].pageX-this.startX,n=t.touches[0].pageY-this.startY;if(1==t.touches.length&&Math.abs(n)<5){if(e>0||e>0&&this.startLeft>=0)return!1;this.doSlide(-this.buttonWidth,!0)}},touchEnd:function(t){if(this.disabled)return!1;var e,n=t.currentTarget.parentElement,i=t.changedTouches[0].pageX-this.startX;if(!this.isClickBack&&0===i)return!1;-i>50?(e=this.buttonWidth>this.pageWidth?this.pageWidth*Number(this.rightWidth):this.buttonWidth,n.className="nut-leftslip-item leftslip-open",n.dataset.type=1):(e=0,n.className="nut-leftslip-item",n.dataset.type=0),this.doSlide(-e,!0)},openSlide:function(){this.isOpen=!0;var t=this.buttonWidth>this.pageWidth?this.pageWidth*Number(this.rightWidth):this.buttonWidth;this.doSlide(-t,!0)},doSlide:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.sliderEle.style.transform="translateX(".concat(t,"px)"),this.$refs.right.style.width=-t+"px",this.sliderEle.style.transition=e?"transform .5s":"initial",this.$refs.right.style.transition=e?"width .5s":"initial"},restSlide:function(){for(var t=document.querySelectorAll(".nut-leftslip-item.leftslip-open"),e=0;e<t.length;e++)t[e].style="transform:translateX(0px)",t[e].dataset.type=0,t[e].className="nut-leftslip-item",this.isOpen=!1}}},o=n(0),l=Object(o.a)(s,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"nut-leftslip"},[n("div",{ref:"slipItem",staticClass:"nut-leftslip-item",class:{"leftslip-open":t.isOpen}},[n("div",{staticClass:"nut-leftslip-item-main",on:{touchstart:function(e){return t.touchStart(e)},touchmove:function(e){return t.touchMove(e)},touchend:function(e){return t.touchEnd(e)}}},[t._t("slip-main")],2),t._v(" "),n("div",{ref:"right",staticClass:"nut-leftslip-item-btn"},[t._t("slipbtns")],2)])])}),[],!1,null,null,null).exports;n(132);l.install=function(t){t.component(l.name,l)};e.default=l}})}));
|
|
7
7
|
//# sourceMappingURL=leftslip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://[name]/src/packages/leftslip/leftslip.vue","webpack://[name]/./src/packages/leftslip/leftslip.vue?25da","webpack://[name]/./src/packages/leftslip/leftslip.vue","webpack://[name]/./src/packages/leftslip/leftslip.vue?116d","webpack://[name]/./src/packages/leftslip/index.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","props","isClickBack","type","default","rightWidth","disabled","data","startX","startY","moveX","moveY","buttonWidth","pageWidth","startPos","startLeft","startRightW","isOpen","scrollTop","oldScrollTop","lock","watch","mounted","beforeDestroy","window","methods","handleRestet","handleScroll","touchStart","slip","touchMove","touchEnd","distance","parentElement","openSlide","doSlide","restSlide","listItems","_vm","_c","_self","staticClass","ref","class","on","$event","_t","_v","LeftSlip","install","Vue","component"],"mappings":";;;;;CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,WAAY,GAAIH,GACG,iBAAZC,QACdA,QAAkB,SAAID,IAEtBD,EAAe,SAAIC,IARrB,CASoB,oBAATK,KAAuBA,KAAOC,MAAO,WAChD,O,YCTE,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUR,QAGnC,IAAIC,EAASK,EAAiBE,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACHV,QAAS,IAUV,OANAW,EAAQH,GAAUI,KAAKX,EAAOD,QAASC,EAAQA,EAAOD,QAASO,GAG/DN,EAAOS,GAAI,EAGJT,EAAOD,QA0Df,OArDAO,EAAoBM,EAAIF,EAGxBJ,EAAoBO,EAAIR,EAGxBC,EAAoBQ,EAAI,SAASf,EAASgB,EAAMC,GAC3CV,EAAoBW,EAAElB,EAASgB,IAClCG,OAAOC,eAAepB,EAASgB,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEV,EAAoBgB,EAAI,SAASvB,GACX,oBAAXwB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAepB,EAASwB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAepB,EAAS,aAAc,CAAE0B,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBQ,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAASjC,GAChC,IAAIgB,EAAShB,GAAUA,EAAO4B,WAC7B,WAAwB,OAAO5B,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAM,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG7B,EAAoBgC,EAAI,KAIjBhC,EAAoBA,EAAoBiC,EAAI,K,iCC5EtC,SAASC,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAoBIC,EApBAC,EACuB,mBAAlBT,EAA+BA,EAAcS,QAAUT,EAuDhE,GApDIC,IACFQ,EAAQR,OAASA,EACjBQ,EAAQP,gBAAkBA,EAC1BO,EAAQC,WAAY,GAIlBP,IACFM,EAAQE,YAAa,GAInBN,IACFI,EAAQG,SAAW,UAAYP,GAI7BC,GAEFE,EAAO,SAAUK,IAEfA,EACEA,GACClD,KAAKmD,QAAUnD,KAAKmD,OAAOC,YAC3BpD,KAAKqD,QAAUrD,KAAKqD,OAAOF,QAAUnD,KAAKqD,OAAOF,OAAOC,aAEZ,oBAAxBE,sBACrBJ,EAAUI,qBAGRb,GACFA,EAAalC,KAAKP,KAAMkD,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIb,IAKtCG,EAAQW,aAAeZ,GACdJ,IACTI,EAAOD,EACH,WACEH,EAAalC,KACXP,MACC8C,EAAQE,WAAahD,KAAKqD,OAASrD,MAAM0D,MAAMC,SAASC,aAG7DnB,GAGFI,EACF,GAAIC,EAAQE,WAAY,CAGtBF,EAAQe,cAAgBhB,EAExB,IAAIiB,EAAiBhB,EAAQR,OAC7BQ,EAAQR,OAAS,SAAkCyB,EAAGb,GAEpD,OADAL,EAAKtC,KAAK2C,GACHY,EAAeC,EAAGb,QAEtB,CAEL,IAAIc,EAAWlB,EAAQmB,aACvBnB,EAAQmB,aAAeD,EAAW,GAAGE,OAAOF,EAAUnB,GAAQ,CAACA,GAInE,MAAO,CACLlD,QAAS0C,EACTS,QAASA,GA7Fb,mC,klCCgBe,IChB8N,EDgB9N,CACfnC,oBACAwD,OACAC,aACAC,aACAC,YAEAC,YACAF,qBACAC,eAEAE,UACAH,aACAC,aAGAG,gBACA,OACAC,SACAC,SACAC,QACAC,QACAC,cAEAC,eACAC,WACAC,YACAC,cACAC,UACAC,YACAC,eACAC,UAGAC,SAeAC,mBAAA,WACA,+BACA,EADA,IACA,iEACA,+CACA,kCAEA,oDACA,oCAIAC,yBAEAC,0DAEAC,SACAC,wBACA,kDAEA,kBAGAC,wBAAA,WACAH,6CACA,+BAGAI,uBACA,0BACA,oCAGA,GADAC,iDACA,CACA,4BACA,iBAEA,sBACA,+BACA,gCAEA,qCACA,0DACA,yFAGAC,sBACA,0BACA,kCAEA,iCACA,iCACA,wBACA,eAEA,+BAEA,SAEA,qCAKAC,qBACA,0BACA,IAEA,EAFA,gCACA,wCAGA,4BAGA,UAEA,MAEAC,0FACAC,8CACAA,mBAGAD,IACAC,gCACAA,kBAGA,qBAGAC,qBACA,eACA,8FACA,qBAEAC,oBAAA,8DACA,6DACA,qCACA,4DACA,2DAGAC,qBAIA,IAHA,oEAGA,mBACAC,uCACAA,oBACAA,mCACA,kB,OE5Je,EAXC,YACd,GCRW,WAAkB,IAAIC,EAAIxG,KAAKyG,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACG,IAAI,WAAWD,YAAY,oBAAoBE,MAAM,CAAE,gBAAiBL,EAAIrB,SAAU,CAACsB,EAAG,MAAM,CAACE,YAAY,yBAAyBG,GAAG,CAAC,WAAa,SAASC,GAAQ,OAAOP,EAAIV,WAAWiB,IAAS,UAAY,SAASA,GAAQ,OAAOP,EAAIR,UAAUe,IAAS,SAAW,SAASA,GAAQ,OAAOP,EAAIP,SAASc,MAAW,CAACP,EAAIQ,GAAG,cAAc,GAAGR,EAAIS,GAAG,KAAKR,EAAG,MAAM,CAACG,IAAI,QAAQD,YAAY,yBAAyB,CAACH,EAAIQ,GAAG,aAAa,SAEhhB,IDSpB,EACA,KACA,KACA,M,eEXFE,EAASC,QAAU,SAASC,GAC1BA,EAAIC,UAAUH,EAASvG,KAAMuG,IAGhBA","file":"leftslip/leftslip.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"leftslip\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"leftslip\"] = factory();\n\telse\n\t\troot[\"leftslip\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 196);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","<template>\n <div class=\"nut-leftslip\">\n <div class=\"nut-leftslip-item\" ref=\"slipItem\" :class=\"{ 'leftslip-open': isOpen }\">\n <div class=\"nut-leftslip-item-main\" @touchstart=\"touchStart($event)\" @touchmove=\"touchMove($event)\" @touchend=\"touchEnd($event)\">\n <slot name=\"slip-main\"></slot>\n </div>\n\n <div class=\"nut-leftslip-item-btn\" ref=\"right\">\n <slot name=\"slipbtns\">\n <!-- <a class=\"nut-delet-btn\" @click.prevent=\"onlyDelClick($event)\" v-if=\"onlyDelBtn\">删除</a> -->\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n name: 'nut-leftslip',\n props: {\n isClickBack: {\n type: Boolean,\n default: true\n },\n rightWidth: {\n type: [Number, String],\n default: '0.8'\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n startX: 0,\n startY: 0,\n moveX: 0,\n moveY: 0,\n buttonWidth: 0,\n\n pageWidth: null,\n startPos: 0,\n startLeft: 0,\n startRightW: 0,\n isOpen: false,\n scrollTop: 0,\n oldScrollTop: 0,\n lock: false\n };\n },\n watch: {\n // scrollTop(newValue, oldValue) {\n // setTimeout(() => {\n // if (newValue == window.scrollY) { //延时执行后当newValue等于window.scrollY,代表滚动结束\n // console.log('滚动结束');\n // this.oldScrollTop = newValue; //每次滚动结束后都要给oldScrollTop赋值\n // this.lock = false\n // };\n // }, 20); //必须使用延时器,否则每次newValue和window.scrollY都相等,无法判断,20ms刚好大于watch的侦听周期,故延时20ms\n // if (this.oldScrollTop == oldValue) { //每次滚动开始时oldScrollTop与oldValue相等\n // console.log('滚动开始');\n // this.lock = true;\n // }\n // }\n },\n mounted() {\n this.$nextTick(() => {\n for (var slot of this.$slots.slipbtns) {\n this.buttonWidth = this.buttonWidth + slot.elm.offsetWidth;\n }\n });\n this.pageWidth = document.documentElement.clientWidth;\n this.sliderEle = this.$refs.slipItem;\n // this.handleScroll();\n // document.addEventListener('touchstart', this.touchStart, false);\n },\n beforeDestroy() {\n // 移除监听\n window.removeEventListener('scroll', this.handleScroll());\n },\n methods: {\n handleRestet() {\n var slip = document.getElementsByClassName('leftslip-open');\n if (slip) {\n this.restSlide();\n }\n },\n handleScroll() {\n window.addEventListener('scroll', () => {\n this.scrollTop = window.scrollY;\n });\n },\n touchStart(e) {\n if (this.disabled) return false;\n let parentElement = e.currentTarget.parentElement;\n let slip = [];\n slip = document.getElementsByClassName('leftslip-open');\n if (slip) {\n if (parentElement.dataset.type == 1) return;\n this.restSlide();\n }\n if (e.touches.length == 1) {\n this.startX = e.touches[0].pageX;\n this.startY = e.touches[0].pageY;\n }\n const transform = this.sliderEle.style.transform;\n this.startLeft = Number(transform ? transform.split('(')[1].split('px')[0] : 0);\n this.startRightW = this.startLeft < 0 ? Number(this.$refs.right.style.width.split('px')[0]) : 0;\n },\n\n touchMove(e) {\n if (this.disabled) return false;\n let parentElement = e.currentTarget.parentElement;\n\n let disX = e.touches[0].pageX - this.startX; // >0 右滑,<0 左滑\n let disY = e.touches[0].pageY - this.startY;\n if (e.touches.length == 1) {\n if (Math.abs(disY) < 5) {\n // console.log(disX, disY)\n if (disX > 0 || (disX > 0 && this.startLeft >= 0)) {\n //禁止右滑\n return false;\n } else {\n this.doSlide(-this.buttonWidth, true); // 最大滑动距离为右侧宽度\n }\n }\n }\n },\n touchEnd(e) {\n if (this.disabled) return false;\n let parentElement = e.currentTarget.parentElement;\n const disX = e.changedTouches[0].pageX - this.startX; // >0 右滑,<0 左滑\n let distance;\n // console.log(1, disX, this.isClickBack)\n if (!this.isClickBack && disX === 0) {\n // 点击时不收起右侧\n // console.log(2, disX, this.isClickBack)\n return false;\n } else {\n if (-disX > 50) {\n // 向左滑动超过阙值时,右侧滑出固定距离\n distance = this.buttonWidth > this.pageWidth ? this.pageWidth * Number(this.rightWidth) : this.buttonWidth;\n parentElement.className = 'nut-leftslip-item leftslip-open';\n parentElement.dataset.type = 1;\n } else {\n // 向左滑动未超过阙值,或向右滑动时,回原位\n distance = 0;\n parentElement.className = 'nut-leftslip-item';\n parentElement.dataset.type = 0;\n }\n // console.log(3, disX, this.isClickBack)\n this.doSlide(-distance, true);\n }\n },\n openSlide() {\n this.isOpen = true;\n const distance = this.buttonWidth > this.pageWidth ? this.pageWidth * Number(this.rightWidth) : this.buttonWidth;\n this.doSlide(-distance, true);\n },\n doSlide(distance, animate = false) {\n this.sliderEle.style.transform = `translateX(${distance}px)`;\n this.$refs.right.style.width = -distance + 'px';\n this.sliderEle.style.transition = animate ? 'transform .5s' : 'initial';\n this.$refs.right.style.transition = animate ? 'width .5s' : 'initial';\n },\n\n restSlide() {\n let listItems = document.querySelectorAll('.nut-leftslip-item.leftslip-open');\n\n // 复位\n for (let i = 0; i < listItems.length; i++) {\n listItems[i].style = 'transform:translateX(0px)';\n listItems[i].dataset.type = 0; //是否展开标志位默认0,左滑展开为1,右滑隐藏为0\n listItems[i].className = 'nut-leftslip-item';\n this.isOpen = false;\n }\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftslip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftslip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./leftslip.vue?vue&type=template&id=f0919bdc&\"\nimport script from \"./leftslip.vue?vue&type=script&lang=js&\"\nexport * from \"./leftslip.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"nut-leftslip\"},[_c('div',{ref:\"slipItem\",staticClass:\"nut-leftslip-item\",class:{ 'leftslip-open': _vm.isOpen }},[_c('div',{staticClass:\"nut-leftslip-item-main\",on:{\"touchstart\":function($event){return _vm.touchStart($event)},\"touchmove\":function($event){return _vm.touchMove($event)},\"touchend\":function($event){return _vm.touchEnd($event)}}},[_vm._t(\"slip-main\")],2),_vm._v(\" \"),_c('div',{ref:\"right\",staticClass:\"nut-leftslip-item-btn\"},[_vm._t(\"slipbtns\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import LeftSlip from './leftslip.vue';\nimport './leftslip.scss';\n\nLeftSlip.install = function(Vue) {\n Vue.component(LeftSlip.name, LeftSlip);\n};\n\nexport default LeftSlip;\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://[name]/src/packages/leftslip/leftslip.vue","webpack://[name]/./src/packages/leftslip/leftslip.vue?25da","webpack://[name]/./src/packages/leftslip/leftslip.vue","webpack://[name]/./src/packages/leftslip/leftslip.vue?31f4","webpack://[name]/./src/packages/leftslip/index.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","props","isClickBack","type","Boolean","default","rightWidth","Number","String","disabled","data","startX","startY","moveX","moveY","buttonWidth","pageWidth","startPos","startLeft","startRightW","isOpen","scrollTop","oldScrollTop","lock","watch","mounted","_this","$nextTick","_step","_iterator","_createForOfIteratorHelper","$slots","slipbtns","done","slot","elm","offsetWidth","err","e","f","document","documentElement","clientWidth","sliderEle","$refs","slipItem","beforeDestroy","window","removeEventListener","handleScroll","methods","handleRestet","getElementsByClassName","restSlide","_this2","addEventListener","scrollY","touchStart","parentElement","currentTarget","dataset","touches","length","pageX","pageY","transform","style","split","right","width","touchMove","disX","disY","Math","abs","doSlide","touchEnd","distance","changedTouches","className","openSlide","animate","arguments","undefined","transition","listItems","querySelectorAll","_vm","_h","$createElement","_c","_self","staticClass","ref","class","on","$event","_t","_v","LeftSlip","install","Vue","component"],"mappings":"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","file":"leftslip/leftslip.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"leftslip\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"leftslip\"] = factory();\n\telse\n\t\troot[\"leftslip\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 198);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","<template>\n <div class=\"nut-leftslip\">\n <div class=\"nut-leftslip-item\" ref=\"slipItem\" :class=\"{ 'leftslip-open': isOpen }\">\n <div class=\"nut-leftslip-item-main\" @touchstart=\"touchStart($event)\" @touchmove=\"touchMove($event)\" @touchend=\"touchEnd($event)\">\n <slot name=\"slip-main\"></slot>\n </div>\n\n <div class=\"nut-leftslip-item-btn\" ref=\"right\">\n <slot name=\"slipbtns\">\n <!-- <a class=\"nut-delet-btn\" @click.prevent=\"onlyDelClick($event)\" v-if=\"onlyDelBtn\">删除</a> -->\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n name: 'nut-leftslip',\n props: {\n isClickBack: {\n type: Boolean,\n default: true\n },\n rightWidth: {\n type: [Number, String],\n default: '0.8'\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n startX: 0,\n startY: 0,\n moveX: 0,\n moveY: 0,\n buttonWidth: 0,\n\n pageWidth: null,\n startPos: 0,\n startLeft: 0,\n startRightW: 0,\n isOpen: false,\n scrollTop: 0,\n oldScrollTop: 0,\n lock: false\n };\n },\n watch: {\n // scrollTop(newValue, oldValue) {\n // setTimeout(() => {\n // if (newValue == window.scrollY) { //延时执行后当newValue等于window.scrollY,代表滚动结束\n // console.log('滚动结束');\n // this.oldScrollTop = newValue; //每次滚动结束后都要给oldScrollTop赋值\n // this.lock = false\n // };\n // }, 20); //必须使用延时器,否则每次newValue和window.scrollY都相等,无法判断,20ms刚好大于watch的侦听周期,故延时20ms\n // if (this.oldScrollTop == oldValue) { //每次滚动开始时oldScrollTop与oldValue相等\n // console.log('滚动开始');\n // this.lock = true;\n // }\n // }\n },\n mounted() {\n this.$nextTick(() => {\n for (var slot of this.$slots.slipbtns) {\n this.buttonWidth = this.buttonWidth + slot.elm.offsetWidth;\n }\n });\n this.pageWidth = document.documentElement.clientWidth;\n this.sliderEle = this.$refs.slipItem;\n // this.handleScroll();\n // document.addEventListener('touchstart', this.touchStart, false);\n },\n beforeDestroy() {\n // 移除监听\n window.removeEventListener('scroll', this.handleScroll());\n },\n methods: {\n handleRestet() {\n var slip = document.getElementsByClassName('leftslip-open');\n if (slip) {\n this.restSlide();\n }\n },\n handleScroll() {\n window.addEventListener('scroll', () => {\n this.scrollTop = window.scrollY;\n });\n },\n touchStart(e) {\n if (this.disabled) return false;\n let parentElement = e.currentTarget.parentElement;\n let slip = [];\n slip = document.getElementsByClassName('leftslip-open');\n if (slip) {\n if (parentElement.dataset.type == 1) return;\n this.restSlide();\n }\n if (e.touches.length == 1) {\n this.startX = e.touches[0].pageX;\n this.startY = e.touches[0].pageY;\n }\n const transform = this.sliderEle.style.transform;\n this.startLeft = Number(transform ? transform.split('(')[1].split('px')[0] : 0);\n this.startRightW = this.startLeft < 0 ? Number(this.$refs.right.style.width.split('px')[0]) : 0;\n },\n\n touchMove(e) {\n if (this.disabled) return false;\n let parentElement = e.currentTarget.parentElement;\n\n let disX = e.touches[0].pageX - this.startX; // >0 右滑,<0 左滑\n let disY = e.touches[0].pageY - this.startY;\n if (e.touches.length == 1) {\n if (Math.abs(disY) < 5) {\n // console.log(disX, disY)\n if (disX > 0 || (disX > 0 && this.startLeft >= 0)) {\n //禁止右滑\n return false;\n } else {\n this.doSlide(-this.buttonWidth, true); // 最大滑动距离为右侧宽度\n }\n }\n }\n },\n touchEnd(e) {\n if (this.disabled) return false;\n let parentElement = e.currentTarget.parentElement;\n const disX = e.changedTouches[0].pageX - this.startX; // >0 右滑,<0 左滑\n let distance;\n // console.log(1, disX, this.isClickBack)\n if (!this.isClickBack && disX === 0) {\n // 点击时不收起右侧\n // console.log(2, disX, this.isClickBack)\n return false;\n } else {\n if (-disX > 50) {\n // 向左滑动超过阙值时,右侧滑出固定距离\n distance = this.buttonWidth > this.pageWidth ? this.pageWidth * Number(this.rightWidth) : this.buttonWidth;\n parentElement.className = 'nut-leftslip-item leftslip-open';\n parentElement.dataset.type = 1;\n } else {\n // 向左滑动未超过阙值,或向右滑动时,回原位\n distance = 0;\n parentElement.className = 'nut-leftslip-item';\n parentElement.dataset.type = 0;\n }\n // console.log(3, disX, this.isClickBack)\n this.doSlide(-distance, true);\n }\n },\n openSlide() {\n this.isOpen = true;\n const distance = this.buttonWidth > this.pageWidth ? this.pageWidth * Number(this.rightWidth) : this.buttonWidth;\n this.doSlide(-distance, true);\n },\n doSlide(distance, animate = false) {\n this.sliderEle.style.transform = `translateX(${distance}px)`;\n this.$refs.right.style.width = -distance + 'px';\n this.sliderEle.style.transition = animate ? 'transform .5s' : 'initial';\n this.$refs.right.style.transition = animate ? 'width .5s' : 'initial';\n },\n\n restSlide() {\n let listItems = document.querySelectorAll('.nut-leftslip-item.leftslip-open');\n\n // 复位\n for (let i = 0; i < listItems.length; i++) {\n listItems[i].style = 'transform:translateX(0px)';\n listItems[i].dataset.type = 0; //是否展开标志位默认0,左滑展开为1,右滑隐藏为0\n listItems[i].className = 'nut-leftslip-item';\n this.isOpen = false;\n }\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftslip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./leftslip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./leftslip.vue?vue&type=template&id=f0919bdc&\"\nimport script from \"./leftslip.vue?vue&type=script&lang=js&\"\nexport * from \"./leftslip.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nut-leftslip\"},[_c('div',{ref:\"slipItem\",staticClass:\"nut-leftslip-item\",class:{ 'leftslip-open': _vm.isOpen }},[_c('div',{staticClass:\"nut-leftslip-item-main\",on:{\"touchstart\":function($event){return _vm.touchStart($event)},\"touchmove\":function($event){return _vm.touchMove($event)},\"touchend\":function($event){return _vm.touchEnd($event)}}},[_vm._t(\"slip-main\")],2),_vm._v(\" \"),_c('div',{ref:\"right\",staticClass:\"nut-leftslip-item-btn\"},[_vm._t(\"slipbtns\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import LeftSlip from './leftslip.vue';\nimport './leftslip.scss';\n\nLeftSlip.install = function(Vue) {\n Vue.component(LeftSlip.name, LeftSlip);\n};\n\nexport default LeftSlip;\n"],"sourceRoot":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @nutui/nutui v2.3.
|
|
2
|
+
* @nutui/nutui v2.3.14 - luckdraw.css, ea1cfeedc4af744045aa, Thu Jul 27 2023 18:33:12 GMT+0800 (GMT+08:00)
|
|
3
3
|
* (c) 2017-2020 JDC
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/.nut-luckdraw{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center}.nut-luckdraw .drawTable-name{position:absolute;left:10px;top:20px;width:calc(100% - 20px);font-size:12px;text-align:center;color:#ff5722}.nut-luckdraw .drawTable-img{position:absolute;left:calc(50% - 15px);top:60px;width:30px;height:30px}.nut-luckdraw .drawTable-img img{display:inline-block;width:100%;height:100%}.nut-luckdraw .lucktable{position:absolute;left:0;top:0;width:100%;height:100%}.nut-luckdraw .prize{position:absolute;left:25%;top:0;width:50%;height:50%}.nut-luckdraw .prize .item{position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}.pointer{position:absolute;left:50%;top:50%;-webkit-transform:translate(-43.75%,-50%);-ms-transform:translate(-43.75%,-50%);transform:translate(-43.75%,-50%)}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @nutui/nutui v2.3.
|
|
2
|
+
* @nutui/nutui v2.3.14 - luckdraw.js, ea1cfeedc4af744045aa, Thu Jul 27 2023 18:33:12 GMT+0800 (GMT+08:00)
|
|
3
3
|
* (c) 2017-2020 JDC
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("luckdraw",[],e):"object"==typeof exports?exports.luckdraw=e():t.luckdraw=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="./",r(r.s=
|
|
6
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("luckdraw",[],e):"object"==typeof exports?exports.luckdraw=e():t.luckdraw=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="./",r(r.s=201)}({0:function(t,e,r){"use strict";function n(t,e,r,n,i,o,s,a){var u,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=r,l._compiled=!0),n&&(l.functional=!0),o&&(l._scopeId="data-v-"+o),s?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=u):i&&(u=a?function(){i.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:i),u)if(l.functional){l._injectStyles=u;var c=l.render;l.render=function(t,e){return u.call(e),c(t,e)}}else{var f=l.beforeCreate;l.beforeCreate=f?[].concat(f,u):[u]}return{exports:t,options:l}}r.d(e,"a",(function(){return n}))},135:function(t,e,r){},201:function(t,e,r){"use strict";r.r(e);var n={name:"nut-luckdraw",mounted:function(){this.init()},props:{luckWidth:{required:!0},luckHeight:{required:!0},prizeList:{required:!0},turnsNumber:{default:5},styleOpt:{default:function(){return{prizeBgColors:["rgb(255, 231, 149)","rgb(255, 247, 223)","rgb(255, 231, 149)","rgb(255, 247, 223)","rgb(255, 231, 149)","rgb(255, 247, 223)"],borderColor:"#ff9800"}}},turnsTime:{default:5}},watch:{prizeList:function(t,e){this.init()}},data:function(){return{winningPrize:0,startRotateDegree:0,rotateAngle:0,rotateTransition:""}},methods:{getRotateAngle:function(t){var e=360/this.prizeList.length*t+180/this.prizeList.length;return{transform:"rotate(".concat(e,"deg)")}},init:function(){var t=this.styleOpt,e=this.prizeList.length,r=t.prizeBgColors,n=t.borderColor,i=this.$refs.canvas.getContext("2d"),o=this.$refs.canvas.width=this.$refs.luckdraw.clientWidth,s=this.$refs.canvas.height=this.$refs.luckdraw.clientHeight;i.translate(0,s),i.rotate(-90*Math.PI/180);var a=o/2-1,u=2*Math.PI/e;i.clearRect(0,0,o,s),i.strokeStyle=n;for(var l=0;l<e;l++){var c=l*u;this.prizeList[l].prizeColor?i.fillStyle=this.prizeList[l].prizeColor:i.fillStyle=r[l],i.beginPath(),i.arc(.5*o,.5*s,a,c,c+u,!1),i.arc(.5*o,.5*s,0,c+u,c,!0),i.stroke(),i.fill(),i.save()}},rotate:function(t){var e=this,r=this.turnsTime,n=this.startRotateDegree+360*this.turnsNumber+360-(180/this.prizeList.length+360/this.prizeList.length*t)-this.startRotateDegree%360;this.startRotateDegree=n,this.rotateAngle="rotate(".concat(n,"deg)"),this.rotateTransition="transform ".concat(r,"s cubic-bezier(0.250, 0.460, 0.455, 0.995)"),setTimeout((function(){e.$emit("end-turns")}),1e3*r+500)}}},i=r(0),o=Object(i.a)(n,(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{ref:"luckdraw",staticClass:"nut-luckdraw",style:{width:t.luckWidth,height:t.luckHeight}},[r("div",{staticClass:"lucktable",style:{transform:t.rotateAngle,transition:t.rotateTransition}},[r("canvas",{ref:"canvas",attrs:{id:"canvas"}},[t._v("\n 浏览器版本过低\n ")]),t._v(" "),r("div",{staticClass:"prize"},t._l(t.prizeList,(function(e,n){return r("div",{key:n,staticClass:"item",style:t.getRotateAngle(n)},[t._t("item",null,{item:e})],2)})),0)])])}),[],!1,null,null,null).exports;r(135);o.install=function(t){t.component(o.name,o)};e.default=o}})}));
|
|
7
7
|
//# sourceMappingURL=luckdraw.js.map
|