ex4nicegui 0.3.2__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. ex4nicegui/__init__.py +1 -1
  2. ex4nicegui/bi/dataSource.py +4 -4
  3. ex4nicegui/bi/elements/ui_aggrid.py +1 -7
  4. ex4nicegui/bi/elements/ui_echarts.py +5 -9
  5. ex4nicegui/reactive/EChartsComponent/ECharts.js +44 -43982
  6. ex4nicegui/reactive/EChartsComponent/ECharts.py +69 -30
  7. ex4nicegui/reactive/__index.py +1 -0
  8. ex4nicegui/reactive/libs/__init__.py +0 -0
  9. ex4nicegui/reactive/libs/d3/__init__.py +0 -0
  10. ex4nicegui/reactive/libs/d3/d3-color.ems.js +7 -0
  11. ex4nicegui/reactive/libs/d3/d3-dispatch.ems.js +7 -0
  12. ex4nicegui/reactive/libs/d3/d3-drag.ems.js +7 -0
  13. ex4nicegui/reactive/libs/d3/d3-ease.ems.js +7 -0
  14. ex4nicegui/reactive/libs/d3/d3-interpolate.ems.js +7 -0
  15. ex4nicegui/reactive/libs/d3/d3-selection.ems.js +7 -0
  16. ex4nicegui/reactive/libs/d3/d3-timer.ems.js +7 -0
  17. ex4nicegui/reactive/libs/d3/d3-transition.ems.js +7 -0
  18. ex4nicegui/reactive/libs/d3/d3-zoom.ems.js +7 -0
  19. ex4nicegui/reactive/mermaid/__init__.py +0 -0
  20. ex4nicegui/reactive/mermaid/mermaid.js +75 -0
  21. ex4nicegui/reactive/mermaid/mermaid.py +64 -0
  22. ex4nicegui/reactive/officials/base.py +2 -1
  23. ex4nicegui/reactive/officials/checkbox.py +2 -1
  24. ex4nicegui/reactive/officials/date.py +2 -1
  25. ex4nicegui/reactive/officials/echarts.py +102 -5
  26. ex4nicegui/reactive/officials/input.py +2 -1
  27. ex4nicegui/reactive/officials/label.py +2 -2
  28. ex4nicegui/reactive/officials/radio.py +2 -1
  29. ex4nicegui/reactive/officials/select.py +3 -10
  30. ex4nicegui/reactive/officials/slider.py +2 -1
  31. ex4nicegui/reactive/officials/switch.py +2 -1
  32. ex4nicegui/reactive/officials/table.py +7 -10
  33. ex4nicegui/reactive/officials/textarea.py +2 -1
  34. ex4nicegui/utils/clientScope.py +3 -3
  35. {ex4nicegui-0.3.2.dist-info → ex4nicegui-0.4.0.dist-info}/METADATA +2 -2
  36. {ex4nicegui-0.3.2.dist-info → ex4nicegui-0.4.0.dist-info}/RECORD +39 -25
  37. {ex4nicegui-0.3.2.dist-info → ex4nicegui-0.4.0.dist-info}/LICENSE +0 -0
  38. {ex4nicegui-0.3.2.dist-info → ex4nicegui-0.4.0.dist-info}/WHEEL +0 -0
  39. {ex4nicegui-0.3.2.dist-info → ex4nicegui-0.4.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,5 @@
1
- from typing import Dict, cast, Optional
1
+ from typing import Any, Callable, Dict, List, Union, cast, Optional
2
+ from typing_extensions import Literal
2
3
  from signe import effect
3
4
  from ex4nicegui.utils.signals import (
4
5
  ReadonlyRef,
@@ -11,11 +12,26 @@ from .base import BindableUi
11
12
  from .utils import _convert_kws_ref2value
12
13
  from ex4nicegui.reactive.EChartsComponent.ECharts import (
13
14
  echarts,
14
- EChartsClickEventArguments,
15
+ EChartsMouseEventArguments,
15
16
  )
16
17
 
17
18
 
19
+ _TEventName = Literal[
20
+ "click",
21
+ "dblclick",
22
+ "mousedown",
23
+ "mousemove",
24
+ "mouseup",
25
+ "mouseover",
26
+ "mouseout",
27
+ "globalout",
28
+ "contextmenu",
29
+ ]
30
+
31
+
18
32
  class EChartsBindableUi(BindableUi[echarts]):
33
+ EChartsMouseEventArguments = EChartsMouseEventArguments
34
+
19
35
  def __init__(
20
36
  self,
21
37
  options: TMaybeRef[Dict],
@@ -30,12 +46,13 @@ class EChartsBindableUi(BindableUi[echarts]):
30
46
 
31
47
  super().__init__(element)
32
48
 
33
- self.__click_info_ref = to_ref(cast(Optional[EChartsClickEventArguments], None))
49
+ self.__click_info_ref = to_ref(cast(Optional[EChartsMouseEventArguments], None))
34
50
 
35
- @element.on_chart_click
36
- def _(e: EChartsClickEventArguments):
51
+ def on_chart_click(e: EChartsMouseEventArguments):
37
52
  self.__click_info_ref.value = e
38
53
 
54
+ self.on("click", on_chart_click)
55
+
39
56
  for key, value in kws.items():
40
57
  if is_ref(value):
41
58
  self.bind_prop(key, value) # type: ignore
@@ -80,3 +97,83 @@ class EChartsBindableUi(BindableUi[echarts]):
80
97
  ele.update()
81
98
 
82
99
  return self
100
+
101
+ def on(
102
+ self,
103
+ event_name: _TEventName,
104
+ handler: Callable[..., Any],
105
+ query: Optional[Union[str, Dict]] = None,
106
+ ):
107
+ """echart instance event on.
108
+
109
+ [English Documentation](https://echarts.apache.org/handbook/en/concepts/event/)
110
+
111
+ [中文文档](https://echarts.apache.org/handbook/zh/concepts/event/)
112
+
113
+
114
+ Args:
115
+ event_name (_TEventName): general mouse events name.`'click', 'dblclick', 'mousedown', 'mousemove', 'mouseup', 'mouseover', 'mouseout', 'globalout', 'contextmenu'`
116
+ handler (Callable[..., Any]): event callback
117
+ query (Optional[Union[str,Dict]], optional): trigger callback of the specified component. Defaults to None.
118
+
119
+ ## Examples
120
+
121
+ ---
122
+
123
+ ### click event:
124
+ ```python
125
+ bar = rxui.echarts(opts)
126
+
127
+ def on_click(e):
128
+ ui.notify(f"on_click:{e}")
129
+
130
+ bar.on("click", on_click)
131
+ ```
132
+
133
+ ---
134
+
135
+ ### Use query to trigger callback of the specified component:
136
+
137
+ ```python
138
+ ...
139
+ def on_line_click(e):
140
+ ui.notify(e)
141
+
142
+ bar.on("click", on_line_click,query='series.line')
143
+ ```
144
+
145
+ ---
146
+ ### only trigger for specified series
147
+ ```python
148
+
149
+ opts = {
150
+ "xAxis": {"type": "value", "boundaryGap": [0, 0.01]},
151
+ "yAxis": {
152
+ "type": "category",
153
+ "data": ["Brazil", "Indonesia", "USA", "India", "China", "World"],
154
+ },
155
+ "series": [
156
+ {
157
+ "name": "first",
158
+ "type": "bar",
159
+ "data": [18203, 23489, 29034, 104970, 131744, 630230],
160
+ },
161
+ {
162
+ "name": "second",
163
+ "type": "bar",
164
+ "data": [19325, 23438, 31000, 121594, 134141, 681807],
165
+ },
166
+ ],
167
+ }
168
+
169
+ bar = rxui.echarts(opts)
170
+
171
+ def on_first_series_mouseover(e):
172
+ ui.notify(f"on_first_series_mouseover:{e}")
173
+
174
+ bar.on("mouseover", on_first_series_mouseover, query={"seriesName": "first"})
175
+ ```
176
+
177
+ ---
178
+ """
179
+ self.element.echarts_on(event_name, handler, query)
@@ -73,7 +73,8 @@ class InputBindableUi(SingleValueBindableUi[str, ui.input]):
73
73
  def bind_value(self, ref_ui: ReadonlyRef[bool]):
74
74
  @effect
75
75
  def _():
76
- self.element.on_value_change(ref_ui.value)
76
+ self.element.set_value(ref_ui.value)
77
+ self.element.update()
77
78
 
78
79
  return self
79
80
 
@@ -61,7 +61,7 @@ class LabelBindableUi(SingleValueBindableUi[str, ui.label]):
61
61
  def bind_text(self, ref_ui: ReadonlyRef):
62
62
  @effect
63
63
  def _():
64
- self.element.on_text_change(str(ref_ui.value))
65
- # self.element.update()
64
+ self.element.set_text(str(ref_ui.value))
65
+ self.element.update()
66
66
 
67
67
  return self
@@ -80,6 +80,7 @@ class RadioBindableUi(SingleValueBindableUi[bool, ui.radio]):
80
80
  def bind_value(self, ref_ui: ReadonlyRef):
81
81
  @effect
82
82
  def _():
83
- cast(ValueElement, self.element).on_value_change(ref_ui.value)
83
+ cast(ValueElement, self.element).set_value(ref_ui.value)
84
+ self.element.update()
84
85
 
85
86
  return self
@@ -26,15 +26,7 @@ class SelectBindableUi(SingleValueBindableUi[T, ui.select]):
26
26
  @staticmethod
27
27
  def _setup_(binder: "SelectBindableUi"):
28
28
  def onValueChanged(e):
29
- if e.args is None:
30
- binder._ref.value = ""
31
- else:
32
- opts_values = (
33
- list(binder.element.options.keys())
34
- if isinstance(binder.element.options, Dict)
35
- else binder.element.options
36
- )
37
- binder._ref.value = opts_values[e.args["value"]] # type: ignore
29
+ binder._ref.value = binder.element._event_args_to_value(e) # type: ignore
38
30
 
39
31
  @effect
40
32
  def _():
@@ -108,6 +100,7 @@ class SelectBindableUi(SingleValueBindableUi[T, ui.select]):
108
100
  def bind_value(self, ref_ui: ReadonlyRef):
109
101
  @effect
110
102
  def _():
111
- cast(ValueElement, self.element).on_value_change(ref_ui.value)
103
+ cast(ValueElement, self.element).set_value(ref_ui.value)
104
+ self.element.update()
112
105
 
113
106
  return self
@@ -68,7 +68,8 @@ class SliderBindableUi(SingleValueBindableUi[Optional[_TSliderValue], ui.slider]
68
68
  def bind_value(self, ref_ui: ReadonlyRef[float]):
69
69
  @effect
70
70
  def _():
71
- self.element.on_value_change(ref_ui.value)
71
+ self.element.set_value(ref_ui.value)
72
+ self.element.update()
72
73
 
73
74
  return self
74
75
 
@@ -67,6 +67,7 @@ class SwitchBindableUi(SingleValueBindableUi[bool, ui.switch]):
67
67
  def bind_value(self, ref_ui: ReadonlyRef[bool]):
68
68
  @effect
69
69
  def _():
70
- self.element.on_value_change(ref_ui.value)
70
+ self.element.set_value(ref_ui.value)
71
+ self.element.update()
71
72
 
72
73
  return self
@@ -60,19 +60,16 @@ class TableBindableUi(BindableUi[ui.table]):
60
60
 
61
61
  self._arg_selection = selection
62
62
  self._arg_row_key = row_key
63
- self._selection_ref: Optional[ReadonlyRef[List[Any]]] = None
63
+ self._selection_ref: ReadonlyRef[List[Any]] = to_ref([])
64
64
 
65
- @property
66
- def selection_ref(self):
67
- if self._selection_ref is None:
68
- self._selection_ref = to_ref([])
69
-
70
- def on_select(_):
71
- self._selection_ref.value = self.element.selected # type: ignore
65
+ def on_select(_):
66
+ self._selection_ref.value = self.element.selected # type: ignore
72
67
 
73
- self.element.on("selection", on_select)
68
+ self.element.on("selection", on_select)
74
69
 
75
- return cast(ReadonlyRef[List[Any]], self._selection_ref)
70
+ @property
71
+ def selection_ref(self):
72
+ return self._selection_ref
76
73
 
77
74
  @staticmethod
78
75
  def from_pandas(
@@ -66,7 +66,8 @@ class TextareaBindableUi(SingleValueBindableUi[str, ui.textarea]):
66
66
  def bind_value(self, ref_ui: ReadonlyRef[bool]):
67
67
  @effect
68
68
  def _():
69
- self.element.on_value_change(ref_ui.value)
69
+ self.element.set_value(ref_ui.value)
70
+ self.element.update()
70
71
 
71
72
  return self
72
73
 
@@ -1,7 +1,7 @@
1
1
  from typing import Dict, List
2
2
  from signe.core.effect import Effect
3
3
  from signe.core.scope import IScope
4
- from nicegui import globals as ng_globals, Client
4
+ from nicegui import Client, context as ng_context
5
5
 
6
6
 
7
7
  _TClientID = str
@@ -24,10 +24,10 @@ class NgClientScopeManager:
24
24
  self._client_scope_map: Dict[_TClientID, NgClientScope] = {}
25
25
 
26
26
  def get_scope(self):
27
- if len(ng_globals.get_slot_stack()) <= 0:
27
+ if len(ng_context.get_slot_stack()) <= 0:
28
28
  return
29
29
 
30
- client = ng_globals.get_client()
30
+ client = ng_context.get_client()
31
31
  if client.shared:
32
32
  return
33
33
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ex4nicegui
3
- Version: 0.3.2
3
+ Version: 0.4.0
4
4
  Summary: ...
5
5
  Home-page:
6
6
  Author: carson_jia
@@ -14,6 +14,6 @@ Classifier: Programming Language :: Python :: 3.8
14
14
  Requires-Python: >=3.8
15
15
  License-File: LICENSE
16
16
  Requires-Dist: signe (>=0.2.4)
17
- Requires-Dist: nicegui (>=1.3.13)
17
+ Requires-Dist: nicegui (>=1.4.0)
18
18
  Requires-Dist: typing-extensions
19
19
 
@@ -1,6 +1,6 @@
1
- ex4nicegui/__init__.py,sha256=aiBiLT05b7SJVJyCkOUCBdJfBEKD9-tdlOoCOfIG7QA,396
1
+ ex4nicegui/__init__.py,sha256=S9btc6GeGpWxQWvWpbg6QUWnVnGzg4hbREfCL3DHb6A,396
2
2
  ex4nicegui/bi/__init__.py,sha256=eu-2CuzzrcHCyKQOfoo87v6C9nSwFDdeLhjY0cRV13M,315
3
- ex4nicegui/bi/dataSource.py,sha256=SJyYySHZBjzQnPW8x3P3sSHaKlzB21spkbw9DM8Sfgs,6212
3
+ ex4nicegui/bi/dataSource.py,sha256=Ezu-kg2UayVJ8CVBegn8AIowvk7MV34nzuRBSsMauPM,6212
4
4
  ex4nicegui/bi/dataSourceFacade.py,sha256=RyglhsZVJT7qBTqER5kuQ7qKhMHrlo8oSybM6VtLR70,4786
5
5
  ex4nicegui/bi/index.py,sha256=Zuo8V_7IZnayo8vxEMFbx-BkZTkEca-QhHVrmVTHjuc,1883
6
6
  ex4nicegui/bi/protocols.py,sha256=RNEXeV30rFdM8RTxLzyPp37JcbZCqJuJoPZCyMczLOA,4736
@@ -10,10 +10,10 @@ ex4nicegui/bi/elements/containers.py,sha256=5a9ZkzyVNLnK7DftDYdbVRo0bQFvuMHRI9LB
10
10
  ex4nicegui/bi/elements/layouts.py,sha256=teb0Vp-fgsByBNPTiW73kXEu2JponRRj4QQanaalcA0,898
11
11
  ex4nicegui/bi/elements/models.py,sha256=l1sEeapYsub2Cgm8X6Mb3pBhim6JyV-N6MD53CuXnRQ,1436
12
12
  ex4nicegui/bi/elements/text.py,sha256=vZYD0vplZIq2Wjdhv0e2NGuSch4y0zrvflndQnCE9DQ,801
13
- ex4nicegui/bi/elements/ui_aggrid.py,sha256=lS01HhwdpDlt_4sI8WOiDS_FVPI5dDj8r8UuaVZR3sk,1390
13
+ ex4nicegui/bi/elements/ui_aggrid.py,sha256=zfP5gbFL_MvTWMxDVzvXjqJeG9w4eJnbIXHRdm8rC8M,1170
14
14
  ex4nicegui/bi/elements/ui_date_picker.js,sha256=Tk6NACKVsCnqhWZtuNA6Xt2e-AWI54AnjfHPIldaM5A,852
15
15
  ex4nicegui/bi/elements/ui_date_picker.py,sha256=UfUioMmVQyZMzp_hZLQi96xbP0Hk1UGRRQUL1p8r8H0,2238
16
- ex4nicegui/bi/elements/ui_echarts.py,sha256=YvUmYD0LbdAOVvGS-KVzM6aGj7cQUkvyDXEsVqZfyyc,2358
16
+ ex4nicegui/bi/elements/ui_echarts.py,sha256=Cr3KPVy1DHvrRZRs6qxN5enRgnc1sUYhld9zoMuNf2A,2305
17
17
  ex4nicegui/bi/elements/ui_radio.py,sha256=8qJoml1WgLETdc_SIIPsJ4Z5xNV340g-pIhSn7vga4I,1788
18
18
  ex4nicegui/bi/elements/ui_range.py,sha256=aYAl4Z78GbPSPHamjlO8mE96GCeF_IWrOm4Z2IxPPgM,3750
19
19
  ex4nicegui/bi/elements/ui_select.py,sha256=ZpFCGXag374Z78quGu7kqTRJO2CxViiUWsxy6DAPaq4,3171
@@ -29,7 +29,7 @@ ex4nicegui/layout/gridFlex/utils.py,sha256=hBuusveBRaHSubIr2q38AP033-VtXDFE_fDzZ
29
29
  ex4nicegui/layout/rxFlex/__init__.py,sha256=dllXV6cri1oOZkOCGJpI9AlUjIZ3oB99ckLIYRW8faM,38
30
30
  ex4nicegui/layout/rxFlex/index.py,sha256=XeAsxfy35RJBE2g2WGzKgskf43K4We0d2mBzWb0kbB8,3509
31
31
  ex4nicegui/layout/rxFlex/types.py,sha256=OQBo3kkmtXhMo3BDI0GjX36HPJLDV1Cm67hPZGb1k2Q,1411
32
- ex4nicegui/reactive/__index.py,sha256=OaN_mD2TJORxqTzh2JeKAqaOhIBqM5cBnm21RqKt7PQ,451
32
+ ex4nicegui/reactive/__index.py,sha256=Y0CjLGwrb867rBWk0yNcZVQUvkrzZ0YUpBC8a8JkkuM,500
33
33
  ex4nicegui/reactive/__init__.py,sha256=NZUgvItxqqgzHKrt4oGZnxxV9dlEudGiv4J3fhJdvdQ,24
34
34
  ex4nicegui/reactive/drawer.py,sha256=NWMq2gnalpYAU8tT0DwGN5l8n7fuMxTIWxOfr2QvFIA,1356
35
35
  ex4nicegui/reactive/fileWatcher.py,sha256=elocr0CKrdqxhrtAwgw8qaomdL0tSPIHtJHvRs1vi-I,1477
@@ -37,8 +37,8 @@ ex4nicegui/reactive/local_file_picker.py,sha256=DWNzm_IP02sY-nZWN6WEWJxlwpABW6tN
37
37
  ex4nicegui/reactive/q_pagination.py,sha256=ITXBrjLnI1a5bz3Rbn7j8lZs9UJaFuMHrM9_FW_V7NA,1217
38
38
  ex4nicegui/reactive/rxui.py,sha256=NZUgvItxqqgzHKrt4oGZnxxV9dlEudGiv4J3fhJdvdQ,24
39
39
  ex4nicegui/reactive/usePagination.py,sha256=IP1NeLxaH3413KTEjtbyuzq0FVdtnKQsTZqM-W7iEgY,2468
40
- ex4nicegui/reactive/EChartsComponent/ECharts.js,sha256=qj3HUngg-pcTjNDCiz7jgz-O2Lx3aW0HhvrcsDEb0a0,1581667
41
- ex4nicegui/reactive/EChartsComponent/ECharts.py,sha256=J3Vl8h-u__z2iIVtHL-PYWmrqRAB9caMCI50h8nEdCo,3010
40
+ ex4nicegui/reactive/EChartsComponent/ECharts.js,sha256=zRGimuINdBLzKDFKv01EpTPxdXQX0gIkiaaUPM2hGtw,1414
41
+ ex4nicegui/reactive/EChartsComponent/ECharts.py,sha256=rgAPK2TNSRJDUkQ24WJQPjrIKW8HkCgW1KLBUon8Z9g,4152
42
42
  ex4nicegui/reactive/EChartsComponent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  ex4nicegui/reactive/UseDraggable/UseDraggable.js,sha256=D2_4c64qYwkqG_JzL1ZAwoNZDoz6qtHfPA_Z5RIvmIw,5235
44
44
  ex4nicegui/reactive/UseDraggable/UseDraggable.py,sha256=ii9KGchUWUb0L_PiMQ3qkBmk98IxTfUg9DU7rT9FqXY,3509
@@ -46,32 +46,46 @@ ex4nicegui/reactive/UseDraggable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
46
46
  ex4nicegui/reactive/dropZone/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  ex4nicegui/reactive/dropZone/dropZone.js,sha256=7rSpFJX-Fk_W_NGZhOTyuEw0bzR-YUc8ZYPzQG9KzE0,2713
48
48
  ex4nicegui/reactive/dropZone/dropZone.py,sha256=hg9UKTayff8v8Ek-n38h_3wX1Qmiotvdyv1Hsqilh5Y,2590
49
+ ex4nicegui/reactive/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ ex4nicegui/reactive/libs/d3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ ex4nicegui/reactive/libs/d3/d3-color.ems.js,sha256=T5CGL4AfswR83_7iy3bckY_swtB6zPeFpBlXlM_E4dM,12795
52
+ ex4nicegui/reactive/libs/d3/d3-dispatch.ems.js,sha256=1DvNF4G8c_5IMM6ORpUIweBBMOSa0YvR13gkpbLauEU,2148
53
+ ex4nicegui/reactive/libs/d3/d3-drag.ems.js,sha256=Q0FfwedEc1FVRv-EwIlV7aJsImnzRYKVKymKiPA8D08,4822
54
+ ex4nicegui/reactive/libs/d3/d3-ease.ems.js,sha256=D-Du8VVDBlMCP0LWaB0mw77vuCYMJOlZjm0alXTCp4w,3883
55
+ ex4nicegui/reactive/libs/d3/d3-interpolate.ems.js,sha256=wFhUbphelUBVye9TN-7jr-KFJYwPvIJOHIZGVuK2Xqg,9903
56
+ ex4nicegui/reactive/libs/d3/d3-selection.ems.js,sha256=_8j6eHkhpnEBrXj2QPqw42EYNHBrJEQ6vGVxxR5u6v8,16007
57
+ ex4nicegui/reactive/libs/d3/d3-timer.ems.js,sha256=3qORYuBkFKrqKQKastbcW5RieGc3o2zypRuQ2GqHVX4,2320
58
+ ex4nicegui/reactive/libs/d3/d3-transition.ems.js,sha256=AXOV8uptby8hVfOabGwGXRsI8f-U2lHT7szmhya74mk,14024
59
+ ex4nicegui/reactive/libs/d3/d3-zoom.ems.js,sha256=It5XGvRB3NAtiDi1m84BDxLicw-7i_oFhctc79zfXpk,11599
60
+ ex4nicegui/reactive/mermaid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
+ ex4nicegui/reactive/mermaid/mermaid.js,sha256=bDt_Qz1sjBn002KN1QuHwtaUV-BRt8q8sCbNgk1L6E4,2131
62
+ ex4nicegui/reactive/mermaid/mermaid.py,sha256=6bJHK0hjkHKlGZRi994jj3az7Ym30vmyCelYCE2E5TI,2058
49
63
  ex4nicegui/reactive/officials/__init__.py,sha256=8xPx079EFXpEWtEc1vCbgQJt1TRZuRf91YOaqhkyRIo,1527
50
64
  ex4nicegui/reactive/officials/aggrid.py,sha256=OArj_BTUrD4Y1hxURTJOLeao1lwZ31xc7Ezd_RpEdVY,2408
51
- ex4nicegui/reactive/officials/base.py,sha256=OwJQ52nnVtCR47FZW45ZPZcamHkXtJY1QRiLrS18T6k,4786
65
+ ex4nicegui/reactive/officials/base.py,sha256=ClFhMCOO_1g_GgShIEBy012iJwskqM9Ym0fjH_eVzsY,4819
52
66
  ex4nicegui/reactive/officials/button.py,sha256=mLbPGM7CkoryfPCtOLO1DsyuCU4UQDC9m0tgRy9H_Zc,2251
53
67
  ex4nicegui/reactive/officials/card.py,sha256=8-tBwm3xfVybolQ87i8lAYUpBV6FdaVdeSH6xu0736U,1275
54
- ex4nicegui/reactive/officials/checkbox.py,sha256=Dy4zCqR_uv--EWNEr3eOIpfvO7VE_v-gOdI1o60SRvw,1772
68
+ ex4nicegui/reactive/officials/checkbox.py,sha256=5xUQSgMhdpPPOjiMChhgOFNAyZkDrkPgFOAODgtrP_s,1801
55
69
  ex4nicegui/reactive/officials/color_picker.py,sha256=s6zUBkCAqAnBnoLWS3bXFIqmCK5iLiQv8VdY_x33H7w,2744
56
70
  ex4nicegui/reactive/officials/column.py,sha256=3RLvVKNaDtOb8df4uS3xRfwJJPuH1ndXk_Y4Gry0Tjo,413
57
- ex4nicegui/reactive/officials/date.py,sha256=4muMUxoXwV_OYBoe-ucB5g20msT2zjbiyfGNZbKPdoU,2700
71
+ ex4nicegui/reactive/officials/date.py,sha256=ObwQd09JoBxfAgVYBSE4GHcNUpTLTilb1caLniTY7SI,2729
58
72
  ex4nicegui/reactive/officials/drawer.py,sha256=8g88ppLIepYVG_0qUaZdsakvB3ag6IY_x4fAEgOiyGY,2409
59
- ex4nicegui/reactive/officials/echarts.py,sha256=HmQqzcvIFum6C80_b6IPmLLy-D16l_8y1IaHYFOsylk,2198
73
+ ex4nicegui/reactive/officials/echarts.py,sha256=mD25UcxBnrdChK97duJaP9fVEgRwT8J9HIJ7zCPiU_k,4866
60
74
  ex4nicegui/reactive/officials/expansion.py,sha256=Z2aKsrtUpkO0Z4kO9kPwcu7piBcE_d62OAC2oVDFTGE,1528
61
75
  ex4nicegui/reactive/officials/grid.py,sha256=6brGijR9ZLqOhe5r2w4BF81R8I4kJPZxZVkbQjXwlOU,925
62
76
  ex4nicegui/reactive/officials/html.py,sha256=7CQWKu_t3MdDJX21fTC3xTMAOcg0gKZrKJsaSCpZ0e4,1687
63
77
  ex4nicegui/reactive/officials/icon.py,sha256=NAEPIH-KREMcAszhpd7dOY8uEgrpMxu0Yq5igFTBQZY,1600
64
78
  ex4nicegui/reactive/officials/image.py,sha256=tD5lVxWmQ8i9pFBP1AFqJlFCi2QMPd_SwNXEVxS367A,1440
65
- ex4nicegui/reactive/officials/input.py,sha256=taDseaxPapG4_eyTx3gDPxxexpyrnvX-rOvLupJS08E,3337
66
- ex4nicegui/reactive/officials/label.py,sha256=hxNefNSLWKTbDV3cfyT35dqiQJfZfHkhQFKxCcjQLwY,1756
79
+ ex4nicegui/reactive/officials/input.py,sha256=RfIGJsnstoi-I45D8taMB6Wl_ooQAoJt7RzgqquzHW0,3366
80
+ ex4nicegui/reactive/officials/label.py,sha256=tlcF7-3axsjf64rF1X6eUe5LdHljvik4txTBY6zCYpo,1748
67
81
  ex4nicegui/reactive/officials/number.py,sha256=S2iS0T_iKiA4_Uiq9wFyGWmtuuj2Lm9mPA2uFkFVjpo,2058
68
- ex4nicegui/reactive/officials/radio.py,sha256=H9rLAg983JjRbsqB3r83wagFHS4qtwLtvCOTirJ7WBE,2272
82
+ ex4nicegui/reactive/officials/radio.py,sha256=9vWXELov9AAQqYyC835m9h-vT9ew1QAPzUBcqgj1HrQ,2301
69
83
  ex4nicegui/reactive/officials/row.py,sha256=ZBPITfHbJmAdAWuIZFl2H1XFS9pJam57PJ_zDZWhueE,404
70
- ex4nicegui/reactive/officials/select.py,sha256=rS7bY6zBu0S8i1ydLvcoMQo5cD5EUcDIwsWjKzMKKIg,3498
71
- ex4nicegui/reactive/officials/slider.py,sha256=cBbJb2Wn4v2aZIhr_oKLTs0JDlXyPbtv6KAeVFEQQL8,2607
72
- ex4nicegui/reactive/officials/switch.py,sha256=ercV2teK0NHSMyDSHWIMf3NigHZ1IvbhNXUZwNglKo8,1979
73
- ex4nicegui/reactive/officials/table.py,sha256=CIftSeTVDBT6KMvzanMTXdtyaYH8yJyHAczdzr32Ssg,5455
74
- ex4nicegui/reactive/officials/textarea.py,sha256=gXa1rZB83n5AN8Uy8IvFGjKrTQZ-3bXlgkBqe6_xP2A,2728
84
+ ex4nicegui/reactive/officials/select.py,sha256=B4e4IbkKh4uyQ_mbSexHd_MFAX0hvSB-q1e9WlNMDto,3219
85
+ ex4nicegui/reactive/officials/slider.py,sha256=1jaa4JPa4Z8QqK1XhCqvHG7zodEFevCPuK1uNPVG_0M,2636
86
+ ex4nicegui/reactive/officials/switch.py,sha256=6_TZ0SDHwmYCMNCc0rRtlIYF0CpcywAPDDMjNaRrWW0,2008
87
+ ex4nicegui/reactive/officials/table.py,sha256=UJTWOPNEzVY5EnnH3V6QCBUP3SuQY7SYnaGLpd2pE-I,5320
88
+ ex4nicegui/reactive/officials/textarea.py,sha256=0OlBVAOtEQk8lMEMpPgD4RF02hFUNwJBkuQq3nxnRhI,2757
75
89
  ex4nicegui/reactive/officials/upload.py,sha256=uk5qfgGXIV8ThTR7hg5IUdOYRT9iQedogJnrVIK69z0,2337
76
90
  ex4nicegui/reactive/officials/utils.py,sha256=9Kbhw7jFPGRyGQ6jN8GgWg2FISz-Ee4dbZtgK44PTzs,205
77
91
  ex4nicegui/reactive/useMouse/UseMouse.js,sha256=6FjcYozJK5zFwK1kBP8JlfMyTUwKVK3k_0wSdhapaZs,2722
@@ -80,11 +94,11 @@ ex4nicegui/reactive/useMouse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
80
94
  ex4nicegui/tools/__init__.py,sha256=Ue6ATQC9BuQlJEcs2JnuFXZh4DYh9twKc4F7zpIPhjE,40
81
95
  ex4nicegui/tools/debug.py,sha256=HCKlVzhHx5av-983ADgwgMkScKwTreSluLA7uikGYa0,4887
82
96
  ex4nicegui/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- ex4nicegui/utils/clientScope.py,sha256=plgHxcCY1y76bK31u5zfOTX8cnYC1Jlx-N3cAgCY2G4,1143
97
+ ex4nicegui/utils/clientScope.py,sha256=gciC34QDwHlhln8dkS5IJS0YnzHE8grJRp1uFlqlLVA,1143
84
98
  ex4nicegui/utils/common.py,sha256=5fsaOkoj-Ild1LGsInZXra66gJLVoVcZGAIG6YOeM6E,430
85
99
  ex4nicegui/utils/signals.py,sha256=CaQbiQtcOvLEnjImezzIJuOotCmPGr0VW0yXRIOP0XI,6121
86
- ex4nicegui-0.3.2.dist-info/LICENSE,sha256=0KDDElS2dl-HIsWvbpy8ywbLzJMBFzXLev57LnMIZXs,1094
87
- ex4nicegui-0.3.2.dist-info/METADATA,sha256=91GtSYCj3p-WrsYuwMp_fPCDQVMpn-KKBC0FqCDgzmI,514
88
- ex4nicegui-0.3.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
89
- ex4nicegui-0.3.2.dist-info/top_level.txt,sha256=VFwMiO9AFjj5rfLMJwN1ipLRASk9fJXB8tM6DNrpvPQ,11
90
- ex4nicegui-0.3.2.dist-info/RECORD,,
100
+ ex4nicegui-0.4.0.dist-info/LICENSE,sha256=0KDDElS2dl-HIsWvbpy8ywbLzJMBFzXLev57LnMIZXs,1094
101
+ ex4nicegui-0.4.0.dist-info/METADATA,sha256=mXEE-d2biku1TPkkCt4Pc4XW1TEJzNkJMlFEtomCMxE,513
102
+ ex4nicegui-0.4.0.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
103
+ ex4nicegui-0.4.0.dist-info/top_level.txt,sha256=VFwMiO9AFjj5rfLMJwN1ipLRASk9fJXB8tM6DNrpvPQ,11
104
+ ex4nicegui-0.4.0.dist-info/RECORD,,