import { Controller } from "@hotwired/stimulus" export default class extends Controller { static values = { formColor: { type: Array, default: [] } // Declares 'items' as an Array value } static targets = ["exceptionTemplate", "exceptionContainer", "exception", "exceptionButton"] connect(){ console.log(this.formColorValue) } addExemption(event) { event.preventDefault() event.stopPropagation() const content = this.#newExemption() this.exceptionButtonTarget.insertAdjacentHTML('beforebegin', content); // this.containerTarget.insertAdjacentHTML("beforeend", content) } removeExemption(event) { event.preventDefault(); const wrapper = event.target.closest(".network-item"); if (wrapper.dataset.newRecord === "true") { wrapper.remove(); } else { wrapper.style.display = "none"; const destroyInput = wrapper.querySelector("input[name*='[_destroy]']"); if (destroyInput) { destroyInput.value = "1"; } } } #newExemption() { const nextIndex = this.exceptionTargets.length const num_of_colors = this.formColorValue.length let colorIndex = 0 if (nextIndex != 0) { colorIndex = nextIndex % num_of_colors } const newColor = this.formColorValue[colorIndex] return this.exceptionTemplateTarget.innerHTML .replace(/NEW_RECORD/g, nextIndex) .replace(/NEXT_COLOR/g, newColor) } }