24 lines
		
	
	
		
			787 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			787 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { cubicAt, cubicRootAt } from '../core/curve.js';
 | 
						|
import { trim } from '../core/util.js';
 | 
						|
var regexp = /cubic-bezier\(([0-9,\.e ]+)\)/;
 | 
						|
export function createCubicEasingFunc(cubicEasingStr) {
 | 
						|
    var cubic = cubicEasingStr && regexp.exec(cubicEasingStr);
 | 
						|
    if (cubic) {
 | 
						|
        var points = cubic[1].split(',');
 | 
						|
        var a_1 = +trim(points[0]);
 | 
						|
        var b_1 = +trim(points[1]);
 | 
						|
        var c_1 = +trim(points[2]);
 | 
						|
        var d_1 = +trim(points[3]);
 | 
						|
        if (isNaN(a_1 + b_1 + c_1 + d_1)) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        var roots_1 = [];
 | 
						|
        return function (p) {
 | 
						|
            return p <= 0
 | 
						|
                ? 0 : p >= 1
 | 
						|
                ? 1
 | 
						|
                : cubicRootAt(0, a_1, c_1, 1, p, roots_1) && cubicAt(0, b_1, d_1, 1, roots_1[0]);
 | 
						|
        };
 | 
						|
    }
 | 
						|
}
 |