from traitlets import Unicode
|
|
from ipywidgets import DOMWidget
|
|
from ._version import semver
|
|
|
|
|
|
class VueComponent(DOMWidget):
|
|
_model_name = Unicode('VueComponentModel').tag(sync=True)
|
|
_model_module = Unicode('jupyter-vue').tag(sync=True)
|
|
_model_module_version = Unicode(semver).tag(sync=True)
|
|
|
|
name = Unicode().tag(sync=True)
|
|
component = Unicode().tag(sync=True)
|
|
|
|
|
|
vue_component_registry = {}
|
|
|
|
|
|
def register_component_from_string(name, value):
|
|
components = vue_component_registry
|
|
|
|
if name in components.keys():
|
|
comp = components[name]
|
|
comp.component = value
|
|
else:
|
|
comp = VueComponent(name=name, component=value)
|
|
components[name] = comp
|
|
|
|
|
|
def register_component_from_file(self, name, file_name):
|
|
with open(file_name) as f:
|
|
register_component_from_string(name, f.read())
|
|
|
|
|
|
__all__ = ['VueComponent', 'register_component_from_string', 'register_component_from_file']
|