-
Notifications
You must be signed in to change notification settings - Fork 0
/
B05. Right border.js
99 lines (88 loc) · 2.7 KB
/
B05. Right border.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
const paragraphStyle_LEFT_BORDER = {
namedStyleType: 'NORMAL_TEXT',
borderLeft: {
width: {
magnitude: 3,
unit: 'PT'
},
padding: {
magnitude: 6,
unit: 'PT'
},
dashStyle: 'SOLID',
color: {
color: {
rgbColor: hexToRGB(styles[ACTIVE_STYLE]['main_heading_font_color'])
}
}
}
};
function leftBorderParagraph() {
const ui = DocumentApp.getUi();
const requests = [];
try {
const doc = DocumentApp.getActiveDocument();
const documentId = doc.getId();
// Create namedRange for selected paragraph
const startEndIndex = getSelectionCreateNamedRange(doc, documentId, 'PARAGRAPH');
if (startEndIndex.status == 'error') {
ui.alert(startEndIndex.message);
return 0;
}
const startIndex = startEndIndex.startIndex;
const endIndex = startEndIndex.endIndex;
const rangeName = startEndIndex.rangeName;
const document = Docs.Documents.get(documentId);
const bodyElements = document.body.content;
for (let i in bodyElements) {
// If body element contains paragraph
if (bodyElements[i].paragraph) {
if (bodyElements[i].paragraph.elements) {
if (bodyElements[i].paragraph.elements[0]) {
if (bodyElements[i].paragraph.elements[0].startIndex == startIndex) {
requests.push({
updateParagraphStyle: {
paragraphStyle: paragraphStyle_LEFT_BORDER,
range: {
startIndex: startIndex,
endIndex: endIndex
},
fields: formFieldsString(paragraphStyle_LEFT_BORDER)
}
});
bodyElements[i].paragraph.elements.forEach(function (item) {
if (item.textRun) {
if (item.textRun.textStyle) {
requests.push({
updateTextStyle: {
textStyle: item.textRun.textStyle,
range: {
startIndex: item.startIndex,
endIndex: item.endIndex
},
fields: '*'
}
});
}
}
});
}
}
}
}
// End. If body element contains paragraph
}
requests.push({
deleteNamedRange: {
name: rangeName
}
});
Docs.Documents.batchUpdate({
requests: requests
}, documentId);
}
catch (error) {
ui.alert('Error in leftBorderParagraph: ' + error);
return 0;
}
}