@lystech/sections 0.4.0 → 0.4.3
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/marque.d.ts +1 -0
- package/dist/editeur/styles.d.ts +2 -2
- package/dist/editeur.js +381 -367
- package/package.json +1 -1
package/dist/editeur.js
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { createRoot as
|
|
3
|
-
import { useState as
|
|
4
|
-
function
|
|
1
|
+
import { jsx as e, jsxs as f, Fragment as ne } from "react/jsx-runtime";
|
|
2
|
+
import { createRoot as oe } from "react-dom/client";
|
|
3
|
+
import { useState as M, useRef as V, useEffect as X, useCallback as Y, useMemo as $ } from "react";
|
|
4
|
+
function me({
|
|
5
5
|
jeton: n,
|
|
6
6
|
site: t,
|
|
7
|
-
apiBaseUrl:
|
|
7
|
+
apiBaseUrl: s,
|
|
8
8
|
surJetonRefuse: r
|
|
9
9
|
}) {
|
|
10
10
|
const a = {
|
|
11
11
|
"Content-Type": "application/json",
|
|
12
12
|
Authorization: "Bearer " + n
|
|
13
13
|
};
|
|
14
|
-
function d(o,
|
|
15
|
-
if (
|
|
14
|
+
function d(o, i) {
|
|
15
|
+
if (i && (o.status === 401 || o.status === 403) && r(), !o.ok) throw new Error(String(o.status));
|
|
16
16
|
}
|
|
17
|
-
async function l(o,
|
|
18
|
-
const h = await fetch(
|
|
19
|
-
headers:
|
|
17
|
+
async function l(o, i = !0) {
|
|
18
|
+
const h = await fetch(s + o, {
|
|
19
|
+
headers: i ? a : void 0
|
|
20
20
|
});
|
|
21
|
-
return d(h,
|
|
21
|
+
return d(h, i), await h.json();
|
|
22
22
|
}
|
|
23
|
-
async function
|
|
24
|
-
const
|
|
25
|
-
method:
|
|
23
|
+
async function g(o, i, h) {
|
|
24
|
+
const v = await fetch(s + o, {
|
|
25
|
+
method: i,
|
|
26
26
|
headers: a,
|
|
27
27
|
body: h === void 0 ? void 0 : JSON.stringify(h)
|
|
28
28
|
});
|
|
29
|
-
return d(
|
|
29
|
+
return d(v, !0), await v.json();
|
|
30
30
|
}
|
|
31
31
|
return {
|
|
32
32
|
/** Les blocs que le site a déclaré savoir afficher. Route publique. */
|
|
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,
|
|
37
|
-
enregistrerBrouillon: (o,
|
|
38
|
-
publier: (o) =>
|
|
36
|
+
creer: (o, i, h) => g("/site-sections", "POST", { page: o, blockType: i, draft: h }),
|
|
37
|
+
enregistrerBrouillon: (o, i) => g("/site-sections/" + o + "/draft", "PUT", { draft: i }),
|
|
38
|
+
publier: (o) => g("/site-sections/" + o + "/publish", "POST"),
|
|
39
39
|
/** Ramène le brouillon à ce qui est en ligne. */
|
|
40
|
-
annuler: (o) =>
|
|
40
|
+
annuler: (o) => g("/site-sections/" + o + "/revert", "POST")
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
const
|
|
43
|
+
const fe = "data:image/png;base64,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", ge = {
|
|
44
44
|
apiKey: "AIzaSyCpAeHlt1wZvM5KtYg7X7MDVnWVJT86gvc",
|
|
45
45
|
authDomain: "lystech.firebaseapp.com",
|
|
46
46
|
projectId: "lystech",
|
|
@@ -48,27 +48,21 @@ const pe = {
|
|
|
48
48
|
messagingSenderId: "237347321732",
|
|
49
49
|
appId: "1:237347321732:web:7f9586d48e488d73ddcfd1"
|
|
50
50
|
};
|
|
51
|
-
function
|
|
52
|
-
return /* @__PURE__ */
|
|
53
|
-
/* @__PURE__ */ e("
|
|
54
|
-
"path",
|
|
55
|
-
{
|
|
56
|
-
d: "M12 2c2.6 2.4 3.9 4.9 3.9 7.5 0 1.6-.5 3-1.6 4.2 1.9-.3 3.4-1.1 4.6-2.4-.2 3.4-2.3 5.9-6.1 7.3V22h-1.6v-3.4C7.4 17.2 5.3 14.7 5.1 11.3c1.2 1.3 2.7 2.1 4.6 2.4-1.1-1.2-1.6-2.6-1.6-4.2C8.1 6.9 9.4 4.4 12 2z",
|
|
57
|
-
fill: "currentColor"
|
|
58
|
-
}
|
|
59
|
-
) }),
|
|
51
|
+
function be() {
|
|
52
|
+
return /* @__PURE__ */ f("span", { className: "marque", children: [
|
|
53
|
+
/* @__PURE__ */ e("img", { src: fe, alt: "", width: 22, height: 22 }),
|
|
60
54
|
/* @__PURE__ */ e("span", { className: "marque__mot", children: "Lystech" })
|
|
61
55
|
] });
|
|
62
56
|
}
|
|
63
|
-
function
|
|
64
|
-
return /* @__PURE__ */
|
|
57
|
+
function he() {
|
|
58
|
+
return /* @__PURE__ */ f("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", focusable: "false", className: "logo", children: [
|
|
65
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" }),
|
|
66
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" }),
|
|
67
61
|
/* @__PURE__ */ e("path", { fill: "#FBBC05", d: "M3.96 10.71a5.41 5.41 0 0 1 0-3.42V4.96H.96a9 9 0 0 0 0 8.08l3-2.33z" }),
|
|
68
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" })
|
|
69
63
|
] });
|
|
70
64
|
}
|
|
71
|
-
function
|
|
65
|
+
function xe() {
|
|
72
66
|
return /* @__PURE__ */ e("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", className: "logo", children: /* @__PURE__ */ e(
|
|
73
67
|
"path",
|
|
74
68
|
{
|
|
@@ -77,15 +71,15 @@ function be() {
|
|
|
77
71
|
}
|
|
78
72
|
) });
|
|
79
73
|
}
|
|
80
|
-
function
|
|
74
|
+
function ve({
|
|
81
75
|
site: n,
|
|
82
76
|
apiBaseUrl: t,
|
|
83
|
-
methodes:
|
|
77
|
+
methodes: s = ["google", "facebook"],
|
|
84
78
|
surJeton: r,
|
|
85
79
|
surFermer: a
|
|
86
80
|
}) {
|
|
87
|
-
const [d, l] =
|
|
88
|
-
switch (
|
|
81
|
+
const [d, l] = M({ nom: "repos" }), g = (v) => {
|
|
82
|
+
switch (v) {
|
|
89
83
|
case "auth/popup-blocked":
|
|
90
84
|
return "Votre navigateur a bloqué la fenêtre de connexion. Autorisez les fenêtres pour ce site, puis réessayez.";
|
|
91
85
|
case "auth/popup-closed-by-user":
|
|
@@ -100,32 +94,32 @@ function xe({
|
|
|
100
94
|
default:
|
|
101
95
|
return "La connexion a échoué. Réessayez dans un instant.";
|
|
102
96
|
}
|
|
103
|
-
}, o = async (
|
|
104
|
-
const
|
|
97
|
+
}, o = async (v, C = !1) => {
|
|
98
|
+
const D = await fetch(t + "/site-sections/edit-login/third-party", {
|
|
105
99
|
method: "POST",
|
|
106
100
|
headers: { "Content-Type": "application/json" },
|
|
107
101
|
body: JSON.stringify({
|
|
108
102
|
site: n,
|
|
109
|
-
token:
|
|
103
|
+
token: v,
|
|
110
104
|
tokenType: "firebase",
|
|
111
105
|
demanderAcces: C
|
|
112
106
|
})
|
|
113
107
|
});
|
|
114
|
-
if (
|
|
108
|
+
if (D.status === 429) {
|
|
115
109
|
l({
|
|
116
110
|
nom: "erreur",
|
|
117
111
|
texte: "Trop de tentatives. Réessayez dans quelques minutes."
|
|
118
112
|
});
|
|
119
113
|
return;
|
|
120
114
|
}
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
123
|
-
r(
|
|
115
|
+
const A = await D.json().catch(() => null);
|
|
116
|
+
if (A?.ok && A?.token) {
|
|
117
|
+
r(A.token);
|
|
124
118
|
return;
|
|
125
119
|
}
|
|
126
|
-
switch (
|
|
120
|
+
switch (A?.raison) {
|
|
127
121
|
case "sans_acces":
|
|
128
|
-
l({ nom: "sans-acces", jeton:
|
|
122
|
+
l({ nom: "sans-acces", jeton: v });
|
|
129
123
|
return;
|
|
130
124
|
case "demande_envoyee":
|
|
131
125
|
l({ nom: "demande-envoyee" });
|
|
@@ -151,19 +145,19 @@ function xe({
|
|
|
151
145
|
texte: "La connexion a échoué. Réessayez dans un instant."
|
|
152
146
|
});
|
|
153
147
|
}
|
|
154
|
-
},
|
|
155
|
-
l({ nom: "envoi", quoi:
|
|
148
|
+
}, i = async (v) => {
|
|
149
|
+
l({ nom: "envoi", quoi: v });
|
|
156
150
|
try {
|
|
157
|
-
const [{ initializeApp: C, getApps:
|
|
151
|
+
const [{ initializeApp: C, getApps: D }, A] = await Promise.all([
|
|
158
152
|
import("./morceaux/index.esm-B4AB50RA.js"),
|
|
159
153
|
import("./morceaux/index.esm-B4hL1FOE.js")
|
|
160
|
-
]),
|
|
161
|
-
await o(
|
|
154
|
+
]), q = D().find((P) => P.name === "lystech-edition") ?? C(ge, "lystech-edition"), U = v === "google" ? new A.GoogleAuthProvider() : new A.FacebookAuthProvider(), k = await (await A.signInWithPopup(A.getAuth(q), U)).user.getIdToken();
|
|
155
|
+
await o(k);
|
|
162
156
|
} catch (C) {
|
|
163
|
-
l({ nom: "erreur", texte:
|
|
157
|
+
l({ nom: "erreur", texte: g(String(C?.code ?? "")) });
|
|
164
158
|
}
|
|
165
159
|
}, h = d.nom === "envoi";
|
|
166
|
-
return /* @__PURE__ */ e("div", { className: "voile", role: "dialog", "aria-modal": "true", "aria-label": "Modifier ce site", children: /* @__PURE__ */
|
|
160
|
+
return /* @__PURE__ */ e("div", { className: "voile", role: "dialog", "aria-modal": "true", "aria-label": "Modifier ce site", children: /* @__PURE__ */ f("div", { className: "fenetre", children: [
|
|
167
161
|
/* @__PURE__ */ e(
|
|
168
162
|
"button",
|
|
169
163
|
{
|
|
@@ -174,12 +168,12 @@ function xe({
|
|
|
174
168
|
children: "✕"
|
|
175
169
|
}
|
|
176
170
|
),
|
|
177
|
-
/* @__PURE__ */
|
|
178
|
-
/* @__PURE__ */ e(
|
|
171
|
+
/* @__PURE__ */ f("div", { className: "fenetre__tete", children: [
|
|
172
|
+
/* @__PURE__ */ e(be, {}),
|
|
179
173
|
/* @__PURE__ */ e("h2", { className: "fenetre__titre", children: "Modifier ce site" }),
|
|
180
174
|
/* @__PURE__ */ e("p", { className: "fenetre__sous", children: "Vous vous connectez à Lystech. Cet accès ne sert qu'à modifier le contenu de ce site." })
|
|
181
175
|
] }),
|
|
182
|
-
/* @__PURE__ */
|
|
176
|
+
/* @__PURE__ */ f("div", { className: "fenetre__corps", children: [
|
|
183
177
|
d.nom === "erreur" && /* @__PURE__ */ e("p", { className: "message message--erreur", children: d.texte }),
|
|
184
178
|
d.nom === "aucun-compte" && /* @__PURE__ */ e("p", { className: "message message--info", children: "Aucun compte Lystech ne correspond à cette adresse. Adressez-vous à la personne responsable du site." }),
|
|
185
179
|
d.nom === "sans-acces" && /* @__PURE__ */ e("p", { className: "message message--info", children: "Vous êtes bien reconnu, mais vous n'avez pas encore le droit de modifier ce site. Vous pouvez le demander : la personne responsable recevra un courriel." }),
|
|
@@ -202,47 +196,46 @@ function xe({
|
|
|
202
196
|
onClick: a,
|
|
203
197
|
children: "Fermer"
|
|
204
198
|
}
|
|
205
|
-
) : /* @__PURE__ */
|
|
206
|
-
|
|
199
|
+
) : /* @__PURE__ */ f("div", { className: "fournisseurs", children: [
|
|
200
|
+
s.includes("google") && /* @__PURE__ */ f(
|
|
207
201
|
"button",
|
|
208
202
|
{
|
|
209
203
|
type: "button",
|
|
210
204
|
className: "fournisseur fournisseur--google",
|
|
211
205
|
disabled: h,
|
|
212
206
|
onClick: () => {
|
|
213
|
-
|
|
207
|
+
i("google");
|
|
214
208
|
},
|
|
215
209
|
children: [
|
|
216
|
-
/* @__PURE__ */ e(
|
|
210
|
+
/* @__PURE__ */ e(he, {}),
|
|
217
211
|
/* @__PURE__ */ e("span", { children: d.nom === "envoi" && d.quoi === "google" ? "Connexion…" : "Continuer avec Google" })
|
|
218
212
|
]
|
|
219
213
|
}
|
|
220
214
|
),
|
|
221
|
-
|
|
215
|
+
s.includes("facebook") && /* @__PURE__ */ f(
|
|
222
216
|
"button",
|
|
223
217
|
{
|
|
224
218
|
type: "button",
|
|
225
219
|
className: "fournisseur fournisseur--facebook",
|
|
226
220
|
disabled: h,
|
|
227
221
|
onClick: () => {
|
|
228
|
-
|
|
222
|
+
i("facebook");
|
|
229
223
|
},
|
|
230
224
|
children: [
|
|
231
|
-
/* @__PURE__ */ e(
|
|
225
|
+
/* @__PURE__ */ e(xe, {}),
|
|
232
226
|
/* @__PURE__ */ e("span", { children: d.nom === "envoi" && d.quoi === "facebook" ? "Connexion…" : "Continuer avec Facebook" })
|
|
233
227
|
]
|
|
234
228
|
}
|
|
235
229
|
)
|
|
236
230
|
] })
|
|
237
|
-
] })
|
|
238
|
-
/* @__PURE__ */ e("p", { className: "fenetre__pied", children: "Votre mot de passe reste chez votre fournisseur : ce site ne le voit jamais." })
|
|
231
|
+
] })
|
|
239
232
|
] }) });
|
|
240
233
|
}
|
|
241
|
-
function
|
|
242
|
-
const
|
|
243
|
-
return Array.from(/* @__PURE__ */ new Set([r, ...
|
|
234
|
+
function Ae(n, t) {
|
|
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
|
+
return Array.from(/* @__PURE__ */ new Set([r, ...s]));
|
|
244
237
|
}
|
|
245
|
-
function
|
|
238
|
+
function ye(n) {
|
|
246
239
|
switch (n.type) {
|
|
247
240
|
case "number":
|
|
248
241
|
return 0;
|
|
@@ -254,14 +247,14 @@ function ge(n) {
|
|
|
254
247
|
return "";
|
|
255
248
|
}
|
|
256
249
|
}
|
|
257
|
-
function
|
|
250
|
+
function ee({ champ: n, valeur: t, changer: s }) {
|
|
258
251
|
switch (n.type) {
|
|
259
252
|
case "richText":
|
|
260
253
|
return /* @__PURE__ */ e(
|
|
261
254
|
"textarea",
|
|
262
255
|
{
|
|
263
256
|
value: String(t ?? ""),
|
|
264
|
-
onChange: (r) =>
|
|
257
|
+
onChange: (r) => s(r.target.value)
|
|
265
258
|
}
|
|
266
259
|
);
|
|
267
260
|
case "number":
|
|
@@ -270,17 +263,17 @@ function Z({ champ: n, valeur: t, changer: i }) {
|
|
|
270
263
|
{
|
|
271
264
|
type: "number",
|
|
272
265
|
value: t === "" || t == null ? "" : String(t),
|
|
273
|
-
onChange: (r) =>
|
|
266
|
+
onChange: (r) => s(r.target.value === "" ? "" : Number(r.target.value))
|
|
274
267
|
}
|
|
275
268
|
);
|
|
276
269
|
case "boolean":
|
|
277
|
-
return /* @__PURE__ */
|
|
270
|
+
return /* @__PURE__ */ f("label", { className: "bascule", children: [
|
|
278
271
|
/* @__PURE__ */ e(
|
|
279
272
|
"input",
|
|
280
273
|
{
|
|
281
274
|
type: "checkbox",
|
|
282
275
|
checked: t === !0,
|
|
283
|
-
onChange: (r) =>
|
|
276
|
+
onChange: (r) => s(r.target.checked)
|
|
284
277
|
}
|
|
285
278
|
),
|
|
286
279
|
/* @__PURE__ */ e("span", { children: t === !0 ? "Oui" : "Non" })
|
|
@@ -291,15 +284,15 @@ function Z({ champ: n, valeur: t, changer: i }) {
|
|
|
291
284
|
{
|
|
292
285
|
type: "date",
|
|
293
286
|
value: String(t ?? "").slice(0, 10),
|
|
294
|
-
onChange: (r) =>
|
|
287
|
+
onChange: (r) => s(r.target.value)
|
|
295
288
|
}
|
|
296
289
|
);
|
|
297
290
|
case "choice":
|
|
298
|
-
return /* @__PURE__ */
|
|
291
|
+
return /* @__PURE__ */ f(
|
|
299
292
|
"select",
|
|
300
293
|
{
|
|
301
294
|
value: String(t ?? ""),
|
|
302
|
-
onChange: (r) =>
|
|
295
|
+
onChange: (r) => s(r.target.value),
|
|
303
296
|
children: [
|
|
304
297
|
/* @__PURE__ */ e("option", { value: "", children: "—" }),
|
|
305
298
|
(n.options ?? []).map((r) => /* @__PURE__ */ e("option", { value: r, children: r }, r))
|
|
@@ -312,18 +305,18 @@ function Z({ champ: n, valeur: t, changer: i }) {
|
|
|
312
305
|
{
|
|
313
306
|
type: "url",
|
|
314
307
|
value: String(t ?? ""),
|
|
315
|
-
onChange: (r) =>
|
|
308
|
+
onChange: (r) => s(r.target.value),
|
|
316
309
|
placeholder: "https://"
|
|
317
310
|
}
|
|
318
311
|
);
|
|
319
312
|
case "image":
|
|
320
|
-
return /* @__PURE__ */
|
|
313
|
+
return /* @__PURE__ */ f(ne, { children: [
|
|
321
314
|
/* @__PURE__ */ e(
|
|
322
315
|
"input",
|
|
323
316
|
{
|
|
324
317
|
type: "url",
|
|
325
318
|
value: String(t ?? ""),
|
|
326
|
-
onChange: (r) =>
|
|
319
|
+
onChange: (r) => s(r.target.value),
|
|
327
320
|
placeholder: "https://…"
|
|
328
321
|
}
|
|
329
322
|
),
|
|
@@ -335,24 +328,24 @@ function Z({ champ: n, valeur: t, changer: i }) {
|
|
|
335
328
|
{
|
|
336
329
|
type: "text",
|
|
337
330
|
value: String(t ?? ""),
|
|
338
|
-
onChange: (r) =>
|
|
331
|
+
onChange: (r) => s(r.target.value)
|
|
339
332
|
}
|
|
340
333
|
);
|
|
341
334
|
}
|
|
342
335
|
}
|
|
343
|
-
function
|
|
336
|
+
function re({ champ: n, valeur: t, changer: s, langue: r }) {
|
|
344
337
|
if (n.type === "list") {
|
|
345
|
-
const a = Array.isArray(t) ? t : [], d = n.of ?? [], l = (
|
|
346
|
-
const h = a.map((
|
|
347
|
-
|
|
338
|
+
const a = Array.isArray(t) ? t : [], d = n.of ?? [], l = (g, o, i) => {
|
|
339
|
+
const h = a.map((v, C) => C === g ? { ...v, [o]: i } : v);
|
|
340
|
+
s(h);
|
|
348
341
|
};
|
|
349
|
-
return /* @__PURE__ */
|
|
342
|
+
return /* @__PURE__ */ f("div", { className: "champ", children: [
|
|
350
343
|
/* @__PURE__ */ e("span", { className: "champ__etiquette", children: n.label }),
|
|
351
344
|
n.help && /* @__PURE__ */ e("p", { className: "champ__aide", children: n.help }),
|
|
352
|
-
a.map((
|
|
353
|
-
/* @__PURE__ */
|
|
345
|
+
a.map((g, o) => /* @__PURE__ */ f("div", { className: "liste__item", children: [
|
|
346
|
+
/* @__PURE__ */ f("div", { className: "liste__tete", children: [
|
|
354
347
|
/* @__PURE__ */ e("span", { className: "liste__rang", children: o + 1 }),
|
|
355
|
-
/* @__PURE__ */
|
|
348
|
+
/* @__PURE__ */ f("span", { style: { display: "flex", gap: 4 }, children: [
|
|
356
349
|
/* @__PURE__ */ e(
|
|
357
350
|
"button",
|
|
358
351
|
{
|
|
@@ -361,8 +354,8 @@ function oe({ champ: n, valeur: t, changer: i, langue: r }) {
|
|
|
361
354
|
title: "Monter",
|
|
362
355
|
disabled: o === 0,
|
|
363
356
|
onClick: () => {
|
|
364
|
-
const
|
|
365
|
-
[
|
|
357
|
+
const i = [...a];
|
|
358
|
+
[i[o - 1], i[o]] = [i[o], i[o - 1]], s(i);
|
|
366
359
|
},
|
|
367
360
|
children: "↑"
|
|
368
361
|
}
|
|
@@ -375,8 +368,8 @@ function oe({ champ: n, valeur: t, changer: i, langue: r }) {
|
|
|
375
368
|
title: "Descendre",
|
|
376
369
|
disabled: o === a.length - 1,
|
|
377
370
|
onClick: () => {
|
|
378
|
-
const
|
|
379
|
-
[
|
|
371
|
+
const i = [...a];
|
|
372
|
+
[i[o], i[o + 1]] = [i[o + 1], i[o]], s(i);
|
|
380
373
|
},
|
|
381
374
|
children: "↓"
|
|
382
375
|
}
|
|
@@ -387,21 +380,21 @@ function oe({ champ: n, valeur: t, changer: i, langue: r }) {
|
|
|
387
380
|
type: "button",
|
|
388
381
|
className: "bouton bouton--icone bouton--discret",
|
|
389
382
|
title: "Retirer",
|
|
390
|
-
onClick: () =>
|
|
383
|
+
onClick: () => s(a.filter((i, h) => h !== o)),
|
|
391
384
|
children: "✕"
|
|
392
385
|
}
|
|
393
386
|
)
|
|
394
387
|
] })
|
|
395
388
|
] }),
|
|
396
|
-
d.map((
|
|
397
|
-
|
|
389
|
+
d.map((i) => /* @__PURE__ */ e(
|
|
390
|
+
re,
|
|
398
391
|
{
|
|
399
|
-
champ:
|
|
392
|
+
champ: i,
|
|
400
393
|
langue: r,
|
|
401
|
-
valeur:
|
|
402
|
-
changer: (h) => l(o,
|
|
394
|
+
valeur: g?.[i.key],
|
|
395
|
+
changer: (h) => l(o, i.key, h)
|
|
403
396
|
},
|
|
404
|
-
|
|
397
|
+
i.key
|
|
405
398
|
))
|
|
406
399
|
] }, o)),
|
|
407
400
|
/* @__PURE__ */ e(
|
|
@@ -409,9 +402,9 @@ function oe({ champ: n, valeur: t, changer: i, langue: r }) {
|
|
|
409
402
|
{
|
|
410
403
|
type: "button",
|
|
411
404
|
className: "bouton",
|
|
412
|
-
onClick: () =>
|
|
405
|
+
onClick: () => s([
|
|
413
406
|
...a,
|
|
414
|
-
Object.fromEntries(d.map((
|
|
407
|
+
Object.fromEntries(d.map((g) => [g.key, ye(g)]))
|
|
415
408
|
]),
|
|
416
409
|
children: "+ Ajouter"
|
|
417
410
|
}
|
|
@@ -419,45 +412,45 @@ function oe({ champ: n, valeur: t, changer: i, langue: r }) {
|
|
|
419
412
|
] });
|
|
420
413
|
}
|
|
421
414
|
if (n.localized) {
|
|
422
|
-
const a =
|
|
423
|
-
return /* @__PURE__ */
|
|
415
|
+
const a = Ae(t, r), d = t && typeof t == "object" && !Array.isArray(t) ? t : {};
|
|
416
|
+
return /* @__PURE__ */ f("div", { className: "champ", children: [
|
|
424
417
|
/* @__PURE__ */ e("span", { className: "champ__etiquette", children: n.label }),
|
|
425
418
|
n.help && /* @__PURE__ */ e("p", { className: "champ__aide", children: n.help }),
|
|
426
|
-
a.map((l) => /* @__PURE__ */
|
|
419
|
+
a.map((l) => /* @__PURE__ */ f("div", { style: { marginBottom: 8 }, children: [
|
|
427
420
|
/* @__PURE__ */ e("span", { className: "champ__langue", children: l }),
|
|
428
421
|
/* @__PURE__ */ e(
|
|
429
|
-
|
|
422
|
+
ee,
|
|
430
423
|
{
|
|
431
424
|
champ: n,
|
|
432
425
|
valeur: d[l],
|
|
433
|
-
changer: (
|
|
426
|
+
changer: (g) => s({ ...d, [l]: g })
|
|
434
427
|
}
|
|
435
428
|
)
|
|
436
429
|
] }, l))
|
|
437
430
|
] });
|
|
438
431
|
}
|
|
439
|
-
return /* @__PURE__ */
|
|
432
|
+
return /* @__PURE__ */ f("div", { className: "champ", children: [
|
|
440
433
|
/* @__PURE__ */ e("label", { className: "champ__etiquette", children: n.label }),
|
|
441
|
-
/* @__PURE__ */ e(
|
|
434
|
+
/* @__PURE__ */ e(ee, { champ: n, valeur: t, changer: s }),
|
|
442
435
|
n.help && /* @__PURE__ */ e("p", { className: "champ__aide", children: n.help })
|
|
443
436
|
] });
|
|
444
437
|
}
|
|
445
|
-
const
|
|
446
|
-
function
|
|
438
|
+
const ke = ["lystech-editeur-hote", "lystech-connexion-hote"];
|
|
439
|
+
function we(n) {
|
|
447
440
|
const t = /* @__PURE__ */ new Map();
|
|
448
|
-
for (const [
|
|
441
|
+
for (const [s, r] of Object.entries(n))
|
|
449
442
|
for (const [a, d] of Object.entries(r)) {
|
|
450
443
|
const l = String(d ?? "").trim();
|
|
451
444
|
if (l.length < 2 || l.includes("{{")) continue;
|
|
452
|
-
const
|
|
453
|
-
|
|
445
|
+
const g = t.get(l);
|
|
446
|
+
g ? g.push({ ns: s, chemin: a }) : t.set(l, [{ ns: s, chemin: a }]);
|
|
454
447
|
}
|
|
455
448
|
return t;
|
|
456
449
|
}
|
|
457
|
-
function
|
|
458
|
-
const t = /* @__PURE__ */ new Map(),
|
|
459
|
-
for (const r of
|
|
460
|
-
if (
|
|
450
|
+
function Ce(n) {
|
|
451
|
+
const t = /* @__PURE__ */ new Map(), s = document.body.querySelectorAll("*");
|
|
452
|
+
for (const r of s) {
|
|
453
|
+
if (ke.some((l) => r.id === l || r.closest("#" + l)) || r.children.length > 0) continue;
|
|
461
454
|
const a = (r.textContent ?? "").trim();
|
|
462
455
|
if (a.length < 2) continue;
|
|
463
456
|
const d = n.get(a);
|
|
@@ -465,100 +458,100 @@ function _e(n) {
|
|
|
465
458
|
}
|
|
466
459
|
return t;
|
|
467
460
|
}
|
|
468
|
-
function
|
|
461
|
+
function Ne({
|
|
469
462
|
source: n,
|
|
470
463
|
actif: t,
|
|
471
|
-
surModification:
|
|
464
|
+
surModification: s
|
|
472
465
|
}) {
|
|
473
|
-
const r =
|
|
474
|
-
|
|
475
|
-
const o =
|
|
476
|
-
return o.current =
|
|
466
|
+
const r = V(/* @__PURE__ */ new Map()), a = V(null), [d, l] = M(null), g = V(n);
|
|
467
|
+
g.current = n;
|
|
468
|
+
const o = V(s);
|
|
469
|
+
return o.current = s, X(() => {
|
|
477
470
|
if (!t) return;
|
|
478
|
-
const
|
|
479
|
-
r.current =
|
|
471
|
+
const i = g.current.langueCourante(), h = we(g.current.dictionnaire(i)), v = () => {
|
|
472
|
+
r.current = Ce(h);
|
|
480
473
|
};
|
|
481
|
-
|
|
474
|
+
v();
|
|
482
475
|
let C;
|
|
483
|
-
const
|
|
484
|
-
a.current || (clearTimeout(C), C = setTimeout(
|
|
476
|
+
const D = new MutationObserver(() => {
|
|
477
|
+
a.current || (clearTimeout(C), C = setTimeout(v, 250));
|
|
485
478
|
});
|
|
486
|
-
|
|
487
|
-
const
|
|
488
|
-
const
|
|
489
|
-
!(
|
|
479
|
+
D.observe(document.body, { childList: !0, subtree: !0 });
|
|
480
|
+
const A = "outline:2px dashed rgba(59,165,141,.85);outline-offset:3px;border-radius:3px;cursor:text;", q = (p) => {
|
|
481
|
+
const c = p.target;
|
|
482
|
+
!(c instanceof HTMLElement) || a.current || r.current.has(c) && (c.dataset.lysStyleAvant || (c.dataset.lysStyleAvant = c.getAttribute("style") ?? ""), c.setAttribute(
|
|
490
483
|
"style",
|
|
491
|
-
(
|
|
484
|
+
(c.dataset.lysStyleAvant ?? "") + A
|
|
492
485
|
));
|
|
493
|
-
},
|
|
494
|
-
const
|
|
495
|
-
if (!(
|
|
496
|
-
const
|
|
497
|
-
delete
|
|
498
|
-
}, I = (p,
|
|
499
|
-
const
|
|
486
|
+
}, U = (p) => {
|
|
487
|
+
const c = p.target;
|
|
488
|
+
if (!(c instanceof HTMLElement) || a.current?.el === c || c.dataset.lysStyleAvant === void 0) return;
|
|
489
|
+
const x = c.dataset.lysStyleAvant;
|
|
490
|
+
delete c.dataset.lysStyleAvant, x ? c.setAttribute("style", x) : c.removeAttribute("style");
|
|
491
|
+
}, I = (p, c) => {
|
|
492
|
+
const x = p.getAttribute("style") ?? "";
|
|
500
493
|
a.current = {
|
|
501
494
|
el: p,
|
|
502
495
|
avant: (p.textContent ?? "").trim(),
|
|
503
|
-
ns:
|
|
504
|
-
chemin:
|
|
505
|
-
styleAvant: p.dataset.lysStyleAvant ??
|
|
496
|
+
ns: c.ns,
|
|
497
|
+
chemin: c.chemin,
|
|
498
|
+
styleAvant: p.dataset.lysStyleAvant ?? x
|
|
506
499
|
}, p.setAttribute("contenteditable", "plaintext-only"), p.setAttribute(
|
|
507
500
|
"style",
|
|
508
501
|
(p.dataset.lysStyleAvant ?? "") + "outline:2px solid #3ba58d;outline-offset:3px;border-radius:3px;"
|
|
509
502
|
), p.focus();
|
|
510
|
-
const
|
|
511
|
-
|
|
512
|
-
},
|
|
513
|
-
const
|
|
514
|
-
if (!
|
|
503
|
+
const _ = window.getSelection(), Q = document.createRange();
|
|
504
|
+
Q.selectNodeContents(p), _?.removeAllRanges(), _?.addRange(Q);
|
|
505
|
+
}, k = async (p) => {
|
|
506
|
+
const c = a.current;
|
|
507
|
+
if (!c) return;
|
|
515
508
|
a.current = null;
|
|
516
|
-
const
|
|
517
|
-
|
|
518
|
-
const
|
|
519
|
-
if (delete
|
|
520
|
-
p && (
|
|
509
|
+
const x = (c.el.textContent ?? "").trim();
|
|
510
|
+
c.el.removeAttribute("contenteditable");
|
|
511
|
+
const _ = c.el.dataset.lysStyleAvant;
|
|
512
|
+
if (delete c.el.dataset.lysStyleAvant, _ ? c.el.setAttribute("style", _) : c.el.removeAttribute("style"), p || x === c.avant) {
|
|
513
|
+
p && (c.el.textContent = c.avant);
|
|
521
514
|
return;
|
|
522
515
|
}
|
|
523
|
-
const
|
|
524
|
-
|
|
525
|
-
},
|
|
526
|
-
const
|
|
527
|
-
if (!(
|
|
516
|
+
const Q = g.current.langueCourante();
|
|
517
|
+
g.current.poser(Q, c.ns, c.chemin, x), await o.current(c.ns, c.chemin, Q, x);
|
|
518
|
+
}, P = (p) => {
|
|
519
|
+
const c = p.target;
|
|
520
|
+
if (!(c instanceof HTMLElement)) return;
|
|
528
521
|
if (a.current) {
|
|
529
|
-
if (a.current.el ===
|
|
530
|
-
|
|
522
|
+
if (a.current.el === c) return;
|
|
523
|
+
k(!1);
|
|
531
524
|
}
|
|
532
|
-
const
|
|
533
|
-
if (
|
|
534
|
-
if (p.preventDefault(), p.stopPropagation(),
|
|
535
|
-
I(
|
|
525
|
+
const x = r.current.get(c);
|
|
526
|
+
if (x) {
|
|
527
|
+
if (p.preventDefault(), p.stopPropagation(), x.candidats.length === 1) {
|
|
528
|
+
I(c, x.candidats[0]);
|
|
536
529
|
return;
|
|
537
530
|
}
|
|
538
531
|
l({
|
|
539
|
-
el:
|
|
540
|
-
candidats:
|
|
532
|
+
el: c,
|
|
533
|
+
candidats: x.candidats,
|
|
541
534
|
x: p.clientX,
|
|
542
535
|
y: p.clientY
|
|
543
536
|
});
|
|
544
537
|
}
|
|
545
|
-
},
|
|
546
|
-
a.current && (p.key === "Escape" ? (p.preventDefault(),
|
|
547
|
-
},
|
|
548
|
-
a.current &&
|
|
538
|
+
}, N = (p) => {
|
|
539
|
+
a.current && (p.key === "Escape" ? (p.preventDefault(), k(!0)) : p.key === "Enter" && !p.shiftKey && (p.preventDefault(), k(!1)));
|
|
540
|
+
}, O = () => {
|
|
541
|
+
a.current && k(!1);
|
|
549
542
|
};
|
|
550
|
-
document.addEventListener("mouseover",
|
|
551
|
-
const
|
|
543
|
+
document.addEventListener("mouseover", q, !0), document.addEventListener("mouseout", U, !0), document.addEventListener("click", P, !0);
|
|
544
|
+
const R = (p) => {
|
|
552
545
|
if (!a.current) return;
|
|
553
|
-
const
|
|
554
|
-
(
|
|
546
|
+
const c = p.inputType;
|
|
547
|
+
(c === "insertParagraph" || c === "insertLineBreak") && (p.preventDefault(), k(!1));
|
|
555
548
|
};
|
|
556
|
-
return document.addEventListener("beforeinput",
|
|
557
|
-
l(null), I(
|
|
549
|
+
return document.addEventListener("beforeinput", R, !0), document.addEventListener("keydown", N, !0), document.addEventListener("focusout", O, !0), window.__lysChoisir = (p, c) => {
|
|
550
|
+
l(null), I(c, p);
|
|
558
551
|
}, () => {
|
|
559
|
-
clearTimeout(C),
|
|
552
|
+
clearTimeout(C), D.disconnect(), document.removeEventListener("mouseover", q, !0), document.removeEventListener("mouseout", U, !0), document.removeEventListener("click", P, !0), document.removeEventListener("beforeinput", R, !0), document.removeEventListener("keydown", N, !0), document.removeEventListener("focusout", O, !0), a.current && k(!0), delete window.__lysChoisir;
|
|
560
553
|
};
|
|
561
|
-
}, [t]), d ? /* @__PURE__ */
|
|
554
|
+
}, [t]), d ? /* @__PURE__ */ f(
|
|
562
555
|
"div",
|
|
563
556
|
{
|
|
564
557
|
className: "choix",
|
|
@@ -569,18 +562,18 @@ function we({
|
|
|
569
562
|
children: [
|
|
570
563
|
/* @__PURE__ */ e("p", { className: "choix__titre", children: "Ce texte apparaît à plusieurs endroits." }),
|
|
571
564
|
/* @__PURE__ */ e("p", { className: "choix__aide", children: "Lequel corrigez-vous ?" }),
|
|
572
|
-
d.candidats.map((
|
|
565
|
+
d.candidats.map((i) => /* @__PURE__ */ f(
|
|
573
566
|
"button",
|
|
574
567
|
{
|
|
575
568
|
type: "button",
|
|
576
569
|
className: "choix__option",
|
|
577
|
-
onClick: () => window.__lysChoisir?.(
|
|
570
|
+
onClick: () => window.__lysChoisir?.(i, d.el),
|
|
578
571
|
children: [
|
|
579
|
-
/* @__PURE__ */ e("span", { className: "choix__chemin", children:
|
|
580
|
-
/* @__PURE__ */ e("span", { className: "choix__ns", children:
|
|
572
|
+
/* @__PURE__ */ e("span", { className: "choix__chemin", children: i.chemin }),
|
|
573
|
+
/* @__PURE__ */ e("span", { className: "choix__ns", children: i.ns })
|
|
581
574
|
]
|
|
582
575
|
},
|
|
583
|
-
|
|
576
|
+
i.ns + ":" + i.chemin
|
|
584
577
|
)),
|
|
585
578
|
/* @__PURE__ */ e(
|
|
586
579
|
"button",
|
|
@@ -595,179 +588,192 @@ function we({
|
|
|
595
588
|
}
|
|
596
589
|
) : null;
|
|
597
590
|
}
|
|
598
|
-
const
|
|
599
|
-
function
|
|
591
|
+
const Z = /^i18n:([^:]+):(.*)$/, G = "commun", H = "lystech-edit-mode";
|
|
592
|
+
function te(n, t) {
|
|
600
593
|
return JSON.stringify(n ?? {}) === JSON.stringify(t ?? {});
|
|
601
594
|
}
|
|
602
|
-
function
|
|
603
|
-
const [
|
|
595
|
+
function Ee({ api: n, pont: t }) {
|
|
596
|
+
const [s, r] = M([]), [a, d] = M([]), [l, g] = M(t.page), [o, i] = M(null), [h, v] = M({}), [C, D] = M(!1), [A, q] = M(() => {
|
|
597
|
+
try {
|
|
598
|
+
return window.localStorage.getItem(H) === "circuler" ? "circuler" : "modifier";
|
|
599
|
+
} catch {
|
|
600
|
+
return "modifier";
|
|
601
|
+
}
|
|
602
|
+
}), U = () => q((u) => {
|
|
603
|
+
const m = u === "modifier" ? "circuler" : "modifier";
|
|
604
|
+
try {
|
|
605
|
+
window.localStorage.setItem(H, m);
|
|
606
|
+
} catch {
|
|
607
|
+
}
|
|
608
|
+
return m;
|
|
609
|
+
}), [I, k] = M(!1), [P, N] = M(
|
|
604
610
|
null
|
|
605
611
|
);
|
|
606
|
-
|
|
607
|
-
|
|
612
|
+
X(() => (t.surChangementDePage = (u) => {
|
|
613
|
+
g(u), i(null), D(!1);
|
|
608
614
|
}, () => {
|
|
609
615
|
t.surChangementDePage = void 0;
|
|
610
616
|
}), [t]);
|
|
611
|
-
const O =
|
|
617
|
+
const O = Y(async () => {
|
|
612
618
|
try {
|
|
613
|
-
const [u,
|
|
619
|
+
const [u, m] = await Promise.all([
|
|
614
620
|
n.pourPage(l),
|
|
615
621
|
l === G ? Promise.resolve([]) : n.pourPage(G)
|
|
616
|
-
]),
|
|
617
|
-
return d(
|
|
622
|
+
]), b = [...u, ...m];
|
|
623
|
+
return d(b), b;
|
|
618
624
|
} catch {
|
|
619
|
-
return
|
|
625
|
+
return N({
|
|
620
626
|
ton: "erreur",
|
|
621
627
|
texte: "Impossible de lire le contenu du site."
|
|
622
628
|
}), [];
|
|
623
629
|
}
|
|
624
630
|
}, [n, l]);
|
|
625
|
-
|
|
631
|
+
X(() => {
|
|
626
632
|
n.schemas().then(r).catch(() => r([]));
|
|
627
|
-
}, [n]),
|
|
633
|
+
}, [n]), X(() => {
|
|
628
634
|
O();
|
|
629
635
|
}, [O]);
|
|
630
|
-
const
|
|
631
|
-
(u,
|
|
632
|
-
let
|
|
633
|
-
for (const
|
|
634
|
-
const y =
|
|
636
|
+
const R = Y(
|
|
637
|
+
(u, m) => {
|
|
638
|
+
let b = null, E = -1;
|
|
639
|
+
for (const z of s) {
|
|
640
|
+
const y = Z.exec(z.blockType);
|
|
635
641
|
if (!y || y[1] !== u) continue;
|
|
636
|
-
const
|
|
637
|
-
(
|
|
642
|
+
const w = y[2];
|
|
643
|
+
(w === "" || m === w || m.startsWith(w + ".")) && w.length > E && (b = z, E = w.length);
|
|
638
644
|
}
|
|
639
|
-
if (!
|
|
640
|
-
const S =
|
|
641
|
-
return { bloc:
|
|
645
|
+
if (!b) return null;
|
|
646
|
+
const S = Z.exec(b.blockType)?.[2] ?? "", T = S ? m.slice(S.length + 1) : m;
|
|
647
|
+
return { bloc: b, champ: T };
|
|
642
648
|
},
|
|
643
|
-
[
|
|
644
|
-
),
|
|
645
|
-
(u) =>
|
|
646
|
-
[
|
|
647
|
-
),
|
|
648
|
-
() =>
|
|
649
|
-
const
|
|
650
|
-
return
|
|
649
|
+
[s]
|
|
650
|
+
), p = Y(
|
|
651
|
+
(u) => s.find((m) => m.blockType === u),
|
|
652
|
+
[s]
|
|
653
|
+
), c = $(
|
|
654
|
+
() => s.filter((u) => {
|
|
655
|
+
const m = u.pages ?? [];
|
|
656
|
+
return m.includes(l) || m.includes(G);
|
|
651
657
|
}),
|
|
652
|
-
[
|
|
653
|
-
),
|
|
654
|
-
() => a.filter((u) => u.draft && !
|
|
658
|
+
[s, l]
|
|
659
|
+
), x = $(
|
|
660
|
+
() => a.filter((u) => u.draft && !te(u.draft, u.data)),
|
|
655
661
|
[a]
|
|
656
|
-
),
|
|
657
|
-
async (u,
|
|
658
|
-
const S =
|
|
662
|
+
), _ = Y(
|
|
663
|
+
async (u, m, b, E) => {
|
|
664
|
+
const S = R(u, m);
|
|
659
665
|
if (!S) {
|
|
660
|
-
|
|
666
|
+
N({
|
|
661
667
|
ton: "erreur",
|
|
662
|
-
texte: `Ce texte (${u}:${
|
|
668
|
+
texte: `Ce texte (${u}:${m}) n'appartient à aucun bloc déclaré.`
|
|
663
669
|
});
|
|
664
670
|
return;
|
|
665
671
|
}
|
|
666
|
-
const
|
|
672
|
+
const T = a.find((L) => L.blockType === S.bloc.blockType), z = T?.draft ?? T?.data ?? {}, y = z[S.champ], w = y && typeof y == "object" && !Array.isArray(y) ? { ...y, [b]: E } : { [b]: E }, B = { ...z, [S.champ]: w };
|
|
667
673
|
try {
|
|
668
|
-
if (
|
|
669
|
-
await n.enregistrerBrouillon(
|
|
674
|
+
if (T?.UID)
|
|
675
|
+
await n.enregistrerBrouillon(T.UID, B);
|
|
670
676
|
else {
|
|
671
|
-
const
|
|
672
|
-
await n.creer(
|
|
677
|
+
const L = S.bloc.pages?.[0] ?? l;
|
|
678
|
+
await n.creer(L, S.bloc.blockType, B);
|
|
673
679
|
}
|
|
674
|
-
await O(),
|
|
680
|
+
await O(), N(null);
|
|
675
681
|
} catch {
|
|
676
|
-
|
|
682
|
+
N({
|
|
677
683
|
ton: "erreur",
|
|
678
684
|
texte: "Enregistrement impossible. Votre texte est toujours à l'écran."
|
|
679
685
|
});
|
|
680
686
|
}
|
|
681
687
|
},
|
|
682
|
-
[n,
|
|
683
|
-
),
|
|
684
|
-
if (!
|
|
685
|
-
|
|
686
|
-
const u =
|
|
688
|
+
[n, R, l, O, a]
|
|
689
|
+
), Q = async () => {
|
|
690
|
+
if (!x.length) return;
|
|
691
|
+
k(!0), N(null);
|
|
692
|
+
const u = x.length;
|
|
687
693
|
try {
|
|
688
|
-
for (const
|
|
689
|
-
await O(), t.recharger(),
|
|
694
|
+
for (const m of x) await n.publier(m.UID);
|
|
695
|
+
await O(), t.recharger(), N({
|
|
690
696
|
ton: "ok",
|
|
691
697
|
texte: u === 1 ? "Publié. Vos visiteurs le voient maintenant." : `${u} modifications publiées.`
|
|
692
698
|
});
|
|
693
699
|
} catch {
|
|
694
|
-
|
|
700
|
+
N({
|
|
695
701
|
ton: "erreur",
|
|
696
702
|
texte: "La publication a échoué. Rien n'a été mis en ligne."
|
|
697
703
|
});
|
|
698
704
|
} finally {
|
|
699
|
-
|
|
705
|
+
k(!1);
|
|
700
706
|
}
|
|
701
|
-
},
|
|
702
|
-
|
|
707
|
+
}, ie = async () => {
|
|
708
|
+
k(!0);
|
|
703
709
|
try {
|
|
704
|
-
for (const
|
|
710
|
+
for (const m of x) await n.annuler(m.UID);
|
|
705
711
|
const u = await O();
|
|
706
712
|
if (t.sourceTexte) {
|
|
707
|
-
const { appliquerAuxTextes:
|
|
708
|
-
|
|
709
|
-
u.map((
|
|
713
|
+
const { appliquerAuxTextes: m } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
|
|
714
|
+
m(
|
|
715
|
+
u.map((b) => ({ blockType: b.blockType, data: b.data })),
|
|
710
716
|
t.sourceTexte
|
|
711
717
|
);
|
|
712
718
|
}
|
|
713
|
-
|
|
719
|
+
N({
|
|
714
720
|
ton: "info",
|
|
715
721
|
texte: "Modifications abandonnées. On est revenu à ce qui est en ligne."
|
|
716
722
|
});
|
|
717
723
|
} finally {
|
|
718
|
-
|
|
724
|
+
k(!1);
|
|
719
725
|
}
|
|
720
|
-
},
|
|
721
|
-
const
|
|
722
|
-
if (S &&
|
|
723
|
-
const
|
|
724
|
-
for (const
|
|
725
|
-
|
|
726
|
-
for (const
|
|
727
|
-
const
|
|
728
|
-
for (const
|
|
729
|
-
const
|
|
730
|
-
typeof
|
|
726
|
+
}, ce = (u) => {
|
|
727
|
+
const m = a.find((z) => z.blockType === u), b = m?.draft ?? m?.data ?? {}, E = p(u), S = Z.exec(u), T = {};
|
|
728
|
+
if (S && E && t.sourceTexte) {
|
|
729
|
+
const z = S[1], y = S[2], w = t.sourceTexte.langues(), B = {};
|
|
730
|
+
for (const L of w)
|
|
731
|
+
B[L] = t.sourceTexte.dictionnaire(L)[z] ?? {};
|
|
732
|
+
for (const L of E.fields) {
|
|
733
|
+
const pe = y ? y + "." + L.key : L.key, W = {};
|
|
734
|
+
for (const J of w) {
|
|
735
|
+
const K = B[J]?.[pe];
|
|
736
|
+
typeof K == "string" && (W[J] = K);
|
|
731
737
|
}
|
|
732
|
-
Object.keys(
|
|
738
|
+
Object.keys(W).length && (T[L.key] = W);
|
|
733
739
|
}
|
|
734
740
|
}
|
|
735
|
-
for (const [
|
|
736
|
-
const
|
|
737
|
-
z
|
|
741
|
+
for (const [z, y] of Object.entries(b)) {
|
|
742
|
+
const w = T[z], B = y && typeof y == "object" && !Array.isArray(y) && w && typeof w == "object" && !Array.isArray(w);
|
|
743
|
+
T[z] = B ? { ...w, ...y } : y;
|
|
738
744
|
}
|
|
739
|
-
|
|
740
|
-
},
|
|
745
|
+
v(T), i(u), D(!1), N(null);
|
|
746
|
+
}, le = (u, m) => v((b) => ({ ...b, [u]: m })), ue = async () => {
|
|
741
747
|
if (o) {
|
|
742
|
-
|
|
748
|
+
k(!0);
|
|
743
749
|
try {
|
|
744
|
-
const u = a.find((
|
|
750
|
+
const u = a.find((b) => b.blockType === o);
|
|
745
751
|
if (u?.UID) await n.enregistrerBrouillon(u.UID, h);
|
|
746
752
|
else {
|
|
747
|
-
const
|
|
748
|
-
await n.creer(
|
|
753
|
+
const b = p(o)?.pages?.[0] ?? l;
|
|
754
|
+
await n.creer(b, o, h);
|
|
749
755
|
}
|
|
750
|
-
const
|
|
756
|
+
const m = await O();
|
|
751
757
|
if (t.sourceTexte) {
|
|
752
|
-
const { appliquerAuxTextes:
|
|
753
|
-
|
|
754
|
-
|
|
758
|
+
const { appliquerAuxTextes: b } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
|
|
759
|
+
b(
|
|
760
|
+
m.map((E) => ({ blockType: E.blockType, data: E.draft ?? E.data })),
|
|
755
761
|
t.sourceTexte
|
|
756
762
|
);
|
|
757
763
|
}
|
|
758
|
-
|
|
764
|
+
N({
|
|
759
765
|
ton: "ok",
|
|
760
766
|
texte: "Enregistré. Rien n'a encore changé pour vos visiteurs."
|
|
761
767
|
});
|
|
762
768
|
} catch {
|
|
763
|
-
|
|
769
|
+
N({ ton: "erreur", texte: "L'enregistrement a échoué." });
|
|
764
770
|
} finally {
|
|
765
|
-
|
|
771
|
+
k(!1);
|
|
766
772
|
}
|
|
767
773
|
}
|
|
768
|
-
},
|
|
774
|
+
}, de = () => {
|
|
769
775
|
try {
|
|
770
|
-
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit");
|
|
776
|
+
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit"), window.localStorage.removeItem(H);
|
|
771
777
|
} catch {
|
|
772
778
|
}
|
|
773
779
|
try {
|
|
@@ -775,39 +781,45 @@ function Ne({ api: n, pont: t }) {
|
|
|
775
781
|
} catch {
|
|
776
782
|
}
|
|
777
783
|
window.location.reload();
|
|
778
|
-
},
|
|
779
|
-
return /* @__PURE__ */
|
|
780
|
-
/* @__PURE__ */ e(
|
|
784
|
+
}, F = o ? p(o) : void 0, j = !o && !C;
|
|
785
|
+
return /* @__PURE__ */ f("div", { className: "calque", children: [
|
|
786
|
+
/* @__PURE__ */ e(
|
|
787
|
+
"div",
|
|
788
|
+
{
|
|
789
|
+
className: "cadre-global" + (A === "circuler" ? " cadre-global--circuler" : ""),
|
|
790
|
+
"aria-hidden": "true"
|
|
791
|
+
}
|
|
792
|
+
),
|
|
781
793
|
t.sourceTexte && /* @__PURE__ */ e(
|
|
782
|
-
|
|
794
|
+
Ne,
|
|
783
795
|
{
|
|
784
796
|
source: t.sourceTexte,
|
|
785
|
-
actif:
|
|
786
|
-
surModification:
|
|
797
|
+
actif: j && !I && A === "modifier",
|
|
798
|
+
surModification: _
|
|
787
799
|
}
|
|
788
800
|
),
|
|
789
|
-
|
|
801
|
+
j && /* @__PURE__ */ f("div", { className: "barre", children: [
|
|
790
802
|
/* @__PURE__ */ e("span", { className: "barre__point" }),
|
|
791
|
-
/* @__PURE__ */ e("span", { className: "barre__texte", children:
|
|
803
|
+
/* @__PURE__ */ e("span", { className: "barre__texte", children: A === "modifier" ? "Cliquez un texte pour le corriger" : "Navigation libre — les clics ouvrent les liens" }),
|
|
792
804
|
/* @__PURE__ */ e(
|
|
793
805
|
"button",
|
|
794
806
|
{
|
|
795
807
|
type: "button",
|
|
796
|
-
className: "bouton " + (
|
|
797
|
-
onClick:
|
|
798
|
-
title:
|
|
799
|
-
children:
|
|
808
|
+
className: "bouton " + (A === "circuler" ? "bouton--principal" : ""),
|
|
809
|
+
onClick: U,
|
|
810
|
+
title: A === "modifier" ? "Passer en navigation pour changer de page" : "Revenir a la modification des textes",
|
|
811
|
+
children: A === "modifier" ? "Circuler" : "Modifier"
|
|
800
812
|
}
|
|
801
813
|
),
|
|
802
|
-
|
|
803
|
-
/* @__PURE__ */ e("span", { className: "barre__compte", children:
|
|
814
|
+
x.length > 0 ? /* @__PURE__ */ f(ne, { children: [
|
|
815
|
+
/* @__PURE__ */ e("span", { className: "barre__compte", children: x.length === 1 ? "1 modification non publiée" : `${x.length} modifications non publiées` }),
|
|
804
816
|
/* @__PURE__ */ e(
|
|
805
817
|
"button",
|
|
806
818
|
{
|
|
807
819
|
type: "button",
|
|
808
820
|
className: "bouton bouton--principal",
|
|
809
|
-
onClick:
|
|
810
|
-
disabled:
|
|
821
|
+
onClick: Q,
|
|
822
|
+
disabled: I,
|
|
811
823
|
children: "Publier"
|
|
812
824
|
}
|
|
813
825
|
),
|
|
@@ -816,8 +828,8 @@ function Ne({ api: n, pont: t }) {
|
|
|
816
828
|
{
|
|
817
829
|
type: "button",
|
|
818
830
|
className: "bouton bouton--discret",
|
|
819
|
-
onClick:
|
|
820
|
-
disabled:
|
|
831
|
+
onClick: ie,
|
|
832
|
+
disabled: I,
|
|
821
833
|
children: "Abandonner"
|
|
822
834
|
}
|
|
823
835
|
)
|
|
@@ -827,7 +839,7 @@ function Ne({ api: n, pont: t }) {
|
|
|
827
839
|
{
|
|
828
840
|
type: "button",
|
|
829
841
|
className: "bouton bouton--icone bouton--discret",
|
|
830
|
-
onClick: () =>
|
|
842
|
+
onClick: () => D(!0),
|
|
831
843
|
title: "Tous les contenus",
|
|
832
844
|
"aria-label": "Tous les contenus",
|
|
833
845
|
children: "⋮"
|
|
@@ -838,17 +850,17 @@ function Ne({ api: n, pont: t }) {
|
|
|
838
850
|
{
|
|
839
851
|
type: "button",
|
|
840
852
|
className: "bouton bouton--icone bouton--sortie",
|
|
841
|
-
onClick:
|
|
853
|
+
onClick: de,
|
|
842
854
|
title: "Quitter le mode édition",
|
|
843
855
|
"aria-label": "Quitter le mode édition",
|
|
844
856
|
children: "✕"
|
|
845
857
|
}
|
|
846
858
|
)
|
|
847
859
|
] }),
|
|
848
|
-
|
|
849
|
-
C && /* @__PURE__ */
|
|
850
|
-
/* @__PURE__ */
|
|
851
|
-
/* @__PURE__ */
|
|
860
|
+
P && j && /* @__PURE__ */ e("div", { className: "flottant", children: /* @__PURE__ */ e("p", { className: "message message--" + P.ton, children: P.texte }) }),
|
|
861
|
+
C && /* @__PURE__ */ f("div", { className: "panneau", role: "dialog", "aria-label": "Tous les contenus", children: [
|
|
862
|
+
/* @__PURE__ */ f("div", { className: "panneau__tete", children: [
|
|
863
|
+
/* @__PURE__ */ f("div", { style: { flex: 1 }, children: [
|
|
852
864
|
/* @__PURE__ */ e("h2", { className: "panneau__titre", children: "Tous les contenus" }),
|
|
853
865
|
/* @__PURE__ */ e("p", { className: "panneau__sous", children: "Y compris ce qui ne s'affiche pas dans la page : titre de l'onglet, description dans les moteurs de recherche, textes contenant une valeur calculée." })
|
|
854
866
|
] }),
|
|
@@ -857,25 +869,25 @@ function Ne({ api: n, pont: t }) {
|
|
|
857
869
|
{
|
|
858
870
|
type: "button",
|
|
859
871
|
className: "bouton bouton--icone bouton--discret",
|
|
860
|
-
onClick: () =>
|
|
872
|
+
onClick: () => D(!1),
|
|
861
873
|
"aria-label": "Fermer",
|
|
862
874
|
children: "✕"
|
|
863
875
|
}
|
|
864
876
|
)
|
|
865
877
|
] }),
|
|
866
|
-
/* @__PURE__ */
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
const
|
|
870
|
-
return /* @__PURE__ */
|
|
878
|
+
/* @__PURE__ */ f("div", { className: "panneau__corps", children: [
|
|
879
|
+
c.length === 0 && /* @__PURE__ */ e("p", { className: "message message--info", children: "Aucun contenu déclaré pour cette page." }),
|
|
880
|
+
c.map((u) => {
|
|
881
|
+
const m = a.find((E) => E.blockType === u.blockType), b = m?.draft && !te(m.draft, m.data);
|
|
882
|
+
return /* @__PURE__ */ f(
|
|
871
883
|
"button",
|
|
872
884
|
{
|
|
873
885
|
type: "button",
|
|
874
886
|
className: "rangee",
|
|
875
|
-
onClick: () =>
|
|
887
|
+
onClick: () => ce(u.blockType),
|
|
876
888
|
children: [
|
|
877
889
|
/* @__PURE__ */ e("span", { className: "rangee__nom", children: u.label }),
|
|
878
|
-
/* @__PURE__ */ e("span", { className: "rangee__info", children:
|
|
890
|
+
/* @__PURE__ */ e("span", { className: "rangee__info", children: b ? "non publié" : `${u.fields.length} textes` })
|
|
879
891
|
]
|
|
880
892
|
},
|
|
881
893
|
u.blockType
|
|
@@ -883,50 +895,50 @@ function Ne({ api: n, pont: t }) {
|
|
|
883
895
|
})
|
|
884
896
|
] })
|
|
885
897
|
] }),
|
|
886
|
-
o &&
|
|
898
|
+
o && F && /* @__PURE__ */ f(
|
|
887
899
|
"div",
|
|
888
900
|
{
|
|
889
901
|
className: "panneau",
|
|
890
902
|
role: "dialog",
|
|
891
|
-
"aria-label": "Modifier " +
|
|
903
|
+
"aria-label": "Modifier " + F.label,
|
|
892
904
|
children: [
|
|
893
|
-
/* @__PURE__ */
|
|
894
|
-
/* @__PURE__ */
|
|
895
|
-
/* @__PURE__ */ e("h2", { className: "panneau__titre", children:
|
|
896
|
-
|
|
905
|
+
/* @__PURE__ */ f("div", { className: "panneau__tete", children: [
|
|
906
|
+
/* @__PURE__ */ f("div", { style: { flex: 1 }, children: [
|
|
907
|
+
/* @__PURE__ */ e("h2", { className: "panneau__titre", children: F.label }),
|
|
908
|
+
F.description && /* @__PURE__ */ e("p", { className: "panneau__sous", children: F.description })
|
|
897
909
|
] }),
|
|
898
910
|
/* @__PURE__ */ e(
|
|
899
911
|
"button",
|
|
900
912
|
{
|
|
901
913
|
type: "button",
|
|
902
914
|
className: "bouton bouton--icone bouton--discret",
|
|
903
|
-
onClick: () =>
|
|
915
|
+
onClick: () => i(null),
|
|
904
916
|
"aria-label": "Fermer",
|
|
905
917
|
children: "✕"
|
|
906
918
|
}
|
|
907
919
|
)
|
|
908
920
|
] }),
|
|
909
|
-
/* @__PURE__ */
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
921
|
+
/* @__PURE__ */ f("div", { className: "panneau__corps", children: [
|
|
922
|
+
P && /* @__PURE__ */ e("p", { className: "message message--" + P.ton, children: P.texte }),
|
|
923
|
+
F.fields.map((u) => /* @__PURE__ */ e(
|
|
924
|
+
re,
|
|
913
925
|
{
|
|
914
926
|
champ: u,
|
|
915
927
|
langue: t.langue,
|
|
916
928
|
valeur: h[u.key],
|
|
917
|
-
changer: (
|
|
929
|
+
changer: (m) => le(u.key, m)
|
|
918
930
|
},
|
|
919
931
|
u.key
|
|
920
932
|
))
|
|
921
933
|
] }),
|
|
922
|
-
/* @__PURE__ */
|
|
934
|
+
/* @__PURE__ */ f("div", { className: "panneau__pied", children: [
|
|
923
935
|
/* @__PURE__ */ e(
|
|
924
936
|
"button",
|
|
925
937
|
{
|
|
926
938
|
type: "button",
|
|
927
939
|
className: "bouton bouton--discret",
|
|
928
|
-
onClick: () =>
|
|
929
|
-
disabled:
|
|
940
|
+
onClick: () => i(null),
|
|
941
|
+
disabled: I,
|
|
930
942
|
children: "Fermer"
|
|
931
943
|
}
|
|
932
944
|
),
|
|
@@ -936,8 +948,8 @@ function Ne({ api: n, pont: t }) {
|
|
|
936
948
|
{
|
|
937
949
|
type: "button",
|
|
938
950
|
className: "bouton bouton--principal",
|
|
939
|
-
onClick:
|
|
940
|
-
disabled:
|
|
951
|
+
onClick: ue,
|
|
952
|
+
disabled: I,
|
|
941
953
|
children: "Enregistrer"
|
|
942
954
|
}
|
|
943
955
|
)
|
|
@@ -947,7 +959,7 @@ function Ne({ api: n, pont: t }) {
|
|
|
947
959
|
)
|
|
948
960
|
] });
|
|
949
961
|
}
|
|
950
|
-
const
|
|
962
|
+
const Se = `
|
|
951
963
|
:host {
|
|
952
964
|
all: initial;
|
|
953
965
|
--fond: #16181d;
|
|
@@ -1113,15 +1125,14 @@ const ke = `
|
|
|
1113
1125
|
/* ------------------------------------------------------------ MARQUE ---- */
|
|
1114
1126
|
|
|
1115
1127
|
.marque {
|
|
1116
|
-
display: inline-flex; align-items: center; gap:
|
|
1117
|
-
margin-bottom:
|
|
1118
|
-
color: var(--accent);
|
|
1128
|
+
display: inline-flex; align-items: center; gap: 8px;
|
|
1129
|
+
margin-bottom: 18px;
|
|
1119
1130
|
}
|
|
1120
|
-
.marque
|
|
1131
|
+
.marque img { width: 22px; height: 22px; display: block; }
|
|
1121
1132
|
.marque__mot {
|
|
1122
1133
|
font-size: 12px; font-weight: 600;
|
|
1123
|
-
letter-spacing: 0.
|
|
1124
|
-
color:
|
|
1134
|
+
letter-spacing: 0.18em; text-transform: uppercase;
|
|
1135
|
+
color: #6fd3bd;
|
|
1125
1136
|
}
|
|
1126
1137
|
|
|
1127
1138
|
.fenetre__titre {
|
|
@@ -1135,13 +1146,6 @@ const ke = `
|
|
|
1135
1146
|
font-size: 13px; line-height: 1.5; color: var(--texte-doux);
|
|
1136
1147
|
}
|
|
1137
1148
|
.fenetre__corps { text-align: left; }
|
|
1138
|
-
.fenetre__pied {
|
|
1139
|
-
margin: 18px 0 0;
|
|
1140
|
-
padding-top: 14px;
|
|
1141
|
-
border-top: 1px solid var(--bord);
|
|
1142
|
-
font-size: 11.5px; line-height: 1.5; color: var(--texte-doux);
|
|
1143
|
-
text-align: center;
|
|
1144
|
-
}
|
|
1145
1149
|
|
|
1146
1150
|
/* ------------------------------------------------------ FOURNISSEURS ---- */
|
|
1147
1151
|
|
|
@@ -1257,7 +1261,7 @@ input:focus, select:focus, textarea:focus {
|
|
|
1257
1261
|
@media (prefers-reduced-motion: reduce) {
|
|
1258
1262
|
* { transition: none !important; animation: none !important; }
|
|
1259
1263
|
}
|
|
1260
|
-
`,
|
|
1264
|
+
`, De = `
|
|
1261
1265
|
/* --------------------------------------------------------- CHOIX -------- */
|
|
1262
1266
|
|
|
1263
1267
|
/* Quand un meme texte vient de plusieurs cles, on demande laquelle plutot que
|
|
@@ -1307,7 +1311,7 @@ input:focus, select:focus, textarea:focus {
|
|
|
1307
1311
|
max-width: min(460px, calc(100vw - 24px));
|
|
1308
1312
|
}
|
|
1309
1313
|
.flottant .message { margin: 0; box-shadow: 0 8px 26px rgba(0,0,0,.4); }
|
|
1310
|
-
`,
|
|
1314
|
+
`, ze = `
|
|
1311
1315
|
/* ON NE DOIT JAMAIS SE DEMANDER SI ON EST EN MODE EDITION. Une barre en bas
|
|
1312
1316
|
se confond avec un bandeau de temoins ; un lisere qui borde tout l'ecran,
|
|
1313
1317
|
present sur chaque page, ne se confond avec rien. Il ne prend aucun clic. */
|
|
@@ -1321,60 +1325,70 @@ input:focus, select:focus, textarea:focus {
|
|
|
1321
1325
|
opacity: 0.85;
|
|
1322
1326
|
}
|
|
1323
1327
|
|
|
1328
|
+
/* EN MODE CIRCULER, le cadre change d'allure. On est toujours connecte — le
|
|
1329
|
+
dire reste necessaire — mais les clics rendent la main aux liens, et rien
|
|
1330
|
+
ne serait plus desagreable que de croire qu'on edite alors qu'on navigue,
|
|
1331
|
+
ou l'inverse. Trait interrompu et plus efface : present, mais en retrait. */
|
|
1332
|
+
.cadre-global--circuler {
|
|
1333
|
+
border-style: dashed;
|
|
1334
|
+
border-color: var(--texte-doux);
|
|
1335
|
+
opacity: 0.5;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1324
1338
|
/* La sortie est rouge au survol seulement : visible quand on la cherche,
|
|
1325
1339
|
discrete le reste du temps — c'est le geste qu'on fait une fois. */
|
|
1326
1340
|
.bouton--sortie { color: var(--texte-doux); background: transparent; border-color: transparent; }
|
|
1327
1341
|
.bouton--sortie:hover { background: rgba(217, 119, 106, 0.16); color: var(--danger); }
|
|
1328
|
-
`,
|
|
1329
|
-
function
|
|
1342
|
+
`, Pe = "lystech-editeur-hote", Te = "lystech-connexion-hote";
|
|
1343
|
+
function ae(n) {
|
|
1330
1344
|
document.getElementById(n)?.remove();
|
|
1331
1345
|
const t = document.createElement("div");
|
|
1332
1346
|
t.id = n, document.body.appendChild(t);
|
|
1333
|
-
const
|
|
1334
|
-
r.textContent =
|
|
1347
|
+
const s = t.attachShadow({ mode: "open" }), r = document.createElement("style");
|
|
1348
|
+
r.textContent = Se + De + ze, s.appendChild(r);
|
|
1335
1349
|
const a = document.createElement("div");
|
|
1336
|
-
return
|
|
1350
|
+
return s.appendChild(a), { hote: t, point: a };
|
|
1337
1351
|
}
|
|
1338
|
-
function
|
|
1339
|
-
let
|
|
1352
|
+
function se(n, t) {
|
|
1353
|
+
let s = n;
|
|
1340
1354
|
return () => {
|
|
1341
|
-
const r =
|
|
1342
|
-
|
|
1355
|
+
const r = s;
|
|
1356
|
+
s = null, setTimeout(() => {
|
|
1343
1357
|
r?.unmount(), t.remove();
|
|
1344
1358
|
}, 0);
|
|
1345
1359
|
};
|
|
1346
1360
|
}
|
|
1347
|
-
function
|
|
1361
|
+
function Ie({
|
|
1348
1362
|
site: n,
|
|
1349
1363
|
apiBaseUrl: t,
|
|
1350
|
-
methodes:
|
|
1364
|
+
methodes: s,
|
|
1351
1365
|
surJeton: r
|
|
1352
1366
|
}) {
|
|
1353
|
-
const { hote: a, point: d } =
|
|
1367
|
+
const { hote: a, point: d } = ae(Te), l = oe(d), g = () => o();
|
|
1354
1368
|
l.render(
|
|
1355
1369
|
/* @__PURE__ */ e(
|
|
1356
|
-
|
|
1370
|
+
ve,
|
|
1357
1371
|
{
|
|
1358
1372
|
site: n,
|
|
1359
1373
|
apiBaseUrl: t,
|
|
1360
|
-
...
|
|
1361
|
-
surJeton: (
|
|
1362
|
-
o(), r(
|
|
1374
|
+
...s ? { methodes: s } : {},
|
|
1375
|
+
surJeton: (i) => {
|
|
1376
|
+
o(), r(i);
|
|
1363
1377
|
},
|
|
1364
|
-
surFermer:
|
|
1378
|
+
surFermer: g
|
|
1365
1379
|
}
|
|
1366
1380
|
)
|
|
1367
1381
|
);
|
|
1368
|
-
const o =
|
|
1382
|
+
const o = se(l, a);
|
|
1369
1383
|
return o;
|
|
1370
1384
|
}
|
|
1371
|
-
function
|
|
1385
|
+
function Be({
|
|
1372
1386
|
jeton: n,
|
|
1373
1387
|
site: t,
|
|
1374
|
-
apiBaseUrl:
|
|
1388
|
+
apiBaseUrl: s,
|
|
1375
1389
|
pont: r
|
|
1376
1390
|
}) {
|
|
1377
|
-
const { hote: a, point: d } =
|
|
1391
|
+
const { hote: a, point: d } = ae(Pe), l = oe(d), g = () => {
|
|
1378
1392
|
try {
|
|
1379
1393
|
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit");
|
|
1380
1394
|
} catch {
|
|
@@ -1387,15 +1401,15 @@ function Ie({
|
|
|
1387
1401
|
};
|
|
1388
1402
|
return l.render(
|
|
1389
1403
|
/* @__PURE__ */ e(
|
|
1390
|
-
|
|
1404
|
+
Ee,
|
|
1391
1405
|
{
|
|
1392
|
-
api:
|
|
1406
|
+
api: me({ jeton: n, site: t, apiBaseUrl: s, surJetonRefuse: g }),
|
|
1393
1407
|
pont: r
|
|
1394
1408
|
}
|
|
1395
1409
|
)
|
|
1396
|
-
),
|
|
1410
|
+
), se(l, a);
|
|
1397
1411
|
}
|
|
1398
1412
|
export {
|
|
1399
|
-
|
|
1400
|
-
|
|
1413
|
+
Ie as monterConnexion,
|
|
1414
|
+
Be as monterEditeur
|
|
1401
1415
|
};
|