Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita6d0031

Browse files
committed
add PyListTemplate and PyItemTemplate so that classes implementing list and list item widgets can subclass from it and hide complexity to users
1 parent280fd53 commita6d0031

File tree

3 files changed

+63
-13
lines changed

3 files changed

+63
-13
lines changed

‎pyscriptjs/examples/pylist.py

Lines changed: 60 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,19 @@ def create(what, id_=None, classes=''):
1414
add_classes(element,classes)
1515
returnElement(id_,element)
1616

17+
classPyWidgetTheme:
18+
def__init__(self,main_style_classes):
19+
self.main_style_classes=main_style_classes
20+
21+
deftheme_it(self,widget):
22+
forklassinself.main_style_classes.split(' '):
23+
widget.classList.add(klass)
24+
25+
26+
classPyListTemplate:
27+
theme=PyWidgetTheme("flex flex-col-reverse mt-4")
28+
1729

18-
classPyList:
1930
def__init__(self,parent):
2031
self.parent=parent
2132
self._children= []
@@ -25,8 +36,8 @@ def connect(self):
2536
self.md=main_div=document.createElement('div');
2637
main_div.id=self.id+"-list-tasks-container"
2738

28-
forklassin"flex flex-col-reverse mt-4".split(' '):
29-
main_div.classList.add(klass)
39+
ifself.theme:
40+
self.theme.theme_it(main_div)
3041

3142
self.parent.appendChild(main_div)
3243

@@ -35,12 +46,24 @@ def add(self, data, labels):
3546
returnself._add(child)
3647

3748
def_add(self,child_elem):
38-
self._children.append(child_elem)
3949
console.log("appending child",child_elem.element)
50+
self.pre_child_append(child_elem)
51+
child_elem.pre_append()
52+
self._children.append(child_elem)
4053
self.md.appendChild(child_elem.create().element)
54+
child_elem.post_append()
55+
self.child_appended(child_elem)
4156
returnchild_elem
4257

43-
classPyItem(Element):
58+
defpre_child_append(self,child):
59+
pass
60+
61+
defchild_appended(self,child):
62+
"""Overwrite me to define logic"""
63+
pass
64+
65+
66+
classPyItemTemplate(Element):
4467
def__init__(self,parent,data,labels):
4568
self._parent=parent
4669
self.id=f"{self._parent.id}-c-{len(self._parent._children)}"
@@ -63,22 +86,48 @@ def create(self):
6386
</label>
6487
"""
6588

66-
check=new_child.select('input').element
67-
check.onclick=self.check_task
89+
#check = new_child.select('input').element
90+
#check.onclick = self.check_task
6891
console.log('returning')
6992
returnnew_child
7093

71-
defcheck_task(self,evt=None):
72-
self.data['done']=notself.data['done']
73-
ifself.data['done']:
94+
defon_click(self,evt):
95+
pass
96+
97+
defpre_append(self):
98+
pass
99+
100+
defpost_append(self):
101+
self.element.click=self.on_click
102+
self.element.onclick=self.on_click
103+
104+
self._post_append()
105+
106+
def_post_append(self):
107+
pass
108+
109+
defstrike(self,value):
110+
ifvalue:
74111
self.add_class("line-through")
75112
else:
76113
self.remove_class("line-through")
114+
77115

116+
classPyList(PyListTemplate):
117+
pass
118+
119+
120+
classPyItem(PyItemTemplate):
121+
defon_click(self,evt=None):
122+
self.data['done']=notself.data['done']
123+
self.strike(self.data['done'])
78124

125+
self.select('input').element.checked=self.data['done']
126+
127+
79128
defadd_task(*ags,**kws):
80129
console.log(new_task_content.value)
81-
console.log('adding',myList)
130+
console.log('adding1',myList)
82131
task= {
83132
"content":new_task_content.value,
84133
"done":False,

‎pyscriptjs/src/App.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
for (let initializerof$postInitializers){
5454
initializer();
5555
}
56-
},5000);
56+
},3000);
5757
5858
}
5959

‎pyscriptjs/src/components/base.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,14 @@ export class BaseEvalElement extends HTMLElement {
176176
}
177177

178178
connectedCallback(){
179-
console.log(this.name,'connected!!!!')
179+
console.log(this.name,'OOOOOOOconnected!!!!')
180180
this.eval(this.code).then(()=>{
181181
this.proxy=this.proxyClass(this);
182182
console.log('proxy',this.proxy);
183183
this.proxy.connect();
184184
this.registerWidget();
185185
});
186+
console.log(this.name,'DOOOOONE connected!!!!')
186187
}
187188

188189
asyncregisterWidget(){

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp