@lystech/sections 0.4.3 → 0.4.5
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/editeur.js +217 -201
- package/package.json +1 -1
package/dist/editeur.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as e, jsxs as f, Fragment as
|
|
2
|
-
import { createRoot as
|
|
3
|
-
import { useState as
|
|
4
|
-
function
|
|
1
|
+
import { jsx as e, jsxs as f, Fragment as re } from "react/jsx-runtime";
|
|
2
|
+
import { createRoot as ae } from "react-dom/client";
|
|
3
|
+
import { useState as O, useRef as j, useEffect as G, useCallback as W, useMemo as te } from "react";
|
|
4
|
+
function fe({
|
|
5
5
|
jeton: n,
|
|
6
6
|
site: t,
|
|
7
7
|
apiBaseUrl: s,
|
|
@@ -20,7 +20,7 @@ function me({
|
|
|
20
20
|
});
|
|
21
21
|
return d(h, i), await h.json();
|
|
22
22
|
}
|
|
23
|
-
async function
|
|
23
|
+
async function b(o, i, h) {
|
|
24
24
|
const v = await fetch(s + o, {
|
|
25
25
|
method: i,
|
|
26
26
|
headers: a,
|
|
@@ -33,14 +33,14 @@ function me({
|
|
|
33
33
|
schemas: () => l("/site-sections/public/" + encodeURIComponent(t) + "/schemas", !1),
|
|
34
34
|
/** Ce qui existe sur une page, brouillons compris. */
|
|
35
35
|
pourPage: (o) => l("/site-sections?page=" + encodeURIComponent(o)),
|
|
36
|
-
creer: (o, i, h) =>
|
|
37
|
-
enregistrerBrouillon: (o, i) =>
|
|
38
|
-
publier: (o) =>
|
|
36
|
+
creer: (o, i, h) => b("/site-sections", "POST", { page: o, blockType: i, draft: h }),
|
|
37
|
+
enregistrerBrouillon: (o, i) => b("/site-sections/" + o + "/draft", "PUT", { draft: i }),
|
|
38
|
+
publier: (o) => b("/site-sections/" + o + "/publish", "POST"),
|
|
39
39
|
/** Ramène le brouillon à ce qui est en ligne. */
|
|
40
|
-
annuler: (o) =>
|
|
40
|
+
annuler: (o) => b("/site-sections/" + o + "/revert", "POST")
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
const
|
|
43
|
+
const be = "data:image/png;base64,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", ge = {
|
|
44
44
|
apiKey: "AIzaSyCpAeHlt1wZvM5KtYg7X7MDVnWVJT86gvc",
|
|
45
45
|
authDomain: "lystech.firebaseapp.com",
|
|
46
46
|
projectId: "lystech",
|
|
@@ -48,13 +48,13 @@ const fe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAA
|
|
|
48
48
|
messagingSenderId: "237347321732",
|
|
49
49
|
appId: "1:237347321732:web:7f9586d48e488d73ddcfd1"
|
|
50
50
|
};
|
|
51
|
-
function
|
|
51
|
+
function he() {
|
|
52
52
|
return /* @__PURE__ */ f("span", { className: "marque", children: [
|
|
53
|
-
/* @__PURE__ */ e("img", { src:
|
|
53
|
+
/* @__PURE__ */ e("img", { src: be, alt: "", width: 22, height: 22 }),
|
|
54
54
|
/* @__PURE__ */ e("span", { className: "marque__mot", children: "Lystech" })
|
|
55
55
|
] });
|
|
56
56
|
}
|
|
57
|
-
function
|
|
57
|
+
function xe() {
|
|
58
58
|
return /* @__PURE__ */ f("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", focusable: "false", className: "logo", children: [
|
|
59
59
|
/* @__PURE__ */ e("path", { fill: "#4285F4", d: "M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84a4.14 4.14 0 0 1-1.8 2.72v2.26h2.91c1.7-1.57 2.69-3.88 2.69-6.62z" }),
|
|
60
60
|
/* @__PURE__ */ e("path", { fill: "#34A853", d: "M9 18c2.43 0 4.47-.8 5.96-2.18l-2.91-2.26c-.81.54-1.84.86-3.05.86-2.34 0-4.33-1.58-5.04-3.71H.96v2.33A9 9 0 0 0 9 18z" }),
|
|
@@ -62,7 +62,7 @@ function he() {
|
|
|
62
62
|
/* @__PURE__ */ e("path", { fill: "#EA4335", d: "M9 3.58c1.32 0 2.5.45 3.44 1.35l2.58-2.59C13.46.89 11.43 0 9 0A9 9 0 0 0 .96 4.96l3 2.33C4.67 5.16 6.66 3.58 9 3.58z" })
|
|
63
63
|
] });
|
|
64
64
|
}
|
|
65
|
-
function
|
|
65
|
+
function ve() {
|
|
66
66
|
return /* @__PURE__ */ e("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", className: "logo", children: /* @__PURE__ */ e(
|
|
67
67
|
"path",
|
|
68
68
|
{
|
|
@@ -71,14 +71,14 @@ function xe() {
|
|
|
71
71
|
}
|
|
72
72
|
) });
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function ye({
|
|
75
75
|
site: n,
|
|
76
76
|
apiBaseUrl: t,
|
|
77
77
|
methodes: s = ["google", "facebook"],
|
|
78
78
|
surJeton: r,
|
|
79
79
|
surFermer: a
|
|
80
80
|
}) {
|
|
81
|
-
const [d, l] =
|
|
81
|
+
const [d, l] = O({ nom: "repos" }), b = (v) => {
|
|
82
82
|
switch (v) {
|
|
83
83
|
case "auth/popup-blocked":
|
|
84
84
|
return "Votre navigateur a bloqué la fenêtre de connexion. Autorisez les fenêtres pour ce site, puis réessayez.";
|
|
@@ -94,7 +94,7 @@ function ve({
|
|
|
94
94
|
default:
|
|
95
95
|
return "La connexion a échoué. Réessayez dans un instant.";
|
|
96
96
|
}
|
|
97
|
-
}, o = async (v,
|
|
97
|
+
}, o = async (v, E = !1) => {
|
|
98
98
|
const D = await fetch(t + "/site-sections/edit-login/third-party", {
|
|
99
99
|
method: "POST",
|
|
100
100
|
headers: { "Content-Type": "application/json" },
|
|
@@ -102,7 +102,7 @@ function ve({
|
|
|
102
102
|
site: n,
|
|
103
103
|
token: v,
|
|
104
104
|
tokenType: "firebase",
|
|
105
|
-
demanderAcces:
|
|
105
|
+
demanderAcces: E
|
|
106
106
|
})
|
|
107
107
|
});
|
|
108
108
|
if (D.status === 429) {
|
|
@@ -112,12 +112,12 @@ function ve({
|
|
|
112
112
|
});
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
|
-
const
|
|
116
|
-
if (
|
|
117
|
-
r(
|
|
115
|
+
const y = await D.json().catch(() => null);
|
|
116
|
+
if (y?.ok && y?.token) {
|
|
117
|
+
r(y.token);
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
|
-
switch (
|
|
120
|
+
switch (y?.raison) {
|
|
121
121
|
case "sans_acces":
|
|
122
122
|
l({ nom: "sans-acces", jeton: v });
|
|
123
123
|
return;
|
|
@@ -148,13 +148,13 @@ function ve({
|
|
|
148
148
|
}, i = async (v) => {
|
|
149
149
|
l({ nom: "envoi", quoi: v });
|
|
150
150
|
try {
|
|
151
|
-
const [{ initializeApp:
|
|
151
|
+
const [{ initializeApp: E, getApps: D }, y] = await Promise.all([
|
|
152
152
|
import("./morceaux/index.esm-B4AB50RA.js"),
|
|
153
153
|
import("./morceaux/index.esm-B4hL1FOE.js")
|
|
154
|
-
]), q = D().find((
|
|
155
|
-
await o(
|
|
156
|
-
} catch (
|
|
157
|
-
l({ nom: "erreur", texte:
|
|
154
|
+
]), q = D().find((M) => M.name === "lystech-edition") ?? E(ge, "lystech-edition"), U = v === "google" ? new y.GoogleAuthProvider() : new y.FacebookAuthProvider(), C = await (await y.signInWithPopup(y.getAuth(q), U)).user.getIdToken();
|
|
155
|
+
await o(C);
|
|
156
|
+
} catch (E) {
|
|
157
|
+
l({ nom: "erreur", texte: b(String(E?.code ?? "")) });
|
|
158
158
|
}
|
|
159
159
|
}, h = d.nom === "envoi";
|
|
160
160
|
return /* @__PURE__ */ e("div", { className: "voile", role: "dialog", "aria-modal": "true", "aria-label": "Modifier ce site", children: /* @__PURE__ */ f("div", { className: "fenetre", children: [
|
|
@@ -169,7 +169,7 @@ function ve({
|
|
|
169
169
|
}
|
|
170
170
|
),
|
|
171
171
|
/* @__PURE__ */ f("div", { className: "fenetre__tete", children: [
|
|
172
|
-
/* @__PURE__ */ e(
|
|
172
|
+
/* @__PURE__ */ e(he, {}),
|
|
173
173
|
/* @__PURE__ */ e("h2", { className: "fenetre__titre", children: "Modifier ce site" }),
|
|
174
174
|
/* @__PURE__ */ e("p", { className: "fenetre__sous", children: "Vous vous connectez à Lystech. Cet accès ne sert qu'à modifier le contenu de ce site." })
|
|
175
175
|
] }),
|
|
@@ -207,7 +207,7 @@ function ve({
|
|
|
207
207
|
i("google");
|
|
208
208
|
},
|
|
209
209
|
children: [
|
|
210
|
-
/* @__PURE__ */ e(
|
|
210
|
+
/* @__PURE__ */ e(xe, {}),
|
|
211
211
|
/* @__PURE__ */ e("span", { children: d.nom === "envoi" && d.quoi === "google" ? "Connexion…" : "Continuer avec Google" })
|
|
212
212
|
]
|
|
213
213
|
}
|
|
@@ -222,7 +222,7 @@ function ve({
|
|
|
222
222
|
i("facebook");
|
|
223
223
|
},
|
|
224
224
|
children: [
|
|
225
|
-
/* @__PURE__ */ e(
|
|
225
|
+
/* @__PURE__ */ e(ve, {}),
|
|
226
226
|
/* @__PURE__ */ e("span", { children: d.nom === "envoi" && d.quoi === "facebook" ? "Connexion…" : "Continuer avec Facebook" })
|
|
227
227
|
]
|
|
228
228
|
}
|
|
@@ -235,7 +235,7 @@ function Ae(n, t) {
|
|
|
235
235
|
const s = n && typeof n == "object" && !Array.isArray(n) ? Object.keys(n).filter((a) => /^[a-z]{2}(-[A-Za-z]{2})?$/.test(a)) : [], r = t.slice(0, 2);
|
|
236
236
|
return Array.from(/* @__PURE__ */ new Set([r, ...s]));
|
|
237
237
|
}
|
|
238
|
-
function
|
|
238
|
+
function ke(n) {
|
|
239
239
|
switch (n.type) {
|
|
240
240
|
case "number":
|
|
241
241
|
return 0;
|
|
@@ -247,7 +247,7 @@ function ye(n) {
|
|
|
247
247
|
return "";
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
-
function
|
|
250
|
+
function ne({ champ: n, valeur: t, changer: s }) {
|
|
251
251
|
switch (n.type) {
|
|
252
252
|
case "richText":
|
|
253
253
|
return /* @__PURE__ */ e(
|
|
@@ -310,7 +310,7 @@ function ee({ champ: n, valeur: t, changer: s }) {
|
|
|
310
310
|
}
|
|
311
311
|
);
|
|
312
312
|
case "image":
|
|
313
|
-
return /* @__PURE__ */ f(
|
|
313
|
+
return /* @__PURE__ */ f(re, { children: [
|
|
314
314
|
/* @__PURE__ */ e(
|
|
315
315
|
"input",
|
|
316
316
|
{
|
|
@@ -333,16 +333,16 @@ function ee({ champ: n, valeur: t, changer: s }) {
|
|
|
333
333
|
);
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
|
-
function
|
|
336
|
+
function se({ champ: n, valeur: t, changer: s, langue: r }) {
|
|
337
337
|
if (n.type === "list") {
|
|
338
|
-
const a = Array.isArray(t) ? t : [], d = n.of ?? [], l = (
|
|
339
|
-
const h = a.map((v,
|
|
338
|
+
const a = Array.isArray(t) ? t : [], d = n.of ?? [], l = (b, o, i) => {
|
|
339
|
+
const h = a.map((v, E) => E === b ? { ...v, [o]: i } : v);
|
|
340
340
|
s(h);
|
|
341
341
|
};
|
|
342
342
|
return /* @__PURE__ */ f("div", { className: "champ", children: [
|
|
343
343
|
/* @__PURE__ */ e("span", { className: "champ__etiquette", children: n.label }),
|
|
344
344
|
n.help && /* @__PURE__ */ e("p", { className: "champ__aide", children: n.help }),
|
|
345
|
-
a.map((
|
|
345
|
+
a.map((b, o) => /* @__PURE__ */ f("div", { className: "liste__item", children: [
|
|
346
346
|
/* @__PURE__ */ f("div", { className: "liste__tete", children: [
|
|
347
347
|
/* @__PURE__ */ e("span", { className: "liste__rang", children: o + 1 }),
|
|
348
348
|
/* @__PURE__ */ f("span", { style: { display: "flex", gap: 4 }, children: [
|
|
@@ -387,11 +387,11 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
|
|
|
387
387
|
] })
|
|
388
388
|
] }),
|
|
389
389
|
d.map((i) => /* @__PURE__ */ e(
|
|
390
|
-
|
|
390
|
+
se,
|
|
391
391
|
{
|
|
392
392
|
champ: i,
|
|
393
393
|
langue: r,
|
|
394
|
-
valeur:
|
|
394
|
+
valeur: b?.[i.key],
|
|
395
395
|
changer: (h) => l(o, i.key, h)
|
|
396
396
|
},
|
|
397
397
|
i.key
|
|
@@ -404,7 +404,7 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
|
|
|
404
404
|
className: "bouton",
|
|
405
405
|
onClick: () => s([
|
|
406
406
|
...a,
|
|
407
|
-
Object.fromEntries(d.map((
|
|
407
|
+
Object.fromEntries(d.map((b) => [b.key, ke(b)]))
|
|
408
408
|
]),
|
|
409
409
|
children: "+ Ajouter"
|
|
410
410
|
}
|
|
@@ -419,11 +419,11 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
|
|
|
419
419
|
a.map((l) => /* @__PURE__ */ f("div", { style: { marginBottom: 8 }, children: [
|
|
420
420
|
/* @__PURE__ */ e("span", { className: "champ__langue", children: l }),
|
|
421
421
|
/* @__PURE__ */ e(
|
|
422
|
-
|
|
422
|
+
ne,
|
|
423
423
|
{
|
|
424
424
|
champ: n,
|
|
425
425
|
valeur: d[l],
|
|
426
|
-
changer: (
|
|
426
|
+
changer: (b) => s({ ...d, [l]: b })
|
|
427
427
|
}
|
|
428
428
|
)
|
|
429
429
|
] }, l))
|
|
@@ -431,26 +431,26 @@ function re({ champ: n, valeur: t, changer: s, langue: r }) {
|
|
|
431
431
|
}
|
|
432
432
|
return /* @__PURE__ */ f("div", { className: "champ", children: [
|
|
433
433
|
/* @__PURE__ */ e("label", { className: "champ__etiquette", children: n.label }),
|
|
434
|
-
/* @__PURE__ */ e(
|
|
434
|
+
/* @__PURE__ */ e(ne, { champ: n, valeur: t, changer: s }),
|
|
435
435
|
n.help && /* @__PURE__ */ e("p", { className: "champ__aide", children: n.help })
|
|
436
436
|
] });
|
|
437
437
|
}
|
|
438
|
-
const
|
|
439
|
-
function
|
|
438
|
+
const we = ["lystech-editeur-hote", "lystech-connexion-hote"];
|
|
439
|
+
function Ce(n) {
|
|
440
440
|
const t = /* @__PURE__ */ new Map();
|
|
441
441
|
for (const [s, r] of Object.entries(n))
|
|
442
442
|
for (const [a, d] of Object.entries(r)) {
|
|
443
443
|
const l = String(d ?? "").trim();
|
|
444
444
|
if (l.length < 2 || l.includes("{{")) continue;
|
|
445
|
-
const
|
|
446
|
-
|
|
445
|
+
const b = t.get(l);
|
|
446
|
+
b ? b.push({ ns: s, chemin: a }) : t.set(l, [{ ns: s, chemin: a }]);
|
|
447
447
|
}
|
|
448
448
|
return t;
|
|
449
449
|
}
|
|
450
|
-
function
|
|
450
|
+
function Ne(n) {
|
|
451
451
|
const t = /* @__PURE__ */ new Map(), s = document.body.querySelectorAll("*");
|
|
452
452
|
for (const r of s) {
|
|
453
|
-
if (
|
|
453
|
+
if (we.some((l) => r.id === l || r.closest("#" + l)) || r.children.length > 0) continue;
|
|
454
454
|
const a = (r.textContent ?? "").trim();
|
|
455
455
|
if (a.length < 2) continue;
|
|
456
456
|
const d = n.get(a);
|
|
@@ -458,30 +458,30 @@ function Ce(n) {
|
|
|
458
458
|
}
|
|
459
459
|
return t;
|
|
460
460
|
}
|
|
461
|
-
function
|
|
461
|
+
function Ee({
|
|
462
462
|
source: n,
|
|
463
463
|
actif: t,
|
|
464
464
|
surModification: s
|
|
465
465
|
}) {
|
|
466
|
-
const r =
|
|
467
|
-
|
|
468
|
-
const o =
|
|
469
|
-
return o.current = s,
|
|
466
|
+
const r = j(/* @__PURE__ */ new Map()), a = j(null), [d, l] = O(null), b = j(n);
|
|
467
|
+
b.current = n;
|
|
468
|
+
const o = j(s);
|
|
469
|
+
return o.current = s, G(() => {
|
|
470
470
|
if (!t) return;
|
|
471
|
-
const i =
|
|
472
|
-
r.current =
|
|
471
|
+
const i = b.current.langueCourante(), h = Ce(b.current.dictionnaire(i)), v = () => {
|
|
472
|
+
r.current = Ne(h);
|
|
473
473
|
};
|
|
474
474
|
v();
|
|
475
|
-
let
|
|
475
|
+
let E;
|
|
476
476
|
const D = new MutationObserver(() => {
|
|
477
|
-
a.current || (clearTimeout(
|
|
477
|
+
a.current || (clearTimeout(E), E = setTimeout(v, 250));
|
|
478
478
|
});
|
|
479
479
|
D.observe(document.body, { childList: !0, subtree: !0 });
|
|
480
|
-
const
|
|
480
|
+
const y = "outline:2px dashed rgba(59,165,141,.85);outline-offset:3px;border-radius:3px;cursor:text;", q = (p) => {
|
|
481
481
|
const c = p.target;
|
|
482
482
|
!(c instanceof HTMLElement) || a.current || r.current.has(c) && (c.dataset.lysStyleAvant || (c.dataset.lysStyleAvant = c.getAttribute("style") ?? ""), c.setAttribute(
|
|
483
483
|
"style",
|
|
484
|
-
(c.dataset.lysStyleAvant ?? "") +
|
|
484
|
+
(c.dataset.lysStyleAvant ?? "") + y
|
|
485
485
|
));
|
|
486
486
|
}, U = (p) => {
|
|
487
487
|
const c = p.target;
|
|
@@ -502,7 +502,7 @@ function Ne({
|
|
|
502
502
|
), p.focus();
|
|
503
503
|
const _ = window.getSelection(), Q = document.createRange();
|
|
504
504
|
Q.selectNodeContents(p), _?.removeAllRanges(), _?.addRange(Q);
|
|
505
|
-
},
|
|
505
|
+
}, C = async (p) => {
|
|
506
506
|
const c = a.current;
|
|
507
507
|
if (!c) return;
|
|
508
508
|
a.current = null;
|
|
@@ -513,14 +513,14 @@ function Ne({
|
|
|
513
513
|
p && (c.el.textContent = c.avant);
|
|
514
514
|
return;
|
|
515
515
|
}
|
|
516
|
-
const Q =
|
|
517
|
-
|
|
518
|
-
},
|
|
516
|
+
const Q = b.current.langueCourante();
|
|
517
|
+
b.current.poser(Q, c.ns, c.chemin, x), await o.current(c.ns, c.chemin, Q, x);
|
|
518
|
+
}, M = (p) => {
|
|
519
519
|
const c = p.target;
|
|
520
520
|
if (!(c instanceof HTMLElement)) return;
|
|
521
521
|
if (a.current) {
|
|
522
522
|
if (a.current.el === c) return;
|
|
523
|
-
|
|
523
|
+
C(!1);
|
|
524
524
|
}
|
|
525
525
|
const x = r.current.get(c);
|
|
526
526
|
if (x) {
|
|
@@ -535,21 +535,21 @@ function Ne({
|
|
|
535
535
|
y: p.clientY
|
|
536
536
|
});
|
|
537
537
|
}
|
|
538
|
-
},
|
|
539
|
-
a.current && (p.key === "Escape" ? (p.preventDefault(),
|
|
540
|
-
},
|
|
541
|
-
a.current &&
|
|
538
|
+
}, S = (p) => {
|
|
539
|
+
a.current && (p.key === "Escape" ? (p.preventDefault(), C(!0)) : p.key === "Enter" && !p.shiftKey && (p.preventDefault(), C(!1)));
|
|
540
|
+
}, L = () => {
|
|
541
|
+
a.current && C(!1);
|
|
542
542
|
};
|
|
543
|
-
document.addEventListener("mouseover", q, !0), document.addEventListener("mouseout", U, !0), document.addEventListener("click",
|
|
544
|
-
const
|
|
543
|
+
document.addEventListener("mouseover", q, !0), document.addEventListener("mouseout", U, !0), document.addEventListener("click", M, !0);
|
|
544
|
+
const V = (p) => {
|
|
545
545
|
if (!a.current) return;
|
|
546
546
|
const c = p.inputType;
|
|
547
|
-
(c === "insertParagraph" || c === "insertLineBreak") && (p.preventDefault(),
|
|
547
|
+
(c === "insertParagraph" || c === "insertLineBreak") && (p.preventDefault(), C(!1));
|
|
548
548
|
};
|
|
549
|
-
return document.addEventListener("beforeinput",
|
|
549
|
+
return document.addEventListener("beforeinput", V, !0), document.addEventListener("keydown", S, !0), document.addEventListener("focusout", L, !0), window.__lysChoisir = (p, c) => {
|
|
550
550
|
l(null), I(c, p);
|
|
551
551
|
}, () => {
|
|
552
|
-
clearTimeout(
|
|
552
|
+
clearTimeout(E), D.disconnect(), document.removeEventListener("mouseover", q, !0), document.removeEventListener("mouseout", U, !0), document.removeEventListener("click", M, !0), document.removeEventListener("beforeinput", V, !0), document.removeEventListener("keydown", S, !0), document.removeEventListener("focusout", L, !0), a.current && C(!0), delete window.__lysChoisir;
|
|
553
553
|
};
|
|
554
554
|
}, [t]), d ? /* @__PURE__ */ f(
|
|
555
555
|
"div",
|
|
@@ -588,192 +588,208 @@ function Ne({
|
|
|
588
588
|
}
|
|
589
589
|
) : null;
|
|
590
590
|
}
|
|
591
|
-
const Z = /^i18n:([^:]+):(.*)$/,
|
|
592
|
-
function
|
|
591
|
+
const Z = /^i18n:([^:]+):(.*)$/, $ = "commun", ee = "lystech-edit-mode";
|
|
592
|
+
function oe(n, t) {
|
|
593
593
|
return JSON.stringify(n ?? {}) === JSON.stringify(t ?? {});
|
|
594
594
|
}
|
|
595
|
-
function
|
|
596
|
-
const [s, r] =
|
|
595
|
+
function Se({ api: n, pont: t }) {
|
|
596
|
+
const [s, r] = O([]), [a, d] = O([]), [l, b] = O(t.page), [o, i] = O(null), [h, v] = O({}), [E, D] = O(!1), [y, q] = O(() => {
|
|
597
597
|
try {
|
|
598
|
-
return window.localStorage.getItem(
|
|
598
|
+
return window.localStorage.getItem(ee) === "circuler" ? "circuler" : "modifier";
|
|
599
599
|
} catch {
|
|
600
600
|
return "modifier";
|
|
601
601
|
}
|
|
602
602
|
}), U = () => q((u) => {
|
|
603
603
|
const m = u === "modifier" ? "circuler" : "modifier";
|
|
604
604
|
try {
|
|
605
|
-
window.localStorage.setItem(
|
|
605
|
+
window.localStorage.setItem(ee, m);
|
|
606
606
|
} catch {
|
|
607
607
|
}
|
|
608
608
|
return m;
|
|
609
|
-
}), [I,
|
|
609
|
+
}), [I, C] = O(!1), [M, S] = O(
|
|
610
610
|
null
|
|
611
611
|
);
|
|
612
|
-
|
|
613
|
-
|
|
612
|
+
G(() => (t.surChangementDePage = (u) => {
|
|
613
|
+
b(u), i(null), D(!1);
|
|
614
614
|
}, () => {
|
|
615
615
|
t.surChangementDePage = void 0;
|
|
616
616
|
}), [t]);
|
|
617
|
-
const
|
|
617
|
+
const L = W(async () => {
|
|
618
618
|
try {
|
|
619
619
|
const [u, m] = await Promise.all([
|
|
620
620
|
n.pourPage(l),
|
|
621
|
-
l ===
|
|
622
|
-
]),
|
|
623
|
-
return d(
|
|
621
|
+
l === $ ? Promise.resolve([]) : n.pourPage($)
|
|
622
|
+
]), g = [...u, ...m];
|
|
623
|
+
return d(g), g;
|
|
624
624
|
} catch {
|
|
625
|
-
return
|
|
625
|
+
return S({
|
|
626
626
|
ton: "erreur",
|
|
627
627
|
texte: "Impossible de lire le contenu du site."
|
|
628
628
|
}), [];
|
|
629
629
|
}
|
|
630
630
|
}, [n, l]);
|
|
631
|
-
|
|
631
|
+
G(() => {
|
|
632
632
|
n.schemas().then(r).catch(() => r([]));
|
|
633
|
-
}, [n]),
|
|
634
|
-
|
|
635
|
-
}, [
|
|
636
|
-
const
|
|
633
|
+
}, [n]), G(() => {
|
|
634
|
+
L();
|
|
635
|
+
}, [L]);
|
|
636
|
+
const V = W(
|
|
637
637
|
(u, m) => {
|
|
638
|
-
let
|
|
639
|
-
for (const
|
|
640
|
-
const
|
|
641
|
-
if (!
|
|
642
|
-
const w =
|
|
643
|
-
(w === "" || m === w || m.startsWith(w + ".")) && w.length >
|
|
638
|
+
let g = null, A = -1;
|
|
639
|
+
for (const P of s) {
|
|
640
|
+
const k = Z.exec(P.blockType);
|
|
641
|
+
if (!k || k[1] !== u) continue;
|
|
642
|
+
const w = k[2];
|
|
643
|
+
(w === "" || m === w || m.startsWith(w + ".")) && w.length > A && (g = P, A = w.length);
|
|
644
644
|
}
|
|
645
|
-
if (!
|
|
646
|
-
const
|
|
647
|
-
return { bloc:
|
|
645
|
+
if (!g) return null;
|
|
646
|
+
const N = Z.exec(g.blockType)?.[2] ?? "", T = N ? m.slice(N.length + 1) : m;
|
|
647
|
+
return { bloc: g, champ: T };
|
|
648
648
|
},
|
|
649
649
|
[s]
|
|
650
|
-
), p =
|
|
650
|
+
), p = W(
|
|
651
651
|
(u) => s.find((m) => m.blockType === u),
|
|
652
652
|
[s]
|
|
653
|
-
), c =
|
|
653
|
+
), c = te(
|
|
654
654
|
() => s.filter((u) => {
|
|
655
655
|
const m = u.pages ?? [];
|
|
656
|
-
return m.includes(l) || m.includes(
|
|
656
|
+
return m.includes(l) || m.includes($);
|
|
657
657
|
}),
|
|
658
658
|
[s, l]
|
|
659
|
-
), x =
|
|
660
|
-
() => a.filter((u) => u.draft && !
|
|
659
|
+
), x = te(
|
|
660
|
+
() => a.filter((u) => u.draft && !oe(u.draft, u.data)),
|
|
661
661
|
[a]
|
|
662
|
-
), _ =
|
|
663
|
-
async (u, m,
|
|
664
|
-
const
|
|
665
|
-
if (!
|
|
666
|
-
|
|
662
|
+
), _ = W(
|
|
663
|
+
async (u, m, g, A) => {
|
|
664
|
+
const N = V(u, m);
|
|
665
|
+
if (!N) {
|
|
666
|
+
S({
|
|
667
667
|
ton: "erreur",
|
|
668
668
|
texte: `Ce texte (${u}:${m}) n'appartient à aucun bloc déclaré.`
|
|
669
669
|
});
|
|
670
670
|
return;
|
|
671
671
|
}
|
|
672
|
-
const T = a.find((
|
|
672
|
+
const T = a.find((z) => z.blockType === N.bloc.blockType), P = T?.draft ?? T?.data ?? {}, k = P[N.champ], w = N.bloc.fields.find((z) => z.key === N.champ), B = (
|
|
673
|
+
/* `!declare.localized` et non `=== false` : un champ non traduit
|
|
674
|
+
OMET la cle plutot que de la mettre a faux. Tester l'egalite
|
|
675
|
+
stricte ne se declenchait donc jamais. */
|
|
676
|
+
w && !w.localized ? A : k && typeof k == "object" && !Array.isArray(k) ? { ...k, [g]: A } : { [g]: A }
|
|
677
|
+
), X = { ...P, [N.champ]: B };
|
|
673
678
|
try {
|
|
674
679
|
if (T?.UID)
|
|
675
|
-
await n.enregistrerBrouillon(T.UID,
|
|
680
|
+
await n.enregistrerBrouillon(T.UID, X);
|
|
676
681
|
else {
|
|
677
|
-
const
|
|
678
|
-
await n.creer(
|
|
682
|
+
const z = N.bloc.pages?.[0] ?? l;
|
|
683
|
+
await n.creer(z, N.bloc.blockType, X);
|
|
679
684
|
}
|
|
680
|
-
await
|
|
685
|
+
await L(), S(null);
|
|
681
686
|
} catch {
|
|
682
|
-
|
|
687
|
+
S({
|
|
683
688
|
ton: "erreur",
|
|
684
689
|
texte: "Enregistrement impossible. Votre texte est toujours à l'écran."
|
|
685
690
|
});
|
|
686
691
|
}
|
|
687
692
|
},
|
|
688
|
-
[n,
|
|
693
|
+
[n, V, l, L, a]
|
|
689
694
|
), Q = async () => {
|
|
690
695
|
if (!x.length) return;
|
|
691
|
-
|
|
696
|
+
C(!0), S(null);
|
|
692
697
|
const u = x.length;
|
|
693
698
|
try {
|
|
694
699
|
for (const m of x) await n.publier(m.UID);
|
|
695
|
-
await
|
|
700
|
+
await L();
|
|
701
|
+
for (const m of x) t.poserApercu(m.blockType, null);
|
|
702
|
+
t.recharger(), S({
|
|
696
703
|
ton: "ok",
|
|
697
704
|
texte: u === 1 ? "Publié. Vos visiteurs le voient maintenant." : `${u} modifications publiées.`
|
|
698
705
|
});
|
|
699
706
|
} catch {
|
|
700
|
-
|
|
707
|
+
S({
|
|
701
708
|
ton: "erreur",
|
|
702
709
|
texte: "La publication a échoué. Rien n'a été mis en ligne."
|
|
703
710
|
});
|
|
704
711
|
} finally {
|
|
705
|
-
|
|
712
|
+
C(!1);
|
|
706
713
|
}
|
|
707
|
-
},
|
|
708
|
-
|
|
714
|
+
}, le = async () => {
|
|
715
|
+
C(!0);
|
|
709
716
|
try {
|
|
710
|
-
|
|
711
|
-
const
|
|
717
|
+
const u = x.map((g) => g.blockType);
|
|
718
|
+
for (const g of x) await n.annuler(g.UID);
|
|
719
|
+
const m = await L();
|
|
720
|
+
for (const g of u) t.poserApercu(g, null);
|
|
712
721
|
if (t.sourceTexte) {
|
|
713
|
-
const { appliquerAuxTextes:
|
|
714
|
-
|
|
715
|
-
|
|
722
|
+
const { appliquerAuxTextes: g } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
|
|
723
|
+
g(
|
|
724
|
+
m.map((A) => ({ blockType: A.blockType, data: A.data })),
|
|
716
725
|
t.sourceTexte
|
|
717
726
|
);
|
|
718
727
|
}
|
|
719
|
-
|
|
728
|
+
S({
|
|
720
729
|
ton: "info",
|
|
721
730
|
texte: "Modifications abandonnées. On est revenu à ce qui est en ligne."
|
|
722
731
|
});
|
|
723
732
|
} finally {
|
|
724
|
-
|
|
733
|
+
C(!1);
|
|
725
734
|
}
|
|
726
|
-
},
|
|
727
|
-
const m = a.find((
|
|
728
|
-
if (
|
|
729
|
-
const
|
|
730
|
-
for (const
|
|
731
|
-
B[
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
735
|
+
}, ue = (u) => {
|
|
736
|
+
const m = a.find((P) => P.blockType === u), g = m?.draft ?? m?.data ?? {}, A = p(u), N = Z.exec(u), T = {};
|
|
737
|
+
if (N && A && t.sourceTexte) {
|
|
738
|
+
const P = N[1], k = N[2], w = t.sourceTexte.langues(), B = {};
|
|
739
|
+
for (const z of w)
|
|
740
|
+
B[z] = t.sourceTexte.dictionnaire(z)[P] ?? {};
|
|
741
|
+
const X = t.sourceTexte.langueCourante();
|
|
742
|
+
for (const z of A.fields) {
|
|
743
|
+
const J = k ? k + "." + z.key : z.key;
|
|
744
|
+
if (!z.localized) {
|
|
745
|
+
const Y = B[X]?.[J] ?? w.map((R) => B[R]?.[J]).find((R) => typeof R == "string");
|
|
746
|
+
typeof Y == "string" && (T[z.key] = Y);
|
|
747
|
+
continue;
|
|
748
|
+
}
|
|
749
|
+
const K = {};
|
|
750
|
+
for (const Y of w) {
|
|
751
|
+
const R = B[Y]?.[J];
|
|
752
|
+
typeof R == "string" && (K[Y] = R);
|
|
737
753
|
}
|
|
738
|
-
Object.keys(
|
|
754
|
+
Object.keys(K).length && (T[z.key] = K);
|
|
739
755
|
}
|
|
740
756
|
}
|
|
741
|
-
for (const [
|
|
742
|
-
const w = T[
|
|
743
|
-
T[
|
|
757
|
+
for (const [P, k] of Object.entries(g)) {
|
|
758
|
+
const w = T[P], B = k && typeof k == "object" && !Array.isArray(k) && w && typeof w == "object" && !Array.isArray(w);
|
|
759
|
+
T[P] = B ? { ...w, ...k } : k;
|
|
744
760
|
}
|
|
745
|
-
v(T), i(u), D(!1),
|
|
746
|
-
},
|
|
761
|
+
v(T), i(u), D(!1), S(null);
|
|
762
|
+
}, de = (u, m) => v((g) => ({ ...g, [u]: m })), pe = async () => {
|
|
747
763
|
if (o) {
|
|
748
|
-
|
|
764
|
+
C(!0);
|
|
749
765
|
try {
|
|
750
|
-
const u = a.find((
|
|
766
|
+
const u = a.find((g) => g.blockType === o);
|
|
751
767
|
if (u?.UID) await n.enregistrerBrouillon(u.UID, h);
|
|
752
768
|
else {
|
|
753
|
-
const
|
|
754
|
-
await n.creer(
|
|
769
|
+
const g = p(o)?.pages?.[0] ?? l;
|
|
770
|
+
await n.creer(g, o, h);
|
|
755
771
|
}
|
|
756
|
-
const m = await
|
|
772
|
+
const m = await L();
|
|
757
773
|
if (t.sourceTexte) {
|
|
758
|
-
const { appliquerAuxTextes:
|
|
759
|
-
|
|
760
|
-
m.map((
|
|
774
|
+
const { appliquerAuxTextes: g } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
|
|
775
|
+
g(
|
|
776
|
+
m.map((A) => ({ blockType: A.blockType, data: A.draft ?? A.data })),
|
|
761
777
|
t.sourceTexte
|
|
762
778
|
);
|
|
763
779
|
}
|
|
764
|
-
|
|
780
|
+
Z.test(o) || t.poserApercu(o, h), S({
|
|
765
781
|
ton: "ok",
|
|
766
782
|
texte: "Enregistré. Rien n'a encore changé pour vos visiteurs."
|
|
767
783
|
});
|
|
768
784
|
} catch {
|
|
769
|
-
|
|
785
|
+
S({ ton: "erreur", texte: "L'enregistrement a échoué." });
|
|
770
786
|
} finally {
|
|
771
|
-
|
|
787
|
+
C(!1);
|
|
772
788
|
}
|
|
773
789
|
}
|
|
774
|
-
},
|
|
790
|
+
}, me = () => {
|
|
775
791
|
try {
|
|
776
|
-
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit"), window.localStorage.removeItem(
|
|
792
|
+
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit"), window.localStorage.removeItem(ee);
|
|
777
793
|
} catch {
|
|
778
794
|
}
|
|
779
795
|
try {
|
|
@@ -781,37 +797,37 @@ function Ee({ api: n, pont: t }) {
|
|
|
781
797
|
} catch {
|
|
782
798
|
}
|
|
783
799
|
window.location.reload();
|
|
784
|
-
}, F = o ? p(o) : void 0,
|
|
800
|
+
}, F = o ? p(o) : void 0, H = !o && !E;
|
|
785
801
|
return /* @__PURE__ */ f("div", { className: "calque", children: [
|
|
786
802
|
/* @__PURE__ */ e(
|
|
787
803
|
"div",
|
|
788
804
|
{
|
|
789
|
-
className: "cadre-global" + (
|
|
805
|
+
className: "cadre-global" + (y === "circuler" ? " cadre-global--circuler" : ""),
|
|
790
806
|
"aria-hidden": "true"
|
|
791
807
|
}
|
|
792
808
|
),
|
|
793
809
|
t.sourceTexte && /* @__PURE__ */ e(
|
|
794
|
-
|
|
810
|
+
Ee,
|
|
795
811
|
{
|
|
796
812
|
source: t.sourceTexte,
|
|
797
|
-
actif:
|
|
813
|
+
actif: H && !I && y === "modifier",
|
|
798
814
|
surModification: _
|
|
799
815
|
}
|
|
800
816
|
),
|
|
801
|
-
|
|
817
|
+
H && /* @__PURE__ */ f("div", { className: "barre", children: [
|
|
802
818
|
/* @__PURE__ */ e("span", { className: "barre__point" }),
|
|
803
|
-
/* @__PURE__ */ e("span", { className: "barre__texte", children:
|
|
819
|
+
/* @__PURE__ */ e("span", { className: "barre__texte", children: y === "modifier" ? "Cliquez un texte pour le corriger" : "Navigation libre — les clics ouvrent les liens" }),
|
|
804
820
|
/* @__PURE__ */ e(
|
|
805
821
|
"button",
|
|
806
822
|
{
|
|
807
823
|
type: "button",
|
|
808
|
-
className: "bouton " + (
|
|
824
|
+
className: "bouton " + (y === "circuler" ? "bouton--principal" : ""),
|
|
809
825
|
onClick: U,
|
|
810
|
-
title:
|
|
811
|
-
children:
|
|
826
|
+
title: y === "modifier" ? "Passer en navigation pour changer de page" : "Revenir a la modification des textes",
|
|
827
|
+
children: y === "modifier" ? "Circuler" : "Modifier"
|
|
812
828
|
}
|
|
813
829
|
),
|
|
814
|
-
x.length > 0 ? /* @__PURE__ */ f(
|
|
830
|
+
x.length > 0 ? /* @__PURE__ */ f(re, { children: [
|
|
815
831
|
/* @__PURE__ */ e("span", { className: "barre__compte", children: x.length === 1 ? "1 modification non publiée" : `${x.length} modifications non publiées` }),
|
|
816
832
|
/* @__PURE__ */ e(
|
|
817
833
|
"button",
|
|
@@ -828,7 +844,7 @@ function Ee({ api: n, pont: t }) {
|
|
|
828
844
|
{
|
|
829
845
|
type: "button",
|
|
830
846
|
className: "bouton bouton--discret",
|
|
831
|
-
onClick:
|
|
847
|
+
onClick: le,
|
|
832
848
|
disabled: I,
|
|
833
849
|
children: "Abandonner"
|
|
834
850
|
}
|
|
@@ -850,15 +866,15 @@ function Ee({ api: n, pont: t }) {
|
|
|
850
866
|
{
|
|
851
867
|
type: "button",
|
|
852
868
|
className: "bouton bouton--icone bouton--sortie",
|
|
853
|
-
onClick:
|
|
869
|
+
onClick: me,
|
|
854
870
|
title: "Quitter le mode édition",
|
|
855
871
|
"aria-label": "Quitter le mode édition",
|
|
856
872
|
children: "✕"
|
|
857
873
|
}
|
|
858
874
|
)
|
|
859
875
|
] }),
|
|
860
|
-
|
|
861
|
-
|
|
876
|
+
M && H && /* @__PURE__ */ e("div", { className: "flottant", children: /* @__PURE__ */ e("p", { className: "message message--" + M.ton, children: M.texte }) }),
|
|
877
|
+
E && /* @__PURE__ */ f("div", { className: "panneau", role: "dialog", "aria-label": "Tous les contenus", children: [
|
|
862
878
|
/* @__PURE__ */ f("div", { className: "panneau__tete", children: [
|
|
863
879
|
/* @__PURE__ */ f("div", { style: { flex: 1 }, children: [
|
|
864
880
|
/* @__PURE__ */ e("h2", { className: "panneau__titre", children: "Tous les contenus" }),
|
|
@@ -878,16 +894,16 @@ function Ee({ api: n, pont: t }) {
|
|
|
878
894
|
/* @__PURE__ */ f("div", { className: "panneau__corps", children: [
|
|
879
895
|
c.length === 0 && /* @__PURE__ */ e("p", { className: "message message--info", children: "Aucun contenu déclaré pour cette page." }),
|
|
880
896
|
c.map((u) => {
|
|
881
|
-
const m = a.find((
|
|
897
|
+
const m = a.find((A) => A.blockType === u.blockType), g = m?.draft && !oe(m.draft, m.data);
|
|
882
898
|
return /* @__PURE__ */ f(
|
|
883
899
|
"button",
|
|
884
900
|
{
|
|
885
901
|
type: "button",
|
|
886
902
|
className: "rangee",
|
|
887
|
-
onClick: () =>
|
|
903
|
+
onClick: () => ue(u.blockType),
|
|
888
904
|
children: [
|
|
889
905
|
/* @__PURE__ */ e("span", { className: "rangee__nom", children: u.label }),
|
|
890
|
-
/* @__PURE__ */ e("span", { className: "rangee__info", children:
|
|
906
|
+
/* @__PURE__ */ e("span", { className: "rangee__info", children: g ? "non publié" : `${u.fields.length} textes` })
|
|
891
907
|
]
|
|
892
908
|
},
|
|
893
909
|
u.blockType
|
|
@@ -919,14 +935,14 @@ function Ee({ api: n, pont: t }) {
|
|
|
919
935
|
)
|
|
920
936
|
] }),
|
|
921
937
|
/* @__PURE__ */ f("div", { className: "panneau__corps", children: [
|
|
922
|
-
|
|
938
|
+
M && /* @__PURE__ */ e("p", { className: "message message--" + M.ton, children: M.texte }),
|
|
923
939
|
F.fields.map((u) => /* @__PURE__ */ e(
|
|
924
|
-
|
|
940
|
+
se,
|
|
925
941
|
{
|
|
926
942
|
champ: u,
|
|
927
943
|
langue: t.langue,
|
|
928
944
|
valeur: h[u.key],
|
|
929
|
-
changer: (m) =>
|
|
945
|
+
changer: (m) => de(u.key, m)
|
|
930
946
|
},
|
|
931
947
|
u.key
|
|
932
948
|
))
|
|
@@ -948,7 +964,7 @@ function Ee({ api: n, pont: t }) {
|
|
|
948
964
|
{
|
|
949
965
|
type: "button",
|
|
950
966
|
className: "bouton bouton--principal",
|
|
951
|
-
onClick:
|
|
967
|
+
onClick: pe,
|
|
952
968
|
disabled: I,
|
|
953
969
|
children: "Enregistrer"
|
|
954
970
|
}
|
|
@@ -959,7 +975,7 @@ function Ee({ api: n, pont: t }) {
|
|
|
959
975
|
)
|
|
960
976
|
] });
|
|
961
977
|
}
|
|
962
|
-
const
|
|
978
|
+
const ze = `
|
|
963
979
|
:host {
|
|
964
980
|
all: initial;
|
|
965
981
|
--fond: #16181d;
|
|
@@ -1311,7 +1327,7 @@ input:focus, select:focus, textarea:focus {
|
|
|
1311
1327
|
max-width: min(460px, calc(100vw - 24px));
|
|
1312
1328
|
}
|
|
1313
1329
|
.flottant .message { margin: 0; box-shadow: 0 8px 26px rgba(0,0,0,.4); }
|
|
1314
|
-
`,
|
|
1330
|
+
`, Te = `
|
|
1315
1331
|
/* ON NE DOIT JAMAIS SE DEMANDER SI ON EST EN MODE EDITION. Une barre en bas
|
|
1316
1332
|
se confond avec un bandeau de temoins ; un lisere qui borde tout l'ecran,
|
|
1317
1333
|
present sur chaque page, ne se confond avec rien. Il ne prend aucun clic. */
|
|
@@ -1339,17 +1355,17 @@ input:focus, select:focus, textarea:focus {
|
|
|
1339
1355
|
discrete le reste du temps — c'est le geste qu'on fait une fois. */
|
|
1340
1356
|
.bouton--sortie { color: var(--texte-doux); background: transparent; border-color: transparent; }
|
|
1341
1357
|
.bouton--sortie:hover { background: rgba(217, 119, 106, 0.16); color: var(--danger); }
|
|
1342
|
-
`, Pe = "lystech-editeur-hote",
|
|
1343
|
-
function
|
|
1358
|
+
`, Pe = "lystech-editeur-hote", Me = "lystech-connexion-hote";
|
|
1359
|
+
function ie(n) {
|
|
1344
1360
|
document.getElementById(n)?.remove();
|
|
1345
1361
|
const t = document.createElement("div");
|
|
1346
1362
|
t.id = n, document.body.appendChild(t);
|
|
1347
1363
|
const s = t.attachShadow({ mode: "open" }), r = document.createElement("style");
|
|
1348
|
-
r.textContent =
|
|
1364
|
+
r.textContent = ze + De + Te, s.appendChild(r);
|
|
1349
1365
|
const a = document.createElement("div");
|
|
1350
1366
|
return s.appendChild(a), { hote: t, point: a };
|
|
1351
1367
|
}
|
|
1352
|
-
function
|
|
1368
|
+
function ce(n, t) {
|
|
1353
1369
|
let s = n;
|
|
1354
1370
|
return () => {
|
|
1355
1371
|
const r = s;
|
|
@@ -1358,16 +1374,16 @@ function se(n, t) {
|
|
|
1358
1374
|
}, 0);
|
|
1359
1375
|
};
|
|
1360
1376
|
}
|
|
1361
|
-
function
|
|
1377
|
+
function Be({
|
|
1362
1378
|
site: n,
|
|
1363
1379
|
apiBaseUrl: t,
|
|
1364
1380
|
methodes: s,
|
|
1365
1381
|
surJeton: r
|
|
1366
1382
|
}) {
|
|
1367
|
-
const { hote: a, point: d } =
|
|
1383
|
+
const { hote: a, point: d } = ie(Me), l = ae(d), b = () => o();
|
|
1368
1384
|
l.render(
|
|
1369
1385
|
/* @__PURE__ */ e(
|
|
1370
|
-
|
|
1386
|
+
ye,
|
|
1371
1387
|
{
|
|
1372
1388
|
site: n,
|
|
1373
1389
|
apiBaseUrl: t,
|
|
@@ -1375,20 +1391,20 @@ function Ie({
|
|
|
1375
1391
|
surJeton: (i) => {
|
|
1376
1392
|
o(), r(i);
|
|
1377
1393
|
},
|
|
1378
|
-
surFermer:
|
|
1394
|
+
surFermer: b
|
|
1379
1395
|
}
|
|
1380
1396
|
)
|
|
1381
1397
|
);
|
|
1382
|
-
const o =
|
|
1398
|
+
const o = ce(l, a);
|
|
1383
1399
|
return o;
|
|
1384
1400
|
}
|
|
1385
|
-
function
|
|
1401
|
+
function _e({
|
|
1386
1402
|
jeton: n,
|
|
1387
1403
|
site: t,
|
|
1388
1404
|
apiBaseUrl: s,
|
|
1389
1405
|
pont: r
|
|
1390
1406
|
}) {
|
|
1391
|
-
const { hote: a, point: d } =
|
|
1407
|
+
const { hote: a, point: d } = ie(Pe), l = ae(d), b = () => {
|
|
1392
1408
|
try {
|
|
1393
1409
|
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit");
|
|
1394
1410
|
} catch {
|
|
@@ -1401,15 +1417,15 @@ function Be({
|
|
|
1401
1417
|
};
|
|
1402
1418
|
return l.render(
|
|
1403
1419
|
/* @__PURE__ */ e(
|
|
1404
|
-
|
|
1420
|
+
Se,
|
|
1405
1421
|
{
|
|
1406
|
-
api:
|
|
1422
|
+
api: fe({ jeton: n, site: t, apiBaseUrl: s, surJetonRefuse: b }),
|
|
1407
1423
|
pont: r
|
|
1408
1424
|
}
|
|
1409
1425
|
)
|
|
1410
|
-
),
|
|
1426
|
+
), ce(l, a);
|
|
1411
1427
|
}
|
|
1412
1428
|
export {
|
|
1413
|
-
|
|
1414
|
-
|
|
1429
|
+
Be as monterConnexion,
|
|
1430
|
+
_e as monterEditeur
|
|
1415
1431
|
};
|