(function () { function slugify(value) { return (value || '') .toString() .toLowerCase() .trim() .replace(/[^a-z0-9-_\s]/g, '') .replace(/\s+/g, '-') .replace(/-+/g, '-'); } function bindSlugHelpers() { document.querySelectorAll('.ansico-slug-source').forEach(function (source) { var form = source.closest('form'); if (!form) return; var target = form.querySelector('.ansico-slug-target'); if (!target || target.value) return; source.addEventListener('input', function () { if (!target.dataset.userEdited) { target.value = slugify(source.value); } }); target.addEventListener('input', function () { if (target.value) { target.dataset.userEdited = '1'; } }); }); } function bindFieldRows() { var addButton = document.getElementById('ansico-add-field'); var tableBody = document.querySelector('#ansico-fields-table tbody'); var template = document.getElementById('tmpl-ansico-field-row'); if (!addButton || !tableBody || !template) return; addButton.addEventListener('click', function () { tableBody.insertAdjacentHTML('beforeend', template.innerHTML); }); tableBody.addEventListener('click', function (event) { var removeButton = event.target.closest('.ansico-remove-field'); if (removeButton) { var row = removeButton.closest('.ansico-field-row'); if (row) row.remove(); } }); } document.addEventListener('DOMContentLoaded', function () { bindSlugHelpers(); bindFieldRows(); }); })();