| 123456789101112131415161718192021222324252627282930313233343536373839 | import { Controller } from '@hotwired/stimulus'export default class extends Controller {    static targets = ['title', 'slug', 'bouton', 'formulaire', 'ligneSlug']    show() {        this.ligneSlugTarget.classList.toggle('hidden', true)        this.formulaireTarget.classList.toggle('hidden', false)    }    async open() {        const basePath = this.slugTarget.dataset.url            this.slugTarget.value = await this.getSlug(this.titleTarget.value, basePath);            this.slugTarget.focus();    }    async getSlug(text, basePath) {        // Envoyer le titre au serveur pour générer le slug        const response = await fetch(basePath + '/generate-slug', {            method: 'POST',            headers: {                'Content-Type': 'application/json',                'X-Requested-With': 'XMLHttpRequest'            },            body: JSON.stringify({ title: text })        })        const data = await response.json()        return data.slug    }    generateSlug(text) {        return text.toString().toLowerCase()            .replace(/\s+/g, '-')           // Remplace les espaces par des tirets            .replace(/[^\w\-]+/g, '')       // Enlève les caractères non alphanumériques            .replace(/\-\-+/g, '-')         // Remplace les tirets doubles            .replace(/^-+/, '')             // Enlève les tirets au début            .replace(/-+$/, '');            // Enlève les tirets à la fin    }}
 |