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// Tree is a directory as a tree: the file finder on top, then the entries
14// with their last commit, and the notes on what is left out. A directory opens
15// in place (files.js); the keyboard walks the rows (j k l h, the arrows).
16func Tree(l Layout, p TreePage) templ.Component {
17 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
18 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
19 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
20 return templ_7745c5c3_CtxErr
21 }
22 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
23 if !templ_7745c5c3_IsBuffer {
24 defer func() {
25 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
26 if templ_7745c5c3_Err == nil {
27 templ_7745c5c3_Err = templ_7745c5c3_BufErr
28 }
29 }()
30 }
31 ctx = templ.InitializeContext(ctx)
32 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
33 if templ_7745c5c3_Var1 == nil {
34 templ_7745c5c3_Var1 = templ.NopComponent
35 }
36 ctx = templ.ClearChildren(ctx)
37 templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
38 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
39 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
40 if !templ_7745c5c3_IsBuffer {
41 defer func() {
42 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
43 if templ_7745c5c3_Err == nil {
44 templ_7745c5c3_Err = templ_7745c5c3_BufErr
45 }
46 }()
47 }
48 ctx = templ.InitializeContext(ctx)
49 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div class=\"tree-find\"><div class=\"filter wide\"><label for=\"finder-q\" class=\"sr\">find a file</label> <input id=\"finder-q\" type=\"search\" data-filter role=\"combobox\" aria-autocomplete=\"list\" aria-controls=\"finder-list\" aria-expanded=\"false\" placeholder=\"Find a file in this repository…\" autocomplete=\"off\" spellcheck=\"false\" hx-on:focus=\"ermiteFinder.load()\" hx-on:input=\"ermiteFinder.input(this)\" hx-on:keydown=\"ermiteFinder.key(this, event)\"></div><p class=\"tree-keys\" data-js aria-hidden=\"true\"><kbd>j</kbd> <kbd>k</kbd> move · <kbd>l</kbd> open · <kbd>h</kbd> back</p></div><div id=\"finder\" class=\"tree-card\" hidden><p id=\"finder-status\" class=\"dim\" aria-live=\"polite\"></p><ul id=\"finder-list\" class=\"cmd-list\" role=\"listbox\" aria-label=\"Files\"></ul></div><div id=\"tree-view\" class=\"tree-card\"><div class=\"tree-head\"><span class=\"tree-path\">")
50 if templ_7745c5c3_Err != nil {
51 return templ_7745c5c3_Err
52 }
53 var templ_7745c5c3_Var3 string
54 templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(p.Path)
55 if templ_7745c5c3_Err != nil {
56 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 37, Col: 36}
57 }
58 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
59 if templ_7745c5c3_Err != nil {
60 return templ_7745c5c3_Err
61 }
62 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</span> ")
63 if templ_7745c5c3_Err != nil {
64 return templ_7745c5c3_Err
65 }
66 if p.Up != "" {
67 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "<a class=\"tree-up\" href=\"")
68 if templ_7745c5c3_Err != nil {
69 return templ_7745c5c3_Err
70 }
71 var templ_7745c5c3_Var4 templ.SafeURL
72 templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Up))
73 if templ_7745c5c3_Err != nil {
74 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 39, Col: 50}
75 }
76 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
77 if templ_7745c5c3_Err != nil {
78 return templ_7745c5c3_Err
79 }
80 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\" title=\"parent directory (h)\">..</a> ")
81 if templ_7745c5c3_Err != nil {
82 return templ_7745c5c3_Err
83 }
84 }
85 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<span class=\"tree-count\">")
86 if templ_7745c5c3_Err != nil {
87 return templ_7745c5c3_Err
88 }
89 var templ_7745c5c3_Var5 string
90 templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Rows)))
91 if templ_7745c5c3_Err != nil {
92 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 41, Col: 48}
93 }
94 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
95 if templ_7745c5c3_Err != nil {
96 return templ_7745c5c3_Err
97 }
98 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ")
99 if templ_7745c5c3_Err != nil {
100 return templ_7745c5c3_Err
101 }
102 var templ_7745c5c3_Var6 string
103 templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(p.Unit())
104 if templ_7745c5c3_Err != nil {
105 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 41, Col: 61}
106 }
107 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
108 if templ_7745c5c3_Err != nil {
109 return templ_7745c5c3_Err
110 }
111 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</span></div><ul id=\"tree-rows\" class=\"tree\" role=\"tree\" aria-label=\"Entries\" data-rows data-tree")
112 if templ_7745c5c3_Err != nil {
113 return templ_7745c5c3_Err
114 }
115 if p.Up != "" {
116 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " data-up=\"")
117 if templ_7745c5c3_Err != nil {
118 return templ_7745c5c3_Err
119 }
120 var templ_7745c5c3_Var7 string
121 templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.ResolveAttributeValue(p.Up)
122 if templ_7745c5c3_Err != nil {
123 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 51, Col: 19}
124 }
125 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var7)
126 if templ_7745c5c3_Err != nil {
127 return templ_7745c5c3_Err
128 }
129 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\"")
130 if templ_7745c5c3_Err != nil {
131 return templ_7745c5c3_Err
132 }
133 }
134 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " hx-on:click=\"ermiteTree.click(event)\">")
135 if templ_7745c5c3_Err != nil {
136 return templ_7745c5c3_Err
137 }
138 templ_7745c5c3_Err = TreeRows(p).Render(ctx, templ_7745c5c3_Buffer)
139 if templ_7745c5c3_Err != nil {
140 return templ_7745c5c3_Err
141 }
142 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</ul>")
143 if templ_7745c5c3_Err != nil {
144 return templ_7745c5c3_Err
145 }
146 if len(p.Rows) == 0 {
147 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<p class=\"lede dim\">this directory is empty.</p>")
148 if templ_7745c5c3_Err != nil {
149 return templ_7745c5c3_Err
150 }
151 }
152 for _, n := range p.Notes {
153 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<p class=\"note\">")
154 if templ_7745c5c3_Err != nil {
155 return templ_7745c5c3_Err
156 }
157 var templ_7745c5c3_Var8 string
158 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(n)
159 if templ_7745c5c3_Err != nil {
160 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 61, Col: 23}
161 }
162 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
163 if templ_7745c5c3_Err != nil {
164 return templ_7745c5c3_Err
165 }
166 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</p>")
167 if templ_7745c5c3_Err != nil {
168 return templ_7745c5c3_Err
169 }
170 }
171 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</div>")
172 if templ_7745c5c3_Err != nil {
173 return templ_7745c5c3_Err
174 }
175 return nil
176 })
177 templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
178 if templ_7745c5c3_Err != nil {
179 return templ_7745c5c3_Err
180 }
181 return nil
182 })
183}
184
185// TreeRows is the rows of a directory alone: what files.js inserts under a
186// directory it opens in place. When the directory has more entries than are
187// listed, the last row links to its page.
188func TreeRows(p TreePage) templ.Component {
189 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
190 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
191 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
192 return templ_7745c5c3_CtxErr
193 }
194 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
195 if !templ_7745c5c3_IsBuffer {
196 defer func() {
197 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
198 if templ_7745c5c3_Err == nil {
199 templ_7745c5c3_Err = templ_7745c5c3_BufErr
200 }
201 }()
202 }
203 ctx = templ.InitializeContext(ctx)
204 templ_7745c5c3_Var9 := templ.GetChildren(ctx)
205 if templ_7745c5c3_Var9 == nil {
206 templ_7745c5c3_Var9 = templ.NopComponent
207 }
208 ctx = templ.ClearChildren(ctx)
209 for _, r := range p.Rows {
210 templ_7745c5c3_Err = TreeRowView(r).Render(ctx, templ_7745c5c3_Buffer)
211 if templ_7745c5c3_Err != nil {
212 return templ_7745c5c3_Err
213 }
214 }
215 if p.More != "" {
216 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<li class=\"tree-more\" role=\"treeitem\" aria-level=\"1\" aria-posinset=\"")
217 if templ_7745c5c3_Err != nil {
218 return templ_7745c5c3_Err
219 }
220 var templ_7745c5c3_Var10 string
221 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(p.MorePos))
222 if templ_7745c5c3_Err != nil {
223 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 75, Col: 86}
224 }
225 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10)
226 if templ_7745c5c3_Err != nil {
227 return templ_7745c5c3_Err
228 }
229 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\" aria-setsize=\"-1\" data-depth=\"0\"><span class=\"t-main\"><span class=\"t-twig\" aria-hidden=\"true\"></span> <span class=\"t-node\" aria-hidden=\"true\"></span> <a class=\"t-name\" href=\"")
230 if templ_7745c5c3_Err != nil {
231 return templ_7745c5c3_Err
232 }
233 var templ_7745c5c3_Var11 templ.SafeURL
234 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.More))
235 if templ_7745c5c3_Err != nil {
236 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 79, Col: 50}
237 }
238 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
239 if templ_7745c5c3_Err != nil {
240 return templ_7745c5c3_Err
241 }
242 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "\">more entries: open the directory</a></span></li>")
243 if templ_7745c5c3_Err != nil {
244 return templ_7745c5c3_Err
245 }
246 }
247 return nil
248 })
249}
250
251// TreeRowView is one entry of a directory, a row of the tree: the guides of
252// its depth (t-twig), its node, its name, then its last commit. A directory
253// carries data-expand, the URL of its rows, and aria-expanded; files.js sets
254// the depth of the rows it inserts (data-depth, --depth, aria-level).
255// aria-posinset and aria-setsize count the entries of the row's own directory
256// (setsize -1: the listing is cut and the total unknown), so the positions
257// stay right once the rows of a directory are inserted into the flat list. The
258// node is drawn by the stylesheet from data-kind, which is aria-hidden: the
259// type of a directory, a link or a submodule is said in text for screen readers
260// (the .sr span, part of the name of the treeitem) and in a tooltip.
261func TreeRowView(r TreeRow) templ.Component {
262 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
263 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
264 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
265 return templ_7745c5c3_CtxErr
266 }
267 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
268 if !templ_7745c5c3_IsBuffer {
269 defer func() {
270 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
271 if templ_7745c5c3_Err == nil {
272 templ_7745c5c3_Err = templ_7745c5c3_BufErr
273 }
274 }()
275 }
276 ctx = templ.InitializeContext(ctx)
277 templ_7745c5c3_Var12 := templ.GetChildren(ctx)
278 if templ_7745c5c3_Var12 == nil {
279 templ_7745c5c3_Var12 = templ.NopComponent
280 }
281 ctx = templ.ClearChildren(ctx)
282 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "<li role=\"treeitem\" aria-level=\"1\" aria-posinset=\"")
283 if templ_7745c5c3_Err != nil {
284 return templ_7745c5c3_Err
285 }
286 var templ_7745c5c3_Var13 string
287 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(r.Pos))
288 if templ_7745c5c3_Err != nil {
289 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 99, Col: 29}
290 }
291 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)
292 if templ_7745c5c3_Err != nil {
293 return templ_7745c5c3_Err
294 }
295 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "\" aria-setsize=\"")
296 if templ_7745c5c3_Err != nil {
297 return templ_7745c5c3_Err
298 }
299 var templ_7745c5c3_Var14 string
300 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(itoa(r.Set))
301 if templ_7745c5c3_Err != nil {
302 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 100, Col: 28}
303 }
304 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
305 if templ_7745c5c3_Err != nil {
306 return templ_7745c5c3_Err
307 }
308 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "\" data-kind=\"")
309 if templ_7745c5c3_Err != nil {
310 return templ_7745c5c3_Err
311 }
312 var templ_7745c5c3_Var15 string
313 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Kind)
314 if templ_7745c5c3_Err != nil {
315 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 101, Col: 20}
316 }
317 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
318 if templ_7745c5c3_Err != nil {
319 return templ_7745c5c3_Err
320 }
321 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\" data-depth=\"0\"")
322 if templ_7745c5c3_Err != nil {
323 return templ_7745c5c3_Err
324 }
325 if r.Cursor {
326 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, " data-cursor")
327 if templ_7745c5c3_Err != nil {
328 return templ_7745c5c3_Err
329 }
330 }
331 if r.Expand != "" {
332 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, " data-expand=\"")
333 if templ_7745c5c3_Err != nil {
334 return templ_7745c5c3_Err
335 }
336 var templ_7745c5c3_Var16 string
337 templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Expand)
338 if templ_7745c5c3_Err != nil {
339 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 105, Col: 25}
340 }
341 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var16)
342 if templ_7745c5c3_Err != nil {
343 return templ_7745c5c3_Err
344 }
345 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "\" aria-expanded=\"false\"")
346 if templ_7745c5c3_Err != nil {
347 return templ_7745c5c3_Err
348 }
349 }
350 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "><span class=\"t-main\"><span class=\"t-twig\" aria-hidden=\"true\"></span> <span class=\"t-node\" aria-hidden=\"true\"></span> ")
351 if templ_7745c5c3_Err != nil {
352 return templ_7745c5c3_Err
353 }
354 if r.Href != "" {
355 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<a class=\"t-name\" href=\"")
356 if templ_7745c5c3_Err != nil {
357 return templ_7745c5c3_Err
358 }
359 var templ_7745c5c3_Var17 templ.SafeURL
360 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
361 if templ_7745c5c3_Err != nil {
362 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 115, Col: 33}
363 }
364 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
365 if templ_7745c5c3_Err != nil {
366 return templ_7745c5c3_Err
367 }
368 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "\"")
369 if templ_7745c5c3_Err != nil {
370 return templ_7745c5c3_Err
371 }
372 if r.Hint != "" {
373 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, " title=\"")
374 if templ_7745c5c3_Err != nil {
375 return templ_7745c5c3_Err
376 }
377 var templ_7745c5c3_Var18 string
378 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Hint)
379 if templ_7745c5c3_Err != nil {
380 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 117, Col: 20}
381 }
382 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18)
383 if templ_7745c5c3_Err != nil {
384 return templ_7745c5c3_Err
385 }
386 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "\"")
387 if templ_7745c5c3_Err != nil {
388 return templ_7745c5c3_Err
389 }
390 }
391 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, ">")
392 if templ_7745c5c3_Err != nil {
393 return templ_7745c5c3_Err
394 }
395 var templ_7745c5c3_Var19 string
396 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
397 if templ_7745c5c3_Err != nil {
398 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 119, Col: 13}
399 }
400 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
401 if templ_7745c5c3_Err != nil {
402 return templ_7745c5c3_Err
403 }
404 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "</a> ")
405 if templ_7745c5c3_Err != nil {
406 return templ_7745c5c3_Err
407 }
408 } else {
409 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "<span class=\"t-name\"")
410 if templ_7745c5c3_Err != nil {
411 return templ_7745c5c3_Err
412 }
413 if r.Hint != "" {
414 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, " title=\"")
415 if templ_7745c5c3_Err != nil {
416 return templ_7745c5c3_Err
417 }
418 var templ_7745c5c3_Var20 string
419 templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Hint)
420 if templ_7745c5c3_Err != nil {
421 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 124, Col: 20}
422 }
423 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var20)
424 if templ_7745c5c3_Err != nil {
425 return templ_7745c5c3_Err
426 }
427 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "\"")
428 if templ_7745c5c3_Err != nil {
429 return templ_7745c5c3_Err
430 }
431 }
432 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, ">")
433 if templ_7745c5c3_Err != nil {
434 return templ_7745c5c3_Err
435 }
436 var templ_7745c5c3_Var21 string
437 templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
438 if templ_7745c5c3_Err != nil {
439 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 126, Col: 13}
440 }
441 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
442 if templ_7745c5c3_Err != nil {
443 return templ_7745c5c3_Err
444 }
445 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</span> ")
446 if templ_7745c5c3_Err != nil {
447 return templ_7745c5c3_Err
448 }
449 }
450 if r.Hint != "" {
451 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<span class=\"sr\">")
452 if templ_7745c5c3_Err != nil {
453 return templ_7745c5c3_Err
454 }
455 var templ_7745c5c3_Var22 string
456 templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(" (" + r.Hint + ")")
457 if templ_7745c5c3_Err != nil {
458 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 129, Col: 42}
459 }
460 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
461 if templ_7745c5c3_Err != nil {
462 return templ_7745c5c3_Err
463 }
464 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</span>")
465 if templ_7745c5c3_Err != nil {
466 return templ_7745c5c3_Err
467 }
468 }
469 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "</span> <span class=\"t-size\">")
470 if templ_7745c5c3_Err != nil {
471 return templ_7745c5c3_Err
472 }
473 var templ_7745c5c3_Var23 string
474 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(r.Size)
475 if templ_7745c5c3_Err != nil {
476 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 132, Col: 31}
477 }
478 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
479 if templ_7745c5c3_Err != nil {
480 return templ_7745c5c3_Err
481 }
482 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</span> <span class=\"t-sub\">")
483 if templ_7745c5c3_Err != nil {
484 return templ_7745c5c3_Err
485 }
486 if r.CHref != "" {
487 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "<a class=\"t-commit\" href=\"")
488 if templ_7745c5c3_Err != nil {
489 return templ_7745c5c3_Err
490 }
491 var templ_7745c5c3_Var24 templ.SafeURL
492 templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
493 if templ_7745c5c3_Err != nil {
494 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 135, Col: 53}
495 }
496 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
497 if templ_7745c5c3_Err != nil {
498 return templ_7745c5c3_Err
499 }
500 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "\" title=\"")
501 if templ_7745c5c3_Err != nil {
502 return templ_7745c5c3_Err
503 }
504 var templ_7745c5c3_Var25 string
505 templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.Author)
506 if templ_7745c5c3_Err != nil {
507 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 135, Col: 72}
508 }
509 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var25)
510 if templ_7745c5c3_Err != nil {
511 return templ_7745c5c3_Err
512 }
513 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\">")
514 if templ_7745c5c3_Err != nil {
515 return templ_7745c5c3_Err
516 }
517 var templ_7745c5c3_Var26 string
518 templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)
519 if templ_7745c5c3_Err != nil {
520 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 135, Col: 86}
521 }
522 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
523 if templ_7745c5c3_Err != nil {
524 return templ_7745c5c3_Err
525 }
526 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</a>")
527 if templ_7745c5c3_Err != nil {
528 return templ_7745c5c3_Err
529 }
530 }
531 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "</span> <span class=\"t-when\">")
532 if templ_7745c5c3_Err != nil {
533 return templ_7745c5c3_Err
534 }
535 if r.WhenAt != "" {
536 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "<time datetime=\"")
537 if templ_7745c5c3_Err != nil {
538 return templ_7745c5c3_Err
539 }
540 var templ_7745c5c3_Var27 string
541 templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
542 if templ_7745c5c3_Err != nil {
543 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 140, Col: 29}
544 }
545 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var27)
546 if templ_7745c5c3_Err != nil {
547 return templ_7745c5c3_Err
548 }
549 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "\" title=\"")
550 if templ_7745c5c3_Err != nil {
551 return templ_7745c5c3_Err
552 }
553 var templ_7745c5c3_Var28 string
554 templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
555 if templ_7745c5c3_Err != nil {
556 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 140, Col: 48}
557 }
558 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
559 if templ_7745c5c3_Err != nil {
560 return templ_7745c5c3_Err
561 }
562 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "\">")
563 if templ_7745c5c3_Err != nil {
564 return templ_7745c5c3_Err
565 }
566 var templ_7745c5c3_Var29 string
567 templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
568 if templ_7745c5c3_Err != nil {
569 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 140, Col: 59}
570 }
571 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
572 if templ_7745c5c3_Err != nil {
573 return templ_7745c5c3_Err
574 }
575 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</time>")
576 if templ_7745c5c3_Err != nil {
577 return templ_7745c5c3_Err
578 }
579 }
580 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</span></li>")
581 if templ_7745c5c3_Err != nil {
582 return templ_7745c5c3_Err
583 }
584 return nil
585 })
586}
587
588var _ = templruntime.GeneratedTemplate