From d7e4f4b72058cc5f03a5fef624b1a7890dbe3625 Mon Sep 17 00:00:00 2001 From: Glen Cheney Date: Mon, 18 Apr 2016 11:02:59 -0700 Subject: [PATCH] Switch to npm module for throttling. --- dist/shuffle.js | 87 ++++++++++++++++++--------------------------- dist/shuffle.min.js | 2 +- package.json | 1 + src/shuffle.es6.js | 16 +++------ src/throttle.js | 39 -------------------- 5 files changed, 40 insertions(+), 105 deletions(-) delete mode 100644 src/throttle.js diff --git a/dist/shuffle.js b/dist/shuffle.js index 2d4835f..7ded01e 100644 --- a/dist/shuffle.js +++ b/dist/shuffle.js @@ -72,9 +72,9 @@ return /******/ (function(modules) { // webpackBootstrap var _xtend2 = _interopRequireDefault(_xtend); - var _throttle = __webpack_require__(5); + var _throttleit = __webpack_require__(5); - var _throttle2 = _interopRequireDefault(_throttle); + var _throttleit2 = _interopRequireDefault(_throttleit); var _point = __webpack_require__(6); @@ -106,14 +106,6 @@ return /******/ (function(modules) { // webpackBootstrap return Array.prototype.slice.call(arrayLike); } - function each(obj, iterator, context) { - for (var i = 0, length = obj.length; i < length; i++) { - if (iterator.call(context, obj[i], i, obj) === {}) { - return; - } - } - } - function arrayMax(array) { return Math.max.apply(Math, array); } @@ -683,7 +675,7 @@ return /******/ (function(modules) { // webpackBootstrap var _this3 = this; var count = 0; - each(items, function (item) { + items.forEach(function (item) { var currPos = item.point; var currScale = item.scale; var itemSize = Shuffle.getSize(item.element, true); @@ -852,7 +844,7 @@ return /******/ (function(modules) { // webpackBootstrap var collection = arguments.length <= 0 || arguments[0] === undefined ? this._getConcealedItems() : arguments[0]; var count = 0; - each(collection, function (item) { + collection.forEach(function (item) { // Continuing would add a transitionend event listener to the element, but // that listener would not execute because the transform and opacity would // stay the same. @@ -1018,7 +1010,7 @@ return /******/ (function(modules) { // webpackBootstrap key: '_cancelMovement', value: function _cancelMovement() { // Remove the transition end event for each listener. - each(this._transitions, _onTransitionEnd.cancelTransitionEnd); + this._transitions.forEach(_onTransitionEnd.cancelTransitionEnd); // Reset the array. this._transitions.length = 0; @@ -1463,7 +1455,7 @@ return /******/ (function(modules) { // webpackBootstrap // By default, shuffle will throttle resize events. This can be changed or // removed. - throttle: _throttle2.default, + throttle: _throttleit2.default, // How often shuffle can be called on resize (in milliseconds). throttleTime: 300, @@ -1646,50 +1638,39 @@ return /******/ (function(modules) { // webpackBootstrap /* 5 */ /***/ function(module, exports) { - 'use strict'; + module.exports = throttle; - // Underscore's throttle method. - - Object.defineProperty(exports, "__esModule", { - value: true - }); + /** + * Returns a new function that, when invoked, invokes `func` at most once per `wait` milliseconds. + * + * @param {Function} func Function to wrap. + * @param {Number} wait Number of milliseconds that must elapse between `func` invocations. + * @return {Function} A new function that wraps the `func` function passed in. + */ - exports.default = function (func, wait, options) { - var _this; - var args; - var result; - var timeout = null; - var previous = 0; - if (!options) options = {}; - var later = function later() { - previous = options.leading === false ? 0 : Date.now(); - timeout = null; - result = func.apply(_this, args); - if (!timeout) _this = args = null; - }; + function throttle (func, wait) { + var ctx, args, rtn, timeoutID; // caching + var last = 0; - return function () { - var now = Date.now(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - _this = this; + return function throttled () { + ctx = this; args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - - previous = now; - result = func.apply(_this, args); - if (!timeout) _this = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - - return result; + var delta = new Date() - last; + if (!timeoutID) + if (delta >= wait) call(); + else timeoutID = setTimeout(call, wait - delta); + return rtn; }; - }; + + function call () { + timeoutID = 0; + last = +new Date(); + rtn = func.apply(ctx, args); + ctx = null; + args = null; + } + } + /***/ }, /* 6 */ diff --git a/dist/shuffle.min.js b/dist/shuffle.min.js index 89b4f8f..07e3a29 100644 --- a/dist/shuffle.min.js +++ b/dist/shuffle.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.shuffle=e():t.shuffle=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return t[n].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t){return Array.prototype.slice.call(t)}function r(t,e,i){for(var n=0,s=t.length;s>n;n++)if(e.call(i,t[n],n,t)==={})return}function l(t){return Math.max.apply(Math,t)}function a(t){return Math.min.apply(Math,t)}function u(t,e){return 2===arguments.length?u(t)(e):function(e){return t.indexOf(e)>-1}}var h=function(){function t(t,e){for(var i=0;i0?t.getSize(this.items[0].element,!0).width:e,0===n&&(n=e),n+i}},{key:"_getGutterSize",value:function(t){var e;return e="function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.useSizer?(0,w["default"])(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var e=arguments.length<=0||void 0===arguments[0]?t.getSize(this.element).width:arguments[0],i=this._getGutterSize(e),n=this._getColumnSize(e,i),s=(e+i)/n;Math.abs(Math.round(s)-s)l;l++)this.positions[n+l]=o;return s}},{key:"_getColumnSpan",value:function(t,e,i){var n=t/e;return Math.abs(Math.round(n)-n)s;s++)n[s]=l(this.positions.slice(s,s+t));return n}},{key:"_getShortColumn",value:function(t,e){for(var i=a(t),n=0,s=t.length;s>n;n++)if(t[n]>=i-e&&t[n]<=i+e)return n;return 0}},{key:"_shrink",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this._getConcealedItems():arguments[0],i=0;r(e,function(e){e.scale!==S["default"].Scale.FILTERED&&(e.scale=S["default"].Scale.FILTERED,t._queue.push({item:e,opacity:0,transitionDelay:t._getStaggerAmount(i),callback:function(){e.element.style.visibility="hidden"}}),i++)})}},{key:"_handleResize",value:function(){if(this.isEnabled&&!this.isDestroyed){var e=t.getSize(this.element).width;e!==this.containerWidth&&this.update()}}},{key:"_getStylesForTransition",value:function(t){var e=t.item,i={opacity:t.opacity,visibility:t.visibility,transitionDelay:(t.transitionDelay||0)+"ms"},n=e.point.x,s=e.point.y;return this.options.useTransforms?i.transform="translate("+n+"px, "+s+"px) scale("+e.scale+")":(i.left=n+"px",i.top=s+"px"),i}},{key:"_whenTransitionDone",value:function(t,e){var i=this;return new Promise(function(n){var s=(0,M.onTransitionEnd)(t,function(t){t.currentTarget.style.transitionDelay="",e&&e(),n()});i._transitions.push(s)})}},{key:"_transition",value:function(t){return t.item.applyCss(this._getStylesForTransition(t)),this._whenTransitionDone(t.item.element,t.callback)}},{key:"_processQueue",value:function(){var t=this;this.isTransitioning&&this._cancelMovement();var e=[],i=[];this._queue.forEach(function(n){t.isInitialized&&0!==t.options.speed?i.push(n):e.push(n)}),this._styleImmediately(e),i.length>0&&this.options.speed>0?this._startTransitions(i):setTimeout(this._dispatchLayout.bind(this),0),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0;var i=t.map(function(t){return e._transition(t)});Promise.all(i).then(this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){r(this._transitions,M.cancelTransitionEnd),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(e){var i=this;if(e.length){var n=e.map(function(t){return t.item.element});t._skipTransitions(n,function(){e.forEach(function(t){t.item.applyCss(i._getStylesForTransition(t)),t.callback&&t.callback()})})}}},{key:"_movementFinished",value:function(){this.isTransitioning=!1,this._dispatchLayout()}},{key:"_dispatchLayout",value:function(){this._dispatch(t.EventType.LAYOUT)}},{key:"filter",value:function(e,i){this.isEnabled&&((!e||e&&0===e.length)&&(e=t.ALL_ITEMS),this._filter(e),this._shrink(),this._updateItemCount(),this.sort(i))}},{key:"sort",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.lastSort:arguments[0];if(this.isEnabled){this._resetCols();var e=this._getFilteredItems();e=(0,I["default"])(e,t),this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(t){this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){t=(0,m["default"])(t).map(function(t){return new S["default"](t)}),this._initItems(t),this._setTransitions(t),this.items=this.items.concat(t),this._updateItemsOrder(),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(t){this.isEnabled=!0,t!==!1&&this.update()}},{key:"remove",value:function(e){var i=this;e=(0,m["default"])(e);var n=e.map(function(t){return i.getItemByElement(t)}).filter(function(t){return!!t});if(e.length){var s=function o(){i.element.removeEventListener(t.EventType.LAYOUT,o),i._disposeItems(n),e.forEach(function(t){t.parentNode.removeChild(t)}),i.items=i.items.filter(function(t){return!u(n,t)}),i._updateItemCount(),i._dispatch(t.EventType.REMOVED,{collection:e}),e=null,n=null};this._toggleFilterClasses({filtered:[],concealed:n}),this._shrink(n),this.sort(),this.element.addEventListener(t.EventType.LAYOUT,s)}}},{key:"getItemByElement",value:function(t){for(var e=this.items.length-1;e>=0;e--)if(this.items[e].element===t)return this.items[e];return null}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(),this.items=null,this.options.sizer=null,this.element=null,this._transitions=null,this.isDestroyed=!0}}],[{key:"getSize",value:function(t,e){var i=window.getComputedStyle(t,null),n=(0,w["default"])(t,"width",i),s=(0,w["default"])(t,"height",i);if(e){var o=(0,w["default"])(t,"marginLeft",i),r=(0,w["default"])(t,"marginRight",i),l=(0,w["default"])(t,"marginTop",i),a=(0,w["default"])(t,"marginBottom",i);n+=o+r,s+=l+a}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i="0ms",n=t.map(function(t){var e=t.style,n=e.transitionDuration,s=e.transitionDelay;return e.transitionDuration=i,e.transitionDelay=i,{duration:n,delay:s}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=n[e].duration,t.style.transitionDelay=n[e].delay})}}]),t}();F.ALL_ITEMS="all",F.FILTER_ATTRIBUTE_KEY="groups",F.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},F.ClassName=k["default"],F.options={group:F.ALL_ITEMS,speed:250,easing:"ease",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimeter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:_["default"],throttleTime:300,staggerAmount:15,staggerAmountMax:250,useTransforms:!0},F.Point=E["default"],F.ShuffleItem=S["default"],F.sorter=I["default"],t.exports=F},function(t,e){try{new window.CustomEvent("test")}catch(i){var n=function(t,e){var i;return e=e||{bubbles:!1,cancelable:!1,detail:void 0},i=document.createEvent("CustomEvent"),i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i};n.prototype=window.Event.prototype,window.CustomEvent=n}},function(t,e){"use strict";function i(t,e){if(s)return s.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n=h||h>e?(r&&(clearTimeout(r),r=null),l=u,o=t.apply(n,s),r||(n=s=null)):r||i.trailing===!1||(r=setTimeout(a,h)),o}}},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var s=i(7),o=n(s),r=function(t,e){this.x=(0,o["default"])(t),this.y=(0,o["default"])(e)};r.equals=function(t,e){return t.x===e.x&&t.y===e.y},e["default"]=r},function(t,e){"use strict";function i(t){return parseFloat(t)||0}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;in||"sortFirst"===n||"sortLast"===s?-1:n>s||"sortLast"===n||"sortFirst"===s?1:0}),o?n:(i.reverse&&t.reverse(),t)):[]}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o;var r=i(4),l=n(r),a={reverse:!1,by:null,randomize:!1,key:"element"}},function(t,e){"use strict";function i(){return r+l++}function n(t,e){var n=i(),l=function(t){t.currentTarget===t.target&&(s(n),e(t))};return t.addEventListener(r,l),o[n]={element:t,listener:l},n}function s(t){return o[t]?(o[t].element.removeEventListener(r,o[t].listener),o[t]=null,!0):!1}Object.defineProperty(e,"__esModule",{value:!0}),e.onTransitionEnd=n,e.cancelTransitionEnd=s;var o={},r="transitionend",l=0}])}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.shuffle=e():t.shuffle=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return t[n].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t){return Array.prototype.slice.call(t)}function r(t){return Math.max.apply(Math,t)}function a(t){return Math.min.apply(Math,t)}function l(t,e){return 2===arguments.length?l(t)(e):function(e){return t.indexOf(e)>-1}}var u=function(){function t(t,e){for(var i=0;i0?t.getSize(this.items[0].element,!0).width:e,0===n&&(n=e),n+i}},{key:"_getGutterSize",value:function(t){var e;return e="function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.useSizer?(0,L["default"])(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var e=arguments.length<=0||void 0===arguments[0]?t.getSize(this.element).width:arguments[0],i=this._getGutterSize(e),n=this._getColumnSize(e,i),s=(e+i)/n;Math.abs(Math.round(s)-s)a;a++)this.positions[n+a]=o;return s}},{key:"_getColumnSpan",value:function(t,e,i){var n=t/e;return Math.abs(Math.round(n)-n)s;s++)n[s]=r(this.positions.slice(s,s+t));return n}},{key:"_getShortColumn",value:function(t,e){for(var i=a(t),n=0,s=t.length;s>n;n++)if(t[n]>=i-e&&t[n]<=i+e)return n;return 0}},{key:"_shrink",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this._getConcealedItems():arguments[0],i=0;e.forEach(function(e){e.scale!==b["default"].Scale.FILTERED&&(e.scale=b["default"].Scale.FILTERED,t._queue.push({item:e,opacity:0,transitionDelay:t._getStaggerAmount(i),callback:function(){e.element.style.visibility="hidden"}}),i++)})}},{key:"_handleResize",value:function(){if(this.isEnabled&&!this.isDestroyed){var e=t.getSize(this.element).width;e!==this.containerWidth&&this.update()}}},{key:"_getStylesForTransition",value:function(t){var e=t.item,i={opacity:t.opacity,visibility:t.visibility,transitionDelay:(t.transitionDelay||0)+"ms"},n=e.point.x,s=e.point.y;return this.options.useTransforms?i.transform="translate("+n+"px, "+s+"px) scale("+e.scale+")":(i.left=n+"px",i.top=s+"px"),i}},{key:"_whenTransitionDone",value:function(t,e){var i=this;return new Promise(function(n){var s=(0,I.onTransitionEnd)(t,function(t){t.currentTarget.style.transitionDelay="",e&&e(),n()});i._transitions.push(s)})}},{key:"_transition",value:function(t){return t.item.applyCss(this._getStylesForTransition(t)),this._whenTransitionDone(t.item.element,t.callback)}},{key:"_processQueue",value:function(){var t=this;this.isTransitioning&&this._cancelMovement();var e=[],i=[];this._queue.forEach(function(n){t.isInitialized&&0!==t.options.speed?i.push(n):e.push(n)}),this._styleImmediately(e),i.length>0&&this.options.speed>0?this._startTransitions(i):setTimeout(this._dispatchLayout.bind(this),0),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0;var i=t.map(function(t){return e._transition(t)});Promise.all(i).then(this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(I.cancelTransitionEnd),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(e){var i=this;if(e.length){var n=e.map(function(t){return t.item.element});t._skipTransitions(n,function(){e.forEach(function(t){t.item.applyCss(i._getStylesForTransition(t)),t.callback&&t.callback()})})}}},{key:"_movementFinished",value:function(){this.isTransitioning=!1,this._dispatchLayout()}},{key:"_dispatchLayout",value:function(){this._dispatch(t.EventType.LAYOUT)}},{key:"filter",value:function(e,i){this.isEnabled&&((!e||e&&0===e.length)&&(e=t.ALL_ITEMS),this._filter(e),this._shrink(),this._updateItemCount(),this.sort(i))}},{key:"sort",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.lastSort:arguments[0];if(this.isEnabled){this._resetCols();var e=this._getFilteredItems();e=(0,C["default"])(e,t),this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(t){this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){t=(0,d["default"])(t).map(function(t){return new b["default"](t)}),this._initItems(t),this._setTransitions(t),this.items=this.items.concat(t),this._updateItemsOrder(),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(t){this.isEnabled=!0,t!==!1&&this.update()}},{key:"remove",value:function(e){var i=this;e=(0,d["default"])(e);var n=e.map(function(t){return i.getItemByElement(t)}).filter(function(t){return!!t});if(e.length){var s=function o(){i.element.removeEventListener(t.EventType.LAYOUT,o),i._disposeItems(n),e.forEach(function(t){t.parentNode.removeChild(t)}),i.items=i.items.filter(function(t){return!l(n,t)}),i._updateItemCount(),i._dispatch(t.EventType.REMOVED,{collection:e}),e=null,n=null};this._toggleFilterClasses({filtered:[],concealed:n}),this._shrink(n),this.sort(),this.element.addEventListener(t.EventType.LAYOUT,s)}}},{key:"getItemByElement",value:function(t){for(var e=this.items.length-1;e>=0;e--)if(this.items[e].element===t)return this.items[e];return null}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(),this.items=null,this.options.sizer=null,this.element=null,this._transitions=null,this.isDestroyed=!0}}],[{key:"getSize",value:function(t,e){var i=window.getComputedStyle(t,null),n=(0,L["default"])(t,"width",i),s=(0,L["default"])(t,"height",i);if(e){var o=(0,L["default"])(t,"marginLeft",i),r=(0,L["default"])(t,"marginRight",i),a=(0,L["default"])(t,"marginTop",i),l=(0,L["default"])(t,"marginBottom",i);n+=o+r,s+=a+l}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i="0ms",n=t.map(function(t){var e=t.style,n=e.transitionDuration,s=e.transitionDelay;return e.transitionDuration=i,e.transitionDelay=i,{duration:n,delay:s}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=n[e].duration,t.style.transitionDelay=n[e].delay})}}]),t}();z.ALL_ITEMS="all",z.FILTER_ATTRIBUTE_KEY="groups",z.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},z.ClassName=k["default"],z.options={group:z.ALL_ITEMS,speed:250,easing:"ease",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimeter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:y["default"],throttleTime:300,staggerAmount:15,staggerAmountMax:250,useTransforms:!0},z.Point=g["default"],z.ShuffleItem=b["default"],z.sorter=C["default"],t.exports=z},function(t,e){try{new window.CustomEvent("test")}catch(i){var n=function(t,e){var i;return e=e||{bubbles:!1,cancelable:!1,detail:void 0},i=document.createEvent("CustomEvent"),i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i};n.prototype=window.Event.prototype,window.CustomEvent=n}},function(t,e){"use strict";function i(t,e){if(s)return s.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n=e?i():r=setTimeout(i,e-t)),o}}t.exports=i},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var s=i(7),o=n(s),r=function(t,e){this.x=(0,o["default"])(t),this.y=(0,o["default"])(e)};r.equals=function(t,e){return t.x===e.x&&t.y===e.y},e["default"]=r},function(t,e){"use strict";function i(t){return parseFloat(t)||0}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;in||"sortFirst"===n||"sortLast"===s?-1:n>s||"sortLast"===n||"sortFirst"===s?1:0}),o?n:(i.reverse&&t.reverse(),t)):[]}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o;var r=i(4),a=n(r),l={reverse:!1,by:null,randomize:!1,key:"element"}},function(t,e){"use strict";function i(){return r+a++}function n(t,e){var n=i(),a=function(t){t.currentTarget===t.target&&(s(n),e(t))};return t.addEventListener(r,a),o[n]={element:t,listener:a},n}function s(t){return o[t]?(o[t].element.removeEventListener(r,o[t].listener),o[t]=null,!0):!1}Object.defineProperty(e,"__esModule",{value:!0}),e.onTransitionEnd=n,e.cancelTransitionEnd=s;var o={},r="transitionend",a=0}])}); //# sourceMappingURL=shuffle.min.js.map \ No newline at end of file diff --git a/package.json b/package.json index db0372d..156e198 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "array-uniq": "^1.0.2", "custom-event-polyfill": "^0.2.2", "matches-selector": "^1.0.0", + "throttleit": "^1.0.0", "xtend": "^4.0.1" }, "devDependencies": { diff --git a/src/shuffle.es6.js b/src/shuffle.es6.js index 24431d0..7e1f83e 100644 --- a/src/shuffle.es6.js +++ b/src/shuffle.es6.js @@ -4,7 +4,7 @@ import 'custom-event-polyfill'; import matches from 'matches-selector'; import arrayUnique from 'array-uniq'; import xtend from 'xtend'; -import throttle from './throttle'; +import throttle from 'throttleit'; import Point from './point'; import ShuffleItem from './shuffle-item'; import Classes from './classes'; @@ -16,14 +16,6 @@ function toArray(arrayLike) { return Array.prototype.slice.call(arrayLike); } -function each(obj, iterator, context) { - for (var i = 0, length = obj.length; i < length; i++) { - if (iterator.call(context, obj[i], i, obj) === {}) { - return; - } - } -} - function arrayMax(array) { return Math.max.apply(Math, array); } @@ -500,7 +492,7 @@ class Shuffle { */ _layout(items) { let count = 0; - each(items, (item) => { + items.forEach((item) => { var currPos = item.point; var currScale = item.scale; var itemSize = Shuffle.getSize(item.element, true); @@ -652,7 +644,7 @@ class Shuffle { */ _shrink(collection = this._getConcealedItems()) { let count = 0; - each(collection, (item) => { + collection.forEach((item) => { // Continuing would add a transitionend event listener to the element, but // that listener would not execute because the transform and opacity would // stay the same. @@ -795,7 +787,7 @@ class Shuffle { _cancelMovement() { // Remove the transition end event for each listener. - each(this._transitions, cancelTransitionEnd); + this._transitions.forEach(cancelTransitionEnd); // Reset the array. this._transitions.length = 0; diff --git a/src/throttle.js b/src/throttle.js deleted file mode 100644 index 91e8326..0000000 --- a/src/throttle.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -// Underscore's throttle method. -export default function(func, wait, options) { - var _this; - var args; - var result; - var timeout = null; - var previous = 0; - if (!options) options = {}; - var later = function () { - previous = options.leading === false ? 0 : Date.now(); - timeout = null; - result = func.apply(_this, args); - if (!timeout) _this = args = null; - }; - - return function () { - var now = Date.now(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - _this = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - - previous = now; - result = func.apply(_this, args); - if (!timeout) _this = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - - return result; - }; -}