@metastringfoundation/map-list 0.1.0
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.
- package/dist/card.d.ts +7 -0
- package/dist/card.d.ts.map +1 -0
- package/dist/card.js +7 -0
- package/dist/components/core/button.d.ts +7 -0
- package/dist/components/core/button.d.ts.map +1 -0
- package/dist/components/core/button.js +21 -0
- package/dist/components/core/highlighter.d.ts +5 -0
- package/dist/components/core/highlighter.d.ts.map +1 -0
- package/dist/components/core/highlighter.js +15 -0
- package/dist/components/core/icons.d.ts +17 -0
- package/dist/components/core/icons.d.ts.map +1 -0
- package/dist/components/core/icons.js +60 -0
- package/dist/components/core/iconts.d.ts +2 -0
- package/dist/components/core/iconts.d.ts.map +1 -0
- package/dist/components/core/iconts.js +2 -0
- package/dist/components/core/index.d.ts +5 -0
- package/dist/components/core/index.d.ts.map +1 -0
- package/dist/components/core/index.js +20 -0
- package/dist/components/core/input.d.ts +14 -0
- package/dist/components/core/input.d.ts.map +1 -0
- package/dist/components/core/input.js +18 -0
- package/dist/components/core/popup.d.ts +5 -0
- package/dist/components/core/popup.d.ts.map +1 -0
- package/dist/components/core/popup.js +11 -0
- package/dist/components/core/tabs.d.ts +46 -0
- package/dist/components/core/tabs.d.ts.map +1 -0
- package/dist/components/core/tabs.js +147 -0
- package/dist/components/infobar/content.d.ts +4 -0
- package/dist/components/infobar/content.d.ts.map +1 -0
- package/dist/components/infobar/content.js +22 -0
- package/dist/components/infobar/index.d.ts +2 -0
- package/dist/components/infobar/index.d.ts.map +1 -0
- package/dist/components/infobar/index.js +17 -0
- package/dist/components/infobar/infobar-panel.d.ts +4 -0
- package/dist/components/infobar/infobar-panel.d.ts.map +1 -0
- package/dist/components/infobar/infobar-panel.js +52 -0
- package/dist/components/map/index.d.ts +2 -0
- package/dist/components/map/index.d.ts.map +1 -0
- package/dist/components/map/index.js +66 -0
- package/dist/components/map/layers/grid/index.d.ts +6 -0
- package/dist/components/map/layers/grid/index.d.ts.map +1 -0
- package/dist/components/map/layers/grid/index.js +31 -0
- package/dist/components/map/layers/highlight/index.d.ts +2 -0
- package/dist/components/map/layers/highlight/index.d.ts.map +1 -0
- package/dist/components/map/layers/highlight/index.js +7 -0
- package/dist/components/map/layers/index.d.ts +6 -0
- package/dist/components/map/layers/index.d.ts.map +1 -0
- package/dist/components/map/layers/index.js +27 -0
- package/dist/components/map/layers/raster/index.d.ts +6 -0
- package/dist/components/map/layers/raster/index.d.ts.map +1 -0
- package/dist/components/map/layers/raster/index.js +19 -0
- package/dist/components/map/layers/vector/index.d.ts +5 -0
- package/dist/components/map/layers/vector/index.d.ts.map +1 -0
- package/dist/components/map/layers/vector/index.js +29 -0
- package/dist/components/map/marker-list/index.d.ts +3 -0
- package/dist/components/map/marker-list/index.d.ts.map +1 -0
- package/dist/components/map/marker-list/index.js +16 -0
- package/dist/components/map/markers-list/index.d.ts +3 -0
- package/dist/components/map/markers-list/index.d.ts.map +1 -0
- package/dist/components/map/markers-list/index.js +16 -0
- package/dist/components/map/popup/index.d.ts +4 -0
- package/dist/components/map/popup/index.d.ts.map +1 -0
- package/dist/components/map/popup/index.js +17 -0
- package/dist/components/sidebar/common/grid-legend.d.ts +4 -0
- package/dist/components/sidebar/common/grid-legend.d.ts.map +1 -0
- package/dist/components/sidebar/common/grid-legend.js +22 -0
- package/dist/components/sidebar/common/info-popover.d.ts +10 -0
- package/dist/components/sidebar/common/info-popover.d.ts.map +1 -0
- package/dist/components/sidebar/common/info-popover.js +32 -0
- package/dist/components/sidebar/common/layer-item-style.d.ts +4 -0
- package/dist/components/sidebar/common/layer-item-style.d.ts.map +1 -0
- package/dist/components/sidebar/common/layer-item-style.js +21 -0
- package/dist/components/sidebar/common/layer-item.d.ts +11 -0
- package/dist/components/sidebar/common/layer-item.d.ts.map +1 -0
- package/dist/components/sidebar/common/layer-item.js +59 -0
- package/dist/components/sidebar/common/moreless.d.ts +4 -0
- package/dist/components/sidebar/common/moreless.d.ts.map +1 -0
- package/dist/components/sidebar/common/moreless.js +10 -0
- package/dist/components/sidebar/common/opacity-handler-addon.d.ts +3 -0
- package/dist/components/sidebar/common/opacity-handler-addon.d.ts.map +1 -0
- package/dist/components/sidebar/common/opacity-handler-addon.js +9 -0
- package/dist/components/sidebar/common/style-legend.d.ts +4 -0
- package/dist/components/sidebar/common/style-legend.d.ts.map +1 -0
- package/dist/components/sidebar/common/style-legend.js +23 -0
- package/dist/components/sidebar/common.d.ts +2 -0
- package/dist/components/sidebar/common.d.ts.map +1 -0
- package/dist/components/sidebar/common.js +2 -0
- package/dist/components/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.d.ts.map +1 -0
- package/dist/components/sidebar/index.js +38 -0
- package/dist/components/sidebar/layers/index.d.ts +2 -0
- package/dist/components/sidebar/layers/index.d.ts.map +1 -0
- package/dist/components/sidebar/layers/index.js +12 -0
- package/dist/components/sidebar/layers/layer-list.d.ts +2 -0
- package/dist/components/sidebar/layers/layer-list.d.ts.map +1 -0
- package/dist/components/sidebar/layers/layer-list.js +64 -0
- package/dist/components/sidebar/layers/search.d.ts +2 -0
- package/dist/components/sidebar/layers/search.d.ts.map +1 -0
- package/dist/components/sidebar/layers/search.js +16 -0
- package/dist/components/sidebar/layers.d.ts +2 -0
- package/dist/components/sidebar/layers.d.ts.map +1 -0
- package/dist/components/sidebar/layers.js +2 -0
- package/dist/components/sidebar/selected/extended.d.ts +3 -0
- package/dist/components/sidebar/selected/extended.d.ts.map +1 -0
- package/dist/components/sidebar/selected/extended.js +7 -0
- package/dist/components/sidebar/selected/index.d.ts +2 -0
- package/dist/components/sidebar/selected/index.d.ts.map +1 -0
- package/dist/components/sidebar/selected/index.js +20 -0
- package/dist/components/sidebar/selected/selected-item-list.d.ts +10 -0
- package/dist/components/sidebar/selected/selected-item-list.d.ts.map +1 -0
- package/dist/components/sidebar/selected/selected-item-list.js +36 -0
- package/dist/components/sidebar/settings/index.d.ts +2 -0
- package/dist/components/sidebar/settings/index.d.ts.map +1 -0
- package/dist/components/sidebar/settings/index.js +16 -0
- package/dist/components/sidebar/settings/layer-selection.d.ts +6 -0
- package/dist/components/sidebar/settings/layer-selection.d.ts.map +1 -0
- package/dist/components/sidebar/settings/layer-selection.js +17 -0
- package/dist/components/sidebar/tabs.d.ts +4 -0
- package/dist/components/sidebar/tabs.d.ts.map +1 -0
- package/dist/components/sidebar/tabs.js +15 -0
- package/dist/gradient.d.ts +6 -0
- package/dist/gradient.d.ts.map +1 -0
- package/dist/gradient.js +9 -0
- package/dist/hooks/use-layers.d.ts +55 -0
- package/dist/hooks/use-layers.d.ts.map +1 -0
- package/dist/hooks/use-layers.js +298 -0
- package/dist/index.css +1129 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/interfaces/index.d.ts +103 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +2 -0
- package/dist/services/naksha.d.ts +62 -0
- package/dist/services/naksha.d.ts.map +1 -0
- package/dist/services/naksha.js +420 -0
- package/dist/static/constant.d.ts +16 -0
- package/dist/static/constant.d.ts.map +1 -0
- package/dist/static/constant.js +34 -0
- package/dist/static/constants.d.ts +16 -0
- package/dist/static/constants.d.ts.map +1 -0
- package/dist/static/constants.js +34 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +9 -0
- package/dist/turborepo-logo.d.ts +2 -0
- package/dist/turborepo-logo.d.ts.map +1 -0
- package/dist/turborepo-logo.js +8 -0
- package/dist/utils/array-move.d.ts +3 -0
- package/dist/utils/array-move.d.ts.map +1 -0
- package/dist/utils/array-move.js +19 -0
- package/dist/utils/grid.d.ts +22 -0
- package/dist/utils/grid.d.ts.map +1 -0
- package/dist/utils/grid.js +116 -0
- package/dist/utils/naksha.d.ts +32 -0
- package/dist/utils/naksha.d.ts.map +1 -0
- package/dist/utils/naksha.js +141 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/map/index.tsx"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,UAAU,GAAG,4CA2C1B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.default = Map;
|
|
40
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
41
|
+
const map_common_1 = require("@metastringfoundation/map-common");
|
|
42
|
+
const react_1 = require("react");
|
|
43
|
+
const maplibre_1 = __importStar(require("react-map-gl/maplibre"));
|
|
44
|
+
const use_layers_1 = __importDefault(require("../../hooks/use-layers"));
|
|
45
|
+
const infobar_1 = __importDefault(require("../infobar"));
|
|
46
|
+
const sidebar_1 = __importDefault(require("../sidebar"));
|
|
47
|
+
const layers_1 = require("./layers");
|
|
48
|
+
const markers_list_1 = __importDefault(require("./markers-list"));
|
|
49
|
+
const popup_1 = __importDefault(require("./popup"));
|
|
50
|
+
const NavControl = maplibre_1.NavigationControl;
|
|
51
|
+
function Map() {
|
|
52
|
+
const { mp, layer, hover, query } = (0, use_layers_1.default)();
|
|
53
|
+
const [coordinates, setCoordinates] = (0, react_1.useState)();
|
|
54
|
+
const viewState = (0, react_1.useMemo)(() => mp.defaultViewState || map_common_1.defaultViewState, [mp.defaultViewState]);
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
const onMapClick = (e) => query.setClickedLngLat(e.lngLat);
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
const handleOnMouseMove = (event) => {
|
|
59
|
+
setCoordinates(event.lngLat);
|
|
60
|
+
hover.onHover(event);
|
|
61
|
+
};
|
|
62
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "w-full h-screen overflow-hidden", children: [mp.loadToC && (0, jsx_runtime_1.jsx)(sidebar_1.default, {}), layer.selectedFeatures?.length > 0 && (0, jsx_runtime_1.jsx)(infobar_1.default, {}), (0, jsx_runtime_1.jsxs)(maplibre_1.default, { id: "mapl", cursor: "default", initialViewState: viewState, style: { width: "100%", height: "100%" }, mapStyle: layer.mapStyle, onClick: onMapClick, onMouseMove: handleOnMouseMove, children: [(0, jsx_runtime_1.jsx)(NavControl, { position: "top-right", showZoom: true, showCompass: true }), (0, jsx_runtime_1.jsx)(markers_list_1.default, {}), layer.selectedLayers.map((_l, index) => {
|
|
63
|
+
const beforeId = index > 0 ? layer.selectedIds[index - 1] : undefined;
|
|
64
|
+
return (0, jsx_runtime_1.jsx)(layers_1.MapLayer, { layer: _l, beforeId: beforeId }, _l.id);
|
|
65
|
+
}), (0, jsx_runtime_1.jsx)(popup_1.default, { coordinates: coordinates }, "popup")] })] }));
|
|
66
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/map/layers/grid/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAC,MAAM,CAAA;CACjB,2CAoCA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = GridLayer;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
10
|
+
const use_layers_1 = __importDefault(require("../../../../hooks/use-layers"));
|
|
11
|
+
const naksha_1 = require("../../../../services/naksha");
|
|
12
|
+
function GridLayer({ data, beforeId, }) {
|
|
13
|
+
const { layer } = (0, use_layers_1.default)();
|
|
14
|
+
const { mapl } = (0, maplibre_1.useMap)();
|
|
15
|
+
const [layerData, setLayerData] = (0, react_1.useState)({ geojson: {}, paint: {} });
|
|
16
|
+
const fetchGridData = async () => {
|
|
17
|
+
const { success, geojson, paint, stops, squareSize } = await (0, naksha_1.getGridLayerData)(data.source.fetcher,
|
|
18
|
+
//@ts-ignore
|
|
19
|
+
mapl?.getBounds(), mapl?.getZoom());
|
|
20
|
+
if (success) {
|
|
21
|
+
setLayerData({ geojson, paint });
|
|
22
|
+
layer.setGridLegends({
|
|
23
|
+
[data.id]: { stops, squareSize },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
(0, react_1.useEffect)(() => {
|
|
28
|
+
mapl?.on("idle", fetchGridData);
|
|
29
|
+
}, []);
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)(maplibre_1.Source, { id: data.id, type: "geojson", data: layerData.geojson, children: (0, jsx_runtime_1.jsx)(maplibre_1.Layer, { beforeId: beforeId, id: data.id, type: "fill", paint: layerData.paint }) }));
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/map/layers/highlight/index.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,cAAc,4CAErC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/map/layers/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAC,MAAM,CAAA;CACjB,kDAuBA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MapLayer = MapLayer;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
9
|
+
const raster_1 = __importDefault(require("./raster"));
|
|
10
|
+
function MapLayer({ layer, beforeId, }) {
|
|
11
|
+
console.log(layer, "layer from MapLayer");
|
|
12
|
+
console.log("layer.source.type", layer?.source?.type);
|
|
13
|
+
const { mapl } = (0, maplibre_1.useMap)();
|
|
14
|
+
if (!mapl) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
// switch (layer?.source?.type) {
|
|
18
|
+
// case "vector":
|
|
19
|
+
// return <VectorLayer beforeId={beforeId} layer={layer} />;
|
|
20
|
+
// case "grid":
|
|
21
|
+
// return <GridLayer beforeId={beforeId} data={layer} />;
|
|
22
|
+
// case "raster":
|
|
23
|
+
return (0, jsx_runtime_1.jsx)(raster_1.default, { beforeId: beforeId, data: layer });
|
|
24
|
+
// default:
|
|
25
|
+
// return <VectorLayer beforeId={beforeId} layer={layer} />;
|
|
26
|
+
// }
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/map/layers/raster/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAC,MAAM,CAAA;CACjB,2CA4BA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = RasterLayer;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../../hooks/use-layers"));
|
|
10
|
+
function RasterLayer({ data, beforeId, }) {
|
|
11
|
+
const { mp } = (0, use_layers_1.default)();
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)(maplibre_1.Source, { id: data.id, type: "raster",
|
|
13
|
+
// tiles={[
|
|
14
|
+
// `${mp?.geoserver?.endpoint}/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&transparent=true&layers=biodiv:${data.id}`,
|
|
15
|
+
// ]}
|
|
16
|
+
tiles: [
|
|
17
|
+
`${mp?.geoserver?.endpoint}/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&transparent=true&layers=metastring:kew`,
|
|
18
|
+
], tileSize: 256, children: (0, jsx_runtime_1.jsx)(maplibre_1.Layer, { id: data.id, beforeId: beforeId, type: "raster", source: "biodiv", layout: { visibility: "visible" }, paint: {} }) }));
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/map/layers/vector/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;;;CAAA,2CA+B5D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = VectorLayer;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
// @ts-nocheck
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
11
|
+
const use_layers_1 = __importDefault(require("../../../../hooks/use-layers"));
|
|
12
|
+
const constants_1 = require("../../../../static/constants");
|
|
13
|
+
const paint = {
|
|
14
|
+
fill: {
|
|
15
|
+
"line-color": "red",
|
|
16
|
+
"line-width": 2,
|
|
17
|
+
},
|
|
18
|
+
circle: {
|
|
19
|
+
"circle-stroke-color": "red",
|
|
20
|
+
"circle-stroke-width": 2,
|
|
21
|
+
"circle-opacity": 0,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
function VectorLayer({ layer: data, beforeId }) {
|
|
25
|
+
const { layer } = (0, use_layers_1.default)();
|
|
26
|
+
const layerProps = (0, react_1.useMemo)(() => data.data?.styles?.[data.data?.styleIndex]?.colors, [data, layer.selectedFeatures]);
|
|
27
|
+
const highlightData = layer.selectedFeaturesId?.[data.id];
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)(maplibre_1.Source, { ...data.source, children: [layerProps && (0, jsx_runtime_1.jsx)(maplibre_1.Layer, { beforeId: beforeId, ...layerProps }), highlightData && layerProps && ((0, jsx_runtime_1.jsx)(maplibre_1.Layer, { ...layerProps, beforeId: beforeId, id: `hl_${data.id}`, filter: ["in", constants_1.PROPERTY_ID, ...highlightData], type: layerProps.type === "fill" ? "line" : layerProps.type, paint: paint[layerProps.type] }))] }));
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/map/marker-list/index.tsx"],"names":[],"mappings":"AAMA,QAAA,MAAM,WAAW,+CAkBhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
10
|
+
const Marker1 = maplibre_1.Marker;
|
|
11
|
+
const MarkersList = () => {
|
|
12
|
+
const { mp } = (0, use_layers_1.default)();
|
|
13
|
+
const markersMemoized = (0, react_1.useMemo)(() => mp.markers, [mp.markers]);
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: markersMemoized?.map(({ latitude, longitude, colorHex }, index) => ((0, jsx_runtime_1.jsx)(Marker1, { latitude: latitude, longitude: longitude, children: (0, jsx_runtime_1.jsx)("img", { style: { cursor: "pointer" }, alt: "Marker", src: `https://a.tiles.mapbox.com/v4/marker/pin-m+${colorHex}.png?access_token=${mp.mapboxAccessToken}` }) }, index))) }));
|
|
15
|
+
};
|
|
16
|
+
exports.default = MarkersList;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/map/markers-list/index.tsx"],"names":[],"mappings":"AAMA,QAAA,MAAM,WAAW,+CAkBhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
10
|
+
const Marker1 = maplibre_1.Marker;
|
|
11
|
+
const MarkersList = () => {
|
|
12
|
+
const { mp } = (0, use_layers_1.default)();
|
|
13
|
+
const markersMemoized = (0, react_1.useMemo)(() => mp.markers, [mp.markers]);
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: markersMemoized?.map(({ latitude, longitude, colorHex }, index) => ((0, jsx_runtime_1.jsx)(Marker1, { latitude: latitude, longitude: longitude, children: (0, jsx_runtime_1.jsx)("img", { style: { cursor: "pointer" }, alt: "Marker", src: `https://a.tiles.mapbox.com/v4/marker/pin-m+${colorHex}.png?access_token=${mp.mapboxAccessToken}` }) }, index))) }));
|
|
15
|
+
};
|
|
16
|
+
exports.default = MarkersList;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/map/popup/index.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,WAAW,EAAE;;CAAA,kDAqCjD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = HoverPopup;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const maplibre_1 = require("react-map-gl/maplibre");
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
10
|
+
const Pop = maplibre_1.Popup;
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
function HoverPopup({ coordinates }) {
|
|
13
|
+
const { hover } = (0, use_layers_1.default)();
|
|
14
|
+
return coordinates?.lat && hover.features ? ((0, jsx_runtime_1.jsx)(Pop, { latitude: coordinates.lat, longitude: coordinates.lng, closeButton: false, children: (0, jsx_runtime_1.jsxs)("table", { className: "table-auto border border-gray-300 bg-white", children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsx)("tr", { children: (0, jsx_runtime_1.jsx)("th", { className: "bg-gray-200 py-1 px-2 text-left", colSpan: 2, children: hover.features.title }) }) }), (0, jsx_runtime_1.jsxs)("tbody", { children: ["// @ts", hover.features.data.map(
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
([k, v], idx) => ((0, jsx_runtime_1.jsxs)("tr", { className: `border-t border-gray-100 ${idx % 2 === 0 ? "bg-gray-50" : ""}`, children: [(0, jsx_runtime_1.jsx)("td", { className: "py-1 px-2", children: k }), (0, jsx_runtime_1.jsx)("td", { className: "py-1 px-2 border-l border-gray-100", children: v })] }, k + v)))] })] }) })) : null;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-legend.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/grid-legend.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE;;CAAA,kDAqC1C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = GridLegend;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
// @ts-nocheck
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
10
|
+
const moreless_1 = __importDefault(require("./moreless"));
|
|
11
|
+
function GridLegend({ item }) {
|
|
12
|
+
const { layer } = (0, use_layers_1.default)();
|
|
13
|
+
const legendInfo = layer.gridLegends[item.id];
|
|
14
|
+
if (!legendInfo)
|
|
15
|
+
return null;
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(moreless_1.default, { children: (0, jsx_runtime_1.jsxs)("ul", { style: { margin: 0, padding: 0 }, children: [legendInfo?.stops.map(([stop, color], index, stopsArr) => {
|
|
17
|
+
const prevStop = (stopsArr[index - 1] || [0])[0];
|
|
18
|
+
if (prevStop === stop)
|
|
19
|
+
return (0, jsx_runtime_1.jsx)("div", {}, color);
|
|
20
|
+
return ((0, jsx_runtime_1.jsxs)("li", { className: "flex gap-2 items-center mb-1", children: [(0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 24 24", height: "14", width: "14", focusable: "false", children: (0, jsx_runtime_1.jsx)("circle", { cx: "12", fill: color, cy: "12", r: "12", stroke: "none" }) }), (0, jsx_runtime_1.jsxs)("div", { children: [prevStop, " - ", stop] })] }, color));
|
|
21
|
+
}), (0, jsx_runtime_1.jsxs)("li", { children: ["1 Square = ", legendInfo?.squareSize, " x ", legendInfo?.squareSize, " km"] })] }) }));
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface InfoPopoverProps {
|
|
2
|
+
item?: any;
|
|
3
|
+
containerStyle?: any;
|
|
4
|
+
}
|
|
5
|
+
export declare function InfoPopover({ item, containerStyle }: InfoPopoverProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const PopoverWrapper: ({ item }: {
|
|
7
|
+
item: any;
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=info-popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-popover.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/info-popover.tsx"],"names":[],"mappings":"AAwDA,UAAU,gBAAgB;IACxB,IAAI,CAAC,MAAC;IACN,cAAc,CAAC,MAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,gBAAgB,2CA2ErE;AAED,eAAO,MAAM,cAAc,GAAI;;CAAQ,4CAqBtC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PopoverWrapper = void 0;
|
|
7
|
+
exports.InfoPopover = InfoPopover;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
// @ts-nocheck
|
|
10
|
+
const react_1 = require("react");
|
|
11
|
+
const react_tiny_popover_1 = require("react-tiny-popover");
|
|
12
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
13
|
+
const core_1 = require("../../core");
|
|
14
|
+
const LayerInfoLine = ({ icon, name, title, link, children, }) => {
|
|
15
|
+
const content = (0, jsx_runtime_1.jsx)("span", { children: children || "-" });
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex gap-3 text-sm text-gray-600 break-all", title: name && title && `${name}: ${itle}`, children: [(0, jsx_runtime_1.jsx)("div", { children: icon }), link ? ((0, jsx_runtime_1.jsx)("a", { className: "text-blue-700 focus:outline-none focus:ring", target: "_blank", rel: "noopener", href: link, children: content })) : (content)] }));
|
|
17
|
+
};
|
|
18
|
+
function InfoPopover({ item, containerStyle }) {
|
|
19
|
+
const { layer, mp } = (0, use_layers_1.default)();
|
|
20
|
+
const license = item.license || "CC-BY";
|
|
21
|
+
const createdOn = item?.createdDate && new Date(item.createdDate).toLocaleDateString();
|
|
22
|
+
const tags = item.tags?.join(", ");
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-1 bg-white p-4 rounded-lg w-72 border border-gray-300 border-solid", style: containerStyle, children: [mp.managePublishing && item.layerStatus && ((0, jsx_runtime_1.jsxs)(LayerInfoLine, { icon: (0, jsx_runtime_1.jsx)(core_1.EyeIcon, {}), name: ("visiblity"), title: item.layerStatus, children: [item.layerStatus, (0, jsx_runtime_1.jsx)("button", { className: "text-blue-600 focus:outline-none ml-4", onClick: () => layer.togglePublish(item.id, item?.layerStatus), children: ("toggle") }), (0, jsx_runtime_1.jsx)("button", { className: "text-red-600 focus:outline-none ml-4", onClick: () => layer.delete(item.id, t("are_you_sure")), children: ("delete") })] })), (0, jsx_runtime_1.jsx)(LayerInfoLine, { icon: (0, jsx_runtime_1.jsx)(core_1.AttributionIcon, {}), link: item.url, name: ("uploader"), title: item.createdBy, children: item.createdBy }), (0, jsx_runtime_1.jsx)(LayerInfoLine, { icon: (0, jsx_runtime_1.jsx)(core_1.AttributionIcon, {}), link: item.url, name: ("created_by"), title: item.attribution, children: item.attribution }), (0, jsx_runtime_1.jsx)(LayerInfoLine, { icon: (0, jsx_runtime_1.jsx)(core_1.ClockIcon, {}), name: ("created_on"), title: createdOn, children: createdOn }), (0, jsx_runtime_1.jsx)(LayerInfoLine, { icon: (0, jsx_runtime_1.jsx)(core_1.TagIcon, {}), name: ("tags"), title: ags, children: ags }), (0, jsx_runtime_1.jsx)(LayerInfoLine, { name: ("license"), title: license,
|
|
24
|
+
// link={license && LICENSES[license]}
|
|
25
|
+
icon: (0, jsx_runtime_1.jsx)(core_1.LicenseIcon, {}), children: license })] }));
|
|
26
|
+
}
|
|
27
|
+
const PopoverWrapper = ({ item }) => {
|
|
28
|
+
const [isPopoverOpen, setIsPopoverOpen] = (0, react_1.useState)(false);
|
|
29
|
+
const togglePopover = () => setIsPopoverOpen(!isPopoverOpen);
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)(react_tiny_popover_1.Popover, { isOpen: isPopoverOpen, padding: 10, positions: ["right"], containerStyle: { zIndex: 99 }, onClickOutside: togglePopover, content: (0, jsx_runtime_1.jsx)(InfoPopover, { item: item }), children: (0, jsx_runtime_1.jsx)(core_1.Button, { onClick: togglePopover, children: (0, jsx_runtime_1.jsx)(core_1.InfoIcon, {}), title: "Information" }) }));
|
|
31
|
+
};
|
|
32
|
+
exports.PopoverWrapper = PopoverWrapper;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-item-style.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/layer-item-style.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,kDA0B7D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = LayerItemStyle;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
// @ts-nocheck
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
10
|
+
const core_1 = require("../../core");
|
|
11
|
+
const moreless_1 = __importDefault(require("./moreless"));
|
|
12
|
+
const style_legend_1 = require("./style-legend");
|
|
13
|
+
function LayerItemStyle({ item }) {
|
|
14
|
+
if (!item.data?.styles)
|
|
15
|
+
return null;
|
|
16
|
+
const { layer } = (0, use_layers_1.default)();
|
|
17
|
+
const onStyleChange = (e) => {
|
|
18
|
+
layer.updateStyle(item.id, Number(e.target.value));
|
|
19
|
+
};
|
|
20
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-4 pt-2", children: [item.layerType !== "RASTER" && ((0, jsx_runtime_1.jsx)(core_1.SelectInput, { onChange: onStyleChange, children: item.data?.styles.map((opt, idx) => ((0, jsx_runtime_1.jsx)("option", { value: idx, children: opt.styleTitle }, idx))) })), (0, jsx_runtime_1.jsx)(moreless_1.default, { children: (0, jsx_runtime_1.jsx)(style_legend_1.StyleLegend, { item: item }) })] }));
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GeoserverLayer } from "../../../interfaces";
|
|
2
|
+
interface LayerItemProps {
|
|
3
|
+
item: GeoserverLayer;
|
|
4
|
+
extended?: boolean;
|
|
5
|
+
/** dnd-kit handlers passed from Sortable wrapper */
|
|
6
|
+
dragHandleProps?: any;
|
|
7
|
+
dragHandleRef?: any;
|
|
8
|
+
}
|
|
9
|
+
export default function LayerItem({ item, extended, dragHandleProps, dragHandleRef, }: LayerItemProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=layer-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-item.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/layer-item.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAwBrD,UAAU,cAAc;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,oDAAoD;IACpD,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB;AAGD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,aAAa,GACd,EAAE,cAAc,2CAyIhB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = LayerItem;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
10
|
+
const naksha_1 = require("../../../services/naksha");
|
|
11
|
+
const constants_1 = require("../../../static/constants");
|
|
12
|
+
const core_1 = require("../../core");
|
|
13
|
+
const highlighter_1 = require("../../core/highlighter");
|
|
14
|
+
const grid_legend_1 = __importDefault(require("./grid-legend"));
|
|
15
|
+
const info_popover_1 = require("./info-popover");
|
|
16
|
+
const layer_item_style_1 = __importDefault(require("./layer-item-style"));
|
|
17
|
+
const opacity_handler_addon_1 = __importDefault(require("./opacity-handler-addon"));
|
|
18
|
+
function LayerItem({ item, extended, dragHandleProps, dragHandleRef, }) {
|
|
19
|
+
const { layer, query, mp, query: { setClickedLngLat }, setIsInfoBarOpen, } = (0, use_layers_1.default)();
|
|
20
|
+
const [isAdded, setIsAdded] = (0, react_1.useState)(layer.selectedIds.includes(item.id));
|
|
21
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
22
|
+
const shareUrl = `${window.location.href.split("?")[0]}?layers=${item.id}`;
|
|
23
|
+
/** native Web Share API replacement */
|
|
24
|
+
const shareLayer = async () => {
|
|
25
|
+
const shareData = {
|
|
26
|
+
title: item.title,
|
|
27
|
+
text: item.title,
|
|
28
|
+
url: shareUrl,
|
|
29
|
+
};
|
|
30
|
+
if (navigator.share) {
|
|
31
|
+
try {
|
|
32
|
+
await navigator.share(shareData);
|
|
33
|
+
}
|
|
34
|
+
catch { }
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
await navigator.clipboard.writeText(shareUrl);
|
|
38
|
+
alert("Link copied to clipboard");
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const onToggleLayer = async () => {
|
|
42
|
+
setIsLoading(true);
|
|
43
|
+
setIsInfoBarOpen(true);
|
|
44
|
+
layer.setSelectedFeatures([]);
|
|
45
|
+
setClickedLngLat(null);
|
|
46
|
+
await layer.toggle({ layerId: item.id, add: !isAdded });
|
|
47
|
+
setIsAdded(!isAdded);
|
|
48
|
+
setIsLoading(false);
|
|
49
|
+
};
|
|
50
|
+
const onDownloadLayer = async () => {
|
|
51
|
+
await (0, naksha_1.axDownloadLayer)(
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
mp.nakshaApiEndpoint, mp.nakshaEndpointToken, item.id, item.title);
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
mp?.onLayerDownload(item.id);
|
|
56
|
+
};
|
|
57
|
+
const handleOnZoom = () => layer?.zoomToExtent(item?.id);
|
|
58
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "z-20 p-3 bg-white border-t border-gray-200", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center shrink-0", children: [(0, jsx_runtime_1.jsx)(core_1.CheckboxInput, { name: item.id, checked: isAdded, onChange: onToggleLayer, isLoading: isLoading }), extended && ((0, jsx_runtime_1.jsx)("div", { ref: dragHandleRef, ...dragHandleProps, className: "mt-1 w-6 text-center cursor-move", children: (0, jsx_runtime_1.jsx)(core_1.GrabberIcon, {}) }))] }), (0, jsx_runtime_1.jsx)("img", { className: "flex shrink-0 overflow-hidden h-16 w-16 p-1 mb-2 object-cover border border-gray-200 rounded", src: item.thumbnail || constants_1.FALLBACK_THUMB }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { title: item.title, className: "mb-1 leading-tight", style: constants_1.overflowStyle, children: (0, jsx_runtime_1.jsx)(highlighter_1.Highlighted, { text: item.title, highlight: query.term }) }), (0, jsx_runtime_1.jsx)("p", { title: item.description, className: "text-gray-600 text-sm", style: constants_1.overflowStyle2, children: item.description })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "pb-3", children: extended && (0, jsx_runtime_1.jsx)(opacity_handler_addon_1.default, {}) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsxs)(core_1.Button, { onClick: onDownloadLayer, disabled: !item.isDownloadable, children: [(0, jsx_runtime_1.jsx)(core_1.DownloadIcon, {}), " Download"] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-3", children: [(0, jsx_runtime_1.jsx)(core_1.Button, { onClick: shareLayer, title: "Share", children: (0, jsx_runtime_1.jsx)(core_1.ShareIcon, {}) }), extended && ((0, jsx_runtime_1.jsx)(core_1.Button, { onClick: handleOnZoom, title: "Zoom To Extent", children: (0, jsx_runtime_1.jsx)(core_1.ZoomExtentIcon, {}) })), (0, jsx_runtime_1.jsx)(info_popover_1.PopoverWrapper, { item: item })] })] }), extended && (0, jsx_runtime_1.jsx)(layer_item_style_1.default, { item: item }), extended && item?.source?.type === "grid" && (0, jsx_runtime_1.jsx)(grid_legend_1.default, { item: item })] }));
|
|
59
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moreless.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/moreless.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE;;CAAA,2CAc5C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = MoreLess;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
function MoreLess({ children }) {
|
|
8
|
+
const [showMore, setShowMore] = (0, react_1.useState)(false);
|
|
9
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [showMore && children, (0, jsx_runtime_1.jsx)("button", { onClick: () => setShowMore(!showMore), className: `text-blue-600 focus:outline-none focus:outline focus:ring`, children: showMore ? ("less") : ("legend") })] }));
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opacity-handler-addon.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/opacity-handler-addon.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,+CAqBlB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const OpacitySlider = () => {
|
|
6
|
+
const [opacity, setOpacity] = (0, react_1.useState)(1);
|
|
7
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "max-w-sm space-y-4", children: (0, jsx_runtime_1.jsx)("input", { id: "opacity-slider", type: "range", min: "0", max: "1", step: "0.01", value: opacity, onChange: (e) => setOpacity(Number(e.target.value)), className: "\n w-full cursor-pointer text-2xl\n " }) }));
|
|
8
|
+
};
|
|
9
|
+
exports.default = OpacitySlider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-legend.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/common/style-legend.tsx"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE;;CAAA,2CA4CnC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.StyleLegend = StyleLegend;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
// @ts-nocheck
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const use_layers_1 = __importDefault(require("../../../hooks/use-layers"));
|
|
11
|
+
function StyleLegend({ item }) {
|
|
12
|
+
const [showImage, setShowImage] = (0, react_1.useState)(true);
|
|
13
|
+
const { mp } = (0, use_layers_1.default)();
|
|
14
|
+
const { t } = useT();
|
|
15
|
+
const legendStyles = (0, react_1.useMemo)(() => item?.data?.styles?.[item.data.styleIndex]?.colors?.paint?.["fill-color"]
|
|
16
|
+
?.stops ||
|
|
17
|
+
item?.data?.styles?.[item.data.styleIndex]?.colors?.paint?.["circle-color"]?.stops ||
|
|
18
|
+
[], [item]);
|
|
19
|
+
const vectorLegend = () => {
|
|
20
|
+
return legendStyles.map(([title, color]) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex gap-2 items-center mb-1", children: [(0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 24 24", height: "14", width: "14", focusable: "false", children: (0, jsx_runtime_1.jsx)("circle", { cx: "12", fill: color, cy: "12", r: "12", stroke: "none" }) }), (0, jsx_runtime_1.jsx)("div", { children: title })] }, color)));
|
|
21
|
+
};
|
|
22
|
+
return ((0, jsx_runtime_1.jsx)("ul", { style: { margin: 0, padding: 0 }, children: item.layerType !== "RASTER" ? (vectorLegend()) : showImage ? ((0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("img", { style: { margin: "5px" }, onError: () => setShowImage(false), src: `${mp?.geoserver?.endpoint}/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&WIDTH=20&HEIGHT=20&STRICT=false&layer=biodiv:${item.id}` }) })) : ((0, jsx_runtime_1.jsx)("div", { children: t("raster_style_not_found") })) }));
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/common.tsx"],"names":[],"mappings":""}
|