@nutui/nutui 2.3.4 → 2.3.7

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.
Files changed (228) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/.DS_Store +0 -0
  3. package/dist/assets/img/grid.png +0 -0
  4. package/dist/nutui.css +4 -2
  5. package/dist/nutui.css.map +1 -1
  6. package/dist/nutui.js +393 -154
  7. package/dist/nutui.js.map +1 -1
  8. package/dist/nutui.min.css +2 -2
  9. package/dist/nutui.min.js +3 -3
  10. package/dist/nutui.min.js.map +1 -1
  11. package/dist/nutui.scss +2 -1
  12. package/dist/packages/actionsheet/actionsheet.css +1 -1
  13. package/dist/packages/actionsheet/actionsheet.js +1 -1
  14. package/dist/packages/address/address.css +1 -1
  15. package/dist/packages/address/address.js +2 -2
  16. package/dist/packages/address/address.js.map +1 -1
  17. package/dist/packages/avatar/avatar.css +1 -1
  18. package/dist/packages/avatar/avatar.js +2 -2
  19. package/dist/packages/avatar/avatar.js.map +1 -1
  20. package/dist/packages/backtop/backtop.css +1 -1
  21. package/dist/packages/backtop/backtop.js +2 -2
  22. package/dist/packages/backtop/backtop.js.map +1 -1
  23. package/dist/packages/badge/badge.css +1 -1
  24. package/dist/packages/badge/badge.js +2 -2
  25. package/dist/packages/badge/badge.js.map +1 -1
  26. package/dist/packages/button/button.css +1 -1
  27. package/dist/packages/button/button.js +1 -1
  28. package/dist/packages/buttongroup/buttongroup.css +1 -1
  29. package/dist/packages/buttongroup/buttongroup.js +1 -1
  30. package/dist/packages/calendar/calendar.css +1 -1
  31. package/dist/packages/calendar/calendar.js +2 -2
  32. package/dist/packages/calendar/calendar.js.map +1 -1
  33. package/dist/packages/calendar/calendar.vue +1 -1
  34. package/dist/packages/cell/cell.css +1 -1
  35. package/dist/packages/cell/cell.js +2 -2
  36. package/dist/packages/cell/cell.js.map +1 -1
  37. package/dist/packages/checkbox/checkbox.css +1 -1
  38. package/dist/packages/checkbox/checkbox.js +2 -2
  39. package/dist/packages/checkboxgroup/checkboxgroup.css +1 -1
  40. package/dist/packages/checkboxgroup/checkboxgroup.js +2 -2
  41. package/dist/packages/checkboxgroup/checkboxgroup.js.map +1 -1
  42. package/dist/packages/circleprogress/circleprogress.css +1 -1
  43. package/dist/packages/circleprogress/circleprogress.js +2 -2
  44. package/dist/packages/circleprogress/circleprogress.js.map +1 -1
  45. package/dist/packages/col/col.css +1 -1
  46. package/dist/packages/col/col.js +1 -1
  47. package/dist/packages/collapse/collapse.css +1 -1
  48. package/dist/packages/collapse/collapse.js +2 -2
  49. package/dist/packages/collapse/collapse.js.map +1 -1
  50. package/dist/packages/collapseitem/collapseitem.css +1 -1
  51. package/dist/packages/collapseitem/collapseitem.js +2 -2
  52. package/dist/packages/collapseitem/collapseitem.js.map +1 -1
  53. package/dist/packages/countdown/countdown.css +1 -1
  54. package/dist/packages/countdown/countdown.js +2 -2
  55. package/dist/packages/countdown/countdown.js.map +1 -1
  56. package/dist/packages/countup/countup.css +2 -2
  57. package/dist/packages/countup/countup.js +2 -2
  58. package/dist/packages/countup/countup.js.map +1 -1
  59. package/dist/packages/countup/countup.scss +2 -1
  60. package/dist/packages/countup/countup.vue +22 -10
  61. package/dist/packages/coupon/coupon.css +1 -1
  62. package/dist/packages/coupon/coupon.js +2 -2
  63. package/dist/packages/coupon/coupon.js.map +1 -1
  64. package/dist/packages/datepicker/datepicker.css +1 -1
  65. package/dist/packages/datepicker/datepicker.js +2 -2
  66. package/dist/packages/datepicker/datepicker.js.map +1 -1
  67. package/dist/packages/dialog/dialog.css +1 -1
  68. package/dist/packages/dialog/dialog.js +2 -2
  69. package/dist/packages/dialog/dialog.js.map +1 -1
  70. package/dist/packages/drag/drag.css +1 -1
  71. package/dist/packages/drag/drag.js +2 -2
  72. package/dist/packages/drag/drag.js.map +1 -1
  73. package/dist/packages/elevator/elevator.css +1 -1
  74. package/dist/packages/elevator/elevator.js +2 -2
  75. package/dist/packages/elevator/elevator.js.map +1 -1
  76. package/dist/packages/fixednav/fixednav.css +1 -1
  77. package/dist/packages/fixednav/fixednav.js +2 -2
  78. package/dist/packages/fixednav/fixednav.js.map +1 -1
  79. package/dist/packages/flex/flex.css +1 -1
  80. package/dist/packages/flex/flex.js +2 -2
  81. package/dist/packages/flex/flex.js.map +1 -1
  82. package/dist/packages/icon/icon.css +1 -1
  83. package/dist/packages/icon/icon.js +1 -1
  84. package/dist/packages/imagepicker/imagepicker.css +1 -1
  85. package/dist/packages/imagepicker/imagepicker.js +2 -2
  86. package/dist/packages/imagepicker/imagepicker.js.map +1 -1
  87. package/dist/packages/infiniteloading/infiniteloading.css +1 -1
  88. package/dist/packages/infiniteloading/infiniteloading.js +2 -2
  89. package/dist/packages/infiniteloading/infiniteloading.js.map +1 -1
  90. package/dist/packages/infiniteloading/infiniteloading.vue +5 -1
  91. package/dist/packages/lazyload/lazyload.css +1 -1
  92. package/dist/packages/lazyload/lazyload.js +2 -2
  93. package/dist/packages/lazyload/lazyload.js.map +1 -1
  94. package/dist/packages/leftslip/leftslip.css +1 -1
  95. package/dist/packages/leftslip/leftslip.js +2 -2
  96. package/dist/packages/leftslip/leftslip.js.map +1 -1
  97. package/dist/packages/luckdraw/luckdraw.css +1 -1
  98. package/dist/packages/luckdraw/luckdraw.js +2 -2
  99. package/dist/packages/luckdraw/luckdraw.js.map +1 -1
  100. package/dist/packages/luckycard/luckycard.css +1 -1
  101. package/dist/packages/luckycard/luckycard.js +2 -2
  102. package/dist/packages/luckycard/luckycard.js.map +1 -1
  103. package/dist/packages/magic/magic.css +1 -1
  104. package/dist/packages/magic/magic.js +2 -2
  105. package/dist/packages/magic/magic.js.map +1 -1
  106. package/dist/packages/menu/menu.css +1 -1
  107. package/dist/packages/menu/menu.js +2 -2
  108. package/dist/packages/menu/menu.js.map +1 -1
  109. package/dist/packages/navbar/navbar.css +1 -1
  110. package/dist/packages/navbar/navbar.js +2 -2
  111. package/dist/packages/navbar/navbar.js.map +1 -1
  112. package/dist/packages/ninegrid/animation.scss +223 -0
  113. package/dist/packages/ninegrid/index.js +8 -0
  114. package/dist/packages/ninegrid/ninegrid.css +5 -0
  115. package/dist/packages/ninegrid/ninegrid.js +7 -0
  116. package/dist/packages/ninegrid/ninegrid.js.map +1 -0
  117. package/dist/packages/ninegrid/ninegrid.scss +132 -0
  118. package/dist/packages/ninegrid/ninegrid.vue +144 -0
  119. package/dist/packages/noticebar/noticebar.css +1 -1
  120. package/dist/packages/noticebar/noticebar.js +2 -2
  121. package/dist/packages/noticebar/noticebar.js.map +1 -1
  122. package/dist/packages/notify/notify.css +1 -1
  123. package/dist/packages/notify/notify.js +2 -2
  124. package/dist/packages/notify/notify.js.map +1 -1
  125. package/dist/packages/numberkeyboard/numberkeyboard.css +1 -1
  126. package/dist/packages/numberkeyboard/numberkeyboard.js +2 -2
  127. package/dist/packages/numberkeyboard/numberkeyboard.js.map +1 -1
  128. package/dist/packages/picker/picker.css +1 -1
  129. package/dist/packages/picker/picker.js +2 -2
  130. package/dist/packages/picker/picker.js.map +1 -1
  131. package/dist/packages/popup/popup.css +1 -1
  132. package/dist/packages/popup/popup.js +1 -1
  133. package/dist/packages/price/price.css +1 -1
  134. package/dist/packages/price/price.js +2 -2
  135. package/dist/packages/price/price.js.map +1 -1
  136. package/dist/packages/progress/progress.css +1 -1
  137. package/dist/packages/progress/progress.js +2 -2
  138. package/dist/packages/progress/progress.js.map +1 -1
  139. package/dist/packages/radio/radio.css +1 -1
  140. package/dist/packages/radio/radio.js +2 -2
  141. package/dist/packages/radio/radio.js.map +1 -1
  142. package/dist/packages/radiogroup/radiogroup.css +1 -1
  143. package/dist/packages/radiogroup/radiogroup.js +2 -2
  144. package/dist/packages/radiogroup/radiogroup.js.map +1 -1
  145. package/dist/packages/range/range.css +1 -1
  146. package/dist/packages/range/range.js +2 -2
  147. package/dist/packages/range/range.js.map +1 -1
  148. package/dist/packages/rate/rate.css +1 -1
  149. package/dist/packages/rate/rate.js +2 -2
  150. package/dist/packages/rate/rate.js.map +1 -1
  151. package/dist/packages/row/row.css +1 -1
  152. package/dist/packages/row/row.js +1 -1
  153. package/dist/packages/scroller/scroller.css +1 -1
  154. package/dist/packages/scroller/scroller.js +2 -2
  155. package/dist/packages/scroller/scroller.js.map +1 -1
  156. package/dist/packages/scroller/scroller.vue +5 -0
  157. package/dist/packages/scroller/vertical-scroll.vue +7 -2
  158. package/dist/packages/searchbar/searchbar.css +1 -1
  159. package/dist/packages/searchbar/searchbar.js +2 -2
  160. package/dist/packages/searchbar/searchbar.js.map +1 -1
  161. package/dist/packages/shortpassword/shortpassword.css +1 -1
  162. package/dist/packages/shortpassword/shortpassword.js +2 -2
  163. package/dist/packages/shortpassword/shortpassword.js.map +1 -1
  164. package/dist/packages/sidenavbar/sidenavbar.css +1 -1
  165. package/dist/packages/sidenavbar/sidenavbar.js +2 -2
  166. package/dist/packages/sidenavbar/sidenavbar.js.map +1 -1
  167. package/dist/packages/sidenavbaritem/sidenavbaritem.css +1 -1
  168. package/dist/packages/sidenavbaritem/sidenavbaritem.js +1 -1
  169. package/dist/packages/signature/signature.css +1 -1
  170. package/dist/packages/signature/signature.js +2 -2
  171. package/dist/packages/signature/signature.js.map +1 -1
  172. package/dist/packages/skeleton/skeleton.css +1 -1
  173. package/dist/packages/skeleton/skeleton.js +2 -2
  174. package/dist/packages/skeleton/skeleton.js.map +1 -1
  175. package/dist/packages/slider/slider.css +1 -1
  176. package/dist/packages/slider/slider.js +2 -2
  177. package/dist/packages/slider/slider.js.map +1 -1
  178. package/dist/packages/stepper/stepper.css +1 -1
  179. package/dist/packages/stepper/stepper.js +2 -2
  180. package/dist/packages/stepper/stepper.js.map +1 -1
  181. package/dist/packages/steps/steps.css +1 -1
  182. package/dist/packages/steps/steps.js +2 -2
  183. package/dist/packages/steps/steps.js.map +1 -1
  184. package/dist/packages/subsidenavbar/subsidenavbar.css +1 -1
  185. package/dist/packages/subsidenavbar/subsidenavbar.js +1 -1
  186. package/dist/packages/swiper/swiper.css +1 -1
  187. package/dist/packages/swiper/swiper.js +2 -2
  188. package/dist/packages/swiper/swiper.js.map +1 -1
  189. package/dist/packages/switch/switch.css +1 -1
  190. package/dist/packages/switch/switch.js +2 -2
  191. package/dist/packages/switch/switch.js.map +1 -1
  192. package/dist/packages/tab/tab.css +1 -1
  193. package/dist/packages/tab/tab.js +2 -2
  194. package/dist/packages/tab/tab.js.map +1 -1
  195. package/dist/packages/tab/tab.vue +1 -0
  196. package/dist/packages/tabbar/tabbar.css +1 -1
  197. package/dist/packages/tabbar/tabbar.js +2 -2
  198. package/dist/packages/tabbar/tabbar.js.map +1 -1
  199. package/dist/packages/tabbar/tabbar.vue +1 -1
  200. package/dist/packages/tabpanel/tabpanel.css +1 -1
  201. package/dist/packages/tabpanel/tabpanel.js +2 -2
  202. package/dist/packages/tabpanel/tabpanel.js.map +1 -1
  203. package/dist/packages/tabselect/tabselect.css +1 -1
  204. package/dist/packages/tabselect/tabselect.js +2 -2
  205. package/dist/packages/tabselect/tabselect.js.map +1 -1
  206. package/dist/packages/textbox/textbox.css +1 -1
  207. package/dist/packages/textbox/textbox.js +2 -2
  208. package/dist/packages/textbox/textbox.js.map +1 -1
  209. package/dist/packages/textinput/textinput.css +1 -1
  210. package/dist/packages/textinput/textinput.js +2 -2
  211. package/dist/packages/textinput/textinput.js.map +1 -1
  212. package/dist/packages/timeline/timeline.css +1 -1
  213. package/dist/packages/timeline/timeline.js +2 -2
  214. package/dist/packages/timeline/timeline.js.map +1 -1
  215. package/dist/packages/timelineitem/timelineitem.css +1 -1
  216. package/dist/packages/timelineitem/timelineitem.js +2 -2
  217. package/dist/packages/timelineitem/timelineitem.js.map +1 -1
  218. package/dist/packages/toast/toast.css +1 -1
  219. package/dist/packages/toast/toast.js +2 -2
  220. package/dist/packages/toast/toast.js.map +1 -1
  221. package/dist/packages/uploader/uploader.css +1 -1
  222. package/dist/packages/uploader/uploader.js +2 -2
  223. package/dist/packages/uploader/uploader.js.map +1 -1
  224. package/dist/packages/video/video.css +1 -1
  225. package/dist/packages/video/video.js +2 -2
  226. package/dist/packages/video/video.js.map +1 -1
  227. package/dist/types/nutui.d.ts +1 -0
  228. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * @nutui/nutui v2.3.4 - magic.js, 2e03fecba27c2ec4fc69, Thu Jul 15 2021 22:33:51 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v2.3.7 - magic.js, 78f455d4cba8a497b5f5, Wed Dec 22 2021 20:57:26 GMT+0800 (中国标准时间)
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("magic",[],e):"object"==typeof exports?exports.magic=e():t.magic=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=157)}({0:function(t,e,n){"use strict";function i(t,e,n,i,r,a,o,s){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),o?(c=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)},l._ssrRegister=c):r&&(c=s?function(){r.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var p=l.beforeCreate;l.beforeCreate=p?[].concat(p,c):[c]}return{exports:t,options:l}}n.d(e,"a",(function(){return i}))},13:function(t,e,n){var i=n(9);t.exports=function(t,e){if(t){if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},154:function(t,e,n){},157:function(t,e,n){"use strict";n.r(e);var i=n(4),r=n.n(i),a={name:"CubeItem",props:{item:{type:Object,default:null}},data:function(){return{}},methods:{cubeClick:function(t){this.$emit("clickEvent",t)}}},o=n(0),s=Object(o.a)(a,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:"cube-item cube-item--"+t.item.type,on:{click:function(e){return t.cubeClick(t.item)}}},[n("div",{staticClass:"cube-item-box"},[n("div",{staticClass:"sub-image",style:{backgroundImage:"url("+t.item.pictureUrl+")"}})]),t._v(" "),t.item.desc?n("div",{staticClass:"sub-desc"},[n("span",[t._v(t._s(t.item.desc))])]):t._e(),t._v(" "),t.item.name?n("div",{staticClass:"sub-name"},[n("span",[t._v(t._s(t.item.name))])]):t._e()])}),[],!1,null,null,null).exports;function c(t,e,n,i){return-n*(t/=i)*(t-2)+e}function l(t,e){var n=window.getComputedStyle(t,null),i=n.getPropertyValue("-webkit-"+e)||n.getPropertyValue("-moz-"+e)||n.getPropertyValue("-ms-"+e)||n.getPropertyValue("-o-"+e)||n.getPropertyValue(e);return i&&"none"!=i?i:null}var u={props:{dataMagic:{type:[Object,Array],default:null},type:{type:String,default:"rank"},overflow:{type:[String,Number],default:1.4,validator:function(t){return t>=1&&t<1.5}},autoplay:{type:Boolean,default:!1},interval:{type:[String,Number],default:3e3}},components:{CubeItem:s},data:function(){return{clone:4}},computed:{data_top:function(){return this.dataMagic.filter((function(t,e){return e%2==0}))},data_bottom:function(){return this.dataMagic.filter((function(t,e){return e%2==1}))}},watch:{autoplay:function(t){t?this.startPlay():this.clearPlayer()}},mounted:function(){var t=this;this.$nextTick((function(){t.canMove=!0,t.$wrapper=t.$refs.wrapper,t.$cubes=r()(t.$wrapper.children),t.ITEM_WIDTH=t.$wrapper.clientWidth/4,t.computeWidth={"-2":2*-t.ITEM_WIDTH,"-1":-t.ITEM_WIDTH,0:0,1:t.ITEM_WIDTH,2:2*t.ITEM_WIDTH,3:3*t.ITEM_WIDTH,4:4*t.ITEM_WIDTH,5:5*t.ITEM_WIDTH},t.current=t.clone,t.endX=-t.ITEM_WIDTH*t.current,t.offsetX=t.endX,t.$wrapper.style.transitionDuration=null,t.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})),t.setWrapper(t.endX),t.setCube(t.endX),t.$wrapper.style.webkitPerspectiveOrigin="".concat(t.current*t.ITEM_WIDTH+t.$wrapper.clientWidth/2,"px center"),setTimeout((function(){t.startPlay(),t.$wrapper.classList.add("cube-wrapper--inited")}),1e3),t.bindEvent()})),this.initWQVisibleEvent(),document.addEventListener("visibilitychange",(function(e){e.hidden?t.clearPlayer():t.startPlay()}))},methods:{clickEvent:function(t){this.$emit("clickItem",t)},bindEvent:function(){this.$wrapper.addEventListener("touchstart",this.touchStartHandler),this.$wrapper.addEventListener("touchmove",this.touchMoveHandler),this.$wrapper.addEventListener("touchend",this.touchEndHandler)},initWQVisibleEvent:function(){document.addEventListener("qbrowserVisibilityChange",(function(t){var e=document.createEvent("HTMLEvents");e.initEvent("visibilitychange",!1,!1),e.hidden=t.hidden,document.dispatchEvent(e)}),!0),document.addEventListener("visibilitychange",(function(t){t.hidden=void 0===t.hidden?document.hidden:t.hidden}),!0)},startPlay:function(){var t=this;this.autoplay&&(this.clearPlayer(),this.player=setInterval((function(){t.canMove=!0,t.goto(t.current+1,600,!0)}),this.interval))},clearPlayer:function(){clearInterval(this.player),this.player=null},touchStartHandler:function(t){this.canMove&&(this.clearPlayer(),this.touching=!0,this.$wrapper.style.transitionDuration,this.startX=t.touches[0].pageX,this.startY=t.touches[0].pageY,this.$wrapper.style.transitionDuration=null,this.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})))},touchMoveHandler:function(t){if(this.canMove&&this.touching){var e=t.touches[0].pageX-this.startX,n=t.touches[0].pageY-this.startY;if(Math.abs(n)>1.5*Math.abs(e)||t.cancelable&&t.preventDefault(),(e/=3)>0)this.direction=-1;else{if(!(e<0))return;this.direction=1}this.offsetX=e+this.endX;this.getMiddleRotate(e);this.setWrapper(this.offsetX),this.setCube(this.offsetX,this.offsetX>0?e:-e)}},touchEndHandler:function(t){if(this.canMove&&this.touching){var e,n=this.offsetX%this.ITEM_WIDTH*this.direction;((e=-(e=0==n?this.offsetX/this.ITEM_WIDTH:n>0&&n<this.ITEM_WIDTH*(3/4)||n<0&&n>=-this.ITEM_WIDTH*(1/4)?Math.ceil(this.offsetX/this.ITEM_WIDTH):Math.floor(this.offsetX/this.ITEM_WIDTH)))>=this.data_bottom.length+this.clone||e<=this.clone-1)&&(this.canMove=!1),this.goto(e,400),this.startPlay(),this.touching=!1}},continueTransition:function(){var t=l(this.$wrapper,"transform"),e=l(this.$wrapper,"perspective-origin");t&&this.$wrapper.style.transitionDuration&&(this.$wrapper.style.transform=t,this.$wrapper.style.perspectiveOrigin=e,this.$cubes.forEach((function(t){t.style.transform=l(t,"transform"),t.style.opacity=+l(t,"opacity"),t.style.transformOrigin=l(t,"transform-origin")})),this.endX=0)},setWrapper:function(t,e,n){var i=this;this.offsetX=t,e>0&&(this.$wrapper.style.transitionDuration="".concat(e,"ms")),n?setTimeout((function(){i.$wrapper.style.transform="translate3d(".concat(t,"px, 0, 0)")}),0):this.$wrapper.style.transform="translate3d(".concat(t,"px, 0, 0)")},setCube:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.$cubes.forEach((function(i,r){i.style.transition&&(i.style.transition=null);var a=r*e.ITEM_WIDTH+t;if(a>e.computeWidth[-1]&&a<e.computeWidth[0]){var o=c(a%e.ITEM_WIDTH,0,-e.ITEM_WIDTH,-e.ITEM_WIDTH);i.style.transform="rotateY(".concat(e.getBetweenRotate(a),"deg) translate3d(0, ").concat(e.getTranslate(a),"px, 0)"),i.style.opacity=e.getOpacity(o)}else if(a>e.computeWidth[3]&&a<e.computeWidth[4]){var s=c(a%e.ITEM_WIDTH,0,e.ITEM_WIDTH,e.ITEM_WIDTH);i.style.transform="rotateY(".concat(e.getBetweenRotate(a),"deg) translate3d(0, ").concat(e.getTranslate(a),"px, 0)"),i.style.opacity=e.getOpacity(s)}else a>=e.computeWidth[4]&&a<e.computeWidth[5]?(i.style.transform="rotateY(60deg) translate3d(0, ".concat(e.getTranslate(a),"px, 0)"),i.style.opacity=0):a>e.computeWidth[-2]&&a<=e.computeWidth[-1]?(i.style.transform="rotateY(-60deg) translate3d(0, ".concat(e.getTranslate(a),"px, 0)"),i.style.opacity=0):a>=e.computeWidth[0]&&a<=e.computeWidth[3]&&(i.style.transform="rotateY(".concat(e.getMiddleRotate(n),"deg) translate3d(0, ").concat(e.getTranslate(a),"px, 0)"),i.style.opacity=1);i.style.transformOrigin=e.getTransformOrigin(a)}))},getTransformOrigin:function(t,e){if(t>=this.computeWidth[-1]&&t<=this.computeWidth[4]){var n=this.ITEM_WIDTH-t/3;return n<this.computeWidth[0]?n=this.computeWidth[0]:n>this.computeWidth[1]&&(n=this.computeWidth[1]),"".concat(n,"px center")}},getBetweenRotate:function(t){return t%this.ITEM_WIDTH*(360/this.$wrapper.clientWidth)*70/90},getMiddleRotate:function(t){var e=.35;return t>5*this.ITEM_WIDTH/10?.35*(this.ITEM_WIDTH-t):t<5*-this.ITEM_WIDTH/10?-.35*(this.ITEM_WIDTH+t):e*t},getOpacity:function(t){return 1-Math.abs(t)/this.ITEM_WIDTH%1},getTranslate:function(t){return t>this.computeWidth[2]?t>this.computeWidth[3]?(this.computeWidth[3]-t)/5:(this.computeWidth[3]-t)/7:t<this.computeWidth[1]?t<0?t/5:t/7:this.ITEM_WIDTH/7},transitionEndHandler:function(t){var e=this;t.target===this.$wrapper&&(this.$wrapper.style.transitionDuration=null,this.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})),this.$wrapper.style.webkitPerspectiveOrigin="".concat(this.current*this.ITEM_WIDTH+this.$wrapper.clientWidth/2,"px center"),this.current>=this.data_bottom.length+this.clone?(this.goto(this.current%this.data_bottom.length,0),setTimeout((function(){e.canMove=!0}),0)):this.current<=this.clone-1&&(this.goto(this.data_bottom.length+this.current,0),setTimeout((function(){e.canMove=!0}),0)))},goto:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400,i=arguments.length>2?arguments[2]:void 0,r=i?t-.5:t;this.$wrapper.style.webkitPerspectiveOrigin="".concat(r*this.ITEM_WIDTH+this.$wrapper.clientWidth/2,"px center"),this.current=t,this.endX=-t*this.ITEM_WIDTH,n?(this.setWrapper(this.endX,n),this.$cubes.forEach((function(r,a){var o=a*e.ITEM_WIDTH+e.endX;r.style.transformOrigin=e.getTransformOrigin(o),t-1==a?(r.style.transition="all ".concat(n,"ms cubic-bezier(0.215, 0.610, 0.355, 1.000)"),r.style.transform="rotateY(-60deg) translate3d(0, ".concat(e.getTranslate(r.offsetLeft+e.endX),"px, 0)"),r.style.opacity=0):t+4==a?(r.style.transition="all ".concat(n,"ms cubic-bezier(0.215, 0.610, 0.355, 1.000)"),r.style.transform="rotateY(60deg) translate3d(0, ".concat(e.getTranslate(r.offsetLeft+e.endX),"px, 0)"),r.style.opacity=0):a>t-1&&a<t+4?(r.style.transition=i?"transform ".concat(n,"ms cubic-bezier(0.22, 0.01, 0.68, 1.00), opacity ").concat(.9*n,"ms cubic-bezier(0.62, 0.02, 0.68, 1.00)"):"all ".concat(n,"ms cubic-bezier(0.390, 0.575, 0.565, 1.000)"),r.style.transform="rotateY(0.1deg) translate3d(0, ".concat(e.getTranslate(r.offsetLeft+e.endX),"px, 0)"),r.style.opacity=1):(r.style.transition=null,r.style.transform=null,r.style.opacity=null,r.style.transformOrigin=null)}))):(this.$wrapper.style.transitionDuration=null,this.$wrapper.style.transitionDuration=null,this.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})),this.setCube(this.endX,0),this.setWrapper(this.endX,0,!0))}}},p=Object(o.a)(u,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"cube"},[n("div",{ref:"container",staticClass:"adjust-position cube-container"},[n("div",{ref:"wrapper",staticClass:"cube-wrapper",on:{transitionend:t.transitionEndHandler}},[t._l(t.clone,(function(e){return n("div",{key:"clone-prev-"+e,staticClass:"cube-col"},[n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_top[e+t.data_bottom.length-t.clone-1]},on:{clickEvent:t.clickEvent}}),t._v(" "),n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_bottom[e+t.data_bottom.length-t.clone-1]},on:{clickEvent:t.clickEvent}})],1)})),t._v(" "),t._l(t.data_bottom,(function(e,i){return n("div",{key:i,staticClass:"cube-col cube-col--anime"},[n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_top[i]},on:{clickEvent:t.clickEvent}}),t._v(" "),n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_bottom[i]},on:{clickEvent:t.clickEvent}})],1)})),t._v(" "),t._l(t.data_bottom.slice(0,t.clone),(function(e,i){return n("div",{key:"clone-next-"+i,staticClass:"cube-col"},[n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_top[i]},on:{clickEvent:t.clickEvent}}),t._v(" "),n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_bottom[i]},on:{clickEvent:t.clickEvent}})],1)}))],2)])])}),[],!1,null,null,null).exports,d={name:"nut-magic",components:{Cube:p},props:{data:{type:[Object,Array],default:function(){return[]}},type:{type:String,default:"rank"},autoplay:{default:!0}},computed:{},data:function(){return{}},watch:{data:function(t,e){}},methods:{clickItem:function(t){this.$emit("click",t)}}},h=Object(o.a)(d,(function(){var t=this.$createElement,e=this._self._c||t;return this.data&&this.data.length>=8?e("Cube",{attrs:{dataMagic:this.data,type:this.type,autoplay:this.autoplay},on:{clickItem:this.clickItem}}):this._e()}),[],!1,null,"601c4726",null).exports;n(154);h.install=function(t){t.component(h.name,h),t.component("Cube",p),t.component("CubeItem",s)};e.default=h},4:function(t,e,n){var i=n(46),r=n(47),a=n(13),o=n(48);t.exports=function(t){return i(t)||r(t)||a(t)||o()},t.exports.default=t.exports,t.exports.__esModule=!0},46:function(t,e,n){var i=n(9);t.exports=function(t){if(Array.isArray(t))return i(t)},t.exports.default=t.exports,t.exports.__esModule=!0},47:function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)},t.exports.default=t.exports,t.exports.__esModule=!0},48:function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},9:function(t,e){t.exports=function(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},t.exports.default=t.exports,t.exports.__esModule=!0}})}));
6
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("magic",[],e):"object"==typeof exports?exports.magic=e():t.magic=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=158)}({0:function(t,e,n){"use strict";function i(t,e,n,i,r,a,o,s){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),o?(c=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)},l._ssrRegister=c):r&&(c=s?function(){r.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var p=l.beforeCreate;l.beforeCreate=p?[].concat(p,c):[c]}return{exports:t,options:l}}n.d(e,"a",(function(){return i}))},13:function(t,e,n){var i=n(9);t.exports=function(t,e){if(t){if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},154:function(t,e,n){},158:function(t,e,n){"use strict";n.r(e);var i=n(4),r=n.n(i),a={name:"CubeItem",props:{item:{type:Object,default:null}},data:function(){return{}},methods:{cubeClick:function(t){this.$emit("clickEvent",t)}}},o=n(0),s=Object(o.a)(a,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:"cube-item cube-item--"+t.item.type,on:{click:function(e){return t.cubeClick(t.item)}}},[n("div",{staticClass:"cube-item-box"},[n("div",{staticClass:"sub-image",style:{backgroundImage:"url("+t.item.pictureUrl+")"}})]),t._v(" "),t.item.desc?n("div",{staticClass:"sub-desc"},[n("span",[t._v(t._s(t.item.desc))])]):t._e(),t._v(" "),t.item.name?n("div",{staticClass:"sub-name"},[n("span",[t._v(t._s(t.item.name))])]):t._e()])}),[],!1,null,null,null).exports;function c(t,e,n,i){return-n*(t/=i)*(t-2)+e}function l(t,e){var n=window.getComputedStyle(t,null),i=n.getPropertyValue("-webkit-"+e)||n.getPropertyValue("-moz-"+e)||n.getPropertyValue("-ms-"+e)||n.getPropertyValue("-o-"+e)||n.getPropertyValue(e);return i&&"none"!=i?i:null}var u={props:{dataMagic:{type:[Object,Array],default:null},type:{type:String,default:"rank"},overflow:{type:[String,Number],default:1.4,validator:function(t){return t>=1&&t<1.5}},autoplay:{type:Boolean,default:!1},interval:{type:[String,Number],default:3e3}},components:{CubeItem:s},data:function(){return{clone:4}},computed:{data_top:function(){return this.dataMagic.filter((function(t,e){return e%2==0}))},data_bottom:function(){return this.dataMagic.filter((function(t,e){return e%2==1}))}},watch:{autoplay:function(t){t?this.startPlay():this.clearPlayer()}},mounted:function(){var t=this;this.$nextTick((function(){t.canMove=!0,t.$wrapper=t.$refs.wrapper,t.$cubes=r()(t.$wrapper.children),t.ITEM_WIDTH=t.$wrapper.clientWidth/4,t.computeWidth={"-2":2*-t.ITEM_WIDTH,"-1":-t.ITEM_WIDTH,0:0,1:t.ITEM_WIDTH,2:2*t.ITEM_WIDTH,3:3*t.ITEM_WIDTH,4:4*t.ITEM_WIDTH,5:5*t.ITEM_WIDTH},t.current=t.clone,t.endX=-t.ITEM_WIDTH*t.current,t.offsetX=t.endX,t.$wrapper.style.transitionDuration=null,t.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})),t.setWrapper(t.endX),t.setCube(t.endX),t.$wrapper.style.webkitPerspectiveOrigin="".concat(t.current*t.ITEM_WIDTH+t.$wrapper.clientWidth/2,"px center"),setTimeout((function(){t.startPlay(),t.$wrapper.classList.add("cube-wrapper--inited")}),1e3),t.bindEvent()})),this.initWQVisibleEvent(),document.addEventListener("visibilitychange",(function(e){e.hidden?t.clearPlayer():t.startPlay()}))},methods:{clickEvent:function(t){this.$emit("clickItem",t)},bindEvent:function(){this.$wrapper.addEventListener("touchstart",this.touchStartHandler),this.$wrapper.addEventListener("touchmove",this.touchMoveHandler),this.$wrapper.addEventListener("touchend",this.touchEndHandler)},initWQVisibleEvent:function(){document.addEventListener("qbrowserVisibilityChange",(function(t){var e=document.createEvent("HTMLEvents");e.initEvent("visibilitychange",!1,!1),e.hidden=t.hidden,document.dispatchEvent(e)}),!0),document.addEventListener("visibilitychange",(function(t){t.hidden=void 0===t.hidden?document.hidden:t.hidden}),!0)},startPlay:function(){var t=this;this.autoplay&&(this.clearPlayer(),this.player=setInterval((function(){t.canMove=!0,t.goto(t.current+1,600,!0)}),this.interval))},clearPlayer:function(){clearInterval(this.player),this.player=null},touchStartHandler:function(t){this.canMove&&(this.clearPlayer(),this.touching=!0,this.$wrapper.style.transitionDuration,this.startX=t.touches[0].pageX,this.startY=t.touches[0].pageY,this.$wrapper.style.transitionDuration=null,this.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})))},touchMoveHandler:function(t){if(this.canMove&&this.touching){var e=t.touches[0].pageX-this.startX,n=t.touches[0].pageY-this.startY;if(Math.abs(n)>1.5*Math.abs(e)||t.cancelable&&t.preventDefault(),(e/=3)>0)this.direction=-1;else{if(!(e<0))return;this.direction=1}this.offsetX=e+this.endX;this.getMiddleRotate(e);this.setWrapper(this.offsetX),this.setCube(this.offsetX,this.offsetX>0?e:-e)}},touchEndHandler:function(t){if(this.canMove&&this.touching){var e,n=this.offsetX%this.ITEM_WIDTH*this.direction;((e=-(e=0==n?this.offsetX/this.ITEM_WIDTH:n>0&&n<this.ITEM_WIDTH*(3/4)||n<0&&n>=-this.ITEM_WIDTH*(1/4)?Math.ceil(this.offsetX/this.ITEM_WIDTH):Math.floor(this.offsetX/this.ITEM_WIDTH)))>=this.data_bottom.length+this.clone||e<=this.clone-1)&&(this.canMove=!1),this.goto(e,400),this.startPlay(),this.touching=!1}},continueTransition:function(){var t=l(this.$wrapper,"transform"),e=l(this.$wrapper,"perspective-origin");t&&this.$wrapper.style.transitionDuration&&(this.$wrapper.style.transform=t,this.$wrapper.style.perspectiveOrigin=e,this.$cubes.forEach((function(t){t.style.transform=l(t,"transform"),t.style.opacity=+l(t,"opacity"),t.style.transformOrigin=l(t,"transform-origin")})),this.endX=0)},setWrapper:function(t,e,n){var i=this;this.offsetX=t,e>0&&(this.$wrapper.style.transitionDuration="".concat(e,"ms")),n?setTimeout((function(){i.$wrapper.style.transform="translate3d(".concat(t,"px, 0, 0)")}),0):this.$wrapper.style.transform="translate3d(".concat(t,"px, 0, 0)")},setCube:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.$cubes.forEach((function(i,r){i.style.transition&&(i.style.transition=null);var a=r*e.ITEM_WIDTH+t;if(a>e.computeWidth[-1]&&a<e.computeWidth[0]){var o=c(a%e.ITEM_WIDTH,0,-e.ITEM_WIDTH,-e.ITEM_WIDTH);i.style.transform="rotateY(".concat(e.getBetweenRotate(a),"deg) translate3d(0, ").concat(e.getTranslate(a),"px, 0)"),i.style.opacity=e.getOpacity(o)}else if(a>e.computeWidth[3]&&a<e.computeWidth[4]){var s=c(a%e.ITEM_WIDTH,0,e.ITEM_WIDTH,e.ITEM_WIDTH);i.style.transform="rotateY(".concat(e.getBetweenRotate(a),"deg) translate3d(0, ").concat(e.getTranslate(a),"px, 0)"),i.style.opacity=e.getOpacity(s)}else a>=e.computeWidth[4]&&a<e.computeWidth[5]?(i.style.transform="rotateY(60deg) translate3d(0, ".concat(e.getTranslate(a),"px, 0)"),i.style.opacity=0):a>e.computeWidth[-2]&&a<=e.computeWidth[-1]?(i.style.transform="rotateY(-60deg) translate3d(0, ".concat(e.getTranslate(a),"px, 0)"),i.style.opacity=0):a>=e.computeWidth[0]&&a<=e.computeWidth[3]&&(i.style.transform="rotateY(".concat(e.getMiddleRotate(n),"deg) translate3d(0, ").concat(e.getTranslate(a),"px, 0)"),i.style.opacity=1);i.style.transformOrigin=e.getTransformOrigin(a)}))},getTransformOrigin:function(t,e){if(t>=this.computeWidth[-1]&&t<=this.computeWidth[4]){var n=this.ITEM_WIDTH-t/3;return n<this.computeWidth[0]?n=this.computeWidth[0]:n>this.computeWidth[1]&&(n=this.computeWidth[1]),"".concat(n,"px center")}},getBetweenRotate:function(t){return t%this.ITEM_WIDTH*(360/this.$wrapper.clientWidth)*70/90},getMiddleRotate:function(t){var e=.35;return t>5*this.ITEM_WIDTH/10?.35*(this.ITEM_WIDTH-t):t<5*-this.ITEM_WIDTH/10?-.35*(this.ITEM_WIDTH+t):e*t},getOpacity:function(t){return 1-Math.abs(t)/this.ITEM_WIDTH%1},getTranslate:function(t){return t>this.computeWidth[2]?t>this.computeWidth[3]?(this.computeWidth[3]-t)/5:(this.computeWidth[3]-t)/7:t<this.computeWidth[1]?t<0?t/5:t/7:this.ITEM_WIDTH/7},transitionEndHandler:function(t){var e=this;t.target===this.$wrapper&&(this.$wrapper.style.transitionDuration=null,this.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})),this.$wrapper.style.webkitPerspectiveOrigin="".concat(this.current*this.ITEM_WIDTH+this.$wrapper.clientWidth/2,"px center"),this.current>=this.data_bottom.length+this.clone?(this.goto(this.current%this.data_bottom.length,0),setTimeout((function(){e.canMove=!0}),0)):this.current<=this.clone-1&&(this.goto(this.data_bottom.length+this.current,0),setTimeout((function(){e.canMove=!0}),0)))},goto:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400,i=arguments.length>2?arguments[2]:void 0,r=i?t-.5:t;this.$wrapper.style.webkitPerspectiveOrigin="".concat(r*this.ITEM_WIDTH+this.$wrapper.clientWidth/2,"px center"),this.current=t,this.endX=-t*this.ITEM_WIDTH,n?(this.setWrapper(this.endX,n),this.$cubes.forEach((function(r,a){var o=a*e.ITEM_WIDTH+e.endX;r.style.transformOrigin=e.getTransformOrigin(o),t-1==a?(r.style.transition="all ".concat(n,"ms cubic-bezier(0.215, 0.610, 0.355, 1.000)"),r.style.transform="rotateY(-60deg) translate3d(0, ".concat(e.getTranslate(r.offsetLeft+e.endX),"px, 0)"),r.style.opacity=0):t+4==a?(r.style.transition="all ".concat(n,"ms cubic-bezier(0.215, 0.610, 0.355, 1.000)"),r.style.transform="rotateY(60deg) translate3d(0, ".concat(e.getTranslate(r.offsetLeft+e.endX),"px, 0)"),r.style.opacity=0):a>t-1&&a<t+4?(r.style.transition=i?"transform ".concat(n,"ms cubic-bezier(0.22, 0.01, 0.68, 1.00), opacity ").concat(.9*n,"ms cubic-bezier(0.62, 0.02, 0.68, 1.00)"):"all ".concat(n,"ms cubic-bezier(0.390, 0.575, 0.565, 1.000)"),r.style.transform="rotateY(0.1deg) translate3d(0, ".concat(e.getTranslate(r.offsetLeft+e.endX),"px, 0)"),r.style.opacity=1):(r.style.transition=null,r.style.transform=null,r.style.opacity=null,r.style.transformOrigin=null)}))):(this.$wrapper.style.transitionDuration=null,this.$wrapper.style.transitionDuration=null,this.$cubes.forEach((function(t,e){t.style.transition&&(t.style.transition=null)})),this.setCube(this.endX,0),this.setWrapper(this.endX,0,!0))}}},p=Object(o.a)(u,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"cube"},[n("div",{ref:"container",staticClass:"adjust-position cube-container"},[n("div",{ref:"wrapper",staticClass:"cube-wrapper",on:{transitionend:t.transitionEndHandler}},[t._l(t.clone,(function(e){return n("div",{key:"clone-prev-"+e,staticClass:"cube-col"},[n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_top[e+t.data_bottom.length-t.clone-1]},on:{clickEvent:t.clickEvent}}),t._v(" "),n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_bottom[e+t.data_bottom.length-t.clone-1]},on:{clickEvent:t.clickEvent}})],1)})),t._v(" "),t._l(t.data_bottom,(function(e,i){return n("div",{key:i,staticClass:"cube-col cube-col--anime"},[n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_top[i]},on:{clickEvent:t.clickEvent}}),t._v(" "),n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_bottom[i]},on:{clickEvent:t.clickEvent}})],1)})),t._v(" "),t._l(t.data_bottom.slice(0,t.clone),(function(e,i){return n("div",{key:"clone-next-"+i,staticClass:"cube-col"},[n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_top[i]},on:{clickEvent:t.clickEvent}}),t._v(" "),n("CubeItem",{staticClass:"cube-item-wrap",attrs:{item:t.data_bottom[i]},on:{clickEvent:t.clickEvent}})],1)}))],2)])])}),[],!1,null,null,null).exports,d={name:"nut-magic",components:{Cube:p},props:{data:{type:[Object,Array],default:function(){return[]}},type:{type:String,default:"rank"},autoplay:{default:!0}},computed:{},data:function(){return{}},watch:{data:function(t,e){}},methods:{clickItem:function(t){this.$emit("click",t)}}},h=Object(o.a)(d,(function(){var t=this.$createElement,e=this._self._c||t;return this.data&&this.data.length>=8?e("Cube",{attrs:{dataMagic:this.data,type:this.type,autoplay:this.autoplay},on:{clickItem:this.clickItem}}):this._e()}),[],!1,null,"601c4726",null).exports;n(154);h.install=function(t){t.component(h.name,h),t.component("Cube",p),t.component("CubeItem",s)};e.default=h},4:function(t,e,n){var i=n(46),r=n(47),a=n(13),o=n(48);t.exports=function(t){return i(t)||r(t)||a(t)||o()},t.exports.default=t.exports,t.exports.__esModule=!0},46:function(t,e,n){var i=n(9);t.exports=function(t){if(Array.isArray(t))return i(t)},t.exports.default=t.exports,t.exports.__esModule=!0},47:function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)},t.exports.default=t.exports,t.exports.__esModule=!0},48:function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},9:function(t,e){t.exports=function(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},t.exports.default=t.exports,t.exports.__esModule=!0}})}));
7
7
  //# sourceMappingURL=magic.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]/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://[name]/./src/packages/magic/magic.vue?efd0","webpack://[name]/./src/packages/magic/Cube/CubeItem.vue?d719","webpack://[name]/src/packages/magic/Cube/CubeItem.vue","webpack://[name]/./src/packages/magic/Cube/CubeItem.vue","webpack://[name]/./src/packages/magic/Cube/CubeItem.vue?ff72","webpack://[name]/src/packages/magic/Cube/index.vue","webpack://[name]/./src/packages/magic/Cube/index.vue?2ba2","webpack://[name]/./src/packages/magic/Cube/index.vue","webpack://[name]/./src/packages/magic/Cube/index.vue?fb79","webpack://[name]/./src/packages/magic/magic.vue?d35f","webpack://[name]/src/packages/magic/magic.vue","webpack://[name]/./src/packages/magic/magic.vue","webpack://[name]/./src/packages/magic/index.js","webpack://[name]/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://[name]/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://[name]/./node_modules/@babel/runtime/helpers/arrayLikeToArray.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","arrayLikeToArray","minLen","toString","slice","constructor","Array","from","test","props","item","type","default","data","methods","cubeClick","$emit","_vm","_h","$createElement","_c","_self","class","on","$event","staticClass","style","backgroundImage","_v","_s","desc","_e","cubicEaseOut","b","getPropertyValue","el","attr","tr","dataMagic","String","overflow","Number","validator","autoplay","Boolean","interval","components","CubeItem","clone","computed","data_top","filter","data_bottom","watch","startPlay","clearPlayer","mounted","$nextTick","cube","transition","setTimeout","initWQVisibleEvent","document","addEventListener","e","hidden","clickEvent","bindEvent","$wrapper","touchStartHandler","touchMoveHandler","touchEndHandler","player","setInterval","clearInterval","canMove","touching","transitionDuration","startX","touches","pageX","startY","pageY","$cubes","forEach","Math","abs","moveY","moveX","cancelable","preventDefault","direction","offsetX","endX","setWrapper","setCube","cur","overX","ITEM_WIDTH","ceil","floor","length","goto","continueTransition","_wrapperTr","transform","opacity","transformOrigin","nowX","time","wait","_offset","getTransformOrigin","computeWidth","to","getBetweenRotate","getMiddleRotate","a","getOpacity","getTranslate","transitionEndHandler","event","target","webkitPerspectiveOrigin","current","duration","idx","isAutoPlay","ref","_l","attrs","Cube","clickItem","Magic","install","Vue","component","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","isArray","iter","iterator","TypeError","len","arr2"],"mappings":"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","file":"magic/magic.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(\"magic\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"magic\"] = factory();\n\telse\n\t\troot[\"magic\"] = 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 = 157);\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 = typeof scriptExports === 'function'\n ? scriptExports.options\n : 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) { // 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\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data && _vm.data.length >= 8)?_c('Cube',{attrs:{\"dataMagic\":_vm.data,\"type\":_vm.type,\"autoplay\":_vm.autoplay},on:{\"clickItem\":_vm.clickItem}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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!./CubeItem.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!./CubeItem.vue?vue&type=script&lang=js&\"","<template>\n <div :class=\"`cube-item cube-item--${item.type}`\" @click=\"cubeClick(item)\">\n <div class=\"cube-item-box\">\n <div class=\"sub-image\" :style=\"{ backgroundImage: `url(${item.pictureUrl})` }\"></div>\n </div>\n <div class=\"sub-desc\" v-if=\"item.desc\">\n <span>{{ item.desc }}</span>\n </div>\n <div class=\"sub-name\" v-if=\"item.name\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'CubeItem',\n props: {\n item: {\n type: Object,\n default: null\n }\n },\n data() {\n return {};\n },\n methods: {\n cubeClick(item) {\n this.$emit('clickEvent', item);\n }\n }\n};\n</script>\n\n<style lang=\"scss\"></style>\n","import { render, staticRenderFns } from \"./CubeItem.vue?vue&type=template&id=12be9f58&\"\nimport script from \"./CubeItem.vue?vue&type=script&lang=js&\"\nexport * from \"./CubeItem.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',{class:(\"cube-item cube-item--\" + (_vm.item.type)),on:{\"click\":function($event){return _vm.cubeClick(_vm.item)}}},[_c('div',{staticClass:\"cube-item-box\"},[_c('div',{staticClass:\"sub-image\",style:({ backgroundImage: (\"url(\" + (_vm.item.pictureUrl) + \")\") })})]),_vm._v(\" \"),(_vm.item.desc)?_c('div',{staticClass:\"sub-desc\"},[_c('span',[_vm._v(_vm._s(_vm.item.desc))])]):_vm._e(),_vm._v(\" \"),(_vm.item.name)?_c('div',{staticClass:\"sub-name\"},[_c('span',[_vm._v(_vm._s(_vm.item.name))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"cube\">\n <div class=\"adjust-position cube-container\" ref=\"container\">\n <div class=\"cube-wrapper\" ref=\"wrapper\" @transitionend=\"transitionEndHandler\">\n <div class=\"cube-col\" v-for=\"i in clone\" :key=\"'clone-prev-' + i\">\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_top[i + data_bottom.length - clone - 1]\" />\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_bottom[i + data_bottom.length - clone - 1]\" />\n </div>\n <div class=\"cube-col cube-col--anime\" v-for=\"(item, i) in data_bottom\" :key=\"i\">\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_top[i]\" />\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_bottom[i]\" />\n </div>\n <div class=\"cube-col\" v-for=\"(item, i) in data_bottom.slice(0, clone)\" :key=\"'clone-next-' + i\">\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_top[i]\" />\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_bottom[i]\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport CubeItem from './CubeItem';\n// 贝赛尔缓冲曲线计算公式\nfunction sineEaseOut(t, b, c, d) {\n return c * Math.sin((t / d) * (Math.PI / 2)) + b;\n}\nfunction cubicEaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n}\n// 获取计算属性\nfunction getPropertyValue(el, attr) {\n const st = window.getComputedStyle(el, null);\n const tr =\n st.getPropertyValue('-webkit-' + attr) ||\n st.getPropertyValue('-moz-' + attr) ||\n st.getPropertyValue('-ms-' + attr) ||\n st.getPropertyValue('-o-' + attr) ||\n st.getPropertyValue(attr);\n if (tr && tr != 'none') {\n return tr;\n }\n return null;\n}\nexport default {\n props: {\n dataMagic: {\n type: [Object, Array],\n default: null\n },\n type: {\n type: String,\n default: 'rank'\n },\n // 溢出可滑动的倍数\n overflow: {\n type: [String, Number],\n default: 1.4,\n validator: value => {\n return value >= 1 && value < 1.5;\n }\n },\n autoplay: {\n type: Boolean,\n default: false\n },\n interval: {\n type: [String, Number],\n default: 3000\n }\n },\n components: {\n CubeItem\n },\n data() {\n return {\n // 克隆数目\n clone: 4\n };\n },\n computed: {\n data_top() {\n return this.dataMagic.filter((item, i) => i % 2 == 0);\n },\n data_bottom() {\n return this.dataMagic.filter((item, i) => i % 2 == 1);\n }\n },\n watch: {\n autoplay(value) {\n value ? this.startPlay() : this.clearPlayer();\n }\n },\n // computed: {\n // ...mapGetters([\n // 'xHeight'\n // ]),\n // styleTop() {\n // let top = (this.xHeight * 0.244) + 12\n // return {\n // marginTop: `${this.xHeight}px`,\n // }\n // }\n // },\n mounted() {\n this.$nextTick(() => {\n this.canMove = true;\n this.$wrapper = this.$refs.wrapper;\n this.$cubes = [...this.$wrapper.children];\n // 单元大小\n this.ITEM_WIDTH = this.$wrapper.clientWidth / 4;\n this.computeWidth = {\n '-2': -this.ITEM_WIDTH * 2,\n '-1': -this.ITEM_WIDTH,\n '0': 0,\n '1': this.ITEM_WIDTH,\n '2': this.ITEM_WIDTH * 2,\n '3': this.ITEM_WIDTH * 3,\n '4': this.ITEM_WIDTH * 4,\n '5': this.ITEM_WIDTH * 5\n };\n // 起始索引\n this.current = this.clone;\n // 起始位置\n this.endX = -this.ITEM_WIDTH * this.current;\n this.offsetX = this.endX;\n // 设置魔方样式\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n this.setWrapper(this.endX);\n this.setCube(this.endX);\n this.$wrapper.style.webkitPerspectiveOrigin = `${this.current * this.ITEM_WIDTH + this.$wrapper.clientWidth / 2}px center`;\n // 自动播放\n setTimeout(() => {\n this.startPlay();\n this.$wrapper.classList.add('cube-wrapper--inited');\n }, 1000);\n this.bindEvent();\n });\n\n this.initWQVisibleEvent();\n // 防止关闭屏幕/跳出时仍在执行动画\n document.addEventListener('visibilitychange', e => {\n e.hidden ? this.clearPlayer() : this.startPlay();\n });\n },\n methods: {\n clickEvent(item) {\n this.$emit('clickItem', item);\n },\n bindEvent() {\n this.$wrapper.addEventListener('touchstart', this.touchStartHandler);\n this.$wrapper.addEventListener('touchmove', this.touchMoveHandler);\n this.$wrapper.addEventListener('touchend', this.touchEndHandler);\n },\n // 初始化微信手q的展示隐藏事件\n initWQVisibleEvent() {\n document.addEventListener(\n 'qbrowserVisibilityChange',\n function(e) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent('visibilitychange', false, false);\n evt.hidden = e.hidden;\n document.dispatchEvent(evt);\n },\n true\n );\n document.addEventListener(\n 'visibilitychange',\n function(e) {\n e.hidden = e.hidden === undefined ? document.hidden : e.hidden;\n },\n true\n );\n },\n // 播放\n startPlay() {\n if (!this.autoplay) return;\n this.clearPlayer();\n this.player = setInterval(() => {\n // 防止关闭屏幕/跳出时仍在执行\n this.canMove = true;\n this.goto(this.current + 1, 600, true);\n }, this.interval);\n },\n clearPlayer() {\n clearInterval(this.player);\n this.player = null;\n },\n touchStartHandler(e) {\n if (!this.canMove) return;\n this.clearPlayer();\n this.touching = true;\n\n // 追随到当前过渡位置\n if (this.$wrapper.style.transitionDuration) {\n // 正在过渡\n // this.continueTransition()\n }\n\n // 记录起始坐标\n this.startX = e.touches[0].pageX;\n this.startY = e.touches[0].pageY;\n\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n },\n touchMoveHandler(e) {\n if (!this.canMove || !this.touching) return;\n\n let moveX = e.touches[0].pageX - this.startX;\n let moveY = e.touches[0].pageY - this.startY;\n // 防止上下滑动对影响魔方水平滚动的影响\n if (!(Math.abs(moveY) > Math.abs(moveX) * 1.5)) {\n e.cancelable && e.preventDefault();\n }\n // sineEaseOut曲线: 当前x、 起始x、目标y、目标x\n moveX = moveX / 3;\n if (moveX > 0) {\n // moveX = sineEaseOut(moveX, 0, this.ITEM_WIDTH * this.overflow , this.ITEM_WIDTH * 6)\n this.direction = -1;\n } else if (moveX < 0) {\n // moveX = -sineEaseOut(-moveX, 0, this.ITEM_WIDTH * this.overflow , this.ITEM_WIDTH * 6)\n this.direction = 1;\n } else {\n return;\n }\n // 滑动偏移量\n this.offsetX = moveX + this.endX;\n // 设置魔方样式\n\n let rotate = this.getMiddleRotate(moveX);\n this.setWrapper(this.offsetX);\n this.setCube(this.offsetX, this.offsetX > 0 ? moveX : -moveX);\n },\n touchEndHandler(e) {\n if (!this.canMove || !this.touching) return;\n let cur;\n let overX = (this.offsetX % this.ITEM_WIDTH) * this.direction;\n // 计算目标索引\n if (overX == 0) {\n cur = this.offsetX / this.ITEM_WIDTH;\n } else if ((overX > 0 && overX < this.ITEM_WIDTH * (3 / 4)) || (overX < 0 && overX >= -this.ITEM_WIDTH * (1 / 4))) {\n cur = Math.ceil(this.offsetX / this.ITEM_WIDTH);\n } else {\n cur = Math.floor(this.offsetX / this.ITEM_WIDTH);\n }\n cur = -cur;\n // 达到循环边界了,需要禁止滑动,等切换结束才允许继续滑\n if (cur >= this.data_bottom.length + this.clone || cur <= this.clone - 1) {\n this.canMove = false;\n }\n\n // 调整到边界目标距离\n this.goto(cur, 400);\n // this.goto(cur, Math.abs(cur * this.ITEM_WIDTH - Math.abs(this.offsetX)) / this.ITEM_WIDTH * 400)\n\n // 继续自动播放\n this.startPlay();\n this.touching = false;\n },\n /**\n * 中断过渡\n */\n continueTransition() {\n let _wrapperTr = getPropertyValue(this.$wrapper, 'transform');\n let _wrapperPo = getPropertyValue(this.$wrapper, 'perspective-origin');\n if (_wrapperTr && this.$wrapper.style.transitionDuration) {\n (this.$wrapper.style.transform = _wrapperTr), (this.$wrapper.style.perspectiveOrigin = _wrapperPo);\n this.$cubes.forEach(cube => {\n cube.style.transform = getPropertyValue(cube, 'transform');\n cube.style.opacity = +getPropertyValue(cube, 'opacity');\n cube.style.transformOrigin = getPropertyValue(cube, 'transform-origin');\n });\n // 记录当前位置\n this.endX = 0;\n }\n },\n /**\n * 设置容器滚动\n * nowX: 目标位置\n * time: 过渡时长\n * wait: 运动是否需要滞后\n */\n setWrapper(nowX, time, wait) {\n this.offsetX = nowX;\n if (time > 0) {\n this.$wrapper.style.transitionDuration = `${time}ms`;\n }\n if (wait) {\n setTimeout(() => {\n this.$wrapper.style.transform = `translate3d(${nowX}px, 0, 0)`;\n }, 0);\n } else {\n this.$wrapper.style.transform = `translate3d(${nowX}px, 0, 0)`;\n }\n },\n /**\n * 设置魔方样式\n * nowX: 目标位置\n * rotate: 角度正负\n */\n setCube(nowX, rotate = 0) {\n // 关闭所有过渡\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n let _offset = idx * this.ITEM_WIDTH + nowX;\n if (_offset > this.computeWidth[-1] && _offset < this.computeWidth[0]) {\n // 左边元素\n let bezier_offset = cubicEaseOut(_offset % this.ITEM_WIDTH, 0, -this.ITEM_WIDTH, -this.ITEM_WIDTH);\n cube.style.transform = `rotateY(${this.getBetweenRotate(_offset)}deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = this.getOpacity(bezier_offset);\n } else if (_offset > this.computeWidth[3] && _offset < this.computeWidth[4]) {\n // 右边元素\n let bezier_offset = cubicEaseOut(_offset % this.ITEM_WIDTH, 0, this.ITEM_WIDTH, this.ITEM_WIDTH);\n cube.style.transform = `rotateY(${this.getBetweenRotate(_offset)}deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = this.getOpacity(bezier_offset);\n } else if (_offset >= this.computeWidth[4] && _offset < this.computeWidth[5]) {\n // 最右边元素(自动播放时的预备状态)\n cube.style.transform = `rotateY(60deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = 0;\n } else if (_offset > this.computeWidth[-2] && _offset <= this.computeWidth[-1]) {\n // 最左边元素(自动播放时的预备状态)\n cube.style.transform = `rotateY(-60deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = 0;\n } else if (_offset >= this.computeWidth[0] && _offset <= this.computeWidth[3]) {\n // 中间元素\n cube.style.transform = `rotateY(${this.getMiddleRotate(rotate)}deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = 1;\n }\n cube.style.transformOrigin = this.getTransformOrigin(_offset);\n });\n },\n // 设置魔方的变化基准点\n getTransformOrigin(d, overflow) {\n if (d >= this.computeWidth[-1] && d <= this.computeWidth[4]) {\n let to = this.ITEM_WIDTH - d / 3;\n if (to < this.computeWidth[0]) {\n to = this.computeWidth[0];\n } else if (to > this.computeWidth[1]) {\n to = this.computeWidth[1];\n }\n return `${to}px center`;\n }\n },\n // 设置两侧魔方的旋转\n getBetweenRotate(d) {\n return ((d % this.ITEM_WIDTH) * (360 / this.$wrapper.clientWidth) * 70) / 90;\n },\n // 设置中间魔方的旋转, 假设临界值交点为5 * 魔方宽度,减缓数率a为0.4\n getMiddleRotate(d) {\n let mid = 5;\n let a = 0.35;\n // 下降曲线:y2 = bx + k 得出 b = -7/3、k = 7/3 所以:y2 = -7/3x + 7/3w\n if (d > (this.ITEM_WIDTH * mid) / 10) {\n return ((a * mid) / (10 - mid)) * (this.ITEM_WIDTH - d);\n } else if (d < (-this.ITEM_WIDTH * mid) / 10) {\n return ((-a * mid) / (10 - mid)) * (this.ITEM_WIDTH + d);\n } else {\n // 上升曲线:y1 = ax 设 a = 0.2\n return a * d;\n }\n },\n // 设置透明度\n getOpacity(d) {\n return 1 - ((Math.abs(d) / this.ITEM_WIDTH) % 1);\n },\n // 设置偏移量\n getTranslate(d) {\n const slow = 7; // 减缓倍率\n if (d > this.computeWidth[2]) {\n if (d > this.computeWidth[3]) {\n return (this.computeWidth[3] - d) / 5;\n }\n return (this.computeWidth[3] - d) / slow;\n } else if (d < this.computeWidth[1]) {\n if (d < 0) {\n return d / 5;\n }\n return d / slow;\n } else {\n return this.ITEM_WIDTH / slow;\n }\n },\n // 检测无限循环\n transitionEndHandler(event) {\n if (event.target === this.$wrapper) {\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n this.$wrapper.style.webkitPerspectiveOrigin = `${this.current * this.ITEM_WIDTH + this.$wrapper.clientWidth / 2}px center`;\n if (this.current >= this.data_bottom.length + this.clone) {\n this.goto(this.current % this.data_bottom.length, 0);\n setTimeout(() => {\n this.canMove = true;\n }, 0);\n } else if (this.current <= this.clone - 1) {\n this.goto(this.data_bottom.length + this.current, 0);\n setTimeout(() => {\n this.canMove = true;\n }, 0);\n }\n }\n },\n /**\n * 跳转到某个索引的位置\n * cur: 目标魔方索引\n * duration: 过渡时长\n */\n goto(cur, duration = 400, isAutoPlay) {\n let nextCur = isAutoPlay ? cur - 0.5 : cur;\n this.$wrapper.style.webkitPerspectiveOrigin = `${nextCur * this.ITEM_WIDTH + this.$wrapper.clientWidth / 2}px center`;\n\n this.current = cur;\n this.endX = -cur * this.ITEM_WIDTH;\n if (!duration) {\n this.$wrapper.style.transitionDuration = null;\n\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n this.setCube(this.endX, 0);\n this.setWrapper(this.endX, 0, true);\n } else {\n // 执行过渡\n this.setWrapper(this.endX, duration);\n this.$cubes.forEach((cube, idx) => {\n let _offset = idx * this.ITEM_WIDTH + this.endX;\n cube.style.transformOrigin = this.getTransformOrigin(_offset);\n if (cur - 1 == idx) {\n // 左边过渡\n cube.style.transition = `all ${duration}ms cubic-bezier(0.215, 0.610, 0.355, 1.000)`;\n cube.style.transform = `rotateY(-60deg) translate3d(0, ${this.getTranslate(cube.offsetLeft + this.endX)}px, 0)`;\n cube.style.opacity = 0;\n } else if (cur + 4 == idx) {\n // 右边过渡\n cube.style.transition = `all ${duration}ms cubic-bezier(0.215, 0.610, 0.355, 1.000)`;\n cube.style.transform = `rotateY(60deg) translate3d(0, ${this.getTranslate(cube.offsetLeft + this.endX)}px, 0)`;\n cube.style.opacity = 0;\n } else if (idx > cur - 1 && idx < cur + 4) {\n // 中间过渡\n if (isAutoPlay) {\n cube.style.transition = `transform ${duration}ms cubic-bezier(0.22, 0.01, 0.68, 1.00), opacity ${duration *\n 0.9}ms cubic-bezier(0.62, 0.02, 0.68, 1.00)`;\n } else {\n cube.style.transition = `all ${duration}ms cubic-bezier(0.390, 0.575, 0.565, 1.000)`;\n }\n cube.style.transform = `rotateY(0.1deg) translate3d(0, ${this.getTranslate(cube.offsetLeft + this.endX)}px, 0)`;\n cube.style.opacity = 1;\n } else {\n cube.style.transition = null;\n cube.style.transform = null;\n cube.style.opacity = null;\n cube.style.transformOrigin = null;\n }\n });\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\"></style>\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!./index.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!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=002ab09b&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.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:\"cube\"},[_c('div',{ref:\"container\",staticClass:\"adjust-position cube-container\"},[_c('div',{ref:\"wrapper\",staticClass:\"cube-wrapper\",on:{\"transitionend\":_vm.transitionEndHandler}},[_vm._l((_vm.clone),function(i){return _c('div',{key:'clone-prev-' + i,staticClass:\"cube-col\"},[_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_top[i + _vm.data_bottom.length - _vm.clone - 1]},on:{\"clickEvent\":_vm.clickEvent}}),_vm._v(\" \"),_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_bottom[i + _vm.data_bottom.length - _vm.clone - 1]},on:{\"clickEvent\":_vm.clickEvent}})],1)}),_vm._v(\" \"),_vm._l((_vm.data_bottom),function(item,i){return _c('div',{key:i,staticClass:\"cube-col cube-col--anime\"},[_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_top[i]},on:{\"clickEvent\":_vm.clickEvent}}),_vm._v(\" \"),_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_bottom[i]},on:{\"clickEvent\":_vm.clickEvent}})],1)}),_vm._v(\" \"),_vm._l((_vm.data_bottom.slice(0, _vm.clone)),function(item,i){return _c('div',{key:'clone-next-' + i,staticClass:\"cube-col\"},[_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_top[i]},on:{\"clickEvent\":_vm.clickEvent}}),_vm._v(\" \"),_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_bottom[i]},on:{\"clickEvent\":_vm.clickEvent}})],1)})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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!./magic.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!./magic.vue?vue&type=script&lang=js&\"","<template>\n <Cube :dataMagic=\"data\" :type=\"type\" :autoplay=\"autoplay\" v-if=\"data && data.length >= 8\" @clickItem=\"clickItem\" />\n</template>\n\n<script>\nimport Cube from './Cube';\n\nexport default {\n name: 'nut-magic',\n components: {\n Cube\n },\n props: {\n data: {\n type: [Object, Array],\n default: () => {\n return [];\n }\n },\n // dataSpecial: {\n // type: [Object, Array],\n // default: null\n // },\n type: {\n type: String,\n default: 'rank'\n },\n autoplay: {\n default: true\n }\n },\n computed: {},\n data() {\n return {};\n },\n watch: {\n data(newV, old) {\n // this.init();\n }\n },\n methods: {\n clickItem(item) {\n this.$emit('click', item);\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import { render, staticRenderFns } from \"./magic.vue?vue&type=template&id=601c4726&scoped=true&\"\nimport script from \"./magic.vue?vue&type=script&lang=js&\"\nexport * from \"./magic.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 \"601c4726\",\n null\n \n)\n\nexport default component.exports","import Magic from './magic.vue';\nimport Cube from './Cube/index.vue';\nimport CubeItem from './Cube/CubeItem.vue';\nimport './magic.scss';\n\nMagic.install = function(Vue) {\n Vue.component(Magic.name, Magic);\n Vue.component('Cube', Cube);\n Vue.component('CubeItem', CubeItem);\n};\n\nexport default Magic;\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;"],"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]/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://[name]/./src/packages/magic/magic.vue?efd0","webpack://[name]/./src/packages/magic/Cube/CubeItem.vue?d719","webpack://[name]/src/packages/magic/Cube/CubeItem.vue","webpack://[name]/./src/packages/magic/Cube/CubeItem.vue","webpack://[name]/./src/packages/magic/Cube/CubeItem.vue?ff72","webpack://[name]/src/packages/magic/Cube/index.vue","webpack://[name]/./src/packages/magic/Cube/index.vue?2ba2","webpack://[name]/./src/packages/magic/Cube/index.vue","webpack://[name]/./src/packages/magic/Cube/index.vue?fb79","webpack://[name]/./src/packages/magic/magic.vue?d35f","webpack://[name]/src/packages/magic/magic.vue","webpack://[name]/./src/packages/magic/magic.vue","webpack://[name]/./src/packages/magic/index.js","webpack://[name]/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://[name]/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://[name]/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://[name]/./node_modules/@babel/runtime/helpers/arrayLikeToArray.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","arrayLikeToArray","minLen","toString","slice","constructor","Array","from","test","props","item","type","default","data","methods","cubeClick","$emit","_vm","_h","$createElement","_c","_self","class","on","$event","staticClass","style","backgroundImage","_v","_s","desc","_e","cubicEaseOut","b","getPropertyValue","el","attr","tr","dataMagic","String","overflow","Number","validator","autoplay","Boolean","interval","components","CubeItem","clone","computed","data_top","filter","data_bottom","watch","startPlay","clearPlayer","mounted","$nextTick","cube","transition","setTimeout","initWQVisibleEvent","document","addEventListener","e","hidden","clickEvent","bindEvent","$wrapper","touchStartHandler","touchMoveHandler","touchEndHandler","player","setInterval","clearInterval","canMove","touching","transitionDuration","startX","touches","pageX","startY","pageY","$cubes","forEach","Math","abs","moveY","moveX","cancelable","preventDefault","direction","offsetX","endX","setWrapper","setCube","cur","overX","ITEM_WIDTH","ceil","floor","length","goto","continueTransition","_wrapperTr","transform","opacity","transformOrigin","nowX","time","wait","_offset","getTransformOrigin","computeWidth","to","getBetweenRotate","getMiddleRotate","a","getOpacity","getTranslate","transitionEndHandler","event","target","webkitPerspectiveOrigin","current","duration","idx","isAutoPlay","ref","_l","attrs","Cube","clickItem","Magic","install","Vue","component","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","isArray","iter","iterator","TypeError","len","arr2"],"mappings":"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","file":"magic/magic.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(\"magic\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"magic\"] = factory();\n\telse\n\t\troot[\"magic\"] = 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 = 158);\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 = typeof scriptExports === 'function'\n ? scriptExports.options\n : 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) { // 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\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data && _vm.data.length >= 8)?_c('Cube',{attrs:{\"dataMagic\":_vm.data,\"type\":_vm.type,\"autoplay\":_vm.autoplay},on:{\"clickItem\":_vm.clickItem}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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!./CubeItem.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!./CubeItem.vue?vue&type=script&lang=js&\"","<template>\n <div :class=\"`cube-item cube-item--${item.type}`\" @click=\"cubeClick(item)\">\n <div class=\"cube-item-box\">\n <div class=\"sub-image\" :style=\"{ backgroundImage: `url(${item.pictureUrl})` }\"></div>\n </div>\n <div class=\"sub-desc\" v-if=\"item.desc\">\n <span>{{ item.desc }}</span>\n </div>\n <div class=\"sub-name\" v-if=\"item.name\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'CubeItem',\n props: {\n item: {\n type: Object,\n default: null\n }\n },\n data() {\n return {};\n },\n methods: {\n cubeClick(item) {\n this.$emit('clickEvent', item);\n }\n }\n};\n</script>\n\n<style lang=\"scss\"></style>\n","import { render, staticRenderFns } from \"./CubeItem.vue?vue&type=template&id=12be9f58&\"\nimport script from \"./CubeItem.vue?vue&type=script&lang=js&\"\nexport * from \"./CubeItem.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',{class:(\"cube-item cube-item--\" + (_vm.item.type)),on:{\"click\":function($event){return _vm.cubeClick(_vm.item)}}},[_c('div',{staticClass:\"cube-item-box\"},[_c('div',{staticClass:\"sub-image\",style:({ backgroundImage: (\"url(\" + (_vm.item.pictureUrl) + \")\") })})]),_vm._v(\" \"),(_vm.item.desc)?_c('div',{staticClass:\"sub-desc\"},[_c('span',[_vm._v(_vm._s(_vm.item.desc))])]):_vm._e(),_vm._v(\" \"),(_vm.item.name)?_c('div',{staticClass:\"sub-name\"},[_c('span',[_vm._v(_vm._s(_vm.item.name))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"cube\">\n <div class=\"adjust-position cube-container\" ref=\"container\">\n <div class=\"cube-wrapper\" ref=\"wrapper\" @transitionend=\"transitionEndHandler\">\n <div class=\"cube-col\" v-for=\"i in clone\" :key=\"'clone-prev-' + i\">\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_top[i + data_bottom.length - clone - 1]\" />\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_bottom[i + data_bottom.length - clone - 1]\" />\n </div>\n <div class=\"cube-col cube-col--anime\" v-for=\"(item, i) in data_bottom\" :key=\"i\">\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_top[i]\" />\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_bottom[i]\" />\n </div>\n <div class=\"cube-col\" v-for=\"(item, i) in data_bottom.slice(0, clone)\" :key=\"'clone-next-' + i\">\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_top[i]\" />\n <CubeItem @clickEvent=\"clickEvent\" class=\"cube-item-wrap\" :item=\"data_bottom[i]\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport CubeItem from './CubeItem';\n// 贝赛尔缓冲曲线计算公式\nfunction sineEaseOut(t, b, c, d) {\n return c * Math.sin((t / d) * (Math.PI / 2)) + b;\n}\nfunction cubicEaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n}\n// 获取计算属性\nfunction getPropertyValue(el, attr) {\n const st = window.getComputedStyle(el, null);\n const tr =\n st.getPropertyValue('-webkit-' + attr) ||\n st.getPropertyValue('-moz-' + attr) ||\n st.getPropertyValue('-ms-' + attr) ||\n st.getPropertyValue('-o-' + attr) ||\n st.getPropertyValue(attr);\n if (tr && tr != 'none') {\n return tr;\n }\n return null;\n}\nexport default {\n props: {\n dataMagic: {\n type: [Object, Array],\n default: null\n },\n type: {\n type: String,\n default: 'rank'\n },\n // 溢出可滑动的倍数\n overflow: {\n type: [String, Number],\n default: 1.4,\n validator: value => {\n return value >= 1 && value < 1.5;\n }\n },\n autoplay: {\n type: Boolean,\n default: false\n },\n interval: {\n type: [String, Number],\n default: 3000\n }\n },\n components: {\n CubeItem\n },\n data() {\n return {\n // 克隆数目\n clone: 4\n };\n },\n computed: {\n data_top() {\n return this.dataMagic.filter((item, i) => i % 2 == 0);\n },\n data_bottom() {\n return this.dataMagic.filter((item, i) => i % 2 == 1);\n }\n },\n watch: {\n autoplay(value) {\n value ? this.startPlay() : this.clearPlayer();\n }\n },\n // computed: {\n // ...mapGetters([\n // 'xHeight'\n // ]),\n // styleTop() {\n // let top = (this.xHeight * 0.244) + 12\n // return {\n // marginTop: `${this.xHeight}px`,\n // }\n // }\n // },\n mounted() {\n this.$nextTick(() => {\n this.canMove = true;\n this.$wrapper = this.$refs.wrapper;\n this.$cubes = [...this.$wrapper.children];\n // 单元大小\n this.ITEM_WIDTH = this.$wrapper.clientWidth / 4;\n this.computeWidth = {\n '-2': -this.ITEM_WIDTH * 2,\n '-1': -this.ITEM_WIDTH,\n '0': 0,\n '1': this.ITEM_WIDTH,\n '2': this.ITEM_WIDTH * 2,\n '3': this.ITEM_WIDTH * 3,\n '4': this.ITEM_WIDTH * 4,\n '5': this.ITEM_WIDTH * 5\n };\n // 起始索引\n this.current = this.clone;\n // 起始位置\n this.endX = -this.ITEM_WIDTH * this.current;\n this.offsetX = this.endX;\n // 设置魔方样式\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n this.setWrapper(this.endX);\n this.setCube(this.endX);\n this.$wrapper.style.webkitPerspectiveOrigin = `${this.current * this.ITEM_WIDTH + this.$wrapper.clientWidth / 2}px center`;\n // 自动播放\n setTimeout(() => {\n this.startPlay();\n this.$wrapper.classList.add('cube-wrapper--inited');\n }, 1000);\n this.bindEvent();\n });\n\n this.initWQVisibleEvent();\n // 防止关闭屏幕/跳出时仍在执行动画\n document.addEventListener('visibilitychange', e => {\n e.hidden ? this.clearPlayer() : this.startPlay();\n });\n },\n methods: {\n clickEvent(item) {\n this.$emit('clickItem', item);\n },\n bindEvent() {\n this.$wrapper.addEventListener('touchstart', this.touchStartHandler);\n this.$wrapper.addEventListener('touchmove', this.touchMoveHandler);\n this.$wrapper.addEventListener('touchend', this.touchEndHandler);\n },\n // 初始化微信手q的展示隐藏事件\n initWQVisibleEvent() {\n document.addEventListener(\n 'qbrowserVisibilityChange',\n function(e) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent('visibilitychange', false, false);\n evt.hidden = e.hidden;\n document.dispatchEvent(evt);\n },\n true\n );\n document.addEventListener(\n 'visibilitychange',\n function(e) {\n e.hidden = e.hidden === undefined ? document.hidden : e.hidden;\n },\n true\n );\n },\n // 播放\n startPlay() {\n if (!this.autoplay) return;\n this.clearPlayer();\n this.player = setInterval(() => {\n // 防止关闭屏幕/跳出时仍在执行\n this.canMove = true;\n this.goto(this.current + 1, 600, true);\n }, this.interval);\n },\n clearPlayer() {\n clearInterval(this.player);\n this.player = null;\n },\n touchStartHandler(e) {\n if (!this.canMove) return;\n this.clearPlayer();\n this.touching = true;\n\n // 追随到当前过渡位置\n if (this.$wrapper.style.transitionDuration) {\n // 正在过渡\n // this.continueTransition()\n }\n\n // 记录起始坐标\n this.startX = e.touches[0].pageX;\n this.startY = e.touches[0].pageY;\n\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n },\n touchMoveHandler(e) {\n if (!this.canMove || !this.touching) return;\n\n let moveX = e.touches[0].pageX - this.startX;\n let moveY = e.touches[0].pageY - this.startY;\n // 防止上下滑动对影响魔方水平滚动的影响\n if (!(Math.abs(moveY) > Math.abs(moveX) * 1.5)) {\n e.cancelable && e.preventDefault();\n }\n // sineEaseOut曲线: 当前x、 起始x、目标y、目标x\n moveX = moveX / 3;\n if (moveX > 0) {\n // moveX = sineEaseOut(moveX, 0, this.ITEM_WIDTH * this.overflow , this.ITEM_WIDTH * 6)\n this.direction = -1;\n } else if (moveX < 0) {\n // moveX = -sineEaseOut(-moveX, 0, this.ITEM_WIDTH * this.overflow , this.ITEM_WIDTH * 6)\n this.direction = 1;\n } else {\n return;\n }\n // 滑动偏移量\n this.offsetX = moveX + this.endX;\n // 设置魔方样式\n\n let rotate = this.getMiddleRotate(moveX);\n this.setWrapper(this.offsetX);\n this.setCube(this.offsetX, this.offsetX > 0 ? moveX : -moveX);\n },\n touchEndHandler(e) {\n if (!this.canMove || !this.touching) return;\n let cur;\n let overX = (this.offsetX % this.ITEM_WIDTH) * this.direction;\n // 计算目标索引\n if (overX == 0) {\n cur = this.offsetX / this.ITEM_WIDTH;\n } else if ((overX > 0 && overX < this.ITEM_WIDTH * (3 / 4)) || (overX < 0 && overX >= -this.ITEM_WIDTH * (1 / 4))) {\n cur = Math.ceil(this.offsetX / this.ITEM_WIDTH);\n } else {\n cur = Math.floor(this.offsetX / this.ITEM_WIDTH);\n }\n cur = -cur;\n // 达到循环边界了,需要禁止滑动,等切换结束才允许继续滑\n if (cur >= this.data_bottom.length + this.clone || cur <= this.clone - 1) {\n this.canMove = false;\n }\n\n // 调整到边界目标距离\n this.goto(cur, 400);\n // this.goto(cur, Math.abs(cur * this.ITEM_WIDTH - Math.abs(this.offsetX)) / this.ITEM_WIDTH * 400)\n\n // 继续自动播放\n this.startPlay();\n this.touching = false;\n },\n /**\n * 中断过渡\n */\n continueTransition() {\n let _wrapperTr = getPropertyValue(this.$wrapper, 'transform');\n let _wrapperPo = getPropertyValue(this.$wrapper, 'perspective-origin');\n if (_wrapperTr && this.$wrapper.style.transitionDuration) {\n (this.$wrapper.style.transform = _wrapperTr), (this.$wrapper.style.perspectiveOrigin = _wrapperPo);\n this.$cubes.forEach(cube => {\n cube.style.transform = getPropertyValue(cube, 'transform');\n cube.style.opacity = +getPropertyValue(cube, 'opacity');\n cube.style.transformOrigin = getPropertyValue(cube, 'transform-origin');\n });\n // 记录当前位置\n this.endX = 0;\n }\n },\n /**\n * 设置容器滚动\n * nowX: 目标位置\n * time: 过渡时长\n * wait: 运动是否需要滞后\n */\n setWrapper(nowX, time, wait) {\n this.offsetX = nowX;\n if (time > 0) {\n this.$wrapper.style.transitionDuration = `${time}ms`;\n }\n if (wait) {\n setTimeout(() => {\n this.$wrapper.style.transform = `translate3d(${nowX}px, 0, 0)`;\n }, 0);\n } else {\n this.$wrapper.style.transform = `translate3d(${nowX}px, 0, 0)`;\n }\n },\n /**\n * 设置魔方样式\n * nowX: 目标位置\n * rotate: 角度正负\n */\n setCube(nowX, rotate = 0) {\n // 关闭所有过渡\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n let _offset = idx * this.ITEM_WIDTH + nowX;\n if (_offset > this.computeWidth[-1] && _offset < this.computeWidth[0]) {\n // 左边元素\n let bezier_offset = cubicEaseOut(_offset % this.ITEM_WIDTH, 0, -this.ITEM_WIDTH, -this.ITEM_WIDTH);\n cube.style.transform = `rotateY(${this.getBetweenRotate(_offset)}deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = this.getOpacity(bezier_offset);\n } else if (_offset > this.computeWidth[3] && _offset < this.computeWidth[4]) {\n // 右边元素\n let bezier_offset = cubicEaseOut(_offset % this.ITEM_WIDTH, 0, this.ITEM_WIDTH, this.ITEM_WIDTH);\n cube.style.transform = `rotateY(${this.getBetweenRotate(_offset)}deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = this.getOpacity(bezier_offset);\n } else if (_offset >= this.computeWidth[4] && _offset < this.computeWidth[5]) {\n // 最右边元素(自动播放时的预备状态)\n cube.style.transform = `rotateY(60deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = 0;\n } else if (_offset > this.computeWidth[-2] && _offset <= this.computeWidth[-1]) {\n // 最左边元素(自动播放时的预备状态)\n cube.style.transform = `rotateY(-60deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = 0;\n } else if (_offset >= this.computeWidth[0] && _offset <= this.computeWidth[3]) {\n // 中间元素\n cube.style.transform = `rotateY(${this.getMiddleRotate(rotate)}deg) translate3d(0, ${this.getTranslate(_offset)}px, 0)`;\n cube.style.opacity = 1;\n }\n cube.style.transformOrigin = this.getTransformOrigin(_offset);\n });\n },\n // 设置魔方的变化基准点\n getTransformOrigin(d, overflow) {\n if (d >= this.computeWidth[-1] && d <= this.computeWidth[4]) {\n let to = this.ITEM_WIDTH - d / 3;\n if (to < this.computeWidth[0]) {\n to = this.computeWidth[0];\n } else if (to > this.computeWidth[1]) {\n to = this.computeWidth[1];\n }\n return `${to}px center`;\n }\n },\n // 设置两侧魔方的旋转\n getBetweenRotate(d) {\n return ((d % this.ITEM_WIDTH) * (360 / this.$wrapper.clientWidth) * 70) / 90;\n },\n // 设置中间魔方的旋转, 假设临界值交点为5 * 魔方宽度,减缓数率a为0.4\n getMiddleRotate(d) {\n let mid = 5;\n let a = 0.35;\n // 下降曲线:y2 = bx + k 得出 b = -7/3、k = 7/3 所以:y2 = -7/3x + 7/3w\n if (d > (this.ITEM_WIDTH * mid) / 10) {\n return ((a * mid) / (10 - mid)) * (this.ITEM_WIDTH - d);\n } else if (d < (-this.ITEM_WIDTH * mid) / 10) {\n return ((-a * mid) / (10 - mid)) * (this.ITEM_WIDTH + d);\n } else {\n // 上升曲线:y1 = ax 设 a = 0.2\n return a * d;\n }\n },\n // 设置透明度\n getOpacity(d) {\n return 1 - ((Math.abs(d) / this.ITEM_WIDTH) % 1);\n },\n // 设置偏移量\n getTranslate(d) {\n const slow = 7; // 减缓倍率\n if (d > this.computeWidth[2]) {\n if (d > this.computeWidth[3]) {\n return (this.computeWidth[3] - d) / 5;\n }\n return (this.computeWidth[3] - d) / slow;\n } else if (d < this.computeWidth[1]) {\n if (d < 0) {\n return d / 5;\n }\n return d / slow;\n } else {\n return this.ITEM_WIDTH / slow;\n }\n },\n // 检测无限循环\n transitionEndHandler(event) {\n if (event.target === this.$wrapper) {\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n this.$wrapper.style.webkitPerspectiveOrigin = `${this.current * this.ITEM_WIDTH + this.$wrapper.clientWidth / 2}px center`;\n if (this.current >= this.data_bottom.length + this.clone) {\n this.goto(this.current % this.data_bottom.length, 0);\n setTimeout(() => {\n this.canMove = true;\n }, 0);\n } else if (this.current <= this.clone - 1) {\n this.goto(this.data_bottom.length + this.current, 0);\n setTimeout(() => {\n this.canMove = true;\n }, 0);\n }\n }\n },\n /**\n * 跳转到某个索引的位置\n * cur: 目标魔方索引\n * duration: 过渡时长\n */\n goto(cur, duration = 400, isAutoPlay) {\n let nextCur = isAutoPlay ? cur - 0.5 : cur;\n this.$wrapper.style.webkitPerspectiveOrigin = `${nextCur * this.ITEM_WIDTH + this.$wrapper.clientWidth / 2}px center`;\n\n this.current = cur;\n this.endX = -cur * this.ITEM_WIDTH;\n if (!duration) {\n this.$wrapper.style.transitionDuration = null;\n\n this.$wrapper.style.transitionDuration = null;\n this.$cubes.forEach((cube, idx) => {\n cube.style.transition && (cube.style.transition = null);\n });\n this.setCube(this.endX, 0);\n this.setWrapper(this.endX, 0, true);\n } else {\n // 执行过渡\n this.setWrapper(this.endX, duration);\n this.$cubes.forEach((cube, idx) => {\n let _offset = idx * this.ITEM_WIDTH + this.endX;\n cube.style.transformOrigin = this.getTransformOrigin(_offset);\n if (cur - 1 == idx) {\n // 左边过渡\n cube.style.transition = `all ${duration}ms cubic-bezier(0.215, 0.610, 0.355, 1.000)`;\n cube.style.transform = `rotateY(-60deg) translate3d(0, ${this.getTranslate(cube.offsetLeft + this.endX)}px, 0)`;\n cube.style.opacity = 0;\n } else if (cur + 4 == idx) {\n // 右边过渡\n cube.style.transition = `all ${duration}ms cubic-bezier(0.215, 0.610, 0.355, 1.000)`;\n cube.style.transform = `rotateY(60deg) translate3d(0, ${this.getTranslate(cube.offsetLeft + this.endX)}px, 0)`;\n cube.style.opacity = 0;\n } else if (idx > cur - 1 && idx < cur + 4) {\n // 中间过渡\n if (isAutoPlay) {\n cube.style.transition = `transform ${duration}ms cubic-bezier(0.22, 0.01, 0.68, 1.00), opacity ${duration *\n 0.9}ms cubic-bezier(0.62, 0.02, 0.68, 1.00)`;\n } else {\n cube.style.transition = `all ${duration}ms cubic-bezier(0.390, 0.575, 0.565, 1.000)`;\n }\n cube.style.transform = `rotateY(0.1deg) translate3d(0, ${this.getTranslate(cube.offsetLeft + this.endX)}px, 0)`;\n cube.style.opacity = 1;\n } else {\n cube.style.transition = null;\n cube.style.transform = null;\n cube.style.opacity = null;\n cube.style.transformOrigin = null;\n }\n });\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\"></style>\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!./index.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!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=002ab09b&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.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:\"cube\"},[_c('div',{ref:\"container\",staticClass:\"adjust-position cube-container\"},[_c('div',{ref:\"wrapper\",staticClass:\"cube-wrapper\",on:{\"transitionend\":_vm.transitionEndHandler}},[_vm._l((_vm.clone),function(i){return _c('div',{key:'clone-prev-' + i,staticClass:\"cube-col\"},[_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_top[i + _vm.data_bottom.length - _vm.clone - 1]},on:{\"clickEvent\":_vm.clickEvent}}),_vm._v(\" \"),_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_bottom[i + _vm.data_bottom.length - _vm.clone - 1]},on:{\"clickEvent\":_vm.clickEvent}})],1)}),_vm._v(\" \"),_vm._l((_vm.data_bottom),function(item,i){return _c('div',{key:i,staticClass:\"cube-col cube-col--anime\"},[_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_top[i]},on:{\"clickEvent\":_vm.clickEvent}}),_vm._v(\" \"),_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_bottom[i]},on:{\"clickEvent\":_vm.clickEvent}})],1)}),_vm._v(\" \"),_vm._l((_vm.data_bottom.slice(0, _vm.clone)),function(item,i){return _c('div',{key:'clone-next-' + i,staticClass:\"cube-col\"},[_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_top[i]},on:{\"clickEvent\":_vm.clickEvent}}),_vm._v(\" \"),_c('CubeItem',{staticClass:\"cube-item-wrap\",attrs:{\"item\":_vm.data_bottom[i]},on:{\"clickEvent\":_vm.clickEvent}})],1)})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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!./magic.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!./magic.vue?vue&type=script&lang=js&\"","<template>\n <Cube :dataMagic=\"data\" :type=\"type\" :autoplay=\"autoplay\" v-if=\"data && data.length >= 8\" @clickItem=\"clickItem\" />\n</template>\n\n<script>\nimport Cube from './Cube';\n\nexport default {\n name: 'nut-magic',\n components: {\n Cube\n },\n props: {\n data: {\n type: [Object, Array],\n default: () => {\n return [];\n }\n },\n // dataSpecial: {\n // type: [Object, Array],\n // default: null\n // },\n type: {\n type: String,\n default: 'rank'\n },\n autoplay: {\n default: true\n }\n },\n computed: {},\n data() {\n return {};\n },\n watch: {\n data(newV, old) {\n // this.init();\n }\n },\n methods: {\n clickItem(item) {\n this.$emit('click', item);\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import { render, staticRenderFns } from \"./magic.vue?vue&type=template&id=601c4726&scoped=true&\"\nimport script from \"./magic.vue?vue&type=script&lang=js&\"\nexport * from \"./magic.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 \"601c4726\",\n null\n \n)\n\nexport default component.exports","import Magic from './magic.vue';\nimport Cube from './Cube/index.vue';\nimport CubeItem from './Cube/CubeItem.vue';\nimport './magic.scss';\n\nMagic.install = function(Vue) {\n Vue.component(Magic.name, Magic);\n Vue.component('Cube', Cube);\n Vue.component('CubeItem', CubeItem);\n};\n\nexport default Magic;\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui v2.3.4 - menu.css, 2e03fecba27c2ec4fc69, Thu Jul 15 2021 22:33:51 GMT+0800 (中国标准时间)
2
+ * @nutui/nutui v2.3.7 - menu.css, 78f455d4cba8a497b5f5, Wed Dec 22 2021 20:57:26 GMT+0800 (中国标准时间)
3
3
  * (c) 2017-2020 JDC
4
4
  * Released under the MIT License.
5
5
  */.nut-menu .nut-menu-mask{position:fixed;z-index:9998;top:0;right:0;left:0;bottom:0;background-color:rgba(0,0,0,.5)}.nut-menu .nut-menu-panel{display:block;width:100%;position:absolute;left:0;color:#2d2d2d;overflow:hidden;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;z-index:9998}.nut-menu .nut-menu-panel .menu-multiple-style1 ul,.nut-menu .nut-menu-panel .menu-multiple-style2 ul,.nut-menu .nut-menu-panel .menu-multiple-style3 ul,.nut-menu .nut-menu-panel .menu-simple ul{position:relative;padding:0;margin:0;min-height:200px;max-height:300px;list-style:none;overflow-y:auto}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li,.nut-menu .nut-menu-panel .menu-simple ul li{position:relative;width:100%;height:45px;line-height:45px;padding:0 0 0 10px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li.selected,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li.selected,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li.selected,.nut-menu .nut-menu-panel .menu-simple ul li.selected{color:#f0250f}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li:before,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li:before,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li:before,.nut-menu .nut-menu-panel .menu-simple ul li:before{content:" ";height:1px;position:absolute;left:0;right:0;bottom:0;z-index:1;pointer-events:none;background-color:#e5e5e5;-webkit-transform:scaleY(.5);-ms-transform:scaleY(.5);transform:scaleY(.5);-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li.col2,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li.col2,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li.col2,.nut-menu .nut-menu-panel .menu-simple ul li.col2{float:left;width:50%}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li.col2:nth-child(2n):after,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li.col2:nth-child(2n):after,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li.col2:nth-child(2n):after,.nut-menu .nut-menu-panel .menu-simple ul li.col2:nth-child(2n):after{content:" ";position:absolute;z-index:1;pointer-events:none;background-color:#e5e5e5;width:1px;left:0;top:13px;bottom:13px;-webkit-transform:scaleX(.5);-ms-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:0 50%;-ms-transform-origin:0 50%;transform-origin:0 50%}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li.col3,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li.col3,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li.col3,.nut-menu .nut-menu-panel .menu-simple ul li.col3{float:left;width:33.33%}.nut-menu .nut-menu-panel .menu-multiple-style1 ul li.col3:not(:nth-child(3n+1)):after,.nut-menu .nut-menu-panel .menu-multiple-style2 ul li.col3:not(:nth-child(3n+1)):after,.nut-menu .nut-menu-panel .menu-multiple-style3 ul li.col3:not(:nth-child(3n+1)):after,.nut-menu .nut-menu-panel .menu-simple ul li.col3:not(:nth-child(3n+1)):after{content:" ";position:absolute;z-index:1;pointer-events:none;background-color:#e5e5e5;width:1px;left:0;top:13px;bottom:13px;-webkit-transform:scaleX(.5);-ms-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:0 50%;-ms-transform-origin:0 50%;transform-origin:0 50%}.nut-menu .nut-menu-panel .menu-multiple-style1 .nut-buttongroup .nut-button,.nut-menu .nut-menu-panel .menu-multiple-style2 .nut-buttongroup .nut-button,.nut-menu .nut-menu-panel .menu-multiple-style3 .nut-buttongroup .nut-button,.nut-menu .nut-menu-panel .menu-simple .nut-buttongroup .nut-button{-webkit-appearance:none}.nut-menu .nut-menu-panel .menu-simple li.selected span{position:absolute;top:10px;right:10px}.nut-menu .nut-menu-panel .menu-multiple-style1 li .nut-checkbox{margin-right:10px;vertical-align:middle}.nut-menu .nut-menu-panel .menu-multiple-style1 li label{vertical-align:middle}.nut-menu .nut-menu-panel .menu-multiple-style2 ul li{padding:0 10px;margin-bottom:10px;text-align:center;-webkit-border-radius:4px;border-radius:4px}.nut-menu .nut-menu-panel .menu-multiple-style2 ul li:before{height:0!important}.nut-menu .nut-menu-panel .menu-multiple-style2 ul li.selected a{background-color:#fdf0f0;color:#f0250f}.nut-menu .nut-menu-panel .menu-multiple-style2 ul li a{display:inline-block;width:100%;height:100%;color:#2d2d2d;text-decoration:none;background-color:#f6f6f6}.nut-menu .nut-menu-panel .menu-multiple-style3 li label{padding-left:5px;border-left:3px solid transparent}.nut-menu .nut-menu-panel .menu-multiple-style3 li.selected label{border-left:3px solid #f0250f}