@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/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* Le paquet ne dépend PAS de @lystech/core : une clinique qui veut modifier
|
|
10
10
|
* trois textes n'a aucune raison de charger un magasin, un panier et PayPal.
|
|
11
11
|
*/
|
|
12
|
+
export { CLASSE_HORS_EDITION } from './constantes';
|
|
12
13
|
export { SectionsProvider, useSectionsContext } from './SectionsProvider';
|
|
13
14
|
export { SignatureLystech } from './SignatureLystech';
|
|
14
15
|
export { adaptateurI18next, appliquerAuxTextes } from './sourceTexte';
|
package/dist/index.js
CHANGED
|
@@ -1,179 +1,203 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { s as W, a as D, b as u } from "./morceaux/constantes-BPZxUYge.js";
|
|
2
|
+
import { C as lt } from "./morceaux/constantes-BPZxUYge.js";
|
|
3
|
+
import { jsx as C, jsxs as J, Fragment as q } from "react/jsx-runtime";
|
|
4
|
+
import { useState as p, useRef as x, useEffect as A, useCallback as b, useMemo as L, useContext as Z, createContext as G } from "react";
|
|
5
|
+
import { appliquerAuxTextes as K } from "./morceaux/sourceTexte-BMPMpNg9.js";
|
|
6
|
+
import { adaptateurI18next as ft } from "./morceaux/sourceTexte-BMPMpNg9.js";
|
|
7
|
+
const M = G(null), Q = "https://api.lystech.ca/api";
|
|
8
|
+
function V() {
|
|
7
9
|
if (typeof window > "u") return null;
|
|
8
|
-
const t = (
|
|
10
|
+
const t = (r) => {
|
|
9
11
|
try {
|
|
10
|
-
window.localStorage.setItem(u,
|
|
12
|
+
window.localStorage.setItem(u, r);
|
|
11
13
|
} catch {
|
|
12
14
|
try {
|
|
13
|
-
window.sessionStorage.setItem(u,
|
|
15
|
+
window.sessionStorage.setItem(u, r);
|
|
14
16
|
} catch {
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
|
-
return
|
|
19
|
+
return r;
|
|
18
20
|
};
|
|
19
21
|
try {
|
|
20
|
-
if (window.localStorage.getItem(
|
|
21
|
-
window.localStorage.removeItem(
|
|
22
|
+
if (window.localStorage.getItem(D)) {
|
|
23
|
+
window.localStorage.removeItem(D), window.localStorage.removeItem(u);
|
|
22
24
|
try {
|
|
23
25
|
window.sessionStorage.removeItem(u);
|
|
24
26
|
} catch {
|
|
25
27
|
}
|
|
26
28
|
return null;
|
|
27
29
|
}
|
|
28
|
-
const
|
|
29
|
-
if (
|
|
30
|
-
const
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
const
|
|
30
|
+
const r = window.location.hash.replace(/^#/, "");
|
|
31
|
+
if (r.includes(u + "=")) {
|
|
32
|
+
const c = new URLSearchParams(r), o = c.get(u);
|
|
33
|
+
if (o) {
|
|
34
|
+
c.delete(u);
|
|
35
|
+
const a = c.toString();
|
|
34
36
|
return window.history.replaceState(
|
|
35
37
|
{},
|
|
36
38
|
"",
|
|
37
|
-
window.location.pathname + window.location.search + (
|
|
38
|
-
), t(
|
|
39
|
+
window.location.pathname + window.location.search + (a ? "#" + a : "")
|
|
40
|
+
), t(o);
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
|
-
const e = new URL(window.location.href),
|
|
42
|
-
return
|
|
43
|
+
const e = new URL(window.location.href), n = e.searchParams.get(u);
|
|
44
|
+
return n ? (e.searchParams.delete(u), window.history.replaceState({}, "", e.toString()), t(n)) : window.localStorage.getItem(u) ?? window.sessionStorage.getItem(u);
|
|
43
45
|
} catch {
|
|
44
46
|
return null;
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
|
-
function
|
|
49
|
+
function ot({
|
|
48
50
|
site: t,
|
|
49
|
-
page:
|
|
51
|
+
page: r,
|
|
50
52
|
langue: e = "fr",
|
|
51
|
-
apiBaseUrl:
|
|
52
|
-
sectionsInitiales:
|
|
53
|
-
sourceTexte:
|
|
54
|
-
pagesPartagees:
|
|
55
|
-
children:
|
|
53
|
+
apiBaseUrl: n = Q,
|
|
54
|
+
sectionsInitiales: c,
|
|
55
|
+
sourceTexte: o,
|
|
56
|
+
pagesPartagees: a,
|
|
57
|
+
children: m
|
|
56
58
|
}) {
|
|
57
|
-
const [d,
|
|
58
|
-
|
|
59
|
-
), [
|
|
60
|
-
|
|
61
|
-
), [
|
|
62
|
-
|
|
63
|
-
if (!t || !
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
return fetch(
|
|
59
|
+
const [d, E] = p(
|
|
60
|
+
c ?? []
|
|
61
|
+
), [w, g] = p(
|
|
62
|
+
c?.length ? "pret" : "chargement"
|
|
63
|
+
), [j, y] = p(0), [S, T] = p({}), [P, $] = p(!1), U = x(null);
|
|
64
|
+
A(() => {
|
|
65
|
+
if (!t || !r) return;
|
|
66
|
+
U.current?.abort();
|
|
67
|
+
const s = new AbortController();
|
|
68
|
+
U.current = s, g("chargement");
|
|
69
|
+
const l = n + "/site-sections/public/" + encodeURIComponent(t) + "/" + encodeURIComponent([r, ...a ?? []].join(","));
|
|
70
|
+
return fetch(l, { signal: s.signal }).then(
|
|
69
71
|
(i) => i.ok ? i.json() : Promise.reject(new Error(String(i.status)))
|
|
70
72
|
).then((i) => {
|
|
71
|
-
|
|
73
|
+
s.signal.aborted || (E(Array.isArray(i) ? i : []), g("pret"));
|
|
72
74
|
}).catch((i) => {
|
|
73
|
-
|
|
74
|
-
}), () =>
|
|
75
|
-
}, [t,
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
s.signal.aborted || i?.name === "AbortError" || g("erreur");
|
|
76
|
+
}), () => s.abort();
|
|
77
|
+
}, [t, r, n, j, (a ?? []).join(",")]);
|
|
78
|
+
const R = b(() => y((s) => s + 1), []), z = x({}), k = b((s, l) => {
|
|
79
|
+
z.current[s] = l;
|
|
80
|
+
}, []);
|
|
81
|
+
A(() => {
|
|
82
|
+
!o || !d.length || K(d, o);
|
|
83
|
+
}, [d, o]);
|
|
84
|
+
const _ = b(
|
|
85
|
+
(s, l) => T((i) => ({ ...i, [s]: l })),
|
|
82
86
|
[]
|
|
83
|
-
),
|
|
87
|
+
), f = x({
|
|
84
88
|
site: t,
|
|
85
|
-
page:
|
|
89
|
+
page: r,
|
|
86
90
|
langue: e,
|
|
87
91
|
poserApercu: () => {
|
|
88
92
|
},
|
|
89
93
|
recharger: () => {
|
|
90
94
|
}
|
|
91
95
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}, [
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
f.current.site = t, f.current.page = r, f.current.langue = e, f.current.poserApercu = _, f.current.sourceTexte = o, f.current.replis = z.current, f.current.recharger = R, A(() => {
|
|
97
|
+
f.current.surChangementDePage?.(r);
|
|
98
|
+
}, [r]);
|
|
99
|
+
const v = x(null), F = b(
|
|
100
|
+
async (s, l = {}) => {
|
|
101
|
+
const i = v.current;
|
|
102
|
+
if (!i) throw new Error("Aucune connexion d'édition active.");
|
|
103
|
+
if (!s.startsWith("/"))
|
|
104
|
+
throw new Error(
|
|
105
|
+
"appelEdition attend un chemin de l'API, ex. « /results/site/droits »."
|
|
106
|
+
);
|
|
107
|
+
const h = new Headers(l.headers);
|
|
108
|
+
h.set("Authorization", "Bearer " + i), typeof l.body == "string" && !h.has("Content-Type") && h.set("Content-Type", "application/json");
|
|
109
|
+
const H = await fetch(n + s, { ...l, headers: h });
|
|
110
|
+
return H.status === 401 && W(), H;
|
|
111
|
+
},
|
|
112
|
+
[n]
|
|
113
|
+
);
|
|
114
|
+
A(() => {
|
|
115
|
+
const s = V();
|
|
116
|
+
if (!s) return;
|
|
117
|
+
let l = !0, i;
|
|
118
|
+
return import("@lystech/sections/editeur").then((h) => {
|
|
119
|
+
l && (v.current = s, $(!0), i = h.monterEditeur({
|
|
120
|
+
jeton: s,
|
|
101
121
|
site: t,
|
|
102
|
-
apiBaseUrl:
|
|
103
|
-
pont:
|
|
122
|
+
apiBaseUrl: n,
|
|
123
|
+
pont: f.current
|
|
104
124
|
}));
|
|
105
|
-
}).catch((
|
|
106
|
-
console.error("[lystech] éditeur indisponible:",
|
|
125
|
+
}).catch((h) => {
|
|
126
|
+
console.error("[lystech] éditeur indisponible:", h?.message ?? h);
|
|
107
127
|
}), () => {
|
|
108
|
-
|
|
128
|
+
l = !1, v.current = null, i?.();
|
|
109
129
|
};
|
|
110
|
-
}, [t,
|
|
111
|
-
const
|
|
130
|
+
}, [t, n]);
|
|
131
|
+
const N = L(
|
|
112
132
|
() => ({
|
|
113
133
|
site: t,
|
|
114
|
-
page:
|
|
134
|
+
page: r,
|
|
115
135
|
langue: e,
|
|
116
|
-
apiBaseUrl:
|
|
136
|
+
apiBaseUrl: n,
|
|
117
137
|
sections: d,
|
|
118
|
-
etat:
|
|
119
|
-
recharger:
|
|
120
|
-
apercu:
|
|
121
|
-
poserApercu:
|
|
122
|
-
modeEdition:
|
|
138
|
+
etat: w,
|
|
139
|
+
recharger: R,
|
|
140
|
+
apercu: S,
|
|
141
|
+
poserApercu: _,
|
|
142
|
+
modeEdition: P,
|
|
143
|
+
declarerRepli: k,
|
|
144
|
+
appelEdition: F
|
|
123
145
|
}),
|
|
124
146
|
[
|
|
125
147
|
t,
|
|
126
|
-
n,
|
|
127
|
-
e,
|
|
128
148
|
r,
|
|
149
|
+
e,
|
|
150
|
+
n,
|
|
129
151
|
d,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
152
|
+
w,
|
|
153
|
+
R,
|
|
154
|
+
S,
|
|
155
|
+
_,
|
|
156
|
+
P,
|
|
157
|
+
k,
|
|
158
|
+
F
|
|
135
159
|
]
|
|
136
160
|
);
|
|
137
|
-
return /* @__PURE__ */
|
|
161
|
+
return /* @__PURE__ */ C(M.Provider, { value: N, children: m });
|
|
138
162
|
}
|
|
139
|
-
function
|
|
140
|
-
return M
|
|
163
|
+
function O() {
|
|
164
|
+
return Z(M);
|
|
141
165
|
}
|
|
142
|
-
const
|
|
143
|
-
function
|
|
166
|
+
const X = "https://api.lystech.ca/api";
|
|
167
|
+
function ct({
|
|
144
168
|
site: t,
|
|
145
|
-
apiBaseUrl:
|
|
169
|
+
apiBaseUrl: r,
|
|
146
170
|
className: e,
|
|
147
|
-
mention:
|
|
148
|
-
connexion:
|
|
149
|
-
methodes:
|
|
171
|
+
mention: n = "Réalisé avec Lystech",
|
|
172
|
+
connexion: c = "Connexion",
|
|
173
|
+
methodes: o
|
|
150
174
|
}) {
|
|
151
|
-
const
|
|
152
|
-
if (!
|
|
153
|
-
const
|
|
154
|
-
if (!
|
|
155
|
-
|
|
175
|
+
const a = O(), m = t ?? a?.site ?? "", d = r ?? a?.apiBaseUrl ?? X, [E, w] = p(!1);
|
|
176
|
+
if (!m) return null;
|
|
177
|
+
const g = async () => {
|
|
178
|
+
if (!E) {
|
|
179
|
+
w(!0);
|
|
156
180
|
try {
|
|
157
181
|
(await import("@lystech/sections/editeur")).monterConnexion({
|
|
158
|
-
site:
|
|
182
|
+
site: m,
|
|
159
183
|
apiBaseUrl: d,
|
|
160
|
-
...
|
|
161
|
-
surJeton: (
|
|
184
|
+
...o ? { methodes: o } : {},
|
|
185
|
+
surJeton: (S) => {
|
|
162
186
|
try {
|
|
163
|
-
window.localStorage.removeItem(
|
|
187
|
+
window.localStorage.removeItem(D), window.localStorage.setItem(u, S);
|
|
164
188
|
} catch {
|
|
165
|
-
window.location.hash =
|
|
189
|
+
window.location.hash = u + "=" + encodeURIComponent(S);
|
|
166
190
|
}
|
|
167
191
|
window.location.reload();
|
|
168
192
|
}
|
|
169
193
|
});
|
|
170
|
-
} catch (
|
|
171
|
-
console.error("[lystech] connexion indisponible:",
|
|
194
|
+
} catch (y) {
|
|
195
|
+
console.error("[lystech] connexion indisponible:", y?.message ?? y);
|
|
172
196
|
} finally {
|
|
173
|
-
|
|
197
|
+
w(!1);
|
|
174
198
|
}
|
|
175
199
|
}
|
|
176
|
-
},
|
|
200
|
+
}, j = {
|
|
177
201
|
color: "inherit",
|
|
178
202
|
font: "inherit",
|
|
179
203
|
background: "none",
|
|
@@ -183,7 +207,7 @@ function B({
|
|
|
183
207
|
textDecoration: "underline",
|
|
184
208
|
textUnderlineOffset: "0.2em"
|
|
185
209
|
};
|
|
186
|
-
return /* @__PURE__ */
|
|
210
|
+
return /* @__PURE__ */ J(
|
|
187
211
|
"div",
|
|
188
212
|
{
|
|
189
213
|
className: e,
|
|
@@ -197,57 +221,59 @@ function B({
|
|
|
197
221
|
lineHeight: 1.5
|
|
198
222
|
},
|
|
199
223
|
children: [
|
|
200
|
-
/* @__PURE__ */
|
|
224
|
+
n !== null && /* @__PURE__ */ C(
|
|
201
225
|
"a",
|
|
202
226
|
{
|
|
203
227
|
href: "https://lystech.ca",
|
|
204
228
|
target: "_blank",
|
|
205
229
|
rel: "noreferrer",
|
|
206
230
|
style: { color: "inherit" },
|
|
207
|
-
children:
|
|
231
|
+
children: n
|
|
208
232
|
}
|
|
209
233
|
),
|
|
210
|
-
!
|
|
211
|
-
/* @__PURE__ */
|
|
212
|
-
/* @__PURE__ */
|
|
234
|
+
!a?.modeEdition && /* @__PURE__ */ J(q, { children: [
|
|
235
|
+
n !== null && /* @__PURE__ */ C("span", { "aria-hidden": "true", children: "·" }),
|
|
236
|
+
/* @__PURE__ */ C("button", { type: "button", style: j, onClick: g, children: E ? "…" : c })
|
|
213
237
|
] })
|
|
214
238
|
]
|
|
215
239
|
}
|
|
216
240
|
);
|
|
217
241
|
}
|
|
218
|
-
function
|
|
219
|
-
return !!t && typeof t == "object" && !Array.isArray(t) && Object.keys(t).every((
|
|
242
|
+
function Y(t) {
|
|
243
|
+
return !!t && typeof t == "object" && !Array.isArray(t) && Object.keys(t).every((r) => /^[a-z]{2}(-[A-Za-z]{2})?$/.test(r));
|
|
220
244
|
}
|
|
221
|
-
function
|
|
222
|
-
if (Array.isArray(t)) return t.map((e) =>
|
|
223
|
-
if (
|
|
224
|
-
const e = t,
|
|
225
|
-
return e[
|
|
245
|
+
function I(t, r) {
|
|
246
|
+
if (Array.isArray(t)) return t.map((e) => I(e, r));
|
|
247
|
+
if (Y(t)) {
|
|
248
|
+
const e = t, n = r.slice(0, 2);
|
|
249
|
+
return e[r] ?? e[n] ?? Object.values(e).find((o) => o != null) ?? "";
|
|
226
250
|
}
|
|
227
251
|
if (t && typeof t == "object") {
|
|
228
252
|
const e = {};
|
|
229
|
-
for (const [
|
|
230
|
-
e[
|
|
253
|
+
for (const [n, c] of Object.entries(t))
|
|
254
|
+
e[n] = I(c, r);
|
|
231
255
|
return e;
|
|
232
256
|
}
|
|
233
257
|
return t;
|
|
234
258
|
}
|
|
235
|
-
function
|
|
236
|
-
if (!
|
|
259
|
+
function B(t, r) {
|
|
260
|
+
if (!r || typeof r != "object" || Array.isArray(r))
|
|
237
261
|
return t;
|
|
238
262
|
const e = { ...t };
|
|
239
|
-
for (const [
|
|
240
|
-
|
|
263
|
+
for (const [n, c] of Object.entries(r))
|
|
264
|
+
c != null && (e[n] = c);
|
|
241
265
|
return e;
|
|
242
266
|
}
|
|
243
|
-
function
|
|
244
|
-
const e =
|
|
245
|
-
return
|
|
267
|
+
function st(t, r) {
|
|
268
|
+
const e = O(), n = e?.apercu?.[t], c = e?.declarerRepli;
|
|
269
|
+
return A(() => {
|
|
270
|
+
c?.(t, r.defaut);
|
|
271
|
+
}, [c, t, r.defaut]), L(() => {
|
|
246
272
|
const o = e?.sections.find(
|
|
247
|
-
(
|
|
248
|
-
),
|
|
273
|
+
(d) => d.blockType === t
|
|
274
|
+
), a = n ?? o?.data ?? null, m = a ? I(a, e?.langue ?? "fr") : null;
|
|
249
275
|
return {
|
|
250
|
-
contenu:
|
|
276
|
+
contenu: B(r.defaut, m),
|
|
251
277
|
publie: !!o?.data,
|
|
252
278
|
UID: o?.UID ?? null,
|
|
253
279
|
chargement: e?.etat === "chargement",
|
|
@@ -257,42 +283,43 @@ function tt(t, n) {
|
|
|
257
283
|
e?.sections,
|
|
258
284
|
e?.langue,
|
|
259
285
|
e?.etat,
|
|
260
|
-
|
|
286
|
+
n,
|
|
261
287
|
t,
|
|
262
|
-
|
|
288
|
+
r.defaut
|
|
263
289
|
]);
|
|
264
290
|
}
|
|
265
|
-
function
|
|
266
|
-
const e =
|
|
267
|
-
return
|
|
268
|
-
const
|
|
269
|
-
(
|
|
291
|
+
function it(t, r) {
|
|
292
|
+
const e = O();
|
|
293
|
+
return L(() => {
|
|
294
|
+
const n = { "data-lystech-section": t }, c = (e?.sections ?? []).filter(
|
|
295
|
+
(o) => o.blockType === t
|
|
270
296
|
);
|
|
271
|
-
return
|
|
272
|
-
items: (
|
|
273
|
-
...
|
|
274
|
-
__uid: `defaut-${
|
|
297
|
+
return c.length === 0 ? {
|
|
298
|
+
items: (r?.defaut ?? []).map((o, a) => ({
|
|
299
|
+
...o,
|
|
300
|
+
__uid: `defaut-${a}`
|
|
275
301
|
})),
|
|
276
302
|
publie: !1,
|
|
277
303
|
chargement: e?.etat === "chargement",
|
|
278
|
-
ancrage:
|
|
304
|
+
ancrage: n
|
|
279
305
|
} : {
|
|
280
|
-
items:
|
|
281
|
-
...
|
|
282
|
-
__uid:
|
|
306
|
+
items: c.map((o) => ({
|
|
307
|
+
...I(o.data ?? {}, e?.langue ?? "fr"),
|
|
308
|
+
__uid: o.UID
|
|
283
309
|
})),
|
|
284
310
|
publie: !0,
|
|
285
311
|
chargement: e?.etat === "chargement",
|
|
286
|
-
ancrage:
|
|
312
|
+
ancrage: n
|
|
287
313
|
};
|
|
288
|
-
}, [e?.sections, e?.langue, e?.etat, t,
|
|
314
|
+
}, [e?.sections, e?.langue, e?.etat, t, r?.defaut]);
|
|
289
315
|
}
|
|
290
316
|
export {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
317
|
+
lt as CLASSE_HORS_EDITION,
|
|
318
|
+
ot as SectionsProvider,
|
|
319
|
+
ct as SignatureLystech,
|
|
320
|
+
ft as adaptateurI18next,
|
|
321
|
+
K as appliquerAuxTextes,
|
|
322
|
+
st as useSection,
|
|
323
|
+
it as useSectionList,
|
|
324
|
+
O as useSectionsContext
|
|
298
325
|
};
|
package/dist/jeton.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** La clé du jeton, dans l'adresse comme dans le stockage. */
|
|
2
|
+
export declare const CLE_JETON = "lystech-edit";
|
|
3
|
+
/** Posée juste avant un rechargement, pour que la sortie soit certaine. */
|
|
4
|
+
export declare const CLE_SORTIE = "lystech-edit-sortie";
|
|
5
|
+
/**
|
|
6
|
+
* SORTIR DU MODE ÉDITION, pour de bon.
|
|
7
|
+
*
|
|
8
|
+
* On efface le jeton ET on pose un marqueur de sortie. Le marqueur est la
|
|
9
|
+
* ceinture : si l'effacement échoue — stockage plein, navigation privée,
|
|
10
|
+
* écriture concurrente — le fournisseur le verra au chargement suivant et
|
|
11
|
+
* nettoiera lui-même. Puis on recharge : la page redevient celle d'un
|
|
12
|
+
* visiteur, et le lien du pied de page permet de se reconnecter.
|
|
13
|
+
*/
|
|
14
|
+
export declare function sortirDuModeEdition(): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const o = "lystech-edit", t = "lystech-edit-sortie";
|
|
2
|
+
function e() {
|
|
3
|
+
try {
|
|
4
|
+
window.localStorage.setItem(t, "1"), window.localStorage.removeItem(o);
|
|
5
|
+
} catch {
|
|
6
|
+
}
|
|
7
|
+
try {
|
|
8
|
+
window.sessionStorage.removeItem(o);
|
|
9
|
+
} catch {
|
|
10
|
+
}
|
|
11
|
+
window.location.reload();
|
|
12
|
+
}
|
|
13
|
+
const s = "lystech-hors-edition";
|
|
14
|
+
export {
|
|
15
|
+
s as C,
|
|
16
|
+
t as a,
|
|
17
|
+
o as b,
|
|
18
|
+
e as s
|
|
19
|
+
};
|