Skip to content

Commit 7c71ba6

Browse files
committed
add margin to widgets and add item template to PyList
1 parent 40c58c3 commit 7c71ba6

File tree

3 files changed

+58
-53
lines changed

3 files changed

+58
-53
lines changed

pyscriptjs/src/components/pybox.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export class PyBox extends HTMLElement {
1919

2020
connectedCallback() {
2121
let mainDiv = document.createElement('div');
22-
addClasses(mainDiv, ["flex"])
22+
addClasses(mainDiv, ["flex", "mx-8"])
2323

2424
// Hack: for some reason when moving children, the editor box duplicates children
2525
// meaning that we end up with 2 editors, if there's a <py-repl> inside the <py-box>

pyscriptjs/src/components/pyrepl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ export class PyRepl extends BaseEvalElement {
9898
})
9999

100100
let mainDiv = document.createElement('div');
101-
addClasses(mainDiv, ["parentBox", "group", "flex", "flex-col", "mt-2", "border-2", "border-gray-200", "rounded-lg"])
101+
addClasses(mainDiv, ["parentBox", "group", "flex", "flex-col", "mt-2", "border-2", "border-gray-200", "rounded-lg", "mx-8"])
102102
// add Editor to main PyScript div
103103

104104
// Butons DIV

pyscriptjs/src/interpreter.ts

Lines changed: 56 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ def create(what, id_=None, classes=''):
130130
add_classes(element, classes)
131131
return Element(id_, element)
132132
133+
133134
class PyWidgetTheme:
134135
def __init__(self, main_style_classes):
135136
self.main_style_classes = main_style_classes
@@ -139,57 +140,6 @@ class PyWidgetTheme:
139140
widget.classList.add(klass)
140141
141142
142-
class PyListTemplate:
143-
theme = PyWidgetTheme("flex flex-col-reverse mt-8 mx-4")
144-
145-
146-
def __init__(self, parent):
147-
self.parent = parent
148-
self._children = []
149-
self._id = self.parent.id
150-
151-
@property
152-
def children(self):
153-
return self._children
154-
155-
@property
156-
def data(self):
157-
return [c.data for c in self._children]
158-
159-
def render_children(self):
160-
return [c.element.innerHTML.replace("\\n", "") for c in self._children]
161-
162-
def connect(self):
163-
self.md = main_div = document.createElement('div');
164-
main_div.id = self._id + "-list-tasks-container"
165-
166-
if self.theme:
167-
self.theme.theme_it(main_div)
168-
169-
self.parent.appendChild(main_div)
170-
171-
def add(self, child):
172-
child.register_parent(self)
173-
return self._add(child)
174-
175-
def _add(self, child_elem):
176-
console.log("appending child", child_elem.element)
177-
self.pre_child_append(child_elem)
178-
child_elem.pre_append()
179-
self._children.append(child_elem)
180-
self.md.appendChild(child_elem.create().element)
181-
child_elem.post_append()
182-
self.child_appended(child_elem)
183-
return child_elem
184-
185-
def pre_child_append(self, child):
186-
pass
187-
188-
def child_appended(self, child):
189-
"""Overwrite me to define logic"""
190-
pass
191-
192-
193143
class PyItemTemplate(Element):
194144
label_fields = None
195145
@@ -253,6 +203,61 @@ class PyItemTemplate(Element):
253203
254204
def render_content(self):
255205
return ' - '.join([self.data[f] for f in self.labels])
206+
207+
class PyListTemplate:
208+
theme = PyWidgetTheme("flex flex-col-reverse mt-8 mx-8")
209+
item_class = PyItemTemplate
210+
211+
def __init__(self, parent):
212+
self.parent = parent
213+
self._children = []
214+
self._id = self.parent.id
215+
216+
@property
217+
def children(self):
218+
return self._children
219+
220+
@property
221+
def data(self):
222+
return [c.data for c in self._children]
223+
224+
def render_children(self):
225+
return [c.element.innerHTML.replace("\\n", "") for c in self._children]
226+
227+
def connect(self):
228+
self.md = main_div = document.createElement('div');
229+
main_div.id = self._id + "-list-tasks-container"
230+
231+
if self.theme:
232+
self.theme.theme_it(main_div)
233+
234+
self.parent.appendChild(main_div)
235+
236+
def add(self, *args, **kws):
237+
if not isinstance(args[0], self.item_class):
238+
child = self.item_class(*args, **kws)
239+
else:
240+
child = args[0]
241+
child.register_parent(self)
242+
return self._add(child)
243+
244+
def _add(self, child_elem):
245+
console.log("appending child", child_elem.element)
246+
self.pre_child_append(child_elem)
247+
child_elem.pre_append()
248+
self._children.append(child_elem)
249+
self.md.appendChild(child_elem.create().element)
250+
child_elem.post_append()
251+
self.child_appended(child_elem)
252+
return child_elem
253+
254+
def pre_child_append(self, child):
255+
pass
256+
257+
def child_appended(self, child):
258+
"""Overwrite me to define logic"""
259+
pass
260+
256261
257262
258263
class OutputCtxManager:

0 commit comments

Comments
 (0)