UNPKG

material-motion

Version:

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

27 lines (26 loc) 1.34 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. */ import { Constructor, MotionMappable, ObservableWithMotionOperators } from '../types'; export declare type PluckPath<T> = keyof T; export declare type PluckArgs<T> = { path: PluckPath<T>; }; export interface MotionPluckable<T> { pluck<K extends keyof T, U extends T[K]>(kwargs: PluckArgs<T>): ObservableWithMotionOperators<U>; pluck<K extends keyof T, U extends T[K]>(path: PluckPath<T>): ObservableWithMotionOperators<U>; } export declare function withPluck<T, S extends Constructor<MotionMappable<T>>>(superclass: S): S & Constructor<MotionPluckable<T>>; export declare function createPlucker<K extends string>(path: K): <T extends Record<K, any>>(value: T) => T[K];