From 842a0b1a07af570b3aa822cfb04bb71abdc80b6a Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 29 Jan 2021 16:52:19 +0100 Subject: [PATCH] make animation/transition params optional (#5936) They are not needed for most of the functions and should be marked as optional accordingly to make TypeScript users happy. Fixes sveltejs/language-tools#785 --- CHANGELOG.md | 1 + src/runtime/animate/index.ts | 2 +- src/runtime/transition/index.ts | 12 ++++++------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 928f76bfc9..176ef0a1c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * Throw a parser error for `class:` directives with an empty class name ([#5858](https://github.com/sveltejs/svelte/issues/5858)) * Fix type inference for derived stores ([#5935](https://github.com/sveltejs/svelte/pull/5935)) +* Make parameters of built-in animations and transitions optional ([#5936](https://github.com/sveltejs/svelte/pull/5936)) ## 3.32.0 diff --git a/src/runtime/animate/index.ts b/src/runtime/animate/index.ts index 82ec0d5a5f..ecfd9b2923 100644 --- a/src/runtime/animate/index.ts +++ b/src/runtime/animate/index.ts @@ -16,7 +16,7 @@ interface FlipParams { easing?: (t: number) => number; } -export function flip(node: Element, animation: { from: DOMRect; to: DOMRect }, params: FlipParams): AnimationConfig { +export function flip(node: Element, animation: { from: DOMRect; to: DOMRect }, params: FlipParams = {}): AnimationConfig { const style = getComputedStyle(node); const transform = style.transform === 'none' ? '' : style.transform; const scaleX = animation.from.width / node.clientWidth; diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts index 246f3b14fb..650688b6e0 100644 --- a/src/runtime/transition/index.ts +++ b/src/runtime/transition/index.ts @@ -25,7 +25,7 @@ export function blur(node: Element, { easing = cubicInOut, amount = 5, opacity = 0 -}: BlurParams): TransitionConfig { +}: BlurParams = {}): TransitionConfig { const style = getComputedStyle(node); const target_opacity = +style.opacity; const f = style.filter === 'none' ? '' : style.filter; @@ -50,7 +50,7 @@ export function fade(node: Element, { delay = 0, duration = 400, easing = linear -}: FadeParams): TransitionConfig { +}: FadeParams = {}): TransitionConfig { const o = +getComputedStyle(node).opacity; return { @@ -77,7 +77,7 @@ export function fly(node: Element, { x = 0, y = 0, opacity = 0 -}: FlyParams): TransitionConfig { +}: FlyParams = {}): TransitionConfig { const style = getComputedStyle(node); const target_opacity = +style.opacity; const transform = style.transform === 'none' ? '' : style.transform; @@ -104,7 +104,7 @@ export function slide(node: Element, { delay = 0, duration = 400, easing = cubicOut -}: SlideParams): TransitionConfig { +}: SlideParams = {}): TransitionConfig { const style = getComputedStyle(node); const opacity = +style.opacity; const height = parseFloat(style.height); @@ -146,7 +146,7 @@ export function scale(node: Element, { easing = cubicOut, start = 0, opacity = 0 -}: ScaleParams): TransitionConfig { +}: ScaleParams = {}): TransitionConfig { const style = getComputedStyle(node); const target_opacity = +style.opacity; const transform = style.transform === 'none' ? '' : style.transform; @@ -177,7 +177,7 @@ export function draw(node: SVGElement & { getTotalLength(): number }, { speed, duration, easing = cubicInOut -}: DrawParams): TransitionConfig { +}: DrawParams = {}): TransitionConfig { const len = node.getTotalLength(); if (duration === undefined) {