@lystech/sections 0.2.0 → 0.4.0
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/dist/SectionsProvider.d.ts +23 -1
- package/dist/SignatureLystech.d.ts +9 -1
- package/dist/editeur/Connexion.d.ts +9 -0
- package/dist/editeur/TexteEnPlace.d.ts +7 -0
- package/dist/editeur/index.d.ts +15 -0
- package/dist/editeur/pont.d.ts +9 -0
- package/dist/editeur/styles.d.ts +3 -1
- package/dist/editeur.js +987 -305
- package/dist/index.d.ts +2 -0
- package/dist/index.js +199 -163
- package/dist/morceaux/index.esm-B4AB50RA.js +29 -0
- package/dist/morceaux/index.esm-B4hL1FOE.js +6120 -0
- package/dist/morceaux/index.esm-Bd0PBW01.js +1541 -0
- package/dist/morceaux/sourceTexte-BMPMpNg9.js +71 -0
- package/dist/sourceTexte.d.ts +34 -0
- package/package.json +10 -3
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
function y(t, o) {
|
|
2
|
+
const e = t.split("."), r = {};
|
|
3
|
+
let n = r;
|
|
4
|
+
for (let s = 0; s < e.length - 1; s++) {
|
|
5
|
+
const c = e[s];
|
|
6
|
+
n[c] = {}, n = n[c];
|
|
7
|
+
}
|
|
8
|
+
return n[e[e.length - 1]] = o, r;
|
|
9
|
+
}
|
|
10
|
+
function l(t, o = "", e = {}) {
|
|
11
|
+
if (!t || typeof t != "object") return e;
|
|
12
|
+
for (const [r, n] of Object.entries(t)) {
|
|
13
|
+
const s = o ? o + "." + r : r;
|
|
14
|
+
typeof n == "string" ? e[s] = n : n && typeof n == "object" && !Array.isArray(n) && l(n, s, e);
|
|
15
|
+
}
|
|
16
|
+
return e;
|
|
17
|
+
}
|
|
18
|
+
function h(t) {
|
|
19
|
+
return {
|
|
20
|
+
langues: () => {
|
|
21
|
+
const o = t?.options?.supportedLngs, e = Array.isArray(o) ? o.filter((r) => r !== "cimode") : [];
|
|
22
|
+
return e.length ? e : [t?.language ?? "fr"];
|
|
23
|
+
},
|
|
24
|
+
langueCourante: () => String(t?.language ?? "fr").slice(0, 2),
|
|
25
|
+
dictionnaire: (o) => {
|
|
26
|
+
const e = Array.isArray(t?.options?.ns) ? t.options.ns : [t?.options?.defaultNS ?? "translation"], r = {};
|
|
27
|
+
for (const n of e) {
|
|
28
|
+
const s = t?.getResourceBundle?.(o, n);
|
|
29
|
+
s && (r[n] = l(s));
|
|
30
|
+
}
|
|
31
|
+
return r;
|
|
32
|
+
},
|
|
33
|
+
poser: (o, e, r, n) => {
|
|
34
|
+
t?.addResourceBundle?.(
|
|
35
|
+
o,
|
|
36
|
+
e,
|
|
37
|
+
y(r, n),
|
|
38
|
+
!0,
|
|
39
|
+
!0
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const d = /^i18n:([^:]+):(.*)$/;
|
|
45
|
+
function A(t, o) {
|
|
46
|
+
if (typeof t == "string") return t;
|
|
47
|
+
if (!t || typeof t != "object" || Array.isArray(t)) return null;
|
|
48
|
+
const e = t, r = o.slice(0, 2), n = e[o] ?? e[r];
|
|
49
|
+
return typeof n == "string" ? n : null;
|
|
50
|
+
}
|
|
51
|
+
function j(t, o) {
|
|
52
|
+
const e = o.langues();
|
|
53
|
+
let r = 0;
|
|
54
|
+
for (const n of t ?? []) {
|
|
55
|
+
const s = d.exec(n.blockType ?? "");
|
|
56
|
+
if (!s || !n.data) continue;
|
|
57
|
+
const c = s[1], u = s[2];
|
|
58
|
+
for (const [a, p] of Object.entries(n.data)) {
|
|
59
|
+
const g = u ? u + "." + a : a;
|
|
60
|
+
for (const f of e) {
|
|
61
|
+
const i = A(p, f);
|
|
62
|
+
i === null || i === "" || (o.poser(f, c, g, i), r++);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return r;
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
h as adaptateurI18next,
|
|
70
|
+
j as appliquerAuxTextes
|
|
71
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Un dictionnaire aplati : espace de noms → chemin pointé → texte. */
|
|
2
|
+
export type Dictionnaire = Record<string, Record<string, string>>;
|
|
3
|
+
export type SourceTexte = {
|
|
4
|
+
/** Les langues que le site sait rendre. */
|
|
5
|
+
langues: () => string[];
|
|
6
|
+
/** Celle qu'il affiche en ce moment. */
|
|
7
|
+
langueCourante: () => string;
|
|
8
|
+
/** Tout ce que le site sait dire, dans une langue. */
|
|
9
|
+
dictionnaire: (langue: string) => Dictionnaire;
|
|
10
|
+
/** Remplacer un texte. Le site doit se redessiner ensuite. */
|
|
11
|
+
poser: (langue: string, espace: string, chemin: string, valeur: string) => void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Branche une instance i18next.
|
|
15
|
+
*
|
|
16
|
+
* `bindI18nStore: "added"` doit être actif dans la configuration du site,
|
|
17
|
+
* sinon React ne se redessine pas quand on remplace un texte — la
|
|
18
|
+
* modification serait enregistrée mais invisible, ce qui est la pire des
|
|
19
|
+
* deux issues : la personne réécrit, republie, et finit par croire que rien
|
|
20
|
+
* ne fonctionne.
|
|
21
|
+
*/
|
|
22
|
+
export declare function adaptateurI18next(i18n: any): SourceTexte;
|
|
23
|
+
/**
|
|
24
|
+
* Applique des sections publiées à la source de textes du site.
|
|
25
|
+
*
|
|
26
|
+
* Utilisée à deux moments, et c'est ce qui rend le référencement juste :
|
|
27
|
+
* pendant le PRÉ-RENDU, pour que le HTML livré porte le bon texte et les
|
|
28
|
+
* bonnes balises ; puis dans le NAVIGATEUR, pour rattraper ce qui aurait été
|
|
29
|
+
* publié depuis la dernière reconstruction.
|
|
30
|
+
*/
|
|
31
|
+
export declare function appliquerAuxTextes(sections: Array<{
|
|
32
|
+
blockType: string;
|
|
33
|
+
data: Record<string, unknown> | null;
|
|
34
|
+
}>, source: SourceTexte): number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lystech/sections",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Contenu de site editable par le client — lecture legere, edition chargee a la demande.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"sideEffects": false,
|
|
20
|
-
"files": [
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
21
23
|
"scripts": {
|
|
22
24
|
"build": "tsc -b && vite build",
|
|
23
25
|
"dev": "vite build --watch"
|
|
@@ -35,5 +37,10 @@
|
|
|
35
37
|
"vite": "^7.0.0",
|
|
36
38
|
"vite-plugin-dts": "^4.5.4"
|
|
37
39
|
},
|
|
38
|
-
"publishConfig": {
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"firebase": "^12.19.0"
|
|
45
|
+
}
|
|
39
46
|
}
|