Skip to content

Commit

Permalink
fix(directive): Add helper to register directives
Browse files Browse the repository at this point in the history
  • Loading branch information
jourdain committed Aug 10, 2023
1 parent 4cd3125 commit e2add71
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 18 deletions.
5 changes: 4 additions & 1 deletion examples/test/print.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@

server = get_server()

# Test to dynamically add a fake directive
html.Div.register_directive("v_seb_directive")

with DivLayout(server) as layout:
with html.Div():
with html.Div(v_seb_directive=True):
with html.Div():
with html.Div(
style="border: 1px;",
Expand Down
53 changes: 36 additions & 17 deletions trame_client/widgets/core.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,27 @@
from ..utils.defaults import TrameDefault
from ..utils.formatter import to_pretty_html

AVAILABLE_DIRECTIVES = [
("v_text", "v-text"),
("v_html", "v-html"),
("v_show", "v-show"),
("v_if", "v-if"),
("v_else", "v-else"),
("v_else_if", "v-else-if"),
("v_for", "v-for"),
("v_on", "v-on"),
("v_bind", "v-bind"),
("v_model", "v-model"),
("v_model_lazy", "v-model.lazy"),
("v_model_number", "v-model.number"),
("v_model_trim", "v-model.trim"),
("v_slot", "v-slot"),
("v_pre", "v-pre"),
("v_once", "v-once"),
("v_memo", "v-memo"),
("v_cloak", "v-cloak"),
]

SHARED_ATTRIBUTES = [
"accesskey",
"autocapitalize",
Expand Down Expand Up @@ -30,22 +51,6 @@
# --
"ref",
["key", ":key"],
["v_on", "v-on"],
["v_bind", "v-bind"],
["v_slot", "v-slot"],
"v_text",
"v_html",
"v_show",
"v_if",
"v_else",
"v_else_if",
"v_for",
"v_model",
["v_model_lazy", "v-model.lazy"],
["v_model_number", "v-model.number"],
["v_model_trim", "v-model.trim"],
"v_pre",
"v_once",
]

SHARED_EVENTS = [
Expand Down Expand Up @@ -262,7 +267,9 @@ def __init__(self, _elem_name, children=None, **kwargs):
self._server = kwargs.get("trame_server")
self._elem_name = _elem_name
self._allowed_keys = set()
self._attr_names = kwargs.get("__properties", []) + SHARED_ATTRIBUTES
self._attr_names = (
kwargs.get("__properties", []) + SHARED_ATTRIBUTES + AVAILABLE_DIRECTIVES
)
self._event_names = kwargs.get("__events", []) + SHARED_EVENTS

self._attributes = {}
Expand Down Expand Up @@ -290,6 +297,18 @@ def _update_allowed_keys(self):
else:
self._allowed_keys.add(item[0])

# -------------------------------------------------------------------------
# Static helper for widgets
# -------------------------------------------------------------------------

@staticmethod
def register_directive(py_name, js_name=None):
global AVAILABLE_DIRECTIVES
if js_name is None:
AVAILABLE_DIRECTIVES.append(py_name)
else:
AVAILABLE_DIRECTIVES.append((py_name, js_name))

# -------------------------------------------------------------------------
# App associated to HTML element
# -------------------------------------------------------------------------
Expand Down

0 comments on commit e2add71

Please sign in to comment.