ex4nicegui 0.6.7__tar.gz → 0.6.9__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.
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/PKG-INFO +61 -4
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/README.md +60 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/__init__.py +12 -6
- ex4nicegui-0.6.9/ex4nicegui/gsap/__init__.py +23 -0
- ex4nicegui-0.6.9/ex4nicegui/helper/__init__.py +4 -0
- ex4nicegui-0.6.9/ex4nicegui/helper/client_instance_locker.py +31 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/__init__.py +4 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/base.py +426 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/deferredTask.py +3 -2
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/local_file_picker.py +1 -2
- ex4nicegui-0.6.9/ex4nicegui/reactive/mixins/backgroundColor.py +41 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/mixins/disableable.py +44 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/mixins/textColor.py +66 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/aggrid.py +4 -4
- ex4nicegui-0.6.9/ex4nicegui/reactive/officials/base.py +5 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/button.py +36 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/checkbox.py +2 -3
- ex4nicegui-0.6.9/ex4nicegui/reactive/officials/chip.py +102 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/circular_progress.py +6 -5
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/color_picker.py +3 -4
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/column.py +1 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/date.py +2 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/drawer.py +2 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/echarts.py +2 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/expansion.py +2 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/grid.py +4 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/html.py +1 -3
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/icon.py +5 -9
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/image.py +2 -4
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/input.py +4 -6
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/knob.py +6 -4
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/label.py +3 -10
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/linear_progress.py +5 -9
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/number.py +3 -6
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/radio.py +3 -5
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/row.py +1 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/select.py +3 -5
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/slider.py +4 -6
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/switch.py +2 -4
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/tab.py +1 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/tab_panel.py +1 -1
- ex4nicegui-0.6.9/ex4nicegui/reactive/officials/tab_panels.py +164 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/table.py +7 -6
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/tabs.py +1 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/textarea.py +3 -5
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/upload.py +2 -2
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/q_pagination.py +2 -2
- ex4nicegui-0.6.9/ex4nicegui/reactive/scopedStyle.js +55 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/scopedStyle.py +25 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/services/pandas_service.py +31 -0
- ex4nicegui-0.6.7/ex4nicegui/reactive/utils.py → ex4nicegui-0.6.9/ex4nicegui/reactive/services/reactive_service.py +9 -67
- ex4nicegui-0.6.9/ex4nicegui/reactive/systems/color_system.py +157 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/systems/object_system.py +33 -0
- ex4nicegui-0.6.9/ex4nicegui/reactive/systems/reactive_system.py +21 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/useMouse/UseMouse.py +4 -4
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/usePagination.py +1 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/vfor.py +1 -2
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/vmodel.py +1 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/apiEffect.py +5 -1
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/effect.py +3 -2
- ex4nicegui-0.6.9/ex4nicegui/utils/refComputed.py +147 -0
- ex4nicegui-0.6.9/ex4nicegui/utils/refWrapper.py +57 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/scheduler.py +20 -4
- ex4nicegui-0.6.9/ex4nicegui/utils/signals.py +270 -0
- ex4nicegui-0.6.9/ex4nicegui/utils/types.py +16 -0
- ex4nicegui-0.6.9/ex4nicegui/version.py +3 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/pyproject.toml +2 -1
- ex4nicegui-0.6.7/ex4nicegui/gsap/__init__.py +0 -12
- ex4nicegui-0.6.7/ex4nicegui/reactive/dropZone/__init__.py +0 -0
- ex4nicegui-0.6.7/ex4nicegui/reactive/mermaid/__init__.py +0 -0
- ex4nicegui-0.6.7/ex4nicegui/reactive/officials/__init__.py +0 -1
- ex4nicegui-0.6.7/ex4nicegui/reactive/officials/base.py +0 -352
- ex4nicegui-0.6.7/ex4nicegui/reactive/officials/tab_panels.py +0 -58
- ex4nicegui-0.6.7/ex4nicegui/reactive/officials/utils.py +0 -11
- ex4nicegui-0.6.7/ex4nicegui/reactive/useMouse/__init__.py +0 -0
- ex4nicegui-0.6.7/ex4nicegui/tools/__init__.py +0 -0
- ex4nicegui-0.6.7/ex4nicegui/utils/__init__.py +0 -0
- ex4nicegui-0.6.7/ex4nicegui/utils/signals.py +0 -411
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/LICENSE +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/dataSource.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/dataSourceFacade.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/containers.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/layouts.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/models.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/text.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_aggrid.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_date_picker.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_date_picker.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_echarts.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_radio.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_range.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_select.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_slider.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_table.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/index.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/protocols.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/types.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/experimental_/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/experimental_/gridLayout/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/experimental_/gridLayout/index.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/gsap.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/timeline.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/timeline.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/wrapGsap.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/GridFlex.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/gridFlex.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/utils.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/rxFlex/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/rxFlex/index.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/rxFlex/types.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-color.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-dispatch.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-drag.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-ease.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-interpolate.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-selection.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-timer.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-transition.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-zoom.ems.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/.DS_Store +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/CSSPlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/CSSRulePlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/CustomEase.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/Draggable.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/EasePack.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/EaselPlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/Flip.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/MotionPathPlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/Observer.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/PixiPlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/ScrollToPlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/ScrollTrigger.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/TextPlugin.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/all.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/gsap-core.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/gsap.mjs +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/matrix.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/paths.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/strings.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/ECharts.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/ECharts.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/events.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/types.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/utils.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/UseDraggable/UseDraggable.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/UseDraggable/UseDraggable.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/dropZone/dropZone.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/dropZone/dropZone.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/empty.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/empty.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/fileWatcher.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/mermaid/mermaid.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/mermaid/mermaid.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/card.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/element.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/html.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/rxui.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/transitionGroup.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/transitionGroup.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/useMouse/UseMouse.js +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/vfor.js +0 -0
- {ex4nicegui-0.6.7/ex4nicegui/reactive/EChartsComponent → ex4nicegui-0.6.9/ex4nicegui/tools}/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/tools/debug.py +0 -0
- {ex4nicegui-0.6.7/ex4nicegui/reactive/UseDraggable → ex4nicegui-0.6.9/ex4nicegui/utils}/__init__.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/asyncComputed.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/clientScope.py +0 -0
- {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/common.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ex4nicegui
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.9
|
|
4
4
|
Summary: Extension library based on nicegui, providing data responsive,BI functionality modules
|
|
5
5
|
Home-page: https://github.com/CrystalWindSnake/ex4nicegui
|
|
6
6
|
License: MIT
|
|
@@ -604,7 +604,7 @@ rxui.label("bind to ref_computed").bind_classes(
|
|
|
604
604
|
|
|
605
605
|
---
|
|
606
606
|
|
|
607
|
-
|
|
607
|
+
绑定为列表或单个字符串的响应式变量
|
|
608
608
|
|
|
609
609
|
```python
|
|
610
610
|
bg_color = to_ref("red")
|
|
@@ -617,10 +617,11 @@ rxui.select(["red", "green", "yellow"], label="bg color", value=bg_color)
|
|
|
617
617
|
rxui.select(["red", "green", "yellow"], label="text color", value=text_color)
|
|
618
618
|
|
|
619
619
|
rxui.label("binding to arrays").bind_classes([bg_color_class, text_color_class])
|
|
620
|
-
|
|
620
|
+
rxui.label("binding to single string").bind_classes(bg_color_class)
|
|
621
621
|
```
|
|
622
622
|
|
|
623
|
-
列表中每个元素为返回类名的响应式变量
|
|
623
|
+
- 列表中每个元素为返回类名的响应式变量
|
|
624
|
+
|
|
624
625
|
|
|
625
626
|
---
|
|
626
627
|
|
|
@@ -887,6 +888,62 @@ rxui.radio(names, value=current_tab).props("inline")
|
|
|
887
888
|
|
|
888
889
|
rxui.label(lambda: f"当前 tab 为:{current_tab.value}")
|
|
889
890
|
```
|
|
891
|
+
---
|
|
892
|
+
|
|
893
|
+
### lazy_tab_panels
|
|
894
|
+
|
|
895
|
+
懒加载模式下,只有当前激活的 tab 才会渲染。
|
|
896
|
+
```python
|
|
897
|
+
from ex4nicegui import to_ref, rxui, on, deep_ref
|
|
898
|
+
|
|
899
|
+
current_tab = to_ref("t1")
|
|
900
|
+
|
|
901
|
+
with rxui.tabs(current_tab):
|
|
902
|
+
ui.tab("t1")
|
|
903
|
+
ui.tab("t2")
|
|
904
|
+
|
|
905
|
+
with rxui.lazy_tab_panels(current_tab) as panels:
|
|
906
|
+
|
|
907
|
+
@panels.add_tab_panel("t1")
|
|
908
|
+
def _():
|
|
909
|
+
ui.notify("Hello from t1")
|
|
910
|
+
|
|
911
|
+
@panels.add_tab_panel("t2")
|
|
912
|
+
def _():
|
|
913
|
+
ui.notify("Hello from t2")
|
|
914
|
+
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
页面加载后,立刻显示 "Hello from t1"。当切换到 "t2" 页签,才会显示 "Hello from t2"。
|
|
918
|
+
|
|
919
|
+
---
|
|
920
|
+
|
|
921
|
+
### scoped_style
|
|
922
|
+
|
|
923
|
+
`scoped_style` 方法允许你创建限定在组件内部的样式。
|
|
924
|
+
|
|
925
|
+
```python
|
|
926
|
+
# 所有子元素都会有红色轮廓,但排除自身
|
|
927
|
+
with rxui.row().scoped_style("*", "outline: 1px solid red;") as row:
|
|
928
|
+
ui.label("Hello")
|
|
929
|
+
ui.label("World")
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
# 所有子元素都会有红色轮廓,包括自身
|
|
933
|
+
with rxui.row().scoped_style(":self *", "outline: 1px solid red;") as row:
|
|
934
|
+
ui.label("Hello")
|
|
935
|
+
ui.label("World")
|
|
936
|
+
|
|
937
|
+
# 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,但排除自身
|
|
938
|
+
with rxui.row().scoped_style(":hover *", "outline: 1px solid red;") as row:
|
|
939
|
+
ui.label("Hello")
|
|
940
|
+
ui.label("World")
|
|
941
|
+
|
|
942
|
+
# 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,包括自身
|
|
943
|
+
with rxui.row().scoped_style(":self:hover *", "outline: 1px solid red;") as row:
|
|
944
|
+
ui.label("Hello")
|
|
945
|
+
ui.label("World")
|
|
946
|
+
```
|
|
890
947
|
|
|
891
948
|
|
|
892
949
|
---
|
|
@@ -581,7 +581,7 @@ rxui.label("bind to ref_computed").bind_classes(
|
|
|
581
581
|
|
|
582
582
|
---
|
|
583
583
|
|
|
584
|
-
|
|
584
|
+
绑定为列表或单个字符串的响应式变量
|
|
585
585
|
|
|
586
586
|
```python
|
|
587
587
|
bg_color = to_ref("red")
|
|
@@ -594,10 +594,11 @@ rxui.select(["red", "green", "yellow"], label="bg color", value=bg_color)
|
|
|
594
594
|
rxui.select(["red", "green", "yellow"], label="text color", value=text_color)
|
|
595
595
|
|
|
596
596
|
rxui.label("binding to arrays").bind_classes([bg_color_class, text_color_class])
|
|
597
|
-
|
|
597
|
+
rxui.label("binding to single string").bind_classes(bg_color_class)
|
|
598
598
|
```
|
|
599
599
|
|
|
600
|
-
列表中每个元素为返回类名的响应式变量
|
|
600
|
+
- 列表中每个元素为返回类名的响应式变量
|
|
601
|
+
|
|
601
602
|
|
|
602
603
|
---
|
|
603
604
|
|
|
@@ -864,6 +865,62 @@ rxui.radio(names, value=current_tab).props("inline")
|
|
|
864
865
|
|
|
865
866
|
rxui.label(lambda: f"当前 tab 为:{current_tab.value}")
|
|
866
867
|
```
|
|
868
|
+
---
|
|
869
|
+
|
|
870
|
+
### lazy_tab_panels
|
|
871
|
+
|
|
872
|
+
懒加载模式下,只有当前激活的 tab 才会渲染。
|
|
873
|
+
```python
|
|
874
|
+
from ex4nicegui import to_ref, rxui, on, deep_ref
|
|
875
|
+
|
|
876
|
+
current_tab = to_ref("t1")
|
|
877
|
+
|
|
878
|
+
with rxui.tabs(current_tab):
|
|
879
|
+
ui.tab("t1")
|
|
880
|
+
ui.tab("t2")
|
|
881
|
+
|
|
882
|
+
with rxui.lazy_tab_panels(current_tab) as panels:
|
|
883
|
+
|
|
884
|
+
@panels.add_tab_panel("t1")
|
|
885
|
+
def _():
|
|
886
|
+
ui.notify("Hello from t1")
|
|
887
|
+
|
|
888
|
+
@panels.add_tab_panel("t2")
|
|
889
|
+
def _():
|
|
890
|
+
ui.notify("Hello from t2")
|
|
891
|
+
|
|
892
|
+
```
|
|
893
|
+
|
|
894
|
+
页面加载后,立刻显示 "Hello from t1"。当切换到 "t2" 页签,才会显示 "Hello from t2"。
|
|
895
|
+
|
|
896
|
+
---
|
|
897
|
+
|
|
898
|
+
### scoped_style
|
|
899
|
+
|
|
900
|
+
`scoped_style` 方法允许你创建限定在组件内部的样式。
|
|
901
|
+
|
|
902
|
+
```python
|
|
903
|
+
# 所有子元素都会有红色轮廓,但排除自身
|
|
904
|
+
with rxui.row().scoped_style("*", "outline: 1px solid red;") as row:
|
|
905
|
+
ui.label("Hello")
|
|
906
|
+
ui.label("World")
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
# 所有子元素都会有红色轮廓,包括自身
|
|
910
|
+
with rxui.row().scoped_style(":self *", "outline: 1px solid red;") as row:
|
|
911
|
+
ui.label("Hello")
|
|
912
|
+
ui.label("World")
|
|
913
|
+
|
|
914
|
+
# 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,但排除自身
|
|
915
|
+
with rxui.row().scoped_style(":hover *", "outline: 1px solid red;") as row:
|
|
916
|
+
ui.label("Hello")
|
|
917
|
+
ui.label("World")
|
|
918
|
+
|
|
919
|
+
# 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,包括自身
|
|
920
|
+
with rxui.row().scoped_style(":self:hover *", "outline: 1px solid red;") as row:
|
|
921
|
+
ui.label("Hello")
|
|
922
|
+
ui.label("World")
|
|
923
|
+
```
|
|
867
924
|
|
|
868
925
|
|
|
869
926
|
---
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
from ex4nicegui import reactive as rxui
|
|
2
|
+
from ex4nicegui.utils.refComputed import ref_computed
|
|
3
|
+
from ex4nicegui.utils.types import (
|
|
4
|
+
_TMaybeRef as TMaybeRef,
|
|
5
|
+
Ref,
|
|
6
|
+
ReadonlyRef,
|
|
7
|
+
TGetterOrReadonlyRef,
|
|
8
|
+
)
|
|
9
|
+
from ex4nicegui.utils.scheduler import next_tick
|
|
2
10
|
from ex4nicegui.utils.signals import (
|
|
3
|
-
ref_computed,
|
|
4
11
|
effect,
|
|
5
12
|
effect_refreshable,
|
|
6
13
|
to_raw,
|
|
@@ -10,9 +17,6 @@ from ex4nicegui.utils.signals import (
|
|
|
10
17
|
ref,
|
|
11
18
|
on,
|
|
12
19
|
event_batch,
|
|
13
|
-
_TMaybeRef as TMaybeRef,
|
|
14
|
-
Ref,
|
|
15
|
-
ReadonlyRef,
|
|
16
20
|
reactive,
|
|
17
21
|
deep_ref,
|
|
18
22
|
is_setter_ref,
|
|
@@ -21,6 +25,7 @@ from ex4nicegui.utils.signals import (
|
|
|
21
25
|
)
|
|
22
26
|
from ex4nicegui.utils.asyncComputed import async_computed
|
|
23
27
|
from ex4nicegui.utils.clientScope import new_scope
|
|
28
|
+
from .version import __version__
|
|
24
29
|
|
|
25
30
|
__all__ = [
|
|
26
31
|
"async_computed",
|
|
@@ -36,6 +41,7 @@ __all__ = [
|
|
|
36
41
|
"on",
|
|
37
42
|
"event_batch",
|
|
38
43
|
"TMaybeRef",
|
|
44
|
+
"TGetterOrReadonlyRef",
|
|
39
45
|
"Ref",
|
|
40
46
|
"ReadonlyRef",
|
|
41
47
|
"reactive",
|
|
@@ -44,6 +50,6 @@ __all__ = [
|
|
|
44
50
|
"to_raw",
|
|
45
51
|
"is_setter_ref",
|
|
46
52
|
"new_scope",
|
|
53
|
+
"next_tick",
|
|
54
|
+
"__version__",
|
|
47
55
|
]
|
|
48
|
-
|
|
49
|
-
__version__ = "0.6.6"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from .gsap import set_defaults, from_, to, new, run_script
|
|
2
|
+
from .timeline import Timeline as timeline
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
import warnings
|
|
6
|
+
|
|
7
|
+
RED = "\033[91m"
|
|
8
|
+
RESET = "\033[0m"
|
|
9
|
+
|
|
10
|
+
warnings.warn(
|
|
11
|
+
f"{RED}The gsap module is deprecated and will be removed in the next major version.{RESET}",
|
|
12
|
+
DeprecationWarning,
|
|
13
|
+
stacklevel=2,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"set_defaults",
|
|
18
|
+
"from_",
|
|
19
|
+
"to",
|
|
20
|
+
"new",
|
|
21
|
+
"run_script",
|
|
22
|
+
"timeline",
|
|
23
|
+
]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from typing import Callable, Optional, TypeVar, Generic
|
|
2
|
+
from nicegui import ui, Client
|
|
3
|
+
from weakref import WeakKeyDictionary
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
_T = TypeVar("_T")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ClientInstanceLocker(Generic[_T]):
|
|
10
|
+
def __init__(self, factory: Callable[[], _T]):
|
|
11
|
+
"""Creates a new instance locker that creates a new instance for each client.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
factory (Callable[[], _T]): A factory function that creates a new instance.
|
|
15
|
+
"""
|
|
16
|
+
self._client_instances: WeakKeyDictionary[Client, _T] = WeakKeyDictionary()
|
|
17
|
+
self._factory = factory
|
|
18
|
+
|
|
19
|
+
def get_object(self, client: Optional[Client] = None):
|
|
20
|
+
if not ui.context.slot_stack:
|
|
21
|
+
return None
|
|
22
|
+
|
|
23
|
+
client = client or ui.context.client
|
|
24
|
+
if client not in self._client_instances:
|
|
25
|
+
self._client_instances[client] = self._factory()
|
|
26
|
+
|
|
27
|
+
@client.on_disconnect
|
|
28
|
+
def _():
|
|
29
|
+
self._client_instances.pop(client, None)
|
|
30
|
+
|
|
31
|
+
return self._client_instances[client]
|
|
@@ -51,7 +51,9 @@ from .officials.tab import TabBindableUi as tab
|
|
|
51
51
|
from .officials.tab_panels import TabPanelsBindableUi as tab_panels
|
|
52
52
|
from .officials.tab_panel import TabPanelBindableUi as tab_panel
|
|
53
53
|
from .officials.element import ElementBindableUi as element
|
|
54
|
+
from .officials.tab_panels import LazyTabPanelsBindableUi as lazy_tab_panels
|
|
54
55
|
from .q_pagination import PaginationBindableUi as q_pagination
|
|
56
|
+
from .officials.chip import ChipBindableUi as chip
|
|
55
57
|
|
|
56
58
|
from .local_file_picker import local_file_picker
|
|
57
59
|
from .UseDraggable.UseDraggable import use_draggable
|
|
@@ -70,6 +72,7 @@ pagination = q_pagination
|
|
|
70
72
|
__all__ = [
|
|
71
73
|
"element",
|
|
72
74
|
"tab_panels",
|
|
75
|
+
"lazy_tab_panels",
|
|
73
76
|
"tab_panel",
|
|
74
77
|
"tabs",
|
|
75
78
|
"tab",
|
|
@@ -120,4 +123,5 @@ __all__ = [
|
|
|
120
123
|
"q_pagination",
|
|
121
124
|
"pagination",
|
|
122
125
|
"mermaid",
|
|
126
|
+
"chip",
|
|
123
127
|
]
|