29 lines
1.2 KiB
JavaScript
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);
|
|
}
|
|
})();
|