ObsiGate 2.83.5 : barre v0.4.1 — correctif des icônes invisibles du menu compte, vendange verbatim (fusion #125) + garde
This commit is contained in:
@@ -529,11 +529,17 @@
|
|||||||
["line", { x1: "21", y1: "12", x2: "9", y2: "12" }]
|
["line", { x1: "21", y1: "12", x2: "9", y2: "12" }]
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
/* Espace de noms SVG — OBLIGATOIRE : un élément « svg » (ou
|
||||||
|
* « path », « circle »…) créé par createElement() appartient à
|
||||||
|
* l'espace de noms HTML et le navigateur ne le dessine JAMAIS
|
||||||
|
* (bug v0.4.0 : libellés décalés d'un cran d'icône, aucun glyphe
|
||||||
|
* visible ; corrigé en v0.4.1, carte fusion #125). */
|
||||||
|
var SVG_NS = "http://www.w3.org/2000/svg";
|
||||||
function menuIcone(nom) {
|
function menuIcone(nom) {
|
||||||
var span = document.createElement("span");
|
var span = document.createElement("span");
|
||||||
span.className = "draco-menu-icone";
|
span.className = "draco-menu-icone";
|
||||||
span.setAttribute("aria-hidden", "true");
|
span.setAttribute("aria-hidden", "true");
|
||||||
var svg = document.createElement("svg");
|
var svg = document.createElementNS(SVG_NS, "svg");
|
||||||
svg.setAttribute("viewBox", "0 0 24 24");
|
svg.setAttribute("viewBox", "0 0 24 24");
|
||||||
svg.setAttribute("fill", "none");
|
svg.setAttribute("fill", "none");
|
||||||
svg.setAttribute("stroke", "currentColor");
|
svg.setAttribute("stroke", "currentColor");
|
||||||
@@ -542,7 +548,7 @@
|
|||||||
svg.setAttribute("stroke-linejoin", "round");
|
svg.setAttribute("stroke-linejoin", "round");
|
||||||
svg.setAttribute("focusable", "false");
|
svg.setAttribute("focusable", "false");
|
||||||
(MENU_ICONES[nom] || []).forEach(function (spec) {
|
(MENU_ICONES[nom] || []).forEach(function (spec) {
|
||||||
var el = document.createElement(spec[0]);
|
var el = document.createElementNS(SVG_NS, spec[0]);
|
||||||
for (var k in spec[1]) el.setAttribute(k, spec[1][k]);
|
for (var k in spec[1]) el.setAttribute(k, spec[1][k]);
|
||||||
svg.appendChild(el);
|
svg.appendChild(el);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -226,3 +226,16 @@ def test_barre_v040_icones_monoline_menu_compte():
|
|||||||
bloc = css.split(".draco-menu-icone {", 1)[1].split("}", 1)[0]
|
bloc = css.split(".draco-menu-icone {", 1)[1].split("}", 1)[0]
|
||||||
assert "width: 18px" in bloc
|
assert "width: 18px" in bloc
|
||||||
assert "var(--ink-2)" in bloc
|
assert "var(--ink-2)" in bloc
|
||||||
|
|
||||||
|
|
||||||
|
def test_barre_v041_correctif_icones_espace_de_noms_svg():
|
||||||
|
# v0.4.1 (correctif fusion #125) : les icônes du menu compte
|
||||||
|
# sont créées via createElementNS (espace de noms SVG). En
|
||||||
|
# v0.4.0, createElement() les créait dans l'espace de noms
|
||||||
|
# HTML : jamais dessinées par le navigateur, libellés
|
||||||
|
# décalés d'un cran d'icône sans aucun glyphe.
|
||||||
|
js = (FRONTEND / "draco-barre.js").read_text(encoding="utf-8")
|
||||||
|
assert 'createElementNS(SVG_NS, "svg")' in js
|
||||||
|
assert "createElementNS(SVG_NS, spec[0])" in js
|
||||||
|
assert 'createElement("svg")' not in js
|
||||||
|
assert "createElement(spec[0])" not in js
|
||||||
|
|||||||
Reference in New Issue
Block a user