# trigger

Programmatic DOM event triggers.

## Functions

| Function | Description          | Example                            |
| -------- | -------------------- | ---------------------------------- |
| `click`  | Trigger click event  | `dphelper.trigger.click(element)`  |
| `change` | Trigger change event | `dphelper.trigger.change(element)` |
| `input`  | Trigger input event  | `dphelper.trigger.input(element)`  |

## Description

Programmatic event triggering:

* **Click** - Simulate user clicks
* **Change** - Trigger value change events
* **Input** - Trigger input events
* **Testing** - Useful for automated testing

## Usage Examples

### Trigger Click

```javascript
// Click an element
const button = document.getElementById('submit');
dphelper.trigger.click(button);

// Click first element in collection
const links = document.querySelectorAll('.nav-link');
if (links.length > 0) {
  dphelper.trigger.click(links[0]);
}
```

### Trigger Change

```javascript
// Trigger change on input
const input = document.getElementById('username');
input.value = 'newvalue';
dphelper.trigger.change(input);

// Trigger change on select
const select = document.getElementById('country');
select.value = 'US';
dphelper.trigger.change(select);
```

### Trigger Input

```javascript
// Trigger input event
const input = document.getElementById('search');
input.value = 'search term';
dphelper.trigger.input(input);

// For autocomplete/typeahead
function simulateTyping(element, text) {
  element.value = '';
  text.split('').forEach((char, i) => {
    element.value += char;
    dphelper.trigger.input(element);
  });
}
```

### Form Automation

```javascript
// Fill and submit form programmatically
function fillForm(data) {
  Object.entries(data).forEach(([field, value]) => {
    const input = document.querySelector(`[name="${field}"]`);
    if (input) {
      input.value = value;
      dphelper.trigger.input(input);
      dphelper.trigger.change(input);
    }
  });

  // Submit
  const submitBtn = document.querySelector('button[type="submit"]');
  dphelper.trigger.click(submitBtn);
}
```

## Details

* **Author:** Dario Passariello
* **Version:** 0.0.1
* **Creation Date:** 20210101
* **Last Modified:** 20241001
* **Environment:** client (browser)

***

*Automatically generated document*
