UNPKG

material-motion

Version:

Makes it easy to add rich, interactive motion to your application.

40 lines 1.53 kB
/** @license * Copyright 2016 - present The Material Motion Authors. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ export function withSlidingWindow(superclass) { return class extends superclass { /** * Emits the last values to be received in an array of the given `size`. * * Reuses the same array on each emit, so if you want to compare emissions, * make a copy of each as you receive it. */ _slidingWindow({ size = 2 } = {}) { return this._nextOperator({ operation({ emit }) { const result = []; return ({ upstream }) => { result.push(upstream); if (result.length > size) { result.shift(); } emit(result); }; } }); } }; } //# sourceMappingURL=_slidingWindow.js.map