@lystech/sections 0.4.5 → 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 +29 -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/pont.d.ts +2 -0
- package/dist/editeur.js +451 -440
- package/dist/index.d.ts +1 -0
- package/dist/index.js +182 -155
- 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,217 +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 w =
|
|
643
|
-
(w === "" ||
|
|
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
|
-
w && !w.localized ?
|
|
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 z =
|
|
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);
|
|
749
|
+
}
|
|
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);
|
|
734
755
|
}
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
if (N && A && t.sourceTexte) {
|
|
738
|
-
const P = N[1], k = N[2], w = t.sourceTexte.langues(), B = {};
|
|
756
|
+
if (E && k && t.sourceTexte) {
|
|
757
|
+
const C = E[1], N = E[2], w = t.sourceTexte.langues(), B = {};
|
|
739
758
|
for (const z of w)
|
|
740
|
-
B[z] = t.sourceTexte.dictionnaire(z)[
|
|
741
|
-
const
|
|
742
|
-
for (const z of
|
|
743
|
-
const
|
|
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;
|
|
744
763
|
if (!z.localized) {
|
|
745
|
-
const Y = B[
|
|
746
|
-
typeof Y == "string" && (
|
|
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);
|
|
747
766
|
continue;
|
|
748
767
|
}
|
|
749
|
-
const
|
|
768
|
+
const $ = {};
|
|
750
769
|
for (const Y of w) {
|
|
751
|
-
const R = B[Y]?.[
|
|
752
|
-
typeof R == "string" && (
|
|
770
|
+
const R = B[Y]?.[K];
|
|
771
|
+
typeof R == "string" && ($[Y] = R);
|
|
753
772
|
}
|
|
754
|
-
Object.keys(
|
|
773
|
+
Object.keys($).length && (O[z.key] = $);
|
|
755
774
|
}
|
|
756
775
|
}
|
|
757
|
-
for (const [
|
|
758
|
-
const w =
|
|
759
|
-
|
|
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;
|
|
760
779
|
}
|
|
761
|
-
v(
|
|
762
|
-
},
|
|
763
|
-
if (
|
|
764
|
-
|
|
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);
|
|
765
784
|
try {
|
|
766
|
-
const
|
|
767
|
-
if (
|
|
785
|
+
const c = d.find((b) => b.blockType === n);
|
|
786
|
+
if (c?.UID) await o.enregistrerBrouillon(c.UID, x);
|
|
768
787
|
else {
|
|
769
|
-
const
|
|
770
|
-
await
|
|
788
|
+
const b = p(n)?.pages?.[0] ?? l;
|
|
789
|
+
await o.creer(b, n, x);
|
|
771
790
|
}
|
|
772
|
-
const
|
|
791
|
+
const f = await L();
|
|
773
792
|
if (t.sourceTexte) {
|
|
774
|
-
const { appliquerAuxTextes:
|
|
775
|
-
|
|
776
|
-
|
|
793
|
+
const { appliquerAuxTextes: b } = await import("./morceaux/sourceTexte-BMPMpNg9.js");
|
|
794
|
+
b(
|
|
795
|
+
f.map((k) => ({ blockType: k.blockType, data: k.draft ?? k.data })),
|
|
777
796
|
t.sourceTexte
|
|
778
797
|
);
|
|
779
798
|
}
|
|
780
|
-
|
|
799
|
+
H.test(n) || t.poserApercu(n, x), D({
|
|
781
800
|
ton: "ok",
|
|
782
801
|
texte: "Enregistré. Rien n'a encore changé pour vos visiteurs."
|
|
783
802
|
});
|
|
784
803
|
} catch {
|
|
785
|
-
|
|
804
|
+
D({ ton: "erreur", texte: "L'enregistrement a échoué." });
|
|
786
805
|
} finally {
|
|
787
|
-
|
|
806
|
+
P(!1);
|
|
788
807
|
}
|
|
789
808
|
}
|
|
790
|
-
},
|
|
809
|
+
}, be = () => {
|
|
791
810
|
try {
|
|
792
|
-
window.localStorage.
|
|
811
|
+
window.localStorage.removeItem(te);
|
|
793
812
|
} catch {
|
|
794
813
|
}
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
}
|
|
799
|
-
window.location.reload();
|
|
800
|
-
}, F = o ? p(o) : void 0, H = !o && !E;
|
|
801
|
-
return /* @__PURE__ */ f("div", { className: "calque", children: [
|
|
814
|
+
ie();
|
|
815
|
+
}, F = n ? p(n) : void 0, J = !n && !A;
|
|
816
|
+
return /* @__PURE__ */ m("div", { className: "calque", children: [
|
|
802
817
|
/* @__PURE__ */ e(
|
|
803
818
|
"div",
|
|
804
819
|
{
|
|
@@ -807,14 +822,15 @@ function Se({ api: n, pont: t }) {
|
|
|
807
822
|
}
|
|
808
823
|
),
|
|
809
824
|
t.sourceTexte && /* @__PURE__ */ e(
|
|
810
|
-
|
|
825
|
+
ze,
|
|
811
826
|
{
|
|
812
827
|
source: t.sourceTexte,
|
|
813
|
-
actif:
|
|
814
|
-
|
|
828
|
+
actif: J && !I && y === "modifier",
|
|
829
|
+
modifiable: Z,
|
|
830
|
+
surModification: Q
|
|
815
831
|
}
|
|
816
832
|
),
|
|
817
|
-
|
|
833
|
+
J && /* @__PURE__ */ m("div", { className: "barre", children: [
|
|
818
834
|
/* @__PURE__ */ e("span", { className: "barre__point" }),
|
|
819
835
|
/* @__PURE__ */ e("span", { className: "barre__texte", children: y === "modifier" ? "Cliquez un texte pour le corriger" : "Navigation libre — les clics ouvrent les liens" }),
|
|
820
836
|
/* @__PURE__ */ e(
|
|
@@ -827,14 +843,14 @@ function Se({ api: n, pont: t }) {
|
|
|
827
843
|
children: y === "modifier" ? "Circuler" : "Modifier"
|
|
828
844
|
}
|
|
829
845
|
),
|
|
830
|
-
|
|
831
|
-
/* @__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` }),
|
|
832
848
|
/* @__PURE__ */ e(
|
|
833
849
|
"button",
|
|
834
850
|
{
|
|
835
851
|
type: "button",
|
|
836
852
|
className: "bouton bouton--principal",
|
|
837
|
-
onClick:
|
|
853
|
+
onClick: q,
|
|
838
854
|
disabled: I,
|
|
839
855
|
children: "Publier"
|
|
840
856
|
}
|
|
@@ -844,7 +860,7 @@ function Se({ api: n, pont: t }) {
|
|
|
844
860
|
{
|
|
845
861
|
type: "button",
|
|
846
862
|
className: "bouton bouton--discret",
|
|
847
|
-
onClick:
|
|
863
|
+
onClick: de,
|
|
848
864
|
disabled: I,
|
|
849
865
|
children: "Abandonner"
|
|
850
866
|
}
|
|
@@ -855,7 +871,7 @@ function Se({ api: n, pont: t }) {
|
|
|
855
871
|
{
|
|
856
872
|
type: "button",
|
|
857
873
|
className: "bouton bouton--icone bouton--discret",
|
|
858
|
-
onClick: () =>
|
|
874
|
+
onClick: () => T(!0),
|
|
859
875
|
title: "Tous les contenus",
|
|
860
876
|
"aria-label": "Tous les contenus",
|
|
861
877
|
children: "⋮"
|
|
@@ -866,17 +882,17 @@ function Se({ api: n, pont: t }) {
|
|
|
866
882
|
{
|
|
867
883
|
type: "button",
|
|
868
884
|
className: "bouton bouton--icone bouton--sortie",
|
|
869
|
-
onClick:
|
|
885
|
+
onClick: be,
|
|
870
886
|
title: "Quitter le mode édition",
|
|
871
887
|
"aria-label": "Quitter le mode édition",
|
|
872
888
|
children: "✕"
|
|
873
889
|
}
|
|
874
890
|
)
|
|
875
891
|
] }),
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
/* @__PURE__ */
|
|
879
|
-
/* @__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: [
|
|
880
896
|
/* @__PURE__ */ e("h2", { className: "panneau__titre", children: "Tous les contenus" }),
|
|
881
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." })
|
|
882
898
|
] }),
|
|
@@ -885,41 +901,41 @@ function Se({ api: n, pont: t }) {
|
|
|
885
901
|
{
|
|
886
902
|
type: "button",
|
|
887
903
|
className: "bouton bouton--icone bouton--discret",
|
|
888
|
-
onClick: () =>
|
|
904
|
+
onClick: () => T(!1),
|
|
889
905
|
"aria-label": "Fermer",
|
|
890
906
|
children: "✕"
|
|
891
907
|
}
|
|
892
908
|
)
|
|
893
909
|
] }),
|
|
894
|
-
/* @__PURE__ */
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
const
|
|
898
|
-
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(
|
|
899
915
|
"button",
|
|
900
916
|
{
|
|
901
917
|
type: "button",
|
|
902
918
|
className: "rangee",
|
|
903
|
-
onClick: () =>
|
|
919
|
+
onClick: () => pe(c.blockType),
|
|
904
920
|
children: [
|
|
905
|
-
/* @__PURE__ */ e("span", { className: "rangee__nom", children:
|
|
906
|
-
/* @__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` })
|
|
907
923
|
]
|
|
908
924
|
},
|
|
909
|
-
|
|
925
|
+
c.blockType
|
|
910
926
|
);
|
|
911
927
|
})
|
|
912
928
|
] })
|
|
913
929
|
] }),
|
|
914
|
-
|
|
930
|
+
n && F && /* @__PURE__ */ m(
|
|
915
931
|
"div",
|
|
916
932
|
{
|
|
917
933
|
className: "panneau",
|
|
918
934
|
role: "dialog",
|
|
919
935
|
"aria-label": "Modifier " + F.label,
|
|
920
936
|
children: [
|
|
921
|
-
/* @__PURE__ */
|
|
922
|
-
/* @__PURE__ */
|
|
937
|
+
/* @__PURE__ */ m("div", { className: "panneau__tete", children: [
|
|
938
|
+
/* @__PURE__ */ m("div", { style: { flex: 1 }, children: [
|
|
923
939
|
/* @__PURE__ */ e("h2", { className: "panneau__titre", children: F.label }),
|
|
924
940
|
F.description && /* @__PURE__ */ e("p", { className: "panneau__sous", children: F.description })
|
|
925
941
|
] }),
|
|
@@ -928,32 +944,32 @@ function Se({ api: n, pont: t }) {
|
|
|
928
944
|
{
|
|
929
945
|
type: "button",
|
|
930
946
|
className: "bouton bouton--icone bouton--discret",
|
|
931
|
-
onClick: () =>
|
|
947
|
+
onClick: () => u(null),
|
|
932
948
|
"aria-label": "Fermer",
|
|
933
949
|
children: "✕"
|
|
934
950
|
}
|
|
935
951
|
)
|
|
936
952
|
] }),
|
|
937
|
-
/* @__PURE__ */
|
|
938
|
-
|
|
939
|
-
F.fields.map((
|
|
940
|
-
|
|
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,
|
|
941
957
|
{
|
|
942
|
-
champ:
|
|
958
|
+
champ: c,
|
|
943
959
|
langue: t.langue,
|
|
944
|
-
valeur:
|
|
945
|
-
changer: (
|
|
960
|
+
valeur: x[c.key],
|
|
961
|
+
changer: (f) => fe(c.key, f)
|
|
946
962
|
},
|
|
947
|
-
|
|
963
|
+
c.key
|
|
948
964
|
))
|
|
949
965
|
] }),
|
|
950
|
-
/* @__PURE__ */
|
|
966
|
+
/* @__PURE__ */ m("div", { className: "panneau__pied", children: [
|
|
951
967
|
/* @__PURE__ */ e(
|
|
952
968
|
"button",
|
|
953
969
|
{
|
|
954
970
|
type: "button",
|
|
955
971
|
className: "bouton bouton--discret",
|
|
956
|
-
onClick: () =>
|
|
972
|
+
onClick: () => u(null),
|
|
957
973
|
disabled: I,
|
|
958
974
|
children: "Fermer"
|
|
959
975
|
}
|
|
@@ -964,7 +980,7 @@ function Se({ api: n, pont: t }) {
|
|
|
964
980
|
{
|
|
965
981
|
type: "button",
|
|
966
982
|
className: "bouton bouton--principal",
|
|
967
|
-
onClick:
|
|
983
|
+
onClick: me,
|
|
968
984
|
disabled: I,
|
|
969
985
|
children: "Enregistrer"
|
|
970
986
|
}
|
|
@@ -975,7 +991,7 @@ function Se({ api: n, pont: t }) {
|
|
|
975
991
|
)
|
|
976
992
|
] });
|
|
977
993
|
}
|
|
978
|
-
const
|
|
994
|
+
const Oe = `
|
|
979
995
|
:host {
|
|
980
996
|
all: initial;
|
|
981
997
|
--fond: #16181d;
|
|
@@ -1277,7 +1293,7 @@ input:focus, select:focus, textarea:focus {
|
|
|
1277
1293
|
@media (prefers-reduced-motion: reduce) {
|
|
1278
1294
|
* { transition: none !important; animation: none !important; }
|
|
1279
1295
|
}
|
|
1280
|
-
`,
|
|
1296
|
+
`, Pe = `
|
|
1281
1297
|
/* --------------------------------------------------------- CHOIX -------- */
|
|
1282
1298
|
|
|
1283
1299
|
/* Quand un meme texte vient de plusieurs cles, on demande laquelle plutot que
|
|
@@ -1327,7 +1343,7 @@ input:focus, select:focus, textarea:focus {
|
|
|
1327
1343
|
max-width: min(460px, calc(100vw - 24px));
|
|
1328
1344
|
}
|
|
1329
1345
|
.flottant .message { margin: 0; box-shadow: 0 8px 26px rgba(0,0,0,.4); }
|
|
1330
|
-
`,
|
|
1346
|
+
`, Me = `
|
|
1331
1347
|
/* ON NE DOIT JAMAIS SE DEMANDER SI ON EST EN MODE EDITION. Une barre en bas
|
|
1332
1348
|
se confond avec un bandeau de temoins ; un lisere qui borde tout l'ecran,
|
|
1333
1349
|
present sur chaque page, ne se confond avec rien. Il ne prend aucun clic. */
|
|
@@ -1355,77 +1371,72 @@ input:focus, select:focus, textarea:focus {
|
|
|
1355
1371
|
discrete le reste du temps — c'est le geste qu'on fait une fois. */
|
|
1356
1372
|
.bouton--sortie { color: var(--texte-doux); background: transparent; border-color: transparent; }
|
|
1357
1373
|
.bouton--sortie:hover { background: rgba(217, 119, 106, 0.16); color: var(--danger); }
|
|
1358
|
-
`,
|
|
1359
|
-
function
|
|
1360
|
-
document.getElementById(
|
|
1374
|
+
`, Le = "lystech-editeur-hote", Ie = "lystech-connexion-hote";
|
|
1375
|
+
function le(o) {
|
|
1376
|
+
document.getElementById(o)?.remove();
|
|
1361
1377
|
const t = document.createElement("div");
|
|
1362
|
-
t.id =
|
|
1363
|
-
const
|
|
1364
|
-
r.textContent =
|
|
1365
|
-
const
|
|
1366
|
-
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 };
|
|
1367
1383
|
}
|
|
1368
|
-
function
|
|
1369
|
-
let
|
|
1384
|
+
function ue(o, t) {
|
|
1385
|
+
let a = o;
|
|
1370
1386
|
return () => {
|
|
1371
|
-
const r =
|
|
1372
|
-
|
|
1387
|
+
const r = a;
|
|
1388
|
+
a = null, setTimeout(() => {
|
|
1373
1389
|
r?.unmount(), t.remove();
|
|
1374
1390
|
}, 0);
|
|
1375
1391
|
};
|
|
1376
1392
|
}
|
|
1377
|
-
function
|
|
1378
|
-
site:
|
|
1393
|
+
function Ue({
|
|
1394
|
+
site: o,
|
|
1379
1395
|
apiBaseUrl: t,
|
|
1380
|
-
methodes:
|
|
1396
|
+
methodes: a,
|
|
1381
1397
|
surJeton: r
|
|
1382
1398
|
}) {
|
|
1383
|
-
const { hote:
|
|
1399
|
+
const { hote: d, point: s } = le(Ie), l = se(s), g = () => n();
|
|
1384
1400
|
l.render(
|
|
1385
1401
|
/* @__PURE__ */ e(
|
|
1386
|
-
|
|
1402
|
+
Ce,
|
|
1387
1403
|
{
|
|
1388
|
-
site:
|
|
1404
|
+
site: o,
|
|
1389
1405
|
apiBaseUrl: t,
|
|
1390
|
-
...
|
|
1391
|
-
surJeton: (
|
|
1392
|
-
|
|
1406
|
+
...a ? { methodes: a } : {},
|
|
1407
|
+
surJeton: (u) => {
|
|
1408
|
+
n(), r(u);
|
|
1393
1409
|
},
|
|
1394
|
-
surFermer:
|
|
1410
|
+
surFermer: g
|
|
1395
1411
|
}
|
|
1396
1412
|
)
|
|
1397
1413
|
);
|
|
1398
|
-
const
|
|
1399
|
-
return
|
|
1414
|
+
const n = ue(l, d);
|
|
1415
|
+
return n;
|
|
1400
1416
|
}
|
|
1401
|
-
function
|
|
1402
|
-
jeton:
|
|
1417
|
+
function Fe({
|
|
1418
|
+
jeton: o,
|
|
1403
1419
|
site: t,
|
|
1404
|
-
apiBaseUrl:
|
|
1420
|
+
apiBaseUrl: a,
|
|
1405
1421
|
pont: r
|
|
1406
1422
|
}) {
|
|
1407
|
-
const { hote:
|
|
1408
|
-
try {
|
|
1409
|
-
window.localStorage.setItem("lystech-edit-sortie", "1"), window.localStorage.removeItem("lystech-edit");
|
|
1410
|
-
} catch {
|
|
1411
|
-
}
|
|
1412
|
-
try {
|
|
1413
|
-
window.sessionStorage.removeItem("lystech-edit");
|
|
1414
|
-
} catch {
|
|
1415
|
-
}
|
|
1416
|
-
window.location.reload();
|
|
1417
|
-
};
|
|
1423
|
+
const { hote: d, point: s } = le(Le), l = se(s);
|
|
1418
1424
|
return l.render(
|
|
1419
1425
|
/* @__PURE__ */ e(
|
|
1420
|
-
|
|
1426
|
+
Te,
|
|
1421
1427
|
{
|
|
1422
|
-
api:
|
|
1428
|
+
api: xe({
|
|
1429
|
+
jeton: o,
|
|
1430
|
+
site: t,
|
|
1431
|
+
apiBaseUrl: a,
|
|
1432
|
+
surJetonRefuse: ie
|
|
1433
|
+
}),
|
|
1423
1434
|
pont: r
|
|
1424
1435
|
}
|
|
1425
1436
|
)
|
|
1426
|
-
),
|
|
1437
|
+
), ue(l, d);
|
|
1427
1438
|
}
|
|
1428
1439
|
export {
|
|
1429
|
-
|
|
1430
|
-
|
|
1440
|
+
Ue as monterConnexion,
|
|
1441
|
+
Fe as monterEditeur
|
|
1431
1442
|
};
|