jupytergis-lab 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jupytergis_lab/__init__.py +14 -0
- jupytergis_lab/_version.py +4 -0
- jupytergis_lab/notebook/__init__.py +1 -0
- jupytergis_lab/notebook/gis_document.py +616 -0
- jupytergis_lab/notebook/objects/__init__.py +14 -0
- jupytergis_lab/notebook/objects/_schema/__init__.py +3 -0
- jupytergis_lab/notebook/objects/_schema/geoTiffSource.py +24 -0
- jupytergis_lab/notebook/objects/_schema/geojsonsource.py +511 -0
- jupytergis_lab/notebook/objects/_schema/hillshadeLayer.py +19 -0
- jupytergis_lab/notebook/objects/_schema/imageLayer.py +19 -0
- jupytergis_lab/notebook/objects/_schema/imageSource.py +26 -0
- jupytergis_lab/notebook/objects/_schema/jgis.py +138 -0
- jupytergis_lab/notebook/objects/_schema/rasterDemSource.py +28 -0
- jupytergis_lab/notebook/objects/_schema/rasterlayer.py +19 -0
- jupytergis_lab/notebook/objects/_schema/rastersource.py +33 -0
- jupytergis_lab/notebook/objects/_schema/shapefileSource.py +31 -0
- jupytergis_lab/notebook/objects/_schema/vectorTileLayer.py +29 -0
- jupytergis_lab/notebook/objects/_schema/vectorlayer.py +29 -0
- jupytergis_lab/notebook/objects/_schema/vectortilesource.py +27 -0
- jupytergis_lab/notebook/objects/_schema/videoSource.py +30 -0
- jupytergis_lab/notebook/objects/_schema/webGlLayer.py +22 -0
- jupytergis_lab/notebook/tests/__init__.py +0 -0
- jupytergis_lab/notebook/tests/test_api.py +18 -0
- jupytergis_lab/notebook/utils.py +43 -0
- jupytergis_lab/notebook/y_connector.py +31 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/install.json +5 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/package.json +132 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/373.1c3d89f9ed56880711bd.js +1 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/432.28aaec36233a73d1589c.js +1 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/484.7cd11c502baf51c3285e.js +1 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/remoteEntry.15c6baaafaa709cc98c0.js +1 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/style.js +4 -0
- jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/static/third-party-licenses.json +40 -0
- jupytergis_lab-0.1.1.dist-info/METADATA +67 -0
- jupytergis_lab-0.1.1.dist-info/RECORD +37 -0
- jupytergis_lab-0.1.1.dist-info/WHEEL +4 -0
- jupytergis_lab-0.1.1.dist-info/licenses/LICENSE +29 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: rasterDemSource.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Dict, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Encoding(Enum):
|
|
14
|
+
terrarium = 'terrarium'
|
|
15
|
+
mapbox = 'mapbox'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class IRasterDemSource(BaseModel):
|
|
19
|
+
model_config = ConfigDict(
|
|
20
|
+
extra='forbid',
|
|
21
|
+
)
|
|
22
|
+
url: str = Field(..., description='The url to the tile provider')
|
|
23
|
+
tileSize: Optional[float] = Field(512, description=' The tile size')
|
|
24
|
+
attribution: Optional[str] = Field(
|
|
25
|
+
None, description='The attribution for the raster-dem source'
|
|
26
|
+
)
|
|
27
|
+
encoding: Optional[Encoding] = 'mapbox'
|
|
28
|
+
urlParameters: Optional[Dict[str, str]] = None
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: rasterlayer.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IRasterLayer(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
source: str = Field(..., description='The id of the source')
|
|
17
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
18
|
+
1, description='The opacity of the source'
|
|
19
|
+
)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: rastersource.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, List, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IRasterSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
url: str = Field(..., description='The url to the tile provider')
|
|
17
|
+
minZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
18
|
+
..., description='The minimum zoom level for the raster source'
|
|
19
|
+
)
|
|
20
|
+
maxZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
21
|
+
..., description='The maximum zoom level for the raster source'
|
|
22
|
+
)
|
|
23
|
+
attribution: Optional[str] = Field(
|
|
24
|
+
'', description='The attribution for the raster source'
|
|
25
|
+
)
|
|
26
|
+
htmlAttribution: Optional[str] = Field(
|
|
27
|
+
'', description='The html attribution for the raster source'
|
|
28
|
+
)
|
|
29
|
+
provider: Optional[str] = Field('', description='The map provider')
|
|
30
|
+
bounds: Optional[List[List[float]]] = Field(
|
|
31
|
+
[], description='The bounds of the source'
|
|
32
|
+
)
|
|
33
|
+
urlParameters: Optional[Dict[str, str]] = {}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: shapefileSource.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IShapefileSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
path: str = Field(
|
|
17
|
+
..., description='The path to the shapefile (.shp, .zip, or folder URL).'
|
|
18
|
+
)
|
|
19
|
+
attribution: Optional[str] = Field(
|
|
20
|
+
'', description='The attribution for the shapefile source.'
|
|
21
|
+
)
|
|
22
|
+
projection: Optional[str] = Field(
|
|
23
|
+
'WGS84', description='The projection information for the shapefile (optional).'
|
|
24
|
+
)
|
|
25
|
+
encoding: Optional[str] = Field(
|
|
26
|
+
'UTF-8', description="The encoding used for the shapefile's DBF (optional)."
|
|
27
|
+
)
|
|
28
|
+
additionalFiles: Optional[Dict[str, str]] = Field(
|
|
29
|
+
{},
|
|
30
|
+
description='Additional files associated with the shapefile (e.g., .dbf, .prj, .cpg).',
|
|
31
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: vectorTileLayer.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Type(Enum):
|
|
14
|
+
circle = 'circle'
|
|
15
|
+
fill = 'fill'
|
|
16
|
+
line = 'line'
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class IVectorTileLayer(BaseModel):
|
|
20
|
+
model_config = ConfigDict(
|
|
21
|
+
extra='forbid',
|
|
22
|
+
)
|
|
23
|
+
source: str = Field(..., description='The id of the source')
|
|
24
|
+
type: Type = Field(..., description='The type of vector layer')
|
|
25
|
+
sourceLayer: Optional[str] = Field(None, description='The source layer to use')
|
|
26
|
+
color: Optional[str] = Field('#FF0000', description='The color of the the object')
|
|
27
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
28
|
+
1, description='The opacity of the the object'
|
|
29
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: vectorlayer.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Type(Enum):
|
|
14
|
+
circle = 'circle'
|
|
15
|
+
fill = 'fill'
|
|
16
|
+
line = 'line'
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class IVectorLayer(BaseModel):
|
|
20
|
+
model_config = ConfigDict(
|
|
21
|
+
extra='forbid',
|
|
22
|
+
)
|
|
23
|
+
source: str = Field(..., description='The id of the source')
|
|
24
|
+
type: Type = Field(..., description='The type of vector layer')
|
|
25
|
+
sourceLayer: Optional[str] = Field(None, description='The source layer to use')
|
|
26
|
+
color: Optional[str] = Field('#FF0000', description='The color of the the object')
|
|
27
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
28
|
+
1, description='The opacity of the the object'
|
|
29
|
+
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: vectortilesource.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IVectorTileSource(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
url: str = Field(..., description='The url to the tile provider')
|
|
17
|
+
minZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
18
|
+
..., description='The minimum zoom level for the vector source'
|
|
19
|
+
)
|
|
20
|
+
maxZoom: confloat(ge=0.0, le=24.0) = Field(
|
|
21
|
+
..., description='The maximum zoom level for the vector source'
|
|
22
|
+
)
|
|
23
|
+
attribution: Optional[str] = Field(
|
|
24
|
+
None, description='The attribution for the vector source'
|
|
25
|
+
)
|
|
26
|
+
provider: Optional[str] = Field(None, description='The map provider')
|
|
27
|
+
urlParameters: Optional[Dict[str, str]] = None
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: videoSource.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Coordinate(RootModel[List[float]]):
|
|
13
|
+
root: List[float]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class IVideoSource(BaseModel):
|
|
17
|
+
model_config = ConfigDict(
|
|
18
|
+
extra='forbid',
|
|
19
|
+
)
|
|
20
|
+
urls: List[str] = Field(
|
|
21
|
+
...,
|
|
22
|
+
description='URLs to video content in order of preferred format',
|
|
23
|
+
min_length=1,
|
|
24
|
+
)
|
|
25
|
+
coordinates: List[Coordinate] = Field(
|
|
26
|
+
...,
|
|
27
|
+
description='Corners of video specified in longitude, latitude pairs',
|
|
28
|
+
max_length=4,
|
|
29
|
+
min_length=4,
|
|
30
|
+
)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: webGlLayer.json
|
|
3
|
+
# timestamp: 2024-09-13T09:04:30+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List, Optional, Union
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, confloat
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IWebGlLayer(BaseModel):
|
|
13
|
+
model_config = ConfigDict(
|
|
14
|
+
extra='forbid',
|
|
15
|
+
)
|
|
16
|
+
source: str = Field(..., description='The id of the source')
|
|
17
|
+
opacity: Optional[confloat(ge=0.0, le=1.0, multiple_of=0.1)] = Field(
|
|
18
|
+
1, description='The opacity of the source'
|
|
19
|
+
)
|
|
20
|
+
color: Optional[Union[str, List[Union[str, float, List[str]]]]] = Field(
|
|
21
|
+
'#FF0000', description='The color of the the object'
|
|
22
|
+
)
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
|
|
3
|
+
from jupytergis_lab import GISDocument
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class VectorTileTests(unittest.TestCase):
|
|
7
|
+
|
|
8
|
+
def setUp(self):
|
|
9
|
+
self.doc = GISDocument()
|
|
10
|
+
|
|
11
|
+
def test_sourcelayer(self):
|
|
12
|
+
# If there are multiple source layers available and none specified we raise
|
|
13
|
+
with self.assertRaises(ValueError):
|
|
14
|
+
self.doc.add_vectortile_layer("https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf")
|
|
15
|
+
|
|
16
|
+
# If there is on source layer available and none specified we select it
|
|
17
|
+
vector_tile = self.doc.add_vectortile_layer("https://planetarycomputer.microsoft.com/api/data/v1/vector/collections/ms-buildings/tilesets/global-footprints/tiles/{z}/{x}/{y}")
|
|
18
|
+
assert self.doc.layers[vector_tile]["parameters"]["sourceLayer"] == "bingmlbuildings"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from urllib.parse import urljoin
|
|
4
|
+
import requests
|
|
5
|
+
import mapbox_vector_tile
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MESSAGE_ACTION(str, Enum):
|
|
9
|
+
CONNECT_ROOM = "connect_room"
|
|
10
|
+
DISCONNECT_ROOM = "disconnect_room"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def multi_urljoin(*parts) -> str:
|
|
14
|
+
if len(parts) == 0:
|
|
15
|
+
return ""
|
|
16
|
+
return urljoin(
|
|
17
|
+
parts[0],
|
|
18
|
+
"/".join(part for part in parts[1:]),
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def normalize_path(path: str) -> str:
|
|
23
|
+
if os.path.isabs(path):
|
|
24
|
+
return path
|
|
25
|
+
else:
|
|
26
|
+
return os.path.abspath(os.path.join(os.getcwd(), path))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def get_source_layer_names(tile_url):
|
|
30
|
+
# Fetch a sample tile (e.g., z=0, x=0, y=0)
|
|
31
|
+
sample_tile_url = tile_url.format(z=0, x=0, y=0)
|
|
32
|
+
response = requests.get(sample_tile_url)
|
|
33
|
+
response.raise_for_status()
|
|
34
|
+
|
|
35
|
+
tile_data = response.content
|
|
36
|
+
tile = mapbox_vector_tile.decode(tile_data)
|
|
37
|
+
|
|
38
|
+
layer_names = list(tile.keys())
|
|
39
|
+
|
|
40
|
+
if len(layer_names) != 0:
|
|
41
|
+
return layer_names
|
|
42
|
+
else:
|
|
43
|
+
raise ValueError('No layer found in the tile')
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from ypywidgets import Widget
|
|
5
|
+
|
|
6
|
+
logger = logging.getLogger(__file__)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class YDocConnector(Widget):
|
|
10
|
+
def __init__(self, path: Optional[str], **kwargs) -> None:
|
|
11
|
+
self.path = None
|
|
12
|
+
self._format = None
|
|
13
|
+
self._contentType = None
|
|
14
|
+
|
|
15
|
+
if path is not None:
|
|
16
|
+
self.path = path
|
|
17
|
+
try:
|
|
18
|
+
ext = path.split(".")[1].lower()
|
|
19
|
+
except Exception:
|
|
20
|
+
raise Exception("Can not detect file extension!")
|
|
21
|
+
if ext == "jgis":
|
|
22
|
+
self._format = "text"
|
|
23
|
+
self._contentType = "jgis"
|
|
24
|
+
else:
|
|
25
|
+
raise Exception("File extension is not supported!")
|
|
26
|
+
comm_data = {
|
|
27
|
+
"path": self.path,
|
|
28
|
+
"format": self._format,
|
|
29
|
+
"contentType": self._contentType,
|
|
30
|
+
}
|
|
31
|
+
super().__init__(name="@jupytergis:widget", open_comm=True, comm_data=comm_data)
|
jupytergis_lab-0.1.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-lab/package.json
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jupytergis/jupytergis-lab",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "JupyterGIS Lab extension.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"jupyter",
|
|
7
|
+
"jupyterlab",
|
|
8
|
+
"jupyterlab-extension"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/geojupyter/jupytergis",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/geojupyter/jupytergis/issues"
|
|
13
|
+
},
|
|
14
|
+
"license": "BSD-3-Clause",
|
|
15
|
+
"author": "JupyterGIS contributors",
|
|
16
|
+
"files": [
|
|
17
|
+
"lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
|
|
18
|
+
"style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}"
|
|
19
|
+
],
|
|
20
|
+
"main": "lib/index.js",
|
|
21
|
+
"types": "lib/index.d.ts",
|
|
22
|
+
"style": "style/index.css",
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "https://github.com/geojupyter/jupytergis.git"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "jlpm build:lib && jlpm build:labextension:dev",
|
|
29
|
+
"build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension",
|
|
30
|
+
"build:labextension": "jupyter labextension build .",
|
|
31
|
+
"build:labextension:dev": "jupyter labextension build --development True .",
|
|
32
|
+
"build:lib": "tsc --sourceMap",
|
|
33
|
+
"build:lib:prod": "tsc",
|
|
34
|
+
"build:dev": "jlpm run build",
|
|
35
|
+
"clean": "jlpm clean:lib",
|
|
36
|
+
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
|
37
|
+
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
|
38
|
+
"clean:labextension": "rimraf jupytergis_lab/labextension jupytergis_lab/_version.py",
|
|
39
|
+
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
|
40
|
+
"eslint": "jlpm eslint:check --fix",
|
|
41
|
+
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
|
42
|
+
"install:extension": "jlpm build",
|
|
43
|
+
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
|
|
44
|
+
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
|
|
45
|
+
"prettier": "jlpm prettier:base --write",
|
|
46
|
+
"prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
|
|
47
|
+
"prettier:check": "jlpm prettier:base --check",
|
|
48
|
+
"stylelint": "jlpm stylelint:check --fix",
|
|
49
|
+
"stylelint:check": "stylelint --cache \"style/**/*.css\"",
|
|
50
|
+
"watch": "run-p watch:src watch:labextension",
|
|
51
|
+
"watch:src": "tsc -w --sourceMap",
|
|
52
|
+
"watch:labextension": "jupyter labextension watch ."
|
|
53
|
+
},
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"@jupyter/docprovider": "^2.0.0",
|
|
56
|
+
"@jupytergis/base": "^0.1.1",
|
|
57
|
+
"@jupytergis/jupytergis-core": "^0.1.1",
|
|
58
|
+
"@jupytergis/schema": "^0.1.1",
|
|
59
|
+
"@jupyterlab/application": "^4.0.0",
|
|
60
|
+
"@jupyterlab/apputils": "^4.0.0",
|
|
61
|
+
"@jupyterlab/coreutils": "^6.0.0",
|
|
62
|
+
"@jupyterlab/docregistry": "^4.0.0",
|
|
63
|
+
"@jupyterlab/filebrowser": "^4.0.0",
|
|
64
|
+
"@jupyterlab/launcher": "^4.0.0",
|
|
65
|
+
"@jupyterlab/mainmenu": "^4.0.0",
|
|
66
|
+
"@jupyterlab/services": "^7.0.0",
|
|
67
|
+
"@jupyterlab/translation": "^4.0.0",
|
|
68
|
+
"@jupyterlab/ui-components": "^4.0.0",
|
|
69
|
+
"@lumino/messaging": "^2.0.0",
|
|
70
|
+
"@lumino/widgets": "^2.0.0",
|
|
71
|
+
"react": "^18.0.1",
|
|
72
|
+
"yjs-widgets": "^0.3.5"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@jupyterlab/builder": "^4.0.0",
|
|
76
|
+
"css-loader": "^6.7.1",
|
|
77
|
+
"mkdirp": "^1.0.3",
|
|
78
|
+
"npm-run-all": "^4.1.5",
|
|
79
|
+
"rimraf": "^3.0.2",
|
|
80
|
+
"typescript": "^5",
|
|
81
|
+
"yjs": "^13.5.0"
|
|
82
|
+
},
|
|
83
|
+
"sideEffects": [
|
|
84
|
+
"style/*.css",
|
|
85
|
+
"style/index.js"
|
|
86
|
+
],
|
|
87
|
+
"styleModule": "style/index.js",
|
|
88
|
+
"publishConfig": {
|
|
89
|
+
"access": "public"
|
|
90
|
+
},
|
|
91
|
+
"jupyterlab": {
|
|
92
|
+
"discovery": {
|
|
93
|
+
"server": {
|
|
94
|
+
"managers": [
|
|
95
|
+
"pip"
|
|
96
|
+
],
|
|
97
|
+
"base": {
|
|
98
|
+
"name": "jupytergis_lab"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"extension": true,
|
|
103
|
+
"outputDir": "jupytergis_lab/labextension",
|
|
104
|
+
"sharedPackages": {
|
|
105
|
+
"@jupytergis/base": {
|
|
106
|
+
"singleton": true,
|
|
107
|
+
"bundled": false
|
|
108
|
+
},
|
|
109
|
+
"@jupytergis/schema": {
|
|
110
|
+
"singleton": true,
|
|
111
|
+
"bundled": false
|
|
112
|
+
},
|
|
113
|
+
"@jupytergis/jupytergis-core": {
|
|
114
|
+
"singleton": true,
|
|
115
|
+
"bundled": false
|
|
116
|
+
},
|
|
117
|
+
"@jupyter/docprovider": {
|
|
118
|
+
"singleton": true,
|
|
119
|
+
"bundled": false
|
|
120
|
+
},
|
|
121
|
+
"yjs-widgets": {
|
|
122
|
+
"singleton": true,
|
|
123
|
+
"bundled": false
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"_build": {
|
|
127
|
+
"load": "static/remoteEntry.15c6baaafaa709cc98c0.js",
|
|
128
|
+
"extension": "./extension",
|
|
129
|
+
"style": "./style"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[]).push([[373],{232:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,".jp-SchemaForm .array-item-move-up::before {\n content: var(--jp-schema-form-up);\n}\n\n.jp-SchemaForm .array-item-move-down::before {\n content: var(--jp-schema-form-down);\n}\n\n.jp-SchemaForm .array-item-remove::before {\n content: var(--jp-schema-form-remove);\n}\n\n.jp-SchemaForm .array-item-remove {\n content: var(--jp-schema-form-remove);\n}\n\n.jp-SchemaForm .array-item-add button::before {\n content: var(--jp-schema-form-add);\n}\n\n.jp-SchemaForm .array-item-add button {\n background-color: var(--jp-brand-color2);\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.jp-SchemaForm .array-item-add button:hover {\n background-color: var(--jp-brand-color1);\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.jp-SchemaForm .array-item-toolbox {\n opacity: 0.5;\n flex: 0;\n padding-right: var(--jp-ui-font-size1);\n margin-bottom: calc(var(--jp-ui-font-size1) / 2);\n order: 1;\n}\n\n.jp-SchemaForm .array-item:hover > .array-item-toolbox {\n opacity: 1;\n}\n\n.jp-SchemaForm .array-item-toolbox .btn-group {\n display: flex;\n flex-direction: column;\n}\n\n.jp-SchemaForm .array-item-toolbox .btn {\n margin-bottom: calc(var(--jp-ui-font-size1) / 2);\n}\n\n.jp-SchemaForm .array-item-toolbox .btn:hover:not([disabled]) {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-SchemaForm .array-item-toolbox .btn.array-item-remove:hover {\n background-color: var(--jp-warn-color2);\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.jp-SchemaForm .array-item-toolbox .btn[disabled] {\n opacity: 0.1;\n cursor: default;\n}\n\n.jp-SchemaForm .array-item {\n display: flex;\n position: relative;\n}\n\n.jp-SchemaForm .array-item:not(:last-child) {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n margin-bottom: var(--jp-ui-font-size1);\n padding-bottom: var(--jp-ui-font-size1);\n}\n\n.jp-SchemaForm .array-item div:first-child {\n flex: 1;\n order: 2;\n}\n",""]);const l=i},485:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,".jp-SchemaForm .react-codemirror2 {\n border: solid var(--jp-border-width) var(--jp-border-color1);\n display: flex;\n flex-direction: column;\n}\n",""]);const l=i},54:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,".jp-SchemaForm {\n overflow-y: auto;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-SchemaForm .rjsf {\n display: flex;\n flex-direction: column;\n}\n\n.jp-SchemaForm > form {\n padding: var(--jp-ui-font-size1);\n}\n\n.jp-SchemaForm fieldset {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.jp-SchemaForm fieldset fieldset {\n padding-left: var(--jp-notebook-padding);\n border-left: solid 4px var(--jp-border-color3);\n}\n\n.jp-SchemaForm button[type='submit'] {\n display: none;\n}\n\n.jp-SchemaForm .control-label,\n.jp-SchemaForm legend {\n margin: 0;\n padding: 0;\n font-weight: bold;\n display: block;\n position: relative;\n}\n\n.jp-SchemaForm legend > :first-child,\n.jp-SchemaForm .control-label > :first-child {\n margin-top: 0;\n padding-top: 0;\n}\n\n.jp-SchemaForm .form-group {\n margin-bottom: var(--jp-ui-font-size1);\n width: 100%;\n position: relative;\n}\n\n.jp-SchemaForm .form-group:last-child {\n margin-bottom: 0;\n}\n\n.jp-SchemaForm .field-description,\n.jp-SchemaForm .help-block {\n color: var(--jp-ui-font-color2);\n}\n\n.jp-SchemaForm .required {\n font-size: var(--jp-ui-font-size3);\n color: var(--jp-warn-color1);\n font-weight: 800;\n position: absolute;\n top: 0;\n right: 0;\n display: block;\n}\n",""]);const l=i},606:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,".jp-SchemaForm .errors {\n order: 999;\n color: var(--jp-warn-color0);\n}\n\n.jp-SchemaForm .errors h3 {\n margin: 0;\n}\n\n.jp-SchemaForm .errors ul,\n.jp-SchemaForm .errors li {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.jp-SchemaForm .has-error > input[type='text'],\n.jp-SchemaForm .has-error > input[type='number'],\n.jp-SchemaForm .has-error > input[type='date'],\n.jp-SchemaForm .has-error > input[type='datetime-local'],\n.jp-SchemaForm .has-error > input[type='url'],\n.jp-SchemaForm .has-error > input[type='email'],\n.jp-SchemaForm .has-error > input[type='file'],\n.jp-SchemaForm .has-error > input[type='password'],\n.jp-SchemaForm .has-error > input[type='color'],\n.jp-SchemaForm .has-error > textarea {\n border: solid 1px var(--jp-warn-color1);\n}\n\n.jp-SchemaForm .field .error-detail {\n list-style: none;\n color: var(--jp-warn-color0);\n margin: 0;\n padding: 0;\n}\n\n.jp-SchemaForm .field .error-detail li {\n margin-top: calc(var(--jp-ui-font-size1) / 2);\n}\n",""]);const l=i},307:(n,o,r)=>{r.d(o,{A:()=>v});var e=r(758),t=r.n(e),a=r(935),i=r.n(a),l=r(54),c=r(232),p=r(19),s=r(606),d=r(836),m=r(548),u=r(293),b=r(485),h=i()(t());h.i(l.A),h.i(c.A),h.i(p.A),h.i(s.A),h.i(d.A),h.i(m.A),h.i(u.A),h.i(b.A),h.push([n.id,"\n",""]);const v=h},19:(n,o,r)=>{r.d(o,{A:()=>m});var e=r(758),t=r.n(e),a=r(935),i=r.n(a),l=r(62),c=r.n(l),p=new URL(r(967),r.b),s=i()(t()),d=c()(p);s.push([n.id,`.jp-SchemaForm input[type='text'],\n.jp-SchemaForm input[type='number'],\n.jp-SchemaForm input[type='date'],\n.jp-SchemaForm input[type='datetime-local'],\n.jp-SchemaForm input[type='url'],\n.jp-SchemaForm input[type='email'],\n.jp-SchemaForm input[type='file'],\n.jp-SchemaForm input[type='password'],\n.jp-SchemaForm input[type='color'],\n.jp-SchemaForm textarea {\n box-sizing: border-box;\n border: var(--jp-border-width) solid var(--jp-border-color1);\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n font-size: var(--jp-ui-font-size2);\n min-width: 0;\n outline: none !important;\n padding: 2px 7px;\n width: 100%;\n max-width: 100%;\n}\n\n.jp-SchemaForm input[type='text']:focus,\n.jp-SchemaForm input[type='number']:focus,\n.jp-SchemaForm input[type='date']:focus,\n.jp-SchemaForm input[type='datetime-local']:focus,\n.jp-SchemaForm input[type='url']:focus,\n.jp-SchemaForm input[type='email']:focus,\n.jp-SchemaForm input[type='file']:focus,\n.jp-SchemaForm input[type='password']:focus,\n.jp-SchemaForm input[type='color']:focus,\n.jp-SchemaForm textarea:focus {\n border-color: var(--md-blue-500);\n background-color: var(--jp-layout-color0);\n box-shadow: inset 0 0 4px var(--md-blue-300);\n}\n\n.jp-SchemaForm select {\n width: 100%;\n font-size: var(--jp-ui-font-size1);\n background: var(--jp-input-background);\n color: var(--jp-ui-font-color0);\n padding: calc(var(--jp-ui-font-size1) / 2);\n padding-right: var(--jp-ui-font-size3);\n background-image: url(${d});\n background-repeat: no-repeat;\n background-position: 99% center;\n background-size: 18px;\n border: var(--jp-border-width) solid var(--jp-input-border-color);\n border-radius: 0;\n outline: none;\n appearance: none;\n}\n\n.jp-SchemaForm select[multiple] {\n padding: 0;\n background: none;\n}\n\n.jp-SchemaForm select:focus {\n border: var(--jp-border-width) solid var(--jp-brand-color1);\n}\n\n.jp-SchemaForm fieldset button {\n font-size: var(--jp-ui-font-size2);\n padding: calc(var(--jp-ui-font-size1) / 2);\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n border: var(--jp-border-width) solid transparent;\n cursor: pointer;\n min-width: calc(var(--jp-ui-font-size1) * 1.6);\n font-weight: bold;\n}\n\n.jp-SchemaForm .radio > label > span,\n.jp-SchemaForm .field-boolean .checkbox > label {\n display: flex;\n}\n\n.jp-SchemaForm .radio > label > span > input,\n.jp-SchemaForm .field-boolean .checkbox > label > input {\n flex: 0;\n}\n\n.jp-SchemaForm .radio > label > span > span,\n.jp-SchemaForm .field-boolean .checkbox > label > span {\n flex: 1;\n}\n`,""]);const m=s},293:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,".jp-SchemaForm fieldset .jp-SchemaForm-JSONObject-buttons {\n display: flex;\n}\n\n.jp-SchemaForm fieldset .jp-SchemaForm-JSONObject-buttons button {\n border: solid var(--jp-border-width) transparent;\n flex: 1;\n margin: 0;\n background-color: transparent;\n}\n\n.jp-SchemaForm fieldset .jp-SchemaForm-JSONObject-buttons button[disabled] {\n opacity: 0.25;\n}\n\n.jp-SchemaForm fieldset .jp-SchemaForm-JSONObject-buttons button:hover:not([disabled]),\n.jp-SchemaForm fieldset .jp-SchemaForm-JSONObject-buttons button:focus:not([disabled]) {\n border: solid var(--jp-border-width) var(--jp-border-color1);\n background-color: var(jp-layout-color2);\n}\n",""]);const l=i},548:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,".jp-SchemaForm .jp-RenderedMarkdown > *:first-child {\n margin-top: 0;\n padding-top: 0;\n}\n\n.jp-SchemaForm .jp-RenderedMarkdown > *:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n}\n",""]);const l=i},836:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,":root {\n --jp-schema-form-up: '▲';\n --jp-schema-form-down: '▼';\n --jp-schema-form-remove: '×';\n --jp-schema-form-add: '+';\n}\n",""]);const l=i},4:(n,o,r)=>{r.d(o,{A:()=>l});var e=r(758),t=r.n(e),a=r(935),i=r.n(a)()(t());i.push([n.id,':root,\n:host {\n --ol-background-color: white;\n --ol-accent-background-color: #F5F5F5;\n --ol-subtle-background-color: rgba(128, 128, 128, 0.25);\n --ol-partial-background-color: rgba(255, 255, 255, 0.75);\n --ol-foreground-color: #333333;\n --ol-subtle-foreground-color: #666666;\n --ol-brand-color: #00AAFF;\n}\n\n.ol-box {\n box-sizing: border-box;\n border-radius: 2px;\n border: 1.5px solid var(--ol-background-color);\n background-color: var(--ol-partial-background-color);\n}\n\n.ol-mouse-position {\n top: 8px;\n right: 8px;\n position: absolute;\n}\n\n.ol-scale-line {\n background: var(--ol-partial-background-color);\n border-radius: 4px;\n bottom: 8px;\n left: 8px;\n padding: 2px;\n position: absolute;\n}\n\n.ol-scale-line-inner {\n border: 1px solid var(--ol-subtle-foreground-color);\n border-top: none;\n color: var(--ol-foreground-color);\n font-size: 10px;\n text-align: center;\n margin: 1px;\n will-change: contents, width;\n transition: all 0.25s;\n}\n\n.ol-scale-bar {\n position: absolute;\n bottom: 8px;\n left: 8px;\n}\n\n.ol-scale-bar-inner {\n display: flex;\n}\n\n.ol-scale-step-marker {\n width: 1px;\n height: 15px;\n background-color: var(--ol-foreground-color);\n float: right;\n z-index: 10;\n}\n\n.ol-scale-step-text {\n position: absolute;\n bottom: -5px;\n font-size: 10px;\n z-index: 11;\n color: var(--ol-foreground-color);\n text-shadow: -1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);\n}\n\n.ol-scale-text {\n position: absolute;\n font-size: 12px;\n text-align: center;\n bottom: 25px;\n color: var(--ol-foreground-color);\n text-shadow: -1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);\n}\n\n.ol-scale-singlebar {\n position: relative;\n height: 10px;\n z-index: 9;\n box-sizing: border-box;\n border: 1px solid var(--ol-foreground-color);\n}\n\n.ol-scale-singlebar-even {\n background-color: var(--ol-subtle-foreground-color);\n}\n\n.ol-scale-singlebar-odd {\n background-color: var(--ol-background-color);\n}\n\n.ol-unsupported {\n display: none;\n}\n\n.ol-viewport,\n.ol-unselectable {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.ol-viewport canvas {\n all: unset;\n overflow: hidden;\n}\n\n.ol-viewport {\n touch-action: pan-x pan-y;\n}\n\n.ol-selectable {\n -webkit-touch-callout: default;\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text;\n}\n\n.ol-grabbing {\n cursor: -webkit-grabbing;\n cursor: -moz-grabbing;\n cursor: grabbing;\n}\n\n.ol-grab {\n cursor: move;\n cursor: -webkit-grab;\n cursor: -moz-grab;\n cursor: grab;\n}\n\n.ol-control {\n position: absolute;\n background-color: var(--ol-subtle-background-color);\n border-radius: 4px;\n}\n\n.ol-zoom {\n top: .5em;\n left: .5em;\n}\n\n.ol-rotate {\n top: .5em;\n right: .5em;\n transition: opacity .25s linear, visibility 0s linear;\n}\n\n.ol-rotate.ol-hidden {\n opacity: 0;\n visibility: hidden;\n transition: opacity .25s linear, visibility 0s linear .25s;\n}\n\n.ol-zoom-extent {\n top: 4.643em;\n left: .5em;\n}\n\n.ol-full-screen {\n right: .5em;\n top: .5em;\n}\n\n.ol-control button {\n display: block;\n margin: 1px;\n padding: 0;\n color: var(--ol-subtle-foreground-color);\n font-weight: bold;\n text-decoration: none;\n font-size: inherit;\n text-align: center;\n height: 1.375em;\n width: 1.375em;\n line-height: .4em;\n background-color: var(--ol-background-color);\n border: none;\n border-radius: 2px;\n}\n\n.ol-control button::-moz-focus-inner {\n border: none;\n padding: 0;\n}\n\n.ol-zoom-extent button {\n line-height: 1.4em;\n}\n\n.ol-compass {\n display: block;\n font-weight: normal;\n will-change: transform;\n}\n\n.ol-touch .ol-control button {\n font-size: 1.5em;\n}\n\n.ol-touch .ol-zoom-extent {\n top: 5.5em;\n}\n\n.ol-control button:hover,\n.ol-control button:focus {\n text-decoration: none;\n outline: 1px solid var(--ol-subtle-foreground-color);\n color: var(--ol-foreground-color);\n}\n\n.ol-zoom .ol-zoom-in {\n border-radius: 2px 2px 0 0;\n}\n\n.ol-zoom .ol-zoom-out {\n border-radius: 0 0 2px 2px;\n}\n\n.ol-attribution {\n text-align: right;\n bottom: .5em;\n right: .5em;\n max-width: calc(100% - 1.3em);\n display: flex;\n flex-flow: row-reverse;\n align-items: center;\n}\n\n.ol-attribution a {\n color: var(--ol-subtle-foreground-color);\n text-decoration: none;\n}\n\n.ol-attribution ul {\n margin: 0;\n padding: 1px .5em;\n color: var(--ol-foreground-color);\n text-shadow: 0 0 2px var(--ol-background-color);\n font-size: 12px;\n}\n\n.ol-attribution li {\n display: inline;\n list-style: none;\n}\n\n.ol-attribution li:not(:last-child):after {\n content: " ";\n}\n\n.ol-attribution img {\n max-height: 2em;\n max-width: inherit;\n vertical-align: middle;\n}\n\n.ol-attribution button {\n flex-shrink: 0;\n}\n\n.ol-attribution.ol-collapsed ul {\n display: none;\n}\n\n.ol-attribution:not(.ol-collapsed) {\n background: var(--ol-partial-background-color);\n}\n\n.ol-attribution.ol-uncollapsible {\n bottom: 0;\n right: 0;\n border-radius: 4px 0 0;\n}\n\n.ol-attribution.ol-uncollapsible img {\n margin-top: -.2em;\n max-height: 1.6em;\n}\n\n.ol-attribution.ol-uncollapsible button {\n display: none;\n}\n\n.ol-zoomslider {\n top: 4.5em;\n left: .5em;\n height: 200px;\n}\n\n.ol-zoomslider button {\n position: relative;\n height: 10px;\n}\n\n.ol-touch .ol-zoomslider {\n top: 5.5em;\n}\n\n.ol-overviewmap {\n left: 0.5em;\n bottom: 0.5em;\n}\n\n.ol-overviewmap.ol-uncollapsible {\n bottom: 0;\n left: 0;\n border-radius: 0 4px 0 0;\n}\n\n.ol-overviewmap .ol-overviewmap-map,\n.ol-overviewmap button {\n display: block;\n}\n\n.ol-overviewmap .ol-overviewmap-map {\n border: 1px solid var(--ol-subtle-foreground-color);\n height: 150px;\n width: 150px;\n}\n\n.ol-overviewmap:not(.ol-collapsed) button {\n bottom: 0;\n left: 0;\n position: absolute;\n}\n\n.ol-overviewmap.ol-collapsed .ol-overviewmap-map,\n.ol-overviewmap.ol-uncollapsible button {\n display: none;\n}\n\n.ol-overviewmap:not(.ol-collapsed) {\n background: var(--ol-subtle-background-color);\n}\n\n.ol-overviewmap-box {\n border: 1.5px dotted var(--ol-subtle-foreground-color);\n}\n\n.ol-overviewmap .ol-overviewmap-box:hover {\n cursor: move;\n}\n\n.ol-overviewmap .ol-viewport:hover {\n cursor: pointer;\n}\n',""]);const l=i},935:n=>{n.exports=function(n){var o=[];return o.toString=function(){return this.map((function(o){var r="",e=void 0!==o[5];return o[4]&&(r+="@supports (".concat(o[4],") {")),o[2]&&(r+="@media ".concat(o[2]," {")),e&&(r+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),r+=n(o),e&&(r+="}"),o[2]&&(r+="}"),o[4]&&(r+="}"),r})).join("")},o.i=function(n,r,e,t,a){"string"==typeof n&&(n=[[null,n,void 0]]);var i={};if(e)for(var l=0;l<this.length;l++){var c=this[l][0];null!=c&&(i[c]=!0)}for(var p=0;p<n.length;p++){var s=[].concat(n[p]);e&&i[s[0]]||(void 0!==a&&(void 0===s[5]||(s[1]="@layer".concat(s[5].length>0?" ".concat(s[5]):""," {").concat(s[1],"}")),s[5]=a),r&&(s[2]?(s[1]="@media ".concat(s[2]," {").concat(s[1],"}"),s[2]=r):s[2]=r),t&&(s[4]?(s[1]="@supports (".concat(s[4],") {").concat(s[1],"}"),s[4]=t):s[4]="".concat(t)),o.push(s))}},o}},62:n=>{n.exports=function(n,o){return o||(o={}),n?(n=String(n.__esModule?n.default:n),/^['"].*['"]$/.test(n)&&(n=n.slice(1,-1)),o.hash&&(n+=o.hash),/["'() \t\n]|(%20)/.test(n)||o.needQuotes?'"'.concat(n.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):n):n}},758:n=>{n.exports=function(n){return n[1]}},591:n=>{var o=[];function r(n){for(var r=-1,e=0;e<o.length;e++)if(o[e].identifier===n){r=e;break}return r}function e(n,e){for(var a={},i=[],l=0;l<n.length;l++){var c=n[l],p=e.base?c[0]+e.base:c[0],s=a[p]||0,d="".concat(p," ").concat(s);a[p]=s+1;var m=r(d),u={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==m)o[m].references++,o[m].updater(u);else{var b=t(u,e);e.byIndex=l,o.splice(l,0,{identifier:d,updater:b,references:1})}i.push(d)}return i}function t(n,o){var r=o.domAPI(o);return r.update(n),function(o){if(o){if(o.css===n.css&&o.media===n.media&&o.sourceMap===n.sourceMap&&o.supports===n.supports&&o.layer===n.layer)return;r.update(n=o)}else r.remove()}}n.exports=function(n,t){var a=e(n=n||[],t=t||{});return function(n){n=n||[];for(var i=0;i<a.length;i++){var l=r(a[i]);o[l].references--}for(var c=e(n,t),p=0;p<a.length;p++){var s=r(a[p]);0===o[s].references&&(o[s].updater(),o.splice(s,1))}a=c}}},128:n=>{var o={};n.exports=function(n,r){var e=function(n){if(void 0===o[n]){var r=document.querySelector(n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(n){r=null}o[n]=r}return o[n]}(n);if(!e)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");e.appendChild(r)}},51:n=>{n.exports=function(n){var o=document.createElement("style");return n.setAttributes(o,n.attributes),n.insert(o,n.options),o}},855:(n,o,r)=>{n.exports=function(n){var o=r.nc;o&&n.setAttribute("nonce",o)}},740:n=>{n.exports=function(n){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var o=n.insertStyleElement(n);return{update:function(r){!function(n,o,r){var e="";r.supports&&(e+="@supports (".concat(r.supports,") {")),r.media&&(e+="@media ".concat(r.media," {"));var t=void 0!==r.layer;t&&(e+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),e+=r.css,t&&(e+="}"),r.media&&(e+="}"),r.supports&&(e+="}");var a=r.sourceMap;a&&"undefined"!=typeof btoa&&(e+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),o.styleTagTransform(e,n,o.options)}(o,n,r)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(o)}}}},656:n=>{n.exports=function(n,o){if(o.styleSheet)o.styleSheet.cssText=n;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(n))}}},967:n=>{n.exports="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' viewBox='0 0 20 20'%3e %3cg class='jp-icon3' fill='%23616161' shape-rendering='geometricPrecision'%3e %3cpolygon class='st1' points='9.9%2c13.6 3.6%2c7.4 4.4%2c6.6 9.9%2c12.2 15.4%2c6.7 16.1%2c7.4 '/%3e %3c/g%3e %3c/svg%3e"}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[]).push([[432],{79:(n,e,o)=>{o.d(e,{A:()=>f});var r=o(758),t=o.n(r),i=o(935),a=o.n(i),l=o(564),p=o(365),s=o(633),d=o(705),c=o(225),g=o(781),j=o(4),b=a()(t());b.i(l.A),b.i(p.A),b.i(s.A),b.i(d.A),b.i(c.A),b.i(g.A),b.i(j.A),b.push([n.id,"/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|---------------------------------------------------------------------------- */\n\n.jGIS-Toolbar-GroupName {\n font-size: var(--jp-ui-font-size0);\n padding-left: 3px;\n}\n\n/* Overwrite forms CSS */\n.jGIS-property-panel .array-item-list {\n display: flex;\n gap: 1rem;\n}\n\n.jGIS-property-panel .jp-SchemaForm .array-item:not(:last-child) {\n border-bottom: none;\n margin-bottom: unset;\n padding-bottom: unset;\n}\n\n.jGIS-property-panel .jp-SchemaForm .array-item {\n flex: 1 0 0%;\n align-items: center;\n}\n\n.jGIS-property-panel .jp-SchemaForm .field-description {\n display: none;\n}\n\n.jGIS-property-panel .jp-SchemaForm fieldset fieldset {\n padding-left: unset;\n border-left: none;\n}\n\n.jGIS-property-panel .jp-SchemaForm .array-item-list:has(.field-array) {\n flex-direction: column;\n}\n\n.jp-gis-text-label {\n margin: 0;\n padding: 0;\n font-weight: bold;\n display: block;\n position: relative;\n}\n",""]);const f=b},564:(n,e,o)=>{o.d(e,{A:()=>l});var r=o(758),t=o.n(r),i=o(935),a=o.n(i)()(t());a.push([n.id,"/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|---------------------------------------------------------------------------- */\n\n.jp-SchemaForm .jp-select-wrapper select {\n background-image: unset;\n}\n",""]);const l=a},225:(n,e,o)=>{o.d(e,{A:()=>l});var r=o(758),t=o.n(r),i=o(935),a=o.n(i)()(t());a.push([n.id,".jp-gis-filter-main {\n display: flex;\n flex-direction: column;\n padding: 10px;\n gap: 1rem;\n}\n\n.jp-gis-filter-list {\n display: flex;\n flex-direction: column;\n}\n\n.jp-gis-filter-button-container {\n display: flex;\n justify-content: space-between;\n}\n\n.jp-gis-filter-main > .jp-Dialog-button {\n width: fit-content;\n align-self: flex-end;\n}\n\n.jp-gis-logical-select {\n width: fit-content !important;\n padding: 0 8px !important;\n text-align: center;\n}\n\n.jp-gis-filter-select-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.jp-gis-filter-row {\n display: flex;\n justify-content: space-around;\n width: 100%;\n gap: 0.25rem;\n}\n\n.jp-gis-filter-row > select {\n text-transform: capitalize;\n padding: 0;\n text-align: center;\n}\n\n.jp-gis-filter-row > option {\n text-transform: capitalize;\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-gis-filter-row > button {\n color: var(--jp-ui-font-color0);\n background: none;\n}\n\n.jp-gis-filter-row > button:hover {\n color: var(--jp-warn-color-hover);\n}\n\n.jp-gis-filter-icon:hover {\n scale: 1.3;\n cursor: pointer;\n}\n\n.jp-gis-filter-icon > svg {\n height: 16px;\n width: 16px;\n}\n",""]);const l=a},378:(n,e,o)=>{o.d(e,{A:()=>s});var r=o(758),t=o.n(r),i=o(935),a=o.n(i),l=o(79),p=a()(t());p.i(l.A),p.push([n.id,"/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|---------------------------------------------------------------------------- */\n",""]);const s=p},365:(n,e,o)=>{o.d(e,{A:()=>l});var r=o(758),t=o.n(r),i=o(935),a=o.n(i)()(t());a.push([n.id,".jGIS-layerbrowser-FormDialog .jp-Dialog-header {\n padding: 0;\n}\n\n.jGIS-layerbrowser-FormDialog .jp-Dialog-content {\n width: calc(100% - 4rem);\n max-width: 100%;\n height: calc(100% - 2rem);\n max-height: 100%;\n}\n\n.jGIS-layerbrowser-FormDialog form {\n padding: 10px;\n}\n\n.jGIS-customlayer-form {\n height: 100%;\n overflow: auto;\n}\n\n.jGIS-layer-browser-container * {\n box-sizing: border-box;\n}\n\n.jGIS-layer-browser-container {\n display: flex;\n flex-direction: column;\n}\n\n.jGIS-layer-browser-header-container {\n position: sticky;\n top: 0;\n z-index: 40;\n background-color: var(--jp-layout-color1);\n}\n\n.jGIS-layer-browser-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n padding: 1rem 2rem;\n}\n\n.jGIS-layer-browser-header-text {\n padding-right: 1rem;\n font-weight: bold;\n}\n\n.jGIS-layer-browser-header-search-container {\n display: flex;\n align-items: center;\n flex-grow: 1;\n position: relative;\n}\n\n.jGIS-layer-browser-header-search-icon {\n position: absolute;\n top: 50%;\n left: 0.75rem;\n transform: translateY(-50%);\n}\n\n.jGIS-layer-browser-header-search {\n box-shadow: none;\n flex: 1 1 0%;\n height: 40px;\n padding: 1rem 2rem;\n padding-left: 2.5rem;\n background-color: transparent;\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n color: var(--jp-ui-font-color1);\n}\n\n.jGIS-layer-browser-grid {\n display: grid;\n gap: 1.25rem;\n grid-template-rows: 1fr;\n grid-template-columns: repeat(3, minmax(0px, 1fr));\n padding: 1rem 2rem;\n}\n\n@media (min-width: 1400px) {\n .jGIS-layer-browser-grid {\n grid-template-columns: repeat(5, minmax(0px, 1fr));\n }\n}\n\n.jGIS-layer-browser-categories {\n display: flex;\n gap: 2rem;\n padding: 0 2rem;\n border-bottom: 2px solid var(--jp-border-color1);\n}\n\n.jGIS-layer-browser-category {\n position: relative;\n opacity: 0.7;\n padding: 4px 0 14px;\n cursor: pointer;\n text-decoration: none;\n}\n\n.jGIS-layer-browser-category::after {\n content: '';\n position: absolute;\n bottom: -2px;\n left: 0;\n width: 0px;\n height: 3px;\n transition:\n background-color 300ms ease-in,\n width 300ms ease-in,\n opacity 300ms ease-in;\n background-color: transparent;\n}\n\n.jGIS-layer-browser-category.jGIS-layer-browser-category-selected::after {\n width: 100%;\n background-color: var(--jp-inverse-layout-color2);\n}\n\n.jGIS-layer-browser-category.jGIS-layer-browser-category-selected {\n opacity: 1;\n font-weight: bold;\n}\n\n.jGIS-layer-browser-tile {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n position: relative;\n margin-top: 4px;\n padding: 8px;\n transition: transform 150ms ease-out;\n cursor: pointer;\n border: 1px solid var(--jp-border-color1);\n background-color: var(--jp-layout-color1);\n border-radius: 8px;\n}\n\n.jGIS-layer-browser-custom-tile {\n border: 1px solid var(--jp-border-color2);\n background-color: var(--jp-layout-color2);\n}\n\n.jGIS-layer-browser-tile:hover {\n box-shadow: var(--jp-layout-color2);\n transform: translateY(-4px);\n background-color: var(--jp-brand-color2);\n}\n\n.jGIS-layer-browser-tile-img-container {\n /* isolation: isolate; */\n /* border: medium; */\n /* background: transparent; */\n /* padding: 0px; */\n /* width: 100%; */\n aspect-ratio: 16 / 10;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n overflow: hidden;\n border-radius: 8px;\n}\n\n.jGIS-layer-browser-img {\n /* position: absolute; */\n /* height: 100%; */\n /* object-fit: cover; */\n /* box-sizing: border-box; */\n width: 100%;\n}\n\n.jGIS-layer-browser-icon {\n padding-inline: 8px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n overflow: hidden;\n box-sizing: border-box;\n width: 32px;\n height: 32px;\n transition:\n width 125ms ease-in-out,\n background-color 125ms ease-in-out,\n opacity 150ms ease-out;\n background-color: var(--jp-accent-color1);\n border-radius: 20px;\n}\n\n.jGIS-layer-browser-tile:not(.jGIS-layer-browser-tile:hover)\n .jGIS-layer-browser-icon {\n opacity: 0;\n}\n\n.jGIS-layer-browser-added {\n display: inline-flex;\n gap: 0.35rem;\n opacity: 1 !important;\n width: 7rem;\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jGIS-layer-browser-text-container {\n padding-inline: 4px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 8px;\n flex: 1 1 0%;\n box-sizing: border-box;\n}\n\n.jGIS-layer-browser-text-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n box-sizing: border-box;\n}\n\n.jGIS-layer-browser-text-header {\n overflow: hidden;\n font-weight: bold;\n text-transform: capitalize;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jGIS-layer-browser-text-p {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.jGIS-layer-browser-text-source {\n overflow: hidden;\n font-size: 0.75rem;\n font-weight: lighter;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jGIS-layer-browser-text-description {\n -webkit-line-clamp: 2;\n -moz-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.jGIS-layer-browser-text-general {\n margin: 0;\n}\n",""]);const l=a},633:(n,e,o)=>{o.d(e,{A:()=>l});var r=o(758),t=o.n(r),i=o(935),a=o.n(i)()(t());a.push([n.id,"/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|---------------------------------------------------------------------------- */\n\n.jp-gis-sourcePanel,\n.jp-gis-layerPanel {\n min-height: 3em;\n}\n\n.jp-gis-layerItem,\n.jp-gis-source {\n padding: 2px 0 2px 12px;\n}\n\n.jp-gis-layerGroup {\n display: flex;\n flex-direction: column;\n}\n\n.jp-gis-layerGroupHeader {\n display: flex;\n margin-left: -2px;\n padding-bottom: 4px;\n}\n\n.jp-gis-layerGroupHeader:hover {\n cursor: pointer;\n}\n\n.jp-gis-layerGroupCollapser {\n transform: rotate(-90deg);\n margin: auto 0;\n height: 16px;\n}\n\n.jp-gis-layerGroupCollapser.jp-mod-expanded {\n transform: rotate(0deg);\n}\n\n.jp-gis-layer,\n.jp-gis-source {\n display: flex;\n flex-direction: row;\n align-items: center;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-gis-layer.jp-mod-selected,\n.jp-gis-source.jp-mod-selected,\n.jp-gis-layerGroupHeader.jp-mod-selected {\n color: var(--jp-ui-inverse-font-color1);\n background: var(--jp-brand-color1);\n}\n\n.jp-gis-layer:hover:not(.jp-mod-selected),\n.jp-gis-source:hover:not(.jp-mod-selected) {\n cursor: pointer;\n background: var(--jp-layout-color2);\n}\n\n.jp-gis-layer.jp-mod-selected .jp-icon-selectable,\n.jp-gis-source.jp-mod-selected .jp-icon-selectable,\n.jp-gis-layerGroupHeader.jp-mod-selected .jp-icon-selectable {\n fill: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-gis-layer button,\n.jp-gis-source button {\n margin-left: auto;\n min-height: unset;\n min-width: unset;\n padding: unset;\n margin-right: 4px;\n}\n\n.jp-gis-layer.jp-mod-selected button:hover .jp-icon-selectable,\n.jp-gis-source.jp-mod-selected button:hover .jp-icon-selectable {\n fill: var(--jp-ui-font-color1);\n}\n\n.jp-gis-layerIcon,\n.jp-gis-sourceIcon {\n display: flex;\n align-items: center;\n}\n\n.jp-gis-layerIcon > svg,\n.jp-gis-sourceIcon > svg {\n height: 16px;\n width: 16px;\n}\n\n.jp-gis-layerTitle,\n.jp-gis-sourceTitle {\n display: flex;\n flex-grow: 1;\n align-items: center;\n}\n\n.jp-gis-layerText:focus,\n.jp-gis-sourceText:focus {\n outline: none;\n}\n\n.jp-gis-layerTitle .jp-gis-layerIcon,\n.jp-gis-sourceTitle .jp-gis-sourceIcon {\n padding-right: 4px;\n}\n\n.jp-gis-left-panel-input {\n background-color: transparent;\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n color: var(--jp-ui-font-color1);\n flex-grow: 1;\n margin-right: 4px;\n outline: none;\n padding: 2px 7px;\n}\n\n.jp-gis-left-panel-input:focus {\n border: 1px solid var(--jp-brand-color1);\n}\n\n.jp-gis-layerText,\n.jp-gis-sourceText {\n padding: 3px 0;\n cursor: pointer;\n}\n\nli .lm-Menu-itemLabel {\n text-transform: capitalize;\n}\n\n.jp-gis-sourceInfo {\n font-size: var(--jp-ui-font-size0);\n font-style: italic;\n padding-left: 5px;\n color: var(--jp-ui-font-color2);\n}\n\n#jp-drag-indicator {\n top: calc(-1 * var(--jp-border-width) + 1px);\n left: calc(-1 * var(--jp-border-width));\n content: '';\n height: var(--jp-private-horizontal-tab-active-top-border);\n width: calc(100% + 2 * var(--jp-border-width));\n background: var(--jp-brand-color1);\n}\n",""]);const l=a},781:(n,e,o)=>{o.d(e,{A:()=>l});var r=o(758),t=o.n(r),i=o(935),a=o.n(i)()(t());a.push([n.id,".jp-gis-symbology-dialog .jp-Dialog-header {\n font-weight: bold;\n}\n\n.jp-gis-symbology-dialog .jp-Dialog-content {\n width: calc(80% - 4rem);\n max-width: 80%;\n height: fit-content;\n max-height: 80%;\n}\n\n.jp-gis-symbology-row {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n gap: 2rem;\n}\n\n.jp-gis-symbology-row label {\n font-size: var(--jp-ui-font-size2);\n flex: 0 1 20%;\n}\n\n.jp-gis-symbology-row > .jp-select-wrapper {\n flex: 1 0 50%;\n max-width: 50%;\n}\n\n.jp-gis-band-container {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.jp-gis-layer-symbology-container {\n display: flex;\n flex-direction: column;\n}\n\n.jp-gis-band-container .jp-gis-symbology-row:last-child {\n margin-bottom: 12px;\n}\n\n.jp-gis-stop-container {\n display: flex;\n flex-direction: column;\n gap: 0.1rem;\n}\n\n.jp-gis-stop-labels {\n display: flex;\n font-weight: bold;\n font-size: var(--jp-ui-font-size1);\n gap: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.jp-gis-stop-labels > span {\n flex: 0 0 18%;\n}\n\n.jp-gis-color-row {\n display: flex;\n width: 100%;\n gap: 0.25rem;\n height: 32px;\n}\n\n.jp-gis-color-row > input[type='number'] {\n flex: 0 1 18%;\n min-width: 0px;\n}\n\n.jp-gis-color-row > input[type='color'] {\n flex-grow: 1;\n}\n\n.jp-gis-color-row > button {\n color: var(--jp-ui-font-color0);\n background: none;\n padding-right: 0px;\n}\n\n.jp-gis-symbology-button-container {\n padding-top: 0.5rem;\n}\n",""]);const l=a},705:(n,e,o)=>{o.d(e,{A:()=>l});var r=o(758),t=o.n(r),i=o(935),a=o.n(i)()(t());a.push([n.id,".jp-gis-terrain-main {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n overflow: hidden;\n}\n\n.jp-gis-terrain-label {\n margin: 0;\n padding: 0;\n font-weight: bold;\n display: block;\n position: relative;\n}\n",""]);const l=a},296:(n,e,o)=>{o.d(e,{A:()=>d});var r=o(758),t=o.n(r),i=o(935),a=o.n(i),l=o(307),p=o(378),s=a()(t());s.i(l.A),s.i(p.A),s.push([n.id,".jGIS-Spinner {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n outline: none;\n background: #00000075;\n}\n\n.jGIS-SpinnerContent {\n border: solid #f376269e;\n margin: 50px auto;\n text-indent: -9999em;\n width: 6em;\n height: 6em;\n border-radius: 50%;\n position: relative;\n animation:\n load3 1s infinite linear,\n fadeIn 1s;\n}\n\n.jGIS-SpinnerContent:before {\n width: 50%;\n height: 50%;\n background: #f3762605;\n border-radius: 100% 0 100% 0;\n box-shadow: inset 6px 5px 0 1px #f37626;\n position: absolute;\n top: 0;\n left: 0;\n content: '';\n}\n\n.jGIS-SpinnerContent:after {\n width: 75%;\n height: 75%;\n border-radius: 50%;\n content: '';\n margin: auto;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n\n.jGIS-camera-client {\n width: 15px;\n height: 15px;\n position: absolute;\n z-index: 10;\n background-color: var(--jp-private-notebook-active-color);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.jGIS-control-panel {\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n height: 100%;\n}\n\n.jGIS-control-panel * {\n font-family: var(--jp-ui-font-family);\n}\n\n.jGIS-control-panel-title {\n border-bottom: solid var(--jp-border-width) var(--jp-border-color1);\n box-shadow: var(--jp-toolbar-box-shadow);\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: 24px;\n height: var(--jp-debugger-header-height);\n background-color: var(--jp-layout-color2);\n}\n\n.jGIS-control-panel-title h2 {\n text-transform: uppercase;\n font-weight: 600;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color1);\n padding-left: 8px;\n padding-right: 4px;\n}\n\n.jGIS-sidepanel-widget {\n height: 100%;\n}\n\n.jGIS-sidebar-treepanel {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jGIS-sidebar-propertiespanel {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jGIS-treeview-wrapper {\n overflow: auto;\n height: 100%;\n}\n\n.jGIS-treeview-wrapper > div {\n padding: 0 !important;\n}\n/* TODO: More robust selector */\n.jGIS-treeview-wrapper div[style*='align-items: center;']:first-of-type {\n flex-grow: 1;\n}\n\n.jGIS-control-panel-tree {\n flex-grow: 1;\n}\n\n.jGIS-sidebar-propertiespanel > div {\n overflow: auto;\n}\n\n.jGIS-property-outer {\n padding: 10px;\n flex-grow: 1;\n overflow: auto;\n}\n\n.jGIS-property-buttons {\n display: flex;\n justify-content: end;\n padding: 10px;\n}\n\n.jGIS-property-panel {\n display: flex;\n flex-flow: column;\n height: 100%;\n overflow: hidden;\n}\n\n.jGIS-hidden-field {\n display: none;\n}\n\ndiv.field.field-array > label + span {\n display: none;\n}\n\n.jGIS-layer-CreationFormDialog .jp-Dialog-content {\n width: 60%;\n}\n\n.jGIS-layer-CreationFormDialog form {\n padding: 10px;\n}\n\n/* TODO Upstream this to jupyterlab jrfs */\n.jp-SchemaForm .control-label,\n.jp-SchemaForm legend {\n position: inherit;\n text-transform: capitalize;\n}\n\ndiv.jGIS-toolbar-widget > div.jp-Toolbar-item:last-child {\n flex-grow: 1;\n}\n\n.jGIS-toolbar-usertoolbar {\n flex-grow: 1;\n display: flex;\n flex-direction: row-reverse;\n}\n.jGIS-toolbar-react-widget {\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-grow: 1;\n}\n\n.jGIS-Toolbar-Separator {\n width: var(--jp-border-width);\n background-color: var(--jp-border-color1);\n padding-left: 0px !important;\n padding-right: 0px !important;\n}\n\n.jGIS-toolbar-usertoolbar .jp-MenuBar-anonymousIcon,\n.jGIS-toolbar-usertoolbar .jp-MenuBar-imageIcon {\n position: unset !important;\n margin-right: 2px;\n height: 22px;\n box-sizing: border-box;\n}\n\n.jGIS-toolbar-usertoolbar .jp-MenuBar-anonymousIcon.selected,\n.jGIS-toolbar-usertoolbar .jp-MenuBar-imageIcon.selected {\n border: solid 1.5px red;\n}\n\n.jGIS-Mainview {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n\n.jGIS-Annotation-Wrapper {\n position: absolute;\n opacity: 1;\n transition: opacity 0.1s linear 0.15s;\n}\n\n.jGIS-Annotation {\n z-index: 1;\n margin-left: 1px;\n margin-top: 1px;\n padding: 1em;\n color: #fff;\n background: var(--jp-layout-color1);\n border-radius: 0.5em;\n font-size: 12px;\n line-height: 1.2;\n transition: opacity 0.5s;\n}\n\n.jGIS-FloatingAnnotation {\n position: absolute;\n width: 250px;\n box-shadow: var(--jp-elevation-z6);\n}\n\n.jGIS-Annotations {\n overflow: auto;\n}\n\n.jGIS-Annotations-Separator {\n border-color: var(--jp-layout-color4);\n border-style: solid;\n border-width: 1px;\n}\n\n.jGIS-Annotation-Handler {\n position: absolute;\n top: -5px;\n left: -5px;\n width: 8px;\n height: 8px;\n border: 1px solid #ffffffc2;\n border-radius: 50%;\n background: rgb(0 0 0 / 63%);\n cursor: pointer;\n transition-property: width, height, left, top;\n transition-duration: 0.2s;\n z-index: 1000;\n}\n\n.jGIS-Annotation-Handler:hover {\n top: -9px;\n left: -9px;\n width: 16px;\n height: 16px;\n}\n\n.jGIS-Annotation-Message {\n display: flex;\n margin-top: 10px;\n gap: 5px;\n align-items: center;\n justify-content: center;\n}\n\n.jGIS-Annotation-Message .jGIS-Annotation-User-Icon {\n border-radius: 100%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n vertical-align: middle;\n color: var(--jp-ui-font-color1);\n}\n\n.jGIS-Annotation-Message textarea {\n border-radius: var(--jp-border-radius);\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color2);\n flex-grow: 1;\n resize: none;\n}\n\n.jGIS-Annotation-Message-Content {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color2);\n border-radius: var(--jp-border-radius);\n flex-grow: 1;\n}\n\n.jGIS-Annotation-Topbar {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.jGIS-Annotation-TopBarIcon {\n margin: 3px;\n width: 20px;\n height: 20px;\n cursor: pointer;\n}\n\n.jGIS-Annotation-TopBarIcon > svg {\n width: 20px;\n height: 20px;\n}\n\n.jGIS-Annotation-Submit > svg {\n width: 30px;\n height: 30px;\n}\n\n.jGIS-Annotation-Submit g {\n fill: #f6f7f8 !important;\n}\n\n.jGIS-Annotation-Submit:hover {\n opacity: 70%;\n cursor: pointer;\n}\n\n.jGIS-Annotation-Submit {\n background-color: var(--jp-brand-color1);\n border-radius: 100%;\n width: 30px;\n height: 30px;\n}\n\n/* Hack to remove the malformed form button */\n.object-property-expand {\n display: none;\n}\n\n.highlight {\n background-color: var(--jp-layout-color2) !important;\n}\n.jupytergis-notebook-widget {\n height: 600px;\n width: 100%;\n}\n.jupytergis-notebook-widget > div {\n height: 100%;\n width: 100%;\n}\n\n.jp-SchemaForm .control-label,\n.jp-SchemaForm legend {\n width: 100%;\n}\n\n.jpgis-console {\n border-top: var(--jp-border-width) solid var(--jp-toolbar-border-color);\n}\n\n.jpgis-console .jp-CodeConsole-banner {\n display: none;\n}\n",""]);const d=s},432:(n,e,o)=>{var r=o(591),t=o.n(r),i=o(740),a=o.n(i),l=o(128),p=o.n(l),s=o(855),d=o.n(s),c=o(51),g=o.n(c),j=o(656),b=o.n(j),f=o(296),u={};u.styleTagTransform=b(),u.setAttributes=d(),u.insert=p().bind(null,"head"),u.domAPI=a(),u.insertStyleElement=g(),t()(f.A,u),f.A&&f.A.locals&&f.A.locals}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[]).push([[484],{484:(e,o,t)=>{t.r(o),t.d(o,{default:()=>h});var n=t(323),a=t(33),r=t(909),s=t(314),d=t(241),m=t(818),c=t(678),l=t(256),i=t(796),u=t(473),p=t(354),g=t(230),y=t(677);class I extends y.JupyterYModel{}class j extends l.Panel{constructor(e){super(),this.onResize=()=>{this._jgisWidget&&g.MessageLoop.sendMessage(this._jgisWidget,l.Widget.ResizeMessage.UnknownSize)},this.addClass("jupytergis-notebook-widget"),this._jgisWidget=new n.JupyterGISPanel(e),this.addWidget(this._jgisWidget)}}const M={id:"jupytergis:yjswidget-plugin",autoStart:!0,optional:[y.IJupyterYWidgetManager,c.ITranslator],activate:(e,o,t)=>{if(!o)return void console.error("Missing IJupyterYWidgetManager token!");const n=null!=t?t:c.nullTranslator;o.registerWidget("@jupytergis:widget",class extends I{ydocFactory(o){const{path:t,format:r,contentType:s}=o;this.jupyterGISModel=new a.JupyterGISModel({});const d=e.serviceManager.user;if(t&&r&&s){const e=p.ServerConnection.makeSettings(),o=u.URLExt.join(e.wsUrl,"api/collaboration/room"),a=new i.WebSocketProvider({url:o,path:t,format:r,contentType:s,model:this.jupyterGISModel.sharedModel,user:d,translator:n.load("jupyterlab")});this.jupyterGISModel.disposed.connect((()=>{a.dispose()}))}else{const e=this.jupyterGISModel.sharedModel.awareness,o=o=>{e.setLocalStateField("user",o.identity)};d.ready.then((()=>{o(d)})).catch((e=>console.error(e))),d.userChanged.connect(o,this)}return this.jupyterGISModel.sharedModel.ydoc}},class{constructor(e,o){this.yModel=e,this.node=o;const t=new j({model:e.jupyterGISModel});g.MessageLoop.sendMessage(t,l.Widget.Msg.BeforeAttach),o.appendChild(t.node),g.MessageLoop.sendMessage(t,l.Widget.Msg.AfterAttach)}})}},C="jupytergis",h=[{id:"jupytergis:lab:main-menu",autoStart:!0,requires:[a.IJupyterGISDocTracker,a.IJGISFormSchemaRegistryToken,a.IJGISLayerBrowserRegistryToken,m.IStateDB],optional:[d.IMainMenu,c.ITranslator,s.ICompletionProviderManager],activate:(e,o,t,a,r,s,d,m)=>{console.log("jupytergis:lab:main-menu is activated!"),d=null!=d?d:c.nullTranslator;(0,n.createDefaultLayerRegistry)(a),(0,n.addCommands)(e,o,d,t,a,r,m);const i=new l.Menu({commands:e.commands});i.title.label=d.load("jupyterlab").__("Add Source"),i.id="jp-gis-contextmenu-addSource",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-sourcePanel",rank:3,submenu:i}),i.addItem({command:n.CommandIDs.newRasterSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newVectorSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newGeoJSONSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newRasterDemSource,args:{from:"contextMenu"}}),i.addItem({command:n.CommandIDs.newImageSource,args:{from:"contextMenu"}}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-sourcePanel",rank:2}),e.contextMenu.addItem({selector:".jp-gis-source.jp-gis-sourceUnused",rank:1,command:n.CommandIDs.removeSource}),e.commands.addKeyBinding({command:n.CommandIDs.removeSource,keys:["Delete"],selector:".jp-gis-source.jp-gis-sourceUnused"}),e.contextMenu.addItem({selector:".jp-gis-source",rank:1,command:n.CommandIDs.renameSource}),e.commands.addKeyBinding({command:n.CommandIDs.renameSource,keys:["F2"],selector:".jp-gis-sourceItem"}),e.contextMenu.addItem({command:n.CommandIDs.symbology,selector:".jp-gis-layerItem",rank:1}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-layerPanel",rank:1}),e.contextMenu.addItem({command:n.CommandIDs.removeLayer,selector:".jp-gis-layerItem",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.removeLayer,keys:["Delete"],selector:".jp-gis-layerItem"}),e.contextMenu.addItem({command:n.CommandIDs.renameLayer,selector:".jp-gis-layerItem",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.renameLayer,keys:["F2"],selector:".jp-gis-layerItem"});const u=new l.Menu({commands:e.commands});u.title.label=d.load("jupyterlab").__("Move Selected Layers to Group"),u.id="jp-gis-contextmenu-movelayer",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-layerItem",rank:2,submenu:u}),e.contextMenu.opened.connect((()=>function(e,o){var t,a,r,s;if(!(null===(t=o.currentWidget)||void 0===t?void 0:t.context.model))return;const d=null===(a=o.currentWidget)||void 0===a?void 0:a.context.model,m=null!==(s=null===(r=e.menu.items.find((e=>{var o;return"submenu"===e.type&&"jp-gis-contextmenu-movelayer"===(null===(o=e.submenu)||void 0===o?void 0:o.id)})))||void 0===r?void 0:r.submenu)&&void 0!==s?s:null;if(!m)return;m.clearItems();const c=function e(o){const t=[];for(const n of o)if("string"!=typeof n&&n.layers){t.push(n.name);const o=e(n.layers);t.push(...o)}return t}(d.getLayerTree());m.addItem({command:n.CommandIDs.moveLayersToGroup,args:{label:""}}),c.forEach((e=>{m.addItem({command:n.CommandIDs.moveLayersToGroup,args:{label:e}})})),m.addItem({command:n.CommandIDs.moveLayerToNewGroup})}(e.contextMenu,o))),e.contextMenu.addItem({command:n.CommandIDs.removeGroup,selector:".jp-gis-layerGroupHeader",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.removeGroup,keys:["Delete"],selector:".jp-gis-layerGroupHeader"}),e.contextMenu.addItem({command:n.CommandIDs.renameGroup,selector:".jp-gis-layerGroupHeader",rank:2}),e.commands.addKeyBinding({command:n.CommandIDs.renameGroup,keys:["F2"],selector:".jp-gis-layerGroupHeader"}),e.contextMenu.addItem({type:"separator",selector:".jp-gis-layerPanel",rank:2});const p=new l.Menu({commands:e.commands});p.title.label=d.load("jupyterlab").__("Add Layer"),p.id="jp-gis-contextmenu-addLayer",e.contextMenu.addItem({type:"submenu",selector:".jp-gis-layerPanel",rank:3,submenu:p}),p.addItem({command:n.CommandIDs.newRasterLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newVectorLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newHillshadeLayer,args:{from:"contextMenu"}}),p.addItem({command:n.CommandIDs.newImageLayer,args:{from:"contextMenu"}}),s&&function(e,o){e.editMenu.undoers.redo.add({id:n.CommandIDs.redo,isEnabled:o}),e.editMenu.undoers.undo.add({id:n.CommandIDs.undo,isEnabled:o})}(s,(()=>null!==o.currentWidget&&o.currentWidget===e.shell.currentWidget)),e.commands.addKeyBinding({command:n.CommandIDs.executeConsole,keys:["Shift Enter"],selector:".jpgis-console .jp-CodeConsole[data-jp-interaction-mode='notebook'] .jp-CodeConsole-promptCell"}),e.commands.addKeyBinding({command:n.CommandIDs.invokeCompleter,keys:["Tab"],selector:".jpgis-console .jp-CodeConsole-promptCell .jp-mod-completer-enabled"}),e.commands.addKeyBinding({command:n.CommandIDs.selectCompleter,keys:["Enter"],selector:".jpgis-console .jp-ConsolePanel .jp-mod-completer-active"})}},{id:"jupytergis:lab:controlpanel",autoStart:!0,requires:[r.ILayoutRestorer,a.IJupyterGISDocTracker,a.IJGISFormSchemaRegistryToken,m.IStateDB],activate:(e,o,t,a,r)=>{const s=new n.ControlPanelModel({tracker:t}),d=new n.LeftPanelWidget({model:s,tracker:t,state:r});d.id="jupytergis::leftControlPanel",d.title.caption="JupyterGIS Control Panel";const m=new n.RightPanelWidget({model:s,tracker:t,formSchemaRegistry:a});m.id="jupytergis::rightControlPanel",m.title.caption="JupyterGIS Control Panel",o&&(o.add(d,C),o.add(m,C)),e.shell.add(d,"left",{rank:2e3}),e.shell.add(m,"right",{rank:2e3})}},M]}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _JUPYTERLAB;(()=>{"use strict";var e,r,t,a,n,o,i,u,l,s,f,p,d,c,h,g,v,b,y,m={450:(e,r,t)=>{var a={"./index":()=>t.e(484).then((()=>()=>t(484))),"./extension":()=>t.e(484).then((()=>()=>t(484))),"./style":()=>Promise.all([t.e(373),t.e(432)]).then((()=>()=>t(432)))},n=(e,r)=>(t.R=r,r=t.o(a,e)?a[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),o=(e,r)=>{if(t.S){var a="default",n=t.S[a];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[a]=e,t.I(a,r)}};t.d(r,{get:()=>n,init:()=>o})}},j={};function w(e){var r=j[e];if(void 0!==r)return r.exports;var t=j[e]={id:e,exports:{}};return m[e](t,t.exports,w),t.exports}w.m=m,w.c=j,w.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return w.d(r,{a:r}),r},w.d=(e,r)=>{for(var t in r)w.o(r,t)&&!w.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},w.f={},w.e=e=>Promise.all(Object.keys(w.f).reduce(((r,t)=>(w.f[t](e,r),r)),[])),w.u=e=>e+"."+{373:"1c3d89f9ed56880711bd",432:"28aaec36233a73d1589c",484:"7cd11c502baf51c3285e"}[e]+".js?v="+{373:"1c3d89f9ed56880711bd",432:"28aaec36233a73d1589c",484:"7cd11c502baf51c3285e"}[e],w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),w.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupytergis/jupytergis-lab:",w.l=(t,a,n,o)=>{if(e[t])e[t].push(a);else{var i,u;if(void 0!==n)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var f=l[s];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+n){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,w.nc&&i.setAttribute("nonce",w.nc),i.setAttribute("data-webpack",r+n),i.src=t),e[t]=[a];var p=(r,a)=>{i.onerror=i.onload=null,clearTimeout(d);var n=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach((e=>e(a))),r)return r(a)},d=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),u&&document.head.appendChild(i)}},w.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{w.S={};var e={},r={};w.I=(t,a)=>{a||(a=[]);var n=r[t];if(n||(n=r[t]={}),!(a.indexOf(n)>=0)){if(a.push(n),e[t])return e[t];w.o(w.S,t)||(w.S[t]={});var o=w.S[t],i="@jupytergis/jupytergis-lab",u=[];return"default"===t&&((e,r,t,a)=>{var n=o[e]=o[e]||{},u=n[r];(!u||!u.loaded&&(1!=!u.eager?a:i>u.from))&&(n[r]={get:()=>w.e(484).then((()=>()=>w(484))),from:i,eager:!1})})("@jupytergis/jupytergis-lab","0.1.1"),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;w.g.importScripts&&(e=w.g.location+"");var r=w.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var a=t.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=t[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=t[1]?r(t[1]):[];return t[2]&&(a.length++,a.push.apply(a,r(t[2]))),t[3]&&(a.push([]),a.push.apply(a,r(t[3]))),a},a=(e,r)=>{e=t(e),r=t(r);for(var a=0;;){if(a>=e.length)return a<r.length&&"u"!=(typeof r[a])[0];var n=e[a],o=(typeof n)[0];if(a>=r.length)return"u"==o;var i=r[a],u=(typeof i)[0];if(o!=u)return"o"==o&&"n"==u||"s"==u||"u"==o;if("o"!=o&&"u"!=o&&n!=i)return n<i;a++}},n=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,t+="u"==(typeof(u=e[o]))[0]?"-":(a>0?".":"")+(a=2,u);return t}var i=[];for(o=1;o<e.length;o++){var u=e[o];i.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?i.pop()+" "+i.pop():n(u))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,r)=>{if(0 in e){r=t(r);var a=e[0],n=a<0;n&&(a=-a-1);for(var i=0,u=1,l=!0;;u++,i++){var s,f,p=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(s=r[i]))[0]))return!l||("u"==p?u>a&&!n:""==p!=n);if("u"==f){if(!l||"u"!=p)return!1}else if(l)if(p==f)if(u<=a){if(s!=e[u])return!1}else{if(n?s>e[u]:s<e[u])return!1;s!=e[u]&&(l=!1)}else if("s"!=p&&"n"!=p){if(n||u<=a)return!1;l=!1,u--}else{if(u<=a||f<p!=n)return!1;l=!1}else"s"!=p&&"n"!=p&&(l=!1,u--)}}var d=[],c=d.pop.bind(d);for(i=1;i<e.length;i++){var h=e[i];d.push(1==h?c()|c():2==h?c()&c():h?o(h,r):!c())}return!!c()},i=(e,r)=>e&&w.o(e,r),u=e=>(e.loaded=1,e.get()),l=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),s=(e,r,t)=>{var n=t?l(e[r]):e[r];return Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&a(e,r)?r:e),0)},f=(e,r,t,a)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+n(a)+")",p=e=>{throw new Error(e)},d=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},c=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),h=(e=>function(r,t,a,n,o){var i=w.I(r);return i&&i.then&&!a?i.then(e.bind(e,r,w.S[r],t,!1,n,o)):e(r,w.S[r],t,a,n,o)})(((e,r,t,a,n,l)=>{if(!i(r,t))return c(e,t,l);var p=s(r,t,a);return o(n,p)||d(f(r,t,p,n)),u(r[t][p])})),g={},v={33:()=>h("default","@jupytergis/schema",!1,[2,0,1,1]),230:()=>h("default","@lumino/messaging",!1,[1,2,0,0]),241:()=>h("default","@jupyterlab/mainmenu",!1,[1,4,2,5]),256:()=>h("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),314:()=>h("default","@jupyterlab/completer",!1,[1,4,2,5]),323:()=>h("default","@jupytergis/base",!1,[2,0,1,1]),354:()=>h("default","@jupyterlab/services",!1,[1,7,2,5]),473:()=>h("default","@jupyterlab/coreutils",!1,[1,6,2,5]),677:()=>h("default","yjs-widgets",!1,[2,0,3,5]),678:()=>h("default","@jupyterlab/translation",!1,[1,4,2,5]),796:()=>h("default","@jupyter/docprovider",!1,[1,2,0,0]),818:()=>h("default","@jupyterlab/statedb",!1,[1,4,2,5]),909:()=>h("default","@jupyterlab/application",!1,[1,4,2,5])},b={484:[33,230,241,256,314,323,354,473,677,678,796,818,909]},y={},w.f.consumes=(e,r)=>{w.o(b,e)&&b[e].forEach((e=>{if(w.o(g,e))return r.push(g[e]);if(!y[e]){var t=r=>{g[e]=0,w.m[e]=t=>{delete w.c[e],t.exports=r()}};y[e]=!0;var a=r=>{delete g[e],w.m[e]=t=>{throw delete w.c[e],r}};try{var n=v[e]();n.then?r.push(g[e]=n.then(t).catch(a)):t(n)}catch(e){a(e)}}}))},(()=>{w.b=document.baseURI||self.location.href;var e={738:0};w.f.j=(r,t)=>{var a=w.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else{var n=new Promise(((t,n)=>a=e[r]=[t,n]));t.push(a[2]=n);var o=w.p+w.u(r),i=new Error;w.l(o,(t=>{if(w.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,a[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var a,n,[o,i,u]=t,l=0;if(o.some((r=>0!==e[r]))){for(a in i)w.o(i,a)&&(w.m[a]=i[a]);u&&u(w)}for(r&&r(t);l<o.length;l++)n=o[l],w.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunk_jupytergis_jupytergis_lab=self.webpackChunk_jupytergis_jupytergis_lab||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),w.nc=void 0;var S=w(450);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupytergis/jupytergis-lab"]=S})();
|