@uplink-protocol/form-controller
Version:
Reactive multi-step form controller with dynamic validation and state management
202 lines (101 loc) • 3.94 kB
Markdown
[**@uplink-protocol/form-controller v0.2.6**](../README.md)
***
[@uplink-protocol/form-controller](../globals.md) / InteractionService
# Class: InteractionService
Defined in: [services/interaction.service.ts:7](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L7)
Service for tracking user interactions with form fields
## Constructors
### Constructor
> **new InteractionService**(`configService`, `fieldService`): `InteractionService`
Defined in: [services/interaction.service.ts:12](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L12)
#### Parameters
##### configService
[`ConfigService`](ConfigService.md)
##### fieldService
[`FieldService`](FieldService.md)
#### Returns
`InteractionService`
## Methods
### getTouchState()
> **getTouchState**(): `Record`\<`string`, `Record`\<`string`, `boolean`\>\>
Defined in: [services/interaction.service.ts:134](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L134)
Get touch state for all fields
#### Returns
`Record`\<`string`, `Record`\<`string`, `boolean`\>\>
Touch state
***
### isFieldTouched()
> **isFieldTouched**(`stepId`, `fieldId`): `boolean`
Defined in: [services/interaction.service.ts:89](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L89)
Check if a field has been touched
#### Parameters
##### stepId
`string`
Step ID
##### fieldId
`string`
Field ID
#### Returns
`boolean`
Whether the field has been touched
***
### markAllFieldsInStepTouched()
> **markAllFieldsInStepTouched**(`stepId`, `touched`): `void`
Defined in: [services/interaction.service.ts:52](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L52)
Mark all fields in a step as touched
#### Parameters
##### stepId
`string`
Step ID
##### touched
`boolean` = `true`
Touch state (defaults to true)
#### Returns
`void`
***
### markAllFieldsTouched()
> **markAllFieldsTouched**(`touched`): `void`
Defined in: [services/interaction.service.ts:69](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L69)
Mark all fields in all steps as touched
#### Parameters
##### touched
`boolean` = `true`
Touch state (defaults to true)
#### Returns
`void`
***
### markFieldTouched()
> **markFieldTouched**(`stepId`, `fieldId`, `touched`): `void`
Defined in: [services/interaction.service.ts:40](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L40)
Mark a field as touched
#### Parameters
##### stepId
`string`
Step ID
##### fieldId
`string`
Field ID
##### touched
`boolean` = `true`
Touch state (defaults to true)
#### Returns
`void`
***
### resetTouchTracking()
> **resetTouchTracking**(): `void`
Defined in: [services/interaction.service.ts:126](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L126)
Reset touch tracking state
#### Returns
`void`
***
### validateStepWithTouchedErrors()
> **validateStepWithTouchedErrors**(`stepId`): `boolean`
Defined in: [services/interaction.service.ts:97](https://github.com/jmkcoder/uplink-protocol-form-controller/blob/b4197b802291c2a362dd28d04ee111d1534495f5/src/services/interaction.service.ts#L97)
Validate a step showing errors only for touched fields
#### Parameters
##### stepId
`string`
Step ID
#### Returns
`boolean`
Validation result