init
This commit is contained in:
62
resource/render/display.py
Normal file
62
resource/render/display.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from ..types import Optional, Sequence, Union
|
||||
|
||||
|
||||
class HTML:
|
||||
def __init__(self, data: Optional[str] = None):
|
||||
self.data = data
|
||||
|
||||
def _repr_html_(self):
|
||||
return self.data
|
||||
|
||||
def __html__(self):
|
||||
return self._repr_html_()
|
||||
|
||||
|
||||
_lib_t1 = """new Promise(function(resolve, reject) {
|
||||
var script = document.createElement("script");
|
||||
script.onload = resolve;
|
||||
script.onerror = reject;
|
||||
script.src = "%s";
|
||||
document.head.appendChild(script);
|
||||
}).then(() => {
|
||||
"""
|
||||
|
||||
_lib_t2 = """
|
||||
});"""
|
||||
|
||||
_css_t = """var link = document.createElement("link");
|
||||
link.ref = "stylesheet";
|
||||
link.type = "text/css";
|
||||
link.href = "%s";
|
||||
document.head.appendChild(link);
|
||||
"""
|
||||
|
||||
|
||||
class Javascript:
|
||||
def __init__(
|
||||
self,
|
||||
data: Optional[str] = None,
|
||||
lib: Optional[Union[str, Sequence]] = None,
|
||||
css: Optional[Union[str, Sequence]] = None,
|
||||
):
|
||||
if isinstance(lib, str):
|
||||
lib = [lib]
|
||||
elif lib is None:
|
||||
lib = []
|
||||
if isinstance(css, str):
|
||||
css = [css]
|
||||
elif css is None:
|
||||
css = []
|
||||
self.lib = lib
|
||||
self.css = css
|
||||
self.data = data or ""
|
||||
|
||||
def _repr_javascript_(self):
|
||||
r = ""
|
||||
for c in self.css:
|
||||
r += _css_t % c
|
||||
for d in self.lib:
|
||||
r += _lib_t1 % d
|
||||
r += self.data
|
||||
r += _lib_t2 * len(self.lib)
|
||||
return r
|
||||
Reference in New Issue
Block a user