import { html, css, domtools, cssManager } from '@design.estate/dees-element'; import type { DeesForm } from './dees-form.js'; import '@design.estate/dees-wcctools/demotools'; export const demoFunc = () => html`
{ const form = elementArg.querySelector('dees-form') as DeesForm; const outputDiv = elementArg.querySelector('.form-output'); if (form && outputDiv) { form.addEventListener('formData', async (eventArg: CustomEvent) => { const data = eventArg.detail.data; console.log('Form submitted with data:', data); // Show processing state form.setStatus('pending', 'Processing your registration...'); outputDiv.innerHTML = `Submitted Data:\n${JSON.stringify(data, null, 2)}`; // Simulate API call await domtools.plugins.smartdelay.delayFor(2000); // Show success form.setStatus('success', 'Registration completed successfully!'); // Reset form after delay await domtools.plugins.smartdelay.delayFor(2000); form.reset(); outputDiv.innerHTML = 'Form has been reset'; }); // Track individual field changes const inputs = form.querySelectorAll('dees-input-text, dees-input-dropdown, dees-input-checkbox'); inputs.forEach((input) => { input.addEventListener('changeSubject', () => { console.log('Field changed:', input.getAttribute('key')); }); }); } }}> Create Account
Submit the form to see the collected data...
{ const form = elementArg.querySelector('dees-form') as DeesForm; if (form) { // Track horizontal layout behavior console.log('Horizontal form layout active'); // Monitor filter changes form.addEventListener('formData', (event: CustomEvent) => { const filters = event.detail.data; console.log('Filter applied:', filters); // Simulate search const resultsCount = Math.floor(Math.random() * 100) + 1; console.log(`Found ${resultsCount} results with filters:`, filters); }); // Setup real-time filter updates const inputs = form.querySelectorAll('[key]'); inputs.forEach((input) => { input.addEventListener('changeSubject', async () => { // Get current form data const formData = await form.collectFormData(); console.log('Live filter update:', formData); }); }); } }}> { const form = elementArg.querySelector('dees-form') as DeesForm; const statusDiv = elementArg.querySelector('#status-display'); if (form) { form.addEventListener('formData', async (eventArg: CustomEvent) => { const data = eventArg.detail.data; console.log('Advanced form data:', data); // Show validation in progress form.setStatus('pending', 'Validating your information...'); // Simulate validation await domtools.plugins.smartdelay.delayFor(1500); // Check IBAN validity (simple check) if (data.iban && data.iban.length > 15) { form.setStatus('success', 'Application submitted successfully!'); if (statusDiv) { statusDiv.className = 'status-message success'; statusDiv.textContent = '✓ Your application has been submitted. We will contact you soon.'; } } else { form.setStatus('error', 'Please check your IBAN'); if (statusDiv) { statusDiv.className = 'status-message error'; statusDiv.textContent = '✗ Invalid IBAN format. Please check and try again.'; } } console.log('Form data logged:', data); }); // Monitor file uploads const fileUpload = form.querySelector('dees-input-fileupload'); if (fileUpload) { fileUpload.addEventListener('change', (event: any) => { const files = event.detail?.files || []; console.log(`${files.length} file(s) selected for upload`); }); } } }}> Submit Application
`;