Files
Alfredv2/alfred/app/static/js/alfred-stt-inline-v1.js

29 lines
1.2 KiB
JavaScript

/* ALFRED_STT_INLINE_GLASS_V1 — deplacement de la transcription existante, sans dupliquer les elements. */
(() => {
'use strict';
function mount() {
const hero = document.querySelector('#alfredMainV1 .av-voice-hero');
const panel = document.querySelector('.transcript-panel');
if (!hero || !panel) return false;
if (panel.classList.contains('av-stt-inline')) return true;
// alfred.js et les autres extensions gardent les memes noeuds et les memes IDs.
// Les mises a jour Vosk/Whisper restent donc fonctionnelles sans nouveau listener.
hero.insertBefore(panel, hero.firstChild);
panel.classList.add('av-stt-inline');
hero.classList.add('av-stt-inline-on');
panel.setAttribute('aria-label', 'Transcription vocale en direct');
// Taille du canvas recalculee par le gestionnaire actuel en cas de resize.
window.requestAnimationFrame(() => window.dispatchEvent(new Event('resize')));
return true;
}
if (!mount()) {
// Les scripts Glass sont generalement synchrones, mais on gere un chargement differe.
let count = 0;
const interval = window.setInterval(() => {
if (mount() || ++count >= 16) window.clearInterval(interval);
}, 300);
}
})();