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 p.Sig != nil {
206 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<dt>signature</dt><dd>")
207 if templ_7745c5c3_Err != nil {
208 return templ_7745c5c3_Err
209 }
210 templ_7745c5c3_Err = signaturePill(p.Sig).Render(ctx, templ_7745c5c3_Buffer)
211 if templ_7745c5c3_Err != nil {
212 return templ_7745c5c3_Err
213 }
214 if p.Verification.Fingerprint != "" {
215 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<code>")
216 if templ_7745c5c3_Err != nil {
217 return templ_7745c5c3_Err
218 }
219 var templ_7745c5c3_Var10 string
220 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(p.Verification.Fingerprint)
221 if templ_7745c5c3_Err != nil {
222 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 48, Col: 41}
223 }
224 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
225 if templ_7745c5c3_Err != nil {
226 return templ_7745c5c3_Err
227 }
228 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</code> ")
229 if templ_7745c5c3_Err != nil {
230 return templ_7745c5c3_Err
231 }
232 }
233 if p.Verification.KeyTitle != "" {
234 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<span class=\"dim\">")
235 if templ_7745c5c3_Err != nil {
236 return templ_7745c5c3_Err
237 }
238 var templ_7745c5c3_Var11 string
239 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs("· " + visibleText(p.Verification.KeyTitle))
240 if templ_7745c5c3_Err != nil {
241 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 51, Col: 71}
242 }
243 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
244 if templ_7745c5c3_Err != nil {
245 return templ_7745c5c3_Err
246 }
247 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</span> ")
248 if templ_7745c5c3_Err != nil {
249 return templ_7745c5c3_Err
250 }
251 }
252 if p.Sig.Class != "sig-none" {
253 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "<span class=\"sig-why dim\">")
254 if templ_7745c5c3_Err != nil {
255 return templ_7745c5c3_Err
256 }
257 var templ_7745c5c3_Var12 string
258 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(p.Sig.Reason)
259 if templ_7745c5c3_Err != nil {
260 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 54, Col: 47}
261 }
262 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
263 if templ_7745c5c3_Err != nil {
264 return templ_7745c5c3_Err
265 }
266 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</span>")
267 if templ_7745c5c3_Err != nil {
268 return templ_7745c5c3_Err
269 }
270 }
271 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</dd>")
272 if templ_7745c5c3_Err != nil {
273 return templ_7745c5c3_Err
274 }
275 }
276 if p.Checks.Total > 0 {
277 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<dt>checks</dt><dd>")
278 if templ_7745c5c3_Err != nil {
279 return templ_7745c5c3_Err
280 }
281 templ_7745c5c3_Err = CommitChecks(p.Checks).Render(ctx, templ_7745c5c3_Buffer)
282 if templ_7745c5c3_Err != nil {
283 return templ_7745c5c3_Err
284 }
285 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</dd>")
286 if templ_7745c5c3_Err != nil {
287 return templ_7745c5c3_Err
288 }
289 }
290 if len(p.Refs) > 0 {
291 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<dt>refs</dt><dd>")
292 if templ_7745c5c3_Err != nil {
293 return templ_7745c5c3_Err
294 }
295 for _, r := range p.Refs {
296 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "<span class=\"pill\">")
297 if templ_7745c5c3_Err != nil {
298 return templ_7745c5c3_Err
299 }
300 var templ_7745c5c3_Var13 string
301 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(r)
302 if templ_7745c5c3_Err != nil {
303 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 66, Col: 29}
304 }
305 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
306 if templ_7745c5c3_Err != nil {
307 return templ_7745c5c3_Err
308 }
309 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</span>")
310 if templ_7745c5c3_Err != nil {
311 return templ_7745c5c3_Err
312 }
313 }
314 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</dd>")
315 if templ_7745c5c3_Err != nil {
316 return templ_7745c5c3_Err
317 }
318 }
319 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</dl></header><div class=\"diff-tools\" role=\"group\" aria-label=\"Diff view\"><span class=\"dim\">")
320 if templ_7745c5c3_Err != nil {
321 return templ_7745c5c3_Err
322 }
323 var templ_7745c5c3_Var14 string
324 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.NFiles, "file", "files"))
325 if templ_7745c5c3_Err != nil {
326 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 73, Col: 56}
327 }
328 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
329 if templ_7745c5c3_Err != nil {
330 return templ_7745c5c3_Err
331 }
332 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, " · <span class=\"plus\">+")
333 if templ_7745c5c3_Err != nil {
334 return templ_7745c5c3_Err
335 }
336 var templ_7745c5c3_Var15 string
337 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Adds))
338 if templ_7745c5c3_Err != nil {
339 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 73, Col: 96}
340 }
341 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
342 if templ_7745c5c3_Err != nil {
343 return templ_7745c5c3_Err
344 }
345 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</span> <span class=\"minus\">-")
346 if templ_7745c5c3_Err != nil {
347 return templ_7745c5c3_Err
348 }
349 var templ_7745c5c3_Var16 string
350 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Dels))
351 if templ_7745c5c3_Err != nil {
352 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 73, Col: 141}
353 }
354 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
355 if templ_7745c5c3_Err != nil {
356 return templ_7745c5c3_Err
357 }
358 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "</span></span> <span class=\"grow\"></span>")
359 if templ_7745c5c3_Err != nil {
360 return templ_7745c5c3_Err
361 }
362 templ_7745c5c3_Err = viewLink(p.DiffView, "unified", "Unified", "u", p.UnifiedHref).Render(ctx, templ_7745c5c3_Buffer)
363 if templ_7745c5c3_Err != nil {
364 return templ_7745c5c3_Err
365 }
366 templ_7745c5c3_Err = viewLink(p.DiffView, "split", "Split", "d", p.SplitHref).Render(ctx, templ_7745c5c3_Buffer)
367 if templ_7745c5c3_Err != nil {
368 return templ_7745c5c3_Err
369 }
370 templ_7745c5c3_Err = collapseButton().Render(ctx, templ_7745c5c3_Buffer)
371 if templ_7745c5c3_Err != nil {
372 return templ_7745c5c3_Err
373 }
374 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</div>")
375 if templ_7745c5c3_Err != nil {
376 return templ_7745c5c3_Err
377 }
378 if p.Invisible {
379 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<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>")
380 if templ_7745c5c3_Err != nil {
381 return templ_7745c5c3_Err
382 }
383 }
384 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, " ")
385 if templ_7745c5c3_Err != nil {
386 return templ_7745c5c3_Err
387 }
388 if p.Note != "" {
389 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<p class=\"notice\">")
390 if templ_7745c5c3_Err != nil {
391 return templ_7745c5c3_Err
392 }
393 var templ_7745c5c3_Var17 string
394 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note)
395 if templ_7745c5c3_Err != nil {
396 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 86, Col: 29}
397 }
398 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
399 if templ_7745c5c3_Err != nil {
400 return templ_7745c5c3_Err
401 }
402 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</p>")
403 if templ_7745c5c3_Err != nil {
404 return templ_7745c5c3_Err
405 }
406 }
407 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, " <div id=\"diffs\"")
408 if templ_7745c5c3_Err != nil {
409 return templ_7745c5c3_Err
410 }
411 if p.Both {
412 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, " data-diff=\"")
413 if templ_7745c5c3_Err != nil {
414 return templ_7745c5c3_Err
415 }
416 var templ_7745c5c3_Var18 string
417 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
418 if templ_7745c5c3_Err != nil {
419 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 91, Col: 22}
420 }
421 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18)
422 if templ_7745c5c3_Err != nil {
423 return templ_7745c5c3_Err
424 }
425 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\"")
426 if templ_7745c5c3_Err != nil {
427 return templ_7745c5c3_Err
428 }
429 } else {
430 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, " data-view=\"")
431 if templ_7745c5c3_Err != nil {
432 return templ_7745c5c3_Err
433 }
434 var templ_7745c5c3_Var19 string
435 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.View)
436 if templ_7745c5c3_Err != nil {
437 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 93, Col: 22}
438 }
439 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var19)
440 if templ_7745c5c3_Err != nil {
441 return templ_7745c5c3_Err
442 }
443 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "\"")
444 if templ_7745c5c3_Err != nil {
445 return templ_7745c5c3_Err
446 }
447 }
448 if p.Both && !p.Pinned {
449 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, " hx-live=\"this.dataset.diff = sessionStorage.getItem('diff') || this.dataset.diff\"")
450 if templ_7745c5c3_Err != nil {
451 return templ_7745c5c3_Err
452 }
453 }
454 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, ">")
455 if templ_7745c5c3_Err != nil {
456 return templ_7745c5c3_Err
457 }
458 for _, f := range p.Files {
459 templ_7745c5c3_Err = DiffFileView(f, p.DiffView).Render(ctx, templ_7745c5c3_Buffer)
460 if templ_7745c5c3_Err != nil {
461 return templ_7745c5c3_Err
462 }
463 }
464 if len(p.Files) == 0 {
465 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "<p class=\"note\">no changed files")
466 if templ_7745c5c3_Err != nil {
467 return templ_7745c5c3_Err
468 }
469 var templ_7745c5c3_Var20 string
470 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
471 if templ_7745c5c3_Err != nil {
472 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 103, Col: 41}
473 }
474 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
475 if templ_7745c5c3_Err != nil {
476 return templ_7745c5c3_Err
477 }
478 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, " ")
479 if templ_7745c5c3_Err != nil {
480 return templ_7745c5c3_Err
481 }
482 if p.Merge {
483 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "against the first parent.")
484 if templ_7745c5c3_Err != nil {
485 return templ_7745c5c3_Err
486 }
487 } else {
488 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "in this commit.")
489 if templ_7745c5c3_Err != nil {
490 return templ_7745c5c3_Err
491 }
492 }
493 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "</p>")
494 if templ_7745c5c3_Err != nil {
495 return templ_7745c5c3_Err
496 }
497 }
498 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</div>")
499 if templ_7745c5c3_Err != nil {
500 return templ_7745c5c3_Err
501 }
502 return nil
503 })
504 templ_7745c5c3_Err = Shell(l, commitRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
505 if templ_7745c5c3_Err != nil {
506 return templ_7745c5c3_Err
507 }
508 return nil
509 })
510}
511
512// viewLink is a button of the diff tools. It is a link, so that the split
513// layout works without JavaScript; with it, and when both layouts are in the
514// page, a click only flips the layout.
515func viewLink(p DiffView, view, label, key, href string) templ.Component {
516 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
517 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
518 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
519 return templ_7745c5c3_CtxErr
520 }
521 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
522 if !templ_7745c5c3_IsBuffer {
523 defer func() {
524 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
525 if templ_7745c5c3_Err == nil {
526 templ_7745c5c3_Err = templ_7745c5c3_BufErr
527 }
528 }()
529 }
530 ctx = templ.InitializeContext(ctx)
531 templ_7745c5c3_Var21 := templ.GetChildren(ctx)
532 if templ_7745c5c3_Var21 == nil {
533 templ_7745c5c3_Var21 = templ.NopComponent
534 }
535 ctx = templ.ClearChildren(ctx)
536 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "<a href=\"")
537 if templ_7745c5c3_Err != nil {
538 return templ_7745c5c3_Err
539 }
540 var templ_7745c5c3_Var22 templ.SafeURL
541 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
542 if templ_7745c5c3_Err != nil {
543 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 120, Col: 28}
544 }
545 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
546 if templ_7745c5c3_Err != nil {
547 return templ_7745c5c3_Err
548 }
549 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "\" class=\"btn vbtn\" data-view=\"")
550 if templ_7745c5c3_Err != nil {
551 return templ_7745c5c3_Err
552 }
553 var templ_7745c5c3_Var23 string
554 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(view)
555 if templ_7745c5c3_Err != nil {
556 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 122, Col: 18}
557 }
558 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
559 if templ_7745c5c3_Err != nil {
560 return templ_7745c5c3_Err
561 }
562 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "\" aria-keyshortcuts=\"")
563 if templ_7745c5c3_Err != nil {
564 return templ_7745c5c3_Err
565 }
566 var templ_7745c5c3_Var24 string
567 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.ResolveAttributeValue(key)
568 if templ_7745c5c3_Err != nil {
569 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 123, Col: 25}
570 }
571 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var24)
572 if templ_7745c5c3_Err != nil {
573 return templ_7745c5c3_Err
574 }
575 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "\"")
576 if templ_7745c5c3_Err != nil {
577 return templ_7745c5c3_Err
578 }
579 if p.View == view {
580 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, " aria-current=\"true\"")
581 if templ_7745c5c3_Err != nil {
582 return templ_7745c5c3_Err
583 }
584 }
585 if p.Both {
586 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, " data-fire=\"")
587 if templ_7745c5c3_Err != nil {
588 return templ_7745c5c3_Err
589 }
590 var templ_7745c5c3_Var25 string
591 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.ResolveAttributeValue(view)
592 if templ_7745c5c3_Err != nil {
593 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 128, Col: 19}
594 }
595 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var25)
596 if templ_7745c5c3_Err != nil {
597 return templ_7745c5c3_Err
598 }
599 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "\" :aria-current=\"q('#diffs').attr['data-diff'] === this.dataset.view ? 'true' : false\"")
600 if templ_7745c5c3_Err != nil {
601 return templ_7745c5c3_Err
602 }
603 }
604 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, ">")
605 if templ_7745c5c3_Err != nil {
606 return templ_7745c5c3_Err
607 }
608 var templ_7745c5c3_Var26 string
609 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(label)
610 if templ_7745c5c3_Err != nil {
611 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 131, Col: 9}
612 }
613 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
614 if templ_7745c5c3_Err != nil {
615 return templ_7745c5c3_Err
616 }
617 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<kbd aria-hidden=\"true\">")
618 if templ_7745c5c3_Err != nil {
619 return templ_7745c5c3_Err
620 }
621 var templ_7745c5c3_Var27 string
622 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(key)
623 if templ_7745c5c3_Err != nil {
624 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 131, Col: 40}
625 }
626 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
627 if templ_7745c5c3_Err != nil {
628 return templ_7745c5c3_Err
629 }
630 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</kbd></a>")
631 if templ_7745c5c3_Err != nil {
632 return templ_7745c5c3_Err
633 }
634 return nil
635 })
636}
637
638// collapseButton folds every file of the diff, or opens them all again when
639// none is open; its label follows the state.
640func collapseButton() templ.Component {
641 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
642 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
643 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
644 return templ_7745c5c3_CtxErr
645 }
646 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
647 if !templ_7745c5c3_IsBuffer {
648 defer func() {
649 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
650 if templ_7745c5c3_Err == nil {
651 templ_7745c5c3_Err = templ_7745c5c3_BufErr
652 }
653 }()
654 }
655 ctx = templ.InitializeContext(ctx)
656 templ_7745c5c3_Var28 := templ.GetChildren(ctx)
657 if templ_7745c5c3_Var28 == nil {
658 templ_7745c5c3_Var28 = templ.NopComponent
659 }
660 ctx = templ.ClearChildren(ctx)
661 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<button type=\"button\" aria-keyshortcuts=\"x\" data-js data-fire=\"collapse\" class=\"btn\"><span hx-live=\"this.textContent = q('[data-file][open]').count || !q('[data-file]').count ? 'Collapse all' : 'Expand all'\">Collapse all</span><kbd aria-hidden=\"true\">x</kbd></button>")
662 if templ_7745c5c3_Err != nil {
663 return templ_7745c5c3_Err
664 }
665 return nil
666 })
667}
668
669func personView(pr Person) templ.Component {
670 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
671 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
672 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
673 return templ_7745c5c3_CtxErr
674 }
675 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
676 if !templ_7745c5c3_IsBuffer {
677 defer func() {
678 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
679 if templ_7745c5c3_Err == nil {
680 templ_7745c5c3_Err = templ_7745c5c3_BufErr
681 }
682 }()
683 }
684 ctx = templ.InitializeContext(ctx)
685 templ_7745c5c3_Var29 := templ.GetChildren(ctx)
686 if templ_7745c5c3_Var29 == nil {
687 templ_7745c5c3_Var29 = templ.NopComponent
688 }
689 ctx = templ.ClearChildren(ctx)
690 var templ_7745c5c3_Var30 string
691 templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(pr.Name)
692 if templ_7745c5c3_Err != nil {
693 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 143, Col: 10}
694 }
695 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
696 if templ_7745c5c3_Err != nil {
697 return templ_7745c5c3_Err
698 }
699 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, " ")
700 if templ_7745c5c3_Err != nil {
701 return templ_7745c5c3_Err
702 }
703 if pr.WhenAt != "" {
704 var templ_7745c5c3_Var31 string
705 templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(" · ")
706 if templ_7745c5c3_Err != nil {
707 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 145, Col: 10}
708 }
709 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
710 if templ_7745c5c3_Err != nil {
711 return templ_7745c5c3_Err
712 }
713 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "<time datetime=\"")
714 if templ_7745c5c3_Err != nil {
715 return templ_7745c5c3_Err
716 }
717 var templ_7745c5c3_Var32 string
718 templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.ResolveAttributeValue(pr.WhenAt)
719 if templ_7745c5c3_Err != nil {
720 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 145, Col: 38}
721 }
722 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32)
723 if templ_7745c5c3_Err != nil {
724 return templ_7745c5c3_Err
725 }
726 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "\" title=\"")
727 if templ_7745c5c3_Err != nil {
728 return templ_7745c5c3_Err
729 }
730 var templ_7745c5c3_Var33 string
731 templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(pr.Abs)
732 if templ_7745c5c3_Err != nil {
733 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 145, Col: 55}
734 }
735 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33)
736 if templ_7745c5c3_Err != nil {
737 return templ_7745c5c3_Err
738 }
739 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "\">")
740 if templ_7745c5c3_Err != nil {
741 return templ_7745c5c3_Err
742 }
743 var templ_7745c5c3_Var34 string
744 templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(pr.When)
745 if templ_7745c5c3_Err != nil {
746 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 145, Col: 67}
747 }
748 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
749 if templ_7745c5c3_Err != nil {
750 return templ_7745c5c3_Err
751 }
752 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "</time>")
753 if templ_7745c5c3_Err != nil {
754 return templ_7745c5c3_Err
755 }
756 var templ_7745c5c3_Var35 string
757 templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(" · " + pr.Abs)
758 if templ_7745c5c3_Err != nil {
759 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 145, Col: 93}
760 }
761 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
762 if templ_7745c5c3_Err != nil {
763 return templ_7745c5c3_Err
764 }
765 }
766 return nil
767 })
768}
769
770func commitRail(p CommitPage) templ.Component {
771 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
772 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
773 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
774 return templ_7745c5c3_CtxErr
775 }
776 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
777 if !templ_7745c5c3_IsBuffer {
778 defer func() {
779 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
780 if templ_7745c5c3_Err == nil {
781 templ_7745c5c3_Err = templ_7745c5c3_BufErr
782 }
783 }()
784 }
785 ctx = templ.InitializeContext(ctx)
786 templ_7745c5c3_Var36 := templ.GetChildren(ctx)
787 if templ_7745c5c3_Var36 == nil {
788 templ_7745c5c3_Var36 = templ.NopComponent
789 }
790 ctx = templ.ClearChildren(ctx)
791 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "<section aria-labelledby=\"r-files\"><h2 id=\"r-files\">Files <span class=\"count\">")
792 if templ_7745c5c3_Err != nil {
793 return templ_7745c5c3_Err
794 }
795 var templ_7745c5c3_Var37 string
796 templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Files)))
797 if templ_7745c5c3_Err != nil {
798 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 151, Col: 65}
799 }
800 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
801 if templ_7745c5c3_Err != nil {
802 return templ_7745c5c3_Err
803 }
804 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "</span></h2>")
805 if templ_7745c5c3_Err != nil {
806 return templ_7745c5c3_Err
807 }
808 templ_7745c5c3_Err = FileList(p.Files).Render(ctx, templ_7745c5c3_Buffer)
809 if templ_7745c5c3_Err != nil {
810 return templ_7745c5c3_Err
811 }
812 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</section>")
813 if templ_7745c5c3_Err != nil {
814 return templ_7745c5c3_Err
815 }
816 return nil
817 })
818}
819
820// FileList is the table of contents of a diff: status letter, path, +n -m
821// and an ASCII bar. The row of the file in view is marked.
822func FileList(files []DiffFile) templ.Component {
823 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
824 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
825 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
826 return templ_7745c5c3_CtxErr
827 }
828 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
829 if !templ_7745c5c3_IsBuffer {
830 defer func() {
831 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
832 if templ_7745c5c3_Err == nil {
833 templ_7745c5c3_Err = templ_7745c5c3_BufErr
834 }
835 }()
836 }
837 ctx = templ.InitializeContext(ctx)
838 templ_7745c5c3_Var38 := templ.GetChildren(ctx)
839 if templ_7745c5c3_Var38 == nil {
840 templ_7745c5c3_Var38 = templ.NopComponent
841 }
842 ctx = templ.ClearChildren(ctx)
843 if len(files) > fileFilterMin {
844 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<div class=\"ffilter\"><label for=\"files-filter\" class=\"sr\">filter the changed files</label> <input id=\"files-filter\" type=\"search\" placeholder=\"Filter files…\" autocomplete=\"off\" data-pick=\".files > li\" hx-on:input=\"ermite.filter(this)\"></div>")
845 if templ_7745c5c3_Err != nil {
846 return templ_7745c5c3_Err
847 }
848 }
849 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "<ol class=\"files\" aria-label=\"Changed files\">")
850 if templ_7745c5c3_Err != nil {
851 return templ_7745c5c3_Err
852 }
853 for _, f := range files {
854 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "<li><a href=\"")
855 if templ_7745c5c3_Err != nil {
856 return templ_7745c5c3_Err
857 }
858 var templ_7745c5c3_Var39 templ.SafeURL
859 templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("#" + f.ID))
860 if templ_7745c5c3_Err != nil {
861 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 176, Col: 37}
862 }
863 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39))
864 if templ_7745c5c3_Err != nil {
865 return templ_7745c5c3_Err
866 }
867 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 77, "\" title=\"")
868 if templ_7745c5c3_Err != nil {
869 return templ_7745c5c3_Err
870 }
871 var templ_7745c5c3_Var40 string
872 templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path)
873 if templ_7745c5c3_Err != nil {
874 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 177, Col: 19}
875 }
876 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var40)
877 if templ_7745c5c3_Err != nil {
878 return templ_7745c5c3_Err
879 }
880 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 78, "\" hx-on:click=\"(window.ermiteMR?.openFile || ermite.openFile)(this.hash.slice(1))\"><span class=\"st\" data-st=\"")
881 if templ_7745c5c3_Err != nil {
882 return templ_7745c5c3_Err
883 }
884 var templ_7745c5c3_Var41 string
885 templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Status)
886 if templ_7745c5c3_Err != nil {
887 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 180, Col: 40}
888 }
889 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var41)
890 if templ_7745c5c3_Err != nil {
891 return templ_7745c5c3_Err
892 }
893 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 79, "\" title=\"")
894 if templ_7745c5c3_Err != nil {
895 return templ_7745c5c3_Err
896 }
897 var templ_7745c5c3_Var42 string
898 templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.ResolveAttributeValue(statusName(f.Status))
899 if templ_7745c5c3_Err != nil {
900 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 180, Col: 71}
901 }
902 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var42)
903 if templ_7745c5c3_Err != nil {
904 return templ_7745c5c3_Err
905 }
906 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 80, "\">")
907 if templ_7745c5c3_Err != nil {
908 return templ_7745c5c3_Err
909 }
910 var templ_7745c5c3_Var43 string
911 templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(f.Status)
912 if templ_7745c5c3_Err != nil {
913 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 180, Col: 84}
914 }
915 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43))
916 if templ_7745c5c3_Err != nil {
917 return templ_7745c5c3_Err
918 }
919 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 81, "</span> <span class=\"nm\"><span class=\"p\">")
920 if templ_7745c5c3_Err != nil {
921 return templ_7745c5c3_Err
922 }
923 var templ_7745c5c3_Var44 string
924 templ_7745c5c3_Var44, templ_7745c5c3_Err = templ.JoinStringErrs(f.Name)
925 if templ_7745c5c3_Err != nil {
926 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 181, Col: 46}
927 }
928 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var44))
929 if templ_7745c5c3_Err != nil {
930 return templ_7745c5c3_Err
931 }
932 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 82, "</span>")
933 if templ_7745c5c3_Err != nil {
934 return templ_7745c5c3_Err
935 }
936 var templ_7745c5c3_Var45 string
937 templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
938 if templ_7745c5c3_Err != nil {
939 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 181, Col: 60}
940 }
941 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45))
942 if templ_7745c5c3_Err != nil {
943 return templ_7745c5c3_Err
944 }
945 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 83, "<span class=\"d\"><bdi>")
946 if templ_7745c5c3_Err != nil {
947 return templ_7745c5c3_Err
948 }
949 var templ_7745c5c3_Var46 string
950 templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(f.Dir)
951 if templ_7745c5c3_Err != nil {
952 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 181, Col: 90}
953 }
954 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46))
955 if templ_7745c5c3_Err != nil {
956 return templ_7745c5c3_Err
957 }
958 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 84, "</bdi></span></span> ")
959 if templ_7745c5c3_Err != nil {
960 return templ_7745c5c3_Err
961 }
962 if f.OpenNotes > 0 {
963 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 85, "<span class=\"cn\" title=\"")
964 if templ_7745c5c3_Err != nil {
965 return templ_7745c5c3_Err
966 }
967 var templ_7745c5c3_Var47 string
968 templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.ResolveAttributeValue(plural(f.OpenNotes, "open comment", "open comments"))
969 if templ_7745c5c3_Err != nil {
970 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 183, Col: 83}
971 }
972 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var47)
973 if templ_7745c5c3_Err != nil {
974 return templ_7745c5c3_Err
975 }
976 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 86, "\">")
977 if templ_7745c5c3_Err != nil {
978 return templ_7745c5c3_Err
979 }
980 var templ_7745c5c3_Var48 string
981 templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.OpenNotes))
982 if templ_7745c5c3_Err != nil {
983 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 183, Col: 105}
984 }
985 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48))
986 if templ_7745c5c3_Err != nil {
987 return templ_7745c5c3_Err
988 }
989 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 87, "</span> ")
990 if templ_7745c5c3_Err != nil {
991 return templ_7745c5c3_Err
992 }
993 } else if f.Notes > 0 {
994 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "<span class=\"cn done\" title=\"")
995 if templ_7745c5c3_Err != nil {
996 return templ_7745c5c3_Err
997 }
998 var templ_7745c5c3_Var49 string
999 templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.ResolveAttributeValue(plural(f.Notes, "resolved comment", "resolved comments"))
1000 if templ_7745c5c3_Err != nil {
1001 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 185, Col: 92}
1002 }
1003 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var49)
1004 if templ_7745c5c3_Err != nil {
1005 return templ_7745c5c3_Err
1006 }
1007 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 89, "\">")
1008 if templ_7745c5c3_Err != nil {
1009 return templ_7745c5c3_Err
1010 }
1011 var templ_7745c5c3_Var50 string
1012 templ_7745c5c3_Var50, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Notes))
1013 if templ_7745c5c3_Err != nil {
1014 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 185, Col: 110}
1015 }
1016 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var50))
1017 if templ_7745c5c3_Err != nil {
1018 return templ_7745c5c3_Err
1019 }
1020 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 90, "</span> ")
1021 if templ_7745c5c3_Err != nil {
1022 return templ_7745c5c3_Err
1023 }
1024 }
1025 if f.Bin {
1026 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 91, "<span class=\"n mute\">bin</span>")
1027 if templ_7745c5c3_Err != nil {
1028 return templ_7745c5c3_Err
1029 }
1030 } else {
1031 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 92, "<span class=\"n\"><span class=\"plus\">+")
1032 if templ_7745c5c3_Err != nil {
1033 return templ_7745c5c3_Err
1034 }
1035 var templ_7745c5c3_Var51 string
1036 templ_7745c5c3_Var51, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Add))
1037 if templ_7745c5c3_Err != nil {
1038 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 190, Col: 55}
1039 }
1040 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var51))
1041 if templ_7745c5c3_Err != nil {
1042 return templ_7745c5c3_Err
1043 }
1044 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 93, "</span> <span class=\"minus\">-")
1045 if templ_7745c5c3_Err != nil {
1046 return templ_7745c5c3_Err
1047 }
1048 var templ_7745c5c3_Var52 string
1049 templ_7745c5c3_Var52, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Del))
1050 if templ_7745c5c3_Err != nil {
1051 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 190, Col: 99}
1052 }
1053 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var52))
1054 if templ_7745c5c3_Err != nil {
1055 return templ_7745c5c3_Err
1056 }
1057 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 94, "</span></span>")
1058 if templ_7745c5c3_Err != nil {
1059 return templ_7745c5c3_Err
1060 }
1061 }
1062 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 95, "</a></li>")
1063 if templ_7745c5c3_Err != nil {
1064 return templ_7745c5c3_Err
1065 }
1066 }
1067 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 96, "</ol>")
1068 if templ_7745c5c3_Err != nil {
1069 return templ_7745c5c3_Err
1070 }
1071 return nil
1072 })
1073}
1074
1075// DiffFileView is one file of the diff: a <details> (per-file collapse). The
1076// unified and the split tables are both in it; #diffs[data-diff] shows one.
1077// Every changed line keeps its +/- marker, so a change is never conveyed by
1078// colour alone.
1079func DiffFileView(f DiffFile, p DiffView) templ.Component {
1080 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1081 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1082 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1083 return templ_7745c5c3_CtxErr
1084 }
1085 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1086 if !templ_7745c5c3_IsBuffer {
1087 defer func() {
1088 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1089 if templ_7745c5c3_Err == nil {
1090 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1091 }
1092 }()
1093 }
1094 ctx = templ.InitializeContext(ctx)
1095 templ_7745c5c3_Var53 := templ.GetChildren(ctx)
1096 if templ_7745c5c3_Var53 == nil {
1097 templ_7745c5c3_Var53 = templ.NopComponent
1098 }
1099 ctx = templ.ClearChildren(ctx)
1100 var templ_7745c5c3_Var54 = []any{"dfile", "lnw-" + itoa(f.Digits)}
1101 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var54...)
1102 if templ_7745c5c3_Err != nil {
1103 return templ_7745c5c3_Err
1104 }
1105 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 97, "<details class=\"")
1106 if templ_7745c5c3_Err != nil {
1107 return templ_7745c5c3_Err
1108 }
1109 var templ_7745c5c3_Var55 string
1110 templ_7745c5c3_Var55, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var54).String())
1111 if templ_7745c5c3_Err != nil {
1112 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1113 }
1114 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var55)
1115 if templ_7745c5c3_Err != nil {
1116 return templ_7745c5c3_Err
1117 }
1118 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 98, "\" id=\"")
1119 if templ_7745c5c3_Err != nil {
1120 return templ_7745c5c3_Err
1121 }
1122 var templ_7745c5c3_Var56 string
1123 templ_7745c5c3_Var56, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID)
1124 if templ_7745c5c3_Err != nil {
1125 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 205, Col: 11}
1126 }
1127 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var56)
1128 if templ_7745c5c3_Err != nil {
1129 return templ_7745c5c3_Err
1130 }
1131 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 99, "\" data-file")
1132 if templ_7745c5c3_Err != nil {
1133 return templ_7745c5c3_Err
1134 }
1135 if f.Open {
1136 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 100, " open")
1137 if templ_7745c5c3_Err != nil {
1138 return templ_7745c5c3_Err
1139 }
1140 }
1141 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 101, "><summary><span class=\"st\">")
1142 if templ_7745c5c3_Err != nil {
1143 return templ_7745c5c3_Err
1144 }
1145 var templ_7745c5c3_Var57 string
1146 templ_7745c5c3_Var57, templ_7745c5c3_Err = templ.JoinStringErrs(f.Status)
1147 if templ_7745c5c3_Err != nil {
1148 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 30}
1149 }
1150 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var57))
1151 if templ_7745c5c3_Err != nil {
1152 return templ_7745c5c3_Err
1153 }
1154 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 102, "</span>")
1155 if templ_7745c5c3_Err != nil {
1156 return templ_7745c5c3_Err
1157 }
1158 var templ_7745c5c3_Var58 string
1159 templ_7745c5c3_Var58, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1160 if templ_7745c5c3_Err != nil {
1161 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 44}
1162 }
1163 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var58))
1164 if templ_7745c5c3_Err != nil {
1165 return templ_7745c5c3_Err
1166 }
1167 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 103, "<span class=\"p\">")
1168 if templ_7745c5c3_Err != nil {
1169 return templ_7745c5c3_Err
1170 }
1171 var templ_7745c5c3_Var59 string
1172 templ_7745c5c3_Var59, templ_7745c5c3_Err = templ.JoinStringErrs(f.Path)
1173 if templ_7745c5c3_Err != nil {
1174 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 70}
1175 }
1176 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var59))
1177 if templ_7745c5c3_Err != nil {
1178 return templ_7745c5c3_Err
1179 }
1180 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 104, "</span>")
1181 if templ_7745c5c3_Err != nil {
1182 return templ_7745c5c3_Err
1183 }
1184 var templ_7745c5c3_Var60 string
1185 templ_7745c5c3_Var60, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1186 if templ_7745c5c3_Err != nil {
1187 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 84}
1188 }
1189 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var60))
1190 if templ_7745c5c3_Err != nil {
1191 return templ_7745c5c3_Err
1192 }
1193 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 105, "<span class=\"plus\">+")
1194 if templ_7745c5c3_Err != nil {
1195 return templ_7745c5c3_Err
1196 }
1197 var templ_7745c5c3_Var61 string
1198 templ_7745c5c3_Var61, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Add))
1199 if templ_7745c5c3_Err != nil {
1200 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 119}
1201 }
1202 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var61))
1203 if templ_7745c5c3_Err != nil {
1204 return templ_7745c5c3_Err
1205 }
1206 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 106, "</span>")
1207 if templ_7745c5c3_Err != nil {
1208 return templ_7745c5c3_Err
1209 }
1210 var templ_7745c5c3_Var62 string
1211 templ_7745c5c3_Var62, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1212 if templ_7745c5c3_Err != nil {
1213 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 133}
1214 }
1215 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var62))
1216 if templ_7745c5c3_Err != nil {
1217 return templ_7745c5c3_Err
1218 }
1219 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 107, "<span class=\"minus\">-")
1220 if templ_7745c5c3_Err != nil {
1221 return templ_7745c5c3_Err
1222 }
1223 var templ_7745c5c3_Var63 string
1224 templ_7745c5c3_Var63, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(f.Del))
1225 if templ_7745c5c3_Err != nil {
1226 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 212, Col: 169}
1227 }
1228 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var63))
1229 if templ_7745c5c3_Err != nil {
1230 return templ_7745c5c3_Err
1231 }
1232 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 108, "</span> ")
1233 if templ_7745c5c3_Err != nil {
1234 return templ_7745c5c3_Err
1235 }
1236 if f.Note != "" {
1237 var templ_7745c5c3_Var64 string
1238 templ_7745c5c3_Var64, templ_7745c5c3_Err = templ.JoinStringErrs(" ")
1239 if templ_7745c5c3_Err != nil {
1240 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 214, Col: 9}
1241 }
1242 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var64))
1243 if templ_7745c5c3_Err != nil {
1244 return templ_7745c5c3_Err
1245 }
1246 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 109, "<span class=\"note\">")
1247 if templ_7745c5c3_Err != nil {
1248 return templ_7745c5c3_Err
1249 }
1250 var templ_7745c5c3_Var65 string
1251 templ_7745c5c3_Var65, templ_7745c5c3_Err = templ.JoinStringErrs(f.Note)
1252 if templ_7745c5c3_Err != nil {
1253 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 214, Col: 38}
1254 }
1255 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var65))
1256 if templ_7745c5c3_Err != nil {
1257 return templ_7745c5c3_Err
1258 }
1259 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 110, "</span>")
1260 if templ_7745c5c3_Err != nil {
1261 return templ_7745c5c3_Err
1262 }
1263 }
1264 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 111, "</summary> ")
1265 if templ_7745c5c3_Err != nil {
1266 return templ_7745c5c3_Err
1267 }
1268 if f.Lazy {
1269 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 112, " ")
1270 if templ_7745c5c3_Err != nil {
1271 return templ_7745c5c3_Err
1272 }
1273 var templ_7745c5c3_Var66 = []any{"dlazy", "dlazy-" + itoa(f.Height)}
1274 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var66...)
1275 if templ_7745c5c3_Err != nil {
1276 return templ_7745c5c3_Err
1277 }
1278 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 113, "<div class=\"")
1279 if templ_7745c5c3_Err != nil {
1280 return templ_7745c5c3_Err
1281 }
1282 var templ_7745c5c3_Var67 string
1283 templ_7745c5c3_Var67, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var66).String())
1284 if templ_7745c5c3_Err != nil {
1285 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1286 }
1287 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var67)
1288 if templ_7745c5c3_Err != nil {
1289 return templ_7745c5c3_Err
1290 }
1291 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 114, "\" data-src=\"")
1292 if templ_7745c5c3_Err != nil {
1293 return templ_7745c5c3_Err
1294 }
1295 var templ_7745c5c3_Var68 string
1296 templ_7745c5c3_Var68, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Src)
1297 if templ_7745c5c3_Err != nil {
1298 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 221, Col: 69}
1299 }
1300 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var68)
1301 if templ_7745c5c3_Err != nil {
1302 return templ_7745c5c3_Err
1303 }
1304 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 115, "\" data-notes=\"")
1305 if templ_7745c5c3_Err != nil {
1306 return templ_7745c5c3_Err
1307 }
1308 var templ_7745c5c3_Var69 string
1309 templ_7745c5c3_Var69, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Comments)
1310 if templ_7745c5c3_Err != nil {
1311 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 221, Col: 95}
1312 }
1313 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var69)
1314 if templ_7745c5c3_Err != nil {
1315 return templ_7745c5c3_Err
1316 }
1317 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 116, "\"><a href=\"")
1318 if templ_7745c5c3_Err != nil {
1319 return templ_7745c5c3_Err
1320 }
1321 var templ_7745c5c3_Var70 templ.SafeURL
1322 templ_7745c5c3_Var70, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL("?from=" + itoa(f.From) + "#" + f.ID))
1323 if templ_7745c5c3_Err != nil {
1324 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 222, Col: 65}
1325 }
1326 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var70))
1327 if templ_7745c5c3_Err != nil {
1328 return templ_7745c5c3_Err
1329 }
1330 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "\">show this file</a></div>")
1331 if templ_7745c5c3_Err != nil {
1332 return templ_7745c5c3_Err
1333 }
1334 } else if len(f.Hunks) > 0 {
1335 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 118, "<div class=\"dscroll\">")
1336 if templ_7745c5c3_Err != nil {
1337 return templ_7745c5c3_Err
1338 }
1339 if p.ShowUnified {
1340 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 119, "<table class=\"dt uni\" aria-label=\"")
1341 if templ_7745c5c3_Err != nil {
1342 return templ_7745c5c3_Err
1343 }
1344 var templ_7745c5c3_Var71 string
1345 templ_7745c5c3_Var71, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path + ", unified")
1346 if templ_7745c5c3_Err != nil {
1347 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 227, Col: 60}
1348 }
1349 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var71)
1350 if templ_7745c5c3_Err != nil {
1351 return templ_7745c5c3_Err
1352 }
1353 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 120, "\">")
1354 if templ_7745c5c3_Err != nil {
1355 return templ_7745c5c3_Err
1356 }
1357 for _, h := range f.Hunks {
1358 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 121, "<tbody>")
1359 if templ_7745c5c3_Err != nil {
1360 return templ_7745c5c3_Err
1361 }
1362 if h.Gap != nil {
1363 templ_7745c5c3_Err = gapRow(*h.Gap, 4).Render(ctx, templ_7745c5c3_Buffer)
1364 if templ_7745c5c3_Err != nil {
1365 return templ_7745c5c3_Err
1366 }
1367 }
1368 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 122, "<tr class=\"hunk\"><td colspan=\"4\">")
1369 if templ_7745c5c3_Err != nil {
1370 return templ_7745c5c3_Err
1371 }
1372 var templ_7745c5c3_Var72 string
1373 templ_7745c5c3_Var72, templ_7745c5c3_Err = templ.JoinStringErrs(h.Header)
1374 if templ_7745c5c3_Err != nil {
1375 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 233, Col: 51}
1376 }
1377 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var72))
1378 if templ_7745c5c3_Err != nil {
1379 return templ_7745c5c3_Err
1380 }
1381 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 123, "</td></tr>")
1382 if templ_7745c5c3_Err != nil {
1383 return templ_7745c5c3_Err
1384 }
1385 for _, ln := range h.Lines {
1386 var templ_7745c5c3_Var73 = []any{ln.Kind, templ.KV("sel", ln.Selected)}
1387 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var73...)
1388 if templ_7745c5c3_Err != nil {
1389 return templ_7745c5c3_Err
1390 }
1391 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 124, "<tr class=\"")
1392 if templ_7745c5c3_Err != nil {
1393 return templ_7745c5c3_Err
1394 }
1395 var templ_7745c5c3_Var74 string
1396 templ_7745c5c3_Var74, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var73).String())
1397 if templ_7745c5c3_Err != nil {
1398 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1399 }
1400 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var74)
1401 if templ_7745c5c3_Err != nil {
1402 return templ_7745c5c3_Err
1403 }
1404 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 125, "\"><td class=\"ln\">")
1405 if templ_7745c5c3_Err != nil {
1406 return templ_7745c5c3_Err
1407 }
1408 templ_7745c5c3_Err = gutter(ln.Old, ln.OldHref).Render(ctx, templ_7745c5c3_Buffer)
1409 if templ_7745c5c3_Err != nil {
1410 return templ_7745c5c3_Err
1411 }
1412 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 126, "</td><td class=\"ln\">")
1413 if templ_7745c5c3_Err != nil {
1414 return templ_7745c5c3_Err
1415 }
1416 templ_7745c5c3_Err = gutter(ln.New, ln.NewHref).Render(ctx, templ_7745c5c3_Buffer)
1417 if templ_7745c5c3_Err != nil {
1418 return templ_7745c5c3_Err
1419 }
1420 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 127, "</td><td class=\"m\">")
1421 if templ_7745c5c3_Err != nil {
1422 return templ_7745c5c3_Err
1423 }
1424 var templ_7745c5c3_Var75 string
1425 templ_7745c5c3_Var75, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Mark)
1426 if templ_7745c5c3_Err != nil {
1427 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 238, Col: 33}
1428 }
1429 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var75))
1430 if templ_7745c5c3_Err != nil {
1431 return templ_7745c5c3_Err
1432 }
1433 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 128, "</td><td class=\"tx chroma\">")
1434 if templ_7745c5c3_Err != nil {
1435 return templ_7745c5c3_Err
1436 }
1437 templ_7745c5c3_Err = codeLine(ln).Render(ctx, templ_7745c5c3_Buffer)
1438 if templ_7745c5c3_Err != nil {
1439 return templ_7745c5c3_Err
1440 }
1441 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 129, "</td></tr>")
1442 if templ_7745c5c3_Err != nil {
1443 return templ_7745c5c3_Err
1444 }
1445 if len(ln.Notes) > 0 || ln.Form != nil {
1446 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 130, "<tr class=\"fnote\"><td colspan=\"3\"></td><td>")
1447 if templ_7745c5c3_Err != nil {
1448 return templ_7745c5c3_Err
1449 }
1450 templ_7745c5c3_Err = lineNotes(ln.Notes, ln.Form, "").Render(ctx, templ_7745c5c3_Buffer)
1451 if templ_7745c5c3_Err != nil {
1452 return templ_7745c5c3_Err
1453 }
1454 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 131, "</td></tr>")
1455 if templ_7745c5c3_Err != nil {
1456 return templ_7745c5c3_Err
1457 }
1458 }
1459 }
1460 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 132, "</tbody> ")
1461 if templ_7745c5c3_Err != nil {
1462 return templ_7745c5c3_Err
1463 }
1464 }
1465 if f.Tail != nil {
1466 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 133, "<tbody>")
1467 if templ_7745c5c3_Err != nil {
1468 return templ_7745c5c3_Err
1469 }
1470 templ_7745c5c3_Err = gapRow(*f.Tail, 4).Render(ctx, templ_7745c5c3_Buffer)
1471 if templ_7745c5c3_Err != nil {
1472 return templ_7745c5c3_Err
1473 }
1474 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 134, "</tbody>")
1475 if templ_7745c5c3_Err != nil {
1476 return templ_7745c5c3_Err
1477 }
1478 }
1479 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 135, "</table>")
1480 if templ_7745c5c3_Err != nil {
1481 return templ_7745c5c3_Err
1482 }
1483 }
1484 if p.ShowSplit {
1485 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 136, "<table class=\"dt spl\" aria-label=\"")
1486 if templ_7745c5c3_Err != nil {
1487 return templ_7745c5c3_Err
1488 }
1489 var templ_7745c5c3_Var76 string
1490 templ_7745c5c3_Var76, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Path + ", split")
1491 if templ_7745c5c3_Err != nil {
1492 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 258, Col: 58}
1493 }
1494 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var76)
1495 if templ_7745c5c3_Err != nil {
1496 return templ_7745c5c3_Err
1497 }
1498 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 137, "\"><colgroup><col class=\"c-ln\"><col class=\"c-m\"><col><col class=\"c-ln\"><col class=\"c-m\"><col></colgroup> ")
1499 if templ_7745c5c3_Err != nil {
1500 return templ_7745c5c3_Err
1501 }
1502 for _, h := range f.Hunks {
1503 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 138, "<tbody>")
1504 if templ_7745c5c3_Err != nil {
1505 return templ_7745c5c3_Err
1506 }
1507 if h.Gap != nil {
1508 templ_7745c5c3_Err = gapRow(*h.Gap, 6).Render(ctx, templ_7745c5c3_Buffer)
1509 if templ_7745c5c3_Err != nil {
1510 return templ_7745c5c3_Err
1511 }
1512 }
1513 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 139, "<tr class=\"hunk\"><td colspan=\"6\">")
1514 if templ_7745c5c3_Err != nil {
1515 return templ_7745c5c3_Err
1516 }
1517 var templ_7745c5c3_Var77 string
1518 templ_7745c5c3_Var77, templ_7745c5c3_Err = templ.JoinStringErrs(h.Header)
1519 if templ_7745c5c3_Err != nil {
1520 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 265, Col: 51}
1521 }
1522 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var77))
1523 if templ_7745c5c3_Err != nil {
1524 return templ_7745c5c3_Err
1525 }
1526 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 140, "</td></tr>")
1527 if templ_7745c5c3_Err != nil {
1528 return templ_7745c5c3_Err
1529 }
1530 for _, row := range h.Split {
1531 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 141, "<tr>")
1532 if templ_7745c5c3_Err != nil {
1533 return templ_7745c5c3_Err
1534 }
1535 templ_7745c5c3_Err = splitSide(row.L, true).Render(ctx, templ_7745c5c3_Buffer)
1536 if templ_7745c5c3_Err != nil {
1537 return templ_7745c5c3_Err
1538 }
1539 templ_7745c5c3_Err = splitSide(row.R, false).Render(ctx, templ_7745c5c3_Buffer)
1540 if templ_7745c5c3_Err != nil {
1541 return templ_7745c5c3_Err
1542 }
1543 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 142, "</tr>")
1544 if templ_7745c5c3_Err != nil {
1545 return templ_7745c5c3_Err
1546 }
1547 if notes, form := row.Notes(), row.Form(); len(notes) > 0 || form != nil {
1548 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 143, "<tr class=\"fnote\"><td colspan=\"6\">")
1549 if templ_7745c5c3_Err != nil {
1550 return templ_7745c5c3_Err
1551 }
1552 templ_7745c5c3_Err = lineNotes(notes, form, "-s").Render(ctx, templ_7745c5c3_Buffer)
1553 if templ_7745c5c3_Err != nil {
1554 return templ_7745c5c3_Err
1555 }
1556 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 144, "</td></tr>")
1557 if templ_7745c5c3_Err != nil {
1558 return templ_7745c5c3_Err
1559 }
1560 }
1561 }
1562 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 145, "</tbody> ")
1563 if templ_7745c5c3_Err != nil {
1564 return templ_7745c5c3_Err
1565 }
1566 }
1567 if f.Tail != nil {
1568 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 146, "<tbody>")
1569 if templ_7745c5c3_Err != nil {
1570 return templ_7745c5c3_Err
1571 }
1572 templ_7745c5c3_Err = gapRow(*f.Tail, 6).Render(ctx, templ_7745c5c3_Buffer)
1573 if templ_7745c5c3_Err != nil {
1574 return templ_7745c5c3_Err
1575 }
1576 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 147, "</tbody>")
1577 if templ_7745c5c3_Err != nil {
1578 return templ_7745c5c3_Err
1579 }
1580 }
1581 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 148, "</table>")
1582 if templ_7745c5c3_Err != nil {
1583 return templ_7745c5c3_Err
1584 }
1585 }
1586 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 149, "</div>")
1587 if templ_7745c5c3_Err != nil {
1588 return templ_7745c5c3_Err
1589 }
1590 } else {
1591 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 150, "<p class=\"note pad\">")
1592 if templ_7745c5c3_Err != nil {
1593 return templ_7745c5c3_Err
1594 }
1595 if f.Note != "" {
1596 var templ_7745c5c3_Var78 string
1597 templ_7745c5c3_Var78, templ_7745c5c3_Err = templ.JoinStringErrs(f.Note)
1598 if templ_7745c5c3_Err != nil {
1599 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 290, Col: 13}
1600 }
1601 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var78))
1602 if templ_7745c5c3_Err != nil {
1603 return templ_7745c5c3_Err
1604 }
1605 } else {
1606 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 151, "no textual change.")
1607 if templ_7745c5c3_Err != nil {
1608 return templ_7745c5c3_Err
1609 }
1610 }
1611 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 152, "</p>")
1612 if templ_7745c5c3_Err != nil {
1613 return templ_7745c5c3_Err
1614 }
1615 }
1616 if len(f.Loose) > 0 {
1617 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 153, "<div class=\"dloose\">")
1618 if templ_7745c5c3_Err != nil {
1619 return templ_7745c5c3_Err
1620 }
1621 for _, c := range f.Loose {
1622 templ_7745c5c3_Err = commentView(c, "").Render(ctx, templ_7745c5c3_Buffer)
1623 if templ_7745c5c3_Err != nil {
1624 return templ_7745c5c3_Err
1625 }
1626 }
1627 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 154, "</div>")
1628 if templ_7745c5c3_Err != nil {
1629 return templ_7745c5c3_Err
1630 }
1631 }
1632 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 155, "</details>")
1633 if templ_7745c5c3_Err != nil {
1634 return templ_7745c5c3_Err
1635 }
1636 return nil
1637 })
1638}
1639
1640// MRFiles is a window of files of a merge request, for the placeholders of
1641// the page: the files only, which replace the placeholders of the same ids.
1642func MRFiles(p MRFilesPage) templ.Component {
1643 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1644 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1645 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1646 return templ_7745c5c3_CtxErr
1647 }
1648 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1649 if !templ_7745c5c3_IsBuffer {
1650 defer func() {
1651 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1652 if templ_7745c5c3_Err == nil {
1653 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1654 }
1655 }()
1656 }
1657 ctx = templ.InitializeContext(ctx)
1658 templ_7745c5c3_Var79 := templ.GetChildren(ctx)
1659 if templ_7745c5c3_Var79 == nil {
1660 templ_7745c5c3_Var79 = templ.NopComponent
1661 }
1662 ctx = templ.ClearChildren(ctx)
1663 for _, f := range p.Files {
1664 templ_7745c5c3_Err = DiffFileView(f, p.DiffView).Render(ctx, templ_7745c5c3_Buffer)
1665 if templ_7745c5c3_Err != nil {
1666 return templ_7745c5c3_Err
1667 }
1668 }
1669 return nil
1670 })
1671}
1672
1673// MRFilesMoved answers a window of a diff that is not the one of the page any
1674// more: the placeholder shows it instead of a file of another diff.
1675func MRFilesMoved() templ.Component {
1676 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1677 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1678 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1679 return templ_7745c5c3_CtxErr
1680 }
1681 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1682 if !templ_7745c5c3_IsBuffer {
1683 defer func() {
1684 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1685 if templ_7745c5c3_Err == nil {
1686 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1687 }
1688 }()
1689 }
1690 ctx = templ.InitializeContext(ctx)
1691 templ_7745c5c3_Var80 := templ.GetChildren(ctx)
1692 if templ_7745c5c3_Var80 == nil {
1693 templ_7745c5c3_Var80 = templ.NopComponent
1694 }
1695 ctx = templ.ClearChildren(ctx)
1696 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 156, "<p class=\"notice\" data-moved>this merge request changed since the page was loaded — <a href=\"\">reload</a></p>")
1697 if templ_7745c5c3_Err != nil {
1698 return templ_7745c5c3_Err
1699 }
1700 return nil
1701 })
1702}
1703
1704// gapRow is the row of the hidden lines before a hunk, or of the rest of the
1705// file: a button that loads them in their place (ermite.js, ermite.expand).
1706// Without scripts nothing loads them: hidden.
1707func gapRow(g DiffGap, cols int) templ.Component {
1708 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1709 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1710 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1711 return templ_7745c5c3_CtxErr
1712 }
1713 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1714 if !templ_7745c5c3_IsBuffer {
1715 defer func() {
1716 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1717 if templ_7745c5c3_Err == nil {
1718 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1719 }
1720 }()
1721 }
1722 ctx = templ.InitializeContext(ctx)
1723 templ_7745c5c3_Var81 := templ.GetChildren(ctx)
1724 if templ_7745c5c3_Var81 == nil {
1725 templ_7745c5c3_Var81 = templ.NopComponent
1726 }
1727 ctx = templ.ClearChildren(ctx)
1728 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 157, "<tr class=\"gap\" data-js data-gap=\"")
1729 if templ_7745c5c3_Err != nil {
1730 return templ_7745c5c3_Err
1731 }
1732 var templ_7745c5c3_Var82 string
1733 templ_7745c5c3_Var82, templ_7745c5c3_Err = templ.ResolveAttributeValue(g.Key)
1734 if templ_7745c5c3_Err != nil {
1735 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 324, Col: 41}
1736 }
1737 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var82)
1738 if templ_7745c5c3_Err != nil {
1739 return templ_7745c5c3_Err
1740 }
1741 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 158, "\"><td colspan=\"")
1742 if templ_7745c5c3_Err != nil {
1743 return templ_7745c5c3_Err
1744 }
1745 var templ_7745c5c3_Var83 string
1746 templ_7745c5c3_Var83, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(cols))
1747 if templ_7745c5c3_Err != nil {
1748 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 325, Col: 26}
1749 }
1750 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var83)
1751 if templ_7745c5c3_Err != nil {
1752 return templ_7745c5c3_Err
1753 }
1754 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 159, "\"><button type=\"button\" data-src=\"")
1755 if templ_7745c5c3_Err != nil {
1756 return templ_7745c5c3_Err
1757 }
1758 var templ_7745c5c3_Var84 string
1759 templ_7745c5c3_Var84, templ_7745c5c3_Err = templ.ResolveAttributeValue(g.Src)
1760 if templ_7745c5c3_Err != nil {
1761 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 326, Col: 41}
1762 }
1763 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var84)
1764 if templ_7745c5c3_Err != nil {
1765 return templ_7745c5c3_Err
1766 }
1767 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 160, "\"><span aria-hidden=\"true\">⋯</span> ")
1768 if templ_7745c5c3_Err != nil {
1769 return templ_7745c5c3_Err
1770 }
1771 var templ_7745c5c3_Var85 string
1772 templ_7745c5c3_Var85, templ_7745c5c3_Err = templ.JoinStringErrs(g.Label())
1773 if templ_7745c5c3_Err != nil {
1774 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 327, Col: 51}
1775 }
1776 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var85))
1777 if templ_7745c5c3_Err != nil {
1778 return templ_7745c5c3_Err
1779 }
1780 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 161, "</button></td></tr>")
1781 if templ_7745c5c3_Err != nil {
1782 return templ_7745c5c3_Err
1783 }
1784 return nil
1785 })
1786}
1787
1788// DiffContext is the hidden lines of a gap, for /context: one body a layout,
1789// whose rows replace the rows of the gap in the table of that layout.
1790func DiffContext(c ContextRows) templ.Component {
1791 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1792 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1793 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1794 return templ_7745c5c3_CtxErr
1795 }
1796 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1797 if !templ_7745c5c3_IsBuffer {
1798 defer func() {
1799 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1800 if templ_7745c5c3_Err == nil {
1801 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1802 }
1803 }()
1804 }
1805 ctx = templ.InitializeContext(ctx)
1806 templ_7745c5c3_Var86 := templ.GetChildren(ctx)
1807 if templ_7745c5c3_Var86 == nil {
1808 templ_7745c5c3_Var86 = templ.NopComponent
1809 }
1810 ctx = templ.ClearChildren(ctx)
1811 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 162, "<table><tbody data-for=\"uni\">")
1812 if templ_7745c5c3_Err != nil {
1813 return templ_7745c5c3_Err
1814 }
1815 for _, ln := range c.Lines {
1816 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 163, "<tr class=\"ctx\"><td class=\"ln\">")
1817 if templ_7745c5c3_Err != nil {
1818 return templ_7745c5c3_Err
1819 }
1820 var templ_7745c5c3_Var87 string
1821 templ_7745c5c3_Var87, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Old)
1822 if templ_7745c5c3_Err != nil {
1823 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 340, Col: 28}
1824 }
1825 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var87))
1826 if templ_7745c5c3_Err != nil {
1827 return templ_7745c5c3_Err
1828 }
1829 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 164, "</td><td class=\"ln\">")
1830 if templ_7745c5c3_Err != nil {
1831 return templ_7745c5c3_Err
1832 }
1833 var templ_7745c5c3_Var88 string
1834 templ_7745c5c3_Var88, templ_7745c5c3_Err = templ.JoinStringErrs(ln.New)
1835 if templ_7745c5c3_Err != nil {
1836 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 341, Col: 28}
1837 }
1838 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var88))
1839 if templ_7745c5c3_Err != nil {
1840 return templ_7745c5c3_Err
1841 }
1842 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 165, "</td><td class=\"m\">")
1843 if templ_7745c5c3_Err != nil {
1844 return templ_7745c5c3_Err
1845 }
1846 var templ_7745c5c3_Var89 string
1847 templ_7745c5c3_Var89, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Mark)
1848 if templ_7745c5c3_Err != nil {
1849 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 342, Col: 28}
1850 }
1851 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var89))
1852 if templ_7745c5c3_Err != nil {
1853 return templ_7745c5c3_Err
1854 }
1855 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 166, "</td><td class=\"tx chroma\">")
1856 if templ_7745c5c3_Err != nil {
1857 return templ_7745c5c3_Err
1858 }
1859 templ_7745c5c3_Err = codeLine(ln).Render(ctx, templ_7745c5c3_Buffer)
1860 if templ_7745c5c3_Err != nil {
1861 return templ_7745c5c3_Err
1862 }
1863 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 167, "</td></tr>")
1864 if templ_7745c5c3_Err != nil {
1865 return templ_7745c5c3_Err
1866 }
1867 }
1868 if c.More != nil {
1869 templ_7745c5c3_Err = gapRow(*c.More, 4).Render(ctx, templ_7745c5c3_Buffer)
1870 if templ_7745c5c3_Err != nil {
1871 return templ_7745c5c3_Err
1872 }
1873 }
1874 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 168, "</tbody> <tbody data-for=\"spl\">")
1875 if templ_7745c5c3_Err != nil {
1876 return templ_7745c5c3_Err
1877 }
1878 for i := range c.Lines {
1879 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 169, "<tr>")
1880 if templ_7745c5c3_Err != nil {
1881 return templ_7745c5c3_Err
1882 }
1883 templ_7745c5c3_Err = splitSide(&c.Lines[i], true).Render(ctx, templ_7745c5c3_Buffer)
1884 if templ_7745c5c3_Err != nil {
1885 return templ_7745c5c3_Err
1886 }
1887 templ_7745c5c3_Err = splitSide(&c.Lines[i], false).Render(ctx, templ_7745c5c3_Buffer)
1888 if templ_7745c5c3_Err != nil {
1889 return templ_7745c5c3_Err
1890 }
1891 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 170, "</tr>")
1892 if templ_7745c5c3_Err != nil {
1893 return templ_7745c5c3_Err
1894 }
1895 }
1896 if c.More != nil {
1897 templ_7745c5c3_Err = gapRow(*c.More, 6).Render(ctx, templ_7745c5c3_Buffer)
1898 if templ_7745c5c3_Err != nil {
1899 return templ_7745c5c3_Err
1900 }
1901 }
1902 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 171, "</tbody></table>")
1903 if templ_7745c5c3_Err != nil {
1904 return templ_7745c5c3_Err
1905 }
1906 return nil
1907 })
1908}
1909
1910// splitSide is one half of a row of the split view; a side without a line is
1911// an empty cell.
1912func splitSide(ln *DiffLine, old bool) templ.Component {
1913 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
1914 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
1915 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
1916 return templ_7745c5c3_CtxErr
1917 }
1918 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
1919 if !templ_7745c5c3_IsBuffer {
1920 defer func() {
1921 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
1922 if templ_7745c5c3_Err == nil {
1923 templ_7745c5c3_Err = templ_7745c5c3_BufErr
1924 }
1925 }()
1926 }
1927 ctx = templ.InitializeContext(ctx)
1928 templ_7745c5c3_Var90 := templ.GetChildren(ctx)
1929 if templ_7745c5c3_Var90 == nil {
1930 templ_7745c5c3_Var90 = templ.NopComponent
1931 }
1932 ctx = templ.ClearChildren(ctx)
1933 if ln == nil {
1934 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 172, "<td class=\"ln none\"></td><td class=\"m none\"></td><td class=\"tx none\"></td>")
1935 if templ_7745c5c3_Err != nil {
1936 return templ_7745c5c3_Err
1937 }
1938 } else {
1939 var templ_7745c5c3_Var91 = []any{"ln", ln.Kind, templ.KV("sel", ln.Selected)}
1940 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var91...)
1941 if templ_7745c5c3_Err != nil {
1942 return templ_7745c5c3_Err
1943 }
1944 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 173, "<td class=\"")
1945 if templ_7745c5c3_Err != nil {
1946 return templ_7745c5c3_Err
1947 }
1948 var templ_7745c5c3_Var92 string
1949 templ_7745c5c3_Var92, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var91).String())
1950 if templ_7745c5c3_Err != nil {
1951 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1952 }
1953 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var92)
1954 if templ_7745c5c3_Err != nil {
1955 return templ_7745c5c3_Err
1956 }
1957 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 174, "\">")
1958 if templ_7745c5c3_Err != nil {
1959 return templ_7745c5c3_Err
1960 }
1961 if old {
1962 templ_7745c5c3_Err = gutter(ln.Old, ln.OldHref).Render(ctx, templ_7745c5c3_Buffer)
1963 if templ_7745c5c3_Err != nil {
1964 return templ_7745c5c3_Err
1965 }
1966 } else {
1967 templ_7745c5c3_Err = gutter(ln.New, ln.NewHref).Render(ctx, templ_7745c5c3_Buffer)
1968 if templ_7745c5c3_Err != nil {
1969 return templ_7745c5c3_Err
1970 }
1971 }
1972 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 175, "</td>")
1973 if templ_7745c5c3_Err != nil {
1974 return templ_7745c5c3_Err
1975 }
1976 var templ_7745c5c3_Var93 = []any{"m", ln.Kind, templ.KV("sel", ln.Selected)}
1977 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var93...)
1978 if templ_7745c5c3_Err != nil {
1979 return templ_7745c5c3_Err
1980 }
1981 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 176, "<td class=\"")
1982 if templ_7745c5c3_Err != nil {
1983 return templ_7745c5c3_Err
1984 }
1985 var templ_7745c5c3_Var94 string
1986 templ_7745c5c3_Var94, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var93).String())
1987 if templ_7745c5c3_Err != nil {
1988 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
1989 }
1990 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var94)
1991 if templ_7745c5c3_Err != nil {
1992 return templ_7745c5c3_Err
1993 }
1994 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 177, "\">")
1995 if templ_7745c5c3_Err != nil {
1996 return templ_7745c5c3_Err
1997 }
1998 var templ_7745c5c3_Var95 string
1999 templ_7745c5c3_Var95, templ_7745c5c3_Err = templ.JoinStringErrs(ln.Mark)
2000 if templ_7745c5c3_Err != nil {
2001 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 379, Col: 68}
2002 }
2003 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var95))
2004 if templ_7745c5c3_Err != nil {
2005 return templ_7745c5c3_Err
2006 }
2007 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 178, "</td>")
2008 if templ_7745c5c3_Err != nil {
2009 return templ_7745c5c3_Err
2010 }
2011 var templ_7745c5c3_Var96 = []any{"tx", "chroma", ln.Kind, templ.KV("sel", ln.Selected)}
2012 templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var96...)
2013 if templ_7745c5c3_Err != nil {
2014 return templ_7745c5c3_Err
2015 }
2016 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 179, "<td class=\"")
2017 if templ_7745c5c3_Err != nil {
2018 return templ_7745c5c3_Err
2019 }
2020 var templ_7745c5c3_Var97 string
2021 templ_7745c5c3_Var97, templ_7745c5c3_Err = templ.ResolveAttributeValue(templ.CSSClasses(templ_7745c5c3_Var96).String())
2022 if templ_7745c5c3_Err != nil {
2023 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 1, Col: 0}
2024 }
2025 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var97)
2026 if templ_7745c5c3_Err != nil {
2027 return templ_7745c5c3_Err
2028 }
2029 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 180, "\">")
2030 if templ_7745c5c3_Err != nil {
2031 return templ_7745c5c3_Err
2032 }
2033 templ_7745c5c3_Err = codeLine(*ln).Render(ctx, templ_7745c5c3_Buffer)
2034 if templ_7745c5c3_Err != nil {
2035 return templ_7745c5c3_Err
2036 }
2037 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 181, "</td>")
2038 if templ_7745c5c3_Err != nil {
2039 return templ_7745c5c3_Err
2040 }
2041 }
2042 return nil
2043 })
2044}
2045
2046// gutter is a line number of the gutter. On a merge request that can be
2047// commented on, it links to the form that comments on that line.
2048func gutter(n, href string) templ.Component {
2049 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
2050 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
2051 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
2052 return templ_7745c5c3_CtxErr
2053 }
2054 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
2055 if !templ_7745c5c3_IsBuffer {
2056 defer func() {
2057 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
2058 if templ_7745c5c3_Err == nil {
2059 templ_7745c5c3_Err = templ_7745c5c3_BufErr
2060 }
2061 }()
2062 }
2063 ctx = templ.InitializeContext(ctx)
2064 templ_7745c5c3_Var98 := templ.GetChildren(ctx)
2065 if templ_7745c5c3_Var98 == nil {
2066 templ_7745c5c3_Var98 = templ.NopComponent
2067 }
2068 ctx = templ.ClearChildren(ctx)
2069 if href != "" {
2070 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 182, "<a href=\"")
2071 if templ_7745c5c3_Err != nil {
2072 return templ_7745c5c3_Err
2073 }
2074 var templ_7745c5c3_Var99 templ.SafeURL
2075 templ_7745c5c3_Var99, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
2076 if templ_7745c5c3_Err != nil {
2077 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 388, Col: 31}
2078 }
2079 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var99))
2080 if templ_7745c5c3_Err != nil {
2081 return templ_7745c5c3_Err
2082 }
2083 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 183, "\" title=\"comment on this line\">")
2084 if templ_7745c5c3_Err != nil {
2085 return templ_7745c5c3_Err
2086 }
2087 var templ_7745c5c3_Var100 string
2088 templ_7745c5c3_Var100, templ_7745c5c3_Err = templ.JoinStringErrs(n)
2089 if templ_7745c5c3_Err != nil {
2090 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 388, Col: 66}
2091 }
2092 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var100))
2093 if templ_7745c5c3_Err != nil {
2094 return templ_7745c5c3_Err
2095 }
2096 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 184, "</a>")
2097 if templ_7745c5c3_Err != nil {
2098 return templ_7745c5c3_Err
2099 }
2100 } else {
2101 var templ_7745c5c3_Var101 string
2102 templ_7745c5c3_Var101, templ_7745c5c3_Err = templ.JoinStringErrs(n)
2103 if templ_7745c5c3_Err != nil {
2104 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/diff.templ`, Line: 390, Col: 5}
2105 }
2106 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var101))
2107 if templ_7745c5c3_Err != nil {
2108 return templ_7745c5c3_Err
2109 }
2110 }
2111 return nil
2112 })
2113}
2114
2115var _ = templruntime.GeneratedTemplate