kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
98 lines (97 loc) • 18.9 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireDefault(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _d3Shape = require("d3-shape");
var _localization = require("@kepler.gl/localization");
var _exampleTable = _interopRequireDefault(require("../example-table"));
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
var CenterFlexbox = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n"])));
var lineFunction = (0, _d3Shape.line)().x(function (d) {
return d[0] * 10;
}).y(function (d) {
return d[1] * 10;
});
var IconShape = function IconShape(_ref) {
var mesh = _ref.mesh;
return /*#__PURE__*/_react["default"].createElement("svg", {
className: "icon-table__item__shape",
width: "20px",
height: "20px"
}, /*#__PURE__*/_react["default"].createElement("g", {
transform: "translate(10, 10)"
}, mesh.cells.map(function (cell, i) {
return /*#__PURE__*/_react["default"].createElement("path", {
key: i,
fill: "#000000",
d: lineFunction(cell.map(function (idx) {
return mesh.positions[idx];
}))
});
})));
};
var StyledIconItem = (0, _styledComponents["default"])(CenterFlexbox)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding-left: 6px;\n width: 180px;\n height: 48px;\n margin-right: 12px;\n\n .icon-table_item__name {\n margin-left: 12px;\n }\n"])));
var StyledCode = _styledComponents["default"].code(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n"])), function (props) {
return props.theme.titleColorLT;
});
var StyledTitle = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 20px;\n letter-spacing: 1.25px;\n margin: 18px 0 14px 0;\n color: ", ";\n"])), function (props) {
return props.theme.titleColorLT;
});
var IconItem = function IconItem(_ref2) {
var _ref2$icon = _ref2.icon,
id = _ref2$icon.id,
mesh = _ref2$icon.mesh;
return /*#__PURE__*/_react["default"].createElement(StyledIconItem, {
className: "icon-table__item"
}, /*#__PURE__*/_react["default"].createElement(IconShape, {
mesh: mesh
}), /*#__PURE__*/_react["default"].createElement("div", {
className: "icon-table_item__name"
}, /*#__PURE__*/_react["default"].createElement(StyledCode, null, id)));
};
var ExampleTable = function ExampleTable() {
return /*#__PURE__*/_react["default"].createElement(_exampleTable["default"], {
className: "icon-example-table"
}, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "point_lat"), /*#__PURE__*/_react["default"].createElement("th", null, "point_lng"), /*#__PURE__*/_react["default"].createElement("th", null, "icon"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "37.769897"), /*#__PURE__*/_react["default"].createElement("td", null, "-122.41168"), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(StyledCode, null, "android"))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "37.806928"), /*#__PURE__*/_react["default"].createElement("td", null, "-122.40218"), /*#__PURE__*/_react["default"].createElement("td", null)), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "37.778564"), /*#__PURE__*/_react["default"].createElement("td", null, "-122.39096"), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(StyledCode, null, "calendar"))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "37.745995"), /*#__PURE__*/_react["default"].createElement("td", null, "-122.30220"), /*#__PURE__*/_react["default"].createElement("td", null)), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "37.329841"), /*#__PURE__*/_react["default"].createElement("td", null, "-122.103847"), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(StyledCode, null, "control-off")))));
};
var IconTable = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n"])));
var IconInfoModalFactory = function IconInfoModalFactory() {
var svgIcons = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var IconInfoModal = function IconInfoModal() {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "icon-info-modal"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "icon-info-modal__description"
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: 'modal.iconInfo.description1'
}), ' ', /*#__PURE__*/_react["default"].createElement("code", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: 'modal.iconInfo.code'
})), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: 'modal.iconInfo.description2'
})), /*#__PURE__*/_react["default"].createElement("div", {
className: "icon-info-modal__example"
}, /*#__PURE__*/_react["default"].createElement(StyledTitle, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: 'modal.iconInfo.example'
})), /*#__PURE__*/_react["default"].createElement(ExampleTable, null)), /*#__PURE__*/_react["default"].createElement("div", {
className: "icon-info-modal__icons"
}, /*#__PURE__*/_react["default"].createElement(StyledTitle, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: 'modal.iconInfo.icons'
})), /*#__PURE__*/_react["default"].createElement(IconTable, {
className: "icon-info-modal__icons__table"
}, svgIcons.map(function (icon) {
return /*#__PURE__*/_react["default"].createElement(IconItem, {
key: icon.id,
icon: icon
});
}))));
};
return IconInfoModal;
};
var _default = exports["default"] = IconInfoModalFactory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2QzU2hhcGUiLCJfbG9jYWxpemF0aW9uIiwiX2V4YW1wbGVUYWJsZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJDZW50ZXJGbGV4Ym94Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJsaW5lRnVuY3Rpb24iLCJsaW5lIiwieCIsImQiLCJ5IiwiSWNvblNoYXBlIiwiX3JlZiIsIm1lc2giLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwid2lkdGgiLCJoZWlnaHQiLCJ0cmFuc2Zvcm0iLCJjZWxscyIsIm1hcCIsImNlbGwiLCJpIiwia2V5IiwiZmlsbCIsImlkeCIsInBvc2l0aW9ucyIsIlN0eWxlZEljb25JdGVtIiwiU3R5bGVkQ29kZSIsImNvZGUiLCJwcm9wcyIsInRoZW1lIiwidGl0bGVDb2xvckxUIiwiU3R5bGVkVGl0bGUiLCJJY29uSXRlbSIsIl9yZWYyIiwiX3JlZjIkaWNvbiIsImljb24iLCJpZCIsIkV4YW1wbGVUYWJsZSIsIkljb25UYWJsZSIsIkljb25JbmZvTW9kYWxGYWN0b3J5Iiwic3ZnSWNvbnMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJJY29uSW5mb01vZGFsIiwiRm9ybWF0dGVkTWVzc2FnZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pY29uLWxheWVyL2ljb24taW5mby1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtsaW5lfSBmcm9tICdkMy1zaGFwZSc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IFRhYmxlIGZyb20gJy4uL2V4YW1wbGUtdGFibGUnO1xuXG5jb25zdCBDZW50ZXJGbGV4Ym94ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IGxpbmVGdW5jdGlvbiA9IGxpbmUoKVxuICAueChkID0+IGRbMF0gKiAxMClcbiAgLnkoZCA9PiBkWzFdICogMTApO1xuXG5jb25zdCBJY29uU2hhcGUgPSAoe21lc2h9KSA9PiAoXG4gIDxzdmcgY2xhc3NOYW1lPVwiaWNvbi10YWJsZV9faXRlbV9fc2hhcGVcIiB3aWR0aD1cIjIwcHhcIiBoZWlnaHQ9XCIyMHB4XCI+XG4gICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwLCAxMClcIj5cbiAgICAgIHttZXNoLmNlbGxzLm1hcCgoY2VsbCwgaSkgPT4gKFxuICAgICAgICA8cGF0aCBrZXk9e2l9IGZpbGw9XCIjMDAwMDAwXCIgZD17bGluZUZ1bmN0aW9uKGNlbGwubWFwKGlkeCA9PiBtZXNoLnBvc2l0aW9uc1tpZHhdKSl9IC8+XG4gICAgICApKX1cbiAgICA8L2c+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgU3R5bGVkSWNvbkl0ZW0gPSBzdHlsZWQoQ2VudGVyRmxleGJveClgXG4gIHBhZGRpbmctbGVmdDogNnB4O1xuICB3aWR0aDogMTgwcHg7XG4gIGhlaWdodDogNDhweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuXG4gIC5pY29uLXRhYmxlX2l0ZW1fX25hbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRDb2RlID0gc3R5bGVkLmNvZGVgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRpdGxlQ29sb3JMVH07XG5gO1xuXG5jb25zdCBTdHlsZWRUaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMjVweDtcbiAgbWFyZ2luOiAxOHB4IDAgMTRweCAwO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50aXRsZUNvbG9yTFR9O1xuYDtcblxuY29uc3QgSWNvbkl0ZW0gPSAoe2ljb246IHtpZCwgbWVzaH19KSA9PiAoXG4gIDxTdHlsZWRJY29uSXRlbSBjbGFzc05hbWU9XCJpY29uLXRhYmxlX19pdGVtXCI+XG4gICAgPEljb25TaGFwZSBtZXNoPXttZXNofSAvPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaWNvbi10YWJsZV9pdGVtX19uYW1lXCI+XG4gICAgICA8U3R5bGVkQ29kZT57aWR9PC9TdHlsZWRDb2RlPlxuICAgIDwvZGl2PlxuICA8L1N0eWxlZEljb25JdGVtPlxuKTtcblxuY29uc3QgRXhhbXBsZVRhYmxlID0gKCkgPT4gKFxuICA8VGFibGUgY2xhc3NOYW1lPVwiaWNvbi1leGFtcGxlLXRhYmxlXCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGg+cG9pbnRfbGF0PC90aD5cbiAgICAgICAgPHRoPnBvaW50X2xuZzwvdGg+XG4gICAgICAgIDx0aD5pY29uPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD4zNy43Njk4OTc8L3RkPlxuICAgICAgICA8dGQ+LTEyMi40MTE2ODwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8U3R5bGVkQ29kZT5hbmRyb2lkPC9TdHlsZWRDb2RlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPjM3LjgwNjkyODwvdGQ+XG4gICAgICAgIDx0ZD4tMTIyLjQwMjE4PC90ZD5cbiAgICAgICAgPHRkIC8+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQ+MzcuNzc4NTY0PC90ZD5cbiAgICAgICAgPHRkPi0xMjIuMzkwOTY8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPFN0eWxlZENvZGU+Y2FsZW5kYXI8L1N0eWxlZENvZGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQ+MzcuNzQ1OTk1PC90ZD5cbiAgICAgICAgPHRkPi0xMjIuMzAyMjA8L3RkPlxuICAgICAgICA8dGQgLz5cbiAgICAgIDwvdHI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD4zNy4zMjk4NDE8L3RkPlxuICAgICAgICA8dGQ+LTEyMi4xMDM4NDc8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPFN0eWxlZENvZGU+Y29udHJvbC1vZmY8L1N0eWxlZENvZGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvVGFibGU+XG4pO1xuXG5jb25zdCBJY29uVGFibGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZmxleC13cmFwOiB3cmFwO1xuYDtcblxuY29uc3QgSWNvbkluZm9Nb2RhbEZhY3RvcnkgPSAoc3ZnSWNvbnM6IGFueVtdID0gW10pID0+IHtcbiAgY29uc3QgSWNvbkluZm9Nb2RhbCA9ICgpID0+IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImljb24taW5mby1tb2RhbFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uLWluZm8tbW9kYWxfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuaWNvbkluZm8uZGVzY3JpcHRpb24xJ30gLz57JyAnfVxuICAgICAgICA8Y29kZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmljb25JbmZvLmNvZGUnfSAvPlxuICAgICAgICA8L2NvZGU+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuaWNvbkluZm8uZGVzY3JpcHRpb24yJ30gLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uLWluZm8tbW9kYWxfX2V4YW1wbGVcIj5cbiAgICAgICAgPFN0eWxlZFRpdGxlPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuaWNvbkluZm8uZXhhbXBsZSd9IC8+XG4gICAgICAgIDwvU3R5bGVkVGl0bGU+XG4gICAgICAgIDxFeGFtcGxlVGFibGUgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uLWluZm8tbW9kYWxfX2ljb25zXCI+XG4gICAgICAgIDxTdHlsZWRUaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmljb25JbmZvLmljb25zJ30gLz5cbiAgICAgICAgPC9TdHlsZWRUaXRsZT5cbiAgICAgICAgPEljb25UYWJsZSBjbGFzc05hbWU9XCJpY29uLWluZm8tbW9kYWxfX2ljb25zX190YWJsZVwiPlxuICAgICAgICAgIHtzdmdJY29ucy5tYXAoaWNvbiA9PiAoXG4gICAgICAgICAgICA8SWNvbkl0ZW0ga2V5PXtpY29uLmlkfSBpY29uPXtpY29ufSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L0ljb25UYWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xuXG4gIHJldHVybiBJY29uSW5mb01vZGFsO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSWNvbkluZm9Nb2RhbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElB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
;