tangram-core 0.2.0__cp313-cp313-win_amd64.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.
- tangram_core/App.vue +335 -0
- tangram_core/__init__.py +5 -0
- tangram_core/__main__.py +141 -0
- tangram_core/_core.cp313-win_amd64.pyd +0 -0
- tangram_core/_core.pyi +38 -0
- tangram_core/api.ts +456 -0
- tangram_core/backend.py +335 -0
- tangram_core/colour.ts +71 -0
- tangram_core/config.py +122 -0
- tangram_core/dist-frontend/aggregation-layers.js +521 -0
- tangram_core/dist-frontend/aggregation-layers.js.map +1 -0
- tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js +2 -0
- tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js.map +1 -0
- tangram_core/dist-frontend/assets/array-utils-flat-wyE8tIYR.js +11 -0
- tangram_core/dist-frontend/assets/array-utils-flat-wyE8tIYR.js.map +1 -0
- tangram_core/dist-frontend/assets/assert-hrfsarFU.js +3 -0
- tangram_core/dist-frontend/assets/assert-hrfsarFU.js.map +1 -0
- tangram_core/dist-frontend/assets/b612-latin-400-italic-DePNXA0a.woff +0 -0
- tangram_core/dist-frontend/assets/b612-latin-400-italic-a-4GLPtl.woff2 +0 -0
- tangram_core/dist-frontend/assets/b612-latin-400-normal-CC98FVm_.woff2 +0 -0
- tangram_core/dist-frontend/assets/b612-latin-400-normal-JbZ7xwUX.woff +0 -0
- tangram_core/dist-frontend/assets/b612-latin-700-normal-B_Snq1wd.woff +0 -0
- tangram_core/dist-frontend/assets/b612-latin-700-normal-BinQrnoB.woff2 +0 -0
- tangram_core/dist-frontend/assets/clip-extension-DTCP51Ak.js +26 -0
- tangram_core/dist-frontend/assets/clip-extension-DTCP51Ak.js.map +1 -0
- tangram_core/dist-frontend/assets/color-CUNNsFV-.js +17 -0
- tangram_core/dist-frontend/assets/color-CUNNsFV-.js.map +1 -0
- tangram_core/dist-frontend/assets/cube-geometry-CzJ_uBWa.js +2 -0
- tangram_core/dist-frontend/assets/cube-geometry-CzJ_uBWa.js.map +1 -0
- tangram_core/dist-frontend/assets/deep-equal-uriyKJca.js +2 -0
- tangram_core/dist-frontend/assets/deep-equal-uriyKJca.js.map +1 -0
- tangram_core/dist-frontend/assets/fly-to-interpolator-DlKiy9_S.js +2 -0
- tangram_core/dist-frontend/assets/fly-to-interpolator-DlKiy9_S.js.map +1 -0
- tangram_core/dist-frontend/assets/geojson-layer-CLhXLxdI.js +1010 -0
- tangram_core/dist-frontend/assets/geojson-layer-CLhXLxdI.js.map +1 -0
- tangram_core/dist-frontend/assets/globe-view-DKhftlA1.js +94 -0
- tangram_core/dist-frontend/assets/globe-view-DKhftlA1.js.map +1 -0
- tangram_core/dist-frontend/assets/globe-viewport-CPES4D4P.js +2 -0
- tangram_core/dist-frontend/assets/globe-viewport-CPES4D4P.js.map +1 -0
- tangram_core/dist-frontend/assets/image-loader-ClbNCMXW.js +2 -0
- tangram_core/dist-frontend/assets/image-loader-ClbNCMXW.js.map +1 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-HYADljCo.woff +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 +0 -0
- tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff +0 -0
- tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff +0 -0
- tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 +0 -0
- tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff +0 -0
- tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 +0 -0
- tangram_core/dist-frontend/assets/index-UPPakSLR.css +1 -0
- tangram_core/dist-frontend/assets/index-r8T0kY2p.js +821 -0
- tangram_core/dist-frontend/assets/index-r8T0kY2p.js.map +1 -0
- tangram_core/dist-frontend/assets/layer-DO63TrsS.js +555 -0
- tangram_core/dist-frontend/assets/layer-DO63TrsS.js.map +1 -0
- tangram_core/dist-frontend/assets/layer-extension-CZ3zsHuN.js +2 -0
- tangram_core/dist-frontend/assets/layer-extension-CZ3zsHuN.js.map +1 -0
- tangram_core/dist-frontend/assets/mesh-layers-BSECKarm.js +1123 -0
- tangram_core/dist-frontend/assets/mesh-layers-BSECKarm.js.map +1 -0
- tangram_core/dist-frontend/assets/orthographic-viewport-CzZmHDEZ.js +2 -0
- tangram_core/dist-frontend/assets/orthographic-viewport-CzZmHDEZ.js.map +1 -0
- tangram_core/dist-frontend/assets/pick-layers-pass-xhWsgZtf.js +2 -0
- tangram_core/dist-frontend/assets/pick-layers-pass-xhWsgZtf.js.map +1 -0
- tangram_core/dist-frontend/assets/project-CrvReKGW.js +760 -0
- tangram_core/dist-frontend/assets/project-CrvReKGW.js.map +1 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-4qS3_zkX.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-CDK-EZBY.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-Bgns473E.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-_T2aQlWs.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-CvEVpWxD.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-s4PklZE0.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-9RN-Z7cI.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-BGMkBBYx.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-C7erd-g8.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-DR5R5TWx.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-DGo1Ayjq.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-WtM1l1qc.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-C8FNIdXm.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-TLDmfi3Q.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CTXjXnze.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CWPRiRXS.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-CR6qj4Z4.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-DHRaIs10.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-D5vBSIyg.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-FabMgVmk.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-BIN62cw9.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-Hsn-wDIp.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-89Up2Xly.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-DWMOA2VK.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-D_BR-3LG.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-om57GXsO.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-BICmKrXV.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-D2e7XwB1.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-3p2daRJW.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-Dc9bsamC.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-BOl6B_hI.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-DRbp0YnP.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-BXrkWnoY.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-Bhem1d5z.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-DT8nEsYA.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-OHaX69iP.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-CcSTXKtO.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-JgPl2bDS.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-B004qtqu.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-O6H_RRvN.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-BwUYFJ2t.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-DV8QogUk.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-0o1laQ-g.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-CPsdS8_S.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-G9shSJ2z.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-TFWhjk13.woff2 +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-BtNeb9D6.woff +0 -0
- tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-D35V1G0s.woff2 +0 -0
- tangram_core/dist-frontend/assets/shader-BJmsOfPx.js +843 -0
- tangram_core/dist-frontend/assets/shader-BJmsOfPx.js.map +1 -0
- tangram_core/dist-frontend/assets/solid-polygon-layer-DiarVGxh.js +392 -0
- tangram_core/dist-frontend/assets/solid-polygon-layer-DiarVGxh.js.map +1 -0
- tangram_core/dist-frontend/assets/tesselator-49Dw9L5A.js +2 -0
- tangram_core/dist-frontend/assets/tesselator-49Dw9L5A.js.map +1 -0
- tangram_core/dist-frontend/assets/webgl-developer-tools-CZl8qVFg.js +7 -0
- tangram_core/dist-frontend/assets/webgl-developer-tools-CZl8qVFg.js.map +1 -0
- tangram_core/dist-frontend/assets/webgl-device-BY0-CUP6.js +3 -0
- tangram_core/dist-frontend/assets/webgl-device-BY0-CUP6.js.map +1 -0
- tangram_core/dist-frontend/assets/widget-BbOeHGj0.js +2 -0
- tangram_core/dist-frontend/assets/widget-BbOeHGj0.js.map +1 -0
- tangram_core/dist-frontend/core.js +60 -0
- tangram_core/dist-frontend/core.js.map +1 -0
- tangram_core/dist-frontend/extensions.js +609 -0
- tangram_core/dist-frontend/extensions.js.map +1 -0
- tangram_core/dist-frontend/favicon.ico +0 -0
- tangram_core/dist-frontend/favicon.png +0 -0
- tangram_core/dist-frontend/font-awesome.min.css +4 -0
- tangram_core/dist-frontend/fonts/FontAwesome.otf +0 -0
- tangram_core/dist-frontend/fonts/fontawesome-webfont.eot +0 -0
- tangram_core/dist-frontend/fonts/fontawesome-webfont.svg +2671 -0
- tangram_core/dist-frontend/fonts/fontawesome-webfont.ttf +0 -0
- tangram_core/dist-frontend/fonts/fontawesome-webfont.woff +0 -0
- tangram_core/dist-frontend/fonts/fontawesome-webfont.woff2 +0 -0
- tangram_core/dist-frontend/geo-layers.js +115 -0
- tangram_core/dist-frontend/geo-layers.js.map +1 -0
- tangram_core/dist-frontend/index.html +38 -0
- tangram_core/dist-frontend/json.js +3 -0
- tangram_core/dist-frontend/json.js.map +1 -0
- tangram_core/dist-frontend/layers.js +268 -0
- tangram_core/dist-frontend/layers.js.map +1 -0
- tangram_core/dist-frontend/lit-html.js +7 -0
- tangram_core/dist-frontend/lit-html.js.map +1 -0
- tangram_core/dist-frontend/mapbox.js +2 -0
- tangram_core/dist-frontend/mapbox.js.map +1 -0
- tangram_core/dist-frontend/maplibre-gl.js +59 -0
- tangram_core/dist-frontend/maplibre-gl.js.map +1 -0
- tangram_core/dist-frontend/mesh-layers.js +2 -0
- tangram_core/dist-frontend/mesh-layers.js.map +1 -0
- tangram_core/dist-frontend/rs1090_wasm.js +813 -0
- tangram_core/dist-frontend/rs1090_wasm_bg.wasm +0 -0
- tangram_core/dist-frontend/vue.esm-browser.prod.js +13 -0
- tangram_core/dist-frontend/widgets.js +3 -0
- tangram_core/dist-frontend/widgets.js.map +1 -0
- tangram_core/main.ts +16 -0
- tangram_core/plugin.py +70 -0
- tangram_core/plugin.ts +41 -0
- tangram_core/redis.py +89 -0
- tangram_core/user.css +114 -0
- tangram_core/vite-plugin-tangram.mjs +88 -0
- tangram_core-0.2.0.dist-info/METADATA +37 -0
- tangram_core-0.2.0.dist-info/RECORD +171 -0
- tangram_core-0.2.0.dist-info/WHEEL +4 -0
- tangram_core-0.2.0.dist-info/entry_points.txt +2 -0
tangram_core/redis.py
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import abc
|
|
2
|
+
import asyncio
|
|
3
|
+
import logging
|
|
4
|
+
from typing import Generic, List, TypeVar
|
|
5
|
+
|
|
6
|
+
from redis.asyncio import Redis
|
|
7
|
+
from redis.asyncio.client import PubSub
|
|
8
|
+
from redis.exceptions import RedisError
|
|
9
|
+
|
|
10
|
+
log = logging.getLogger(__name__)
|
|
11
|
+
|
|
12
|
+
StateT = TypeVar("StateT")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Subscriber(abc.ABC, Generic[StateT]):
|
|
16
|
+
redis: Redis
|
|
17
|
+
task: asyncio.Task[None]
|
|
18
|
+
pubsub: PubSub
|
|
19
|
+
|
|
20
|
+
def __init__(
|
|
21
|
+
self, name: str, redis_url: str, channels: List[str], initial_state: StateT
|
|
22
|
+
):
|
|
23
|
+
self.name = name
|
|
24
|
+
self.redis_url: str = redis_url
|
|
25
|
+
self.channels: List[str] = channels
|
|
26
|
+
self.state: StateT = initial_state
|
|
27
|
+
self._running = False
|
|
28
|
+
|
|
29
|
+
async def subscribe(self) -> None:
|
|
30
|
+
if self._running:
|
|
31
|
+
log.warning("%s already running", self.name)
|
|
32
|
+
return
|
|
33
|
+
|
|
34
|
+
try:
|
|
35
|
+
self.redis = await Redis.from_url(self.redis_url)
|
|
36
|
+
self.pubsub = self.redis.pubsub()
|
|
37
|
+
await self.pubsub.psubscribe(*self.channels)
|
|
38
|
+
except RedisError as e:
|
|
39
|
+
log.error("%s failed to connect to Redis: %s", self.name, e)
|
|
40
|
+
raise
|
|
41
|
+
|
|
42
|
+
async def listen() -> None:
|
|
43
|
+
try:
|
|
44
|
+
log.info("%s listening ...", self.name)
|
|
45
|
+
async for message in self.pubsub.listen():
|
|
46
|
+
log.debug("message: %s", message)
|
|
47
|
+
if message["type"] == "pmessage":
|
|
48
|
+
await self.message_handler(
|
|
49
|
+
message["channel"].decode("utf-8"),
|
|
50
|
+
message["data"].decode("utf-8"),
|
|
51
|
+
message["pattern"].decode("utf-8"),
|
|
52
|
+
self.state,
|
|
53
|
+
)
|
|
54
|
+
except asyncio.CancelledError:
|
|
55
|
+
log.warning("%s cancelled", self.name)
|
|
56
|
+
|
|
57
|
+
self._running = True
|
|
58
|
+
|
|
59
|
+
self.task = asyncio.create_task(listen())
|
|
60
|
+
log.info("%s task created, running ...", self.name)
|
|
61
|
+
|
|
62
|
+
async def cleanup(self) -> None:
|
|
63
|
+
if not self._running:
|
|
64
|
+
return
|
|
65
|
+
|
|
66
|
+
if self.task:
|
|
67
|
+
log.debug("%s canceling task ...", self.name)
|
|
68
|
+
self.task.cancel()
|
|
69
|
+
try:
|
|
70
|
+
log.debug("%s await task to finish ...", self.name)
|
|
71
|
+
await self.task
|
|
72
|
+
log.debug("%s task canceled", self.name)
|
|
73
|
+
except asyncio.CancelledError as exc:
|
|
74
|
+
log.error("%s task canceling error: %s", self.name, exc)
|
|
75
|
+
if self.pubsub:
|
|
76
|
+
await self.pubsub.unsubscribe()
|
|
77
|
+
if self.redis:
|
|
78
|
+
await self.redis.close()
|
|
79
|
+
self._running = False
|
|
80
|
+
|
|
81
|
+
def is_active(self) -> bool:
|
|
82
|
+
"""Return True if the subscriber is actively listening."""
|
|
83
|
+
return self._running and self.task is not None and not self.task.done()
|
|
84
|
+
|
|
85
|
+
@abc.abstractmethod
|
|
86
|
+
async def message_handler(
|
|
87
|
+
self, event: str, payload: str, pattern: str, state: StateT
|
|
88
|
+
) -> None:
|
|
89
|
+
pass
|
tangram_core/user.css
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
html,
|
|
2
|
+
body,
|
|
3
|
+
#container-map {
|
|
4
|
+
height: 100%;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
width: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
#map {
|
|
10
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
|
|
11
|
+
height: 100%;
|
|
12
|
+
width: auto;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#chart {
|
|
17
|
+
border: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
div.form {
|
|
21
|
+
float: right;
|
|
22
|
+
clear: right;
|
|
23
|
+
width: 300px;
|
|
24
|
+
border: 1px solid #bab0ac;
|
|
25
|
+
padding: 10px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
body {
|
|
29
|
+
font-family: "B612", sans-serif;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
span.monospace {
|
|
33
|
+
font-family: "B612", sans-serif;
|
|
34
|
+
font-size: 85%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.smaller td {
|
|
38
|
+
font-size: 95%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
table a:not(.btn),
|
|
42
|
+
.table a:not(.btn) {
|
|
43
|
+
text-decoration: none;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
a.flag {
|
|
47
|
+
position: relative;
|
|
48
|
+
cursor: pointer;
|
|
49
|
+
color: #2c3e50;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
a.flag:hover::after {
|
|
53
|
+
content: attr(data-tooltip);
|
|
54
|
+
position: absolute;
|
|
55
|
+
bottom: 1.7em;
|
|
56
|
+
left: 0.5em;
|
|
57
|
+
border: 1px #18bc9c solid;
|
|
58
|
+
border-radius: 5px;
|
|
59
|
+
padding: 4px;
|
|
60
|
+
color: whitesmoke;
|
|
61
|
+
background-color: #18bc9c;
|
|
62
|
+
text-align: center;
|
|
63
|
+
font-size: 90%;
|
|
64
|
+
width: max-content;
|
|
65
|
+
z-index: 1;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.w20pc {
|
|
69
|
+
width: 20%;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.center {
|
|
73
|
+
margin-top: 20px;
|
|
74
|
+
margin-left: auto;
|
|
75
|
+
margin-right: auto;
|
|
76
|
+
/* max-width: 1000px; */
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.copyright_label {
|
|
80
|
+
display: inline;
|
|
81
|
+
padding: 0.2em 0.6em 0.3em;
|
|
82
|
+
font-size: 75%;
|
|
83
|
+
font-weight: 400;
|
|
84
|
+
line-height: 1;
|
|
85
|
+
color: #fff;
|
|
86
|
+
text-align: center;
|
|
87
|
+
white-space: nowrap;
|
|
88
|
+
vertical-align: baseline;
|
|
89
|
+
border-radius: 0.25em;
|
|
90
|
+
position: absolute;
|
|
91
|
+
bottom: 0;
|
|
92
|
+
z-index: 1;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.turb_selected {
|
|
96
|
+
stroke: red;
|
|
97
|
+
stroke-width: 15px;
|
|
98
|
+
z-index: -1;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.form-popup {
|
|
102
|
+
display: none;
|
|
103
|
+
position: fixed;
|
|
104
|
+
bottom: 0;
|
|
105
|
+
right: 15px;
|
|
106
|
+
border: 3px solid #f1f1f1;
|
|
107
|
+
z-index: 9;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.form-container {
|
|
111
|
+
max-width: 300px;
|
|
112
|
+
padding: 10px;
|
|
113
|
+
background-color: white;
|
|
114
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// not using typescript because of an annoying vite bug:
|
|
2
|
+
// - https://github.com/vitejs/vite/issues/5370
|
|
3
|
+
// - https://github.com/vitejs/vite/issues/16040
|
|
4
|
+
// essentially, vite's on-the-fly transpilation is scoped only to the config
|
|
5
|
+
// file itself. therefore vite plugins in a monorepo cannot be typescript.
|
|
6
|
+
import vue from "@vitejs/plugin-vue";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import fs from "fs/promises";
|
|
9
|
+
|
|
10
|
+
const DECKGL_PACKAGES = [
|
|
11
|
+
"@deck.gl/core",
|
|
12
|
+
"@deck.gl/layers",
|
|
13
|
+
"@deck.gl/aggregation-layers",
|
|
14
|
+
"@deck.gl/geo-layers",
|
|
15
|
+
"@deck.gl/mesh-layers",
|
|
16
|
+
"@deck.gl/json",
|
|
17
|
+
"@deck.gl/mapbox",
|
|
18
|
+
"@deck.gl/widgets",
|
|
19
|
+
"@deck.gl/extensions"
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @returns {import('vite').Plugin[]}
|
|
24
|
+
*/
|
|
25
|
+
export function tangramPlugin() {
|
|
26
|
+
const projectRoot = process.cwd();
|
|
27
|
+
/** @type {{ name: string; main: string; }} */
|
|
28
|
+
let pkg;
|
|
29
|
+
let entryFileName;
|
|
30
|
+
|
|
31
|
+
/** @type {import('vite').Plugin} */
|
|
32
|
+
const configInjector = {
|
|
33
|
+
name: "tangram-plugin-config-injector",
|
|
34
|
+
async config() {
|
|
35
|
+
const pkgPath = path.resolve(projectRoot, "package.json");
|
|
36
|
+
pkg = JSON.parse(await fs.readFile(pkgPath, "utf-8"));
|
|
37
|
+
|
|
38
|
+
if (!pkg.main) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
`\`main\` field must be specified in ${pkg.name}'s package.json`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
entryFileName = path.parse(pkg.main).name;
|
|
44
|
+
|
|
45
|
+
/** @type {import('vite').UserConfig} */
|
|
46
|
+
const tangramBuildConfig = {
|
|
47
|
+
build: {
|
|
48
|
+
sourcemap: true,
|
|
49
|
+
lib: {
|
|
50
|
+
entry: pkg.main,
|
|
51
|
+
fileName: entryFileName,
|
|
52
|
+
formats: ["es"]
|
|
53
|
+
},
|
|
54
|
+
rollupOptions: {
|
|
55
|
+
external: ["vue", "maplibre", ...DECKGL_PACKAGES, "lit-html", "rs1090-wasm"]
|
|
56
|
+
},
|
|
57
|
+
outDir: "dist-frontend",
|
|
58
|
+
minify: true
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return tangramBuildConfig;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/** @type {import('vite').Plugin} */
|
|
66
|
+
const manifestGenerator = {
|
|
67
|
+
name: "tangram-manifest-generator",
|
|
68
|
+
apply: "build",
|
|
69
|
+
async writeBundle(outputOptions, bundle) {
|
|
70
|
+
const outDir = outputOptions.dir;
|
|
71
|
+
const cssAsset = Object.values(bundle).find(
|
|
72
|
+
asset => asset.type === "asset" && asset.fileName.endsWith(".css")
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
const manifest = {
|
|
76
|
+
name: pkg.name,
|
|
77
|
+
main: `${entryFileName}.js`,
|
|
78
|
+
...(cssAsset && { style: cssAsset.fileName })
|
|
79
|
+
};
|
|
80
|
+
await fs.writeFile(
|
|
81
|
+
path.resolve(outDir, "plugin.json"),
|
|
82
|
+
JSON.stringify(manifest, null, 2)
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
return [vue(), configInjector, manifestGenerator];
|
|
88
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tangram_core
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Requires-Dist: fastapi>=0.115.4
|
|
5
|
+
Requires-Dist: uvicorn>=0.32.0
|
|
6
|
+
Requires-Dist: redis>=5.2.0
|
|
7
|
+
Requires-Dist: httpx[http2]>=0.27.2
|
|
8
|
+
Requires-Dist: pydantic>=2.6.1
|
|
9
|
+
Requires-Dist: typer
|
|
10
|
+
Requires-Dist: tomli ; python_full_version < '3.11'
|
|
11
|
+
Requires-Dist: platformdirs>=4.5.0
|
|
12
|
+
Summary: A framework for real-time analysis of ADS-B and Mode S surveillance data
|
|
13
|
+
Home-Page: https://mode-s.org/tangram/
|
|
14
|
+
Author-email: Xavier Olive <git@xoolive.org>, Junzi Sun <git@junzis.com>, Xiaogang Huang <maple.hl@gmail.com>, Michel Khalaf <khalafmichel98@gmail.com>, Abraham Cheung <abraham@ylcheung.com>
|
|
15
|
+
License-Expression: AGPL-3.0
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
18
|
+
|
|
19
|
+
# tangram_core
|
|
20
|
+
|
|
21
|
+
`tangram_core` is the core of the tangram framework, designed to aggregate and process ADS-B and Mode S surveillance data for real-time analysis. It provides a flexible plugin architecture that allows users to implement custom components for their specific needs.
|
|
22
|
+
|
|
23
|
+
Documentation is available at <https://mode-s.org/tangram/>.
|
|
24
|
+
Repository: <https://github.com/open-aviation/tangram>
|
|
25
|
+
|
|
26
|
+
## Components
|
|
27
|
+
|
|
28
|
+
- Backend: A Python backend built with FastAPI. The backend also exposes a WebSocket interface for real-time data visualization and analysis (written in Rust)
|
|
29
|
+
|
|
30
|
+
- Frontend: A JavaScript frontend built with TypeScript and Vue.js. The frontend connects to the backend via WebSocket to display real-time data and visualizations.
|
|
31
|
+
|
|
32
|
+
The full package is published as a Python package named [`tangram_core`](https://pypi.org/project/tangram_core/): it contains a compiled Rust library together with the frontend assets.
|
|
33
|
+
|
|
34
|
+
- The Rust library is also available separately as a crate: [`tangram_core`](https://crates.io/crates/tangram_core), and can be used to build custom plugins with Rust.
|
|
35
|
+
|
|
36
|
+
- The frontend library is also available separately as an npm package: [`@open-aviation/tangram-core`](https://www.npmjs.com/package/@open-aviation/tangram-core), and can be used to build custom frontend components.
|
|
37
|
+
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
tangram_core-0.2.0.dist-info/METADATA,sha256=97ApcelH_UoDK96Xzl5ITt8nILz_02Lvlx28-gHN_OU,2067
|
|
2
|
+
tangram_core-0.2.0.dist-info/WHEEL,sha256=lraoTyulw0EpTbLV2AtR5kXAJRP7w3nUqalBgpOHvcQ,97
|
|
3
|
+
tangram_core-0.2.0.dist-info/entry_points.txt,sha256=kjrk9xS6gEsupFnVCXDc_HkeSzXebpF0IYfduL0m0Nw,52
|
|
4
|
+
tangram_core/App.vue,sha256=Tth7UF6MBZqRcwyQ35v-ZjAg4mGzJSnRimqCb9l72Fg,7774
|
|
5
|
+
tangram_core/__init__.py,sha256=Hoa7QrfsOto2C6_cb897EY76UvRtVwFVO1onMVaP8v0,178
|
|
6
|
+
tangram_core/__main__.py,sha256=cwaTRAus7ZAtM7UnYurk3g4gaDMvnLR18t-47qyeRuE,4152
|
|
7
|
+
tangram_core/_core.cp313-win_amd64.pyd,sha256=ia7pMJrzYzXHsNDmySpC-SAG59vG1OPFBKVlz8WVTo8,5096960
|
|
8
|
+
tangram_core/_core.pyi,sha256=Evl5dFzrZSpO6uP5tHNILbTtF3j1UB_vrs_MOQ9QjMk,1295
|
|
9
|
+
tangram_core/api.ts,sha256=RsNqxqb_Br-hkcIVEEchUiT-BqM_WQPskDXsP6nm_j0,12292
|
|
10
|
+
tangram_core/backend.py,sha256=3jeBv0ERTLM9pL4iM0rmBS-LlxDu-PYJmk1ydq-goVM,11067
|
|
11
|
+
tangram_core/colour.ts,sha256=8gwQXV1zdLtcUziKFt2r6fxsjRUH6h1lZqa30cJwQNY,2067
|
|
12
|
+
tangram_core/config.py,sha256=Wu9Q6zqzDokoQIinz27wUVuKHhCyBHiobP8P25o3338,3031
|
|
13
|
+
tangram_core/dist-frontend/aggregation-layers.js,sha256=KkTb2_jbcY0FftoCRrk4eCs5CbAAia1VI6mZhEy_Aus,75891
|
|
14
|
+
tangram_core/dist-frontend/aggregation-layers.js.map,sha256=Iza4QNzbczLG7i0MCplPgAMKTzdqZACvHnxnk1ehUSw,286410
|
|
15
|
+
tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js,sha256=hN5bFySAj2o5mjPV-niHug91K7tz-7JswQD77BEav2M,170
|
|
16
|
+
tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js.map,sha256=lUOYtHcPQJ4teu1xMANm97SNK2KD30CN-oCub0OrDOw,109
|
|
17
|
+
tangram_core/dist-frontend/assets/array-utils-flat-wyE8tIYR.js,sha256=bdHO66hsxCUCGV0Jv_RZnb-KHm5yPyNbwvcAf2lsX2U,11800
|
|
18
|
+
tangram_core/dist-frontend/assets/array-utils-flat-wyE8tIYR.js.map,sha256=GXndrKSYVkhnm9-_PGtg2LTP68u8I9DJOrJH76j9UIw,48559
|
|
19
|
+
tangram_core/dist-frontend/assets/assert-hrfsarFU.js,sha256=NcemcyPqmJchC-wBqFkdDLV1YKr2YJjKNmU-WvodGLQ,14186
|
|
20
|
+
tangram_core/dist-frontend/assets/assert-hrfsarFU.js.map,sha256=ZmgIHZgZDL2XrK7dQkwFVLRAYTykFMa9O4tQFpGWz9I,60425
|
|
21
|
+
tangram_core/dist-frontend/assets/b612-latin-400-italic-DePNXA0a.woff,sha256=YozqgjGwKUhcWu-li9Yk_4bxGWQsDE2M0EvHecAXw6w,17604
|
|
22
|
+
tangram_core/dist-frontend/assets/b612-latin-400-italic-a-4GLPtl.woff2,sha256=R-w_V_NcENkoLtuu6ZmwW5621J0lOBRiX4HG6jYitgQ,14592
|
|
23
|
+
tangram_core/dist-frontend/assets/b612-latin-400-normal-CC98FVm_.woff2,sha256=qW5H_q7ED1tTtsjpQeh7p3MteTXUfypVQiNYXzbGeF0,21160
|
|
24
|
+
tangram_core/dist-frontend/assets/b612-latin-400-normal-JbZ7xwUX.woff,sha256=ruxBxd0p7lmjZxDFnVUm74IkvkQbM66ww95tgTIViyQ,15760
|
|
25
|
+
tangram_core/dist-frontend/assets/b612-latin-700-normal-B_Snq1wd.woff,sha256=dMnHJifj_uVTQUPHY9HFLNQ8qkTm3PvYVVZ3R2QdIZI,16200
|
|
26
|
+
tangram_core/dist-frontend/assets/b612-latin-700-normal-BinQrnoB.woff2,sha256=lfOdsXRYiDEQDn4yoDKdT5GVKmwo8v2R8geVHjqMZ4g,13244
|
|
27
|
+
tangram_core/dist-frontend/assets/clip-extension-DTCP51Ak.js,sha256=_TNGk7nUrNkDDRZ-3fKQslVOLNSC-MTFYtGVKVoOADg,1615
|
|
28
|
+
tangram_core/dist-frontend/assets/clip-extension-DTCP51Ak.js.map,sha256=CQ62Djxe0fI_uarVZcCQnWGDTjoIYFjOtY9mx_6KySc,5563
|
|
29
|
+
tangram_core/dist-frontend/assets/color-CUNNsFV-.js,sha256=Ifbbm5X2Gid3V7-6x0ya4i0J4eYRBOoneXwVw1kR7hw,564
|
|
30
|
+
tangram_core/dist-frontend/assets/color-CUNNsFV-.js.map,sha256=75y2V4TuwzWXKKQjWOInAY0lWJVjscxjtxqDIbIrSi8,1467
|
|
31
|
+
tangram_core/dist-frontend/assets/cube-geometry-CzJ_uBWa.js,sha256=7aA-QtMR-HmxERuq_dEQimchvH3-fuQzMSD83f_WJ7k,1973
|
|
32
|
+
tangram_core/dist-frontend/assets/cube-geometry-CzJ_uBWa.js.map,sha256=JOjxhvEJDXYAxXD2hiGzQmmz36PEtrv9WgWN3yjF7m8,8796
|
|
33
|
+
tangram_core/dist-frontend/assets/deep-equal-uriyKJca.js,sha256=A2DXAUJoplbwiG6PonU8utPnMFxiBGu4EUMMSFEuzAY,62054
|
|
34
|
+
tangram_core/dist-frontend/assets/deep-equal-uriyKJca.js.map,sha256=-v2_nqYy79RLwobhY_oBpcwtZlXEC1p4wdtEt0g-C9c,417493
|
|
35
|
+
tangram_core/dist-frontend/assets/fly-to-interpolator-DlKiy9_S.js,sha256=g5DGKOx5ateURNTa9BMlBiXAeZNCkiKXCsa4wdqED6s,1854
|
|
36
|
+
tangram_core/dist-frontend/assets/fly-to-interpolator-DlKiy9_S.js.map,sha256=YErA_Og06slFX-q_BXyFOvUzlpi4duY_C3UJm52ttzo,10518
|
|
37
|
+
tangram_core/dist-frontend/assets/geojson-layer-CLhXLxdI.js,sha256=mFvzCCr_3JtL6qJS6V6XraP2N6x6-fVISopg6AdRR2g,85656
|
|
38
|
+
tangram_core/dist-frontend/assets/geojson-layer-CLhXLxdI.js.map,sha256=GjSh4VdYNiyYK2MUsUD13bLqyZvH0t0L3_HDMsCikKs,257237
|
|
39
|
+
tangram_core/dist-frontend/assets/globe-view-DKhftlA1.js,sha256=WAHuFScyA8dRSk2oKbxPgcc9oxDUQZfl8s6HFamKW9I,96477
|
|
40
|
+
tangram_core/dist-frontend/assets/globe-view-DKhftlA1.js.map,sha256=JS3FFJNOOs_wB78-9k5BKqzxY5k_Oed6bWYqnMOEqfU,389765
|
|
41
|
+
tangram_core/dist-frontend/assets/globe-viewport-CPES4D4P.js,sha256=yBGpGfcrQBlCRaGKs1wJfdKpWSQg6GX6MY9mPNsolVw,2459
|
|
42
|
+
tangram_core/dist-frontend/assets/globe-viewport-CPES4D4P.js.map,sha256=McprtQsRd6M-XwR5A48mvHY4TCFeVLMGK0clDTFri8Y,12370
|
|
43
|
+
tangram_core/dist-frontend/assets/image-loader-ClbNCMXW.js,sha256=U0ncNV20sOqAG3H43s9u87VHK7qDGwb2J9ItS52g3gE,5172
|
|
44
|
+
tangram_core/dist-frontend/assets/image-loader-ClbNCMXW.js.map,sha256=OSOJEwB6LAs-FetvPoGaYSGDs1guupVbmziuooLGA2c,32292
|
|
45
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2,sha256=nVoEgNK9PkOxJL-PNngsj8B5-fiwI8Zyv_Z-nO_8I2s,17664
|
|
46
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-HYADljCo.woff,sha256=m_pCxxt0afUFx6Gx7kiODcvIVvMgLlfU-Z-vA__JUEA,16284
|
|
47
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2,sha256=qdgixNdJqwcvNxUiQxHaPIMCsHCo30HUdwkMFFo2EBc,17960
|
|
48
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff,sha256=H_FNpGjuwazQXmiPDO4dzrCEs53sMNylgtQbw9nHjKg,16624
|
|
49
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2,sha256=llD-Pm3DchCAolsq4e3_JIa_14_AOy02qQmZjZQOTis,18232
|
|
50
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff,sha256=YlLZ5KEJWPOjhYLjY8DcML6A2juHIjr6lUiSavcImNA,17196
|
|
51
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2,sha256=B5JAeVcwtYkEaj7r1_Tx1FsoZAtlz9m5GBlI15agBI8,18452
|
|
52
|
+
tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff,sha256=tT6AW7VDCcmiIjehuXC9_11gbYC1qndGyrxV6t1tRA4,17564
|
|
53
|
+
tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff,sha256=qjJMit4Q7rmUQrUrREI7hta_ayTgS1MoRZJfjHA3Vsg,6092
|
|
54
|
+
tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2,sha256=pVQEL2LNbmcj0tgIJtfUBR-BA2AU4CjIXPT1feolz0E,8316
|
|
55
|
+
tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff,sha256=kHdUifrsCtXl6l_o_1a7AHSh22xvfcbSOAZ_r1kEgiY,6304
|
|
56
|
+
tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2,sha256=s_mP_O6yafbi19Su_iybH4kiBCD3mfyIb6To2l3wSq4,8476
|
|
57
|
+
tangram_core/dist-frontend/assets/index-UPPakSLR.css,sha256=8VsY6zT93Crq1kaQV3fm2jRzCu2iwprBcdGEKxqRYMA,113246
|
|
58
|
+
tangram_core/dist-frontend/assets/index-r8T0kY2p.js,sha256=-zmKHZEzVQ_ZZCPam2j8jkiPxJVZVC52bJfvZpqvQ6o,1105527
|
|
59
|
+
tangram_core/dist-frontend/assets/index-r8T0kY2p.js.map,sha256=PeTfpMzeL0WGjojvDfIfIGpFLtdI2hCQaZGLQPWN6EI,2490205
|
|
60
|
+
tangram_core/dist-frontend/assets/layer-DO63TrsS.js,sha256=cMXqyvg2aaBLuaXEscmXVTPQhwjcVqG2oAp4PIkCgW4,79665
|
|
61
|
+
tangram_core/dist-frontend/assets/layer-DO63TrsS.js.map,sha256=n18iJ-JFXT3aMpvik4QStNyZw1uf8LU7KFrF3A9d3rU,310877
|
|
62
|
+
tangram_core/dist-frontend/assets/layer-extension-CZ3zsHuN.js,sha256=5fORIlGrdRjn-AEj6JYScbTEQMrQUKCvew3cuADq9uE,847
|
|
63
|
+
tangram_core/dist-frontend/assets/layer-extension-CZ3zsHuN.js.map,sha256=d8uG0uYccrFAP232nh7-kvIF23tq5dd3PHH9aeO-MsQ,3445
|
|
64
|
+
tangram_core/dist-frontend/assets/mesh-layers-BSECKarm.js,sha256=0FvvLjEX5QZG7NXRT9DAHBq7UjGB8sf02ZpFggeH3g0,151872
|
|
65
|
+
tangram_core/dist-frontend/assets/mesh-layers-BSECKarm.js.map,sha256=qpQbYwzLfwp8_TvSIRtewUNTFtTRTMjPFJtWHr3lFro,612928
|
|
66
|
+
tangram_core/dist-frontend/assets/orthographic-viewport-CzZmHDEZ.js,sha256=8Km76Qs88JDEhrVdzRqW9bDOkzGOHKnSJ9XsQvKEquM,1298
|
|
67
|
+
tangram_core/dist-frontend/assets/orthographic-viewport-CzZmHDEZ.js.map,sha256=cTjQaePdtHATGgmNhmbLyLJuuZaovJPhtXTp4r-r7BU,5924
|
|
68
|
+
tangram_core/dist-frontend/assets/pick-layers-pass-xhWsgZtf.js,sha256=OvV3EKiV8fCbqiQ3Gl5j2-jYm4-j3ClW9nf5aMthths,6320
|
|
69
|
+
tangram_core/dist-frontend/assets/pick-layers-pass-xhWsgZtf.js.map,sha256=wbqzKNUOudW5oc95tt_1RMThio3qWYjwpO4tMP8c1Pw,30663
|
|
70
|
+
tangram_core/dist-frontend/assets/project-CrvReKGW.js,sha256=w5HGI5ulKgRKBOM_HsmsFXkn_em8GloOlkyV38z2oEE,35517
|
|
71
|
+
tangram_core/dist-frontend/assets/project-CrvReKGW.js.map,sha256=8BbrlRFKzz5URbkeXDLytz02_C7crva6P5oO9TU7qhw,110315
|
|
72
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-4qS3_zkX.woff2,sha256=UYlmNbmu0VAt_sLt9maPfCVcc0HueaIxbqLHJCu18C8,12672
|
|
73
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-CDK-EZBY.woff,sha256=CExFKTDTq4KjeCu-rS05CIQ8qxfCXoIqOz9A0EBrErk,10716
|
|
74
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-Bgns473E.woff,sha256=8ytmLBpig0bJkFFBUmRWGEzs9xPoKAHBTFduvGg_hg8,9696
|
|
75
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-_T2aQlWs.woff2,sha256=xK_IvUsYhklak6J04XmieWJzKoMXa3n3EJYI8tCMuUo,11804
|
|
76
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-CvEVpWxD.woff,sha256=3Gvc8biZQZiiyZiyxSwozaK8gZJCR7wdpD5zqvRFkDs,9888
|
|
77
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-s4PklZE0.woff2,sha256=73BclUffP33P9_M6M93sYL7bhtprhvHE5FjeIFe946Y,12072
|
|
78
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-9RN-Z7cI.woff2,sha256=e57xMQOeBYtiLU2ly7bS54NSbRN8v3Rzj4mEwlwtP78,12144
|
|
79
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-BGMkBBYx.woff,sha256=dLfngJ8eMdsqLSH6HwwJJGUtI3blV3qTiODeVCXKRn4,10012
|
|
80
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-C7erd-g8.woff,sha256=zrDfuCFH_Nzn4Jsr9OFYejJ4FRabVGDBTSnMFDJuhrA,16996
|
|
81
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-DR5R5TWx.woff2,sha256=9fGcZOzZcc9V5tEIn7ZmczGkpanTqkb8GUMRcC4bub4,18528
|
|
82
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-DGo1Ayjq.woff2,sha256=w8_DMBZsf6jhl8xphm8_M6gcCJ0ZufIYJXMj7EagPnM,17032
|
|
83
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-WtM1l1qc.woff,sha256=pjCPA4gqyqBcNk3jNAdQkHf61xwBrZN7S0bV1YkXJY8,15352
|
|
84
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-C8FNIdXm.woff2,sha256=egvG2-_akvk6nydHJKein22ExWhh8rnmHI0vg4yOz7Q,17448
|
|
85
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-TLDmfi3Q.woff,sha256=-ikzel_fuoOXeHgR1asfTr-YOonJWZUc4p7gcAcuW-U,15552
|
|
86
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CTXjXnze.woff2,sha256=JruuE2DAAM1xJ6045mC3xxZbGN1qu-HCGDDB4GY5RDQ,17496
|
|
87
|
+
tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CWPRiRXS.woff,sha256=KkTuZPWjVpXErwPLkSva2WLsQxRBPQUQzXiCJISLpIM,15560
|
|
88
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-CR6qj4Z4.woff2,sha256=04RW-mLVqvTNNzd3dvdUXLljnXiIY6kNhgB2Yii4Yjc,10108
|
|
89
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-DHRaIs10.woff,sha256=LKaa9m1KzBRYS65k-t4CHbAnVPeoYuleyy28aq36tKg,8064
|
|
90
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-D5vBSIyg.woff2,sha256=NXIjfZ4yJKyJSQTvDRPNl8o4Vn9K6wwIsE4f-Zjw_ls,9560
|
|
91
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-FabMgVmk.woff,sha256=A-MCWiS6iM8Pie9sbPW71-kWkfkF8Go_PGinnPl1lXQ,7460
|
|
92
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-BIN62cw9.woff,sha256=ahtCRbCQTN9lvEh384UzzqHaYysbm457IOL7NYTtqMk,7516
|
|
93
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-Hsn-wDIp.woff2,sha256=3FtxRCPRNbTMNJUW2lNL1Omsau-LvJ7IkXi7iSZ6sbw,9700
|
|
94
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-89Up2Xly.woff,sha256=1nVnKObj1dwGZ_X32qE-DNWDpJC1UufsDuaCtuTh3VY,7512
|
|
95
|
+
tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-DWMOA2VK.woff2,sha256=js4qxBtb4gj2Z66v_rew4dn4JxAPNbDJCXFMjc6S-Fw,9672
|
|
96
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-D_BR-3LG.woff2,sha256=89xldEcQ4duVRp3RYQbPmCFgb0x3xhBfqmQVL3S2dTg,22380
|
|
97
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-om57GXsO.woff,sha256=-Y4OlSqEjiIgYkzsBuzbdyt7fJTnBCPY_IdFeyNl_3A,21268
|
|
98
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-BICmKrXV.woff2,sha256=VDwD__cdGzlZCvEC4IUsLbzkb02-T6rrr7727cguePU,20820
|
|
99
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-D2e7XwB1.woff,sha256=tvCw-734hhDJiBd_-u6xaU8GIIUV5uZN3HBqtINrbcE,19576
|
|
100
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-3p2daRJW.woff2,sha256=ZputQjQVghL4gM-hJB3BiGb3SLW1LN9KrrAMVsvYc1I,21040
|
|
101
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-Dc9bsamC.woff,sha256=ctxA5OkZASzFAb3ppzeE8v7PI8ZU1iDxdP1kfRb-M58,19708
|
|
102
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-BOl6B_hI.woff,sha256=n4CCN4yv9Xd99lceMR4fB4kCL-HbJW4WaxXoDN6hHI4,19736
|
|
103
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-DRbp0YnP.woff2,sha256=q3TwwtfsN-ROAXuVhmdd0AxRlZEgfcO7yOADxWKNybc,21128
|
|
104
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-BXrkWnoY.woff,sha256=IGhA-x24MRafRKcJ4IG5mugQ1oqJ3mpQ3twErZ07q0g,13584
|
|
105
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-Bhem1d5z.woff2,sha256=21zZ17h-7eYPCWre7qO4CIVENOkz2U0Yiz_4a8HnByU,14944
|
|
106
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-DT8nEsYA.woff,sha256=kjoM0OGkfqpT06rU1mC2DvpUhzjplV3TducO-v2ol0I,12548
|
|
107
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-OHaX69iP.woff2,sha256=yiueq6z6uZ2t4Afd2tYju2iVxEVSnST9cFQMP8yE6zk,13968
|
|
108
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-CcSTXKtO.woff2,sha256=d1qXR7tW2V1i5ASMdQw_MhgN6vm2-g8nsP1At3e_u4w,14168
|
|
109
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-JgPl2bDS.woff,sha256=aThIkps6fgko9yViWDx8KWQRCracbv5ypC03YCQ-pWs,12612
|
|
110
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-B004qtqu.woff2,sha256=t6_Nc2e5H2-vvQWrSsYZXr2VeU41TDaKDcsau1_8h-0,14236
|
|
111
|
+
tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-O6H_RRvN.woff,sha256=QJxKE8nS80QZ9qYMzAXzt5JGcqrCxk9UdKOM_TE_4AE,12660
|
|
112
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-BwUYFJ2t.woff2,sha256=OJmfoKCJ4_QSxHosobWUFubzOZ8DIfRoXRqkJ_AIY5Y,8284
|
|
113
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-DV8QogUk.woff,sha256=tmomibb9MFo8V4vv3GGZKV4TZ1dCkryUT__LzsuTc7k,5928
|
|
114
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-0o1laQ-g.woff2,sha256=FoIHyD5UUviXI2RyIqN3SlPlilQTBsYUkwJ6x3KATHA,8012
|
|
115
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-CPsdS8_S.woff,sha256=4_Ud3wPWpQLSJOrUPkK-Q3UGQ0x1my-L8iG5AvM_Du8,5536
|
|
116
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-G9shSJ2z.woff,sha256=H62yIL9DSKQ38SRrYVDGGfjOHnazYyxl_v1tLEevbZw,5580
|
|
117
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-TFWhjk13.woff2,sha256=bQVH2hmuwLXP9YQwp20idEwkBiTnGRvHweubABjC_h8,8008
|
|
118
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-BtNeb9D6.woff,sha256=RHUNABXRzWDd4_t_FNJwsD4h9APMbUUBfvC6vFM0grg,5604
|
|
119
|
+
tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-D35V1G0s.woff2,sha256=OcHp0IKjio_9iqocX3S5wC6vFJ__Cx1sPenlK9-E6v4,8000
|
|
120
|
+
tangram_core/dist-frontend/assets/shader-BJmsOfPx.js,sha256=NddoTJ4MrR5mhgm_t4H3UmBORp3KeKMI_oUdLvahqfY,250519
|
|
121
|
+
tangram_core/dist-frontend/assets/shader-BJmsOfPx.js.map,sha256=kPhEBEY0j_H1Buh4z_7bfeVRP8aFhYfLGMSoltm_Fgw,604999
|
|
122
|
+
tangram_core/dist-frontend/assets/solid-polygon-layer-DiarVGxh.js,sha256=9Ds8xtoYxVY5DNcB4OoO5Bmiw6FwusZEUX6ykschYHQ,45595
|
|
123
|
+
tangram_core/dist-frontend/assets/solid-polygon-layer-DiarVGxh.js.map,sha256=a1AGTjnJirjo7dBraM6S-xYfXBX4G4AYHPKaZUUm0IM,190746
|
|
124
|
+
tangram_core/dist-frontend/assets/tesselator-49Dw9L5A.js,sha256=TVx6VrCE7UxXO27k3CqYqHGd12Zyl8-7629LCp2TID4,5561
|
|
125
|
+
tangram_core/dist-frontend/assets/tesselator-49Dw9L5A.js.map,sha256=0d8Kt4fNTYJwWtq2hlqYgWeJwpXWbF0Dq3jlLMdfNS0,25996
|
|
126
|
+
tangram_core/dist-frontend/assets/webgl-developer-tools-CZl8qVFg.js,sha256=IGSD1Z6-G6MZUN-Kg9CBaV82rrUzNJ4tlywdREPRmzc,60165
|
|
127
|
+
tangram_core/dist-frontend/assets/webgl-developer-tools-CZl8qVFg.js.map,sha256=8FZX4imkKYFOw2KVQEPcEeyXo4D_nuD51ntF4NixRsg,267290
|
|
128
|
+
tangram_core/dist-frontend/assets/webgl-device-BY0-CUP6.js,sha256=bwtsm_SgYufYB7Z_r4Udna9QEDzJkEhWUBnuO8ZirEY,80845
|
|
129
|
+
tangram_core/dist-frontend/assets/webgl-device-BY0-CUP6.js.map,sha256=8Jlk8_ON_k-QwZaDAJWybEDl6IsWVXI-62GMGacfGa4,374944
|
|
130
|
+
tangram_core/dist-frontend/assets/widget-BbOeHGj0.js,sha256=0sc6R8pRgGQ9MnNV5R5kxIz9ABBkF51glthNIfO6IS4,5074
|
|
131
|
+
tangram_core/dist-frontend/assets/widget-BbOeHGj0.js.map,sha256=aKWijkdPuix_3DeWzhs9DZU6LVGkE3NOkPbUXkf-REY,24319
|
|
132
|
+
tangram_core/dist-frontend/core.js,sha256=NzIsjSOwFESlwLFUM4xNLtOqZF1CSUBzxboSM7ENn54,21469
|
|
133
|
+
tangram_core/dist-frontend/core.js.map,sha256=Y_jr9FRcqAJfHFrj5LyU0IMMG9pYte8xvnDecO2C8mY,79879
|
|
134
|
+
tangram_core/dist-frontend/extensions.js,sha256=vA0gwR1tUOG1VCBADhNEfa9Ou0sO6wS4QuM6J57vQmU,52421
|
|
135
|
+
tangram_core/dist-frontend/extensions.js.map,sha256=LojdfaMg3QzMpHsTwtmrtjdOKy4zlkCeDDSbd1Tr82Q,174081
|
|
136
|
+
tangram_core/dist-frontend/favicon.ico,sha256=2MG5sth8hvbhlLOTsF1z6gyxMOt9hbI1ze8vk3ayFc0,3125
|
|
137
|
+
tangram_core/dist-frontend/favicon.png,sha256=4k7fCKcNJw9IMtNDVS1nsMb62jxt7J1YRDvntL6b68Y,40688
|
|
138
|
+
tangram_core/dist-frontend/font-awesome.min.css,sha256=eZrrJcwDc_3uDhsdt61sL2oOBY362qM3lon1gyExkL0,31000
|
|
139
|
+
tangram_core/dist-frontend/fonts/FontAwesome.otf,sha256=RE3UNmYV_8ShbQErL6kBNwZdPMtBD6b9Xk3de15P_NU,134808
|
|
140
|
+
tangram_core/dist-frontend/fonts/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
|
|
141
|
+
tangram_core/dist-frontend/fonts/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
|
|
142
|
+
tangram_core/dist-frontend/fonts/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
|
|
143
|
+
tangram_core/dist-frontend/fonts/fontawesome-webfont.woff,sha256=ugxZ3rVFD1y0Gz-TYJ7i0NmVQVh33foiPoqKdTNHTwc,98024
|
|
144
|
+
tangram_core/dist-frontend/fonts/fontawesome-webfont.woff2,sha256=Kt78vAQefRj88tQXh53FoJmXqmTWdbejxLbOM9oT8_4,77160
|
|
145
|
+
tangram_core/dist-frontend/geo-layers.js,sha256=brQhHPU9bZWlten0JGg5Oz7-uDZUV3WYPoFq6vVQtng,424505
|
|
146
|
+
tangram_core/dist-frontend/geo-layers.js.map,sha256=sTBfY_IgP7A0gSPCaHJZ7n3UkvuPLMFJLnerxqtbnUA,2034147
|
|
147
|
+
tangram_core/dist-frontend/index.html,sha256=0AAJ5vlg0xlA4459TLlk1l-ESrk1fB-WNw7NNiSGz_I,1397
|
|
148
|
+
tangram_core/dist-frontend/json.js,sha256=mA5j6eseq-0lZkLrSHT-vgKQ_29enj6VOUZFl25N3gE,11822
|
|
149
|
+
tangram_core/dist-frontend/json.js.map,sha256=ezKy5SDTMrAk2rtK-88ggatk6f_VV4V0DiNZCUcj1ck,78261
|
|
150
|
+
tangram_core/dist-frontend/layers.js,sha256=giumEX8NU7UE8u-1KqYLib2h6DlGBvWEU6rjA5t55oQ,13658
|
|
151
|
+
tangram_core/dist-frontend/layers.js.map,sha256=79ciCfdnpJnG55fEg3Q0sXK6t6goxAxEjOmBjKqLzcc,23568
|
|
152
|
+
tangram_core/dist-frontend/lit-html.js,sha256=NKwyNrk_zmL_Jh0lwwOdglIfePg79vd9BP7HR5bxNxo,7300
|
|
153
|
+
tangram_core/dist-frontend/lit-html.js.map,sha256=OOLR2RZTCtjS--ol-NB8Dm-ym_dRS_db2wyQQijtcsc,96159
|
|
154
|
+
tangram_core/dist-frontend/mapbox.js,sha256=7pKLuRcDowaZJKa1qaFBMLH_qBtApUgqdGlnTWzoR6s,9542
|
|
155
|
+
tangram_core/dist-frontend/mapbox.js.map,sha256=roTJAM8-tBozEeWXWn8a0133QXpDMudoBEwPOckkNk4,40611
|
|
156
|
+
tangram_core/dist-frontend/maplibre-gl.js,sha256=jrS8Kkfqdoc1F8nTzRxMn0Fyvi-kxaq67AOOW5L0GS8,1015688
|
|
157
|
+
tangram_core/dist-frontend/maplibre-gl.js.map,sha256=K_waa_cIkJ0EJbmL0qx_iXfjfcM9VfNE3_VxyTzUvn8,5758688
|
|
158
|
+
tangram_core/dist-frontend/mesh-layers.js,sha256=Do5hHOcxo-tABb6NakhXAkC9jmlvQJ6KuxLl-GDiF70,516
|
|
159
|
+
tangram_core/dist-frontend/mesh-layers.js.map,sha256=Y_tyBt4dcEmZosR3T9WvVCOkjt9k_3O8PKcoUT9LES0,95
|
|
160
|
+
tangram_core/dist-frontend/rs1090_wasm.js,sha256=vRh9coROJb0MbUddAH4vrGWwK8wyMsoDWSAAmzKajxU,26260
|
|
161
|
+
tangram_core/dist-frontend/rs1090_wasm_bg.wasm,sha256=7KKP-KObOBdoQshBgCnXIB-ylirG1rV0BcutjplwHbk,3797882
|
|
162
|
+
tangram_core/dist-frontend/vue.esm-browser.prod.js,sha256=HIxQG1GbqR8oFA3mRO_7OD3DNe4COf1fSGA8mohzPuY,165993
|
|
163
|
+
tangram_core/dist-frontend/widgets.js,sha256=R6a8s5I1Vk_NE5w_R2vx7LTqTMagVgUMQrESoG49lzw,50151
|
|
164
|
+
tangram_core/dist-frontend/widgets.js.map,sha256=OoV9t-vWFAmr66bwddZBxC5n1F3WfW-gSJsdHybKFiU,166080
|
|
165
|
+
tangram_core/main.ts,sha256=qoDdMUdmjbGz_0_b-Ld8X7cM48LZfLWJS4VL07ZQrNM,549
|
|
166
|
+
tangram_core/plugin.py,sha256=qY3XdRfsPZy80gDhJLlm-CYCYoL9DkVBQxdpGQgz3qA,2212
|
|
167
|
+
tangram_core/plugin.ts,sha256=UbNUniFq1iYyN3SCG0kLkDpsTwHVokFZGdcJt4jv1uA,1266
|
|
168
|
+
tangram_core/redis.py,sha256=OgNc10pzOi5H4ZcS1Ahew5r2bxyDV6XK5-hofWRUhuA,2916
|
|
169
|
+
tangram_core/user.css,sha256=UIyei0q9X7-VWFGW4z8A7uf3Zvzg2w9z0e5k81Rn4V8,1596
|
|
170
|
+
tangram_core/vite-plugin-tangram.mjs,sha256=tc1uy0dgvoliyuL1JOXijFTj1GcAMjziPHtEGHKn-sw,2480
|
|
171
|
+
tangram_core-0.2.0.dist-info/RECORD,,
|