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]);
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |