ex4nicegui 0.5.1__py3-none-any.whl → 0.5.3__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.
- ex4nicegui/__init__.py +3 -6
- ex4nicegui/bi/dataSourceFacade.py +16 -61
- ex4nicegui/bi/elements/text.py +1 -1
- ex4nicegui/bi/elements/ui_aggrid.py +2 -2
- ex4nicegui/bi/elements/ui_echarts.py +3 -3
- ex4nicegui/bi/elements/ui_slider.py +1 -1
- ex4nicegui/bi/elements/ui_table.py +2 -2
- ex4nicegui/bi/protocols.py +0 -1
- ex4nicegui/bi/types.py +0 -1
- ex4nicegui/experimental_/__init__.py +4 -0
- ex4nicegui/experimental_/gridLayout/__init__.py +7 -0
- ex4nicegui/gsap/__init__.py +11 -0
- ex4nicegui/gsap/timeline.js +56 -0
- ex4nicegui/gsap/timeline.py +78 -0
- ex4nicegui/layout/__init__.py +13 -2
- ex4nicegui/layout/gridFlex/__init__.py +1 -1
- ex4nicegui/layout/gridFlex/gridFlex.py +1 -3
- ex4nicegui/layout/rxFlex/__init__.py +0 -1
- ex4nicegui/layout/rxFlex/index.py +16 -6
- ex4nicegui/reactive/__init__.py +57 -2
- ex4nicegui/reactive/fileWatcher.py +1 -1
- ex4nicegui/reactive/local_file_picker.py +1 -1
- ex4nicegui/reactive/officials/button.py +0 -1
- ex4nicegui/reactive/officials/circular_progress.py +64 -0
- ex4nicegui/reactive/officials/column.py +19 -4
- ex4nicegui/reactive/officials/html.py +1 -1
- ex4nicegui/reactive/officials/knob.py +75 -0
- ex4nicegui/reactive/officials/label.py +0 -1
- ex4nicegui/reactive/officials/number.py +1 -2
- ex4nicegui/reactive/officials/row.py +18 -4
- ex4nicegui/reactive/q_pagination.py +33 -29
- ex4nicegui/reactive/usePagination.py +6 -4
- ex4nicegui/reactive/utils.py +42 -3
- ex4nicegui/reactive/vfor.py +19 -39
- ex4nicegui/reactive/vmodel.py +210 -0
- ex4nicegui/tools/__init__.py +0 -1
- ex4nicegui/tools/debug.py +1 -1
- ex4nicegui/utils/signals.py +12 -2
- {ex4nicegui-0.5.1.dist-info → ex4nicegui-0.5.3.dist-info}/METADATA +60 -34
- {ex4nicegui-0.5.1.dist-info → ex4nicegui-0.5.3.dist-info}/RECORD +43 -38
- {ex4nicegui-0.5.1.dist-info → ex4nicegui-0.5.3.dist-info}/LICENSE +0 -0
- {ex4nicegui-0.5.1.dist-info → ex4nicegui-0.5.3.dist-info}/WHEEL +0 -0
- {ex4nicegui-0.5.1.dist-info → ex4nicegui-0.5.3.dist-info}/top_level.txt +0 -0
ex4nicegui/utils/signals.py
CHANGED
|
@@ -3,6 +3,7 @@ from functools import partial
|
|
|
3
3
|
import types
|
|
4
4
|
from weakref import WeakValueDictionary
|
|
5
5
|
import signe
|
|
6
|
+
from signe.core.protocols import ComputedResultProtocol
|
|
6
7
|
from .clientScope import _CLIENT_SCOPE_MANAGER
|
|
7
8
|
from typing import (
|
|
8
9
|
Any,
|
|
@@ -20,23 +21,27 @@ from typing import (
|
|
|
20
21
|
from nicegui import ui
|
|
21
22
|
from .effect import effect
|
|
22
23
|
from .scheduler import get_uiScheduler
|
|
24
|
+
import warnings
|
|
23
25
|
|
|
24
26
|
T = TypeVar("T")
|
|
25
27
|
|
|
26
28
|
|
|
27
|
-
TReadonlyRef =
|
|
29
|
+
TReadonlyRef = ComputedResultProtocol[T]
|
|
28
30
|
ReadonlyRef = TReadonlyRef[T]
|
|
29
31
|
DescReadonlyRef = TReadonlyRef[T]
|
|
30
32
|
|
|
31
33
|
TGetterOrReadonlyRef = signe.TGetter[T]
|
|
32
34
|
|
|
33
35
|
|
|
36
|
+
is_reactive = signe.is_reactive
|
|
37
|
+
|
|
38
|
+
|
|
34
39
|
def reactive(obj: T) -> T:
|
|
35
40
|
return signe.reactive(obj, get_uiScheduler())
|
|
36
41
|
|
|
37
42
|
|
|
38
43
|
class RefWrapper(Generic[T]):
|
|
39
|
-
__slot__ = ("_getter_fn", "_setter_fn")
|
|
44
|
+
__slot__ = ("_getter_fn", "_setter_fn", "")
|
|
40
45
|
|
|
41
46
|
def __init__(
|
|
42
47
|
self,
|
|
@@ -57,12 +62,17 @@ class RefWrapper(Generic[T]):
|
|
|
57
62
|
self._getter_fn = lambda: getter_or_ref
|
|
58
63
|
self._setter_fn = lambda x: None
|
|
59
64
|
|
|
65
|
+
self._is_readonly = False
|
|
66
|
+
|
|
60
67
|
@property
|
|
61
68
|
def value(self) -> T:
|
|
62
69
|
return cast(T, self._getter_fn())
|
|
63
70
|
|
|
64
71
|
@value.setter
|
|
65
72
|
def value(self, new_value: T):
|
|
73
|
+
if self._is_readonly:
|
|
74
|
+
warnings.warn("readonly ref cannot be assigned.")
|
|
75
|
+
return
|
|
66
76
|
return self._setter_fn(new_value)
|
|
67
77
|
|
|
68
78
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ex4nicegui
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.3
|
|
4
4
|
Summary: Extension library based on nicegui, providing data responsive,BI functionality modules
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: carson_jia
|
|
@@ -14,9 +14,10 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
14
14
|
Requires-Python: >=3.8
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: signe (>=0.4.
|
|
17
|
+
Requires-Dist: signe (>=0.4.9)
|
|
18
18
|
Requires-Dist: nicegui (>=1.4.0)
|
|
19
19
|
Requires-Dist: typing-extensions
|
|
20
|
+
Requires-Dist: executing
|
|
20
21
|
|
|
21
22
|
# ex4nicegui
|
|
22
23
|
[中文 README](./README.md)
|
|
@@ -35,6 +36,11 @@ An extension library for [nicegui](https://github.com/zauberzeug/nicegui). It ha
|
|
|
35
36
|
pip install ex4nicegui -U
|
|
36
37
|
```
|
|
37
38
|
|
|
39
|
+
## examples
|
|
40
|
+
- [basic](./examples/basic/)
|
|
41
|
+
- [todo list mvc](./examples/todomvc/)
|
|
42
|
+
|
|
43
|
+
|
|
38
44
|
## 🦄 Usage
|
|
39
45
|
|
|
40
46
|
```python
|
|
@@ -384,16 +390,58 @@ ui.button("change b", on_click=change_b)
|
|
|
384
390
|
|
|
385
391
|
---
|
|
386
392
|
|
|
393
|
+
## functionality
|
|
394
|
+
|
|
395
|
+
### vmodel
|
|
396
|
+
Create two-way bindings on form input elements or components.
|
|
397
|
+
|
|
398
|
+
Bidirectional bindings are supported by default for `ref` simple value types
|
|
399
|
+
```python
|
|
400
|
+
from ex4nicegui import rxui, to_ref, deep_ref
|
|
401
|
+
|
|
402
|
+
data = to_ref("init")
|
|
403
|
+
|
|
404
|
+
rxui.label(lambda: f"{data.value=}")
|
|
405
|
+
# two-way binding
|
|
406
|
+
rxui.input(value=data)
|
|
407
|
+
```
|
|
408
|
+
- Simple value types are generally immutable values such as `str`, `int`, etc.
|
|
409
|
+
|
|
410
|
+
When using complex data structures, `deep_ref` is used to keep nested values responsive.
|
|
411
|
+
```python
|
|
412
|
+
data = deep_ref({"a": 1, "b": [1, 2, 3, 4]})
|
|
413
|
+
|
|
414
|
+
rxui.label(lambda: f"{data.value=!s}")
|
|
415
|
+
|
|
416
|
+
# No binding effect
|
|
417
|
+
rxui.input(value=data.value["a"])
|
|
418
|
+
|
|
419
|
+
# readonly binding
|
|
420
|
+
rxui.input(value=lambda: data.value["a"])
|
|
421
|
+
|
|
422
|
+
# two-way binding
|
|
423
|
+
rxui.input(value=rxui.vmodel(data.value["a"]))
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
- The first input box will be completely unresponsive because the code is equivalent to passing in a value `1` directly
|
|
427
|
+
- The second input box will get read responsiveness due to the use of a function.
|
|
428
|
+
- The third input box, wrapped in `rxui.vmodel`, can be bi-directionally bound.
|
|
429
|
+
|
|
430
|
+
Most use `vmodel` with `vfor`, see [todo list examples](./examples/todomvc/)
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
387
434
|
### vfor
|
|
388
435
|
Render list components based on list responsive data. Each component is updated on demand. Data items support dictionaries or objects of any type
|
|
389
436
|
|
|
390
437
|
```python
|
|
391
438
|
from nicegui import ui
|
|
392
439
|
from ex4nicegui.reactive import rxui
|
|
393
|
-
from ex4nicegui import
|
|
440
|
+
from ex4nicegui import deep_ref, ref_computed
|
|
441
|
+
from typing import Dict
|
|
394
442
|
|
|
395
443
|
# refs
|
|
396
|
-
items =
|
|
444
|
+
items = deep_ref(
|
|
397
445
|
[
|
|
398
446
|
{"id": 1, "message": "foo", "done": False},
|
|
399
447
|
{"id": 2, "message": "bar", "done": True},
|
|
@@ -409,7 +457,6 @@ def done_count_info():
|
|
|
409
457
|
def check():
|
|
410
458
|
for item in items.value:
|
|
411
459
|
item["done"] = not item["done"]
|
|
412
|
-
items.value = items.value
|
|
413
460
|
|
|
414
461
|
|
|
415
462
|
# ui
|
|
@@ -418,54 +465,33 @@ ui.button("check", on_click=check)
|
|
|
418
465
|
|
|
419
466
|
|
|
420
467
|
@rxui.vfor(items,key='id')
|
|
421
|
-
def _(store: rxui.VforStore):
|
|
468
|
+
def _(store: rxui.VforStore[Dict]):
|
|
422
469
|
# function to build the interface for each row of data
|
|
423
|
-
|
|
470
|
+
item = store.get() # Get responsive object with `store.get`
|
|
471
|
+
mes = rxui.vmodel(item.value['message'])
|
|
424
472
|
|
|
425
473
|
# Enter the content of the input box,
|
|
426
474
|
# you can see the title of the radio box changes synchronously
|
|
427
475
|
with ui.card():
|
|
428
|
-
|
|
429
|
-
|
|
476
|
+
with ui.row():
|
|
477
|
+
rxui.input(value=mes)
|
|
478
|
+
rxui.label(lambda: f"{mes.value=!s}")
|
|
479
|
+
rxui.checkbox(text=mes, value=rxui.vmodel(item.value['done']))
|
|
430
480
|
|
|
431
481
|
```
|
|
432
482
|
|
|
433
483
|
- `rxui.vfor` decorator to custom function
|
|
434
484
|
- The first argument is passed to the responsive list. Each item in the list can be a dictionary or other object (`dataclasses` etc.)
|
|
435
485
|
- Second parameter `key`: In order to be able to keep track of the identity of each node, and thus reuse and reorder existing elements, you can provide a unique key for the block corresponding to each element. The default(`None`) is to use the list element index.
|
|
436
|
-
- The custom function takes one argument. The current row's
|
|
486
|
+
- The custom function takes one argument. The current row's can be retrieved via `store.get`, which is a responsive object.
|
|
437
487
|
|
|
438
488
|
|
|
439
489
|
> vfor are created only when new data is added.
|
|
440
490
|
|
|
441
|
-
In the above example, you'll notice that when the checkbox is clicked, the text of the number of completed counts (`done_count_info`) doesn't change synchronously
|
|
442
|
-
|
|
443
|
-
This is because responsive data changes in the `vfor` function do not affect the data source list. This is a restriction to prevent writing overly complex bi-directional data flow response logic.
|
|
444
|
-
|
|
445
|
-
We should make changes to the data source list via events in the function
|
|
446
|
-
|
|
447
|
-
```python
|
|
448
|
-
...
|
|
449
|
-
|
|
450
|
-
@rxui.vfor(items, key="id")
|
|
451
|
-
def _(store: rxui.VforStore):
|
|
452
|
-
msg_ref = store.get("message")
|
|
453
|
-
|
|
454
|
-
def on_check_change(e):
|
|
455
|
-
items.value[store.row_index]["done"] = e.value
|
|
456
|
-
items.value = items.value
|
|
457
|
-
|
|
458
|
-
with ui.card():
|
|
459
|
-
rxui.input(value=msg_ref)
|
|
460
|
-
rxui.checkbox(text=msg_ref, value=store.get("done"),on_change=on_check_change)
|
|
461
|
-
|
|
462
|
-
```
|
|
463
491
|
|
|
464
492
|
---
|
|
465
493
|
|
|
466
494
|
|
|
467
|
-
## functionality
|
|
468
|
-
|
|
469
495
|
### Bind class names
|
|
470
496
|
|
|
471
497
|
All component classes provide `bind_classes` for binding `class`, supporting three different data structures.
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
ex4nicegui/__init__.py,sha256=
|
|
1
|
+
ex4nicegui/__init__.py,sha256=sbp4UdZz1sLg5LIpMSt87LwclMQb13_IDD9mewNPRuE,736
|
|
2
2
|
ex4nicegui/bi/__init__.py,sha256=eu-2CuzzrcHCyKQOfoo87v6C9nSwFDdeLhjY0cRV13M,315
|
|
3
3
|
ex4nicegui/bi/dataSource.py,sha256=sQzuQvNWBf20n9cz--1OX5gxT6RUAhwrq_xTQEpSa0o,7691
|
|
4
|
-
ex4nicegui/bi/dataSourceFacade.py,sha256=
|
|
4
|
+
ex4nicegui/bi/dataSourceFacade.py,sha256=6NuAyrTIk_L2Tz9IRFpuHKRQY_OwJINDzxoM6JYOc14,8186
|
|
5
5
|
ex4nicegui/bi/index.py,sha256=ZuwFxUD1KcxBpKvTLO7CGQQ5gN7FDpaHo9tfAS3UpQ4,2067
|
|
6
|
-
ex4nicegui/bi/protocols.py,sha256=
|
|
7
|
-
ex4nicegui/bi/types.py,sha256=
|
|
6
|
+
ex4nicegui/bi/protocols.py,sha256=SjwYrS21L6dcNfYrLvh5pESya0NIa6ihQ6URMU6z-6Q,4529
|
|
7
|
+
ex4nicegui/bi/types.py,sha256=PGPUXr17iRmxxYHxHKJSdxp5CdAkHWb2_9nJ1GwYRlc,355
|
|
8
8
|
ex4nicegui/bi/elements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
ex4nicegui/bi/elements/containers.py,sha256=5a9ZkzyVNLnK7DftDYdbVRo0bQFvuMHRI9LBGR__YuI,358
|
|
10
10
|
ex4nicegui/bi/elements/layouts.py,sha256=teb0Vp-fgsByBNPTiW73kXEu2JponRRj4QQanaalcA0,898
|
|
11
11
|
ex4nicegui/bi/elements/models.py,sha256=YfQlW1n9sNRHT2nBfA07n_1xqwJ7GfJCmXxgDYtbzSc,1534
|
|
12
|
-
ex4nicegui/bi/elements/text.py,sha256=
|
|
13
|
-
ex4nicegui/bi/elements/ui_aggrid.py,sha256=
|
|
12
|
+
ex4nicegui/bi/elements/text.py,sha256=oX7S1cVQL6YGMOlQG_cdwK9duzOHCPG0lOi9qTZwo6s,808
|
|
13
|
+
ex4nicegui/bi/elements/ui_aggrid.py,sha256=Lbtcmu_GR5_metQ9p8a2bzYSXsgElOZRMGl1h0fqcFU,2009
|
|
14
14
|
ex4nicegui/bi/elements/ui_date_picker.js,sha256=Tk6NACKVsCnqhWZtuNA6Xt2e-AWI54AnjfHPIldaM5A,852
|
|
15
15
|
ex4nicegui/bi/elements/ui_date_picker.py,sha256=PGv8gsgc4hkvWa-EN19qznEllV7DAzz7v4aTwdx9do4,2260
|
|
16
|
-
ex4nicegui/bi/elements/ui_echarts.py,sha256=
|
|
16
|
+
ex4nicegui/bi/elements/ui_echarts.py,sha256=o_wIqxyrU27UvTSIRp6_58nQSic9llh1CuHI9QcRMOc,2302
|
|
17
17
|
ex4nicegui/bi/elements/ui_radio.py,sha256=tIoBZVhoY-z3dhGxh2pYENuxVnwkHhZB5g4_a5QPMRE,5447
|
|
18
18
|
ex4nicegui/bi/elements/ui_range.py,sha256=1tnka-a0jVfqTwvypKIRgHb6EzYGn3DmsWr3yvSVD-g,4128
|
|
19
19
|
ex4nicegui/bi/elements/ui_select.py,sha256=yOab3YrHCZ5kkU3bmDdr-LIAMhOunUsCbtctR8WpnLI,3872
|
|
20
|
-
ex4nicegui/bi/elements/ui_slider.py,sha256
|
|
21
|
-
ex4nicegui/bi/elements/ui_table.py,sha256=
|
|
22
|
-
ex4nicegui/experimental_/__init__.py,sha256=
|
|
23
|
-
ex4nicegui/experimental_/gridLayout/__init__.py,sha256=
|
|
20
|
+
ex4nicegui/bi/elements/ui_slider.py,sha256=-b1k3i1v8Z9WIwRaI0PJoYxR3Nbq1GUEyjmQnq9jIeo,2165
|
|
21
|
+
ex4nicegui/bi/elements/ui_table.py,sha256=aKL26xbiCIQG_-KFEozXjbB4G88FdOK25k2H0k24bys,1810
|
|
22
|
+
ex4nicegui/experimental_/__init__.py,sha256=HODL0f70HUzVrfRwUzdCwxTp_9mYr4D1nnzd8jevlMw,69
|
|
23
|
+
ex4nicegui/experimental_/gridLayout/__init__.py,sha256=c9k-zykhKW3Ol6QECUoKqJW9QEuhA9xPi8s4Dm4m7SU,125
|
|
24
24
|
ex4nicegui/experimental_/gridLayout/index.py,sha256=zFXuvFroo5EC1CFjt-b4hMiEy67hGP5J1GYTKH6kpUU,4737
|
|
25
|
-
ex4nicegui/gsap/__init__.py,sha256=
|
|
25
|
+
ex4nicegui/gsap/__init__.py,sha256=xBApQlq9st9exhgcSkqCzWeS6bc1eKiPJfYP25MSInw,218
|
|
26
26
|
ex4nicegui/gsap/gsap.py,sha256=-1sncG2_37LYN6RosnHZAgYSI899HMj9FB6MQWUj8yw,4675
|
|
27
|
+
ex4nicegui/gsap/timeline.js,sha256=CB300drH7UUSfy_WDeuWHSNh3WX-vwbRtKBLL1Ak43o,1241
|
|
28
|
+
ex4nicegui/gsap/timeline.py,sha256=B3CvN83CzJMMFMVdZZC2UHR0l_I90amRQ0Sf-P623zo,2421
|
|
27
29
|
ex4nicegui/gsap/wrapGsap.js,sha256=0Iz7qh8aA-h3svV7fW4U5k_pX7zXCcIdHDaG7NNvgLU,1045
|
|
28
|
-
ex4nicegui/layout/__init__.py,sha256=
|
|
30
|
+
ex4nicegui/layout/__init__.py,sha256=YT76Ec7p4aFOGms6wc19207flBeyI6jrq7Kg_FQ2wnQ,278
|
|
29
31
|
ex4nicegui/layout/gridFlex/GridFlex.js,sha256=ljkxGFucBUIPksMAT5w_35sxGogC7OzxzXnOw21Z3_k,4468
|
|
30
|
-
ex4nicegui/layout/gridFlex/__init__.py,sha256=
|
|
31
|
-
ex4nicegui/layout/gridFlex/gridFlex.py,sha256=
|
|
32
|
+
ex4nicegui/layout/gridFlex/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
33
|
+
ex4nicegui/layout/gridFlex/gridFlex.py,sha256=pSLaKOiAzKAt_ih2TRe0E8SKrwJVyaTtdnsiWcy--Mk,7194
|
|
32
34
|
ex4nicegui/layout/gridFlex/utils.py,sha256=hBuusveBRaHSubIr2q38AP033-VtXDFE_fDzZtg4h44,1236
|
|
33
|
-
ex4nicegui/layout/rxFlex/__init__.py,sha256=
|
|
34
|
-
ex4nicegui/layout/rxFlex/index.py,sha256=
|
|
35
|
+
ex4nicegui/layout/rxFlex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
ex4nicegui/layout/rxFlex/index.py,sha256=4tuMu0mYCvx8txxbavmujIwoqAtt-Moqcb0E2jYxh18,3672
|
|
35
37
|
ex4nicegui/layout/rxFlex/types.py,sha256=OQBo3kkmtXhMo3BDI0GjX36HPJLDV1Cm67hPZGb1k2Q,1411
|
|
36
38
|
ex4nicegui/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
39
|
ex4nicegui/libs/d3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -64,15 +66,16 @@ ex4nicegui/libs/gsap/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
64
66
|
ex4nicegui/libs/gsap/utils/matrix.js,sha256=77scrxbQZXx4ex5HkvnT9IkhMG1rQoDNp4TSYgUeYVk,15235
|
|
65
67
|
ex4nicegui/libs/gsap/utils/paths.js,sha256=2SPaRHQ7zgba9cH8hGhkTYPCZdrrEhE2qhh6ECAEvSA,49314
|
|
66
68
|
ex4nicegui/libs/gsap/utils/strings.js,sha256=47G9slz5ltG9mDSwrfQDtWzzdV5QJ-AIMLRMNK0VSiM,10472
|
|
67
|
-
ex4nicegui/reactive/__init__.py,sha256
|
|
68
|
-
ex4nicegui/reactive/fileWatcher.py,sha256=
|
|
69
|
-
ex4nicegui/reactive/local_file_picker.py,sha256=
|
|
70
|
-
ex4nicegui/reactive/q_pagination.py,sha256=
|
|
69
|
+
ex4nicegui/reactive/__init__.py,sha256=osdHgTwRTI2jOjHtbOpMjdQlvGiJW-1vaqcPPLhzbdQ,3339
|
|
70
|
+
ex4nicegui/reactive/fileWatcher.py,sha256=gjeZhgar02f-qGQa47Tj5SMaCP_ftRtSU898XUmXl1U,1472
|
|
71
|
+
ex4nicegui/reactive/local_file_picker.py,sha256=6kh7pW4RZk1gqYjxkOvTfJ-2T_KwZznr8AekcZoxthw,6171
|
|
72
|
+
ex4nicegui/reactive/q_pagination.py,sha256=WcSYpB75NH3lffw3HXwZRcvnh0l6EA1Eqp5bcJKIJaw,1505
|
|
71
73
|
ex4nicegui/reactive/rxui.py,sha256=gZ8ZEjGuJFKcedEZhcm4PIZguNkY-Wv5yQx80QnsBKI,31
|
|
72
|
-
ex4nicegui/reactive/usePagination.py,sha256=
|
|
73
|
-
ex4nicegui/reactive/utils.py,sha256
|
|
74
|
+
ex4nicegui/reactive/usePagination.py,sha256=Gop9KV780DcQK5bH4zQZ5sRpV3jOD2sRX_Bpmb1LTFI,2598
|
|
75
|
+
ex4nicegui/reactive/utils.py,sha256=GSk_eUH-iNUi18Tg7MsBVnMK5basgX6EQgbSD1zxsZw,3315
|
|
74
76
|
ex4nicegui/reactive/vfor.js,sha256=OmpeLZdjV_GiG5HdglMXGBKpgrKYh3UIeugpszAVdWw,52
|
|
75
|
-
ex4nicegui/reactive/vfor.py,sha256=
|
|
77
|
+
ex4nicegui/reactive/vfor.py,sha256=hyvbmMJtC8usSYeq023bCL8kOrmnFw09YOS_r6GWBzk,5495
|
|
78
|
+
ex4nicegui/reactive/vmodel.py,sha256=FH1rXjbzD6r0MeFdf-3GDvz8JJ_qgmI7rTo8itw_StY,5147
|
|
76
79
|
ex4nicegui/reactive/EChartsComponent/ECharts.js,sha256=HMmgXlDl548H4JpozDSbLWv-opvPi3OdJz_XY_MHbnY,3326
|
|
77
80
|
ex4nicegui/reactive/EChartsComponent/ECharts.py,sha256=hoUZ7h-KOUKNd-1BybSX4xxv33gYuTkky70yEzv-oIA,6344
|
|
78
81
|
ex4nicegui/reactive/EChartsComponent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -88,26 +91,28 @@ ex4nicegui/reactive/mermaid/mermaid.py,sha256=uP321QiNj_S5E5I2KF9h03WlSFdRITE8tv
|
|
|
88
91
|
ex4nicegui/reactive/officials/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
89
92
|
ex4nicegui/reactive/officials/aggrid.py,sha256=2HL2eS23jez8zA_N7ph76XqNflwXnwxBt8CR1ycTB2M,2787
|
|
90
93
|
ex4nicegui/reactive/officials/base.py,sha256=1d6ePyz4ZiOsZYLKtCr04Aw4_9YyYl2HpCN8PpRJis4,10325
|
|
91
|
-
ex4nicegui/reactive/officials/button.py,sha256=
|
|
94
|
+
ex4nicegui/reactive/officials/button.py,sha256=12FZ2cQGFsTsivSHT9YfDD_wP_D4xrpHHfKmVNNKLJE,1660
|
|
92
95
|
ex4nicegui/reactive/officials/card.py,sha256=8-tBwm3xfVybolQ87i8lAYUpBV6FdaVdeSH6xu0736U,1275
|
|
93
96
|
ex4nicegui/reactive/officials/checkbox.py,sha256=BcSbWuMTA2UgwOeuBTtpvzqdOivb2xbkLazfGqwuboo,1562
|
|
97
|
+
ex4nicegui/reactive/officials/circular_progress.py,sha256=BVLjCJtEcwa2pqGZ4nC-w-8FlkTS5IuqlL_tY6xOXNY,1787
|
|
94
98
|
ex4nicegui/reactive/officials/color_picker.py,sha256=fSRICdzdH16w3BIGyAk3CtaauYqpPfUHCRc2kq-w-ZA,3402
|
|
95
|
-
ex4nicegui/reactive/officials/column.py,sha256=
|
|
99
|
+
ex4nicegui/reactive/officials/column.py,sha256=CfoJigEdpRoGaJTY_O7wbK8cp8ufX8mYUKNRUnPWUr0,1040
|
|
96
100
|
ex4nicegui/reactive/officials/date.py,sha256=jp75WgZaICnCHLS_wpF3uJI2kaGeNqmRLj3qpn5IIyg,2681
|
|
97
101
|
ex4nicegui/reactive/officials/drawer.py,sha256=y9_gbDDy_6Y7mRfSB8BGawM-_g6kECM1ieZXMX2YCQo,2370
|
|
98
102
|
ex4nicegui/reactive/officials/echarts.py,sha256=rBYHL6K_uAp4A4r_qacXt_bFukOMPWxdN_9xjEXG4RY,9683
|
|
99
103
|
ex4nicegui/reactive/officials/expansion.py,sha256=pAFGaj_N88KLNPw2476lthyZbCOa3APlMtHsgRT9rWI,1873
|
|
100
104
|
ex4nicegui/reactive/officials/grid.py,sha256=z3mdvDnpxKECtvioTgGXROc1kcAugNCBOvwZ7NCpQHI,865
|
|
101
105
|
ex4nicegui/reactive/officials/html.js,sha256=lyvRAdMKZGOc7MPEapeU6WbOzq_MVzqzUJEhKuC8zWc,119
|
|
102
|
-
ex4nicegui/reactive/officials/html.py,sha256=
|
|
106
|
+
ex4nicegui/reactive/officials/html.py,sha256=yasDeGMJyyGmCpJoiwmG-QszfLSOsHLYWShWXXbSlH0,675
|
|
103
107
|
ex4nicegui/reactive/officials/icon.py,sha256=L0yHo4Ute7PNJw2R2vn8PJGhIjreqeoZnS4p6tijmg0,1559
|
|
104
108
|
ex4nicegui/reactive/officials/image.py,sha256=qtdtrjZ2OPF1mmtrL-RSgH3hNcXbRdwH9oD-RyFYVJM,1120
|
|
105
109
|
ex4nicegui/reactive/officials/input.py,sha256=d338LH7tYArhUQYXJleytIOXsDieXEm4yLxOrjRbxLM,4030
|
|
106
|
-
ex4nicegui/reactive/officials/
|
|
110
|
+
ex4nicegui/reactive/officials/knob.py,sha256=ZCKXUbFQUhdsRoTADk2gqdEwmi1CeW9Jmc7AGJyV1Yg,2153
|
|
111
|
+
ex4nicegui/reactive/officials/label.py,sha256=7xhvQIa-3Zm44xJIoKeMys1M6d6AMJTeE5l9THPICGo,1398
|
|
107
112
|
ex4nicegui/reactive/officials/linear_progress.py,sha256=3ew4uqUIDrDH0PdX42K7rnKQL4khmZgxmJfmWX6qMDs,2128
|
|
108
|
-
ex4nicegui/reactive/officials/number.py,sha256=
|
|
113
|
+
ex4nicegui/reactive/officials/number.py,sha256=Ro20LiSjzeLkcPM5oIe3phulLH5Gsw3YwYBCyRl9bqI,2201
|
|
109
114
|
ex4nicegui/reactive/officials/radio.py,sha256=35KCAE0JhzBczaCGrlufZystgpzljobOoIw1H7js1KA,1929
|
|
110
|
-
ex4nicegui/reactive/officials/row.py,sha256=
|
|
115
|
+
ex4nicegui/reactive/officials/row.py,sha256=pwFJBdv3_D5-E-oga-OG5t57ahHcYXGSI_-UofWg_j0,1029
|
|
111
116
|
ex4nicegui/reactive/officials/select.py,sha256=Fj4V96ju2tpsP1ok0RFokN1K7TxzNS9YLVCz55O788Y,2980
|
|
112
117
|
ex4nicegui/reactive/officials/slider.py,sha256=6E6UeyX_hXIDz_-0v6WEIfTM5oqzukonRyqDRJHT-PA,2954
|
|
113
118
|
ex4nicegui/reactive/officials/switch.py,sha256=-QDXbOQllnWRE28pAH74qrgpN1TXs-1snLDqN6pdiVM,1605
|
|
@@ -118,17 +123,17 @@ ex4nicegui/reactive/officials/utils.py,sha256=-fnRjyb4Yx7_6jmVeQIZKXFRNV3BWbI7JR
|
|
|
118
123
|
ex4nicegui/reactive/useMouse/UseMouse.js,sha256=6FjcYozJK5zFwK1kBP8JlfMyTUwKVK3k_0wSdhapaZs,2722
|
|
119
124
|
ex4nicegui/reactive/useMouse/UseMouse.py,sha256=zP0rzJmG-LCCzAT2pGFgX0l1may-syZL05gpbDKCnKE,2122
|
|
120
125
|
ex4nicegui/reactive/useMouse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
-
ex4nicegui/tools/__init__.py,sha256=
|
|
122
|
-
ex4nicegui/tools/debug.py,sha256=
|
|
126
|
+
ex4nicegui/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
+
ex4nicegui/tools/debug.py,sha256=h9iYHxw7jWWvmiExSpGi2hQl1PfhPZgC2KNS_GTuHSw,4868
|
|
123
128
|
ex4nicegui/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
129
|
ex4nicegui/utils/apiEffect.py,sha256=tAvQ-6sbSbZBZ1bibdAdQNb_BjrUF1uALwOkAdV_Y8M,2527
|
|
125
130
|
ex4nicegui/utils/clientScope.py,sha256=-KJnrZGqdAQUNNbQbqMAqNzWHCVon-lC3aaQGuaTdxI,1225
|
|
126
131
|
ex4nicegui/utils/common.py,sha256=7P0vboDadLun6EMxNi3br9rKJgKt0QT4sy_66cHEwb4,994
|
|
127
132
|
ex4nicegui/utils/effect.py,sha256=MgvWuAP3OFs2bR4ef6uXPwGCkKORUK-4hmx1oSwl04Y,2310
|
|
128
133
|
ex4nicegui/utils/scheduler.py,sha256=Wa963Df3UDvWHjXXoVYGIBevIILzCFoz-yAWjvxeyfQ,1218
|
|
129
|
-
ex4nicegui/utils/signals.py,sha256=
|
|
130
|
-
ex4nicegui-0.5.
|
|
131
|
-
ex4nicegui-0.5.
|
|
132
|
-
ex4nicegui-0.5.
|
|
133
|
-
ex4nicegui-0.5.
|
|
134
|
-
ex4nicegui-0.5.
|
|
134
|
+
ex4nicegui/utils/signals.py,sha256=Eruq0WUH-G7dpnfHZ2y9Uf-mS6L_RBVcsaqbK8FKfvE,11193
|
|
135
|
+
ex4nicegui-0.5.3.dist-info/LICENSE,sha256=0KDDElS2dl-HIsWvbpy8ywbLzJMBFzXLev57LnMIZXs,1094
|
|
136
|
+
ex4nicegui-0.5.3.dist-info/METADATA,sha256=hGb8ZKAD6yb90SRQ6tALuCBNwsGaPwbJFK6rGsWboG0,26519
|
|
137
|
+
ex4nicegui-0.5.3.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
138
|
+
ex4nicegui-0.5.3.dist-info/top_level.txt,sha256=VFwMiO9AFjj5rfLMJwN1ipLRASk9fJXB8tM6DNrpvPQ,11
|
|
139
|
+
ex4nicegui-0.5.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|