1// Code generated by templ - DO NOT EDIT.
2
3// templ: version: v0.3.1020
4// SPDX-License-Identifier: AGPL-3.0-or-later
5
6package web
7
8//lint:file-ignore SA4006 This context is only used if a nested component is present.
9
10import "github.com/a-h/templ"
11import templruntime "github.com/a-h/templ/runtime"
12
13// Commit is a commit: the message and facts, the diff tools, the diff.
14func Commit(l Layout, p CommitPage) templ.Component {
15 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
16 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
17 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
18 return templ_7745c5c3_CtxErr
19 }
20 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
21 if !templ_7745c5c3_IsBuffer {
22 defer func() {
23 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
24 if templ_7745c5c3_Err == nil {
25 templ_7745c5c3_Err = templ_7745c5c3_BufErr
26 }
27 }()
28 }
29 ctx = templ.InitializeContext(ctx)
30 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
31 if templ_7745c5c3_Var1 == nil {
32 templ_7745c5c3_Var1 = templ.NopComponent
33 }
34 ctx = templ.ClearChildren(ctx)
35 templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
36 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
37 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
38 if !templ_7745c5c3_IsBuffer {
39 defer func() {
40 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
41 if templ_7745c5c3_Err == nil {
42 templ_7745c5c3_Err = templ_7745c5c3_BufErr
43 }
44 }()
45 }
46 ctx = templ.InitializeContext(ctx)
47 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<header class=\"show\"><h1>")
48 if templ_7745c5c3_Err != nil {
49 return templ_7745c5c3_Err
50 }
51 var templ_7745c5c3_Var3 string
52 templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(p.Subject)
53 if templ_7745c5c3_Err != nil {
54 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 9, Col: 18}
55 }
56 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
57 if templ_7745c5c3_Err != nil {
58 return templ_7745c5c3_Err
59 }
60 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</h1>")
61 if templ_7745c5c3_Err != nil {
62 return templ_7745c5c3_Err
63 }
64 if p.Body != "" {
65 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "<pre class=\"msg\">")
66 if templ_7745c5c3_Err != nil {
67 return templ_7745c5c3_Err
68 }
69 var templ_7745c5c3_Var4 string
70 templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(p.Body)
71 if templ_7745c5c3_Err != nil {
72 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 11, Col: 29}
73 }
74 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
75 if templ_7745c5c3_Err != nil {
76 return templ_7745c5c3_Err
77 }
78 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</pre>")
79 if templ_7745c5c3_Err != nil {
80 return templ_7745c5c3_Err
81 }
82 }
83 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<dl class=\"kv show-kv\"><dt>commit</dt><dd>")
84 if templ_7745c5c3_Err != nil {
85 return templ_7745c5c3_Err
86 }
87 var templ_7745c5c3_Var5 string
88 templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(p.SHA)
89 if templ_7745c5c3_Err != nil {
90 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 15, Col: 15}
91 }
92 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
93 if templ_7745c5c3_Err != nil {
94 return templ_7745c5c3_Err
95 }
96 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</dd><dt>author</dt><dd>")
97 if templ_7745c5c3_Err != nil {
98 return templ_7745c5c3_Err
99 }
100 templ_7745c5c3_Err = personView(p.Author).Render(ctx, templ_7745c5c3_Buffer)
101 if templ_7745c5c3_Err != nil {
102 return templ_7745c5c3_Err
103 }
104 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</dd>")
105 if templ_7745c5c3_Err != nil {
106 return templ_7745c5c3_Err
107 }
108 if p.Committer != nil {
109 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<dt>committer</dt><dd>")
110 if templ_7745c5c3_Err != nil {
111 return templ_7745c5c3_Err
112 }
113 templ_7745c5c3_Err = personView(*p.Committer).Render(ctx, templ_7745c5c3_Buffer)
114 if templ_7745c5c3_Err != nil {
115 return templ_7745c5c3_Err
116 }
117 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</dd>")
118 if templ_7745c5c3_Err != nil {
119 return templ_7745c5c3_Err
120 }
121 }
122 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "<dt>")
123 if templ_7745c5c3_Err != nil {
124 return templ_7745c5c3_Err
125 }
126 if p.Merge {
127 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "merge of")
128 if templ_7745c5c3_Err != nil {
129 return templ_7745c5c3_Err
130 }
131 } else {
132 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "parent")
133 if templ_7745c5c3_Err != nil {
134 return templ_7745c5c3_Err
135 }
136 }
137 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "</dt><dd>")
138 if templ_7745c5c3_Err != nil {
139 return templ_7745c5c3_Err
140 }
141 if p.Root {
142 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "none (root commit) ")
143 if templ_7745c5c3_Err != nil {
144 return templ_7745c5c3_Err
145 }
146 }
147 for i, par := range p.Parents {
148 if i > 0 {
149 var templ_7745c5c3_Var6 string
150 templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(" + ")
151 if templ_7745c5c3_Err != nil {
152 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 35, Col: 14}
153 }
154 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
155 if templ_7745c5c3_Err != nil {
156 return templ_7745c5c3_Err
157 }
158 }
159 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, " <a href=\"")
160 if templ_7745c5c3_Err != nil {
161 return templ_7745c5c3_Err
162 }
163 var templ_7745c5c3_Var7 templ.SafeURL
164 templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(par.Href))
165 if templ_7745c5c3_Err != nil {
166 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 37, Col: 39}
167 }
168 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
169 if templ_7745c5c3_Err != nil {
170 return templ_7745c5c3_Err
171 }
172 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "\">")
173 if templ_7745c5c3_Err != nil {
174 return templ_7745c5c3_Err
175 }
176 var templ_7745c5c3_Var8 string
177 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(par.Label)
178 if templ_7745c5c3_Err != nil {
179 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 37, Col: 53}
180 }
181 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
182 if templ_7745c5c3_Err != nil {
183 return templ_7745c5c3_Err
184 }
185 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</a> ")
186 if templ_7745c5c3_Err != nil {
187 return templ_7745c5c3_Err
188 }
189 }
190 if p.Merge {
191 var templ_7745c5c3_Var9 string
192 templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(" · diff against the first parent")
193 if templ_7745c5c3_Err != nil {
194 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 40, Col: 43}
195 }
196 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
197 if templ_7745c5c3_Err != nil {
198 return templ_7745c5c3_Err
199 }
200 }
201 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</dd>")
202 if templ_7745c5c3_Err != nil {
203 return templ_7745c5c3_Err
204 }
205 if len(p.Refs) > 0 {
206 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<dt>refs</dt><dd>")
207 if templ_7745c5c3_Err != nil {
208 return templ_7745c5c3_Err
209 }
210 for _, r := range p.Refs {
211 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "[")
212 if templ_7745c5c3_Err != nil {
213 return templ_7745c5c3_Err
214 }
215 var templ_7745c5c3_Var10 string
216 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(r)
217 if templ_7745c5c3_Err != nil {
218 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 47, Col: 11}
219 }
220 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
221 if templ_7745c5c3_Err != nil {
222 return templ_7745c5c3_Err
223 }
224 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "]")
225 if templ_7745c5c3_Err != nil {
226 return templ_7745c5c3_Err
227 }
228 var templ_7745c5c3_Var11 string
229 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
230 if templ_7745c5c3_Err != nil {
231 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 47, Col: 19}
232 }
233 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
234 if templ_7745c5c3_Err != nil {
235 return templ_7745c5c3_Err
236 }
237 }
238 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</dd>")
239 if templ_7745c5c3_Err != nil {
240 return templ_7745c5c3_Err
241 }
242 }
243 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</dl></header><div class=\"diff-tools\" role=\"toolbar\" aria-label=\"Diff view\"><span class=\"dim\">")
244 if templ_7745c5c3_Err != nil {
245 return templ_7745c5c3_Err
246 }
247 var templ_7745c5c3_Var12 string
248 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
249 if templ_7745c5c3_Err != nil {
250 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 54, Col: 56}
251 }
252 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
253 if templ_7745c5c3_Err != nil {
254 return templ_7745c5c3_Err
255 }
256 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, " · <span class=\"plus\">+")
257 if templ_7745c5c3_Err != nil {
258 return templ_7745c5c3_Err
259 }
260 var templ_7745c5c3_Var13 string
261 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
262 if templ_7745c5c3_Err != nil {
263 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 54, Col: 96}
264 }
265 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
266 if templ_7745c5c3_Err != nil {
267 return templ_7745c5c3_Err
268 }
269 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</span> <span class=\"minus\">-")
270 if templ_7745c5c3_Err != nil {
271 return templ_7745c5c3_Err
272 }
273 var templ_7745c5c3_Var14 string
274 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
275 if templ_7745c5c3_Err != nil {
276 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 54, Col: 141}
277 }
278 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
279 if templ_7745c5c3_Err != nil {
280 return templ_7745c5c3_Err
281 }
282 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</span></span> <span class=\"grow\"></span>")
283 if templ_7745c5c3_Err != nil {
284 return templ_7745c5c3_Err
285 }
286 templ_7745c5c3_Err = viewLink(p, "unified", "[u]nified", "u", p.UnifiedHref).Render(ctx, templ_7745c5c3_Buffer)
287 if templ_7745c5c3_Err != nil {
288 return templ_7745c5c3_Err
289 }
290 templ_7745c5c3_Err = viewLink(p, "split", "[d] split", "d", p.SplitHref).Render(ctx, templ_7745c5c3_Buffer)
291 if templ_7745c5c3_Err != nil {
292 return templ_7745c5c3_Err
293 }
294 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<button type=\"button\" aria-keyshortcuts=\"x\" hx-on:click=\"document.body.dispatchEvent(new CustomEvent('k-collapse'))\">[x] collapse all</button></div>")
295 if templ_7745c5c3_Err != nil {
296 return templ_7745c5c3_Err
297 }
298 if p.Invisible {
299 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "<p class=\"notice\">this diff holds invisible characters (direction controls, zero-width characters). They are shown as <span class=\"inv\"><U+XXXX></span> markers, never applied.</p>")
300 if templ_7745c5c3_Err != nil {
301 return templ_7745c5c3_Err
302 }
303 }
304 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, " ")
305 if templ_7745c5c3_Err != nil {
306 return templ_7745c5c3_Err
307 }
308 if p.Note != "" {
309 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "<p class=\"notice\">")
310 if templ_7745c5c3_Err != nil {
311 return templ_7745c5c3_Err
312 }
313 var templ_7745c5c3_Var15 string
314 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
315 if templ_7745c5c3_Err != nil {
316 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 67, Col: 29}
317 }
318 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
319 if templ_7745c5c3_Err != nil {
320 return templ_7745c5c3_Err
321 }
322 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</p>")
323 if templ_7745c5c3_Err != nil {
324 return templ_7745c5c3_Err
325 }
326 }
327 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, " <div id=\"diffs\"")
328 if templ_7745c5c3_Err != nil {
329 return templ_7745c5c3_Err
330 }
331 if p.Both {
332 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, " data-diff=\"")
333 if templ_7745c5c3_Err != nil {
334 return templ_7745c5c3_Err
335 }
336 var templ_7745c5c3_Var16 string
337 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
338 if templ_7745c5c3_Err != nil {
339 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 72, Col: 22}
340 }
341 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var16)
342 if templ_7745c5c3_Err != nil {
343 return templ_7745c5c3_Err
344 }
345 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "\"")
346 if templ_7745c5c3_Err != nil {
347 return templ_7745c5c3_Err
348 }
349 } else {
350 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, " data-view=\"")
351 if templ_7745c5c3_Err != nil {
352 return templ_7745c5c3_Err
353 }
354 var templ_7745c5c3_Var17 string
355 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
356 if templ_7745c5c3_Err != nil {
357 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 74, Col: 22}
358 }
359 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17)
360 if templ_7745c5c3_Err != nil {
361 return templ_7745c5c3_Err
362 }
363 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "\"")
364 if templ_7745c5c3_Err != nil {
365 return templ_7745c5c3_Err
366 }
367 }
368 if p.Both && !p.Pinned {
369 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
370 if templ_7745c5c3_Err != nil {
371 return templ_7745c5c3_Err
372 }
373 }
374 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, ">")
375 if templ_7745c5c3_Err != nil {
376 return templ_7745c5c3_Err
377 }
378 for _, f := range p.Files {
379 templ_7745c5c3_Err = DiffFileView(f, p).Render(ctx, templ_7745c5c3_Buffer)
380 if templ_7745c5c3_Err != nil {
381 return templ_7745c5c3_Err
382 }
383 }
384 if len(p.Files) == 0 {
385 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "<p class=\"note\">no changed files")
386 if templ_7745c5c3_Err != nil {
387 return templ_7745c5c3_Err
388 }
389 var templ_7745c5c3_Var18 string
390 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
391 if templ_7745c5c3_Err != nil {
392 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 84, Col: 41}
393 }
394 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
395 if templ_7745c5c3_Err != nil {
396 return templ_7745c5c3_Err
397 }
398 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, " ")
399 if templ_7745c5c3_Err != nil {
400 return templ_7745c5c3_Err
401 }
402 if p.Merge {
403 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "against the first parent.")
404 if templ_7745c5c3_Err != nil {
405 return templ_7745c5c3_Err
406 }
407 } else {
408 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "in this commit.")
409 if templ_7745c5c3_Err != nil {
410 return templ_7745c5c3_Err
411 }
412 }
413 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</p>")
414 if templ_7745c5c3_Err != nil {
415 return templ_7745c5c3_Err
416 }
417 }
418 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "</div>")
419 if templ_7745c5c3_Err != nil {
420 return templ_7745c5c3_Err
421 }
422 return nil
423 })
424 templ_7745c5c3_Err = Shell(l, commitRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
425 if templ_7745c5c3_Err != nil {
426 return templ_7745c5c3_Err
427 }
428 return nil
429 })
430}
431
432// viewLink is a button of the diff tools. It is a link, so that the split
433// layout works without JavaScript; with it, and when both layouts are in the
434// page, a click only flips the layout.
435func viewLink(p CommitPage, view, label, key, href string) templ.Component {
436 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
437 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
438 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
439 return templ_7745c5c3_CtxErr
440 }
441 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
442 if !templ_7745c5c3_IsBuffer {
443 defer func() {
444 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
445 if templ_7745c5c3_Err == nil {
446 templ_7745c5c3_Err = templ_7745c5c3_BufErr
447 }
448 }()
449 }
450 ctx = templ.InitializeContext(ctx)
451 templ_7745c5c3_Var19 := templ.GetChildren(ctx)
452 if templ_7745c5c3_Var19 == nil {
453 templ_7745c5c3_Var19 = templ.NopComponent
454 }
455 ctx = templ.ClearChildren(ctx)
456 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "<a href=\"")
457 if templ_7745c5c3_Err != nil {
458 return templ_7745c5c3_Err
459 }
460 var templ_7745c5c3_Var20 templ.SafeURL
461 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
462 if templ_7745c5c3_Err != nil {
463 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 101, Col: 28}
464 }
465 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
466 if templ_7745c5c3_Err != nil {
467 return templ_7745c5c3_Err
468 }
469 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\" class=\"vbtn\" data-view=\"")
470 if templ_7745c5c3_Err != nil {
471 return templ_7745c5c3_Err
472 }
473 var templ_7745c5c3_Var21 string
474 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.ResolveAttributeValue(view)
475 if templ_7745c5c3_Err != nil {
476 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 103, Col: 18}
477 }
478 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var21)
479 if templ_7745c5c3_Err != nil {
480 return templ_7745c5c3_Err
481 }
482 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\" aria-keyshortcuts=\"")
483 if templ_7745c5c3_Err != nil {
484 return templ_7745c5c3_Err
485 }
486 var templ_7745c5c3_Var22 string
487 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.ResolveAttributeValue(key)
488 if templ_7745c5c3_Err != nil {
489 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 104, Col: 25}
490 }
491 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var22)
492 if templ_7745c5c3_Err != nil {
493 return templ_7745c5c3_Err
494 }
495 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "\"")
496 if templ_7745c5c3_Err != nil {
497 return templ_7745c5c3_Err
498 }
499 if p.View == view {
500 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, " aria-current=\"true\"")
501 if templ_7745c5c3_Err != nil {
502 return templ_7745c5c3_Err
503 }
504 }
505 if p.Both {
506 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, " hx-on:click=\"event.preventDefault(); document.body.dispatchEvent(new CustomEvent('k-' + this.dataset.view))\" :aria-current=\"")
507 if templ_7745c5c3_Err != nil {
508 return templ_7745c5c3_Err
509 }
510 var templ_7745c5c3_Var23 string
511 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue("q('#diffs').attr['data-diff'] === '" + view + "' ? 'true' : false")
512 if templ_7745c5c3_Err != nil {
513 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 110, Col: 86}
514 }
515 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
516 if templ_7745c5c3_Err != nil {
517 return templ_7745c5c3_Err
518 }
519 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "\"")
520 if templ_7745c5c3_Err != nil {
521 return templ_7745c5c3_Err
522 }
523 }
524 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, ">")
525 if templ_7745c5c3_Err != nil {
526 return templ_7745c5c3_Err
527 }
528 var templ_7745c5c3_Var24 string
529 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(label)
530 if templ_7745c5c3_Err != nil {
531 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 112, Col: 9}
532 }
533 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
534 if templ_7745c5c3_Err != nil {
535 return templ_7745c5c3_Err
536 }
537 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</a>")
538 if templ_7745c5c3_Err != nil {
539 return templ_7745c5c3_Err
540 }
541 return nil
542 })
543}
544
545func personView(pr Person) templ.Component {
546 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
547 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
548 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
549 return templ_7745c5c3_CtxErr
550 }
551 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
552 if !templ_7745c5c3_IsBuffer {
553 defer func() {
554 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
555 if templ_7745c5c3_Err == nil {
556 templ_7745c5c3_Err = templ_7745c5c3_BufErr
557 }
558 }()
559 }
560 ctx = templ.InitializeContext(ctx)
561 templ_7745c5c3_Var25 := templ.GetChildren(ctx)
562 if templ_7745c5c3_Var25 == nil {
563 templ_7745c5c3_Var25 = templ.NopComponent
564 }
565 ctx = templ.ClearChildren(ctx)
566 var templ_7745c5c3_Var26 string
567 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(pr.Name)
568 if templ_7745c5c3_Err != nil {
569 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 116, Col: 10}
570 }
571 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
572 if templ_7745c5c3_Err != nil {
573 return templ_7745c5c3_Err
574 }
575 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, " ")
576 if templ_7745c5c3_Err != nil {
577 return templ_7745c5c3_Err
578 }
579 if pr.WhenAt != "" {
580 var templ_7745c5c3_Var27 string
581 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
582 if templ_7745c5c3_Err != nil {
583 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 118, Col: 10}
584 }
585 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
586 if templ_7745c5c3_Err != nil {
587 return templ_7745c5c3_Err
588 }
589 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<time datetime=\"")
590 if templ_7745c5c3_Err != nil {
591 return templ_7745c5c3_Err
592 }
593 var templ_7745c5c3_Var28 string
594 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(pr.WhenAt)
595 if templ_7745c5c3_Err != nil {
596 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 118, Col: 38}
597 }
598 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
599 if templ_7745c5c3_Err != nil {
600 return templ_7745c5c3_Err
601 }
602 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "\" title=\"")
603 if templ_7745c5c3_Err != nil {
604 return templ_7745c5c3_Err
605 }
606 var templ_7745c5c3_Var29 string
607 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.ResolveAttributeValue(pr.Abs)
608 if templ_7745c5c3_Err != nil {
609 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 118, Col: 55}
610 }
611 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var29)
612 if templ_7745c5c3_Err != nil {
613 return templ_7745c5c3_Err
614 }
615 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "\">")
616 if templ_7745c5c3_Err != nil {
617 return templ_7745c5c3_Err
618 }
619 var templ_7745c5c3_Var30 string
620 templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(pr.When)
621 if templ_7745c5c3_Err != nil {
622 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 118, Col: 67}
623 }
624 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
625 if templ_7745c5c3_Err != nil {
626 return templ_7745c5c3_Err
627 }
628 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "</time>")
629 if templ_7745c5c3_Err != nil {
630 return templ_7745c5c3_Err
631 }
632 var templ_7745c5c3_Var31 string
633 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(" · " + pr.Abs)
634 if templ_7745c5c3_Err != nil {
635 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 118, Col: 93}
636 }
637 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
638 if templ_7745c5c3_Err != nil {
639 return templ_7745c5c3_Err
640 }
641 }
642 return nil
643 })
644}
645
646func commitRail(p CommitPage) templ.Component {
647 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
648 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
649 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
650 return templ_7745c5c3_CtxErr
651 }
652 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
653 if !templ_7745c5c3_IsBuffer {
654 defer func() {
655 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
656 if templ_7745c5c3_Err == nil {
657 templ_7745c5c3_Err = templ_7745c5c3_BufErr
658 }
659 }()
660 }
661 ctx = templ.InitializeContext(ctx)
662 templ_7745c5c3_Var32 := templ.GetChildren(ctx)
663 if templ_7745c5c3_Var32 == nil {
664 templ_7745c5c3_Var32 = templ.NopComponent
665 }
666 ctx = templ.ClearChildren(ctx)
667 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">files <span>")
668 if templ_7745c5c3_Err != nil {
669 return templ_7745c5c3_Err
670 }
671 var templ_7745c5c3_Var33 string
672 templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
673 if templ_7745c5c3_Err != nil {
674 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 124, Col: 51}
675 }
676 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
677 if templ_7745c5c3_Err != nil {
678 return templ_7745c5c3_Err
679 }
680 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</span></h2>")
681 if templ_7745c5c3_Err != nil {
682 return templ_7745c5c3_Err
683 }
684 templ_7745c5c3_Err = FileList(p.Files).Render(ctx, templ_7745c5c3_Buffer)
685 if templ_7745c5c3_Err != nil {
686 return templ_7745c5c3_Err
687 }
688 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</section>")
689 if templ_7745c5c3_Err != nil {
690 return templ_7745c5c3_Err
691 }
692 return nil
693 })
694}
695
696// FileList is the table of contents of a diff: status letter, path, +n -m
697// and an ASCII bar. The row of the file in view is marked.
698func FileList(files []DiffFile) templ.Component {
699 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
700 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
701 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
702 return templ_7745c5c3_CtxErr
703 }
704 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
705 if !templ_7745c5c3_IsBuffer {
706 defer func() {
707 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
708 if templ_7745c5c3_Err == nil {
709 templ_7745c5c3_Err = templ_7745c5c3_BufErr
710 }
711 }()
712 }
713 ctx = templ.InitializeContext(ctx)
714 templ_7745c5c3_Var34 := templ.GetChildren(ctx)
715 if templ_7745c5c3_Var34 == nil {
716 templ_7745c5c3_Var34 = templ.NopComponent
717 }
718 ctx = templ.ClearChildren(ctx)
719 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "<ol class=\"files\" aria-label=\"Changed files\">")
720 if templ_7745c5c3_Err != nil {
721 return templ_7745c5c3_Err
722 }
723 for _, f := range files {
724 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<li><a href=\"")
725 if templ_7745c5c3_Err != nil {
726 return templ_7745c5c3_Err
727 }
728 var templ_7745c5c3_Var35 templ.SafeURL
729 templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("#" + f.ID))
730 if templ_7745c5c3_Err != nil {
731 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 136, Col: 37}
732 }
733 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
734 if templ_7745c5c3_Err != nil {
735 return templ_7745c5c3_Err
736 }
737 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "\" :aria-current=\"")
738 if templ_7745c5c3_Err != nil {
739 return templ_7745c5c3_Err
740 }
741 var templ_7745c5c3_Var36 string
742 templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.ResolveAttributeValue("(() => { let all = q('.dfile').arr(); let cur = all.filter(f => f.getBoundingClientRect().top < innerHeight / 3).at(-1) || all[0]; return cur?.id === '" + f.ID + "' ? 'true' : false })()")
743 if templ_7745c5c3_Err != nil {
744 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 137, Col: 209}
745 }
746 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var36)
747 if templ_7745c5c3_Err != nil {
748 return templ_7745c5c3_Err
749 }
750 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\" hx-on:click=\"document.getElementById(this.hash.slice(1)).open = true\"><span class=\"st\" title=\"")
751 if templ_7745c5c3_Err != nil {
752 return templ_7745c5c3_Err
753 }
754 var templ_7745c5c3_Var37 string
755 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Status)
756 if templ_7745c5c3_Err != nil {
757 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 140, Col: 38}
758 }
759 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var37)
760 if templ_7745c5c3_Err != nil {
761 return templ_7745c5c3_Err
762 }
763 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "\">")
764 if templ_7745c5c3_Err != nil {
765 return templ_7745c5c3_Err
766 }
767 var templ_7745c5c3_Var38 string
768 templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(f.Status)
769 if templ_7745c5c3_Err != nil {
770 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 140, Col: 51}
771 }
772 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38))
773 if templ_7745c5c3_Err != nil {
774 return templ_7745c5c3_Err
775 }
776 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</span> <span class=\"p\" title=\"")
777 if templ_7745c5c3_Err != nil {
778 return templ_7745c5c3_Err
779 }
780 var templ_7745c5c3_Var39 string
781 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path)
782 if templ_7745c5c3_Err != nil {
783 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 141, Col: 35}
784 }
785 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var39)
786 if templ_7745c5c3_Err != nil {
787 return templ_7745c5c3_Err
788 }
789 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "\">")
790 if templ_7745c5c3_Err != nil {
791 return templ_7745c5c3_Err
792 }
793 var templ_7745c5c3_Var40 string
794 templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(f.Path)
795 if templ_7745c5c3_Err != nil {
796 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 141, Col: 46}
797 }
798 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40))
799 if templ_7745c5c3_Err != nil {
800 return templ_7745c5c3_Err
801 }
802 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</span> <span class=\"n\"><span class=\"plus\">+")
803 if templ_7745c5c3_Err != nil {
804 return templ_7745c5c3_Err
805 }
806 var templ_7745c5c3_Var41 string
807 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Add))
808 if templ_7745c5c3_Err != nil {
809 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 142, Col: 54}
810 }
811 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41))
812 if templ_7745c5c3_Err != nil {
813 return templ_7745c5c3_Err
814 }
815 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</span> <span class=\"minus\">-")
816 if templ_7745c5c3_Err != nil {
817 return templ_7745c5c3_Err
818 }
819 var templ_7745c5c3_Var42 string
820 templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Del))
821 if templ_7745c5c3_Err != nil {
822 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 142, Col: 98}
823 }
824 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42))
825 if templ_7745c5c3_Err != nil {
826 return templ_7745c5c3_Err
827 }
828 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</span></span> <span class=\"b\" aria-hidden=\"true\"><span class=\"plus\">")
829 if templ_7745c5c3_Err != nil {
830 return templ_7745c5c3_Err
831 }
832 var templ_7745c5c3_Var43 string
833 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(f.Bar.Add)
834 if templ_7745c5c3_Err != nil {
835 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 143, Col: 70}
836 }
837 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
838 if templ_7745c5c3_Err != nil {
839 return templ_7745c5c3_Err
840 }
841 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</span><span class=\"minus\">")
842 if templ_7745c5c3_Err != nil {
843 return templ_7745c5c3_Err
844 }
845 var templ_7745c5c3_Var44 string
846 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(f.Bar.Del)
847 if templ_7745c5c3_Err != nil {
848 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 143, Col: 110}
849 }
850 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
851 if templ_7745c5c3_Err != nil {
852 return templ_7745c5c3_Err
853 }
854 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</span>")
855 if templ_7745c5c3_Err != nil {
856 return templ_7745c5c3_Err
857 }
858 var templ_7745c5c3_Var45 string
859 templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(f.Bar.Rest)
860 if templ_7745c5c3_Err != nil {
861 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 143, Col: 131}
862 }
863 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45))
864 if templ_7745c5c3_Err != nil {
865 return templ_7745c5c3_Err
866 }
867 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</span></a></li>")
868 if templ_7745c5c3_Err != nil {
869 return templ_7745c5c3_Err
870 }
871 }
872 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "</ol>")
873 if templ_7745c5c3_Err != nil {
874 return templ_7745c5c3_Err
875 }
876 return nil
877 })
878}
879
880// DiffFileView is one file of the diff: a <details> (per-file collapse). The
881// unified and the split tables are both in it; #diffs[data-diff] shows one.
882// Every changed line keeps its +/- marker, so a change is never conveyed by
883// colour alone.
884func DiffFileView(f DiffFile, p CommitPage) templ.Component {
885 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
886 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
887 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
888 return templ_7745c5c3_CtxErr
889 }
890 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
891 if !templ_7745c5c3_IsBuffer {
892 defer func() {
893 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
894 if templ_7745c5c3_Err == nil {
895 templ_7745c5c3_Err = templ_7745c5c3_BufErr
896 }
897 }()
898 }
899 ctx = templ.InitializeContext(ctx)
900 templ_7745c5c3_Var46 := templ.GetChildren(ctx)
901 if templ_7745c5c3_Var46 == nil {
902 templ_7745c5c3_Var46 = templ.NopComponent
903 }
904 ctx = templ.ClearChildren(ctx)
905 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "<details class=\"dfile\" id=\"")
906 if templ_7745c5c3_Err != nil {
907 return templ_7745c5c3_Err
908 }
909 var templ_7745c5c3_Var47 string
910 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID)
911 if templ_7745c5c3_Err != nil {
912 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 157, Col: 11}
913 }
914 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var47)
915 if templ_7745c5c3_Err != nil {
916 return templ_7745c5c3_Err
917 }
918 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\" data-file")
919 if templ_7745c5c3_Err != nil {
920 return templ_7745c5c3_Err
921 }
922 if f.Open {
923 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, " open")
924 if templ_7745c5c3_Err != nil {
925 return templ_7745c5c3_Err
926 }
927 }
928 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "><summary><span class=\"st\">")
929 if templ_7745c5c3_Err != nil {
930 return templ_7745c5c3_Err
931 }
932 var templ_7745c5c3_Var48 string
933 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(f.Status)
934 if templ_7745c5c3_Err != nil {
935 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 30}
936 }
937 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
938 if templ_7745c5c3_Err != nil {
939 return templ_7745c5c3_Err
940 }
941 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "</span>")
942 if templ_7745c5c3_Err != nil {
943 return templ_7745c5c3_Err
944 }
945 var templ_7745c5c3_Var49 string
946 templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
947 if templ_7745c5c3_Err != nil {
948 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 44}
949 }
950 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49))
951 if templ_7745c5c3_Err != nil {
952 return templ_7745c5c3_Err
953 }
954 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "<span class=\"p\">")
955 if templ_7745c5c3_Err != nil {
956 return templ_7745c5c3_Err
957 }
958 var templ_7745c5c3_Var50 string
959 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(f.Path)
960 if templ_7745c5c3_Err != nil {
961 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 70}
962 }
963 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
964 if templ_7745c5c3_Err != nil {
965 return templ_7745c5c3_Err
966 }
967 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</span>")
968 if templ_7745c5c3_Err != nil {
969 return templ_7745c5c3_Err
970 }
971 var templ_7745c5c3_Var51 string
972 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
973 if templ_7745c5c3_Err != nil {
974 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 84}
975 }
976 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
977 if templ_7745c5c3_Err != nil {
978 return templ_7745c5c3_Err
979 }
980 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<span class=\"plus\">+")
981 if templ_7745c5c3_Err != nil {
982 return templ_7745c5c3_Err
983 }
984 var templ_7745c5c3_Var52 string
985 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Add))
986 if templ_7745c5c3_Err != nil {
987 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 119}
988 }
989 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))
990 if templ_7745c5c3_Err != nil {
991 return templ_7745c5c3_Err
992 }
993 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</span>")
994 if templ_7745c5c3_Err != nil {
995 return templ_7745c5c3_Err
996 }
997 var templ_7745c5c3_Var53 string
998 templ_7745c5c3_Var53, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
999 if templ_7745c5c3_Err != nil {
1000 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 133}
1001 }
1002 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var53))
1003 if templ_7745c5c3_Err != nil {
1004 return templ_7745c5c3_Err
1005 }
1006 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<span class=\"minus\">-")
1007 if templ_7745c5c3_Err != nil {
1008 return templ_7745c5c3_Err
1009 }
1010 var templ_7745c5c3_Var54 string
1011 templ_7745c5c3_Var54, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Del))
1012 if templ_7745c5c3_Err != nil {
1013 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 164, Col: 169}
1014 }
1015 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var54))
1016 if templ_7745c5c3_Err != nil {
1017 return templ_7745c5c3_Err
1018 }
1019 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "</span> ")
1020 if templ_7745c5c3_Err != nil {
1021 return templ_7745c5c3_Err
1022 }
1023 if f.Note != "" {
1024 var templ_7745c5c3_Var55 string
1025 templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1026 if templ_7745c5c3_Err != nil {
1027 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 166, Col: 9}
1028 }
1029 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var55))
1030 if templ_7745c5c3_Err != nil {
1031 return templ_7745c5c3_Err
1032 }
1033 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "<span class=\"note\">")
1034 if templ_7745c5c3_Err != nil {
1035 return templ_7745c5c3_Err
1036 }
1037 var templ_7745c5c3_Var56 string
1038 templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.JoinStringErrs(f.Note)
1039 if templ_7745c5c3_Err != nil {
1040 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 166, Col: 38}
1041 }
1042 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var56))
1043 if templ_7745c5c3_Err != nil {
1044 return templ_7745c5c3_Err
1045 }
1046 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "</span>")
1047 if templ_7745c5c3_Err != nil {
1048 return templ_7745c5c3_Err
1049 }
1050 }
1051 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "</summary> ")
1052 if templ_7745c5c3_Err != nil {
1053 return templ_7745c5c3_Err
1054 }
1055 if len(f.Hunks) > 0 {
1056 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "<div class=\"dscroll\">")
1057 if templ_7745c5c3_Err != nil {
1058 return templ_7745c5c3_Err
1059 }
1060 if p.ShowUnified {
1061 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<table class=\"dt uni\" aria-label=\"")
1062 if templ_7745c5c3_Err != nil {
1063 return templ_7745c5c3_Err
1064 }
1065 var templ_7745c5c3_Var57 string
1066 templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path + ", unified")
1067 if templ_7745c5c3_Err != nil {
1068 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 172, Col: 60}
1069 }
1070 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var57)
1071 if templ_7745c5c3_Err != nil {
1072 return templ_7745c5c3_Err
1073 }
1074 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "\">")
1075 if templ_7745c5c3_Err != nil {
1076 return templ_7745c5c3_Err
1077 }
1078 for _, h := range f.Hunks {
1079 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "<tbody><tr class=\"hunk\"><td colspan=\"4\">")
1080 if templ_7745c5c3_Err != nil {
1081 return templ_7745c5c3_Err
1082 }
1083 var templ_7745c5c3_Var58 string
1084 templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(h.Header)
1085 if templ_7745c5c3_Err != nil {
1086 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 175, Col: 51}
1087 }
1088 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1089 if templ_7745c5c3_Err != nil {
1090 return templ_7745c5c3_Err
1091 }
1092 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "</td></tr>")
1093 if templ_7745c5c3_Err != nil {
1094 return templ_7745c5c3_Err
1095 }
1096 for _, ln := range h.Lines {
1097 var templ_7745c5c3_Var59 = []any{ln.Kind}
1098 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var59...)
1099 if templ_7745c5c3_Err != nil {
1100 return templ_7745c5c3_Err
1101 }
1102 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "<tr class=\"")
1103 if templ_7745c5c3_Err != nil {
1104 return templ_7745c5c3_Err
1105 }
1106 var templ_7745c5c3_Var60 string
1107 templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var59).String())
1108 if templ_7745c5c3_Err != nil {
1109 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1110 }
1111 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var60)
1112 if templ_7745c5c3_Err != nil {
1113 return templ_7745c5c3_Err
1114 }
1115 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "\"><td class=\"ln\">")
1116 if templ_7745c5c3_Err != nil {
1117 return templ_7745c5c3_Err
1118 }
1119 var templ_7745c5c3_Var61 string
1120 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Old)
1121 if templ_7745c5c3_Err != nil {
1122 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 178, Col: 33}
1123 }
1124 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
1125 if templ_7745c5c3_Err != nil {
1126 return templ_7745c5c3_Err
1127 }
1128 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "</td><td class=\"ln\">")
1129 if templ_7745c5c3_Err != nil {
1130 return templ_7745c5c3_Err
1131 }
1132 var templ_7745c5c3_Var62 string
1133 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(ln.New)
1134 if templ_7745c5c3_Err != nil {
1135 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 179, Col: 33}
1136 }
1137 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))
1138 if templ_7745c5c3_Err != nil {
1139 return templ_7745c5c3_Err
1140 }
1141 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "</td><td class=\"m\">")
1142 if templ_7745c5c3_Err != nil {
1143 return templ_7745c5c3_Err
1144 }
1145 var templ_7745c5c3_Var63 string
1146 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Mark)
1147 if templ_7745c5c3_Err != nil {
1148 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 180, Col: 33}
1149 }
1150 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1151 if templ_7745c5c3_Err != nil {
1152 return templ_7745c5c3_Err
1153 }
1154 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "</td><td class=\"tx\">")
1155 if templ_7745c5c3_Err != nil {
1156 return templ_7745c5c3_Err
1157 }
1158 templ_7745c5c3_Err = codeLine(ln).Render(ctx, templ_7745c5c3_Buffer)
1159 if templ_7745c5c3_Err != nil {
1160 return templ_7745c5c3_Err
1161 }
1162 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, "</td></tr>")
1163 if templ_7745c5c3_Err != nil {
1164 return templ_7745c5c3_Err
1165 }
1166 }
1167 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "</tbody>")
1168 if templ_7745c5c3_Err != nil {
1169 return templ_7745c5c3_Err
1170 }
1171 }
1172 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "</table>")
1173 if templ_7745c5c3_Err != nil {
1174 return templ_7745c5c3_Err
1175 }
1176 }
1177 if p.ShowSplit {
1178 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "<table class=\"dt spl\" aria-label=\"")
1179 if templ_7745c5c3_Err != nil {
1180 return templ_7745c5c3_Err
1181 }
1182 var templ_7745c5c3_Var64 string
1183 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path + ", split")
1184 if templ_7745c5c3_Err != nil {
1185 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 189, Col: 58}
1186 }
1187 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var64)
1188 if templ_7745c5c3_Err != nil {
1189 return templ_7745c5c3_Err
1190 }
1191 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "\">")
1192 if templ_7745c5c3_Err != nil {
1193 return templ_7745c5c3_Err
1194 }
1195 for _, h := range f.Hunks {
1196 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "<tbody><tr class=\"hunk\"><td colspan=\"6\">")
1197 if templ_7745c5c3_Err != nil {
1198 return templ_7745c5c3_Err
1199 }
1200 var templ_7745c5c3_Var65 string
1201 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(h.Header)
1202 if templ_7745c5c3_Err != nil {
1203 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 192, Col: 51}
1204 }
1205 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1206 if templ_7745c5c3_Err != nil {
1207 return templ_7745c5c3_Err
1208 }
1209 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</td></tr>")
1210 if templ_7745c5c3_Err != nil {
1211 return templ_7745c5c3_Err
1212 }
1213 for _, row := range h.Split {
1214 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "<tr>")
1215 if templ_7745c5c3_Err != nil {
1216 return templ_7745c5c3_Err
1217 }
1218 templ_7745c5c3_Err = splitSide(row.L, true).Render(ctx, templ_7745c5c3_Buffer)
1219 if templ_7745c5c3_Err != nil {
1220 return templ_7745c5c3_Err
1221 }
1222 templ_7745c5c3_Err = splitSide(row.R, false).Render(ctx, templ_7745c5c3_Buffer)
1223 if templ_7745c5c3_Err != nil {
1224 return templ_7745c5c3_Err
1225 }
1226 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</tr>")
1227 if templ_7745c5c3_Err != nil {
1228 return templ_7745c5c3_Err
1229 }
1230 }
1231 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "</tbody>")
1232 if templ_7745c5c3_Err != nil {
1233 return templ_7745c5c3_Err
1234 }
1235 }
1236 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</table>")
1237 if templ_7745c5c3_Err != nil {
1238 return templ_7745c5c3_Err
1239 }
1240 }
1241 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "</div>")
1242 if templ_7745c5c3_Err != nil {
1243 return templ_7745c5c3_Err
1244 }
1245 } else {
1246 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, "<p class=\"note pad\">")
1247 if templ_7745c5c3_Err != nil {
1248 return templ_7745c5c3_Err
1249 }
1250 if f.Note != "" {
1251 var templ_7745c5c3_Var66 string
1252 templ_7745c5c3_Var66, templ_7745c5c3_Err = templ.JoinStringErrs(f.Note)
1253 if templ_7745c5c3_Err != nil {
1254 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 207, Col: 13}
1255 }
1256 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var66))
1257 if templ_7745c5c3_Err != nil {
1258 return templ_7745c5c3_Err
1259 }
1260 } else {
1261 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "no textual change.")
1262 if templ_7745c5c3_Err != nil {
1263 return templ_7745c5c3_Err
1264 }
1265 }
1266 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "</p>")
1267 if templ_7745c5c3_Err != nil {
1268 return templ_7745c5c3_Err
1269 }
1270 }
1271 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "</details>")
1272 if templ_7745c5c3_Err != nil {
1273 return templ_7745c5c3_Err
1274 }
1275 return nil
1276 })
1277}
1278
1279// splitSide is one half of a row of the split view; a side without a line is
1280// an empty cell.
1281func splitSide(ln *DiffLine, old bool) templ.Component {
1282 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1283 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1284 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1285 return templ_7745c5c3_CtxErr
1286 }
1287 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1288 if !templ_7745c5c3_IsBuffer {
1289 defer func() {
1290 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1291 if templ_7745c5c3_Err == nil {
1292 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1293 }
1294 }()
1295 }
1296 ctx = templ.InitializeContext(ctx)
1297 templ_7745c5c3_Var67 := templ.GetChildren(ctx)
1298 if templ_7745c5c3_Var67 == nil {
1299 templ_7745c5c3_Var67 = templ.NopComponent
1300 }
1301 ctx = templ.ClearChildren(ctx)
1302 if ln == nil {
1303 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "<td class=\"ln none\"></td><td class=\"m none\"></td><td class=\"tx none\"></td>")
1304 if templ_7745c5c3_Err != nil {
1305 return templ_7745c5c3_Err
1306 }
1307 } else {
1308 var templ_7745c5c3_Var68 = []any{"ln", ln.Kind}
1309 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var68...)
1310 if templ_7745c5c3_Err != nil {
1311 return templ_7745c5c3_Err
1312 }
1313 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "<td class=\"")
1314 if templ_7745c5c3_Err != nil {
1315 return templ_7745c5c3_Err
1316 }
1317 var templ_7745c5c3_Var69 string
1318 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var68).String())
1319 if templ_7745c5c3_Err != nil {
1320 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1321 }
1322 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var69)
1323 if templ_7745c5c3_Err != nil {
1324 return templ_7745c5c3_Err
1325 }
1326 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "\">")
1327 if templ_7745c5c3_Err != nil {
1328 return templ_7745c5c3_Err
1329 }
1330 if old {
1331 var templ_7745c5c3_Var70 string
1332 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Old)
1333 if templ_7745c5c3_Err != nil {
1334 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 226, Col: 12}
1335 }
1336 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))
1337 if templ_7745c5c3_Err != nil {
1338 return templ_7745c5c3_Err
1339 }
1340 } else {
1341 var templ_7745c5c3_Var71 string
1342 templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.JoinStringErrs(ln.New)
1343 if templ_7745c5c3_Err != nil {
1344 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 228, Col: 12}
1345 }
1346 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var71))
1347 if templ_7745c5c3_Err != nil {
1348 return templ_7745c5c3_Err
1349 }
1350 }
1351 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "</td>")
1352 if templ_7745c5c3_Err != nil {
1353 return templ_7745c5c3_Err
1354 }
1355 var templ_7745c5c3_Var72 = []any{"m", ln.Kind}
1356 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var72...)
1357 if templ_7745c5c3_Err != nil {
1358 return templ_7745c5c3_Err
1359 }
1360 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "<td class=\"")
1361 if templ_7745c5c3_Err != nil {
1362 return templ_7745c5c3_Err
1363 }
1364 var templ_7745c5c3_Var73 string
1365 templ_7745c5c3_Var73, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var72).String())
1366 if templ_7745c5c3_Err != nil {
1367 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1368 }
1369 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var73)
1370 if templ_7745c5c3_Err != nil {
1371 return templ_7745c5c3_Err
1372 }
1373 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "\">")
1374 if templ_7745c5c3_Err != nil {
1375 return templ_7745c5c3_Err
1376 }
1377 var templ_7745c5c3_Var74 string
1378 templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Mark)
1379 if templ_7745c5c3_Err != nil {
1380 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 231, Col: 38}
1381 }
1382 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var74))
1383 if templ_7745c5c3_Err != nil {
1384 return templ_7745c5c3_Err
1385 }
1386 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "</td>")
1387 if templ_7745c5c3_Err != nil {
1388 return templ_7745c5c3_Err
1389 }
1390 var templ_7745c5c3_Var75 = []any{"tx", ln.Kind}
1391 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var75...)
1392 if templ_7745c5c3_Err != nil {
1393 return templ_7745c5c3_Err
1394 }
1395 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "<td class=\"")
1396 if templ_7745c5c3_Err != nil {
1397 return templ_7745c5c3_Err
1398 }
1399 var templ_7745c5c3_Var76 string
1400 templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var75).String())
1401 if templ_7745c5c3_Err != nil {
1402 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1403 }
1404 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var76)
1405 if templ_7745c5c3_Err != nil {
1406 return templ_7745c5c3_Err
1407 }
1408 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "\">")
1409 if templ_7745c5c3_Err != nil {
1410 return templ_7745c5c3_Err
1411 }
1412 templ_7745c5c3_Err = codeLine(*ln).Render(ctx, templ_7745c5c3_Buffer)
1413 if templ_7745c5c3_Err != nil {
1414 return templ_7745c5c3_Err
1415 }
1416 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "</td>")
1417 if templ_7745c5c3_Err != nil {
1418 return templ_7745c5c3_Err
1419 }
1420 }
1421 return nil
1422 })
1423}
1424
1425var _ = templruntime.GeneratedTemplate