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: the filter, the entries with their last commit, the
14// notes on what is left out, and the README of the directory below.
15func Tree(l Layout, p TreePage) templ.Component {
16 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
17 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
18 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
19 return templ_7745c5c3_CtxErr
20 }
21 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
22 if !templ_7745c5c3_IsBuffer {
23 defer func() {
24 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
25 if templ_7745c5c3_Err == nil {
26 templ_7745c5c3_Err = templ_7745c5c3_BufErr
27 }
28 }()
29 }
30 ctx = templ.InitializeContext(ctx)
31 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
32 if templ_7745c5c3_Var1 == nil {
33 templ_7745c5c3_Var1 = templ.NopComponent
34 }
35 ctx = templ.ClearChildren(ctx)
36 templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
37 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
38 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
39 if !templ_7745c5c3_IsBuffer {
40 defer func() {
41 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
42 if templ_7745c5c3_Err == nil {
43 templ_7745c5c3_Err = templ_7745c5c3_BufErr
44 }
45 }()
46 }
47 ctx = templ.InitializeContext(ctx)
48 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div class=\"filter\"><label for=\"tree-filter\" class=\"sr\">filter</label> <input id=\"tree-filter\" type=\"search\" data-filter placeholder=\"Filter this directory…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#tree-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t)); take('data-cursor', '#tree-rows > tr:not([hidden])')\"></div><table class=\"list tree\" aria-label=\"Entries\"><thead><tr><th class=\"cur\"></th><th class=\"c-kind\"></th><th class=\"c-name\">name</th><th class=\"c-size\">size</th><th class=\"c-sub\">last commit</th><th class=\"c-who\">author</th><th class=\"c-when\">date</th></tr></thead> <tbody id=\"tree-rows\" data-rows>")
49 if templ_7745c5c3_Err != nil {
50 return templ_7745c5c3_Err
51 }
52 for _, r := range p.Rows {
53 templ_7745c5c3_Err = TreeRowView(r).Render(ctx, templ_7745c5c3_Buffer)
54 if templ_7745c5c3_Err != nil {
55 return templ_7745c5c3_Err
56 }
57 }
58 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</tbody></table>")
59 if templ_7745c5c3_Err != nil {
60 return templ_7745c5c3_Err
61 }
62 if len(p.Rows) == 0 {
63 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "<p class=\"lede dim\">this directory is empty.</p>")
64 if templ_7745c5c3_Err != nil {
65 return templ_7745c5c3_Err
66 }
67 }
68 for _, n := range p.Notes {
69 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<p class=\"note\">")
70 if templ_7745c5c3_Err != nil {
71 return templ_7745c5c3_Err
72 }
73 var templ_7745c5c3_Var3 string
74 templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(n)
75 if templ_7745c5c3_Err != nil {
76 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 34, Col: 22}
77 }
78 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
79 if templ_7745c5c3_Err != nil {
80 return templ_7745c5c3_Err
81 }
82 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</p>")
83 if templ_7745c5c3_Err != nil {
84 return templ_7745c5c3_Err
85 }
86 }
87 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " ")
88 if templ_7745c5c3_Err != nil {
89 return templ_7745c5c3_Err
90 }
91 if p.Readme != nil {
92 templ_7745c5c3_Err = ReadmeCard(*p.Readme).Render(ctx, templ_7745c5c3_Buffer)
93 if templ_7745c5c3_Err != nil {
94 return templ_7745c5c3_Err
95 }
96 }
97 return nil
98 })
99 templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
100 if templ_7745c5c3_Err != nil {
101 return templ_7745c5c3_Err
102 }
103 return nil
104 })
105}
106
107// TreeRowView is one entry of a directory. Glyph: ▾ directory, @ symbolic
108// link, + submodule, · file.
109func TreeRowView(r TreeRow) templ.Component {
110 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
111 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
112 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
113 return templ_7745c5c3_CtxErr
114 }
115 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
116 if !templ_7745c5c3_IsBuffer {
117 defer func() {
118 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
119 if templ_7745c5c3_Err == nil {
120 templ_7745c5c3_Err = templ_7745c5c3_BufErr
121 }
122 }()
123 }
124 ctx = templ.InitializeContext(ctx)
125 templ_7745c5c3_Var4 := templ.GetChildren(ctx)
126 if templ_7745c5c3_Var4 == nil {
127 templ_7745c5c3_Var4 = templ.NopComponent
128 }
129 ctx = templ.ClearChildren(ctx)
130 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<tr")
131 if templ_7745c5c3_Err != nil {
132 return templ_7745c5c3_Err
133 }
134 if r.Cursor {
135 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, " data-cursor")
136 if templ_7745c5c3_Err != nil {
137 return templ_7745c5c3_Err
138 }
139 }
140 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind\" aria-hidden=\"true\">")
141 if templ_7745c5c3_Err != nil {
142 return templ_7745c5c3_Err
143 }
144 var templ_7745c5c3_Var5 string
145 templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(r.Glyph)
146 if templ_7745c5c3_Err != nil {
147 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 47, Col: 49}
148 }
149 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
150 if templ_7745c5c3_Err != nil {
151 return templ_7745c5c3_Err
152 }
153 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</td><td class=\"c-name\">")
154 if templ_7745c5c3_Err != nil {
155 return templ_7745c5c3_Err
156 }
157 if r.Href != "" {
158 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<a href=\"")
159 if templ_7745c5c3_Err != nil {
160 return templ_7745c5c3_Err
161 }
162 var templ_7745c5c3_Var6 templ.SafeURL
163 templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href))
164 if templ_7745c5c3_Err != nil {
165 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 50, Col: 35}
166 }
167 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
168 if templ_7745c5c3_Err != nil {
169 return templ_7745c5c3_Err
170 }
171 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\">")
172 if templ_7745c5c3_Err != nil {
173 return templ_7745c5c3_Err
174 }
175 var templ_7745c5c3_Var7 string
176 templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
177 if templ_7745c5c3_Err != nil {
178 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 50, Col: 46}
179 }
180 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
181 if templ_7745c5c3_Err != nil {
182 return templ_7745c5c3_Err
183 }
184 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "</a>")
185 if templ_7745c5c3_Err != nil {
186 return templ_7745c5c3_Err
187 }
188 } else {
189 var templ_7745c5c3_Var8 string
190 templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name)
191 if templ_7745c5c3_Err != nil {
192 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 52, Col: 12}
193 }
194 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
195 if templ_7745c5c3_Err != nil {
196 return templ_7745c5c3_Err
197 }
198 }
199 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</td><td class=\"c-size num dim\">")
200 if templ_7745c5c3_Err != nil {
201 return templ_7745c5c3_Err
202 }
203 var templ_7745c5c3_Var9 string
204 templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(r.Size)
205 if templ_7745c5c3_Err != nil {
206 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 55, Col: 37}
207 }
208 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
209 if templ_7745c5c3_Err != nil {
210 return templ_7745c5c3_Err
211 }
212 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</td><td class=\"c-sub dim\">")
213 if templ_7745c5c3_Err != nil {
214 return templ_7745c5c3_Err
215 }
216 if r.CHref != "" {
217 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<a href=\"")
218 if templ_7745c5c3_Err != nil {
219 return templ_7745c5c3_Err
220 }
221 var templ_7745c5c3_Var10 templ.SafeURL
222 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref))
223 if templ_7745c5c3_Err != nil {
224 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 58, Col: 36}
225 }
226 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
227 if templ_7745c5c3_Err != nil {
228 return templ_7745c5c3_Err
229 }
230 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\">")
231 if templ_7745c5c3_Err != nil {
232 return templ_7745c5c3_Err
233 }
234 var templ_7745c5c3_Var11 string
235 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject)
236 if templ_7745c5c3_Err != nil {
237 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 58, Col: 50}
238 }
239 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
240 if templ_7745c5c3_Err != nil {
241 return templ_7745c5c3_Err
242 }
243 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</a>")
244 if templ_7745c5c3_Err != nil {
245 return templ_7745c5c3_Err
246 }
247 }
248 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</td><td class=\"c-who dim\">")
249 if templ_7745c5c3_Err != nil {
250 return templ_7745c5c3_Err
251 }
252 var templ_7745c5c3_Var12 string
253 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(r.Author)
254 if templ_7745c5c3_Err != nil {
255 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 61, Col: 34}
256 }
257 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
258 if templ_7745c5c3_Err != nil {
259 return templ_7745c5c3_Err
260 }
261 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "</td><td class=\"c-when nowrap dim\">")
262 if templ_7745c5c3_Err != nil {
263 return templ_7745c5c3_Err
264 }
265 if r.WhenAt != "" {
266 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "<time datetime=\"")
267 if templ_7745c5c3_Err != nil {
268 return templ_7745c5c3_Err
269 }
270 var templ_7745c5c3_Var13 string
271 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
272 if templ_7745c5c3_Err != nil {
273 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 64, Col: 29}
274 }
275 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13)
276 if templ_7745c5c3_Err != nil {
277 return templ_7745c5c3_Err
278 }
279 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\" title=\"")
280 if templ_7745c5c3_Err != nil {
281 return templ_7745c5c3_Err
282 }
283 var templ_7745c5c3_Var14 string
284 templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt)
285 if templ_7745c5c3_Err != nil {
286 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 64, Col: 48}
287 }
288 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14)
289 if templ_7745c5c3_Err != nil {
290 return templ_7745c5c3_Err
291 }
292 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\">")
293 if templ_7745c5c3_Err != nil {
294 return templ_7745c5c3_Err
295 }
296 var templ_7745c5c3_Var15 string
297 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(r.When)
298 if templ_7745c5c3_Err != nil {
299 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/tree.templ`, Line: 64, Col: 59}
300 }
301 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
302 if templ_7745c5c3_Err != nil {
303 return templ_7745c5c3_Err
304 }
305 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "</time>")
306 if templ_7745c5c3_Err != nil {
307 return templ_7745c5c3_Err
308 }
309 }
310 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</td></tr>")
311 if templ_7745c5c3_Err != nil {
312 return templ_7745c5c3_Err
313 }
314 return nil
315 })
316}
317
318var _ = templruntime.GeneratedTemplate