@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/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,11 +1,13 @@
|
|
|
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
|
|
10
|
+
const t = (r) => {
|
|
9
11
|
try {
|
|
10
12
|
window.localStorage.setItem(u, r);
|
|
11
13
|
} catch {
|
|
@@ -17,8 +19,8 @@ function G() {
|
|
|
17
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 {
|
|
@@ -30,154 +32,172 @@ function G() {
|
|
|
30
32
|
const c = new URLSearchParams(r), o = c.get(u);
|
|
31
33
|
if (o) {
|
|
32
34
|
c.delete(u);
|
|
33
|
-
const
|
|
35
|
+
const a = c.toString();
|
|
34
36
|
return window.history.replaceState(
|
|
35
37
|
{},
|
|
36
38
|
"",
|
|
37
|
-
window.location.pathname + window.location.search + (
|
|
38
|
-
),
|
|
39
|
+
window.location.pathname + window.location.search + (a ? "#" + a : "")
|
|
40
|
+
), t(o);
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
|
-
const
|
|
42
|
-
return n ? (
|
|
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
|
|
48
|
-
site:
|
|
49
|
+
function ot({
|
|
50
|
+
site: t,
|
|
49
51
|
page: r,
|
|
50
|
-
langue:
|
|
51
|
-
apiBaseUrl: n =
|
|
52
|
+
langue: e = "fr",
|
|
53
|
+
apiBaseUrl: n = Q,
|
|
52
54
|
sectionsInitiales: c,
|
|
53
55
|
sourceTexte: o,
|
|
54
|
-
pagesPartagees:
|
|
55
|
-
children:
|
|
56
|
+
pagesPartagees: a,
|
|
57
|
+
children: m
|
|
56
58
|
}) {
|
|
57
|
-
const [
|
|
59
|
+
const [d, E] = p(
|
|
58
60
|
c ?? []
|
|
59
|
-
), [
|
|
61
|
+
), [w, g] = p(
|
|
60
62
|
c?.length ? "pret" : "chargement"
|
|
61
|
-
), [
|
|
62
|
-
|
|
63
|
-
if (!
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
return fetch(
|
|
69
|
-
(
|
|
70
|
-
).then((
|
|
71
|
-
|
|
72
|
-
}).catch((
|
|
73
|
-
|
|
74
|
-
}), () =>
|
|
75
|
-
}, [
|
|
76
|
-
const
|
|
77
|
-
|
|
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(
|
|
71
|
+
(i) => i.ok ? i.json() : Promise.reject(new Error(String(i.status)))
|
|
72
|
+
).then((i) => {
|
|
73
|
+
s.signal.aborted || (E(Array.isArray(i) ? i : []), g("pret"));
|
|
74
|
+
}).catch((i) => {
|
|
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;
|
|
78
80
|
}, []);
|
|
79
|
-
|
|
80
|
-
!o || !
|
|
81
|
-
}, [
|
|
82
|
-
const
|
|
83
|
-
(
|
|
81
|
+
A(() => {
|
|
82
|
+
!o || !d.length || K(d, o);
|
|
83
|
+
}, [d, o]);
|
|
84
|
+
const _ = b(
|
|
85
|
+
(s, l) => T((i) => ({ ...i, [s]: l })),
|
|
84
86
|
[]
|
|
85
|
-
),
|
|
86
|
-
site:
|
|
87
|
+
), f = x({
|
|
88
|
+
site: t,
|
|
87
89
|
page: r,
|
|
88
|
-
langue:
|
|
90
|
+
langue: e,
|
|
89
91
|
poserApercu: () => {
|
|
90
92
|
},
|
|
91
93
|
recharger: () => {
|
|
92
94
|
}
|
|
93
95
|
});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}, [r])
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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,
|
|
121
|
+
site: t,
|
|
104
122
|
apiBaseUrl: n,
|
|
105
|
-
pont:
|
|
123
|
+
pont: f.current
|
|
106
124
|
}));
|
|
107
|
-
}).catch((
|
|
108
|
-
console.error("[lystech] éditeur indisponible:",
|
|
125
|
+
}).catch((h) => {
|
|
126
|
+
console.error("[lystech] éditeur indisponible:", h?.message ?? h);
|
|
109
127
|
}), () => {
|
|
110
|
-
|
|
128
|
+
l = !1, v.current = null, i?.();
|
|
111
129
|
};
|
|
112
|
-
}, [
|
|
113
|
-
const N =
|
|
130
|
+
}, [t, n]);
|
|
131
|
+
const N = L(
|
|
114
132
|
() => ({
|
|
115
|
-
site:
|
|
133
|
+
site: t,
|
|
116
134
|
page: r,
|
|
117
|
-
langue:
|
|
135
|
+
langue: e,
|
|
118
136
|
apiBaseUrl: n,
|
|
119
|
-
sections:
|
|
120
|
-
etat:
|
|
121
|
-
recharger:
|
|
122
|
-
apercu:
|
|
123
|
-
poserApercu:
|
|
124
|
-
modeEdition:
|
|
125
|
-
declarerRepli:
|
|
137
|
+
sections: d,
|
|
138
|
+
etat: w,
|
|
139
|
+
recharger: R,
|
|
140
|
+
apercu: S,
|
|
141
|
+
poserApercu: _,
|
|
142
|
+
modeEdition: P,
|
|
143
|
+
declarerRepli: k,
|
|
144
|
+
appelEdition: F
|
|
126
145
|
}),
|
|
127
146
|
[
|
|
128
|
-
e,
|
|
129
|
-
r,
|
|
130
147
|
t,
|
|
148
|
+
r,
|
|
149
|
+
e,
|
|
131
150
|
n,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
151
|
+
d,
|
|
152
|
+
w,
|
|
153
|
+
R,
|
|
154
|
+
S,
|
|
155
|
+
_,
|
|
156
|
+
P,
|
|
157
|
+
k,
|
|
158
|
+
F
|
|
139
159
|
]
|
|
140
160
|
);
|
|
141
|
-
return /* @__PURE__ */
|
|
161
|
+
return /* @__PURE__ */ C(M.Provider, { value: N, children: m });
|
|
142
162
|
}
|
|
143
|
-
function
|
|
144
|
-
return
|
|
163
|
+
function O() {
|
|
164
|
+
return Z(M);
|
|
145
165
|
}
|
|
146
|
-
const
|
|
147
|
-
function
|
|
148
|
-
site:
|
|
166
|
+
const X = "https://api.lystech.ca/api";
|
|
167
|
+
function ct({
|
|
168
|
+
site: t,
|
|
149
169
|
apiBaseUrl: r,
|
|
150
|
-
className:
|
|
170
|
+
className: e,
|
|
151
171
|
mention: n = "Réalisé avec Lystech",
|
|
152
172
|
connexion: c = "Connexion",
|
|
153
173
|
methodes: o
|
|
154
174
|
}) {
|
|
155
|
-
const
|
|
156
|
-
if (!
|
|
157
|
-
const
|
|
158
|
-
if (!
|
|
159
|
-
|
|
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);
|
|
160
180
|
try {
|
|
161
181
|
(await import("@lystech/sections/editeur")).monterConnexion({
|
|
162
|
-
site:
|
|
163
|
-
apiBaseUrl:
|
|
182
|
+
site: m,
|
|
183
|
+
apiBaseUrl: d,
|
|
164
184
|
...o ? { methodes: o } : {},
|
|
165
|
-
surJeton: (
|
|
185
|
+
surJeton: (S) => {
|
|
166
186
|
try {
|
|
167
|
-
window.localStorage.removeItem(
|
|
187
|
+
window.localStorage.removeItem(D), window.localStorage.setItem(u, S);
|
|
168
188
|
} catch {
|
|
169
|
-
window.location.hash =
|
|
189
|
+
window.location.hash = u + "=" + encodeURIComponent(S);
|
|
170
190
|
}
|
|
171
191
|
window.location.reload();
|
|
172
192
|
}
|
|
173
193
|
});
|
|
174
|
-
} catch (
|
|
175
|
-
console.error("[lystech] connexion indisponible:",
|
|
194
|
+
} catch (y) {
|
|
195
|
+
console.error("[lystech] connexion indisponible:", y?.message ?? y);
|
|
176
196
|
} finally {
|
|
177
|
-
|
|
197
|
+
w(!1);
|
|
178
198
|
}
|
|
179
199
|
}
|
|
180
|
-
},
|
|
200
|
+
}, j = {
|
|
181
201
|
color: "inherit",
|
|
182
202
|
font: "inherit",
|
|
183
203
|
background: "none",
|
|
@@ -190,7 +210,7 @@ function te({
|
|
|
190
210
|
return /* @__PURE__ */ J(
|
|
191
211
|
"div",
|
|
192
212
|
{
|
|
193
|
-
className:
|
|
213
|
+
className: e,
|
|
194
214
|
style: {
|
|
195
215
|
display: "flex",
|
|
196
216
|
flexWrap: "wrap",
|
|
@@ -201,7 +221,7 @@ function te({
|
|
|
201
221
|
lineHeight: 1.5
|
|
202
222
|
},
|
|
203
223
|
children: [
|
|
204
|
-
/* @__PURE__ */
|
|
224
|
+
n !== null && /* @__PURE__ */ C(
|
|
205
225
|
"a",
|
|
206
226
|
{
|
|
207
227
|
href: "https://lystech.ca",
|
|
@@ -211,94 +231,95 @@ function te({
|
|
|
211
231
|
children: n
|
|
212
232
|
}
|
|
213
233
|
),
|
|
214
|
-
!
|
|
215
|
-
/* @__PURE__ */
|
|
216
|
-
/* @__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 })
|
|
217
237
|
] })
|
|
218
238
|
]
|
|
219
239
|
}
|
|
220
240
|
);
|
|
221
241
|
}
|
|
222
|
-
function
|
|
223
|
-
return !!
|
|
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));
|
|
224
244
|
}
|
|
225
|
-
function
|
|
226
|
-
if (Array.isArray(
|
|
227
|
-
if (
|
|
228
|
-
const
|
|
229
|
-
return
|
|
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) ?? "";
|
|
230
250
|
}
|
|
231
|
-
if (
|
|
232
|
-
const
|
|
233
|
-
for (const [n, c] of Object.entries(
|
|
234
|
-
|
|
235
|
-
return
|
|
251
|
+
if (t && typeof t == "object") {
|
|
252
|
+
const e = {};
|
|
253
|
+
for (const [n, c] of Object.entries(t))
|
|
254
|
+
e[n] = I(c, r);
|
|
255
|
+
return e;
|
|
236
256
|
}
|
|
237
|
-
return
|
|
257
|
+
return t;
|
|
238
258
|
}
|
|
239
|
-
function
|
|
259
|
+
function B(t, r) {
|
|
240
260
|
if (!r || typeof r != "object" || Array.isArray(r))
|
|
241
|
-
return
|
|
242
|
-
const
|
|
261
|
+
return t;
|
|
262
|
+
const e = { ...t };
|
|
243
263
|
for (const [n, c] of Object.entries(r))
|
|
244
|
-
c != null && (
|
|
245
|
-
return
|
|
264
|
+
c != null && (e[n] = c);
|
|
265
|
+
return e;
|
|
246
266
|
}
|
|
247
|
-
function
|
|
248
|
-
const
|
|
249
|
-
return
|
|
250
|
-
c?.(
|
|
251
|
-
}, [c,
|
|
252
|
-
const o =
|
|
253
|
-
(
|
|
254
|
-
),
|
|
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(() => {
|
|
272
|
+
const o = e?.sections.find(
|
|
273
|
+
(d) => d.blockType === t
|
|
274
|
+
), a = n ?? o?.data ?? null, m = a ? I(a, e?.langue ?? "fr") : null;
|
|
255
275
|
return {
|
|
256
|
-
contenu:
|
|
276
|
+
contenu: B(r.defaut, m),
|
|
257
277
|
publie: !!o?.data,
|
|
258
278
|
UID: o?.UID ?? null,
|
|
259
|
-
chargement:
|
|
260
|
-
ancrage: { "data-lystech-section":
|
|
279
|
+
chargement: e?.etat === "chargement",
|
|
280
|
+
ancrage: { "data-lystech-section": t }
|
|
261
281
|
};
|
|
262
282
|
}, [
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
283
|
+
e?.sections,
|
|
284
|
+
e?.langue,
|
|
285
|
+
e?.etat,
|
|
266
286
|
n,
|
|
267
|
-
|
|
287
|
+
t,
|
|
268
288
|
r.defaut
|
|
269
289
|
]);
|
|
270
290
|
}
|
|
271
|
-
function
|
|
272
|
-
const
|
|
273
|
-
return
|
|
274
|
-
const n = { "data-lystech-section":
|
|
275
|
-
(o) => o.blockType ===
|
|
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
|
|
276
296
|
);
|
|
277
297
|
return c.length === 0 ? {
|
|
278
|
-
items: (r?.defaut ?? []).map((o,
|
|
298
|
+
items: (r?.defaut ?? []).map((o, a) => ({
|
|
279
299
|
...o,
|
|
280
|
-
__uid: `defaut-${
|
|
300
|
+
__uid: `defaut-${a}`
|
|
281
301
|
})),
|
|
282
302
|
publie: !1,
|
|
283
|
-
chargement:
|
|
303
|
+
chargement: e?.etat === "chargement",
|
|
284
304
|
ancrage: n
|
|
285
305
|
} : {
|
|
286
306
|
items: c.map((o) => ({
|
|
287
|
-
...
|
|
307
|
+
...I(o.data ?? {}, e?.langue ?? "fr"),
|
|
288
308
|
__uid: o.UID
|
|
289
309
|
})),
|
|
290
310
|
publie: !0,
|
|
291
|
-
chargement:
|
|
311
|
+
chargement: e?.etat === "chargement",
|
|
292
312
|
ancrage: n
|
|
293
313
|
};
|
|
294
|
-
}, [
|
|
314
|
+
}, [e?.sections, e?.langue, e?.etat, t, r?.defaut]);
|
|
295
315
|
}
|
|
296
316
|
export {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
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
|
|
304
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
|
+
};
|