@mapcomponents/react-maplibre 0.1.90 → 0.1.91
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/CHANGELOG.md +13 -1
- package/dist/index.esm.js +2 -139
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
## [v0.1.
|
|
3
|
+
## [v0.1.91] - 2024-01-16
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- 4775728: remove mbtiles protocol handler from build to fix sql.js error
|
|
8
|
+
|
|
9
|
+
## [v0.1.90] - 2024-01-16 (broken)
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- f40622f: fix build error suggesting marking sql.js as external
|
|
14
|
+
|
|
15
|
+
## [v0.1.89] - 2024-01-02 (broken)
|
|
4
16
|
|
|
5
17
|
### Fixed
|
|
6
18
|
|
package/dist/index.esm.js
CHANGED
|
@@ -68,8 +68,6 @@ var csv2geojson = require('csv2geojson');
|
|
|
68
68
|
var topojsonClient = require('topojson-client');
|
|
69
69
|
var osm2geojson = require('osm2geojson-lite');
|
|
70
70
|
var externParser = require('@tmcw/togeojson');
|
|
71
|
-
var initSqlJs = require('sql.js');
|
|
72
|
-
var pako = require('pako');
|
|
73
71
|
var KeyboardArrowDownIcon = require('@mui/icons-material/KeyboardArrowDown');
|
|
74
72
|
var KeyboardArrowUpIcon = require('@mui/icons-material/KeyboardArrowUp');
|
|
75
73
|
var AppBar = require('@mui/material/AppBar');
|
|
@@ -161,8 +159,6 @@ var IndeterminateCheckBoxIcon__default = /*#__PURE__*/_interopDefaultLegacy(Inde
|
|
|
161
159
|
var csv2geojson__namespace = /*#__PURE__*/_interopNamespace(csv2geojson);
|
|
162
160
|
var osm2geojson__default = /*#__PURE__*/_interopDefaultLegacy(osm2geojson);
|
|
163
161
|
var externParser__namespace = /*#__PURE__*/_interopNamespace(externParser);
|
|
164
|
-
var initSqlJs__default = /*#__PURE__*/_interopDefaultLegacy(initSqlJs);
|
|
165
|
-
var pako__namespace = /*#__PURE__*/_interopNamespace(pako);
|
|
166
162
|
var KeyboardArrowDownIcon__default = /*#__PURE__*/_interopDefaultLegacy(KeyboardArrowDownIcon);
|
|
167
163
|
var KeyboardArrowUpIcon__default = /*#__PURE__*/_interopDefaultLegacy(KeyboardArrowUpIcon);
|
|
168
164
|
var AppBar__default = /*#__PURE__*/_interopDefaultLegacy(AppBar);
|
|
@@ -7777,128 +7773,6 @@ var XMLProtocolHandler = function (params, callback) {
|
|
|
7777
7773
|
return { cancel: function () { } };
|
|
7778
7774
|
};
|
|
7779
7775
|
|
|
7780
|
-
var loadedMbtiles = {};
|
|
7781
|
-
var parseTileParams = function (url) {
|
|
7782
|
-
var urlParts = url.split('://');
|
|
7783
|
-
var mbtilesUrl = urlParts.length > 2 ? urlParts[1] + '://' + urlParts[2] : urlParts[1];
|
|
7784
|
-
var mbtilesParts = mbtilesUrl.split('/');
|
|
7785
|
-
var mbtilesPartsLength = mbtilesParts.length;
|
|
7786
|
-
var y = mbtilesParts.splice(mbtilesPartsLength - 1, 1)[0];
|
|
7787
|
-
var x = mbtilesParts.splice(mbtilesPartsLength - 2, 1)[0];
|
|
7788
|
-
var z = mbtilesParts.splice(mbtilesPartsLength - 3, 1)[0];
|
|
7789
|
-
var filename = mbtilesParts.join('/');
|
|
7790
|
-
return {
|
|
7791
|
-
filename: filename,
|
|
7792
|
-
z: z,
|
|
7793
|
-
x: x,
|
|
7794
|
-
y: y,
|
|
7795
|
-
};
|
|
7796
|
-
};
|
|
7797
|
-
// mbtiles files are sqlite databases. This function loads the database and returns a handler
|
|
7798
|
-
// to work with sqlite databases in javascript we need to use sql.js.
|
|
7799
|
-
// to make this work in your project make sure to copy sql-wasm.wasm to the file root of your public folder and
|
|
7800
|
-
// add the following config to the externals prop of your webpack config
|
|
7801
|
-
// {externals: { fs: 'fs' }};
|
|
7802
|
-
var getMbtilesDbHandler = function (_a) {
|
|
7803
|
-
var filename = _a.filename;
|
|
7804
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
7805
|
-
var SQL, fetched, buf, db;
|
|
7806
|
-
return __generator(this, function (_b) {
|
|
7807
|
-
switch (_b.label) {
|
|
7808
|
-
case 0:
|
|
7809
|
-
if (!!loadedMbtiles[filename]) return [3 /*break*/, 4];
|
|
7810
|
-
return [4 /*yield*/, initSqlJs__default["default"]()];
|
|
7811
|
-
case 1:
|
|
7812
|
-
SQL = _b.sent();
|
|
7813
|
-
return [4 /*yield*/, fetch(filename)];
|
|
7814
|
-
case 2:
|
|
7815
|
-
fetched = _b.sent();
|
|
7816
|
-
return [4 /*yield*/, fetched.arrayBuffer()];
|
|
7817
|
-
case 3:
|
|
7818
|
-
buf = _b.sent();
|
|
7819
|
-
db = new SQL.Database(new Uint8Array(buf));
|
|
7820
|
-
loadedMbtiles[filename] = db;
|
|
7821
|
-
_b.label = 4;
|
|
7822
|
-
case 4: return [2 /*return*/, loadedMbtiles[filename]];
|
|
7823
|
-
}
|
|
7824
|
-
});
|
|
7825
|
-
});
|
|
7826
|
-
};
|
|
7827
|
-
/**
|
|
7828
|
-
* Example usage:
|
|
7829
|
-
* getBufferFromMbtiles({ filename: 'mbtiles/countries.mbtiles', z: '0', x: '0', y: '0' }).then(
|
|
7830
|
-
* (result) => {
|
|
7831
|
-
* console.log(result);
|
|
7832
|
-
* }
|
|
7833
|
-
* );
|
|
7834
|
-
*/
|
|
7835
|
-
function getBufferFromMbtiles(params) {
|
|
7836
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
7837
|
-
var db, query;
|
|
7838
|
-
return __generator(this, function (_a) {
|
|
7839
|
-
switch (_a.label) {
|
|
7840
|
-
case 0: return [4 /*yield*/, getMbtilesDbHandler(params)];
|
|
7841
|
-
case 1:
|
|
7842
|
-
db = _a.sent();
|
|
7843
|
-
query = 'SELECT tile_data FROM tiles WHERE zoom_level = ' +
|
|
7844
|
-
params.z +
|
|
7845
|
-
' AND tile_column = ' +
|
|
7846
|
-
params.x +
|
|
7847
|
-
' AND tile_row = ' +
|
|
7848
|
-
(Math.pow(2, parseInt(params.z)) - parseInt(params.y) - 1);
|
|
7849
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
7850
|
-
try {
|
|
7851
|
-
// some of the logic here was heavily inspired by
|
|
7852
|
-
// https://github.com/IsraelHikingMap/Site/blob/6aa2ec0cfb8891fa048b1d9e2a4fc7d4cbcc8c97/IsraelHiking.Web/src/application/services/database.service.ts
|
|
7853
|
-
var result = db.exec(query);
|
|
7854
|
-
if (result.length !== 1) {
|
|
7855
|
-
reject(new Error('Tile not found.'));
|
|
7856
|
-
return;
|
|
7857
|
-
}
|
|
7858
|
-
var resultData = result[0].values[0][0];
|
|
7859
|
-
var binData = void 0;
|
|
7860
|
-
var isGzipped = resultData[0] === 0x1f && resultData[1] === 0x8b;
|
|
7861
|
-
if (isGzipped) {
|
|
7862
|
-
binData = pako__namespace.inflate(resultData);
|
|
7863
|
-
}
|
|
7864
|
-
else {
|
|
7865
|
-
binData = resultData;
|
|
7866
|
-
}
|
|
7867
|
-
if (binData === null || binData === void 0 ? void 0 : binData.buffer) {
|
|
7868
|
-
resolve(binData.buffer);
|
|
7869
|
-
}
|
|
7870
|
-
else {
|
|
7871
|
-
reject(new Error('Tile not found.'));
|
|
7872
|
-
return;
|
|
7873
|
-
}
|
|
7874
|
-
}
|
|
7875
|
-
catch (error) {
|
|
7876
|
-
reject(error);
|
|
7877
|
-
}
|
|
7878
|
-
})];
|
|
7879
|
-
}
|
|
7880
|
-
});
|
|
7881
|
-
});
|
|
7882
|
-
}
|
|
7883
|
-
/**
|
|
7884
|
-
* Expects a tile url in the following format:
|
|
7885
|
-
*
|
|
7886
|
-
* 'mbtiles://mbtiles/countries.mbtiles/{z}/{x}/{y}'
|
|
7887
|
-
*/
|
|
7888
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7889
|
-
var mbTilesProtocolHandler = function (params, callback) {
|
|
7890
|
-
var parsedParams = parseTileParams(params.url);
|
|
7891
|
-
getBufferFromMbtiles(parsedParams).then(function (result) {
|
|
7892
|
-
if (result) {
|
|
7893
|
-
callback(null, result, null, null);
|
|
7894
|
-
}
|
|
7895
|
-
else {
|
|
7896
|
-
callback(new Error('Tile not found'));
|
|
7897
|
-
}
|
|
7898
|
-
});
|
|
7899
|
-
return { cancel: function () { } };
|
|
7900
|
-
};
|
|
7901
|
-
|
|
7902
7776
|
var handlers = {
|
|
7903
7777
|
csv: CSVProtocolHandler,
|
|
7904
7778
|
topojson: TopojsonProtocolHandler,
|
|
@@ -7906,7 +7780,7 @@ var handlers = {
|
|
|
7906
7780
|
gpx: XMLProtocolHandler,
|
|
7907
7781
|
kml: XMLProtocolHandler,
|
|
7908
7782
|
tcx: XMLProtocolHandler,
|
|
7909
|
-
mbtiles: mbTilesProtocolHandler
|
|
7783
|
+
//mbtiles: mbTilesProtocolHandler
|
|
7910
7784
|
};
|
|
7911
7785
|
var types = ['fill', 'line', 'circle'];
|
|
7912
7786
|
function ProtocolHandlerLayerForm(props) {
|
|
@@ -8152,19 +8026,12 @@ var AddLayerPopup = function (props) {
|
|
|
8152
8026
|
};
|
|
8153
8027
|
AddLayerPopup.defaultProps = {};
|
|
8154
8028
|
|
|
8155
|
-
function AddProtocol(props) {
|
|
8156
|
-
useAddProtocol({
|
|
8157
|
-
protocol: props.protocol,
|
|
8158
|
-
handler: props.handler,
|
|
8159
|
-
});
|
|
8160
|
-
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
8161
|
-
}
|
|
8162
8029
|
var AddLayerButton = function (props) {
|
|
8163
8030
|
var _a = React__default["default"].useState(false), popupOpen = _a[0], setPopupOpen = _a[1];
|
|
8164
8031
|
var layerTypes = props.layerTypes || [
|
|
8165
8032
|
'geojson',
|
|
8166
8033
|
'wms',
|
|
8167
|
-
'mbtiles',
|
|
8034
|
+
//'mbtiles',
|
|
8168
8035
|
'csv',
|
|
8169
8036
|
'topojson',
|
|
8170
8037
|
'osm',
|
|
@@ -8173,10 +8040,6 @@ var AddLayerButton = function (props) {
|
|
|
8173
8040
|
'tcx',
|
|
8174
8041
|
];
|
|
8175
8042
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
8176
|
-
layerTypes.includes('mbtiles') && (React__default["default"].createElement(AddProtocol, __assign({}, {
|
|
8177
|
-
protocol: 'mbtiles',
|
|
8178
|
-
handler: mbTilesProtocolHandler,
|
|
8179
|
-
}))),
|
|
8180
8043
|
React__default["default"].createElement(material.Button, { variant: "contained", sx: __assign({ marginTop: '10px' }, props.sx), onClick: function () { return setPopupOpen(true); } },
|
|
8181
8044
|
React__default["default"].createElement(PlaylistAddIcon__default["default"], null)),
|
|
8182
8045
|
React__default["default"].createElement(AddLayerPopup, { open: popupOpen, setOpen: setPopupOpen, onComplete: props === null || props === void 0 ? void 0 : props.onComplete, layerTypes: layerTypes })));
|