raain-ui 2.3.7 → 2.3.8
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 +19 -3
- package/README.md +163 -30
- package/data/globe.css +167 -0
- package/factories/DateStatusElement.d.ts +52 -52
- package/factories/DateStatusElement.js +167 -297
- package/factories/DateStatusUtils.d.ts +66 -0
- package/factories/DateStatusUtils.js +257 -0
- package/factories/DynamicDateStatusElement.d.ts +49 -0
- package/factories/DynamicDateStatusElement.js +143 -0
- package/factories/EarthMapElement.d.ts +20 -0
- package/factories/EarthMapElement.js +61 -0
- package/factories/ElementsFactory.d.ts +4 -0
- package/factories/ElementsFactory.js +13 -1
- package/factories/Tools.js +6 -6
- package/factories/index.d.ts +2 -0
- package/factories/index.js +3 -1
- package/globe/basic-style-geojson.d.ts +1327 -0
- package/globe/basic-style-geojson.js +1035 -0
- package/globe/dom.d.ts +2 -0
- package/globe/dom.js +17 -0
- package/globe/infobox.d.ts +11 -0
- package/globe/infobox.js +44 -0
- package/globe/main.d.ts +5 -0
- package/globe/main.js +88 -0
- package/globe/map.d.ts +1 -0
- package/globe/map.js +78 -0
- package/globe/markers.d.ts +13 -0
- package/globe/markers.js +52 -0
- package/globe/params.d.ts +18 -0
- package/globe/params.js +41 -0
- package/globe/reproject.d.ts +4 -0
- package/globe/reproject.js +56 -0
- package/globe/tooltip.d.ts +3 -0
- package/globe/tooltip.js +34 -0
- package/package.json +27 -14
- package/GUIDELINES.md +0 -168
- package/RELEASE_PROCESS.md +0 -92
package/globe/dom.d.ts
ADDED
package/globe/dom.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.newElement = newElement;
|
|
4
|
+
exports.newSVG = newSVG;
|
|
5
|
+
function newElement(tagName, className) {
|
|
6
|
+
const el = document.createElement(tagName);
|
|
7
|
+
if (className !== undefined) {
|
|
8
|
+
el.className = className;
|
|
9
|
+
}
|
|
10
|
+
return el;
|
|
11
|
+
}
|
|
12
|
+
function newSVG(tagName, attributes) {
|
|
13
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', tagName);
|
|
14
|
+
Object.entries(attributes).forEach(([k, v]) => svg.setAttribute(k, v));
|
|
15
|
+
return svg;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dsb2JlL2RvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGdDQU1DO0FBRUQsd0JBSUM7QUFaRCxTQUFnQixVQUFVLENBQUMsT0FBTyxFQUFFLFNBQVU7SUFDMUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQixFQUFFLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3RDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function initInfoBox(globeDiv: any, infoDiv: any): {
|
|
2
|
+
showInfo: () => any;
|
|
3
|
+
hideInfo: () => any;
|
|
4
|
+
destroy: () => any;
|
|
5
|
+
infoCloseButton?: undefined;
|
|
6
|
+
} | {
|
|
7
|
+
showInfo: ([lon, lat]: [any, any]) => void;
|
|
8
|
+
hideInfo: () => void;
|
|
9
|
+
infoCloseButton: any;
|
|
10
|
+
destroy: () => void;
|
|
11
|
+
};
|
package/globe/infobox.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initInfoBox = initInfoBox;
|
|
4
|
+
const dom_1 = require("./dom");
|
|
5
|
+
function initInfoBox(globeDiv, infoDiv) {
|
|
6
|
+
const nullFn = () => null;
|
|
7
|
+
if (!infoDiv) {
|
|
8
|
+
return { showInfo: nullFn, hideInfo: nullFn, destroy: nullFn };
|
|
9
|
+
}
|
|
10
|
+
// Construct a slider div, with coords div and close button in a top bar
|
|
11
|
+
const infoSlider = (0, dom_1.newElement)('div', 'infoslider');
|
|
12
|
+
globeDiv.parentNode.appendChild(infoSlider);
|
|
13
|
+
const topBar = infoSlider.appendChild((0, dom_1.newElement)('div', 'infoTopBar'));
|
|
14
|
+
const coords = topBar.appendChild((0, dom_1.newElement)('span'));
|
|
15
|
+
const infoCloseButton = topBar.appendChild((0, dom_1.newElement)('button'));
|
|
16
|
+
infoCloseButton.appendChild((0, dom_1.newSVG)('svg', { class: 'icon stroke' }))
|
|
17
|
+
.appendChild((0, dom_1.newSVG)('use', { href: '#close' }));
|
|
18
|
+
infoCloseButton.addEventListener('click', hideInfo);
|
|
19
|
+
// Store original position of info div, then wrap it inside the slider div
|
|
20
|
+
const { parentNode, nextSibling } = infoDiv;
|
|
21
|
+
infoSlider.appendChild(infoDiv);
|
|
22
|
+
infoDiv.classList.add('infobox');
|
|
23
|
+
return { showInfo, hideInfo, infoCloseButton, destroy };
|
|
24
|
+
function showInfo([lon, lat]) {
|
|
25
|
+
coords.innerHTML = lon.toFixed(4) + ' ' + lat.toFixed(4);
|
|
26
|
+
infoSlider.classList.add('slid');
|
|
27
|
+
globeDiv.classList.add('shifted');
|
|
28
|
+
}
|
|
29
|
+
function hideInfo() {
|
|
30
|
+
infoSlider.classList.remove('slid');
|
|
31
|
+
globeDiv.classList.remove('shifted');
|
|
32
|
+
}
|
|
33
|
+
function destroy() {
|
|
34
|
+
// Restore info div to original position
|
|
35
|
+
if (nextSibling) {
|
|
36
|
+
parentNode.insertBefore(infoDiv, nextSibling);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
parentNode.appendChild(infoDiv);
|
|
40
|
+
}
|
|
41
|
+
infoSlider.remove();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mb2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iZS9pbmZvYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0NBMkNDO0FBN0NELCtCQUF5QztBQUV6QyxTQUFnQixXQUFXLENBQUMsUUFBUSxFQUFFLE9BQU87SUFDekMsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCx3RUFBd0U7SUFDeEUsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBVSxFQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNuRCxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUEsZ0JBQVUsRUFBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN2RSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsZ0JBQVUsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSxnQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFBLFlBQU0sRUFBQyxLQUFLLEVBQUUsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztTQUM3RCxXQUFXLENBQUMsSUFBQSxZQUFNLEVBQUMsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxlQUFlLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXBELDBFQUEwRTtJQUMxRSxNQUFNLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUMxQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWpDLE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUMsQ0FBQztJQUV0RCxTQUFTLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxTQUFTLFFBQVE7UUFDYixVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxPQUFPO1FBQ1osd0NBQXdDO1FBQ3hDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDZCxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN4QixDQUFDO0FBQ0wsQ0FBQyJ9
|
package/globe/main.d.ts
ADDED
package/globe/main.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.initGlobe = initGlobe;
|
|
37
|
+
const spinningBall = __importStar(require("../utils/spinning-ball-wrapper"));
|
|
38
|
+
const params_1 = require("./params");
|
|
39
|
+
const map_1 = require("./map");
|
|
40
|
+
const tooltip_1 = require("./tooltip");
|
|
41
|
+
const markers_1 = require("./markers");
|
|
42
|
+
const infobox_1 = require("./infobox");
|
|
43
|
+
// CSS is provided separately to allow users to handle it with their own bundler
|
|
44
|
+
// Users should import '../data/globe.css' manually
|
|
45
|
+
function initGlobe(userParams) {
|
|
46
|
+
const params = (0, params_1.setParams)(userParams);
|
|
47
|
+
const { ballParams, globeDiv, infoDiv } = params;
|
|
48
|
+
const ball = spinningBall.init(ballParams);
|
|
49
|
+
return (0, map_1.initMap)(ball, params)
|
|
50
|
+
.then(map => setup(map, ball, globeDiv, infoDiv));
|
|
51
|
+
}
|
|
52
|
+
function setup(map, ball, globeDiv, infoDiv) {
|
|
53
|
+
let requestID;
|
|
54
|
+
const markers = (0, markers_1.initMarkers)(ball, globeDiv);
|
|
55
|
+
const toolTip = (0, tooltip_1.initToolTip)(ball, globeDiv);
|
|
56
|
+
const infoBox = (0, infobox_1.initInfoBox)(globeDiv, infoDiv);
|
|
57
|
+
return Object.assign({}, map, infoBox, {
|
|
58
|
+
startAnimation: () => {
|
|
59
|
+
requestID = requestAnimationFrame(animate);
|
|
60
|
+
},
|
|
61
|
+
stopAnimation: () => cancelAnimationFrame(requestID),
|
|
62
|
+
update, // For requestAnimationFrame loops managed by the parent program
|
|
63
|
+
cameraPos: ball.cameraPos,
|
|
64
|
+
cursorPos: ball.cursorPos,
|
|
65
|
+
isMoving: ball.camMoving,
|
|
66
|
+
wasTapped: ball.wasTapped,
|
|
67
|
+
addMarker: markers.add,
|
|
68
|
+
removeMarker: markers.remove,
|
|
69
|
+
destroy: () => (map.destroy(), infoBox.destroy(), globeDiv.remove()),
|
|
70
|
+
});
|
|
71
|
+
function animate(time) {
|
|
72
|
+
update(time);
|
|
73
|
+
requestID = requestAnimationFrame(animate);
|
|
74
|
+
}
|
|
75
|
+
function update(time) {
|
|
76
|
+
const moving = ball.update(time * 0.001); // Convert time from ms to seconds
|
|
77
|
+
if (moving || map.mapLoaded() < 1.0) {
|
|
78
|
+
map.update(ball.cameraPos());
|
|
79
|
+
}
|
|
80
|
+
if (moving) {
|
|
81
|
+
markers.update();
|
|
82
|
+
}
|
|
83
|
+
if (ball.cursorChanged()) {
|
|
84
|
+
toolTip.update();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iZS9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0EsOEJBWUM7QUF2QkQsNkVBQStEO0FBRS9ELHFDQUFtQztBQUNuQywrQkFBOEI7QUFDOUIsdUNBQXNDO0FBQ3RDLHVDQUFzQztBQUN0Qyx1Q0FBc0M7QUFFdEMsZ0ZBQWdGO0FBQ2hGLG1EQUFtRDtBQUVuRCxTQUFnQixTQUFTLENBQUMsVUFJekI7SUFDRyxNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFTLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsTUFBTSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDLEdBQUcsTUFBTSxDQUFDO0lBRS9DLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0MsT0FBTyxJQUFBLGFBQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPO0lBQ3ZDLElBQUksU0FBUyxDQUFDO0lBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQkFBVyxFQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFBLHFCQUFXLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUEscUJBQVcsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFL0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFO1FBQ25DLGNBQWMsRUFBRSxHQUFHLEVBQUU7WUFDakIsU0FBUyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3BELE1BQU0sRUFBRyxnRUFBZ0U7UUFFekUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztRQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7UUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBRXpCLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRztRQUN0QixZQUFZLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFFNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDdkUsQ0FBQyxDQUFDO0lBRUgsU0FBUyxPQUFPLENBQUMsSUFBSTtRQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixTQUFTLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFNBQVMsTUFBTSxDQUFDLElBQUk7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFFNUUsSUFBSSxNQUFNLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQyJ9
|
package/globe/map.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function initMap(ball: any, params: any): any;
|
package/globe/map.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.initMap = initMap;
|
|
37
|
+
const tileSetter = __importStar(require("tile-setter"));
|
|
38
|
+
const yawgl_1 = require("yawgl");
|
|
39
|
+
const dom_1 = require("./dom");
|
|
40
|
+
const reproject_1 = require("./reproject");
|
|
41
|
+
const basic_style_geojson_1 = require("./basic-style-geojson");
|
|
42
|
+
function initMap(ball, params) {
|
|
43
|
+
const { width, height, mapboxToken, globeDiv } = params;
|
|
44
|
+
const canvas = globeDiv.appendChild((0, dom_1.newElement)('canvas', 'map'));
|
|
45
|
+
const context = (0, yawgl_1.initContext)(canvas);
|
|
46
|
+
const framebuffer = context.initFramebuffer({ width, height });
|
|
47
|
+
const renderer = (0, reproject_1.initReprojection)(ball, context, framebuffer.sampler);
|
|
48
|
+
return tileSetter
|
|
49
|
+
.init({ context, framebuffer, style: basic_style_geojson_1.style, mapboxToken, projScale: true })
|
|
50
|
+
.promise.then(map => setup(map, ball, renderer));
|
|
51
|
+
}
|
|
52
|
+
function setup(map, ball, renderer) {
|
|
53
|
+
let loadStatus = 0;
|
|
54
|
+
return {
|
|
55
|
+
mapLoaded: () => loadStatus,
|
|
56
|
+
select,
|
|
57
|
+
showLayer: (l) => (loadStatus = 0, map.showLayer(l)),
|
|
58
|
+
hideLayer: (l) => (loadStatus = 0, map.hideLayer(l)),
|
|
59
|
+
getZoom: map.getZoom,
|
|
60
|
+
destroy: renderer.destroy,
|
|
61
|
+
update,
|
|
62
|
+
};
|
|
63
|
+
function update(satellitePos) {
|
|
64
|
+
const hNorm = satellitePos[2] / ball.radius();
|
|
65
|
+
const rayTanPerPixel = ball.view.topEdge() * 2 / ball.view.height();
|
|
66
|
+
const dMap = hNorm * rayTanPerPixel * map.projection.scale(satellitePos);
|
|
67
|
+
const k = 1.0 / dMap;
|
|
68
|
+
const zoom = Math.log2(k) - 9;
|
|
69
|
+
map.setCenterZoom(satellitePos, zoom);
|
|
70
|
+
const dzScale = 2 ** (zoom - map.getZoom());
|
|
71
|
+
loadStatus = map.draw({ dzScale });
|
|
72
|
+
renderer.reproject(map, satellitePos);
|
|
73
|
+
}
|
|
74
|
+
function select(layer, radius) {
|
|
75
|
+
return map.select({ layer, point: ball.cursorPos(), radius });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dsb2JlL21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLDBCQVlDO0FBbkJELHdEQUEwQztBQUMxQyxpQ0FBa0M7QUFFbEMsK0JBQWlDO0FBQ2pDLDJDQUE2QztBQUM3QywrREFBMkQ7QUFFM0QsU0FBZ0IsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNO0lBQ2hDLE1BQU0sRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFFdEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFBLGdCQUFVLEVBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBQSxtQkFBVyxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFBLDRCQUFnQixFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXRFLE9BQU8sVUFBVTtTQUNaLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLDJCQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQztTQUM5RSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRO0lBQzlCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVuQixPQUFPO1FBQ0gsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVU7UUFDM0IsTUFBTTtRQUNOLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLE1BQU07S0FDVCxDQUFDO0lBRUYsU0FBUyxNQUFNLENBQUMsWUFBWTtRQUN4QixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEUsTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLGNBQWMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV6RSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTlCLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1QyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFFakMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function initMarkers(globe: any, container: any): {
|
|
2
|
+
add: ({ element, type, position }: {
|
|
3
|
+
element: any;
|
|
4
|
+
type: any;
|
|
5
|
+
position: any;
|
|
6
|
+
}) => {
|
|
7
|
+
element: any;
|
|
8
|
+
position: Float64Array<ArrayBuffer>;
|
|
9
|
+
screenPos: Float64Array<ArrayBuffer>;
|
|
10
|
+
};
|
|
11
|
+
remove: (marker: any) => void;
|
|
12
|
+
update: () => void;
|
|
13
|
+
};
|
package/globe/markers.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initMarkers = initMarkers;
|
|
4
|
+
const dom_1 = require("./dom");
|
|
5
|
+
function initMarkers(globe, container) {
|
|
6
|
+
const markerList = [];
|
|
7
|
+
return {
|
|
8
|
+
add,
|
|
9
|
+
remove,
|
|
10
|
+
update: () => markerList.forEach(setPosition),
|
|
11
|
+
};
|
|
12
|
+
function add({ element, type, position }) {
|
|
13
|
+
const [lon, lat, alt = 0.0] = position;
|
|
14
|
+
const marker = {
|
|
15
|
+
element: container.appendChild(getMarkerElement(element, type)),
|
|
16
|
+
position: new Float64Array([lon, lat, alt]),
|
|
17
|
+
screenPos: new Float64Array(2),
|
|
18
|
+
};
|
|
19
|
+
setPosition(marker);
|
|
20
|
+
// Add to the list, and return the pointer to the user
|
|
21
|
+
markerList.push(marker);
|
|
22
|
+
return marker;
|
|
23
|
+
}
|
|
24
|
+
function getMarkerElement(element, type) {
|
|
25
|
+
const validNodeNames = ['DIV', 'div', 'IMG', 'img', 'SVG', 'svg'];
|
|
26
|
+
return (element && validNodeNames.includes(element.nodeName))
|
|
27
|
+
? element
|
|
28
|
+
: createSVG(type);
|
|
29
|
+
}
|
|
30
|
+
function createSVG(type = 'marker') {
|
|
31
|
+
const svg = (0, dom_1.newSVG)('svg', { class: type });
|
|
32
|
+
svg.appendChild((0, dom_1.newSVG)('use', { href: '#' + type }));
|
|
33
|
+
return svg;
|
|
34
|
+
}
|
|
35
|
+
function remove(marker) {
|
|
36
|
+
const index = markerList.indexOf(marker);
|
|
37
|
+
if (index < 0) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
container.removeChild(marker.element);
|
|
41
|
+
markerList.splice(index, 1);
|
|
42
|
+
}
|
|
43
|
+
function setPosition(marker) {
|
|
44
|
+
const visible = globe.project(marker.screenPos, marker.position);
|
|
45
|
+
Object.assign(marker.element.style, {
|
|
46
|
+
display: (visible) ? 'inline-block' : 'none',
|
|
47
|
+
left: marker.screenPos[0] + 'px',
|
|
48
|
+
top: marker.screenPos[1] + 'px',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iZS9tYXJrZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0NBdURDO0FBekRELCtCQUE2QjtBQUU3QixTQUFnQixXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVM7SUFDeEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRXRCLE9BQU87UUFDSCxHQUFHO1FBQ0gsTUFBTTtRQUNOLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUNoRCxDQUFDO0lBRUYsU0FBUyxHQUFHLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHO1lBQ1gsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9ELFFBQVEsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQztTQUNqQyxDQUFDO1FBQ0YsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLHNEQUFzRDtRQUN0RCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxTQUFTLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJO1FBQ25DLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRSxPQUFPLENBQUMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsSUFBSSxHQUFHLFFBQVE7UUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBQSxZQUFNLEVBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDekMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFBLFlBQU0sRUFBQyxLQUFLLEVBQUUsRUFBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDWixPQUFPO1FBQ1gsQ0FBQztRQUVELFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUFNO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNoQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQzVDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7WUFDaEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSTtTQUNsQyxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQyJ9
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function setParams(userParams: any): {
|
|
2
|
+
style: any;
|
|
3
|
+
mapboxToken: any;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
globeDiv: any;
|
|
7
|
+
infoDiv: Element;
|
|
8
|
+
ballParams: {
|
|
9
|
+
display: any;
|
|
10
|
+
position: any[];
|
|
11
|
+
minLongitude: any;
|
|
12
|
+
minLatitude: any;
|
|
13
|
+
minAltitude: any;
|
|
14
|
+
maxLongitude: any;
|
|
15
|
+
maxLatitude: any;
|
|
16
|
+
maxAltitude: any;
|
|
17
|
+
};
|
|
18
|
+
};
|
package/globe/params.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setParams = setParams;
|
|
4
|
+
const dom_1 = require("./dom");
|
|
5
|
+
function setParams(userParams) {
|
|
6
|
+
// Get the containing DIV element, and set its CSS class
|
|
7
|
+
const container = (typeof userParams.container === 'string')
|
|
8
|
+
? document.getElementById(userParams.container)
|
|
9
|
+
: userParams.container;
|
|
10
|
+
if (!(container.style)) {
|
|
11
|
+
fail('missing container element');
|
|
12
|
+
}
|
|
13
|
+
container.classList.add('globe');
|
|
14
|
+
if (container.clientWidth <= 64 || container.clientHeight <= 64) {
|
|
15
|
+
fail('container must be at least 64x64 pixels');
|
|
16
|
+
}
|
|
17
|
+
// Add Elements for globe interface, svg sprite
|
|
18
|
+
const globeDiv = container.appendChild((0, dom_1.newElement)('div', 'main'));
|
|
19
|
+
// globeDiv.insertAdjacentHTML('afterbegin', sprite);
|
|
20
|
+
// Get user-supplied parameters
|
|
21
|
+
const { style, mapboxToken, width: rawWidth = globeDiv.clientWidth + 512, height: rawHeight = globeDiv.clientHeight + 512, center = [0.0, 0.0], altitude = 20000, infobox, minLongitude, minLatitude, minAltitude, maxLongitude, maxLatitude, maxAltitude, } = userParams;
|
|
22
|
+
// Get the DIV element for the infobox, if supplied
|
|
23
|
+
const infoDiv = (typeof infobox === 'string' && infobox.length)
|
|
24
|
+
? document.getElementById(infobox)
|
|
25
|
+
: (infobox instanceof Element) ? infobox : null;
|
|
26
|
+
// Force width >= height, and both powers of 2
|
|
27
|
+
const nextPowerOf2 = v => 2 ** Math.ceil(Math.log2(v));
|
|
28
|
+
const height = nextPowerOf2(rawHeight);
|
|
29
|
+
const width = Math.max(nextPowerOf2(rawWidth), height);
|
|
30
|
+
const ballParams = {
|
|
31
|
+
display: globeDiv,
|
|
32
|
+
position: [center[0], center[1], altitude],
|
|
33
|
+
minLongitude, minLatitude, minAltitude,
|
|
34
|
+
maxLongitude, maxLatitude, maxAltitude,
|
|
35
|
+
};
|
|
36
|
+
return { style, mapboxToken, width, height, globeDiv, infoDiv, ballParams };
|
|
37
|
+
}
|
|
38
|
+
function fail(message) {
|
|
39
|
+
throw Error('globe: ' + message);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dsb2JlL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDhCQStDQztBQWpERCwrQkFBaUM7QUFFakMsU0FBZ0IsU0FBUyxDQUFDLFVBQVU7SUFDaEMsd0RBQXdEO0lBQ3hELE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxVQUFVLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztRQUN4RCxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQzNCLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRSxJQUFJLFNBQVMsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELCtDQUErQztJQUMvQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUEsZ0JBQVUsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRSxxREFBcUQ7SUFFckQsK0JBQStCO0lBQy9CLE1BQU0sRUFDRixLQUFLLEVBQUUsV0FBVyxFQUNsQixLQUFLLEVBQUUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUM1QyxNQUFNLEVBQUUsU0FBUyxHQUFHLFFBQVEsQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUMvQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ25CLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLE9BQU8sRUFDUCxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFDdEMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEdBQ3pDLEdBQUcsVUFBVSxDQUFDO0lBRWYsbURBQW1EO0lBQ25ELE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDM0QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDLE9BQU8sWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFcEQsOENBQThDO0lBQzlDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV2RCxNQUFNLFVBQVUsR0FBRztRQUNmLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQzFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVztRQUN0QyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVc7S0FDekMsQ0FBQztJQUVGLE9BQU8sRUFBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsT0FBTztJQUNqQixNQUFNLEtBQUssQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDckMsQ0FBQyJ9
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.initReprojection = initReprojection;
|
|
37
|
+
const satelliteView = __importStar(require("satellite-view"));
|
|
38
|
+
function initReprojection(ball, context, sampler) {
|
|
39
|
+
const camPos = new Float64Array([0.5, 0.5]);
|
|
40
|
+
const scale = new Float64Array(2);
|
|
41
|
+
const satView = satelliteView.init({
|
|
42
|
+
context,
|
|
43
|
+
map: { sampler, camPos, scale },
|
|
44
|
+
globeRadius: ball.radius(),
|
|
45
|
+
flipY: false,
|
|
46
|
+
units: 'degrees',
|
|
47
|
+
});
|
|
48
|
+
function reproject(map, satellitePos) {
|
|
49
|
+
scale.set(map.getScale());
|
|
50
|
+
camPos.set(map.getCamPos());
|
|
51
|
+
context.updateMips(sampler);
|
|
52
|
+
satView.draw(satellitePos, ball.view.maxRay);
|
|
53
|
+
}
|
|
54
|
+
return { reproject, destroy: satView.destroy };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dsb2JlL3JlcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDRDQW9CQztBQXRCRCw4REFBZ0Q7QUFFaEQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztRQUNqQyxPQUFPO1FBQ1AsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7UUFDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDMUIsS0FBSyxFQUFFLEtBQUs7UUFDWixLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDLENBQUM7SUFFSCxTQUFTLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWTtRQUNsQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDakQsQ0FBQyJ9
|
package/globe/tooltip.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initToolTip = initToolTip;
|
|
4
|
+
const dom_1 = require("./dom");
|
|
5
|
+
function initToolTip(ball, globeDiv) {
|
|
6
|
+
const toolTip = globeDiv.appendChild((0, dom_1.newElement)('div', 'status'));
|
|
7
|
+
function update() {
|
|
8
|
+
const cameraPos = ball.cameraPos();
|
|
9
|
+
const alt = cameraPos[2].toPrecision(5);
|
|
10
|
+
const lat = cameraPos.latitude;
|
|
11
|
+
const lng = cameraPos.longitude;
|
|
12
|
+
toolTip.innerHTML = alt + 'km ' + lonLatString(lng, lat);
|
|
13
|
+
}
|
|
14
|
+
return { update };
|
|
15
|
+
}
|
|
16
|
+
function lonLatString(longitude, latitude) {
|
|
17
|
+
const ew = (longitude < 0.0) ? 'W' : 'E';
|
|
18
|
+
const lonString = degMinSec(longitude) + ew;
|
|
19
|
+
const ns = (latitude < 0.0) ? 'S' : 'N';
|
|
20
|
+
const latString = degMinSec(latitude) + ns;
|
|
21
|
+
return lonString + latString;
|
|
22
|
+
}
|
|
23
|
+
function degMinSec(degrees) {
|
|
24
|
+
const deg = Math.abs(degrees);
|
|
25
|
+
const min = 60.0 * (deg - Math.floor(deg));
|
|
26
|
+
const sec = 60.0 * (min - Math.floor(min));
|
|
27
|
+
// Combine into fixed-width string
|
|
28
|
+
const iStr = f => Math.floor(f).toString();
|
|
29
|
+
const d = iStr(deg).padStart(3, ' ').replace(/ /g, ' ') + '°';
|
|
30
|
+
const m = iStr(min).padStart(2, '0') + '\'';
|
|
31
|
+
const s = iStr(sec).padStart(2, '0') + '"';
|
|
32
|
+
return d + m + s;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iZS90b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0NBWUM7QUFkRCwrQkFBaUM7QUFFakMsU0FBZ0IsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBQSxnQkFBVSxFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWxFLFNBQVMsTUFBTTtRQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUNoQyxPQUFPLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxTQUFTLEVBQUUsUUFBUTtJQUNyQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDekMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUU1QyxNQUFNLEVBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDeEMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUUzQyxPQUFPLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU87SUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFM0Msa0NBQWtDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUN4RSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDNUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBRTNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckIsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "raain-ui",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.8",
|
|
4
4
|
"author": "contact@raain.io",
|
|
5
5
|
"homepage": "https://github.com/raainio/raain-ui",
|
|
6
6
|
"description": "raain.io ui layers",
|
|
@@ -12,26 +12,45 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"main": "./index.js",
|
|
14
14
|
"types": "./index.d.ts",
|
|
15
|
-
"
|
|
15
|
+
"peerDependencies": {
|
|
16
16
|
"chart.js": "^4.4.7",
|
|
17
|
-
"chartjs-chart-geo": "^4.3.4",
|
|
18
17
|
"chartjs-plugin-dragdata": "^2.3.1",
|
|
19
|
-
"geolib": "^3.3.4",
|
|
20
18
|
"leaflet": "^1.9.4",
|
|
21
19
|
"pixi.js": "^5.3.12",
|
|
22
|
-
"raain-model": "^
|
|
20
|
+
"raain-model": "^3.0.9"
|
|
23
21
|
},
|
|
24
|
-
"
|
|
22
|
+
"scripts": {
|
|
23
|
+
"bp:_clean": "rm -rf package-lock.json node_modules .gen .logs .nyc_output .logs .output.txt .coverage .coverage_temp dist app && npm i",
|
|
24
|
+
"bp:bump": "OLD_VERSION=\"v$(node -e \"console.log(require('./package.json').version)\")\" && VERSION=\"$(npm version patch --no-git-tag-version)\" && npm i && echo \"export const bpInfo={version:'$VERSION'}\" > ./src/bpInfo.ts && git tag $OLD_VERSION && git checkout -b $VERSION",
|
|
25
|
+
"bp:update-changelog": "node ./scripts/bp/update-changelog-date.js",
|
|
26
|
+
"bp:use-local-deps": "node ./scripts/bp/switch-dependencies.js local && npm run bp:_clean",
|
|
27
|
+
"bp:use-remote-deps": "node ./scripts/bp/switch-dependencies.js remote && npm run bp:_clean",
|
|
28
|
+
"bp:branch:push": "git add . && git commit -m \"chore: release v$(node -p \"require('./package.json').version\")\" && git push",
|
|
29
|
+
"bp:branch:squash": "node ./scripts/bp/squash-commits.js",
|
|
30
|
+
"test": "nyc ./node_modules/.bin/_mocha --require ./tools/register.js 'specs/**/**.spec.ts'",
|
|
31
|
+
"build": "npm run build-dist",
|
|
32
|
+
"build-dist": "rm -rf dist/ && tsc --project tsconfig.json && cp *.md dist/ && cp package.json dist/ && cp -r src/data dist/"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
25
35
|
"chart.js": "^4.4.7",
|
|
36
|
+
"chartjs-chart-geo": "^4.3.4",
|
|
26
37
|
"chartjs-plugin-dragdata": "^2.3.1",
|
|
38
|
+
"geolib": "^3.3.4",
|
|
27
39
|
"leaflet": "^1.9.4",
|
|
28
40
|
"pixi.js": "^5.3.12",
|
|
29
|
-
"raain-model": "^
|
|
41
|
+
"raain-model": "^3.0.9",
|
|
42
|
+
"satellite-view": "^2.1.2",
|
|
43
|
+
"spinning-ball": "^0.5.0",
|
|
44
|
+
"tile-setter": "^0.1.12",
|
|
45
|
+
"yawgl": "^0.4.3"
|
|
30
46
|
},
|
|
31
47
|
"devDependencies": {
|
|
32
48
|
"@testdeck/mocha": "^0.3.3",
|
|
49
|
+
"@types/chai": "^5.2.1",
|
|
50
|
+
"@types/jsdom": "^21.1.7",
|
|
33
51
|
"@types/leaflet": "^1.9.3",
|
|
34
52
|
"@types/mocha": "^10.0.1",
|
|
53
|
+
"@types/sinon": "^17.0.4",
|
|
35
54
|
"assert": "^2.0.0",
|
|
36
55
|
"chai": "4.3.4",
|
|
37
56
|
"chai-as-promised": "^7.1.1",
|
|
@@ -40,16 +59,10 @@
|
|
|
40
59
|
"mocha": "^10.2.0",
|
|
41
60
|
"mock-browser": "^0.92.14",
|
|
42
61
|
"nyc": "^15.1.0",
|
|
62
|
+
"sinon": "^15.2.0",
|
|
43
63
|
"ts-mockito": "^2.6.1",
|
|
44
64
|
"ts-node": "^8.3.0",
|
|
45
65
|
"tslint": "^5.20.1",
|
|
46
66
|
"typescript": "^5.0.3"
|
|
47
|
-
},
|
|
48
|
-
"scripts": {
|
|
49
|
-
"_clean": "rm -rf .gen .logs .nyc_output .coverage dist node_modules package-lock.json && npm i",
|
|
50
|
-
"test": "nyc ./node_modules/.bin/_mocha --require ./tools/register.js 'specs/**/**.spec.ts'",
|
|
51
|
-
"build": "npm run build-dist",
|
|
52
|
-
"build-version": "VERSION=\"$(npm version patch --no-git-tag-version)\"",
|
|
53
|
-
"build-dist": "rm -rf dist/ && tsc --project tsconfig.json && cp *.md dist/ && cp package.json dist/"
|
|
54
67
|
}
|
|
55
68
|
}
|