@noeva/analytics-core 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  Le versioni del pacchetto che i repository dei progetti installano (ADR 0005). Prima di
4
4
  `analytics upgrade` si legge cosa cambia fra la versione installata e la nuova.
5
5
 
6
+ ## 0.4.1 — 10 novembre 2026
7
+
8
+ - `voce.js`: `montaSceltaVoce("#voce", { lingue: ["it"] })` mostra solo le lingue in cui
9
+ il progetto ha pagine con il commento; senza `lingue` restano tutte quelle del
10
+ catalogo. La 0.4.0 su npm aveva il modulo senza questa opzione.
11
+
6
12
  ## 0.4.0 — 10 novembre 2026
7
13
 
8
14
  - **Le risposte alle domande si registrano in ogni progetto allo stesso modo**
@@ -20,6 +26,14 @@ Le versioni del pacchetto che i repository dei progetti installano (ADR 0005). P
20
26
  di fuoco e `commento.js` legge da li' filtri e fuoco. Una pagina che non chiama
21
27
  `montaVista` resta com'e'. Le frasi nuove da tradurre in `en.js` sono in
22
28
  `lib/pagina/README.md` di NOEVA Analytics.
29
+ - **La voce del commento anche sul sito pubblicato** (NW-1091). Modulo nuovo
30
+ `apps/assets/voce.js`: `montaSceltaVoce("#voce")` nella home del progetto offre, per
31
+ italiano e inglese, le voci del catalogo del contenitore (`ai/voci`, ElevenLabs con la
32
+ chiave in un secret del Worker) con «Ascolta»; la scelta resta nel browser. Dove il
33
+ contenitore non fa la voce il riquadro resta nascosto. `commento.js` usa la voce
34
+ scelta; chi non sceglie sente quella di prima. La home monta il modulo con un
35
+ `import()` dinamico, cosi' resta buona anche prima dell'aggiornamento. Le frasi nuove
36
+ da tradurre in `en.js` sono in `lib/pagina/README.md` di NOEVA Analytics.
23
37
  - La chat su NOEVA Agents chiede `ai/token` solo quando si apre (NW-1279): al
24
38
  caricamento della pagina chiede solo `ai/token?disponibile`, senza token.
25
39
  - `snapshot.json` porta in `progetto` l'id del progetto nel contenitore, non il nome
@@ -9,6 +9,7 @@
9
9
  * montaSceltaVoce("#voce") nella home del progetto: per ogni lingua le
10
10
  * voci, con «Ascolta»; non compare se il
11
11
  * contenitore non ha la voce online
12
+ * montaSceltaVoce("#voce", { lingue: ["it"] }) solo le lingue del progetto
12
13
  * await voceOnline() true se il contenitore fa la voce
13
14
  * voceScelta("it") l'id scelto per la lingua, o null
14
15
  * await parla(testo, { pagina }) l'URL (blob:) dell'mp3, dalla voce scelta
@@ -71,8 +72,9 @@ export async function parla(testo, { lingua = LINGUA, voce = voceScelta(lingua),
71
72
 
72
73
  /* La scelta della voce, nella home del progetto. Si monta in un contenitore
73
74
  * qualunque (`dove`: selettore o elemento); resta vuoto e nascosto se il
74
- * contenitore Analytics non fa la voce. */
75
- export async function montaSceltaVoce(dove) {
75
+ * contenitore Analytics non fa la voce. `lingue`: quelle in cui il progetto ha
76
+ * pagine con il commento (di default tutte quelle del catalogo). */
77
+ export async function montaSceltaVoce(dove, { lingue: soloLingue } = {}) {
76
78
  const el = typeof dove === "string" ? document.querySelector(dove) : dove;
77
79
  if (!el) return null;
78
80
  el.hidden = true;
@@ -80,7 +82,10 @@ export async function montaSceltaVoce(dove) {
80
82
  if (!cat) return null;
81
83
 
82
84
  // prima la lingua della pagina, poi le altre
83
- const lingue = Object.keys(cat.lingue).sort((a, b) => (a === LINGUA ? -1 : b === LINGUA ? 1 : 0));
85
+ const lingue = Object.keys(cat.lingue)
86
+ .filter((l) => !soloLingue || soloLingue.includes(l))
87
+ .sort((a, b) => (a === LINGUA ? -1 : b === LINGUA ? 1 : 0));
88
+ if (!lingue.length) return null;
84
89
  el.classList.add("scelta-voce");
85
90
  el.innerHTML = `
86
91
  <h3>${t("La voce del commento")}</h3>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noeva/analytics-core",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Gli strumenti di un progetto NOEVA Analytics nel suo repository: moduli di pagina, snapshot, verifica dello standard e kit dell'agente (ADR 0005).",
5
5
  "type": "module",
6
6
  "bin": {