UNPKG

overscroll

Version:
45 lines (35 loc) 1.72 kB
'use strict'; exports.__esModule = true; exports.handleInit = exports.handleScroll = exports.handleAfterScroll = exports.handleBeforeScroll = exports.handleDestroy = undefined; exports.handler = handler; var _object = require('object.pick'); var _object2 = _interopRequireDefault(_object); var _compose = require('./utils/compose'); var _compose2 = _interopRequireDefault(_compose); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var noop = function noop() {}; function handler(name) { return function (scope) { var mode = scope.mode; var wrap = function wrap(func) { return function () { func.call(scope.target, (0, _object2['default'])(scope.overscroll, ['scrollTop', 'scrollLeft', 'scrollHeight', 'scrollWidth', 'clientHeight', 'clientWidth'].concat(mode === 'scroll' ? [] : ['section', 'positions']))); }; }; scope.handleCache = scope.handleCache || {}; scope.handleCache[name] = noop; var initialHandler = scope[name] ? scope[name] : noop; scope[name] = function () { scope.handleCache[name](); wrap(initialHandler)(); }; return (0, _compose2['default'])(function (callback) { scope.handleCache[name] = scope.handleCache[name] !== noop ? (0, _compose2['default'])(callback, scope.handleCache[name]) : callback; }, wrap); }; } var handleDestroy = exports.handleDestroy = handler('onDestroy'); var handleBeforeScroll = exports.handleBeforeScroll = handler('onBeforeScroll'); var handleAfterScroll = exports.handleAfterScroll = handler('onAfterScroll'); var handleScroll = exports.handleScroll = handler('onScroll'); var handleInit = exports.handleInit = handler('onInit');