Skip to content

Commit 26aa33d

Browse files
authored
Fix: Correctly set cell padding for zero values (#287)
1 parent d6f3a7b commit 26aa33d

File tree

2 files changed

+55
-2
lines changed

2 files changed

+55
-2
lines changed

src/cell.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,15 +326,19 @@ class RowSpanCell {
326326
mergeTableOptions() {}
327327
}
328328

329+
function firstDefined(...args) {
330+
return args.filter((v) => v !== undefined && v !== null).shift();
331+
}
332+
329333
// HELPER FUNCTIONS
330334
function setOption(objA, objB, nameB, targetObj) {
331335
let nameA = nameB.split('-');
332336
if (nameA.length > 1) {
333337
nameA[1] = nameA[1].charAt(0).toUpperCase() + nameA[1].substr(1);
334338
nameA = nameA.join('');
335-
targetObj[nameA] = objA[nameA] || objA[nameB] || objB[nameA] || objB[nameB];
339+
targetObj[nameA] = firstDefined(objA[nameA], objA[nameB], objB[nameA], objB[nameB]);
336340
} else {
337-
targetObj[nameB] = objA[nameB] || objB[nameB];
341+
targetObj[nameB] = firstDefined(objA[nameB], objB[nameB]);
338342
}
339343
}
340344

test/issues/124-test.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
const Table = require('../..');
2+
3+
test('cell padding of zero overrides table options', () => {
4+
let table = new Table({
5+
style: {
6+
'padding-left': 1,
7+
// 'padding-right': 1,
8+
border: [],
9+
header: [],
10+
},
11+
});
12+
13+
table.push([
14+
{
15+
content: 'a',
16+
style: {
17+
'padding-left': 5,
18+
},
19+
},
20+
{
21+
content: 'b',
22+
style: {
23+
'padding-left': 2,
24+
'padding-right': 0,
25+
},
26+
},
27+
{
28+
content: 'c',
29+
style: {
30+
'padding-left': 0,
31+
},
32+
},
33+
{
34+
content: 'd',
35+
style: {
36+
'padding-left': 0,
37+
'padding-right': 2,
38+
},
39+
},
40+
]);
41+
42+
const expected = [
43+
// prettier-disable
44+
'┌───────┬───┬──┬───┐',
45+
'│ a │ b│c │d │',
46+
'└───────┴───┴──┴───┘',
47+
].join('\n');
48+
expect(table.toString()).toEqual(expected);
49+
});

0 commit comments

Comments
 (0)