// DemoPortal.jsx — auto-looping demo: portal B2B. // O cliente pesquisa "tijolo", adiciona dois artigos ao carrinho e confirma a // encomenda — que aparece logo no painel de vendas do distribuidor. // i18n: lê window.__DEMO_LANG ('pt' | 'en' | 'es') a cada render. (function () { const STR = { pt: { windowTitle: 'Portal B2B · Materiais Faria, Lda.', searchQuery: 'tijolo', searchPlaceholder: 'Pesquisar no catálogo…', productNames: ['Tijolo térmico 11×20×30 cm', 'Tijolo face vista 7×11×24 cm'], perUnit: 's/ IVA · por unidade', add: 'Adicionar', added: 'Adicionado', item: 'artigo', items: 'artigos', plusVat: ' + IVA', confirmOrder: 'Confirmar encomenda', orderPre: 'Encomenda', orderPost: 'recebida', emailNote: 'confirmação por email', toast: 'Nova encomenda no painel de vendas', }, en: { windowTitle: 'B2B Portal · Materiais Faria, Lda.', searchQuery: 'brick', searchPlaceholder: 'Search the catalog…', productNames: ['Thermal brick 11×20×30 cm', 'Facing brick 7×11×24 cm'], perUnit: 'excl. VAT · per unit', add: 'Add', added: 'Added', item: 'item', items: 'items', plusVat: ' + VAT', confirmOrder: 'Confirm order', orderPre: 'Order', orderPost: 'received', emailNote: 'email confirmation', toast: 'New order in the sales dashboard', }, es: { windowTitle: 'Portal B2B · Materiais Faria, Lda.', searchQuery: 'ladrillo', searchPlaceholder: 'Buscar en el catálogo…', productNames: ['Ladrillo térmico 11×20×30 cm', 'Ladrillo cara vista 7×11×24 cm'], perUnit: 'sin IVA · por unidad', add: 'Añadir', added: 'Añadido', item: 'artículo', items: 'artículos', plusVat: ' + IVA', confirmOrder: 'Confirmar pedido', orderPre: 'Pedido', orderPost: 'recibido', emailNote: 'confirmación por email', toast: 'Nuevo pedido en el panel de ventas', }, }; const PORTAL_PRODUCTS = [ { sku: 'TIJ-7715', price: '€ 0,42', icon: 'layers' }, { sku: 'TIJ-7720', price: '€ 0,68', icon: 'package' }, ]; function PortalCard({ p, name, visible, added, s }) { return (
{p.sku}
{name}
{p.price}
{s.perUnit}
); } function DemoPortal() { const lang = (window.__DEMO_LANG === 'en' || window.__DEMO_LANG === 'es') ? window.__DEMO_LANG : 'pt'; const s = STR[lang]; const D = 10000; const t = window.useDemoLoop(D, 8600); const { dkTyped, dkCursor } = window; const { DemoCaret, DemoCursor, DemoToast, MiniWindow, DemoStage } = window; const query = dkTyped(s.searchQuery, t, 500, 1300); const typing = t >= 500 && t < 1300; const cardOn = [t >= 1700, t >= 2000]; const added = [t >= 3100, t >= 4000]; const count = (added[0] ? 1 : 0) + (added[1] ? 1 : 0); const total = added[1] ? '€ 380,00' : added[0] ? '€ 210,00' : '€ 0,00'; const confirmed = t >= 6100; const toast = t >= 6550 && t < 9300; const cur = dkCursor(t, [ { at: 0, x: 545, y: 390, hidden: true }, { at: 2300, x: 545, y: 390 }, { at: 2450, x: 224, y: 269 }, { at: 3300, x: 464, y: 269 }, { at: 4800, x: 426, y: 326 }, { at: 7000, x: 545, y: 390, hidden: true }, ], [3000, 3900, 5700]); const cart = ( 0 ? '#4F6EF7' : '#A1A1AA' }}> {count} ); return (
{query} {!query && !typing && {s.searchPlaceholder}}
{!confirmed ? (
{count} {count === 1 ? s.item : s.items} ·{' '} {total} {s.plusVat}
) : (
{s.orderPre} ENC-2026-0103 {s.orderPost}
{s.emailNote}
)}
); } window.DemoPortal = DemoPortal; })();