diff --git a/packages/angular/common/src/index.ts b/packages/angular/common/src/index.ts index 9cf7dbad4a..3b43a61ac2 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/src/index.ts b/packages/angular/src/index.ts index be94942cbd..9320357dea 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -23,7 +23,6 @@ export { AlertController, LoadingController, PickerController, - AnimationController, GestureController, DomController, NavController, @@ -37,6 +36,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 0000000000..b5800b9a88 --- /dev/null +++ b/packages/angular/src/providers/animation-controller.ts @@ -0,0 +1,33 @@ +import { Injectable } from '@angular/core'; +import { createAnimation, getTimeGivenProgression } from '@ionic/core'; +import type { Animation } from '@ionic/core'; + +@Injectable({ + providedIn: 'root', +}) +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/index.ts b/packages/angular/standalone/src/index.ts index 071783ee07..aa01fdb58e 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,7 +15,6 @@ export { AlertController, LoadingController, PickerController, - AnimationController, GestureController, DomController, NavController, diff --git a/packages/angular/common/src/providers/animation-controller.ts b/packages/angular/standalone/src/providers/animation-controller.ts similarity index 94% rename from packages/angular/common/src/providers/animation-controller.ts rename to packages/angular/standalone/src/providers/animation-controller.ts index 647613ef53..75a6ba6200 100644 --- a/packages/angular/common/src/providers/animation-controller.ts +++ b/packages/angular/standalone/src/providers/animation-controller.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import type { Animation } from '@ionic/core/components'; +import type { Animation } from '@ionic/core'; import { createAnimation, getTimeGivenProgression } from '@ionic/core/components'; @Injectable({