Changed: DB Params
This commit is contained in:
29
templ/generator/test-script-usage/expected.html
Normal file
29
templ/generator/test-script-usage/expected.html
Normal file
@@ -0,0 +1,29 @@
|
||||
<script>
|
||||
function __templ_withParameters_1056(a, b, c){console.log(a, b, c);
|
||||
}function __templ_withoutParameters_6bbf(){alert("hello");
|
||||
}
|
||||
</script>
|
||||
<button onClick="__templ_withParameters_1056("test","A",123)" onMouseover="__templ_withoutParameters_6bbf()" type="button">A</button>
|
||||
<button onClick="__templ_withParameters_1056("test","B",123)" onMouseover="__templ_withoutParameters_6bbf()" type="button">B</button>
|
||||
<button onMouseover="console.log('mouseover')" type="button">Button C</button>
|
||||
<button hx-on::click="alert('clicked inline')" type="button">Button D</button>
|
||||
<script>
|
||||
function __templ_onClick_657d(){alert("clicked");
|
||||
}
|
||||
</script>
|
||||
<button hx-on::click="__templ_onClick_657d()" type="button">Button E</button>
|
||||
<script>
|
||||
function __templ_whenButtonIsClicked_253e(event){console.log(event.target)
|
||||
}
|
||||
</script>
|
||||
<button onclick="__templ_whenButtonIsClicked_253e(event)">Button F</button>
|
||||
<script>
|
||||
function __templ_conditionalScript_de41(){alert("conditional");
|
||||
}
|
||||
</script>
|
||||
<input type="button" value="Click me" onclick="__templ_conditionalScript_de41()" />
|
||||
<script>
|
||||
function __templ_alertTest_eadf(){alert('testing');
|
||||
}
|
||||
</script>
|
||||
<script async crossorigin="true" onload="__templ_alertTest_eadf()" src="url.to.some.script"></script>
|
23
templ/generator/test-script-usage/render_test.go
Normal file
23
templ/generator/test-script-usage/render_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package testscriptusage
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"testing"
|
||||
|
||||
"github.com/a-h/templ/generator/htmldiff"
|
||||
)
|
||||
|
||||
//go:embed expected.html
|
||||
var expected string
|
||||
|
||||
func Test(t *testing.T) {
|
||||
component := ThreeButtons()
|
||||
|
||||
diff, err := htmldiff.Diff(component, expected)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if diff != "" {
|
||||
t.Error(diff)
|
||||
}
|
||||
}
|
58
templ/generator/test-script-usage/template.templ
Normal file
58
templ/generator/test-script-usage/template.templ
Normal file
@@ -0,0 +1,58 @@
|
||||
package testscriptusage
|
||||
|
||||
script withParameters(a string, b string, c int) {
|
||||
console.log(a, b, c);
|
||||
}
|
||||
|
||||
script withoutParameters() {
|
||||
alert("hello");
|
||||
}
|
||||
|
||||
script onClick() {
|
||||
alert("clicked");
|
||||
}
|
||||
|
||||
templ Button(text string) {
|
||||
<button onClick={ withParameters("test", text, 123) } onMouseover={ withoutParameters() } type="button">{ text }</button>
|
||||
}
|
||||
|
||||
script withComment() {
|
||||
//'
|
||||
}
|
||||
|
||||
script whenButtonIsClicked(event templ.JSExpression) {
|
||||
console.log(event.target)
|
||||
}
|
||||
|
||||
templ ThreeButtons() {
|
||||
@Button("A")
|
||||
@Button("B")
|
||||
<button onMouseover="console.log('mouseover')" type="button">Button C</button>
|
||||
<button hx-on::click="alert('clicked inline')" type="button">Button D</button>
|
||||
<button hx-on::click={ onClick() } type="button">Button E</button>
|
||||
<button onclick={ whenButtonIsClicked(templ.JSExpression("event")) }>Button F</button>
|
||||
@Conditional(true)
|
||||
@ScriptOnLoad()
|
||||
}
|
||||
|
||||
script conditionalScript() {
|
||||
alert("conditional");
|
||||
}
|
||||
|
||||
templ Conditional(show bool) {
|
||||
<input
|
||||
type="button"
|
||||
value="Click me"
|
||||
if show {
|
||||
onclick={ conditionalScript() }
|
||||
}
|
||||
/>
|
||||
}
|
||||
|
||||
script alertTest() {
|
||||
alert('testing');
|
||||
}
|
||||
|
||||
templ ScriptOnLoad() {
|
||||
<script async crossorigin="true" onload={ alertTest() } src="url.to.some.script"></script>
|
||||
}
|
318
templ/generator/test-script-usage/template_templ.go
Normal file
318
templ/generator/test-script-usage/template_templ.go
Normal file
@@ -0,0 +1,318 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.833
|
||||
package testscriptusage
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
func withParameters(a string, b string, c int) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_withParameters_1056`,
|
||||
Function: `function __templ_withParameters_1056(a, b, c){console.log(a, b, c);
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_withParameters_1056`, a, b, c),
|
||||
CallInline: templ.SafeScriptInline(`__templ_withParameters_1056`, a, b, c),
|
||||
}
|
||||
}
|
||||
|
||||
func withoutParameters() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_withoutParameters_6bbf`,
|
||||
Function: `function __templ_withoutParameters_6bbf(){alert("hello");
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_withoutParameters_6bbf`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_withoutParameters_6bbf`),
|
||||
}
|
||||
}
|
||||
|
||||
func onClick() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_onClick_657d`,
|
||||
Function: `function __templ_onClick_657d(){alert("clicked");
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_onClick_657d`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_onClick_657d`),
|
||||
}
|
||||
}
|
||||
|
||||
func Button(text string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, withParameters("test", text, 123), withoutParameters())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<button onClick=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 templ.ComponentScript = withParameters("test", text, 123)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var2.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\" onMouseover=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 templ.ComponentScript = withoutParameters()
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var3.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" type=\"button\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(text)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `templ/generator/test-script-usage/template.templ`, Line: 16, Col: 111}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</button>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func withComment() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_withComment_9cf8`,
|
||||
Function: `function __templ_withComment_9cf8(){//'
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_withComment_9cf8`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_withComment_9cf8`),
|
||||
}
|
||||
}
|
||||
|
||||
func whenButtonIsClicked(event templ.JSExpression) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_whenButtonIsClicked_253e`,
|
||||
Function: `function __templ_whenButtonIsClicked_253e(event){console.log(event.target)
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_whenButtonIsClicked_253e`, event),
|
||||
CallInline: templ.SafeScriptInline(`__templ_whenButtonIsClicked_253e`, event),
|
||||
}
|
||||
}
|
||||
|
||||
func ThreeButtons() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = Button("A").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = Button("B").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<button onMouseover=\"console.log('mouseover')\" type=\"button\">Button C</button> <button hx-on::click=\"alert('clicked inline')\" type=\"button\">Button D</button> ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, onClick())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<button hx-on::click=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 templ.ComponentScript = onClick()
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var6.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\" type=\"button\">Button E</button> ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, whenButtonIsClicked(templ.JSExpression("event")))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<button onclick=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var7 templ.ComponentScript = whenButtonIsClicked(templ.JSExpression("event"))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var7.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\">Button F</button>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = Conditional(true).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = ScriptOnLoad().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func conditionalScript() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_conditionalScript_de41`,
|
||||
Function: `function __templ_conditionalScript_de41(){alert("conditional");
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_conditionalScript_de41`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_conditionalScript_de41`),
|
||||
}
|
||||
}
|
||||
|
||||
func Conditional(show bool) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var8 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var8 == nil {
|
||||
templ_7745c5c3_Var8 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, conditionalScript())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "<input type=\"button\" value=\"Click me\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if show {
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, " onclick=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var9 templ.ComponentScript = conditionalScript()
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, ">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func alertTest() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_alertTest_eadf`,
|
||||
Function: `function __templ_alertTest_eadf(){alert('testing');
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_alertTest_eadf`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_alertTest_eadf`),
|
||||
}
|
||||
}
|
||||
|
||||
func ScriptOnLoad() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var10 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var10 == nil {
|
||||
templ_7745c5c3_Var10 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, alertTest())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "<script async crossorigin=\"true\" onload=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var11 templ.ComponentScript = alertTest()
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var11.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "\" src=\"url.to.some.script\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
Reference in New Issue
Block a user