ex4nicegui 0.3.3__tar.gz → 0.4.0__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 (110) hide show
  1. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/PKG-INFO +1 -1
  2. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/README.md +79 -1
  3. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/__init__.py +1 -1
  4. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/dataSource.py +4 -4
  5. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_echarts.py +4 -8
  6. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/EChartsComponent/ECharts.py +19 -5
  7. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/__index.py +1 -0
  8. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-color.ems.js +7 -0
  9. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-dispatch.ems.js +7 -0
  10. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-drag.ems.js +7 -0
  11. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-ease.ems.js +7 -0
  12. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-interpolate.ems.js +7 -0
  13. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-selection.ems.js +7 -0
  14. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-timer.ems.js +7 -0
  15. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-transition.ems.js +7 -0
  16. ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3/d3-zoom.ems.js +7 -0
  17. ex4nicegui-0.4.0/ex4nicegui/reactive/mermaid/__init__.py +0 -0
  18. ex4nicegui-0.4.0/ex4nicegui/reactive/mermaid/mermaid.js +75 -0
  19. ex4nicegui-0.4.0/ex4nicegui/reactive/mermaid/mermaid.py +64 -0
  20. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/base.py +2 -1
  21. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/checkbox.py +2 -1
  22. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/date.py +2 -1
  23. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/echarts.py +2 -0
  24. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/input.py +2 -1
  25. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/label.py +2 -2
  26. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/radio.py +2 -1
  27. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/select.py +3 -10
  28. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/slider.py +2 -1
  29. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/switch.py +2 -1
  30. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/table.py +7 -10
  31. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/textarea.py +2 -1
  32. ex4nicegui-0.4.0/ex4nicegui/reactive/useMouse/__init__.py +0 -0
  33. ex4nicegui-0.4.0/ex4nicegui/utils/__init__.py +0 -0
  34. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/utils/clientScope.py +3 -3
  35. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui.egg-info/PKG-INFO +1 -1
  36. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui.egg-info/SOURCES.txt +14 -0
  37. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui.egg-info/requires.txt +1 -1
  38. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/setup.py +1 -1
  39. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/LICENSE +0 -0
  40. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/__init__.py +0 -0
  41. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/dataSourceFacade.py +0 -0
  42. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/__init__.py +0 -0
  43. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/containers.py +0 -0
  44. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/layouts.py +0 -0
  45. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/models.py +0 -0
  46. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/text.py +0 -0
  47. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_aggrid.py +0 -0
  48. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_date_picker.js +0 -0
  49. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_date_picker.py +0 -0
  50. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_radio.py +0 -0
  51. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_range.py +0 -0
  52. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_select.py +0 -0
  53. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/elements/ui_slider.py +0 -0
  54. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/index.py +0 -0
  55. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/protocols.py +0 -0
  56. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/bi/types.py +0 -0
  57. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/experimental_/__init__.py +0 -0
  58. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/experimental_/gridLayout/__init__.py +0 -0
  59. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/experimental_/gridLayout/index.py +0 -0
  60. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/__init__.py +0 -0
  61. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/gridFlex/GridFlex.js +0 -0
  62. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/gridFlex/__init__.py +0 -0
  63. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/gridFlex/gridFlex.py +0 -0
  64. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/gridFlex/utils.py +0 -0
  65. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/rxFlex/__init__.py +0 -0
  66. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/rxFlex/index.py +0 -0
  67. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/layout/rxFlex/types.py +0 -0
  68. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/EChartsComponent/ECharts.js +0 -0
  69. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/EChartsComponent/__init__.py +0 -0
  70. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/UseDraggable/UseDraggable.js +0 -0
  71. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/UseDraggable/UseDraggable.py +0 -0
  72. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/UseDraggable/__init__.py +0 -0
  73. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/__init__.py +0 -0
  74. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/drawer.py +0 -0
  75. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/dropZone/__init__.py +0 -0
  76. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/dropZone/dropZone.js +0 -0
  77. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/dropZone/dropZone.py +0 -0
  78. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/fileWatcher.py +0 -0
  79. {ex4nicegui-0.3.3/ex4nicegui/reactive/useMouse → ex4nicegui-0.4.0/ex4nicegui/reactive/libs}/__init__.py +0 -0
  80. {ex4nicegui-0.3.3/ex4nicegui/utils → ex4nicegui-0.4.0/ex4nicegui/reactive/libs/d3}/__init__.py +0 -0
  81. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/local_file_picker.py +0 -0
  82. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/__init__.py +0 -0
  83. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/aggrid.py +0 -0
  84. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/button.py +0 -0
  85. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/card.py +0 -0
  86. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/color_picker.py +0 -0
  87. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/column.py +0 -0
  88. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/drawer.py +0 -0
  89. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/expansion.py +0 -0
  90. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/grid.py +0 -0
  91. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/html.py +0 -0
  92. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/icon.py +0 -0
  93. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/image.py +0 -0
  94. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/number.py +0 -0
  95. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/row.py +0 -0
  96. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/upload.py +0 -0
  97. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/officials/utils.py +0 -0
  98. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/q_pagination.py +0 -0
  99. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/rxui.py +0 -0
  100. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/useMouse/UseMouse.js +0 -0
  101. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/useMouse/UseMouse.py +0 -0
  102. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/reactive/usePagination.py +0 -0
  103. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/tools/__init__.py +0 -0
  104. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/tools/debug.py +0 -0
  105. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/utils/common.py +0 -0
  106. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui/utils/signals.py +0 -0
  107. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui.egg-info/dependency_links.txt +0 -0
  108. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui.egg-info/not-zip-safe +0 -0
  109. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/ex4nicegui.egg-info/top_level.txt +0 -0
  110. {ex4nicegui-0.3.3 → ex4nicegui-0.4.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ex4nicegui
3
- Version: 0.3.3
3
+ Version: 0.4.0
4
4
  Summary: ...
5
5
  Home-page:
6
6
  Author: carson_jia
@@ -82,6 +82,83 @@ ui.run()
82
82
  ![](./asset/asyc_echarts_title.gif)
83
83
 
84
84
 
85
+ ### echarts 图表鼠标事件
86
+
87
+ `on` 函数参数 `event_name` 以及 `query` 使用,查看[echarts 事件中文文档](https://echarts.apache.org/handbook/zh/concepts/event/)
88
+
89
+
90
+ 以下例子绑定鼠标单击事件
91
+ ```python
92
+ from nicegui import ui
93
+ from ex4nicegui.reactive import rxui
94
+
95
+ opts = {
96
+ "xAxis": {"type": "value", "boundaryGap": [0, 0.01]},
97
+ "yAxis": {
98
+ "type": "category",
99
+ "data": ["Brazil", "Indonesia", "USA", "India", "China", "World"],
100
+ },
101
+ "series": [
102
+ {
103
+ "name": "first",
104
+ "type": "bar",
105
+ "data": [18203, 23489, 29034, 104970, 131744, 630230],
106
+ },
107
+ {
108
+ "name": "second",
109
+ "type": "bar",
110
+ "data": [19325, 23438, 31000, 121594, 134141, 681807],
111
+ },
112
+ ],
113
+ }
114
+
115
+ bar = rxui.echarts(opts)
116
+
117
+ def on_click(e: rxui.echarts.EChartsMouseEventArguments):
118
+ ui.notify(f"on_click:{e.seriesName}:{e.name}:{e.value}")
119
+
120
+
121
+ bar.on("click", on_click)
122
+ ```
123
+
124
+
125
+ 以下例子只针对指定系列触发鼠标划过事件
126
+ ```python
127
+ from nicegui import ui
128
+ from ex4nicegui.reactive import rxui
129
+
130
+ opts = {
131
+ "xAxis": {"type": "value", "boundaryGap": [0, 0.01]},
132
+ "yAxis": {
133
+ "type": "category",
134
+ "data": ["Brazil", "Indonesia", "USA", "India", "China", "World"],
135
+ },
136
+ "series": [
137
+ {
138
+ "name": "first",
139
+ "type": "bar",
140
+ "data": [18203, 23489, 29034, 104970, 131744, 630230],
141
+ },
142
+ {
143
+ "name": "second",
144
+ "type": "bar",
145
+ "data": [19325, 23438, 31000, 121594, 134141, 681807],
146
+ },
147
+ ],
148
+ }
149
+
150
+ bar = rxui.echarts(opts)
151
+
152
+ def on_first_series_mouseover(e: rxui.echarts.EChartsMouseEventArguments):
153
+ ui.notify(f"on_first_series_mouseover:{e.seriesName}:{e.name}:{e.value}")
154
+
155
+
156
+ bar.on("mouseover", on_first_series_mouseover, query={"seriesName": "first"})
157
+
158
+ ui.run()
159
+ ```
160
+
161
+
85
162
 
86
163
  ## BI 模块
87
164
 
@@ -94,6 +171,7 @@ from nicegui import ui
94
171
  import pandas as pd
95
172
  import numpy as np
96
173
  from ex4nicegui import bi
174
+ from ex4nicegui.reactive import rxui
97
175
  from ex4nicegui import effect, effect_refreshable
98
176
  from pyecharts.charts import Bar
99
177
 
@@ -164,7 +242,7 @@ with ui.grid(columns=2):
164
242
 
165
243
  # 绑定点击事件,即可实现跳转
166
244
  @bar2.on_chart_click
167
- def _(e):
245
+ def _(e: rxui.echarts.EChartsMouseEventArguments):
168
246
  ui.open(f"/details/{e.name}", new_tab=True)
169
247
 
170
248
 
@@ -16,4 +16,4 @@ from signe import batch
16
16
  from ex4nicegui.experimental_ import gridLayout as exp_ui
17
17
 
18
18
 
19
- __version__ = "0.3.3"
19
+ __version__ = "0.4.0"
@@ -1,6 +1,6 @@
1
1
  from typing import Callable, Dict, List, Optional, Set, cast
2
2
  from ex4nicegui import to_ref, ref_computed, on
3
- from nicegui import globals as ng_globals, Client, ui
3
+ from nicegui import context as ng_context, Client, ui
4
4
 
5
5
  from dataclasses import dataclass, field
6
6
  from . import types
@@ -123,7 +123,7 @@ class DataSource:
123
123
  return self.__id
124
124
 
125
125
  def get_component_info_key(self, element_id: types._TElementID):
126
- client_id = ng_globals.get_client().id
126
+ client_id = ng_context.get_client().id
127
127
  return ComponentInfoKey(client_id, element_id)
128
128
 
129
129
  def get_filtered_data(self, element: ui.element):
@@ -148,7 +148,7 @@ class DataSource:
148
148
  element_id: types._TElementID,
149
149
  update_callback: Optional[_TComponentUpdateCallback] = None,
150
150
  ):
151
- ng_client = ng_globals.get_client()
151
+ ng_client = ng_context.get_client()
152
152
  client_id = ng_client.id
153
153
 
154
154
  if not self._component_map.has_client_record(client_id):
@@ -164,7 +164,7 @@ class DataSource:
164
164
  return info
165
165
 
166
166
  def send_filter(self, element_id: types._TElementID, filter: Filter):
167
- client_id = ng_globals.get_client().id
167
+ client_id = ng_context.get_client().id
168
168
  key = ComponentInfoKey(client_id, element_id)
169
169
 
170
170
  if not self._component_map.has_record(key):
@@ -21,15 +21,11 @@ class EChartsResult(UiResult[echarts]):
21
21
  super().__init__(element, dataSource)
22
22
  self.chart_update = chart_update
23
23
 
24
- def on_chart_click(
25
- self, handler: Optional[Callable[[EChartsMouseEventArguments], Any]]
26
- ):
27
- return self.element.on_chart_click(handler)
24
+ def on_chart_click(self, handler: Callable[[EChartsMouseEventArguments], Any]):
25
+ return self.element.echarts_on("click", handler)
28
26
 
29
- def on_chart_click_blank(
30
- self, handler: Optional[Callable[[UiEventArguments], Any]]
31
- ):
32
- return self.element.on_chart_click_blank(handler)
27
+ def on_chart_click_blank(self, handler: Callable[[UiEventArguments], Any]):
28
+ return self.element.on_click_blank(handler)
33
29
 
34
30
  def cancel_linkage(self, *source: Union[ui.element, "UiResult"]):
35
31
  super().cancel_linkage(*source)
@@ -1,9 +1,10 @@
1
1
  from typing import Any, Callable, Dict, List, Optional, Union
2
+ from typing_extensions import Literal
2
3
  from dataclasses import dataclass
3
4
  from nicegui.dataclasses import KWONLY_SLOTS
4
5
  from nicegui.events import handle_event, UiEventArguments
5
6
  from nicegui.element import Element
6
- from nicegui import globals as ng_globals
7
+ from nicegui import context as ng_context
7
8
  from pathlib import Path
8
9
  import nicegui
9
10
  import uuid
@@ -41,6 +42,17 @@ class EChartsMouseEventArguments(UiEventArguments):
41
42
 
42
43
 
43
44
  _T_echats_on_callback = Callable[[EChartsMouseEventArguments], Any]
45
+ _T_mouse_event_name = Literal[
46
+ "click",
47
+ "dblclick",
48
+ "mousedown",
49
+ "mousemove",
50
+ "mouseup",
51
+ "mouseover",
52
+ "mouseout",
53
+ "globalout",
54
+ "contextmenu",
55
+ ]
44
56
 
45
57
 
46
58
  class echarts(Element, component="ECharts.js", libraries=libraries): # type: ignore
@@ -51,13 +63,15 @@ class echarts(Element, component="ECharts.js", libraries=libraries): # type: ig
51
63
  self._echarts_on_tasks: List[Callable] = []
52
64
  self._echarts_on_callback_map: Dict[str, _T_echats_on_callback] = {}
53
65
 
54
- def on_client_connect(client: nicegui.Client) -> Any:
66
+ async def on_client_connect(client: nicegui.Client) -> Any:
67
+ await client.connected()
68
+
55
69
  for func in self._echarts_on_tasks:
56
70
  func()
57
71
 
58
72
  client.connect_handlers.remove(on_client_connect) # type: ignore
59
73
 
60
- ng_globals.get_client().on_connect(on_client_connect)
74
+ ng_context.get_client().on_connect(on_client_connect)
61
75
 
62
76
  def echartsOn_handler(e):
63
77
  callbackId = e.args["callbackId"]
@@ -108,11 +122,11 @@ class echarts(Element, component="ECharts.js", libraries=libraries): # type: ig
108
122
 
109
123
  def echarts_on(
110
124
  self,
111
- event_name: str,
125
+ event_name: _T_mouse_event_name,
112
126
  handler: _T_echats_on_callback,
113
127
  query: Optional[Union[str, Dict]] = None,
114
128
  ):
115
- if not ng_globals.get_client().has_socket_connection:
129
+ if not ng_context.get_client().has_socket_connection:
116
130
 
117
131
  def task_func():
118
132
  self.echarts_on(event_name, handler, query)
@@ -9,3 +9,4 @@ from .useMouse.UseMouse import use_mouse
9
9
  from .usePagination import PaginationRef as use_pagination
10
10
  from .dropZone.dropZone import use_drag_zone
11
11
  from .fileWatcher import FilesWatcher
12
+ from .mermaid.mermaid import Mermaid as mermaid
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-color@3.1.0/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ function t(t, e, i) { t.prototype = e.prototype = i, i.constructor = t } function e(t, e) { var i = Object.create(t.prototype); for (var n in e) i[n] = e[n]; return i } function i() { } var n = .7, r = 1 / n, a = "\\s*([+-]?\\d+)\\s*", s = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", h = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", o = /^#([0-9a-f]{3,8})$/, l = new RegExp(`^rgb\\(${a},${a},${a}\\)$`), u = new RegExp(`^rgb\\(${h},${h},${h}\\)$`), c = new RegExp(`^rgba\\(${a},${a},${a},${s}\\)$`), g = new RegExp(`^rgba\\(${h},${h},${h},${s}\\)$`), p = new RegExp(`^hsl\\(${s},${h},${h}\\)$`), b = new RegExp(`^hsla\\(${s},${h},${h},${s}\\)$`), d = { aliceblue: 15792383, antiquewhite: 16444375, aqua: 65535, aquamarine: 8388564, azure: 15794175, beige: 16119260, bisque: 16770244, black: 0, blanchedalmond: 16772045, blue: 255, blueviolet: 9055202, brown: 10824234, burlywood: 14596231, cadetblue: 6266528, chartreuse: 8388352, chocolate: 13789470, coral: 16744272, cornflowerblue: 6591981, cornsilk: 16775388, crimson: 14423100, cyan: 65535, darkblue: 139, darkcyan: 35723, darkgoldenrod: 12092939, darkgray: 11119017, darkgreen: 25600, darkgrey: 11119017, darkkhaki: 12433259, darkmagenta: 9109643, darkolivegreen: 5597999, darkorange: 16747520, darkorchid: 10040012, darkred: 9109504, darksalmon: 15308410, darkseagreen: 9419919, darkslateblue: 4734347, darkslategray: 3100495, darkslategrey: 3100495, darkturquoise: 52945, darkviolet: 9699539, deeppink: 16716947, deepskyblue: 49151, dimgray: 6908265, dimgrey: 6908265, dodgerblue: 2003199, firebrick: 11674146, floralwhite: 16775920, forestgreen: 2263842, fuchsia: 16711935, gainsboro: 14474460, ghostwhite: 16316671, gold: 16766720, goldenrod: 14329120, gray: 8421504, green: 32768, greenyellow: 11403055, grey: 8421504, honeydew: 15794160, hotpink: 16738740, indianred: 13458524, indigo: 4915330, ivory: 16777200, khaki: 15787660, lavender: 15132410, lavenderblush: 16773365, lawngreen: 8190976, lemonchiffon: 16775885, lightblue: 11393254, lightcoral: 15761536, lightcyan: 14745599, lightgoldenrodyellow: 16448210, lightgray: 13882323, lightgreen: 9498256, lightgrey: 13882323, lightpink: 16758465, lightsalmon: 16752762, lightseagreen: 2142890, lightskyblue: 8900346, lightslategray: 7833753, lightslategrey: 7833753, lightsteelblue: 11584734, lightyellow: 16777184, lime: 65280, limegreen: 3329330, linen: 16445670, magenta: 16711935, maroon: 8388608, mediumaquamarine: 6737322, mediumblue: 205, mediumorchid: 12211667, mediumpurple: 9662683, mediumseagreen: 3978097, mediumslateblue: 8087790, mediumspringgreen: 64154, mediumturquoise: 4772300, mediumvioletred: 13047173, midnightblue: 1644912, mintcream: 16121850, mistyrose: 16770273, moccasin: 16770229, navajowhite: 16768685, navy: 128, oldlace: 16643558, olive: 8421376, olivedrab: 7048739, orange: 16753920, orangered: 16729344, orchid: 14315734, palegoldenrod: 15657130, palegreen: 10025880, paleturquoise: 11529966, palevioletred: 14381203, papayawhip: 16773077, peachpuff: 16767673, peru: 13468991, pink: 16761035, plum: 14524637, powderblue: 11591910, purple: 8388736, rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, saddlebrown: 9127187, salmon: 16416882, sandybrown: 16032864, seagreen: 3050327, seashell: 16774638, sienna: 10506797, silver: 12632256, skyblue: 8900331, slateblue: 6970061, slategray: 7372944, slategrey: 7372944, snow: 16775930, springgreen: 65407, steelblue: 4620980, tan: 13808780, teal: 32896, thistle: 14204888, tomato: 16737095, turquoise: 4251856, violet: 15631086, wheat: 16113331, white: 16777215, whitesmoke: 16119285, yellow: 16776960, yellowgreen: 10145074 }; function f() { return this.rgb().formatHex() } function w() { return this.rgb().formatRgb() } function y(t) { var e, i; return t = (t + "").trim().toLowerCase(), (e = o.exec(t)) ? (i = e[1].length, e = parseInt(e[1], 16), 6 === i ? m(e) : 3 === i ? new M(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | 240 & e, (15 & e) << 4 | 15 & e, 1) : 8 === i ? $(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (255 & e) / 255) : 4 === i ? $(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | 240 & e, ((15 & e) << 4 | 15 & e) / 255) : null) : (e = l.exec(t)) ? new M(e[1], e[2], e[3], 1) : (e = u.exec(t)) ? new M(255 * e[1] / 100, 255 * e[2] / 100, 255 * e[3] / 100, 1) : (e = c.exec(t)) ? $(e[1], e[2], e[3], e[4]) : (e = g.exec(t)) ? $(255 * e[1] / 100, 255 * e[2] / 100, 255 * e[3] / 100, e[4]) : (e = p.exec(t)) ? E(e[1], e[2] / 100, e[3] / 100, 1) : (e = b.exec(t)) ? E(e[1], e[2] / 100, e[3] / 100, e[4]) : d.hasOwnProperty(t) ? m(d[t]) : "transparent" === t ? new M(NaN, NaN, NaN, 0) : null } function m(t) { return new M(t >> 16 & 255, t >> 8 & 255, 255 & t, 1) } function $(t, e, i, n) { return n <= 0 && (t = e = i = NaN), new M(t, e, i, n) } function N(t) { return t instanceof i || (t = y(t)), t ? new M((t = t.rgb()).r, t.g, t.b, t.opacity) : new M } function k(t, e, i, n) { return 1 === arguments.length ? N(t) : new M(t, e, i, null == n ? 1 : n) } function M(t, e, i, n) { this.r = +t, this.g = +e, this.b = +i, this.opacity = +n } function v() { return `#${R(this.r)}${R(this.g)}${R(this.b)}` } function x() { const t = q(this.opacity); return `${1 === t ? "rgb(" : "rgba("}${H(this.r)}, ${H(this.g)}, ${H(this.b)}${1 === t ? ")" : `, ${t})`}` } function q(t) { return isNaN(t) ? 1 : Math.max(0, Math.min(1, t)) } function H(t) { return Math.max(0, Math.min(255, Math.round(t) || 0)) } function R(t) { return ((t = H(t)) < 16 ? "0" : "") + t.toString(16) } function E(t, e, i, n) { return n <= 0 ? t = e = i = NaN : i <= 0 || i >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new O(t, e, i, n) } function j(t) { if (t instanceof O) return new O(t.h, t.s, t.l, t.opacity); if (t instanceof i || (t = y(t)), !t) return new O; if (t instanceof O) return t; var e = (t = t.rgb()).r / 255, n = t.g / 255, r = t.b / 255, a = Math.min(e, n, r), s = Math.max(e, n, r), h = NaN, o = s - a, l = (s + a) / 2; return o ? (h = e === s ? (n - r) / o + 6 * (n < r) : n === s ? (r - e) / o + 2 : (e - n) / o + 4, o /= l < .5 ? s + a : 2 - s - a, h *= 60) : o = l > 0 && l < 1 ? 0 : h, new O(h, o, l, t.opacity) } function I(t, e, i, n) { return 1 === arguments.length ? j(t) : new O(t, e, i, null == n ? 1 : n) } function O(t, e, i, n) { this.h = +t, this.s = +e, this.l = +i, this.opacity = +n } function P(t) { return (t = (t || 0) % 360) < 0 ? t + 360 : t } function S(t) { return Math.max(0, Math.min(1, t || 0)) } function z(t, e, i) { return 255 * (t < 60 ? e + (i - e) * t / 60 : t < 180 ? i : t < 240 ? e + (i - e) * (240 - t) / 60 : e) } t(i, y, { copy(t) { return Object.assign(new this.constructor, this, t) }, displayable() { return this.rgb().displayable() }, hex: f, formatHex: f, formatHex8: function () { return this.rgb().formatHex8() }, formatHsl: function () { return j(this).formatHsl() }, formatRgb: w, toString: w }), t(M, k, e(i, { brighter(t) { return t = null == t ? r : Math.pow(r, t), new M(this.r * t, this.g * t, this.b * t, this.opacity) }, darker(t) { return t = null == t ? n : Math.pow(n, t), new M(this.r * t, this.g * t, this.b * t, this.opacity) }, rgb() { return this }, clamp() { return new M(H(this.r), H(this.g), H(this.b), q(this.opacity)) }, displayable() { return -.5 <= this.r && this.r < 255.5 && -.5 <= this.g && this.g < 255.5 && -.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1 }, hex: v, formatHex: v, formatHex8: function () { return `#${R(this.r)}${R(this.g)}${R(this.b)}${R(255 * (isNaN(this.opacity) ? 1 : this.opacity))}` }, formatRgb: x, toString: x })), t(O, I, e(i, { brighter(t) { return t = null == t ? r : Math.pow(r, t), new O(this.h, this.s, this.l * t, this.opacity) }, darker(t) { return t = null == t ? n : Math.pow(n, t), new O(this.h, this.s, this.l * t, this.opacity) }, rgb() { var t = this.h % 360 + 360 * (this.h < 0), e = isNaN(t) || isNaN(this.s) ? 0 : this.s, i = this.l, n = i + (i < .5 ? i : 1 - i) * e, r = 2 * i - n; return new M(z(t >= 240 ? t - 240 : t + 120, r, n), z(t, r, n), z(t < 120 ? t + 240 : t - 120, r, n), this.opacity) }, clamp() { return new O(P(this.h), S(this.s), S(this.l), q(this.opacity)) }, displayable() { return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1 }, formatHsl() { const t = q(this.opacity); return `${1 === t ? "hsl(" : "hsla("}${P(this.h)}, ${100 * S(this.s)}%, ${100 * S(this.l)}%${1 === t ? ")" : `, ${t})`}` } })); const C = Math.PI / 180, L = 180 / Math.PI, A = .96422, B = 1, D = .82521, F = 4 / 29, G = 6 / 29, J = 3 * G * G, K = G * G * G; function Q(t) { if (t instanceof V) return new V(t.l, t.a, t.b, t.opacity); if (t instanceof it) return nt(t); t instanceof M || (t = N(t)); var e, i, n = Z(t.r), r = Z(t.g), a = Z(t.b), s = W((.2225045 * n + .7168786 * r + .0606169 * a) / B); return n === r && r === a ? e = i = s : (e = W((.4360747 * n + .3850649 * r + .1430804 * a) / A), i = W((.0139322 * n + .0971045 * r + .7141733 * a) / D)), new V(116 * s - 16, 500 * (e - s), 200 * (s - i), t.opacity) } function T(t, e) { return new V(t, 0, 0, null == e ? 1 : e) } function U(t, e, i, n) { return 1 === arguments.length ? Q(t) : new V(t, e, i, null == n ? 1 : n) } function V(t, e, i, n) { this.l = +t, this.a = +e, this.b = +i, this.opacity = +n } function W(t) { return t > K ? Math.pow(t, 1 / 3) : t / J + F } function X(t) { return t > G ? t * t * t : J * (t - F) } function Y(t) { return 255 * (t <= .0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055) } function Z(t) { return (t /= 255) <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4) } function _(t) { if (t instanceof it) return new it(t.h, t.c, t.l, t.opacity); if (t instanceof V || (t = Q(t)), 0 === t.a && 0 === t.b) return new it(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity); var e = Math.atan2(t.b, t.a) * L; return new it(e < 0 ? e + 360 : e, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity) } function tt(t, e, i, n) { return 1 === arguments.length ? _(t) : new it(i, e, t, null == n ? 1 : n) } function et(t, e, i, n) { return 1 === arguments.length ? _(t) : new it(t, e, i, null == n ? 1 : n) } function it(t, e, i, n) { this.h = +t, this.c = +e, this.l = +i, this.opacity = +n } function nt(t) { if (isNaN(t.h)) return new V(t.l, 0, 0, t.opacity); var e = t.h * C; return new V(t.l, Math.cos(e) * t.c, Math.sin(e) * t.c, t.opacity) } t(V, U, e(i, { brighter(t) { return new V(this.l + 18 * (null == t ? 1 : t), this.a, this.b, this.opacity) }, darker(t) { return new V(this.l - 18 * (null == t ? 1 : t), this.a, this.b, this.opacity) }, rgb() { var t = (this.l + 16) / 116, e = isNaN(this.a) ? t : t + this.a / 500, i = isNaN(this.b) ? t : t - this.b / 200; return new M(Y(3.1338561 * (e = A * X(e)) - 1.6168667 * (t = B * X(t)) - .4906146 * (i = D * X(i))), Y(-.9787684 * e + 1.9161415 * t + .033454 * i), Y(.0719453 * e - .2289914 * t + 1.4052427 * i), this.opacity) } })), t(it, et, e(i, { brighter(t) { return new it(this.h, this.c, this.l + 18 * (null == t ? 1 : t), this.opacity) }, darker(t) { return new it(this.h, this.c, this.l - 18 * (null == t ? 1 : t), this.opacity) }, rgb() { return nt(this).rgb() } })); var rt = -.14861, at = 1.78277, st = -.29227, ht = -.90649, ot = 1.97294, lt = ot * ht, ut = ot * at, ct = at * st - ht * rt; function gt(t, e, i, n) { return 1 === arguments.length ? function (t) { if (t instanceof pt) return new pt(t.h, t.s, t.l, t.opacity); t instanceof M || (t = N(t)); var e = t.r / 255, i = t.g / 255, n = t.b / 255, r = (ct * n + lt * e - ut * i) / (ct + lt - ut), a = n - r, s = (ot * (i - r) - st * a) / ht, h = Math.sqrt(s * s + a * a) / (ot * r * (1 - r)), o = h ? Math.atan2(s, a) * L - 120 : NaN; return new pt(o < 0 ? o + 360 : o, h, r, t.opacity) }(t) : new pt(t, e, i, null == n ? 1 : n) } function pt(t, e, i, n) { this.h = +t, this.s = +e, this.l = +i, this.opacity = +n } t(pt, gt, e(i, { brighter(t) { return t = null == t ? r : Math.pow(r, t), new pt(this.h, this.s, this.l * t, this.opacity) }, darker(t) { return t = null == t ? n : Math.pow(n, t), new pt(this.h, this.s, this.l * t, this.opacity) }, rgb() { var t = isNaN(this.h) ? 0 : (this.h + 120) * C, e = +this.l, i = isNaN(this.s) ? 0 : this.s * e * (1 - e), n = Math.cos(t), r = Math.sin(t); return new M(255 * (e + i * (rt * n + at * r)), 255 * (e + i * (st * n + ht * r)), 255 * (e + i * (ot * n)), this.opacity) } })); export { y as color, gt as cubehelix, T as gray, et as hcl, I as hsl, U as lab, tt as lch, k as rgb }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-dispatch@3.0.1/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ var n = { value: () => { } }; function r() { for (var n, r = 0, e = arguments.length, o = {}; r < e; ++r) { if (!(n = arguments[r] + "") || n in o || /[\s.]/.test(n)) throw new Error("illegal type: " + n); o[n] = [] } return new t(o) } function t(n) { this._ = n } function e(n, r) { for (var t, e = 0, o = n.length; e < o; ++e)if ((t = n[e]).name === r) return t.value } function o(r, t, e) { for (var o = 0, i = r.length; o < i; ++o)if (r[o].name === t) { r[o] = n, r = r.slice(0, o).concat(r.slice(o + 1)); break } return null != e && r.push({ name: t, value: e }), r } t.prototype = r.prototype = { constructor: t, on: function (n, r) { var t, i, l = this._, a = (i = l, (n + "").trim().split(/^|\s+/).map((function (n) { var r = "", t = n.indexOf("."); if (t >= 0 && (r = n.slice(t + 1), n = n.slice(0, t)), n && !i.hasOwnProperty(n)) throw new Error("unknown type: " + n); return { type: n, name: r } }))), f = -1, u = a.length; if (!(arguments.length < 2)) { if (null != r && "function" != typeof r) throw new Error("invalid callback: " + r); for (; ++f < u;)if (t = (n = a[f]).type) l[t] = o(l[t], n.name, r); else if (null == r) for (t in l) l[t] = o(l[t], n.name, null); return this } for (; ++f < u;)if ((t = (n = a[f]).type) && (t = e(l[t], n.name))) return t }, copy: function () { var n = {}, r = this._; for (var e in r) n[e] = r[e].slice(); return new t(n) }, call: function (n, r) { if ((t = arguments.length - 2) > 0) for (var t, e, o = new Array(t), i = 0; i < t; ++i)o[i] = arguments[i + 2]; if (!this._.hasOwnProperty(n)) throw new Error("unknown type: " + n); for (i = 0, t = (e = this._[n]).length; i < t; ++i)e[i].value.apply(r, o) }, apply: function (n, r, t) { if (!this._.hasOwnProperty(n)) throw new Error("unknown type: " + n); for (var e = this._[n], o = 0, i = e.length; o < i; ++o)e[o].value.apply(r, t) } }; export { r as dispatch }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-drag@3.0.0/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ import { dispatch as e } from "d3-dispatch"; import { select as t, pointer as n } from "d3-selection"; const r = { passive: !1 }, o = { capture: !0, passive: !1 }; function a(e) { e.stopImmediatePropagation() } function i(e) { e.preventDefault(), e.stopImmediatePropagation() } function u(e) { var n = e.document.documentElement, r = t(e).on("dragstart.drag", i, o); "onselectstart" in n ? r.on("selectstart.drag", i, o) : (n.__noselect = n.style.MozUserSelect, n.style.MozUserSelect = "none") } function c(e, n) { var r = e.document.documentElement, a = t(e).on("dragstart.drag", null); n && (a.on("click.drag", i, o), setTimeout((function () { a.on("click.drag", null) }), 0)), "onselectstart" in r ? a.on("selectstart.drag", null) : (r.style.MozUserSelect = r.__noselect, delete r.__noselect) } var l = e => () => e; function s(e, { sourceEvent: t, subject: n, target: r, identifier: o, active: a, x: i, y: u, dx: c, dy: l, dispatch: s }) { Object.defineProperties(this, { type: { value: e, enumerable: !0, configurable: !0 }, sourceEvent: { value: t, enumerable: !0, configurable: !0 }, subject: { value: n, enumerable: !0, configurable: !0 }, target: { value: r, enumerable: !0, configurable: !0 }, identifier: { value: o, enumerable: !0, configurable: !0 }, active: { value: a, enumerable: !0, configurable: !0 }, x: { value: i, enumerable: !0, configurable: !0 }, y: { value: u, enumerable: !0, configurable: !0 }, dx: { value: c, enumerable: !0, configurable: !0 }, dy: { value: l, enumerable: !0, configurable: !0 }, _: { value: s } }) } function f(e) { return !e.ctrlKey && !e.button } function d() { return this.parentNode } function g(e, t) { return null == t ? { x: e.x, y: e.y } : t } function h() { return navigator.maxTouchPoints || "ontouchstart" in this } function m() { var m, v, p, b, y = f, x = d, _ = g, w = h, E = {}, T = e("start", "drag", "end"), j = 0, k = 0; function M(e) { e.on("mousedown.drag", P).filter(w).on("touchstart.drag", S).on("touchmove.drag", U, r).on("touchend.drag touchcancel.drag", I).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") } function P(e, n) { if (!b && y.call(this, e, n)) { var r = X(this, x.call(this, e, n), e, n, "mouse"); r && (t(e.view).on("mousemove.drag", z, o).on("mouseup.drag", D, o), u(e.view), a(e), p = !1, m = e.clientX, v = e.clientY, r("start", e)) } } function z(e) { if (i(e), !p) { var t = e.clientX - m, n = e.clientY - v; p = t * t + n * n > k } E.mouse("drag", e) } function D(e) { t(e.view).on("mousemove.drag mouseup.drag", null), c(e.view, p), i(e), E.mouse("end", e) } function S(e, t) { if (y.call(this, e, t)) { var n, r, o = e.changedTouches, i = x.call(this, e, t), u = o.length; for (n = 0; n < u; ++n)(r = X(this, i, e, t, o[n].identifier, o[n])) && (a(e), r("start", e, o[n])) } } function U(e) { var t, n, r = e.changedTouches, o = r.length; for (t = 0; t < o; ++t)(n = E[r[t].identifier]) && (i(e), n("drag", e, r[t])) } function I(e) { var t, n, r = e.changedTouches, o = r.length; for (b && clearTimeout(b), b = setTimeout((function () { b = null }), 500), t = 0; t < o; ++t)(n = E[r[t].identifier]) && (a(e), n("end", e, r[t])) } function X(e, t, r, o, a, i) { var u, c, l, f = T.copy(), d = n(i || r, t); if (null != (l = _.call(e, new s("beforestart", { sourceEvent: r, target: M, identifier: a, active: j, x: d[0], y: d[1], dx: 0, dy: 0, dispatch: f }), o))) return u = l.x - d[0] || 0, c = l.y - d[1] || 0, function r(i, g, h) { var m, v = d; switch (i) { case "start": E[a] = r, m = j++; break; case "end": delete E[a], --j; case "drag": d = n(h || g, t), m = j }f.call(i, e, new s(i, { sourceEvent: g, subject: l, target: M, identifier: a, active: m, x: d[0] + u, y: d[1] + c, dx: d[0] - v[0], dy: d[1] - v[1], dispatch: f }), o) } } return M.filter = function (e) { return arguments.length ? (y = "function" == typeof e ? e : l(!!e), M) : y }, M.container = function (e) { return arguments.length ? (x = "function" == typeof e ? e : l(e), M) : x }, M.subject = function (e) { return arguments.length ? (_ = "function" == typeof e ? e : l(e), M) : _ }, M.touchable = function (e) { return arguments.length ? (w = "function" == typeof e ? e : l(!!e), M) : w }, M.on = function () { var e = T.on.apply(T, arguments); return e === T ? M : e }, M.clickDistance = function (e) { return arguments.length ? (k = (e = +e) * e, M) : Math.sqrt(k) }, M } s.prototype.on = function () { var e = this._.on.apply(this._, arguments); return e === this._ ? this : e }; export { m as drag, u as dragDisable, c as dragEnable }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-ease@3.0.1/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ const n = n => +n; function t(n) { return n * n } function e(n) { return n * (2 - n) } function a(n) { return ((n *= 2) <= 1 ? n * n : --n * (2 - n) + 1) / 2 } function u(n) { return n * n * n } function r(n) { return --n * n * n + 1 } function s(n) { return ((n *= 2) <= 1 ? n * n * n : (n -= 2) * n * n + 2) / 2 } var o = function n(t) { function e(n) { return Math.pow(n, t) } return t = +t, e.exponent = n, e }(3), i = function n(t) { function e(n) { return 1 - Math.pow(1 - n, t) } return t = +t, e.exponent = n, e }(3), c = function n(t) { function e(n) { return ((n *= 2) <= 1 ? Math.pow(n, t) : 2 - Math.pow(2 - n, t)) / 2 } return t = +t, e.exponent = n, e }(3), f = Math.PI, h = f / 2; function M(n) { return 1 == +n ? 1 : 1 - Math.cos(n * h) } function p(n) { return Math.sin(n * h) } function I(n) { return (1 - Math.cos(f * n)) / 2 } function l(n) { return 1.0009775171065494 * (Math.pow(2, -10 * n) - .0009765625) } function O(n) { return l(1 - +n) } function x(n) { return 1 - l(n) } function d(n) { return ((n *= 2) <= 1 ? l(1 - n) : 2 - l(n - 1)) / 2 } function v(n) { return 1 - Math.sqrt(1 - n * n) } function B(n) { return Math.sqrt(1 - --n * n) } function C(n) { return ((n *= 2) <= 1 ? 1 - Math.sqrt(1 - n * n) : Math.sqrt(1 - (n -= 2) * n) + 1) / 2 } var E = 4 / 11, m = 6 / 11, P = 8 / 11, w = 3 / 4, b = 9 / 11, k = 10 / 11, q = 15 / 16, y = 21 / 22, Q = 63 / 64, S = 1 / E / E; function L(n) { return 1 - g(1 - n) } function g(n) { return (n = +n) < E ? S * n * n : n < P ? S * (n -= m) * n + w : n < k ? S * (n -= b) * n + q : S * (n -= y) * n + Q } function j(n) { return ((n *= 2) <= 1 ? 1 - g(1 - n) : g(n - 1) + 1) / 2 } var z = 1.70158, A = function n(t) { function e(n) { return (n = +n) * n * (t * (n - 1) + n) } return t = +t, e.overshoot = n, e }(z), D = function n(t) { function e(n) { return --n * n * ((n + 1) * t + n) + 1 } return t = +t, e.overshoot = n, e }(z), F = function n(t) { function e(n) { return ((n *= 2) < 1 ? n * n * ((t + 1) * n - t) : (n -= 2) * n * ((t + 1) * n + t) + 2) / 2 } return t = +t, e.overshoot = n, e }(z), G = 2 * Math.PI, H = function n(t, e) { var a = Math.asin(1 / (t = Math.max(1, t))) * (e /= G); function u(n) { return t * l(- --n) * Math.sin((a - n) / e) } return u.amplitude = function (t) { return n(t, e * G) }, u.period = function (e) { return n(t, e) }, u }(1, .3), J = function n(t, e) { var a = Math.asin(1 / (t = Math.max(1, t))) * (e /= G); function u(n) { return 1 - t * l(n = +n) * Math.sin((n + a) / e) } return u.amplitude = function (t) { return n(t, e * G) }, u.period = function (e) { return n(t, e) }, u }(1, .3), K = function n(t, e) { var a = Math.asin(1 / (t = Math.max(1, t))) * (e /= G); function u(n) { return ((n = 2 * n - 1) < 0 ? t * l(-n) * Math.sin((a - n) / e) : 2 - t * l(n) * Math.sin((a + n) / e)) / 2 } return u.amplitude = function (t) { return n(t, e * G) }, u.period = function (e) { return n(t, e) }, u }(1, .3); export { F as easeBack, A as easeBackIn, F as easeBackInOut, D as easeBackOut, g as easeBounce, L as easeBounceIn, j as easeBounceInOut, g as easeBounceOut, C as easeCircle, v as easeCircleIn, C as easeCircleInOut, B as easeCircleOut, s as easeCubic, u as easeCubicIn, s as easeCubicInOut, r as easeCubicOut, J as easeElastic, H as easeElasticIn, K as easeElasticInOut, J as easeElasticOut, d as easeExp, O as easeExpIn, d as easeExpInOut, x as easeExpOut, n as easeLinear, c as easePoly, o as easePolyIn, c as easePolyInOut, i as easePolyOut, a as easeQuad, t as easeQuadIn, a as easeQuadInOut, e as easeQuadOut, I as easeSin, M as easeSinIn, I as easeSinInOut, p as easeSinOut }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-interpolate@3.0.1/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ import { rgb as t, color as n, hsl as r, lab as e, hcl as a, cubehelix as o } from "d3-color"; function u(t, n, r, e, a) { var o = t * t, u = o * t; return ((1 - 3 * t + 3 * o - u) * n + (4 - 6 * o + 3 * u) * r + (1 + 3 * t + 3 * o - 3 * u) * e + u * a) / 6 } function i(t) { var n = t.length - 1; return function (r) { var e = r <= 0 ? r = 0 : r >= 1 ? (r = 1, n - 1) : Math.floor(r * n), a = t[e], o = t[e + 1], i = e > 0 ? t[e - 1] : 2 * a - o, c = e < n - 1 ? t[e + 2] : 2 * o - a; return u((r - e / n) * n, i, a, o, c) } } function c(t) { var n = t.length; return function (r) { var e = Math.floor(((r %= 1) < 0 ? ++r : r) * n), a = t[(e + n - 1) % n], o = t[e % n], i = t[(e + 1) % n], c = t[(e + 2) % n]; return u((r - e / n) * n, a, o, i, c) } } var l = t => () => t; function s(t, n) { return function (r) { return t + r * n } } function f(t, n) { var r = n - t; return r ? s(t, r > 180 || r < -180 ? r - 360 * Math.round(r / 360) : r) : l(isNaN(t) ? n : t) } function h(t) { return 1 == (t = +t) ? p : function (n, r) { return r - n ? function (t, n, r) { return t = Math.pow(t, r), n = Math.pow(n, r) - t, r = 1 / r, function (e) { return Math.pow(t + e * n, r) } }(n, r, t) : l(isNaN(n) ? r : n) } } function p(t, n) { var r = n - t; return r ? s(t, r) : l(isNaN(t) ? n : t) } var v = function n(r) { var e = h(r); function a(n, r) { var a = e((n = t(n)).r, (r = t(r)).r), o = e(n.g, r.g), u = e(n.b, r.b), i = p(n.opacity, r.opacity); return function (t) { return n.r = a(t), n.g = o(t), n.b = u(t), n.opacity = i(t), n + "" } } return a.gamma = n, a }(1); function g(n) { return function (r) { var e, a, o = r.length, u = new Array(o), i = new Array(o), c = new Array(o); for (e = 0; e < o; ++e)a = t(r[e]), u[e] = a.r || 0, i[e] = a.g || 0, c[e] = a.b || 0; return u = n(u), i = n(i), c = n(c), a.opacity = 1, function (t) { return a.r = u(t), a.g = i(t), a.b = c(t), a + "" } } } var M = g(i), x = g(c); function y(t, n) { n || (n = []); var r, e = t ? Math.min(n.length, t.length) : 0, a = n.slice(); return function (o) { for (r = 0; r < e; ++r)a[r] = t[r] * (1 - o) + n[r] * o; return a } } function b(t) { return ArrayBuffer.isView(t) && !(t instanceof DataView) } function w(t, n) { return (b(n) ? y : m)(t, n) } function m(t, n) { var r, e = n ? n.length : 0, a = t ? Math.min(e, t.length) : 0, o = new Array(a), u = new Array(e); for (r = 0; r < a; ++r)o[r] = R(t[r], n[r]); for (; r < e; ++r)u[r] = n[r]; return function (t) { for (r = 0; r < a; ++r)u[r] = o[r](t); return u } } function d(t, n) { var r = new Date; return t = +t, n = +n, function (e) { return r.setTime(t * (1 - e) + n * e), r } } function X(t, n) { return t = +t, n = +n, function (r) { return t * (1 - r) + n * r } } function A(t, n) { var r, e = {}, a = {}; for (r in null !== t && "object" == typeof t || (t = {}), null !== n && "object" == typeof n || (n = {}), n) r in t ? e[r] = R(t[r], n[r]) : a[r] = n[r]; return function (t) { for (r in e) a[r] = e[r](t); return a } } var N = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Y = new RegExp(N.source, "g"); function D(t, n) { var r, e, a, o = N.lastIndex = Y.lastIndex = 0, u = -1, i = [], c = []; for (t += "", n += ""; (r = N.exec(t)) && (e = Y.exec(n));)(a = e.index) > o && (a = n.slice(o, a), i[u] ? i[u] += a : i[++u] = a), (r = r[0]) === (e = e[0]) ? i[u] ? i[u] += e : i[++u] = e : (i[++u] = null, c.push({ i: u, x: X(r, e) })), o = Y.lastIndex; return o < n.length && (a = n.slice(o), i[u] ? i[u] += a : i[++u] = a), i.length < 2 ? c[0] ? function (t) { return function (n) { return t(n) + "" } }(c[0].x) : function (t) { return function () { return t } }(n) : (n = c.length, function (t) { for (var r, e = 0; e < n; ++e)i[(r = c[e]).i] = r.x(t); return i.join("") }) } function R(t, r) { var e, a = typeof r; return null == r || "boolean" === a ? l(r) : ("number" === a ? X : "string" === a ? (e = n(r)) ? (r = e, v) : D : r instanceof n ? v : r instanceof Date ? d : b(r) ? y : Array.isArray(r) ? m : "function" != typeof r.valueOf && "function" != typeof r.toString || isNaN(r) ? A : X)(t, r) } function S(t) { var n = t.length; return function (r) { return t[Math.max(0, Math.min(n - 1, Math.floor(r * n)))] } } function k(t, n) { var r = f(+t, +n); return function (t) { var n = r(t); return n - 360 * Math.floor(n / 360) } } function j(t, n) { return t = +t, n = +n, function (r) { return Math.round(t * (1 - r) + n * r) } } var q, B = 180 / Math.PI, C = { translateX: 0, translateY: 0, rotate: 0, skewX: 0, scaleX: 1, scaleY: 1 }; function H(t, n, r, e, a, o) { var u, i, c; return (u = Math.sqrt(t * t + n * n)) && (t /= u, n /= u), (c = t * r + n * e) && (r -= t * c, e -= n * c), (i = Math.sqrt(r * r + e * e)) && (r /= i, e /= i, c /= i), t * e < n * r && (t = -t, n = -n, c = -c, u = -u), { translateX: a, translateY: o, rotate: Math.atan2(n, t) * B, skewX: Math.atan(c) * B, scaleX: u, scaleY: i } } function I(t, n, r, e) { function a(t) { return t.length ? t.pop() + " " : "" } return function (o, u) { var i = [], c = []; return o = t(o), u = t(u), function (t, e, a, o, u, i) { if (t !== a || e !== o) { var c = u.push("translate(", null, n, null, r); i.push({ i: c - 4, x: X(t, a) }, { i: c - 2, x: X(e, o) }) } else (a || o) && u.push("translate(" + a + n + o + r) }(o.translateX, o.translateY, u.translateX, u.translateY, i, c), function (t, n, r, o) { t !== n ? (t - n > 180 ? n += 360 : n - t > 180 && (t += 360), o.push({ i: r.push(a(r) + "rotate(", null, e) - 2, x: X(t, n) })) : n && r.push(a(r) + "rotate(" + n + e) }(o.rotate, u.rotate, i, c), function (t, n, r, o) { t !== n ? o.push({ i: r.push(a(r) + "skewX(", null, e) - 2, x: X(t, n) }) : n && r.push(a(r) + "skewX(" + n + e) }(o.skewX, u.skewX, i, c), function (t, n, r, e, o, u) { if (t !== r || n !== e) { var i = o.push(a(o) + "scale(", null, ",", null, ")"); u.push({ i: i - 4, x: X(t, r) }, { i: i - 2, x: X(n, e) }) } else 1 === r && 1 === e || o.push(a(o) + "scale(" + r + "," + e + ")") }(o.scaleX, o.scaleY, u.scaleX, u.scaleY, i, c), o = u = null, function (t) { for (var n, r = -1, e = c.length; ++r < e;)i[(n = c[r]).i] = n.x(t); return i.join("") } } } var L = I((function (t) { const n = new ("function" == typeof DOMMatrix ? DOMMatrix : WebKitCSSMatrix)(t + ""); return n.isIdentity ? C : H(n.a, n.b, n.c, n.d, n.e, n.f) }), "px, ", "px)", "deg)"), O = I((function (t) { return null == t ? C : (q || (q = document.createElementNS("http://www.w3.org/2000/svg", "g")), q.setAttribute("transform", t), (t = q.transform.baseVal.consolidate()) ? H((t = t.matrix).a, t.b, t.c, t.d, t.e, t.f) : C) }), ", ", ")", ")"); function E(t) { return ((t = Math.exp(t)) + 1 / t) / 2 } var T = function t(n, r, e) { function a(t, a) { var o, u, i = t[0], c = t[1], l = t[2], s = a[0], f = a[1], h = a[2], p = s - i, v = f - c, g = p * p + v * v; if (g < 1e-12) u = Math.log(h / l) / n, o = function (t) { return [i + t * p, c + t * v, l * Math.exp(n * t * u)] }; else { var M = Math.sqrt(g), x = (h * h - l * l + e * g) / (2 * l * r * M), y = (h * h - l * l - e * g) / (2 * h * r * M), b = Math.log(Math.sqrt(x * x + 1) - x), w = Math.log(Math.sqrt(y * y + 1) - y); u = (w - b) / n, o = function (t) { var e, a = t * u, o = E(b), s = l / (r * M) * (o * (e = n * a + b, ((e = Math.exp(2 * e)) - 1) / (e + 1)) - function (t) { return ((t = Math.exp(t)) - 1 / t) / 2 }(b)); return [i + s * p, c + s * v, l * o / E(n * a + b)] } } return o.duration = 1e3 * u * n / Math.SQRT2, o } return a.rho = function (n) { var r = Math.max(.001, +n), e = r * r; return t(r, e, e * e) }, a }(Math.SQRT2, 2, 4); function V(t) { return function (n, e) { var a = t((n = r(n)).h, (e = r(e)).h), o = p(n.s, e.s), u = p(n.l, e.l), i = p(n.opacity, e.opacity); return function (t) { return n.h = a(t), n.s = o(t), n.l = u(t), n.opacity = i(t), n + "" } } } var Q = V(f), K = V(p); function P(t, n) { var r = p((t = e(t)).l, (n = e(n)).l), a = p(t.a, n.a), o = p(t.b, n.b), u = p(t.opacity, n.opacity); return function (n) { return t.l = r(n), t.a = a(n), t.b = o(n), t.opacity = u(n), t + "" } } function W(t) { return function (n, r) { var e = t((n = a(n)).h, (r = a(r)).h), o = p(n.c, r.c), u = p(n.l, r.l), i = p(n.opacity, r.opacity); return function (t) { return n.h = e(t), n.c = o(t), n.l = u(t), n.opacity = i(t), n + "" } } } var Z = W(f), z = W(p); function F(t) { return function n(r) { function e(n, e) { var a = t((n = o(n)).h, (e = o(e)).h), u = p(n.s, e.s), i = p(n.l, e.l), c = p(n.opacity, e.opacity); return function (t) { return n.h = a(t), n.s = u(t), n.l = i(Math.pow(t, r)), n.opacity = c(t), n + "" } } return r = +r, e.gamma = n, e }(1) } var G = F(f), J = F(p); function U(t, n) { void 0 === n && (n = t, t = R); for (var r = 0, e = n.length - 1, a = n[0], o = new Array(e < 0 ? 0 : e); r < e;)o[r] = t(a, a = n[++r]); return function (t) { var n = Math.max(0, Math.min(e - 1, Math.floor(t *= e))); return o[n](t - n) } } function $(t, n) { for (var r = new Array(n), e = 0; e < n; ++e)r[e] = t(e / (n - 1)); return r } export { R as interpolate, w as interpolateArray, i as interpolateBasis, c as interpolateBasisClosed, G as interpolateCubehelix, J as interpolateCubehelixLong, d as interpolateDate, S as interpolateDiscrete, Z as interpolateHcl, z as interpolateHclLong, Q as interpolateHsl, K as interpolateHslLong, k as interpolateHue, P as interpolateLab, X as interpolateNumber, y as interpolateNumberArray, A as interpolateObject, v as interpolateRgb, M as interpolateRgbBasis, x as interpolateRgbBasisClosed, j as interpolateRound, D as interpolateString, L as interpolateTransformCss, O as interpolateTransformSvg, T as interpolateZoom, U as piecewise, $ as quantize }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-selection@3.0.0/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ var t = "http://www.w3.org/1999/xhtml", n = { svg: "http://www.w3.org/2000/svg", xhtml: t, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" }; function e(t) { var e = t += "", r = e.indexOf(":"); return r >= 0 && "xmlns" !== (e = t.slice(0, r)) && (t = t.slice(r + 1)), n.hasOwnProperty(e) ? { space: n[e], local: t } : t } function r(n) { return function () { var e = this.ownerDocument, r = this.namespaceURI; return r === t && e.documentElement.namespaceURI === t ? e.createElement(n) : e.createElementNS(r, n) } } function i(t) { return function () { return this.ownerDocument.createElementNS(t.space, t.local) } } function o(t) { var n = e(t); return (n.local ? i : r)(n) } function u() { } function s(t) { return null == t ? u : function () { return this.querySelector(t) } } function c(t) { return null == t ? [] : Array.isArray(t) ? t : Array.from(t) } function a() { return [] } function l(t) { return null == t ? a : function () { return this.querySelectorAll(t) } } function f(t) { return function () { return this.matches(t) } } function h(t) { return function (n) { return n.matches(t) } } var p = Array.prototype.find; function _() { return this.firstElementChild } var d = Array.prototype.filter; function y() { return Array.from(this.children) } function v(t) { return new Array(t.length) } function m(t, n) { this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = n } function g(t, n, e, r, i, o) { for (var u, s = 0, c = n.length, a = o.length; s < a; ++s)(u = n[s]) ? (u.__data__ = o[s], r[s] = u) : e[s] = new m(t, o[s]); for (; s < c; ++s)(u = n[s]) && (i[s] = u) } function w(t, n, e, r, i, o, u) { var s, c, a, l = new Map, f = n.length, h = o.length, p = new Array(f); for (s = 0; s < f; ++s)(c = n[s]) && (p[s] = a = u.call(c, c.__data__, s, n) + "", l.has(a) ? i[s] = c : l.set(a, c)); for (s = 0; s < h; ++s)a = u.call(t, o[s], s, o) + "", (c = l.get(a)) ? (r[s] = c, c.__data__ = o[s], l.delete(a)) : e[s] = new m(t, o[s]); for (s = 0; s < f; ++s)(c = n[s]) && l.get(p[s]) === c && (i[s] = c) } function A(t) { return t.__data__ } function x(t) { return "object" == typeof t && "length" in t ? t : Array.from(t) } function S(t, n) { return t < n ? -1 : t > n ? 1 : t >= n ? 0 : NaN } function b(t) { return function () { this.removeAttribute(t) } } function E(t) { return function () { this.removeAttributeNS(t.space, t.local) } } function N(t, n) { return function () { this.setAttribute(t, n) } } function C(t, n) { return function () { this.setAttributeNS(t.space, t.local, n) } } function L(t, n) { return function () { var e = n.apply(this, arguments); null == e ? this.removeAttribute(t) : this.setAttribute(t, e) } } function B(t, n) { return function () { var e = n.apply(this, arguments); null == e ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, e) } } function P(t) { return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView } function T(t) { return function () { this.style.removeProperty(t) } } function q(t, n, e) { return function () { this.style.setProperty(t, n, e) } } function M(t, n, e) { return function () { var r = n.apply(this, arguments); null == r ? this.style.removeProperty(t) : this.style.setProperty(t, r, e) } } function D(t, n) { return t.style.getPropertyValue(n) || P(t).getComputedStyle(t, null).getPropertyValue(n) } function V(t) { return function () { delete this[t] } } function O(t, n) { return function () { this[t] = n } } function R(t, n) { return function () { var e = n.apply(this, arguments); null == e ? delete this[t] : this[t] = e } } function j(t) { return t.trim().split(/^|\s+/) } function H(t) { return t.classList || new I(t) } function I(t) { this._node = t, this._names = j(t.getAttribute("class") || "") } function U(t, n) { for (var e = H(t), r = -1, i = n.length; ++r < i;)e.add(n[r]) } function X(t, n) { for (var e = H(t), r = -1, i = n.length; ++r < i;)e.remove(n[r]) } function G(t) { return function () { U(this, t) } } function Y(t) { return function () { X(this, t) } } function k(t, n) { return function () { (n.apply(this, arguments) ? U : X)(this, t) } } function z() { this.textContent = "" } function F(t) { return function () { this.textContent = t } } function J(t) { return function () { var n = t.apply(this, arguments); this.textContent = null == n ? "" : n } } function K() { this.innerHTML = "" } function Q(t) { return function () { this.innerHTML = t } } function W(t) { return function () { var n = t.apply(this, arguments); this.innerHTML = null == n ? "" : n } } function Z() { this.nextSibling && this.parentNode.appendChild(this) } function $() { this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild) } function tt() { return null } function nt() { var t = this.parentNode; t && t.removeChild(this) } function et() { var t = this.cloneNode(!1), n = this.parentNode; return n ? n.insertBefore(t, this.nextSibling) : t } function rt() { var t = this.cloneNode(!0), n = this.parentNode; return n ? n.insertBefore(t, this.nextSibling) : t } function it(t) { return function () { var n = this.__on; if (n) { for (var e, r = 0, i = -1, o = n.length; r < o; ++r)e = n[r], t.type && e.type !== t.type || e.name !== t.name ? n[++i] = e : this.removeEventListener(e.type, e.listener, e.options); ++i ? n.length = i : delete this.__on } } } function ot(t, n, e) { return function () { var r, i = this.__on, o = function (t) { return function (n) { t.call(this, n, this.__data__) } }(n); if (i) for (var u = 0, s = i.length; u < s; ++u)if ((r = i[u]).type === t.type && r.name === t.name) return this.removeEventListener(r.type, r.listener, r.options), this.addEventListener(r.type, r.listener = o, r.options = e), void (r.value = n); this.addEventListener(t.type, o, e), r = { type: t.type, name: t.name, value: n, listener: o, options: e }, i ? i.push(r) : this.__on = [r] } } function ut(t, n, e) { var r = P(t), i = r.CustomEvent; "function" == typeof i ? i = new i(n, e) : (i = r.document.createEvent("Event"), e ? (i.initEvent(n, e.bubbles, e.cancelable), i.detail = e.detail) : i.initEvent(n, !1, !1)), t.dispatchEvent(i) } function st(t, n) { return function () { return ut(this, t, n) } } function ct(t, n) { return function () { return ut(this, t, n.apply(this, arguments)) } } m.prototype = { constructor: m, appendChild: function (t) { return this._parent.insertBefore(t, this._next) }, insertBefore: function (t, n) { return this._parent.insertBefore(t, n) }, querySelector: function (t) { return this._parent.querySelector(t) }, querySelectorAll: function (t) { return this._parent.querySelectorAll(t) } }, I.prototype = { add: function (t) { this._names.indexOf(t) < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" "))) }, remove: function (t) { var n = this._names.indexOf(t); n >= 0 && (this._names.splice(n, 1), this._node.setAttribute("class", this._names.join(" "))) }, contains: function (t) { return this._names.indexOf(t) >= 0 } }; var at = [null]; function lt(t, n) { this._groups = t, this._parents = n } function ft() { return new lt([[document.documentElement]], at) } function ht(t) { return "string" == typeof t ? new lt([[document.querySelector(t)]], [document.documentElement]) : new lt([[t]], at) } function pt(t) { return ht(o(t).call(document.documentElement)) } lt.prototype = ft.prototype = { constructor: lt, select: function (t) { "function" != typeof t && (t = s(t)); for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i)for (var o, u, c = n[i], a = c.length, l = r[i] = new Array(a), f = 0; f < a; ++f)(o = c[f]) && (u = t.call(o, o.__data__, f, c)) && ("__data__" in o && (u.__data__ = o.__data__), l[f] = u); return new lt(r, this._parents) }, selectAll: function (t) { t = "function" == typeof t ? function (t) { return function () { return c(t.apply(this, arguments)) } }(t) : l(t); for (var n = this._groups, e = n.length, r = [], i = [], o = 0; o < e; ++o)for (var u, s = n[o], a = s.length, f = 0; f < a; ++f)(u = s[f]) && (r.push(t.call(u, u.__data__, f, s)), i.push(u)); return new lt(r, i) }, selectChild: function (t) { return this.select(null == t ? _ : function (t) { return function () { return p.call(this.children, t) } }("function" == typeof t ? t : h(t))) }, selectChildren: function (t) { return this.selectAll(null == t ? y : function (t) { return function () { return d.call(this.children, t) } }("function" == typeof t ? t : h(t))) }, filter: function (t) { "function" != typeof t && (t = f(t)); for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i)for (var o, u = n[i], s = u.length, c = r[i] = [], a = 0; a < s; ++a)(o = u[a]) && t.call(o, o.__data__, a, u) && c.push(o); return new lt(r, this._parents) }, data: function (t, n) { if (!arguments.length) return Array.from(this, A); var e, r = n ? w : g, i = this._parents, o = this._groups; "function" != typeof t && (e = t, t = function () { return e }); for (var u = o.length, s = new Array(u), c = new Array(u), a = new Array(u), l = 0; l < u; ++l) { var f = i[l], h = o[l], p = h.length, _ = x(t.call(f, f && f.__data__, l, i)), d = _.length, y = c[l] = new Array(d), v = s[l] = new Array(d); r(f, h, y, v, a[l] = new Array(p), _, n); for (var m, S, b = 0, E = 0; b < d; ++b)if (m = y[b]) { for (b >= E && (E = b + 1); !(S = v[E]) && ++E < d;); m._next = S || null } } return (s = new lt(s, i))._enter = c, s._exit = a, s }, enter: function () { return new lt(this._enter || this._groups.map(v), this._parents) }, exit: function () { return new lt(this._exit || this._groups.map(v), this._parents) }, join: function (t, n, e) { var r = this.enter(), i = this, o = this.exit(); return "function" == typeof t ? (r = t(r)) && (r = r.selection()) : r = r.append(t + ""), null != n && (i = n(i)) && (i = i.selection()), null == e ? o.remove() : e(o), r && i ? r.merge(i).order() : i }, merge: function (t) { for (var n = t.selection ? t.selection() : t, e = this._groups, r = n._groups, i = e.length, o = r.length, u = Math.min(i, o), s = new Array(i), c = 0; c < u; ++c)for (var a, l = e[c], f = r[c], h = l.length, p = s[c] = new Array(h), _ = 0; _ < h; ++_)(a = l[_] || f[_]) && (p[_] = a); for (; c < i; ++c)s[c] = e[c]; return new lt(s, this._parents) }, selection: function () { return this }, order: function () { for (var t = this._groups, n = -1, e = t.length; ++n < e;)for (var r, i = t[n], o = i.length - 1, u = i[o]; --o >= 0;)(r = i[o]) && (u && 4 ^ r.compareDocumentPosition(u) && u.parentNode.insertBefore(r, u), u = r); return this }, sort: function (t) { function n(n, e) { return n && e ? t(n.__data__, e.__data__) : !n - !e } t || (t = S); for (var e = this._groups, r = e.length, i = new Array(r), o = 0; o < r; ++o) { for (var u, s = e[o], c = s.length, a = i[o] = new Array(c), l = 0; l < c; ++l)(u = s[l]) && (a[l] = u); a.sort(n) } return new lt(i, this._parents).order() }, call: function () { var t = arguments[0]; return arguments[0] = this, t.apply(null, arguments), this }, nodes: function () { return Array.from(this) }, node: function () { for (var t = this._groups, n = 0, e = t.length; n < e; ++n)for (var r = t[n], i = 0, o = r.length; i < o; ++i) { var u = r[i]; if (u) return u } return null }, size: function () { let t = 0; for (const n of this) ++t; return t }, empty: function () { return !this.node() }, each: function (t) { for (var n = this._groups, e = 0, r = n.length; e < r; ++e)for (var i, o = n[e], u = 0, s = o.length; u < s; ++u)(i = o[u]) && t.call(i, i.__data__, u, o); return this }, attr: function (t, n) { var r = e(t); if (arguments.length < 2) { var i = this.node(); return r.local ? i.getAttributeNS(r.space, r.local) : i.getAttribute(r) } return this.each((null == n ? r.local ? E : b : "function" == typeof n ? r.local ? B : L : r.local ? C : N)(r, n)) }, style: function (t, n, e) { return arguments.length > 1 ? this.each((null == n ? T : "function" == typeof n ? M : q)(t, n, null == e ? "" : e)) : D(this.node(), t) }, property: function (t, n) { return arguments.length > 1 ? this.each((null == n ? V : "function" == typeof n ? R : O)(t, n)) : this.node()[t] }, classed: function (t, n) { var e = j(t + ""); if (arguments.length < 2) { for (var r = H(this.node()), i = -1, o = e.length; ++i < o;)if (!r.contains(e[i])) return !1; return !0 } return this.each(("function" == typeof n ? k : n ? G : Y)(e, n)) }, text: function (t) { return arguments.length ? this.each(null == t ? z : ("function" == typeof t ? J : F)(t)) : this.node().textContent }, html: function (t) { return arguments.length ? this.each(null == t ? K : ("function" == typeof t ? W : Q)(t)) : this.node().innerHTML }, raise: function () { return this.each(Z) }, lower: function () { return this.each($) }, append: function (t) { var n = "function" == typeof t ? t : o(t); return this.select((function () { return this.appendChild(n.apply(this, arguments)) })) }, insert: function (t, n) { var e = "function" == typeof t ? t : o(t), r = null == n ? tt : "function" == typeof n ? n : s(n); return this.select((function () { return this.insertBefore(e.apply(this, arguments), r.apply(this, arguments) || null) })) }, remove: function () { return this.each(nt) }, clone: function (t) { return this.select(t ? rt : et) }, datum: function (t) { return arguments.length ? this.property("__data__", t) : this.node().__data__ }, on: function (t, n, e) { var r, i, o = function (t) { return t.trim().split(/^|\s+/).map((function (t) { var n = "", e = t.indexOf("."); return e >= 0 && (n = t.slice(e + 1), t = t.slice(0, e)), { type: t, name: n } })) }(t + ""), u = o.length; if (!(arguments.length < 2)) { for (s = n ? ot : it, r = 0; r < u; ++r)this.each(s(o[r], n, e)); return this } var s = this.node().__on; if (s) for (var c, a = 0, l = s.length; a < l; ++a)for (r = 0, c = s[a]; r < u; ++r)if ((i = o[r]).type === c.type && i.name === c.name) return c.value }, dispatch: function (t, n) { return this.each(("function" == typeof n ? ct : st)(t, n)) }, [Symbol.iterator]: function* () { for (var t = this._groups, n = 0, e = t.length; n < e; ++n)for (var r, i = t[n], o = 0, u = i.length; o < u; ++o)(r = i[o]) && (yield r) } }; var _t = 0; function dt() { return new yt } function yt() { this._ = "@" + (++_t).toString(36) } function vt(t) { let n; for (; n = t.sourceEvent;)t = n; return t } function mt(t, n) { if (t = vt(t), void 0 === n && (n = t.currentTarget), n) { var e = n.ownerSVGElement || n; if (e.createSVGPoint) { var r = e.createSVGPoint(); return r.x = t.clientX, r.y = t.clientY, [(r = r.matrixTransform(n.getScreenCTM().inverse())).x, r.y] } if (n.getBoundingClientRect) { var i = n.getBoundingClientRect(); return [t.clientX - i.left - n.clientLeft, t.clientY - i.top - n.clientTop] } } return [t.pageX, t.pageY] } function gt(t, n) { return t.target && (t = vt(t), void 0 === n && (n = t.currentTarget), t = t.touches || [t]), Array.from(t, (t => mt(t, n))) } function wt(t) { return "string" == typeof t ? new lt([document.querySelectorAll(t)], [document.documentElement]) : new lt([c(t)], at) } yt.prototype = dt.prototype = { constructor: yt, get: function (t) { for (var n = this._; !(n in t);)if (!(t = t.parentNode)) return; return t[n] }, set: function (t, n) { return t[this._] = n }, remove: function (t) { return this._ in t && delete t[this._] }, toString: function () { return this._ } }; export { pt as create, o as creator, dt as local, f as matcher, e as namespace, n as namespaces, mt as pointer, gt as pointers, ht as select, wt as selectAll, ft as selection, s as selector, l as selectorAll, D as style, P as window }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-timer@3.0.1/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ var t, n, e = 0, r = 0, o = 0, i = 1e3, a = 0, l = 0, u = 0, c = "object" == typeof performance && performance.now ? performance : Date, s = "object" == typeof window && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (t) { setTimeout(t, 17) }; function f() { return l || (s(_), l = c.now() + u) } function _() { l = 0 } function w() { this._call = this._time = this._next = null } function m(t, n, e) { var r = new w; return r.restart(t, n, e), r } function p() { f(), ++e; for (var n, r = t; r;)(n = l - r._time) >= 0 && r._call.call(void 0, n), r = r._next; --e } function h() { l = (a = c.now()) + u, e = r = 0; try { p() } finally { e = 0, function () { var e, r, o = t, i = 1 / 0; for (; o;)o._call ? (i > o._time && (i = o._time), e = o, o = o._next) : (r = o._next, o._next = null, o = e ? e._next = r : t = r); n = e, x(i) }(), l = 0 } } function v() { var t = c.now(), n = t - a; n > i && (u -= n, a = t) } function x(t) { e || (r && (r = clearTimeout(r)), t - l > 24 ? (t < 1 / 0 && (r = setTimeout(h, t - c.now() - u)), o && (o = clearInterval(o))) : (o || (a = c.now(), o = setInterval(v, i)), e = 1, s(h))) } function y(t, n, e) { var r = new w; return n = null == n ? 0 : +n, r.restart((e => { r.stop(), t(e + n) }), n, e), r } function d(t, n, e) { var r = new w, o = n; return null == n ? (r.restart(t, n, e), r) : (r._restart = r.restart, r.restart = function (t, n, e) { n = +n, e = null == e ? f() : +e, r._restart((function i(a) { a += o, r._restart(i, o += n, e), t(a) }), n, e) }, r.restart(t, n, e), r) } w.prototype = m.prototype = { constructor: w, restart: function (e, r, o) { if ("function" != typeof e) throw new TypeError("callback is not a function"); o = (null == o ? f() : +o) + (null == r ? 0 : +r), this._next || n === this || (n ? n._next = this : t = this, n = this), this._call = e, this._time = o, x() }, stop: function () { this._call && (this._call = null, this._time = 1 / 0, x()) } }; export { d as interval, f as now, y as timeout, m as timer, p as timerFlush }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.17.1.
3
+ * Original file: /npm/d3-transition@3.0.1/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ import { namespace as t, matcher as n, selector as e, selectorAll as r, selection as i, style as o } from "d3-selection"; import { dispatch as u } from "d3-dispatch"; import { timer as a, timeout as s, now as l } from "d3-timer"; import { interpolateNumber as f, interpolateRgb as c, interpolateString as h, interpolateTransformSvg as _, interpolateTransformCss as p } from "d3-interpolate"; import { color as v } from "d3-color"; import { easeCubicInOut as d } from "d3-ease"; var m = u("start", "end", "cancel", "interrupt"), y = [], w = 0, g = 1, x = 2, A = 3, b = 4, E = 5, C = 6; function N(t, n, e, r, i, o) { var u = t.__transition; if (u) { if (e in u) return } else t.__transition = {}; !function (t, n, e) { var r, i = t.__transition; function o(t) { e.state = g, e.timer.restart(u, e.delay, e.time), e.delay <= t && u(t - e.delay) } function u(o) { var a, c, h, _; if (e.state !== g) return f(); for (a in i) if ((_ = i[a]).name === e.name) { if (_.state === A) return s(u); _.state === b ? (_.state = C, _.timer.stop(), _.on.call("interrupt", t, t.__data__, _.index, _.group), delete i[a]) : +a < n && (_.state = C, _.timer.stop(), _.on.call("cancel", t, t.__data__, _.index, _.group), delete i[a]) } if (s((function () { e.state === A && (e.state = b, e.timer.restart(l, e.delay, e.time), l(o)) })), e.state = x, e.on.call("start", t, t.__data__, e.index, e.group), e.state === x) { for (e.state = A, r = new Array(h = e.tween.length), a = 0, c = -1; a < h; ++a)(_ = e.tween[a].value.call(t, t.__data__, e.index, e.group)) && (r[++c] = _); r.length = c + 1 } } function l(n) { for (var i = n < e.duration ? e.ease.call(null, n / e.duration) : (e.timer.restart(f), e.state = E, 1), o = -1, u = r.length; ++o < u;)r[o].call(t, i); e.state === E && (e.on.call("end", t, t.__data__, e.index, e.group), f()) } function f() { for (var r in e.state = C, e.timer.stop(), delete i[n], i) return; delete t.__transition } i[n] = e, e.timer = a(o, 0, e.time) }(t, e, { name: n, index: r, group: i, on: m, tween: y, time: o.time, delay: o.delay, duration: o.duration, ease: o.ease, timer: null, state: w }) } function S(t, n) { var e = P(t, n); if (e.state > w) throw new Error("too late; already scheduled"); return e } function T(t, n) { var e = P(t, n); if (e.state > A) throw new Error("too late; already running"); return e } function P(t, n) { var e = t.__transition; if (!e || !(e = e[n])) throw new Error("transition not found"); return e } function z(t, n) { var e, r, i, o = t.__transition, u = !0; if (o) { for (i in n = null == n ? null : n + "", o) (e = o[i]).name === n ? (r = e.state > x && e.state < E, e.state = C, e.timer.stop(), e.on.call(r ? "interrupt" : "cancel", t, t.__data__, e.index, e.group), delete o[i]) : u = !1; u && delete t.__transition } } function k(t, n) { var e, r; return function () { var i = T(this, t), o = i.tween; if (o !== e) for (var u = 0, a = (r = e = o).length; u < a; ++u)if (r[u].name === n) { (r = r.slice()).splice(u, 1); break } i.tween = r } } function M(t, n, e) { var r, i; if ("function" != typeof e) throw new Error; return function () { var o = T(this, t), u = o.tween; if (u !== r) { i = (r = u).slice(); for (var a = { name: n, value: e }, s = 0, l = i.length; s < l; ++s)if (i[s].name === n) { i[s] = a; break } s === l && i.push(a) } o.tween = i } } function O(t, n, e) { var r = t._id; return t.each((function () { var t = T(this, r); (t.value || (t.value = {}))[n] = e.apply(this, arguments) })), function (t) { return P(t, r).value[n] } } function V(t, n) { var e; return ("number" == typeof n ? f : n instanceof v ? c : (e = v(n)) ? (n = e, c) : h)(t, n) } function $(t) { return function () { this.removeAttribute(t) } } function j(t) { return function () { this.removeAttributeNS(t.space, t.local) } } function q(t, n, e) { var r, i, o = e + ""; return function () { var u = this.getAttribute(t); return u === o ? null : u === r ? i : i = n(r = u, e) } } function B(t, n, e) { var r, i, o = e + ""; return function () { var u = this.getAttributeNS(t.space, t.local); return u === o ? null : u === r ? i : i = n(r = u, e) } } function D(t, n, e) { var r, i, o; return function () { var u, a, s = e(this); if (null != s) return (u = this.getAttribute(t)) === (a = s + "") ? null : u === r && a === i ? o : (i = a, o = n(r = u, s)); this.removeAttribute(t) } } function F(t, n, e) { var r, i, o; return function () { var u, a, s = e(this); if (null != s) return (u = this.getAttributeNS(t.space, t.local)) === (a = s + "") ? null : u === r && a === i ? o : (i = a, o = n(r = u, s)); this.removeAttributeNS(t.space, t.local) } } function G(t, n) { var e, r; function i() { var i = n.apply(this, arguments); return i !== r && (e = (r = i) && function (t, n) { return function (e) { this.setAttributeNS(t.space, t.local, n.call(this, e)) } }(t, i)), e } return i._value = n, i } function H(t, n) { var e, r; function i() { var i = n.apply(this, arguments); return i !== r && (e = (r = i) && function (t, n) { return function (e) { this.setAttribute(t, n.call(this, e)) } }(t, i)), e } return i._value = n, i } function I(t, n) { return function () { S(this, t).delay = +n.apply(this, arguments) } } function J(t, n) { return n = +n, function () { S(this, t).delay = n } } function K(t, n) { return function () { T(this, t).duration = +n.apply(this, arguments) } } function L(t, n) { return n = +n, function () { T(this, t).duration = n } } var Q = i.prototype.constructor; function R(t) { return function () { this.style.removeProperty(t) } } var U = 0; function W(t, n, e, r) { this._groups = t, this._parents = n, this._name = e, this._id = r } function X(t) { return i().transition(t) } function Y() { return ++U } var Z = i.prototype; W.prototype = X.prototype = { constructor: W, select: function (t) { var n = this._name, r = this._id; "function" != typeof t && (t = e(t)); for (var i = this._groups, o = i.length, u = new Array(o), a = 0; a < o; ++a)for (var s, l, f = i[a], c = f.length, h = u[a] = new Array(c), _ = 0; _ < c; ++_)(s = f[_]) && (l = t.call(s, s.__data__, _, f)) && ("__data__" in s && (l.__data__ = s.__data__), h[_] = l, N(h[_], n, r, _, h, P(s, r))); return new W(u, this._parents, n, r) }, selectAll: function (t) { var n = this._name, e = this._id; "function" != typeof t && (t = r(t)); for (var i = this._groups, o = i.length, u = [], a = [], s = 0; s < o; ++s)for (var l, f = i[s], c = f.length, h = 0; h < c; ++h)if (l = f[h]) { for (var _, p = t.call(l, l.__data__, h, f), v = P(l, e), d = 0, m = p.length; d < m; ++d)(_ = p[d]) && N(_, n, e, d, p, v); u.push(p), a.push(l) } return new W(u, a, n, e) }, selectChild: Z.selectChild, selectChildren: Z.selectChildren, filter: function (t) { "function" != typeof t && (t = n(t)); for (var e = this._groups, r = e.length, i = new Array(r), o = 0; o < r; ++o)for (var u, a = e[o], s = a.length, l = i[o] = [], f = 0; f < s; ++f)(u = a[f]) && t.call(u, u.__data__, f, a) && l.push(u); return new W(i, this._parents, this._name, this._id) }, merge: function (t) { if (t._id !== this._id) throw new Error; for (var n = this._groups, e = t._groups, r = n.length, i = e.length, o = Math.min(r, i), u = new Array(r), a = 0; a < o; ++a)for (var s, l = n[a], f = e[a], c = l.length, h = u[a] = new Array(c), _ = 0; _ < c; ++_)(s = l[_] || f[_]) && (h[_] = s); for (; a < r; ++a)u[a] = n[a]; return new W(u, this._parents, this._name, this._id) }, selection: function () { return new Q(this._groups, this._parents) }, transition: function () { for (var t = this._name, n = this._id, e = Y(), r = this._groups, i = r.length, o = 0; o < i; ++o)for (var u, a = r[o], s = a.length, l = 0; l < s; ++l)if (u = a[l]) { var f = P(u, n); N(u, t, e, l, a, { time: f.time + f.delay + f.duration, delay: 0, duration: f.duration, ease: f.ease }) } return new W(r, this._parents, t, e) }, call: Z.call, nodes: Z.nodes, node: Z.node, size: Z.size, empty: Z.empty, each: Z.each, on: function (t, n) { var e = this._id; return arguments.length < 2 ? P(this.node(), e).on.on(t) : this.each(function (t, n, e) { var r, i, o = function (t) { return (t + "").trim().split(/^|\s+/).every((function (t) { var n = t.indexOf("."); return n >= 0 && (t = t.slice(0, n)), !t || "start" === t })) }(n) ? S : T; return function () { var u = o(this, t), a = u.on; a !== r && (i = (r = a).copy()).on(n, e), u.on = i } }(e, t, n)) }, attr: function (n, e) { var r = t(n), i = "transform" === r ? _ : V; return this.attrTween(n, "function" == typeof e ? (r.local ? F : D)(r, i, O(this, "attr." + n, e)) : null == e ? (r.local ? j : $)(r) : (r.local ? B : q)(r, i, e)) }, attrTween: function (n, e) { var r = "attr." + n; if (arguments.length < 2) return (r = this.tween(r)) && r._value; if (null == e) return this.tween(r, null); if ("function" != typeof e) throw new Error; var i = t(n); return this.tween(r, (i.local ? G : H)(i, e)) }, style: function (t, n, e) { var r = "transform" == (t += "") ? p : V; return null == n ? this.styleTween(t, function (t, n) { var e, r, i; return function () { var u = o(this, t), a = (this.style.removeProperty(t), o(this, t)); return u === a ? null : u === e && a === r ? i : i = n(e = u, r = a) } }(t, r)).on("end.style." + t, R(t)) : "function" == typeof n ? this.styleTween(t, function (t, n, e) { var r, i, u; return function () { var a = o(this, t), s = e(this), l = s + ""; return null == s && (this.style.removeProperty(t), l = s = o(this, t)), a === l ? null : a === r && l === i ? u : (i = l, u = n(r = a, s)) } }(t, r, O(this, "style." + t, n))).each(function (t, n) { var e, r, i, o, u = "style." + n, a = "end." + u; return function () { var s = T(this, t), l = s.on, f = null == s.value[u] ? o || (o = R(n)) : void 0; l === e && i === f || (r = (e = l).copy()).on(a, i = f), s.on = r } }(this._id, t)) : this.styleTween(t, function (t, n, e) { var r, i, u = e + ""; return function () { var a = o(this, t); return a === u ? null : a === r ? i : i = n(r = a, e) } }(t, r, n), e).on("end.style." + t, null) }, styleTween: function (t, n, e) { var r = "style." + (t += ""); if (arguments.length < 2) return (r = this.tween(r)) && r._value; if (null == n) return this.tween(r, null); if ("function" != typeof n) throw new Error; return this.tween(r, function (t, n, e) { var r, i; function o() { var o = n.apply(this, arguments); return o !== i && (r = (i = o) && function (t, n, e) { return function (r) { this.style.setProperty(t, n.call(this, r), e) } }(t, o, e)), r } return o._value = n, o }(t, n, null == e ? "" : e)) }, text: function (t) { return this.tween("text", "function" == typeof t ? function (t) { return function () { var n = t(this); this.textContent = null == n ? "" : n } }(O(this, "text", t)) : function (t) { return function () { this.textContent = t } }(null == t ? "" : t + "")) }, textTween: function (t) { var n = "text"; if (arguments.length < 1) return (n = this.tween(n)) && n._value; if (null == t) return this.tween(n, null); if ("function" != typeof t) throw new Error; return this.tween(n, function (t) { var n, e; function r() { var r = t.apply(this, arguments); return r !== e && (n = (e = r) && function (t) { return function (n) { this.textContent = t.call(this, n) } }(r)), n } return r._value = t, r }(t)) }, remove: function () { return this.on("end.remove", function (t) { return function () { var n = this.parentNode; for (var e in this.__transition) if (+e !== t) return; n && n.removeChild(this) } }(this._id)) }, tween: function (t, n) { var e = this._id; if (t += "", arguments.length < 2) { for (var r, i = P(this.node(), e).tween, o = 0, u = i.length; o < u; ++o)if ((r = i[o]).name === t) return r.value; return null } return this.each((null == n ? k : M)(e, t, n)) }, delay: function (t) { var n = this._id; return arguments.length ? this.each(("function" == typeof t ? I : J)(n, t)) : P(this.node(), n).delay }, duration: function (t) { var n = this._id; return arguments.length ? this.each(("function" == typeof t ? K : L)(n, t)) : P(this.node(), n).duration }, ease: function (t) { var n = this._id; return arguments.length ? this.each(function (t, n) { if ("function" != typeof n) throw new Error; return function () { T(this, t).ease = n } }(n, t)) : P(this.node(), n).ease }, easeVarying: function (t) { if ("function" != typeof t) throw new Error; return this.each(function (t, n) { return function () { var e = n.apply(this, arguments); if ("function" != typeof e) throw new Error; T(this, t).ease = e } }(this._id, t)) }, end: function () { var t, n, e = this, r = e._id, i = e.size(); return new Promise((function (o, u) { var a = { value: u }, s = { value: function () { 0 == --i && o() } }; e.each((function () { var e = T(this, r), i = e.on; i !== t && ((n = (t = i).copy())._.cancel.push(a), n._.interrupt.push(a), n._.end.push(s)), e.on = n })), 0 === i && o() })) }, [Symbol.iterator]: Z[Symbol.iterator] }; var tt = { time: null, delay: 0, duration: 250, ease: d }; function nt(t, n) { for (var e; !(e = t.__transition) || !(e = e[n]);)if (!(t = t.parentNode)) throw new Error(`transition ${n} not found`); return e } i.prototype.interrupt = function (t) { return this.each((function () { z(this, t) })) }, i.prototype.transition = function (t) { var n, e; t instanceof W ? (n = t._id, t = t._name) : (n = Y(), (e = tt).time = l(), t = null == t ? null : t + ""); for (var r = this._groups, i = r.length, o = 0; o < i; ++o)for (var u, a = r[o], s = a.length, f = 0; f < s; ++f)(u = a[f]) && N(u, t, n, f, a, e || nt(u, n)); return new W(r, this._parents, t, n) }; var et = [null]; function rt(t, n) { var e, r, i = t.__transition; if (i) for (r in n = null == n ? null : n + "", i) if ((e = i[r]).state > g && e.name === n) return new W([[t]], et, n, +r); return null } export { rt as active, z as interrupt, X as transition }; export default null;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
3
+ * Original file: /npm/d3-zoom@3.0.0/src/index.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ import { dispatch as t } from "d3-dispatch"; import { dragDisable as n, dragEnable as e } from "d3-drag"; import { interpolateZoom as o } from "d3-interpolate"; import { select as i, pointer as r } from "d3-selection"; import { interrupt as u } from "d3-transition"; var h = t => () => t; function s(t, { sourceEvent: n, target: e, transform: o, dispatch: i }) { Object.defineProperties(this, { type: { value: t, enumerable: !0, configurable: !0 }, sourceEvent: { value: n, enumerable: !0, configurable: !0 }, target: { value: e, enumerable: !0, configurable: !0 }, transform: { value: o, enumerable: !0, configurable: !0 }, _: { value: i } }) } function a(t, n, e) { this.k = t, this.x = n, this.y = e } a.prototype = { constructor: a, scale: function (t) { return 1 === t ? this : new a(this.k * t, this.x, this.y) }, translate: function (t, n) { return 0 === t & 0 === n ? this : new a(this.k, this.x + this.k * t, this.y + this.k * n) }, apply: function (t) { return [t[0] * this.k + this.x, t[1] * this.k + this.y] }, applyX: function (t) { return t * this.k + this.x }, applyY: function (t) { return t * this.k + this.y }, invert: function (t) { return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k] }, invertX: function (t) { return (t - this.x) / this.k }, invertY: function (t) { return (t - this.y) / this.k }, rescaleX: function (t) { return t.copy().domain(t.range().map(this.invertX, this).map(t.invert, t)) }, rescaleY: function (t) { return t.copy().domain(t.range().map(this.invertY, this).map(t.invert, t)) }, toString: function () { return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")" } }; var c = new a(1, 0, 0); function l(t) { for (; !t.__zoom;)if (!(t = t.parentNode)) return c; return t.__zoom } function f(t) { t.stopImmediatePropagation() } function m(t) { t.preventDefault(), t.stopImmediatePropagation() } function p(t) { return !(t.ctrlKey && "wheel" !== t.type || t.button) } function v() { var t = this; return t instanceof SVGElement ? (t = t.ownerSVGElement || t).hasAttribute("viewBox") ? [[(t = t.viewBox.baseVal).x, t.y], [t.x + t.width, t.y + t.height]] : [[0, 0], [t.width.baseVal.value, t.height.baseVal.value]] : [[0, 0], [t.clientWidth, t.clientHeight]] } function y() { return this.__zoom || c } function d(t) { return -t.deltaY * (1 === t.deltaMode ? .05 : t.deltaMode ? 1 : .002) * (t.ctrlKey ? 10 : 1) } function z() { return navigator.maxTouchPoints || "ontouchstart" in this } function _(t, n, e) { var o = t.invertX(n[0][0]) - e[0][0], i = t.invertX(n[1][0]) - e[1][0], r = t.invertY(n[0][1]) - e[0][1], u = t.invertY(n[1][1]) - e[1][1]; return t.translate(i > o ? (o + i) / 2 : Math.min(0, o) || Math.max(0, i), u > r ? (r + u) / 2 : Math.min(0, r) || Math.max(0, u)) } function g() { var l, g, k, x = p, w = v, b = _, T = d, M = z, E = [0, 1 / 0], Y = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], X = 250, V = o, B = t("start", "zoom", "end"), D = 500, P = 150, I = 0, K = 10; function S(t) { t.property("__zoom", y).on("wheel.zoom", O, { passive: !1 }).on("mousedown.zoom", W).on("dblclick.zoom", Z).filter(M).on("touchstart.zoom", C).on("touchmove.zoom", F).on("touchend.zoom touchcancel.zoom", J).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") } function q(t, n) { return (n = Math.max(E[0], Math.min(E[1], n))) === t.k ? t : new a(n, t.x, t.y) } function G(t, n, e) { var o = n[0] - e[0] * t.k, i = n[1] - e[1] * t.k; return o === t.x && i === t.y ? t : new a(t.k, o, i) } function j(t) { return [(+t[0][0] + +t[1][0]) / 2, (+t[0][1] + +t[1][1]) / 2] } function A(t, n, e, o) { t.on("start.zoom", (function () { H(this, arguments).event(o).start() })).on("interrupt.zoom end.zoom", (function () { H(this, arguments).event(o).end() })).tween("zoom", (function () { var t = this, i = arguments, r = H(t, i).event(o), u = w.apply(t, i), h = null == e ? j(u) : "function" == typeof e ? e.apply(t, i) : e, s = Math.max(u[1][0] - u[0][0], u[1][1] - u[0][1]), c = t.__zoom, l = "function" == typeof n ? n.apply(t, i) : n, f = V(c.invert(h).concat(s / c.k), l.invert(h).concat(s / l.k)); return function (t) { if (1 === t) t = l; else { var n = f(t), e = s / n[2]; t = new a(e, h[0] - n[0] * e, h[1] - n[1] * e) } r.zoom(null, t) } })) } function H(t, n, e) { return !e && t.__zooming || new N(t, n) } function N(t, n) { this.that = t, this.args = n, this.active = 0, this.sourceEvent = null, this.extent = w.apply(t, n), this.taps = 0 } function O(t, ...n) { if (x.apply(this, arguments)) { var e = H(this, n).event(t), o = this.__zoom, i = Math.max(E[0], Math.min(E[1], o.k * Math.pow(2, T.apply(this, arguments)))), h = r(t); if (e.wheel) e.mouse[0][0] === h[0] && e.mouse[0][1] === h[1] || (e.mouse[1] = o.invert(e.mouse[0] = h)), clearTimeout(e.wheel); else { if (o.k === i) return; e.mouse = [h, o.invert(h)], u(this), e.start() } m(t), e.wheel = setTimeout((function () { e.wheel = null, e.end() }), P), e.zoom("mouse", b(G(q(o, i), e.mouse[0], e.mouse[1]), e.extent, Y)) } } function W(t, ...o) { if (!k && x.apply(this, arguments)) { var h = t.currentTarget, s = H(this, o, !0).event(t), a = i(t.view).on("mousemove.zoom", (function (t) { if (m(t), !s.moved) { var n = t.clientX - l, e = t.clientY - p; s.moved = n * n + e * e > I } s.event(t).zoom("mouse", b(G(s.that.__zoom, s.mouse[0] = r(t, h), s.mouse[1]), s.extent, Y)) }), !0).on("mouseup.zoom", (function (t) { a.on("mousemove.zoom mouseup.zoom", null), e(t.view, s.moved), m(t), s.event(t).end() }), !0), c = r(t, h), l = t.clientX, p = t.clientY; n(t.view), f(t), s.mouse = [c, this.__zoom.invert(c)], u(this), s.start() } } function Z(t, ...n) { if (x.apply(this, arguments)) { var e = this.__zoom, o = r(t.changedTouches ? t.changedTouches[0] : t, this), u = e.invert(o), h = e.k * (t.shiftKey ? .5 : 2), s = b(G(q(e, h), o, u), w.apply(this, n), Y); m(t), X > 0 ? i(this).transition().duration(X).call(A, s, o, t) : i(this).call(S.transform, s, o, t) } } function C(t, ...n) { if (x.apply(this, arguments)) { var e, o, i, h, s = t.touches, a = s.length, c = H(this, n, t.changedTouches.length === a).event(t); for (f(t), o = 0; o < a; ++o)i = s[o], h = [h = r(i, this), this.__zoom.invert(h), i.identifier], c.touch0 ? c.touch1 || c.touch0[2] === h[2] || (c.touch1 = h, c.taps = 0) : (c.touch0 = h, e = !0, c.taps = 1 + !!l); l && (l = clearTimeout(l)), e && (c.taps < 2 && (g = h[0], l = setTimeout((function () { l = null }), D)), u(this), c.start()) } } function F(t, ...n) { if (this.__zooming) { var e, o, i, u, h = H(this, n).event(t), s = t.changedTouches, a = s.length; for (m(t), e = 0; e < a; ++e)o = s[e], i = r(o, this), h.touch0 && h.touch0[2] === o.identifier ? h.touch0[0] = i : h.touch1 && h.touch1[2] === o.identifier && (h.touch1[0] = i); if (o = h.that.__zoom, h.touch1) { var c = h.touch0[0], l = h.touch0[1], f = h.touch1[0], p = h.touch1[1], v = (v = f[0] - c[0]) * v + (v = f[1] - c[1]) * v, y = (y = p[0] - l[0]) * y + (y = p[1] - l[1]) * y; o = q(o, Math.sqrt(v / y)), i = [(c[0] + f[0]) / 2, (c[1] + f[1]) / 2], u = [(l[0] + p[0]) / 2, (l[1] + p[1]) / 2] } else { if (!h.touch0) return; i = h.touch0[0], u = h.touch0[1] } h.zoom("touch", b(G(o, i, u), h.extent, Y)) } } function J(t, ...n) { if (this.__zooming) { var e, o, u = H(this, n).event(t), h = t.changedTouches, s = h.length; for (f(t), k && clearTimeout(k), k = setTimeout((function () { k = null }), D), e = 0; e < s; ++e)o = h[e], u.touch0 && u.touch0[2] === o.identifier ? delete u.touch0 : u.touch1 && u.touch1[2] === o.identifier && delete u.touch1; if (u.touch1 && !u.touch0 && (u.touch0 = u.touch1, delete u.touch1), u.touch0) u.touch0[1] = this.__zoom.invert(u.touch0[0]); else if (u.end(), 2 === u.taps && (o = r(o, this), Math.hypot(g[0] - o[0], g[1] - o[1]) < K)) { var a = i(this).on("dblclick.zoom"); a && a.apply(this, arguments) } } } return S.transform = function (t, n, e, o) { var i = t.selection ? t.selection() : t; i.property("__zoom", y), t !== i ? A(t, n, e, o) : i.interrupt().each((function () { H(this, arguments).event(o).start().zoom(null, "function" == typeof n ? n.apply(this, arguments) : n).end() })) }, S.scaleBy = function (t, n, e, o) { S.scaleTo(t, (function () { return this.__zoom.k * ("function" == typeof n ? n.apply(this, arguments) : n) }), e, o) }, S.scaleTo = function (t, n, e, o) { S.transform(t, (function () { var t = w.apply(this, arguments), o = this.__zoom, i = null == e ? j(t) : "function" == typeof e ? e.apply(this, arguments) : e, r = o.invert(i), u = "function" == typeof n ? n.apply(this, arguments) : n; return b(G(q(o, u), i, r), t, Y) }), e, o) }, S.translateBy = function (t, n, e, o) { S.transform(t, (function () { return b(this.__zoom.translate("function" == typeof n ? n.apply(this, arguments) : n, "function" == typeof e ? e.apply(this, arguments) : e), w.apply(this, arguments), Y) }), null, o) }, S.translateTo = function (t, n, e, o, i) { S.transform(t, (function () { var t = w.apply(this, arguments), i = this.__zoom, r = null == o ? j(t) : "function" == typeof o ? o.apply(this, arguments) : o; return b(c.translate(r[0], r[1]).scale(i.k).translate("function" == typeof n ? -n.apply(this, arguments) : -n, "function" == typeof e ? -e.apply(this, arguments) : -e), t, Y) }), o, i) }, N.prototype = { event: function (t) { return t && (this.sourceEvent = t), this }, start: function () { return 1 == ++this.active && (this.that.__zooming = this, this.emit("start")), this }, zoom: function (t, n) { return this.mouse && "mouse" !== t && (this.mouse[1] = n.invert(this.mouse[0])), this.touch0 && "touch" !== t && (this.touch0[1] = n.invert(this.touch0[0])), this.touch1 && "touch" !== t && (this.touch1[1] = n.invert(this.touch1[0])), this.that.__zoom = n, this.emit("zoom"), this }, end: function () { return 0 == --this.active && (delete this.that.__zooming, this.emit("end")), this }, emit: function (t) { var n = i(this.that).datum(); B.call(t, this.that, new s(t, { sourceEvent: this.sourceEvent, target: S, type: t, transform: this.that.__zoom, dispatch: B }), n) } }, S.wheelDelta = function (t) { return arguments.length ? (T = "function" == typeof t ? t : h(+t), S) : T }, S.filter = function (t) { return arguments.length ? (x = "function" == typeof t ? t : h(!!t), S) : x }, S.touchable = function (t) { return arguments.length ? (M = "function" == typeof t ? t : h(!!t), S) : M }, S.extent = function (t) { return arguments.length ? (w = "function" == typeof t ? t : h([[+t[0][0], +t[0][1]], [+t[1][0], +t[1][1]]]), S) : w }, S.scaleExtent = function (t) { return arguments.length ? (E[0] = +t[0], E[1] = +t[1], S) : [E[0], E[1]] }, S.translateExtent = function (t) { return arguments.length ? (Y[0][0] = +t[0][0], Y[1][0] = +t[1][0], Y[0][1] = +t[0][1], Y[1][1] = +t[1][1], S) : [[Y[0][0], Y[0][1]], [Y[1][0], Y[1][1]]] }, S.constrain = function (t) { return arguments.length ? (b = t, S) : b }, S.duration = function (t) { return arguments.length ? (X = +t, S) : X }, S.interpolate = function (t) { return arguments.length ? (V = t, S) : V }, S.on = function () { var t = B.on.apply(B, arguments); return t === B ? S : t }, S.clickDistance = function (t) { return arguments.length ? (I = (t = +t) * t, S) : Math.sqrt(I) }, S.tapDistance = function (t) { return arguments.length ? (K = +t, S) : K }, S } l.prototype = a.prototype; export { a as ZoomTransform, g as zoom, c as zoomIdentity, l as zoomTransform }; export default null;
@@ -0,0 +1,75 @@
1
+ import mermaid from "mermaid";
2
+ import { select as d3Select } from "d3-selection";
3
+ import { zoom as d3Zoom, zoomIdentity } from "d3-zoom";
4
+
5
+
6
+ let is_running = false;
7
+ const queue = [];
8
+
9
+ export default {
10
+ template: `<div></div>`,
11
+ data: () => ({
12
+ last_content: "",
13
+ }),
14
+ mounted() {
15
+ //
16
+ let content = this.content
17
+
18
+
19
+ if (this.clickableNodes.length > 0) {
20
+ // The event triggered by mermaid must be global, but there may be multiple mermaid components on the page.
21
+ // Therefore, we need a unique function name for each component scenario.
22
+ const actionCallback = `mermaid_${this.currentId}_action`
23
+
24
+ const actionStem = this.clickableNodes.map(n => `click ${n} ${actionCallback}`).join('\n')
25
+ content = [content, actionStem].join('\n')
26
+
27
+ window[actionCallback] = (nodeId) => {
28
+ this.$emit('onNodeClick', { nodeId })
29
+ }
30
+ }
31
+
32
+ this.update(content);
33
+ },
34
+
35
+
36
+ methods: {
37
+ async update(content) {
38
+ if (this.last_content === content) return;
39
+ this.last_content = content;
40
+ this.$el.innerHTML = content;
41
+ this.$el.removeAttribute("data-processed");
42
+ queue.push(this.$el);
43
+ if (is_running) return;
44
+ is_running = true;
45
+
46
+ // startOnLoad prevents auto-execution of run, and securityLevel: 'loose' is required to execute click events.
47
+ mermaid.initialize({ startOnLoad: false, securityLevel: 'loose' });
48
+ while (queue.length) {
49
+ await mermaid.run({ nodes: [queue.shift()] });
50
+ }
51
+ is_running = false;
52
+
53
+ if (this.zoomMode) {
54
+ const svg = d3Select(this.$el).select('svg')
55
+ const zoomBox = svg.select('g.root')
56
+
57
+ var zoom = d3Zoom().on("zoom", function ({ transform }) {
58
+ zoomBox.attr("transform", transform);
59
+ });
60
+
61
+ svg.call(zoom);
62
+
63
+ svg.on('dblclick.zoom', () => {
64
+ svg.transition().duration(750).call(zoom.transform, zoomIdentity);
65
+ })
66
+ }
67
+ }
68
+ },
69
+ props: {
70
+ content: String,
71
+ currentId: String,
72
+ clickableNodes: Array,
73
+ zoomMode: Boolean
74
+ },
75
+ };
@@ -0,0 +1,64 @@
1
+ from typing import Callable, List, Optional
2
+ from nicegui.elements.mixins.content_element import ContentElement
3
+ from pathlib import Path
4
+ import nicegui
5
+ from dataclasses import dataclass
6
+ from nicegui.events import UiEventArguments
7
+ from nicegui.dataclasses import KWONLY_SLOTS
8
+
9
+ NG_ROOT = Path(nicegui.__file__).parent / "elements"
10
+
11
+
12
+ exposed_libraries = [
13
+ NG_ROOT / "lib/mermaid/mermaid.esm.min.mjs",
14
+ "../libs/d3/*.js",
15
+ ]
16
+ extra_libraries = [
17
+ NG_ROOT / "lib/mermaid/*.js",
18
+ ]
19
+
20
+
21
+ @dataclass(**KWONLY_SLOTS)
22
+ class NodeClickEventArguments(UiEventArguments):
23
+ nodeId: str
24
+
25
+
26
+ class Mermaid(
27
+ ContentElement,
28
+ component="mermaid.js",
29
+ exposed_libraries=exposed_libraries, # type: ignore
30
+ extra_libraries=extra_libraries, # type: ignore
31
+ ):
32
+ CONTENT_PROP = "content"
33
+
34
+ def __init__(
35
+ self, content: str, clickable_nodes: Optional[List[str]] = None, zoom_mode=False
36
+ ) -> None:
37
+ """Mermaid Diagrams
38
+
39
+ Renders diagrams and charts written in the Markdown-inspired `Mermaid <https://mermaid.js.org/>`_ language.
40
+ The mermaid syntax can also be used inside Markdown elements by providing the extension string 'mermaid' to the ``ui.markdown`` element.
41
+
42
+ :param content: the Mermaid content to be displayed
43
+ """
44
+ super().__init__(content=content)
45
+ self._props["currentId"] = str(self.id)
46
+ self._props["clickableNodes"] = clickable_nodes or []
47
+ self._props["zoomMode"] = zoom_mode
48
+
49
+ def on_content_change(self, content: str) -> None:
50
+ self._props[self.CONTENT_PROP] = content.strip()
51
+ self.run_method("update", content.strip())
52
+
53
+ def on_node_click(
54
+ self,
55
+ handler: Callable[[NodeClickEventArguments], None],
56
+ ):
57
+ def inner_handler(e):
58
+ handler(
59
+ NodeClickEventArguments(
60
+ sender=self, client=self.client, nodeId=e.args["nodeId"]
61
+ )
62
+ )
63
+
64
+ self.on("onNodeClick", inner_handler, ["nodeId"])
@@ -97,7 +97,8 @@ class BindableUi(Generic[TWidget]):
97
97
 
98
98
  @effect
99
99
  def _():
100
- cast(TextElement, self.element).on_text_change(ref_ui.value)
100
+ cast(TextElement, self.element).set_text(ref_ui.value)
101
+ self.element.update()
101
102
 
102
103
  @effect
103
104
  def _():
@@ -63,6 +63,7 @@ class CheckboxBindableUi(SingleValueBindableUi[bool, ui.checkbox]):
63
63
  def bind_value(self, ref_ui: ReadonlyRef[bool]):
64
64
  @effect
65
65
  def _():
66
- self.element.on_value_change(ref_ui.value)
66
+ self.element.set_value(ref_ui.value)
67
+ self.element.update()
67
68
 
68
69
  return self
@@ -80,6 +80,7 @@ class DateBindableUi(SingleValueBindableUi[_TDateValue, ui.date]):
80
80
  def bind_value(self, ref_ui: ReadonlyRef[bool]):
81
81
  @effect
82
82
  def _():
83
- self.element.on_value_change(ref_ui.value)
83
+ self.element.set_value(ref_ui.value)
84
+ self.element.update()
84
85
 
85
86
  return self
@@ -30,6 +30,8 @@ _TEventName = Literal[
30
30
 
31
31
 
32
32
  class EChartsBindableUi(BindableUi[echarts]):
33
+ EChartsMouseEventArguments = EChartsMouseEventArguments
34
+
33
35
  def __init__(
34
36
  self,
35
37
  options: TMaybeRef[Dict],
@@ -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
 
File without changes
@@ -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.3
3
+ Version: 0.4.0
4
4
  Summary: ...
5
5
  Home-page:
6
6
  Author: carson_jia
@@ -55,6 +55,20 @@ ex4nicegui/reactive/UseDraggable/__init__.py
55
55
  ex4nicegui/reactive/dropZone/__init__.py
56
56
  ex4nicegui/reactive/dropZone/dropZone.js
57
57
  ex4nicegui/reactive/dropZone/dropZone.py
58
+ ex4nicegui/reactive/libs/__init__.py
59
+ ex4nicegui/reactive/libs/d3/__init__.py
60
+ ex4nicegui/reactive/libs/d3/d3-color.ems.js
61
+ ex4nicegui/reactive/libs/d3/d3-dispatch.ems.js
62
+ ex4nicegui/reactive/libs/d3/d3-drag.ems.js
63
+ ex4nicegui/reactive/libs/d3/d3-ease.ems.js
64
+ ex4nicegui/reactive/libs/d3/d3-interpolate.ems.js
65
+ ex4nicegui/reactive/libs/d3/d3-selection.ems.js
66
+ ex4nicegui/reactive/libs/d3/d3-timer.ems.js
67
+ ex4nicegui/reactive/libs/d3/d3-transition.ems.js
68
+ ex4nicegui/reactive/libs/d3/d3-zoom.ems.js
69
+ ex4nicegui/reactive/mermaid/__init__.py
70
+ ex4nicegui/reactive/mermaid/mermaid.js
71
+ ex4nicegui/reactive/mermaid/mermaid.py
58
72
  ex4nicegui/reactive/officials/__init__.py
59
73
  ex4nicegui/reactive/officials/aggrid.py
60
74
  ex4nicegui/reactive/officials/base.py
@@ -1,3 +1,3 @@
1
1
  signe>=0.2.4
2
- nicegui>=1.3.13
2
+ nicegui>=1.4.0
3
3
  typing_extensions
@@ -21,7 +21,7 @@ def get_data_files(base):
21
21
  with open("README.md", encoding="utf8") as readme_file:
22
22
  readme = readme_file.read()
23
23
 
24
- requirements = ["signe>=0.2.4", "nicegui>=1.3.13", "typing_extensions"]
24
+ requirements = ["signe>=0.2.4", "nicegui>=1.4.0", "typing_extensions"]
25
25
 
26
26
  test_requirements = ["pytest>=3", "playwright", "pandas"]
27
27
 
File without changes
File without changes