23 lines
1004 B
Python
23 lines
1004 B
Python
from .apply_ctx import _apply_ctx
|
|
from .auto_id import _auto_id
|
|
|
|
|
|
def _visible_attrs(el, meta, ctx=None):
|
|
attrs = {
|
|
k: (_apply_ctx(v, ctx) if isinstance(v, str) else v)
|
|
for k, v in (el.get("attributes") or {}).items() if not k.startswith("_")
|
|
}
|
|
attrs.update(meta.get("fixed_attrs", {}))
|
|
attrs.setdefault("id", _auto_id(el))
|
|
attrs["data-element-id"] = el["id"]
|
|
if el.get("parent_id"):
|
|
# Élément posé à l'intérieur d'un conteneur/répéteur/groupe de
|
|
# champs : pas de cadre de positionnement séparé autour de lui (voir
|
|
# element_style_filter.py) — sa propre balise EST déjà tout
|
|
# l'élément, donc c'est elle que la timeline d'animation doit viser.
|
|
# Un élément posé directement sur un écran, lui, porte ce marqueur
|
|
# sur son cadre (.canvasElement / .playElement) à la place — voir
|
|
# les gabarits screen_edit.html et play.html.
|
|
attrs["data-anim-target"] = el["id"]
|
|
return attrs
|