ripple
Version:
Ripple is an elegant TypeScript UI framework
708 lines (525 loc) • 15.2 kB
JavaScript
// @ts-nocheck
import * as _$_ from 'ripple/internal/server';
import { track } from 'ripple/server';
export function StaticForLoop() {
return _$_.tsrx_element(() => {
const items = ['Apple', 'Banana', 'Cherry'];
_$_.regular_block(() => {
let __out = '';
__out += '<ul><!--[-->';
for (const item of items) {
__out += '<li>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopWithIndex() {
return _$_.tsrx_element(() => {
const items = ['A', 'B', 'C'];
_$_.regular_block(() => {
let __out = '';
__out += '<ul>';
{
__out += '<!--[-->';
var i = 0;
for (const item of items) {
__out += '<li>' + _$_.escape(`${i}: ${item}`) + '</li>';
i++;
}
__out += '<!--]-->';
}
__out += '</ul>';
_$_.output_push(__out);
});
});
}
export function KeyedForLoop() {
return _$_.tsrx_element(() => {
const items = [
{ id: 1, name: 'First' },
{ id: 2, name: 'Second' },
{ id: 3, name: 'Third' }
];
_$_.regular_block(() => {
let __out = '';
__out += '<ul><!--[-->';
for (const item of items) {
__out += '<li>' + _$_.escape(item.name) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ReactiveForLoopAdd() {
return _$_.tsrx_element(() => {
let lazy = _$_.track(['A', 'B'], 'e145678a');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="add">Add</button><ul><!--[-->';
for (const item of lazy.value) {
__out += '<li>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ReactiveForLoopRemove() {
return _$_.tsrx_element(() => {
let lazy_1 = _$_.track(['A', 'B', 'C'], 'b4e9bd54');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="remove">Remove</button><ul><!--[-->';
for (const item of lazy_1.value) {
__out += '<li>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopInteractive() {
return _$_.tsrx_element(() => {
let lazy_2 = _$_.track([0, 0, 0], '36f563df');
_$_.regular_block(() => {
let __out = '';
__out += '<div>';
{
__out += '<!--[-->';
var i = 0;
for (const count of lazy_2.value) {
__out += '<div' + _$_.attr('class', `item-${i}`) + '><span class="value">' + _$_.escape(count) + '</span><button class="increment">+</button></div>';
i++;
}
__out += '<!--]-->';
}
__out += '</div>';
_$_.output_push(__out);
});
});
}
export function NestedForLoop() {
return _$_.tsrx_element(() => {
const grid = [[1, 2], [3, 4]];
_$_.regular_block(() => {
let __out = '';
__out += '<div class="grid">';
{
__out += '<!--[-->';
var rowIndex = 0;
for (const row of grid) {
__out += '<div' + _$_.attr('class', `row-${rowIndex}`) + '>';
{
__out += '<!--[-->';
var colIndex = 0;
for (const cell of row) {
__out += '<span' + _$_.attr('class', `cell-${rowIndex}-${colIndex}`) + '>' + _$_.escape(cell) + '</span>';
colIndex++;
}
__out += '<!--]-->';
}
__out += '</div>';
rowIndex++;
}
__out += '<!--]-->';
}
__out += '</div>';
_$_.output_push(__out);
});
});
}
export function EmptyForLoop() {
return _$_.tsrx_element(() => {
const items = [];
_$_.regular_block(() => {
let __out = '';
__out += '<div class="container"><!--[-->';
for (const item of items) {
__out += '<span>' + _$_.escape(item) + '</span>';
}
__out += '<!--]--></div>';
_$_.output_push(__out);
});
});
}
export function ForLoopComplexObjects() {
return _$_.tsrx_element(() => {
const users = [
{ id: 1, name: 'Alice', role: 'Admin' },
{ id: 2, name: 'Bob', role: 'User' }
];
_$_.regular_block(() => {
let __out = '';
__out += '<div><!--[-->';
for (const user of users) {
__out += '<div' + _$_.attr('class', `user-${user.id}`) + '><span class="name">' + _$_.escape(user.name) + '</span><span class="role">' + _$_.escape(user.role) + '</span></div>';
}
__out += '<!--]--></div>';
_$_.output_push(__out);
});
});
}
export function KeyedForLoopReorder() {
return _$_.tsrx_element(() => {
let lazy_3 = _$_.track(
[
{ id: 1, name: 'First' },
{ id: 2, name: 'Second' },
{ id: 3, name: 'Third' }
],
'e7abc6a3'
);
_$_.regular_block(() => {
let __out = '';
__out += '<button class="reorder">Reorder</button><ul><!--[-->';
for (const item of lazy_3.value) {
__out += '<li' + _$_.attr('class', `item-${item.id}`) + '>' + _$_.escape(item.name) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function KeyedForLoopUpdate() {
return _$_.tsrx_element(() => {
let lazy_4 = _$_.track([{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }], '7a2c2ada');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="update">Update</button><ul><!--[-->';
for (const item of lazy_4.value) {
__out += '<li' + _$_.attr('class', `item-${item.id}`) + '>' + _$_.escape(item.name) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopMixedOperations() {
return _$_.tsrx_element(() => {
let lazy_5 = _$_.track(['A', 'B', 'C', 'D'], '3dd7c7b6');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="shuffle">Shuffle</button><ul><!--[-->';
for (const item of lazy_5.value) {
__out += '<li' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopInsideIf() {
return _$_.tsrx_element(() => {
let lazy_6 = _$_.track(true, '0528df30');
let lazy_7 = _$_.track(['X', 'Y', 'Z'], 'bf375103');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="toggle">Toggle List</button><button class="add">Add Item</button><!--[-->';
if (lazy_6.value) {
__out += '<ul class="list"><!--[-->';
for (const item of lazy_7.value) {
__out += '<li>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
}
__out += '<!--]-->';
_$_.output_push(__out);
});
});
}
export function ForLoopEmptyToPopulated() {
return _$_.tsrx_element(() => {
let lazy_8 = _$_.track([], '525c5dbc');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="populate">Populate</button><ul class="list"><!--[-->';
for (const item of lazy_8.value) {
__out += '<li>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopPopulatedToEmpty() {
return _$_.tsrx_element(() => {
let lazy_9 = _$_.track(['One', 'Two', 'Three'], 'ee47f078');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="clear">Clear</button><ul class="list"><!--[-->';
for (const item of lazy_9.value) {
__out += '<li>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function NestedForLoopReactive() {
return _$_.tsrx_element(() => {
let lazy_10 = _$_.track([[1, 2], [3, 4]], 'a2f41fb3');
_$_.regular_block(() => {
let __out = '';
__out += '<div class="nested-for-reactive"><button class="add-row">Add Row</button><button class="update-cell">Update Cell</button><div class="grid">';
{
__out += '<!--[-->';
var rowIndex = 0;
for (const row of lazy_10.value) {
__out += '<div' + _$_.attr('class', `row-${rowIndex}`) + '>';
{
__out += '<!--[-->';
var colIndex = 0;
for (const cell of row) {
__out += '<span' + _$_.attr('class', `cell-${rowIndex}-${colIndex}`) + '>' + _$_.escape(cell) + '</span>';
colIndex++;
}
__out += '<!--]-->';
}
__out += '</div>';
rowIndex++;
}
__out += '<!--]-->';
}
__out += '</div></div>';
_$_.output_push(__out);
});
});
}
export function ForLoopDeeplyNested() {
return _$_.tsrx_element(() => {
const departments = [
{
id: 'd1',
name: 'Engineering',
teams: [
{ id: 't1', name: 'Frontend', members: ['Alice', 'Bob'] },
{ id: 't2', name: 'Backend', members: ['Charlie'] }
]
},
{
id: 'd2',
name: 'Design',
teams: [{ id: 't3', name: 'UX', members: ['Diana', 'Eve', 'Frank'] }]
}
];
_$_.regular_block(() => {
let __out = '';
__out += '<div class="org"><!--[-->';
for (const dept of departments) {
__out += '<div' + _$_.attr('class', `dept-${dept.id}`) + '><h2 class="dept-name">' + _$_.escape(dept.name) + '</h2><!--[-->';
for (const team of dept.teams) {
__out += '<div' + _$_.attr('class', `team-${team.id}`) + '><h3 class="team-name">' + _$_.escape(team.name) + '</h3><ul><!--[-->';
for (const member of team.members) {
__out += '<li class="member">' + _$_.escape(member) + '</li>';
}
__out += '<!--]--></ul></div>';
}
__out += '<!--]--></div>';
}
__out += '<!--]--></div>';
_$_.output_push(__out);
});
});
}
export function ForLoopIndexUpdate() {
return _$_.tsrx_element(() => {
let lazy_11 = _$_.track(['First', 'Second', 'Third'], 'f61e31e6');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="prepend">Prepend</button><ul>';
{
__out += '<!--[-->';
var i = 0;
for (const item of lazy_11.value) {
__out += '<li' + _$_.attr('class', `item-${i}`) + '>' + _$_.escape(`[${i}] ${item}`) + '</li>';
i++;
}
__out += '<!--]-->';
}
__out += '</ul>';
_$_.output_push(__out);
});
});
}
export function KeyedForLoopWithIndex() {
return _$_.tsrx_element(() => {
let lazy_12 = _$_.track(
[
{ id: 'a', value: 'Alpha' },
{ id: 'b', value: 'Beta' },
{ id: 'c', value: 'Gamma' }
],
'3467975a'
);
_$_.regular_block(() => {
let __out = '';
__out += '<button class="reorder">Rotate</button><ul>';
{
__out += '<!--[-->';
var i = 0;
for (const item of lazy_12.value) {
__out += '<li' + _$_.attr('data-index', i, false) + _$_.attr('class', `item-${item.id}`) + '>' + _$_.escape(`[${i}] ${item.id}: ${item.value}`) + '</li>';
i++;
}
__out += '<!--]-->';
}
__out += '</ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopWithSiblings() {
return _$_.tsrx_element(() => {
let lazy_13 = _$_.track(['A', 'B'], '3c7e8152');
_$_.regular_block(() => {
let __out = '';
__out += '<div class="wrapper"><header class="before">Before</header><!--[-->';
for (const item of lazy_13.value) {
__out += '<div' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</div>';
}
__out += '<!--]--><footer class="after">After</footer></div><button class="add">Add</button>';
_$_.output_push(__out);
});
});
}
export function ForLoopItemState() {
return _$_.tsrx_element(() => {
const initialItems = [
{ id: 1, text: 'Todo 1' },
{ id: 2, text: 'Todo 2' },
{ id: 3, text: 'Todo 3' }
];
_$_.regular_block(() => {
let __out = '';
__out += '<div><!--[-->';
for (const item of initialItems) {
{
const comp = TodoItem;
const args = [{ id: item.id, text: item.text }];
_$_.output_push(__out);
__out = '';
_$_.render_component(comp, ...args);
}
}
__out += '<!--]--></div>';
_$_.output_push(__out);
});
});
}
function TodoItem(props) {
return _$_.tsrx_element(() => {
let lazy_14 = _$_.track(false, '4f2402a4');
_$_.regular_block(() => {
let __out = '';
__out += '<div' + _$_.attr('class', `todo-${props.id}`) + '><input type="checkbox"' + _$_.attr('checked', lazy_14.value, true) + ' class="checkbox" /><span' + _$_.attr('class', lazy_14.value ? 'completed' : 'pending') + '>' + _$_.escape(props.text) + '</span></div>';
_$_.output_push(__out);
});
});
}
export function ForLoopSingleItem() {
return _$_.tsrx_element(() => {
const items = ['Only'];
_$_.regular_block(() => {
let __out = '';
__out += '<ul><!--[-->';
for (const item of items) {
__out += '<li class="single">' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopAddAtBeginning() {
return _$_.tsrx_element(() => {
let lazy_15 = _$_.track(['B', 'C'], '1561403a');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="prepend">Prepend A</button><ul><!--[-->';
for (const item of lazy_15.value) {
__out += '<li' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopAddInMiddle() {
return _$_.tsrx_element(() => {
let lazy_16 = _$_.track(['A', 'C'], '1bc60b46');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="insert">Insert B</button><ul><!--[-->';
for (const item of lazy_16.value) {
__out += '<li' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopRemoveFromMiddle() {
return _$_.tsrx_element(() => {
let lazy_17 = _$_.track(['A', 'B', 'C'], '1c87f95f');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="remove-middle">Remove B</button><ul><!--[-->';
for (const item of lazy_17.value) {
__out += '<li' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopLargeList() {
return _$_.tsrx_element(() => {
const items = Array.from({ length: 50 }, (_, i) => `Item ${i + 1}`);
_$_.regular_block(() => {
let __out = '';
__out += '<ul class="large-list">';
{
__out += '<!--[-->';
var i = 0;
for (const item of items) {
__out += '<li' + _$_.attr('class', `item-${i}`) + '>' + _$_.escape(item) + '</li>';
i++;
}
__out += '<!--]-->';
}
__out += '</ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopSwap() {
return _$_.tsrx_element(() => {
let lazy_18 = _$_.track(['A', 'B', 'C', 'D'], '5f8d152f');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="swap">Swap First and Last</button><ul><!--[-->';
for (const item of lazy_18.value) {
__out += '<li' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}
export function ForLoopReverse() {
return _$_.tsrx_element(() => {
let lazy_19 = _$_.track(['A', 'B', 'C', 'D'], '24602e64');
_$_.regular_block(() => {
let __out = '';
__out += '<button class="reverse">Reverse</button><ul><!--[-->';
for (const item of lazy_19.value) {
__out += '<li' + _$_.attr('class', `item-${item}`) + '>' + _$_.escape(item) + '</li>';
}
__out += '<!--]--></ul>';
_$_.output_push(__out);
});
});
}