360 lines
8.7 KiB
JavaScript
360 lines
8.7 KiB
JavaScript
import { a2 as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, a3 as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, a4 as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, a5 as CLASS_EPINGLE, a6 as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, a7 as SELECTEUR_EPINGLE, a8 as SELECTEUR_BOITE_TEXTE } from "./dom.js";
|
|
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
|
|
import { k as some, q as reduceU, w as nullable_to_opt, v as valFromOption, g as equal, x as concat, R as Ra } from "./dom2.js";
|
|
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
|
import { _ as _1, i as is_extension, c as create, g as getExn, b as getWithDefault$1, d as isNone, a as isSome, f as flatMap$1, e as mapU, h as flatMapU, m as mapWithDefaultU } from "./belt_Option-91f3b350.cBye8bLJ.js";
|
|
import "./erreurs2.js";
|
|
import "./exports.3IcOsN8u.js";
|
|
import "./Either.wHNxn7Os.js";
|
|
var t = create("Promise.JsError");
|
|
function $$catch(r, s) {
|
|
return r.catch(function(r2) {
|
|
return _1(s, is_extension(r2) ? r2 : {
|
|
RE_EXN_ID: t,
|
|
_1: r2
|
|
});
|
|
});
|
|
}
|
|
function placeholder(n) {
|
|
}
|
|
function makeSome(n) {
|
|
return some(n);
|
|
}
|
|
function makeNone(n) {
|
|
}
|
|
function fromNullable(n) {
|
|
if (null == n) {
|
|
return;
|
|
} else {
|
|
return some(n);
|
|
}
|
|
}
|
|
function fromFalsy(n) {
|
|
if (n) {
|
|
return n;
|
|
}
|
|
}
|
|
function _fromPredicate(n, t2) {
|
|
return flatMap$1(null == n ? void 0 : some(n), function(n2) {
|
|
if (t2(n2)) {
|
|
return some(n2);
|
|
}
|
|
});
|
|
}
|
|
function fromPredicate() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _fromPredicate(t2, n[0]);
|
|
};
|
|
}
|
|
return _fromPredicate(arguments[0], arguments[1]);
|
|
}
|
|
function fromExecution(n) {
|
|
try {
|
|
return some(n(void 0));
|
|
} catch (n2) {
|
|
return;
|
|
}
|
|
}
|
|
function fromPromise(t2) {
|
|
return $$catch(t2.then(function(n) {
|
|
return some(n);
|
|
}), function(n) {
|
|
return Promise.resolve(void 0);
|
|
});
|
|
}
|
|
var h = mapU;
|
|
function map() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return h(t2, n[0]);
|
|
};
|
|
}
|
|
return h(arguments[0], arguments[1]);
|
|
}
|
|
var _ = flatMapU;
|
|
function flatMap() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _(t2, n[0]);
|
|
};
|
|
}
|
|
return _(arguments[0], arguments[1]);
|
|
}
|
|
var v = mapWithDefaultU;
|
|
function mapWithDefault() {
|
|
if (2 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return v(t2, n[0], n[1]);
|
|
};
|
|
}
|
|
return v(arguments[0], arguments[1], arguments[2]);
|
|
}
|
|
function _mapNullable(n, t2) {
|
|
if (void 0 !== n) {
|
|
return nullable_to_opt(t2(valFromOption(n)));
|
|
}
|
|
}
|
|
function mapNullable() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _mapNullable(t2, n[0]);
|
|
};
|
|
}
|
|
return _mapNullable(arguments[0], arguments[1]);
|
|
}
|
|
function _filter(n, t2) {
|
|
return flatMapU(n, function(n2) {
|
|
if (t2(n2)) {
|
|
return some(n2);
|
|
}
|
|
});
|
|
}
|
|
function filter() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _filter(t2, n[0]);
|
|
};
|
|
}
|
|
return _filter(arguments[0], arguments[1]);
|
|
}
|
|
var g = getWithDefault$1;
|
|
function getWithDefault() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return g(t2, n[0]);
|
|
};
|
|
}
|
|
return g(arguments[0], arguments[1]);
|
|
}
|
|
var N = getExn;
|
|
function toNullable(n) {
|
|
return getWithDefault$1(n, null);
|
|
}
|
|
function toUndefined(n) {
|
|
return getWithDefault$1(n, void 0);
|
|
}
|
|
function _toResult(n, t2) {
|
|
if (void 0 !== n) {
|
|
return {
|
|
TAG: 0,
|
|
_0: valFromOption(n)
|
|
};
|
|
} else {
|
|
return {
|
|
TAG: 1,
|
|
_0: t2
|
|
};
|
|
}
|
|
}
|
|
function toResult() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _toResult(t2, n[0]);
|
|
};
|
|
}
|
|
return _toResult(arguments[0], arguments[1]);
|
|
}
|
|
function _match(n, t2, r) {
|
|
if (void 0 !== n) {
|
|
return t2(valFromOption(n));
|
|
} else {
|
|
return r(void 0);
|
|
}
|
|
}
|
|
function match() {
|
|
if (2 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _match(t2, n[0], n[1]);
|
|
};
|
|
}
|
|
return _match(arguments[0], arguments[1], arguments[2]);
|
|
}
|
|
var b = isNone;
|
|
var z = isSome;
|
|
function _tap(n, t2) {
|
|
if (void 0 !== n) {
|
|
t2(valFromOption(n));
|
|
return n;
|
|
} else {
|
|
return n;
|
|
}
|
|
}
|
|
function tap() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _tap(t2, n[0]);
|
|
};
|
|
}
|
|
return _tap(arguments[0], arguments[1]);
|
|
}
|
|
function _contains(n, r) {
|
|
return mapWithDefaultU(n, false, function(n2) {
|
|
return equal(n2, r);
|
|
});
|
|
}
|
|
function contains() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _contains(t2, n[0]);
|
|
};
|
|
}
|
|
return _contains(arguments[0], arguments[1]);
|
|
}
|
|
function _zip(n, t2) {
|
|
if (void 0 !== n && void 0 !== t2) {
|
|
return [valFromOption(n), valFromOption(t2)];
|
|
}
|
|
}
|
|
function zip() {
|
|
if (1 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _zip(t2, n[0]);
|
|
};
|
|
}
|
|
return _zip(arguments[0], arguments[1]);
|
|
}
|
|
function _zipWith(n, t2, r) {
|
|
if (void 0 !== n && void 0 !== t2) {
|
|
return some(r(valFromOption(n), valFromOption(t2)));
|
|
}
|
|
}
|
|
function zipWith() {
|
|
if (2 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _zipWith(t2, n[0], n[1]);
|
|
};
|
|
}
|
|
return _zipWith(arguments[0], arguments[1], arguments[2]);
|
|
}
|
|
function _fold(n, t2, r) {
|
|
if (void 0 !== n) {
|
|
return t2(valFromOption(n));
|
|
} else {
|
|
return r(void 0);
|
|
}
|
|
}
|
|
function fold() {
|
|
if (2 === arguments.length) {
|
|
const n = arguments;
|
|
return function fn(t2) {
|
|
return _fold(t2, n[0], n[1]);
|
|
};
|
|
}
|
|
return _fold(arguments[0], arguments[1], arguments[2]);
|
|
}
|
|
function all(n) {
|
|
return reduceU(n, [], function(n2, t2) {
|
|
return flatMapU(n2, function(n3) {
|
|
if (void 0 !== t2) {
|
|
return concat(n3, [valFromOption(t2)]);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
const Some = (n) => n;
|
|
var P = {
|
|
__proto__: null,
|
|
Some,
|
|
None: void 0,
|
|
placeholder,
|
|
makeSome,
|
|
makeNone,
|
|
fromNullable,
|
|
fromFalsy,
|
|
fromPredicate,
|
|
fromExecution,
|
|
fromPromise,
|
|
map,
|
|
flatMap,
|
|
mapWithDefault,
|
|
mapNullable,
|
|
filter,
|
|
getWithDefault,
|
|
getExn: N,
|
|
toNullable,
|
|
toUndefined,
|
|
toResult,
|
|
match,
|
|
isNone: b,
|
|
isSome: z,
|
|
tap,
|
|
contains,
|
|
zip,
|
|
zipWith,
|
|
fold,
|
|
all
|
|
};
|
|
const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve(
|
|
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS
|
|
);
|
|
const EPINGLES = recupereElementsDansDocumentOuLeve(SELECTEUR_EPINGLE);
|
|
const BOITES_TEXTE = recupereElementsDansDocumentOuLeve(SELECTEUR_BOITE_TEXTE);
|
|
const ENSEMBLES_EPINGLES_BOITES_TEXTE = /* @__PURE__ */ new Map();
|
|
Ra.forEachWithIndex(EPINGLES, (index, epingle) => {
|
|
pipe(
|
|
epingle,
|
|
P.flatMap((bouton) => bouton.getAttribute(ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE)),
|
|
P.tap((id) => {
|
|
ENSEMBLES_EPINGLES_BOITES_TEXTE.set(id, [epingle, BOITES_TEXTE[index]]);
|
|
})
|
|
);
|
|
});
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
CONTENEUR_STORYTELLING.addEventListener("click", (evenement) => {
|
|
console.time();
|
|
const cible = evenement.target;
|
|
pipe(
|
|
cible,
|
|
// TODO: Créer une fonction « liftPredicate » agissant comme prédicat de type
|
|
P.fromPredicate((element) => element.className === CLASS_BOUTON_FERMETURE_BOITE_TEXTE),
|
|
P.mapNullable((bouton) => bouton.parentElement),
|
|
P.flatMap((boite) => boite.getAttribute(ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE)),
|
|
P.tap((id) => {
|
|
pipe(
|
|
P.fromNullable(ENSEMBLES_EPINGLES_BOITES_TEXTE.get(id)),
|
|
P.tap(Ra.forEach((element) => element.removeAttribute(ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF)))
|
|
);
|
|
})
|
|
);
|
|
pipe(
|
|
cible,
|
|
// Vérifier la classe plutôt que le bouton
|
|
P.fromPredicate((element) => element.className === CLASS_EPINGLE),
|
|
P.flatMap((bouton) => bouton.getAttribute(ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE)),
|
|
P.tap((id) => {
|
|
if (cible.hasAttribute(ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF)) {
|
|
pipe(
|
|
P.fromNullable(ENSEMBLES_EPINGLES_BOITES_TEXTE.get(id)),
|
|
P.tap(Ra.forEach((element) => element.removeAttribute(ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF)))
|
|
);
|
|
return;
|
|
}
|
|
pipe(
|
|
Array.from(ENSEMBLES_EPINGLES_BOITES_TEXTE.values()),
|
|
Ra.flat,
|
|
Ra.forEach((element) => element.removeAttribute(ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF))
|
|
);
|
|
pipe(
|
|
P.fromNullable(ENSEMBLES_EPINGLES_BOITES_TEXTE.get(id)),
|
|
P.tap(Ra.forEach((element) => element.toggleAttribute(ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF)))
|
|
);
|
|
})
|
|
);
|
|
console.timeEnd();
|
|
});
|
|
});
|
|
//# sourceMappingURL=scripts-page-a-propos.js.map
|