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