'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.pageScrollMixin = void 0; var utils_1 = require('../common/utils'); function onPageScroll(event) { var _a = utils_1.getCurrentPage().vanPageScroller, vanPageScroller = _a === void 0 ? [] : _a; vanPageScroller.forEach(function (scroller) { if (typeof scroller === 'function') { // @ts-ignore scroller(event); } }); } var pageScrollMixin = function (scroller) { return Behavior({ attached: function () { var page = utils_1.getCurrentPage(); if (Array.isArray(page.vanPageScroller)) { page.vanPageScroller.push(scroller.bind(this)); } else { page.vanPageScroller = typeof page.onPageScroll === 'function' ? [page.onPageScroll.bind(page), scroller.bind(this)] : [scroller.bind(this)]; } page.onPageScroll = onPageScroll; }, detached: function () { var _a; var page = utils_1.getCurrentPage(); if (!utils_1.isDef(page)) { page.vanPageScroller = ((_a = page.vanPageScroller) === null || _a === void 0 ? void 0 : _a.filter(function (item) { return item !== scroller; })) || []; } }, }); }; exports.pageScrollMixin = pageScrollMixin;