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