import { Controller } from '@hotwired/stimulus' export default class extends Controller { connect () { const affectedField = this.element.dataset.target const targetQuestion = affectedField.split('lettings-log-')[1].split('-field')[0] const div = document.getElementById(targetQuestion + '_div') div.style.display = 'block' } calculateFields () { const affectedField = this.element.dataset.target const fieldsToAdd = JSON.parse(this.element.dataset.calculated).map(x => `lettings-log-${x.replaceAll('_', '-')}-field`) const valuesToAdd = fieldsToAdd.map(x => getFieldValue(x)).filter(x => x) const newValue = valuesToAdd.map(x => parseFloat(x)).reduce((a, b) => a + b, 0).toFixed(2) const elementToUpdate = document.getElementById(affectedField) elementToUpdate.value = newValue } } const getFieldValue = (field) => { const elementFieldToAdd = document.getElementById(field) if (elementFieldToAdd) { return elementFieldToAdd.value } return document.getElementById(`${field}-error`).value }