ex4nicegui 0.2.1__tar.gz → 0.2.3__tar.gz

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 (36) hide show
  1. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/PKG-INFO +1 -1
  2. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/__init__.py +1 -1
  3. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/__index.py +1 -0
  4. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/officials.py +65 -2
  5. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui.egg-info/PKG-INFO +1 -1
  6. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/LICENSE +0 -0
  7. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/README.md +0 -0
  8. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/layout/__init__.py +0 -0
  9. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/layout/gridbox.py +0 -0
  10. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/ECharts/ECharts.js +0 -0
  11. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/ECharts/ECharts.py +0 -0
  12. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/ECharts/__init__.py +0 -0
  13. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/UseDraggable/UseDraggable.js +0 -0
  14. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/UseDraggable/UseDraggable.py +0 -0
  15. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/UseDraggable/__init__.py +0 -0
  16. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/__init__.py +0 -0
  17. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/drawer.py +0 -0
  18. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/local_file_picker.py +0 -0
  19. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/q_pagination.py +0 -0
  20. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/rxui.py +0 -0
  21. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/useMouse/UseMouse.js +0 -0
  22. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/useMouse/UseMouse.py +0 -0
  23. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/useMouse/__init__.py +0 -0
  24. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/reactive/usePagination.py +0 -0
  25. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/tools/__init__.py +0 -0
  26. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/tools/debug.py +0 -0
  27. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/utils/__init__.py +0 -0
  28. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/utils/common.py +0 -0
  29. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui/utils/signals.py +0 -0
  30. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui.egg-info/SOURCES.txt +0 -0
  31. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui.egg-info/dependency_links.txt +0 -0
  32. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui.egg-info/not-zip-safe +0 -0
  33. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui.egg-info/requires.txt +0 -0
  34. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/ex4nicegui.egg-info/top_level.txt +0 -0
  35. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/setup.cfg +0 -0
  36. {ex4nicegui-0.2.1 → ex4nicegui-0.2.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ex4nicegui
3
- Version: 0.2.1
3
+ Version: 0.2.3
4
4
  Summary: ...
5
5
  Home-page:
6
6
  Author: carson_jia
@@ -15,4 +15,4 @@ from ex4nicegui import tools
15
15
  from signe import batch
16
16
 
17
17
 
18
- __version__ = "0.2.1"
18
+ __version__ = "0.2.3"
@@ -26,6 +26,7 @@ from .officials import (
26
26
  UploadBindableUi as upload,
27
27
  UploadResult,
28
28
  DrawerBindableUi as drawer,
29
+ DateBindableUi as date,
29
30
  )
30
31
  from .q_pagination import QPagination as q_pagination
31
32
  from .local_file_picker import local_file_picker
@@ -83,6 +83,10 @@ class BindableUi(Generic[TWidget]):
83
83
  cast(ui.element, self.element).tailwind(*args)
84
84
  return self
85
85
 
86
+ def tooltip(self, text: str) -> Self:
87
+ cast(ui.element, self.element).tooltip(text)
88
+ return self
89
+
86
90
  def add_slot(self, name: str, template: Optional[str] = None):
87
91
  """Add a slot to the element.
88
92
 
@@ -138,6 +142,9 @@ class BindableUi(Generic[TWidget]):
138
142
 
139
143
  return self
140
144
 
145
+ def clear(self) -> None:
146
+ cast(ui.element, self.element).clear()
147
+
141
148
 
142
149
  class SingleValueBindableUi(BindableUi[TWidget], Generic[T, TWidget]):
143
150
  def __init__(self, value: TMaybeRef[T], element: TWidget) -> None:
@@ -338,7 +345,11 @@ class SwitchBindableUi(SingleValueBindableUi[bool, ui.switch]):
338
345
  @staticmethod
339
346
  def _setup_(binder: "SwitchBindableUi"):
340
347
  def onValueChanged(e):
341
- binder._ref.value = e.args # type: ignore
348
+ ele._send_update_on_value_change = ele.LOOPBACK
349
+ cur_value = ele._event_args_to_value(e)
350
+ ele.set_value(cur_value)
351
+ ele._send_update_on_value_change = True
352
+ binder._ref.value = cur_value
342
353
 
343
354
  ele = cast(ValueElement, binder.element)
344
355
 
@@ -346,7 +357,7 @@ class SwitchBindableUi(SingleValueBindableUi[bool, ui.switch]):
346
357
  def _():
347
358
  ele.value = binder.value
348
359
 
349
- ele.on("update:modelValue", handler=onValueChanged)
360
+ ele.on("update:modelValue", onValueChanged, [None], throttle=0) # type: ignore
350
361
 
351
362
  def __init__(
352
363
  self,
@@ -432,6 +443,58 @@ class CheckboxBindableUi(SingleValueBindableUi[bool, ui.checkbox]):
432
443
  return self
433
444
 
434
445
 
446
+ class DateBindableUi(SingleValueBindableUi[Optional[str], ui.date]):
447
+ def __init__(
448
+ self,
449
+ value: TMaybeRef[Optional[str]] = None,
450
+ *,
451
+ mask: TMaybeRef[str] = "YYYY-MM-DD",
452
+ on_change: Optional[Callable[..., Any]] = None,
453
+ ) -> None:
454
+ kws = {
455
+ "value": value,
456
+ "mask": mask,
457
+ "on_change": on_change,
458
+ }
459
+
460
+ value_kws = _convert_kws_ref2value(kws)
461
+
462
+ element = ui.date(**value_kws)
463
+
464
+ super().__init__(value, element)
465
+
466
+ for key, value in kws.items():
467
+ if is_ref(value) and key != "value":
468
+ self.bind_prop(key, value) # type: ignore
469
+
470
+ self._ex_setup()
471
+
472
+ def _ex_setup(self):
473
+ ele = self.element
474
+
475
+ @effect
476
+ def _():
477
+ ele.value = self.value
478
+
479
+ def onModelValueChanged(e):
480
+ self._ref.value = e.args[0] or "" # type: ignore
481
+
482
+ ele.on("update:modelValue", handler=onModelValueChanged)
483
+
484
+ def bind_prop(self, prop: str, ref_ui: ReadonlyRef):
485
+ if prop == "value":
486
+ return self.bind_value(ref_ui)
487
+
488
+ return super().bind_prop(prop, ref_ui)
489
+
490
+ def bind_value(self, ref_ui: ReadonlyRef[bool]):
491
+ @effect
492
+ def _():
493
+ self.element.on_value_change(ref_ui.value)
494
+
495
+ return self
496
+
497
+
435
498
  class InputBindableUi(SingleValueBindableUi[str, ui.input]):
436
499
  def __init__(
437
500
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ex4nicegui
3
- Version: 0.2.1
3
+ Version: 0.2.3
4
4
  Summary: ...
5
5
  Home-page:
6
6
  Author: carson_jia
File without changes
File without changes
File without changes
File without changes