|
16 | 16 | (function(scope, testing) {
|
17 | 17 |
|
18 | 18 | function numberToString(x) {
|
19 |
| - return x.toFixed(3).replace('.000', ''); |
| 19 | + return x.toFixed(3).replace(/0+$/, '').replace(/\.$/, ''); |
20 | 20 | }
|
21 | 21 |
|
22 | 22 | function clamp(min, max, x) {
|
|
53 | 53 | };
|
54 | 54 | }
|
55 | 55 |
|
| 56 | + function parseNumberList(string) { |
| 57 | + var items = string.trim().split(/\s*[\s,]\s*/); |
| 58 | + if (items.length === 0) { |
| 59 | + return; |
| 60 | + } |
| 61 | + var result = []; |
| 62 | + for (var i = 0; i < items.length; i++) { |
| 63 | + var number = parseNumber(items[i]); |
| 64 | + if (number === undefined) { |
| 65 | + return; |
| 66 | + } |
| 67 | + result.push(number); |
| 68 | + } |
| 69 | + return result; |
| 70 | + } |
| 71 | + |
| 72 | + function mergeNumberLists(left, right) { |
| 73 | + if (left.length != right.length) { |
| 74 | + return; |
| 75 | + } |
| 76 | + return [left, right, function(numberList) { |
| 77 | + return numberList.map(numberToString).join(' '); |
| 78 | + }]; |
| 79 | + } |
| 80 | + |
56 | 81 | function round(left, right) {
|
57 | 82 | return [left, right, Math.round];
|
58 | 83 | }
|
59 | 84 |
|
60 | 85 | scope.clamp = clamp;
|
| 86 | + scope.addPropertiesHandler(parseNumberList, mergeNumberLists, ['stroke-dasharray']); |
61 | 87 | scope.addPropertiesHandler(parseNumber, clampedMergeNumbers(0, Infinity), ['border-image-width', 'line-height']);
|
62 | 88 | scope.addPropertiesHandler(parseNumber, clampedMergeNumbers(0, 1), ['opacity', 'shape-image-threshold']);
|
63 | 89 | scope.addPropertiesHandler(parseNumber, mergeFlex, ['flex-grow', 'flex-shrink']);
|
64 | 90 | scope.addPropertiesHandler(parseNumber, mergePositiveIntegers, ['orphans', 'widows']);
|
65 | 91 | scope.addPropertiesHandler(parseNumber, round, ['z-index']);
|
66 | 92 |
|
67 | 93 | scope.parseNumber = parseNumber;
|
| 94 | + scope.parseNumberList = parseNumberList; |
68 | 95 | scope.mergeNumbers = mergeNumbers;
|
69 | 96 | scope.numberToString = numberToString;
|
70 | 97 |
|
|
0 commit comments