haiku-atelier-2024/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-a-propos.js
2024-11-20 23:06:38 +01:00

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