♻️ Some improvements for form

This commit is contained in:
Maxim Lebedev 2023-12-14 01:06:25 +06:00
parent fbbca6cf3b
commit 774823375a
Signed by: toby3d
GPG Key ID: 1F14E25B7C119FC5
6 changed files with 303 additions and 291 deletions

View File

@ -26,8 +26,8 @@
{
"id": "Amount__100",
"string": "%.2[1]f",
"type": "float64",
"underlyingType": "float64",
"type": "uint64",
"underlyingType": "uint64",
"argNum": 1,
"expr": "ctx.amount / 100"
},

View File

@ -25,8 +25,8 @@
{
"id": "Amount__100",
"string": "%.2[1]f",
"type": "float64",
"underlyingType": "float64",
"type": "uint64",
"underlyingType": "uint64",
"argNum": 1,
"expr": "ctx.amount / 100"
},

View File

@ -9,8 +9,12 @@ let form = {
inRussia: false,
};
amount?.addEventListener('input', () => {
let value = +amount.value;
amount?.addEventListener('input', (el) => {
if (!el.target.checkValidity()) {
return
}
let value = +el.target.value;
if (value < 0) {
value = 0;
}
@ -20,14 +24,14 @@ amount?.addEventListener('input', () => {
updateButtons();
});
period.addEventListener('change', () => {
form.period = +period.value;
period.addEventListener('change', (el) => {
form.period = +el.target.value;
updateButtons();
});
inRussia.addEventListener('change', () => {
form.inRussia = inRussia.checked;
inRussia.addEventListener('change', (el) => {
form.inRussia = el.target.checked;
updateButtons();
});
@ -39,7 +43,6 @@ async function updateButtons() {
let inPeriod = (!el.dataset.periodMin || +el.dataset.periodMin <= form.period) &&
(!el.dataset.periodMax || form.period <= +el.dataset.periodMax);
let inRegion = Boolean(el.dataset.inRussia) == form.inRussia;
console.debug('button', el.textContext, inRegion);
if (form.amount == 0.0 || inAmount && inPeriod && inRegion) {
el.href = el.dataset.pattern.

View File

@ -47,6 +47,11 @@ footer {
max-inline-size: none;
}
svg {
height: 1em;
width: 1em;
}
/* Input */
input,
select {
@ -61,7 +66,7 @@ button {
/* NOTE(toby3d): reset everything */
all: unset;
/* NOTE(toby3d): start from scratch */
align-items: baseline;
align-items: center;
background: var(--_background);
border-radius: 0.3125em;
color: var(--_color);
@ -70,6 +75,7 @@ button {
font-family: inherit;
font-size: 1rem;
justify-content: center;
list-style: 1.1;
min-width: 6.25em;
padding: 0.625em 1em;
text-align: center;
@ -98,11 +104,9 @@ button[href*='yoomoney.ru'] {
.button svg,
button .icon,
button svg {
height: 0.8lh;
margin-inline-end: 0.25rem;
height: 0.75em;
height: 1cap;
width: 0.75em;
width: 1cap;
width: auto;
}
/* Button behavior, see: https://bitsofco.de/when-do-the-hover-focus-and-active-pseudo-classes-apply/ */
@ -175,7 +179,7 @@ button[disabled] svg {
}
.form__amount {
width: 4em;
width: 7ch;
}
/* Utilities */

View File

@ -20,7 +20,7 @@
type Context struct {
language language.Tag
printer *message.Printer
amount float64
amount uint64
processors domain.ConfigProcessors
}
@ -28,7 +28,7 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui
return &Context{
language: lang,
printer: message.NewPrinter(lang),
amount: float64(amount),
amount: amount,
processors: processors,
}
}
@ -70,9 +70,10 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui
<input class="form__amount"{% space %}
type="number"{% space %}
name="amount"{% space %}
value="{%f.2 ctx.amount/100 %}"{% space %}
min="0.00"{% space %}
step="0.01"{% space %}
value="{%dul ctx.amount / 100 %}"{% space %}
min="0"{% space %}
step="1"{% space %}
pattern="[0-9]+"{% space %}
inputmode="decimal"{% space %}
required />
</label>
@ -104,7 +105,7 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui
data-period-max="365"{% space %}
data-pattern="https://liberapay.com/{%s ctx.processors.Liberapay %}/donate?amount=%f&currency=USD&period=%p"{% space %}
rel="noopener noreferrer payment"{% space %}
href="https://liberapay.com/{%s ctx.processors.Liberapay %}/donate{% if ctx.amount > 0 %}?amount={%f.2 ctx.amount/100 %}&currency=USD&period=monthly{% endif %}">
href="https://liberapay.com/{%s ctx.processors.Liberapay %}/donate{% if ctx.amount > 0 %}?amount={%f.2 float64(ctx.amount) / 100 %}&currency=USD&period=monthly{% endif %}">
{%= icon("liberapay") %}
Liberapay
@ -117,7 +118,7 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui
data-period-max="1"{% space %}
data-pattern="https://www.paypal.me/{%s ctx.processors.PayPal %}/%fUSD"{% space %}
rel="noopener noreferrer payment"{% space %}
href="https://www.paypal.me/{%s ctx.processors.PayPal %}{% if ctx.amount > 0 %}/{%f.2 ctx.amount/100 %}USD{% endif %}">
href="https://www.paypal.me/{%s ctx.processors.PayPal %}{% if ctx.amount > 0 %}/{%f.2 float64(ctx.amount) / 100 %}USD{% endif %}">
{%= icon("paypal") %}
PayPal
@ -133,7 +134,7 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui
data-in-russia="true"{% space %}
data-pattern="https://yoomoney.ru/to/{%s ctx.processors.YooMoney %}/%d"{% space %}
rel="noopener noreferrer payment"{% space %}
href="https://yoomoney.ru/to/{%s ctx.processors.YooMoney %}{% if ctx.amount > 0 %}/{%dul uint64(ctx.amount) %}{% endif %}">
href="https://yoomoney.ru/to/{%s ctx.processors.YooMoney %}{% if ctx.amount > 0 %}/{%dul ctx.amount %}{% endif %}">
{%= icon("yoomoney") %}
ЮMoney

View File

@ -70,7 +70,7 @@ type Page interface {
type Context struct {
language language.Tag
printer *message.Printer
amount float64
amount uint64
processors domain.ConfigProcessors
}
@ -78,7 +78,7 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui
return &Context{
language: lang,
printer: message.NewPrinter(lang),
amount: float64(amount),
amount: amount,
processors: processors,
}
}
@ -181,555 +181,559 @@ func (ctx Context) streambody(qw422016 *qt422016.Writer) {
//line web/template/template.qtpl:72
qw422016.N().S(`value="`)
//line web/template/template.qtpl:73
qw422016.N().FPrec(ctx.amount/100, 2)
qw422016.N().DUL(ctx.amount / 100)
//line web/template/template.qtpl:73
qw422016.N().S(`"`)
//line web/template/template.qtpl:73
qw422016.N().S(` `)
//line web/template/template.qtpl:73
qw422016.N().S(`min="0.00"`)
qw422016.N().S(`min="0"`)
//line web/template/template.qtpl:74
qw422016.N().S(` `)
//line web/template/template.qtpl:74
qw422016.N().S(`step="0.01"`)
qw422016.N().S(`step="1"`)
//line web/template/template.qtpl:75
qw422016.N().S(` `)
//line web/template/template.qtpl:75
qw422016.N().S(`pattern="[0-9]+"`)
//line web/template/template.qtpl:76
qw422016.N().S(` `)
//line web/template/template.qtpl:76
qw422016.N().S(`inputmode="decimal"`)
//line web/template/template.qtpl:76
//line web/template/template.qtpl:77
qw422016.N().S(` `)
//line web/template/template.qtpl:76
//line web/template/template.qtpl:77
qw422016.N().S(`required /></label><label><span class="visually-hidden">`)
//line web/template/template.qtpl:81
//line web/template/template.qtpl:82
ctx.streamt(qw422016, `contribution frequency`)
//line web/template/template.qtpl:81
//line web/template/template.qtpl:82
qw422016.N().S(`</span><select name="period"><option value="0" selected>`)
//line web/template/template.qtpl:83
//line web/template/template.qtpl:84
ctx.streamt(qw422016, `one time`)
//line web/template/template.qtpl:83
//line web/template/template.qtpl:84
qw422016.N().S(`</option><option value="7">`)
//line web/template/template.qtpl:84
//line web/template/template.qtpl:85
ctx.streamt(qw422016, `weekly`)
//line web/template/template.qtpl:84
//line web/template/template.qtpl:85
qw422016.N().S(`</option><option value="30">`)
//line web/template/template.qtpl:85
//line web/template/template.qtpl:86
ctx.streamt(qw422016, `monthly`)
//line web/template/template.qtpl:85
//line web/template/template.qtpl:86
qw422016.N().S(`</option><option value="365">`)
//line web/template/template.qtpl:86
//line web/template/template.qtpl:87
ctx.streamt(qw422016, `annually`)
//line web/template/template.qtpl:86
//line web/template/template.qtpl:87
qw422016.N().S(`</option></select></label><label><input type="checkbox"`)
//line web/template/template.qtpl:91
//line web/template/template.qtpl:92
qw422016.N().S(` `)
//line web/template/template.qtpl:91
//line web/template/template.qtpl:92
qw422016.N().S(`name="inRussia"`)
//line web/template/template.qtpl:92
//line web/template/template.qtpl:93
qw422016.N().S(` `)
//line web/template/template.qtpl:92
//line web/template/template.qtpl:93
qw422016.N().S(`value="true" />`)
//line web/template/template.qtpl:95
//line web/template/template.qtpl:96
ctx.streamt(qw422016, `from Russia`)
//line web/template/template.qtpl:95
//line web/template/template.qtpl:96
qw422016.N().S(`</label></p><ul class="[ cluster ][ list-style-type:none padding-inline-start:unset ]">`)
//line web/template/template.qtpl:100
//line web/template/template.qtpl:101
if ctx.processors.Liberapay != "" {
//line web/template/template.qtpl:100
//line web/template/template.qtpl:101
qw422016.N().S(`<li><a class="[ button ][ js-button ]"`)
//line web/template/template.qtpl:102
//line web/template/template.qtpl:103
qw422016.N().S(` `)
//line web/template/template.qtpl:102
//line web/template/template.qtpl:103
qw422016.N().S(`data-period-min="1"`)
//line web/template/template.qtpl:103
//line web/template/template.qtpl:104
qw422016.N().S(` `)
//line web/template/template.qtpl:103
//line web/template/template.qtpl:104
qw422016.N().S(`data-period-max="365"`)
//line web/template/template.qtpl:104
//line web/template/template.qtpl:105
qw422016.N().S(` `)
//line web/template/template.qtpl:104
//line web/template/template.qtpl:105
qw422016.N().S(`data-pattern="https://liberapay.com/`)
//line web/template/template.qtpl:105
//line web/template/template.qtpl:106
qw422016.E().S(ctx.processors.Liberapay)
//line web/template/template.qtpl:105
//line web/template/template.qtpl:106
qw422016.N().S(`/donate?amount=%f&currency=USD&period=%p"`)
//line web/template/template.qtpl:105
//line web/template/template.qtpl:106
qw422016.N().S(` `)
//line web/template/template.qtpl:105
//line web/template/template.qtpl:106
qw422016.N().S(`rel="noopener noreferrer payment"`)
//line web/template/template.qtpl:106
//line web/template/template.qtpl:107
qw422016.N().S(` `)
//line web/template/template.qtpl:106
//line web/template/template.qtpl:107
qw422016.N().S(`href="https://liberapay.com/`)
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
qw422016.E().S(ctx.processors.Liberapay)
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
qw422016.N().S(`/donate`)
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
if ctx.amount > 0 {
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
qw422016.N().S(`?amount=`)
//line web/template/template.qtpl:107
qw422016.N().FPrec(ctx.amount/100, 2)
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
qw422016.N().FPrec(float64(ctx.amount)/100, 2)
//line web/template/template.qtpl:108
qw422016.N().S(`&currency=USD&period=monthly`)
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
}
//line web/template/template.qtpl:107
//line web/template/template.qtpl:108
qw422016.N().S(`">`)
//line web/template/template.qtpl:109
//line web/template/template.qtpl:110
streamicon(qw422016, "liberapay")
//line web/template/template.qtpl:109
//line web/template/template.qtpl:110
qw422016.N().S(`Liberapay</a></li>`)
//line web/template/template.qtpl:113
}
//line web/template/template.qtpl:114
}
//line web/template/template.qtpl:115
if ctx.processors.PayPal != "" {
//line web/template/template.qtpl:114
//line web/template/template.qtpl:115
qw422016.N().S(`<li><a class="[ button ][ js-button ]"`)
//line web/template/template.qtpl:116
//line web/template/template.qtpl:117
qw422016.N().S(` `)
//line web/template/template.qtpl:116
//line web/template/template.qtpl:117
qw422016.N().S(`data-period-max="1"`)
//line web/template/template.qtpl:117
//line web/template/template.qtpl:118
qw422016.N().S(` `)
//line web/template/template.qtpl:117
//line web/template/template.qtpl:118
qw422016.N().S(`data-pattern="https://www.paypal.me/`)
//line web/template/template.qtpl:118
//line web/template/template.qtpl:119
qw422016.E().S(ctx.processors.PayPal)
//line web/template/template.qtpl:118
//line web/template/template.qtpl:119
qw422016.N().S(`/%fUSD"`)
//line web/template/template.qtpl:118
//line web/template/template.qtpl:119
qw422016.N().S(` `)
//line web/template/template.qtpl:118
//line web/template/template.qtpl:119
qw422016.N().S(`rel="noopener noreferrer payment"`)
//line web/template/template.qtpl:119
//line web/template/template.qtpl:120
qw422016.N().S(` `)
//line web/template/template.qtpl:119
//line web/template/template.qtpl:120
qw422016.N().S(`href="https://www.paypal.me/`)
//line web/template/template.qtpl:120
//line web/template/template.qtpl:121
qw422016.E().S(ctx.processors.PayPal)
//line web/template/template.qtpl:120
//line web/template/template.qtpl:121
if ctx.amount > 0 {
//line web/template/template.qtpl:120
//line web/template/template.qtpl:121
qw422016.N().S(`/`)
//line web/template/template.qtpl:120
qw422016.N().FPrec(ctx.amount/100, 2)
//line web/template/template.qtpl:120
//line web/template/template.qtpl:121
qw422016.N().FPrec(float64(ctx.amount)/100, 2)
//line web/template/template.qtpl:121
qw422016.N().S(`USD`)
//line web/template/template.qtpl:120
//line web/template/template.qtpl:121
}
//line web/template/template.qtpl:120
//line web/template/template.qtpl:121
qw422016.N().S(`">`)
//line web/template/template.qtpl:122
//line web/template/template.qtpl:123
streamicon(qw422016, "paypal")
//line web/template/template.qtpl:122
//line web/template/template.qtpl:123
qw422016.N().S(`PayPal</a></li>`)
//line web/template/template.qtpl:126
}
//line web/template/template.qtpl:127
}
//line web/template/template.qtpl:128
if ctx.processors.YooMoney != "" {
//line web/template/template.qtpl:127
//line web/template/template.qtpl:128
qw422016.N().S(`<li><a class="[ button ][ js-button ]"`)
//line web/template/template.qtpl:129
//line web/template/template.qtpl:130
qw422016.N().S(` `)
//line web/template/template.qtpl:129
//line web/template/template.qtpl:130
qw422016.N().S(`data-amount-min="2"`)
//line web/template/template.qtpl:130
//line web/template/template.qtpl:131
qw422016.N().S(` `)
//line web/template/template.qtpl:130
//line web/template/template.qtpl:131
qw422016.N().S(`data-amount-max="15000"`)
//line web/template/template.qtpl:131
//line web/template/template.qtpl:132
qw422016.N().S(` `)
//line web/template/template.qtpl:131
//line web/template/template.qtpl:132
qw422016.N().S(`data-period-max="1"`)
//line web/template/template.qtpl:132
//line web/template/template.qtpl:133
qw422016.N().S(` `)
//line web/template/template.qtpl:132
//line web/template/template.qtpl:133
qw422016.N().S(`data-in-russia="true"`)
//line web/template/template.qtpl:133
//line web/template/template.qtpl:134
qw422016.N().S(` `)
//line web/template/template.qtpl:133
//line web/template/template.qtpl:134
qw422016.N().S(`data-pattern="https://yoomoney.ru/to/`)
//line web/template/template.qtpl:134
//line web/template/template.qtpl:135
qw422016.E().S(ctx.processors.YooMoney)
//line web/template/template.qtpl:134
//line web/template/template.qtpl:135
qw422016.N().S(`/%d"`)
//line web/template/template.qtpl:134
//line web/template/template.qtpl:135
qw422016.N().S(` `)
//line web/template/template.qtpl:134
//line web/template/template.qtpl:135
qw422016.N().S(`rel="noopener noreferrer payment"`)
//line web/template/template.qtpl:135
//line web/template/template.qtpl:136
qw422016.N().S(` `)
//line web/template/template.qtpl:135
//line web/template/template.qtpl:136
qw422016.N().S(`href="https://yoomoney.ru/to/`)
//line web/template/template.qtpl:136
//line web/template/template.qtpl:137
qw422016.E().S(ctx.processors.YooMoney)
//line web/template/template.qtpl:136
//line web/template/template.qtpl:137
if ctx.amount > 0 {
//line web/template/template.qtpl:136
//line web/template/template.qtpl:137
qw422016.N().S(`/`)
//line web/template/template.qtpl:136
qw422016.N().DUL(uint64(ctx.amount))
//line web/template/template.qtpl:136
//line web/template/template.qtpl:137
qw422016.N().DUL(ctx.amount)
//line web/template/template.qtpl:137
}
//line web/template/template.qtpl:136
//line web/template/template.qtpl:137
qw422016.N().S(`">`)
//line web/template/template.qtpl:138
//line web/template/template.qtpl:139
streamicon(qw422016, "yoomoney")
//line web/template/template.qtpl:138
//line web/template/template.qtpl:139
qw422016.N().S(`ЮMoney</a></li>`)
//line web/template/template.qtpl:142
//line web/template/template.qtpl:143
}
//line web/template/template.qtpl:142
//line web/template/template.qtpl:143
qw422016.N().S(`</ul>`)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
}
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
func (ctx Context) writebody(qq422016 qtio422016.Writer) {
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
ctx.streambody(qw422016)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
}
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
func (ctx Context) body() string {
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
ctx.writebody(qb422016)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
return qs422016
//line web/template/template.qtpl:144
//line web/template/template.qtpl:145
}
//line web/template/template.qtpl:146
func (ctx Context) streamdir(qw422016 *qt422016.Writer) {
//line web/template/template.qtpl:147
func (ctx Context) streamdir(qw422016 *qt422016.Writer) {
//line web/template/template.qtpl:148
switch ctx.language {
//line web/template/template.qtpl:148
//line web/template/template.qtpl:149
default:
//line web/template/template.qtpl:148
//line web/template/template.qtpl:149
qw422016.N().S(`ltr`)
//line web/template/template.qtpl:150
//line web/template/template.qtpl:151
case language.Arabic, language.Persian, language.Hebrew, language.Urdu:
//line web/template/template.qtpl:150
//line web/template/template.qtpl:151
qw422016.N().S(`rtl`)
//line web/template/template.qtpl:152
//line web/template/template.qtpl:153
}
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
}
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
func (ctx Context) writedir(qq422016 qtio422016.Writer) {
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
ctx.streamdir(qw422016)
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
}
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
func (ctx Context) dir() string {
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
ctx.writedir(qb422016)
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
return qs422016
//line web/template/template.qtpl:153
//line web/template/template.qtpl:154
}
//line web/template/template.qtpl:155
func (ctx Context) streamlang(qw422016 *qt422016.Writer) {
//line web/template/template.qtpl:156
func (ctx Context) streamlang(qw422016 *qt422016.Writer) {
//line web/template/template.qtpl:157
base, _ := ctx.language.Base()
//line web/template/template.qtpl:157
//line web/template/template.qtpl:158
qw422016.E().S(base.String())
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
}
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
func (ctx Context) writelang(qq422016 qtio422016.Writer) {
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
ctx.streamlang(qw422016)
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
}
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
func (ctx Context) lang() string {
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
ctx.writelang(qb422016)
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
return qs422016
//line web/template/template.qtpl:158
//line web/template/template.qtpl:159
}
//line web/template/template.qtpl:160
func (ctx Context) streamt(qw422016 *qt422016.Writer, format message.Reference, v ...any) {
//line web/template/template.qtpl:161
func (ctx Context) streamt(qw422016 *qt422016.Writer, format message.Reference, v ...any) {
//line web/template/template.qtpl:162
qw422016.E().S(ctx.printer.Sprintf(format, v...))
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
}
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
func (ctx Context) writet(qq422016 qtio422016.Writer, format message.Reference, v ...any) {
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
ctx.streamt(qw422016, format, v...)
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
}
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
func (ctx Context) t(format message.Reference, v ...any) string {
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
ctx.writet(qb422016, format, v...)
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
return qs422016
//line web/template/template.qtpl:162
//line web/template/template.qtpl:163
}
//line web/template/template.qtpl:164
//line web/template/template.qtpl:165
func (ctx Context) streamtitle(qw422016 *qt422016.Writer) {
//line web/template/template.qtpl:164
//line web/template/template.qtpl:165
qw422016.N().S(`NotDotPay`)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
}
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
func (ctx Context) writetitle(qq422016 qtio422016.Writer) {
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
ctx.streamtitle(qw422016)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
}
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
func (ctx Context) title() string {
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
ctx.writetitle(qb422016)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
return qs422016
//line web/template/template.qtpl:166
//line web/template/template.qtpl:167
}
//line web/template/template.qtpl:168
//line web/template/template.qtpl:169
func StreamTemplate(qw422016 *qt422016.Writer, p Page) {
//line web/template/template.qtpl:168
//line web/template/template.qtpl:169
qw422016.N().S(`<!DOCTYPE html><html lang="`)
//line web/template/template.qtpl:170
//line web/template/template.qtpl:171
p.streamlang(qw422016)
//line web/template/template.qtpl:170
//line web/template/template.qtpl:171
qw422016.N().S(`"`)
//line web/template/template.qtpl:170
//line web/template/template.qtpl:171
qw422016.N().S(` `)
//line web/template/template.qtpl:170
//line web/template/template.qtpl:171
qw422016.N().S(`dir="`)
//line web/template/template.qtpl:171
//line web/template/template.qtpl:172
p.streamdir(qw422016)
//line web/template/template.qtpl:171
//line web/template/template.qtpl:172
qw422016.N().S(`"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="color-scheme" content="light"><title>NotDotPay</title>`)
//line web/template/template.qtpl:178
//line web/template/template.qtpl:179
p.streamhead(qw422016)
//line web/template/template.qtpl:178
//line web/template/template.qtpl:179
qw422016.N().S(`</head><body>`)
//line web/template/template.qtpl:182
//line web/template/template.qtpl:183
p.streambody(qw422016)
//line web/template/template.qtpl:182
//line web/template/template.qtpl:183
qw422016.N().S(`<script async>document.querySelectorAll('.js-enabled').forEach(el => el.hidden = false);document.querySelectorAll('noscript').forEach(el => el.remove());</script><script src="/scripts.js" async defer></script></body></html>`)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
}
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
func WriteTemplate(qq422016 qtio422016.Writer, p Page) {
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
StreamTemplate(qw422016, p)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
}
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
func Template(p Page) string {
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
WriteTemplate(qb422016, p)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
return qs422016
//line web/template/template.qtpl:190
//line web/template/template.qtpl:191
}
//line web/template/template.qtpl:192
func streamicon(qw422016 *qt422016.Writer, id string) {
//line web/template/template.qtpl:193
func streamicon(qw422016 *qt422016.Writer, id string) {
//line web/template/template.qtpl:194
switch id {
//line web/template/template.qtpl:194
//line web/template/template.qtpl:195
case "liberapay":
//line web/template/template.qtpl:194
//line web/template/template.qtpl:195
qw422016.N().S(`<svg class="icon"`)
//line web/template/template.qtpl:195
//line web/template/template.qtpl:196
qw422016.N().S(` `)
//line web/template/template.qtpl:195
//line web/template/template.qtpl:196
qw422016.N().S(`width="32"`)
//line web/template/template.qtpl:196
//line web/template/template.qtpl:197
qw422016.N().S(` `)
//line web/template/template.qtpl:196
//line web/template/template.qtpl:197
qw422016.N().S(`height="32"`)
//line web/template/template.qtpl:197
//line web/template/template.qtpl:198
qw422016.N().S(` `)
//line web/template/template.qtpl:197
//line web/template/template.qtpl:198
qw422016.N().S(`viewBox="0 0 80 80"`)
//line web/template/template.qtpl:198
//line web/template/template.qtpl:199
qw422016.N().S(` `)
//line web/template/template.qtpl:198
//line web/template/template.qtpl:199
qw422016.N().S(`aria-hidden="true"`)
//line web/template/template.qtpl:199
//line web/template/template.qtpl:200
qw422016.N().S(` `)
//line web/template/template.qtpl:199
//line web/template/template.qtpl:200
qw422016.N().S(`focusable="false"`)
//line web/template/template.qtpl:200
//line web/template/template.qtpl:201
qw422016.N().S(` `)
//line web/template/template.qtpl:200
//line web/template/template.qtpl:201
qw422016.N().S(`xmlns="http://www.w3.org/2000/svg"><path fill="#1a171b" d="M25.91 63.04c-3.57 0-6.37-.47-8.41-1.4a9.03 9.03 0 0 1-4.38-3.8 11.15 11.15 0 0 1-1.28-5.55c.03-2.08.32-4.31.87-6.67L22.3 5.57l11.69-1.81L23.5 47.2c-.2.9-.32 1.73-.34 2.49-.03.75.11 1.42.41 2 .3.57.82 1.04 1.55 1.39a8.7 8.7 0 0 0 3.05.68l-2.26 9.28m42.24-24.96c0 3.67-.6 7.03-1.81 10.07a23.94 23.94 0 0 1-5.01 7.88 22.43 22.43 0 0 1-7.7 5.17 25.4 25.4 0 0 1-9.76 1.85c-1.71 0-3.42-.16-5.13-.46l-3.4 13.65H24.19L36.7 24.05a67.6 67.6 0 0 1 6.9-1.62c2.6-.48 5.4-.71 8.42-.71 2.81 0 5.24.42 7.27 1.28a13.6 13.6 0 0 1 5.02 3.5 14.32 14.32 0 0 1 2.9 5.21c.63 1.99.95 4.11.95 6.37M40.78 53.54c.85.2 1.91.3 3.17.3 1.96 0 3.74-.36 5.35-1.09a11.8 11.8 0 0 0 4.11-3.05 14.1 14.1 0 0 0 2.64-4.72c.63-1.83.95-3.86.95-6.07 0-2.16-.48-4-1.44-5.5-.95-1.51-2.61-2.27-4.97-2.27-1.61 0-3.12.15-4.53.46l-5.28 21.94" /></svg>`)
//line web/template/template.qtpl:205
//line web/template/template.qtpl:206
case "paypal":
//line web/template/template.qtpl:205
//line web/template/template.qtpl:206
qw422016.N().S(`<svg class="icon"`)
//line web/template/template.qtpl:206
//line web/template/template.qtpl:207
qw422016.N().S(` `)
//line web/template/template.qtpl:206
//line web/template/template.qtpl:207
qw422016.N().S(`width="32"`)
//line web/template/template.qtpl:207
//line web/template/template.qtpl:208
qw422016.N().S(` `)
//line web/template/template.qtpl:207
//line web/template/template.qtpl:208
qw422016.N().S(`height="32"`)
//line web/template/template.qtpl:208
//line web/template/template.qtpl:209
qw422016.N().S(` `)
//line web/template/template.qtpl:208
//line web/template/template.qtpl:209
qw422016.N().S(`viewBox="0 0 154.7 190.5"`)
//line web/template/template.qtpl:209
//line web/template/template.qtpl:210
qw422016.N().S(` `)
//line web/template/template.qtpl:209
//line web/template/template.qtpl:210
qw422016.N().S(`aria-hidden="true"`)
//line web/template/template.qtpl:210
//line web/template/template.qtpl:211
qw422016.N().S(` `)
//line web/template/template.qtpl:210
//line web/template/template.qtpl:211
qw422016.N().S(`focusable="false"`)
//line web/template/template.qtpl:211
//line web/template/template.qtpl:212
qw422016.N().S(` `)
//line web/template/template.qtpl:211
//line web/template/template.qtpl:212
qw422016.N().S(`xmlns="http://www.w3.org/2000/svg">`)
//line web/template/template.qtpl:214
//line web/template/template.qtpl:215
qw422016.N().S(`<path fill="#003087" d="M28 0a5.5 5.5 0 0 0-5.5 4.6L.1 147.2a4.5 4.5 0 0 0 4.4 5.2h33.3l8.3-52.5 9-57.2a5.5 5.5 0 0 1 5.4-4.6h47.8c8.7 0 16.6 2 23.4 5.6C132 19.7 112.4 0 85.3 0z" />`)
//line web/template/template.qtpl:216
//line web/template/template.qtpl:217
qw422016.N().S(`<path fill="#001c64" d="M60.5 38.1a5.5 5.5 0 0 0-5.4 4.6l-9 57.2-8.3 52.5 8.3-52.5a5.5 5.5 0 0 1 5.4-4.6H78a54 54 0 0 0 53.8-51.6 50 50 0 0 0-23.4-5.6z" />`)
//line web/template/template.qtpl:218
//line web/template/template.qtpl:219
qw422016.N().S(`<path fill="#0070e0" d="M131.7 43.7a54 54 0 0 1-53.8 51.6H51.5c-2.7 0-5 2-5.4 4.6l-8.3 52.5-5.2 33a4.5 4.5 0 0 0 4.4 5.1h28.7a5.5 5.5 0 0 0 5.4-4.6l7.6-48a5.5 5.5 0 0 1 5.4-4.5H101a54 54 0 0 0 53.2-45.7c3-18.7-6.5-35.6-22.5-44z" /></svg>`)
//line web/template/template.qtpl:221
//line web/template/template.qtpl:222
case "yoomoney":
//line web/template/template.qtpl:221
//line web/template/template.qtpl:222
qw422016.N().S(`<svg class="icon"`)
//line web/template/template.qtpl:222
//line web/template/template.qtpl:223
qw422016.N().S(` `)
//line web/template/template.qtpl:222
//line web/template/template.qtpl:223
qw422016.N().S(`width="32"`)
//line web/template/template.qtpl:223
//line web/template/template.qtpl:224
qw422016.N().S(` `)
//line web/template/template.qtpl:223
//line web/template/template.qtpl:224
qw422016.N().S(`height="32"`)
//line web/template/template.qtpl:224
//line web/template/template.qtpl:225
qw422016.N().S(` `)
//line web/template/template.qtpl:224
//line web/template/template.qtpl:225
qw422016.N().S(`viewBox="0 0 169 120"`)
//line web/template/template.qtpl:225
//line web/template/template.qtpl:226
qw422016.N().S(` `)
//line web/template/template.qtpl:225
//line web/template/template.qtpl:226
qw422016.N().S(`aria-hidden="true"`)
//line web/template/template.qtpl:226
//line web/template/template.qtpl:227
qw422016.N().S(` `)
//line web/template/template.qtpl:226
//line web/template/template.qtpl:227
qw422016.N().S(`focusable="false"`)
//line web/template/template.qtpl:227
//line web/template/template.qtpl:228
qw422016.N().S(` `)
//line web/template/template.qtpl:227
//line web/template/template.qtpl:228
qw422016.N().S(`xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M109 0a59.9 59.9 0 1 0 0 120c33 0 60-27 60-60S142 0 109 0Zm0 82.4A22.7 22.7 0 0 1 86.6 60 22.7 22.7 0 0 1 109 37.6 22.7 22.7 0 0 1 131.4 60 23 23 0 0 1 109 82.4Z"/><path fill="#fff" d="M48.6 17.5v87.3H27.3L0 17.5h48.6Z"/></svg>`)
//line web/template/template.qtpl:233
//line web/template/template.qtpl:234
}
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
}
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
func writeicon(qq422016 qtio422016.Writer, id string) {
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
qw422016 := qt422016.AcquireWriter(qq422016)
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
streamicon(qw422016, id)
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
qt422016.ReleaseWriter(qw422016)
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
}
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
func icon(id string) string {
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
qb422016 := qt422016.AcquireByteBuffer()
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
writeicon(qb422016, id)
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
qs422016 := string(qb422016.B)
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
qt422016.ReleaseByteBuffer(qb422016)
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
return qs422016
//line web/template/template.qtpl:234
//line web/template/template.qtpl:235
}