map-easing.mjs 949 B

1234567891011121314151617181920212223242526
  1. import { isBezierDefinition } from '../../../utils/is-bezier-definition.mjs';
  2. import { supportsLinearEasing } from '../../../utils/supports/linear-easing.mjs';
  3. import { generateLinearEasing } from '../utils/linear.mjs';
  4. import { cubicBezierAsString } from './cubic-bezier.mjs';
  5. import { supportedWaapiEasing } from './supported.mjs';
  6. function mapEasingToNativeEasing(easing, duration) {
  7. if (!easing) {
  8. return undefined;
  9. }
  10. else if (typeof easing === "function" && supportsLinearEasing()) {
  11. return generateLinearEasing(easing, duration);
  12. }
  13. else if (isBezierDefinition(easing)) {
  14. return cubicBezierAsString(easing);
  15. }
  16. else if (Array.isArray(easing)) {
  17. return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||
  18. supportedWaapiEasing.easeOut);
  19. }
  20. else {
  21. return supportedWaapiEasing[easing];
  22. }
  23. }
  24. export { mapEasingToNativeEasing };