فهرست منبع

add generic layer

Falko Schindler 1 سال پیش
والد
کامیت
7c636dccab
2فایلهای تغییر یافته به همراه14 افزوده شده و 1 حذف شده
  1. 1 0
      nicegui/elements/leaflet.py
  2. 13 1
      nicegui/elements/leaflet_layers.py

+ 1 - 0
nicegui/elements/leaflet.py

@@ -12,6 +12,7 @@ from .leaflet_layer import Layer
 
 
 class Leaflet(Element, component='leaflet.js'):
 class Leaflet(Element, component='leaflet.js'):
     # pylint: disable=import-outside-toplevel
     # pylint: disable=import-outside-toplevel
+    from .leaflet_layers import GenericLayer as generic_layer
     from .leaflet_layers import Marker as marker
     from .leaflet_layers import Marker as marker
     from .leaflet_layers import TileLayer as tile_layer
     from .leaflet_layers import TileLayer as tile_layer
 
 

+ 13 - 1
nicegui/elements/leaflet_layers.py

@@ -1,5 +1,5 @@
 from dataclasses import dataclass, field
 from dataclasses import dataclass, field
-from typing import Dict, Tuple
+from typing import Any, Dict, Tuple
 
 
 from typing_extensions import Self
 from typing_extensions import Self
 
 
@@ -7,6 +7,18 @@ from ..dataclasses import KWONLY_SLOTS
 from .leaflet_layer import Layer
 from .leaflet_layer import Layer
 
 
 
 
+@dataclass(**KWONLY_SLOTS)
+class GenericLayer(Layer):
+    name: str
+    args: list[Any] = field(default_factory=list)
+
+    def to_dict(self) -> Dict:
+        return {
+            'type': self.name,
+            'args': self.args,
+        }
+
+
 @dataclass(**KWONLY_SLOTS)
 @dataclass(**KWONLY_SLOTS)
 class TileLayer(Layer):
 class TileLayer(Layer):
     url_template: str
     url_template: str