podman-desktop/packages/renderer/src/lib/ui/animations.ts
Florent Benoit 4a89ece59f chore: add missing copryright headers in files
related to https://github.com/containers/podman-desktop/issues/6372
Signed-off-by: Florent Benoit <fbenoit@redhat.com>
2024-03-15 11:53:23 +01:00

42 lines
1.5 KiB
TypeScript

/**********************************************************************
* Copyright (C) 2023-2024 Red Hat, Inc.
*
* 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.
*
* SPDX-License-Identifier: Apache-2.0
***********************************************************************/
import { cubicOut } from 'svelte/easing';
export function fadeSlide(
node: any,
{ delay = 0, duration = 400, easing = cubicOut },
): { delay: number; duration: number; easing: (t: number) => number; css: (t: number) => string } {
const style = getComputedStyle(node);
const opacity = +style.opacity;
const height = parseFloat(style.height);
const paddingTop = parseFloat(style.paddingTop);
const paddingBottom = parseFloat(style.paddingBottom);
return {
delay,
duration,
easing,
css: (t: number) =>
`overflow: hidden;` +
`opacity: ${Math.min(t, 1) * opacity};` +
`height: ${t * height}px;` +
`padding-top: ${t * paddingTop}px;` +
`padding-bottom: ${t * paddingBottom}px;`,
};
}