From 172bec2758051ff0fbd2b66e3dc73967fa5cff72 Mon Sep 17 00:00:00 2001 From: Sean Perkins Date: Mon, 6 Nov 2023 11:13:15 -0500 Subject: [PATCH 1/4] chore(angular): animation controller uses correct core instance --- .../src/providers/animation-controller.ts | 20 +++++++++++-------- packages/angular/src/index.ts | 3 +++ .../src/providers/animation-controller.ts | 13 ++++++++++++ packages/angular/standalone/src/index.ts | 3 +++ .../src/providers/animation-controller.ts | 13 ++++++++++++ 5 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 packages/angular/src/providers/animation-controller.ts create mode 100644 packages/angular/standalone/src/providers/animation-controller.ts diff --git a/packages/angular/common/src/providers/animation-controller.ts b/packages/angular/common/src/providers/animation-controller.ts index 647613ef53a..75043f11e99 100644 --- a/packages/angular/common/src/providers/animation-controller.ts +++ b/packages/angular/common/src/providers/animation-controller.ts @@ -1,16 +1,20 @@ -import { Injectable } from '@angular/core'; -import type { Animation } from '@ionic/core/components'; -import { createAnimation, getTimeGivenProgression } from '@ionic/core/components'; +import type { + Animation, + createAnimation as _createAnimation, + getTimeGivenProgression as _getTimeGivenProgression, +} from '@ionic/core/components'; -@Injectable({ - providedIn: 'root', -}) export class AnimationController { + constructor( + private createAnimation: typeof _createAnimation, + private getTimeGivenProgression: typeof _getTimeGivenProgression + ) {} + /** * Create a new animation */ create(animationId?: string): Animation { - return createAnimation(animationId); + return this.createAnimation(animationId); } /** @@ -28,6 +32,6 @@ export class AnimationController { * during a drag, to another easing when `progressEnd` is called) */ easingTime(p0: number[], p1: number[], p2: number[], p3: number[], progression: number): number[] { - return getTimeGivenProgression(p0, p1, p2, p3, progression); + return this.getTimeGivenProgression(p0, p1, p2, p3, progression); } } diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index be94942cbdb..988d1db1b3d 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -23,6 +23,8 @@ export { AlertController, LoadingController, PickerController, + PopoverController, + ToastController, AnimationController, GestureController, DomController, @@ -37,6 +39,7 @@ export { ViewDidEnter, ViewDidLeave, } from '@ionic/angular/common'; +export { AnimationController } from './providers/animation-controller'; export { ActionSheetController } from './providers/action-sheet-controller'; export { MenuController } from './providers/menu-controller'; export { ModalController } from './providers/modal-controller'; diff --git a/packages/angular/src/providers/animation-controller.ts b/packages/angular/src/providers/animation-controller.ts new file mode 100644 index 00000000000..a4198b0be72 --- /dev/null +++ b/packages/angular/src/providers/animation-controller.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; + +import { AnimationController as AnimationControllerBase } from '@ionic/angular/common'; +import { createAnimation, getTimeGivenProgression } from '@ionic/core'; + +@Injectable({ + providedIn: 'root', +}) +export class AnimationController extends AnimationControllerBase { + constructor() { + super(createAnimation, getTimeGivenProgression); + } +} diff --git a/packages/angular/standalone/src/index.ts b/packages/angular/standalone/src/index.ts index 071783ee078..f66a8057302 100644 --- a/packages/angular/standalone/src/index.ts +++ b/packages/angular/standalone/src/index.ts @@ -6,6 +6,7 @@ export { IonRouterLink, IonRouterLinkWithHref } from './navigation/router-link-d export { IonTabs } from './navigation/tabs'; export { provideIonicAngular } from './providers/ionic-angular'; export { ActionSheetController } from './providers/action-sheet-controller'; +export { AnimationController } from './providers/animation-controller'; export { MenuController } from './providers/menu-controller'; export { ModalController } from './providers/modal-controller'; export { PopoverController } from './providers/popover-controller'; @@ -14,6 +15,8 @@ export { AlertController, LoadingController, PickerController, + PopoverController, + ToastController, AnimationController, GestureController, DomController, diff --git a/packages/angular/standalone/src/providers/animation-controller.ts b/packages/angular/standalone/src/providers/animation-controller.ts new file mode 100644 index 00000000000..11639e6c38d --- /dev/null +++ b/packages/angular/standalone/src/providers/animation-controller.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; + +import { AnimationController as AnimationControllerBase } from '@ionic/angular/common'; +import { createAnimation, getTimeGivenProgression } from '@ionic/core/components'; + +@Injectable({ + providedIn: 'root', +}) +export class AnimationController extends AnimationControllerBase { + constructor() { + super(createAnimation, getTimeGivenProgression); + } +} From 859afda371b6783ad74fa61d5ec99b9706fde7b3 Mon Sep 17 00:00:00 2001 From: Sean Perkins Date: Mon, 6 Nov 2023 13:00:58 -0500 Subject: [PATCH 2/4] chore: lint --- packages/angular/src/providers/animation-controller.ts | 1 - .../angular/standalone/src/providers/animation-controller.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/angular/src/providers/animation-controller.ts b/packages/angular/src/providers/animation-controller.ts index a4198b0be72..2dd18451178 100644 --- a/packages/angular/src/providers/animation-controller.ts +++ b/packages/angular/src/providers/animation-controller.ts @@ -1,5 +1,4 @@ import { Injectable } from '@angular/core'; - import { AnimationController as AnimationControllerBase } from '@ionic/angular/common'; import { createAnimation, getTimeGivenProgression } from '@ionic/core'; diff --git a/packages/angular/standalone/src/providers/animation-controller.ts b/packages/angular/standalone/src/providers/animation-controller.ts index 11639e6c38d..919a63f3f28 100644 --- a/packages/angular/standalone/src/providers/animation-controller.ts +++ b/packages/angular/standalone/src/providers/animation-controller.ts @@ -1,5 +1,4 @@ import { Injectable } from '@angular/core'; - import { AnimationController as AnimationControllerBase } from '@ionic/angular/common'; import { createAnimation, getTimeGivenProgression } from '@ionic/core/components'; From 2d18148386954a69d8c0002c2d6658a13c386a9b Mon Sep 17 00:00:00 2001 From: Sean Perkins Date: Wed, 8 Nov 2023 12:27:15 -0500 Subject: [PATCH 3/4] chore: simplify approach based on team discussion yesterday --- packages/angular/common/src/index.ts | 1 - .../src/providers/animation-controller.ts | 37 ------------------- .../src/providers/animation-controller.ts | 29 +++++++++++++-- .../src/providers/animation-controller.ts | 29 +++++++++++++-- 4 files changed, 50 insertions(+), 46 deletions(-) delete mode 100644 packages/angular/common/src/providers/animation-controller.ts diff --git a/packages/angular/common/src/index.ts b/packages/angular/common/src/index.ts index 9cf7dbad4a9..3b43a61ac24 100644 --- a/packages/angular/common/src/index.ts +++ b/packages/angular/common/src/index.ts @@ -3,7 +3,6 @@ export { LoadingController } from './providers/loading-controller'; export { MenuController } from './providers/menu-controller'; export { PickerController } from './providers/picker-controller'; -export { AnimationController } from './providers/animation-controller'; export { GestureController } from './providers/gesture-controller'; export { DomController } from './providers/dom-controller'; export { NavController } from './providers/nav-controller'; diff --git a/packages/angular/common/src/providers/animation-controller.ts b/packages/angular/common/src/providers/animation-controller.ts deleted file mode 100644 index 75043f11e99..00000000000 --- a/packages/angular/common/src/providers/animation-controller.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { - Animation, - createAnimation as _createAnimation, - getTimeGivenProgression as _getTimeGivenProgression, -} from '@ionic/core/components'; - -export class AnimationController { - constructor( - private createAnimation: typeof _createAnimation, - private getTimeGivenProgression: typeof _getTimeGivenProgression - ) {} - - /** - * Create a new animation - */ - create(animationId?: string): Animation { - return this.createAnimation(animationId); - } - - /** - * EXPERIMENTAL - * - * Given a progression and a cubic bezier function, - * this utility returns the time value(s) at which the - * cubic bezier reaches the given time progression. - * - * If the cubic bezier never reaches the progression - * the result will be an empty array. - * - * This is most useful for switching between easing curves - * when doing a gesture animation (i.e. going from linear easing - * during a drag, to another easing when `progressEnd` is called) - */ - easingTime(p0: number[], p1: number[], p2: number[], p3: number[], progression: number): number[] { - return this.getTimeGivenProgression(p0, p1, p2, p3, progression); - } -} diff --git a/packages/angular/src/providers/animation-controller.ts b/packages/angular/src/providers/animation-controller.ts index 2dd18451178..b5800b9a880 100644 --- a/packages/angular/src/providers/animation-controller.ts +++ b/packages/angular/src/providers/animation-controller.ts @@ -1,12 +1,33 @@ import { Injectable } from '@angular/core'; -import { AnimationController as AnimationControllerBase } from '@ionic/angular/common'; import { createAnimation, getTimeGivenProgression } from '@ionic/core'; +import type { Animation } from '@ionic/core'; @Injectable({ providedIn: 'root', }) -export class AnimationController extends AnimationControllerBase { - constructor() { - super(createAnimation, getTimeGivenProgression); +export class AnimationController { + /** + * Create a new animation + */ + create(animationId?: string): Animation { + return createAnimation(animationId); + } + + /** + * EXPERIMENTAL + * + * Given a progression and a cubic bezier function, + * this utility returns the time value(s) at which the + * cubic bezier reaches the given time progression. + * + * If the cubic bezier never reaches the progression + * the result will be an empty array. + * + * This is most useful for switching between easing curves + * when doing a gesture animation (i.e. going from linear easing + * during a drag, to another easing when `progressEnd` is called) + */ + easingTime(p0: number[], p1: number[], p2: number[], p3: number[], progression: number): number[] { + return getTimeGivenProgression(p0, p1, p2, p3, progression); } } diff --git a/packages/angular/standalone/src/providers/animation-controller.ts b/packages/angular/standalone/src/providers/animation-controller.ts index 919a63f3f28..75a6ba6200d 100644 --- a/packages/angular/standalone/src/providers/animation-controller.ts +++ b/packages/angular/standalone/src/providers/animation-controller.ts @@ -1,12 +1,33 @@ import { Injectable } from '@angular/core'; -import { AnimationController as AnimationControllerBase } from '@ionic/angular/common'; +import type { Animation } from '@ionic/core'; import { createAnimation, getTimeGivenProgression } from '@ionic/core/components'; @Injectable({ providedIn: 'root', }) -export class AnimationController extends AnimationControllerBase { - constructor() { - super(createAnimation, getTimeGivenProgression); +export class AnimationController { + /** + * Create a new animation + */ + create(animationId?: string): Animation { + return createAnimation(animationId); + } + + /** + * EXPERIMENTAL + * + * Given a progression and a cubic bezier function, + * this utility returns the time value(s) at which the + * cubic bezier reaches the given time progression. + * + * If the cubic bezier never reaches the progression + * the result will be an empty array. + * + * This is most useful for switching between easing curves + * when doing a gesture animation (i.e. going from linear easing + * during a drag, to another easing when `progressEnd` is called) + */ + easingTime(p0: number[], p1: number[], p2: number[], p3: number[], progression: number): number[] { + return getTimeGivenProgression(p0, p1, p2, p3, progression); } } From 31ae72420b0a8f11bff309387f5b77378f287c29 Mon Sep 17 00:00:00 2001 From: Sean Perkins Date: Thu, 9 Nov 2023 19:30:36 -0500 Subject: [PATCH 4/4] chore: merge conflicts --- packages/angular/src/index.ts | 3 --- packages/angular/standalone/src/index.ts | 3 --- 2 files changed, 6 deletions(-) diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index 988d1db1b3d..9320357deaf 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -23,9 +23,6 @@ export { AlertController, LoadingController, PickerController, - PopoverController, - ToastController, - AnimationController, GestureController, DomController, NavController, diff --git a/packages/angular/standalone/src/index.ts b/packages/angular/standalone/src/index.ts index f66a8057302..aa01fdb58e7 100644 --- a/packages/angular/standalone/src/index.ts +++ b/packages/angular/standalone/src/index.ts @@ -15,9 +15,6 @@ export { AlertController, LoadingController, PickerController, - PopoverController, - ToastController, - AnimationController, GestureController, DomController, NavController,