1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.gradient = void 0;
|
4 | var rgb2arr_1 = require("./rgb2arr");
|
5 | var arr2rgb_1 = require("./arr2rgb");
|
6 | var torgb_1 = require("./torgb");
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | function getValue(start, end, percent, index) {
|
16 | return start[index] + (end[index] - start[index]) * percent;
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | function calColor(points, percent) {
|
25 | var fixedPercent = isNaN(Number(percent)) || percent < 0 ? 0 : percent > 1 ? 1 : Number(percent);
|
26 | var steps = points.length - 1;
|
27 | var step = Math.floor(steps * fixedPercent);
|
28 | var left = steps * fixedPercent - step;
|
29 | var start = points[step];
|
30 | var end = step === steps ? start : points[step + 1];
|
31 | return (0, arr2rgb_1.arr2rgb)([getValue(start, end, left, 0), getValue(start, end, left, 1), getValue(start, end, left, 2)]);
|
32 | }
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | function gradient(colors) {
|
39 | var colorArray = typeof colors === 'string' ? colors.split('-') : colors;
|
40 | var points = colorArray.map(function (color) {
|
41 | return (0, rgb2arr_1.rgb2arr)(color.indexOf('#') === -1 ? (0, torgb_1.toRGB)(color) : color);
|
42 | });
|
43 |
|
44 | return function (percent) {
|
45 | return calColor(points, percent);
|
46 | };
|
47 | }
|
48 | exports.gradient = gradient;
|
49 |
|
\ | No newline at end of file |