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