<spz-script layout="logic" id="custom-script" @setAge="info-result.toggleClass(class='age-class', force=true);">
const data = {
email: '',
username: '',
age: '',
};
function setEmail(event) {
data.email = event.value;
return Promise.resolve({});
}
function setUsername(event) {
data.username = event.value;
return Promise.resolve({});
}
function setAge(event) {
data.age = event.value;
return Promise.resolve({});
}
function getData() {
return Promise.resolve(data);
}
exportFunction('setEmail', setEmail);
exportFunction('setUsername', setUsername);
exportFunction('setAge', setAge);
exportFunction('getData', getData);
</spz-script>
<div class="info-input-wrapper">
<label>Input:</label>
<label>
Email: <input type="text" name="email" @input-debounced="custom-script.execute(func='setEmail', params=event);info-result.render;">
</label>
<label>
Username: <input type="text" name="username" @input-debounced="custom-script.execute(func='setUsername', params=event);info-result.render;">
</label>
<label>
Age: <input type="number" name="age" @input-debounced="custom-script.execute(func='setAge', params=event);info-result.render;">
</label>
</div>
<spz-render src="spz-script:custom-script.getData" layout="container" id="info-result">
<template>
<div class="info-result-wrapper">
<p>Input Result:</p>
<div>
<p>Email: <span>${data.email}</span></p>
<p>Username: <span>${data.username}</span></p>
<p>Age: <span>${data.age}</span></p>
</div>
</div>
</template>
</spz-render>