UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

78 lines (76 loc) 20 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.AiAssistantPanel = AiAssistantPanel; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react")); var _styledComponents = _interopRequireDefault(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/styled-components")); var _lib = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react-redux/lib"); var _reactIntl = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react-intl"); var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/utils/src"); var _src2 = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/localization/src"); var _src3 = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/components/src"); var _actions = require("../actions"); var _aiAssistantConfig = require("./ai-assistant-config"); var _aiAssistantComponent = require("./ai-assistant-component"); var _localization = require("../localization"); var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var StyledAiAssistantPanelContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n pointer-events: none !important; /* prevent padding from blocking input */\n flex-grow: 1;\n justify-content: space-between;\n overflow: hidden;\n height: 100%;\n width: 100%;\n & > * {\n /* all children should allow input */\n pointer-events: all;\n }\n"]))); var StyledAiAssistantPanel = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n top: 0;\n background-color: ", ";\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n overflow: hidden;\n"])), function (props) { return props.theme.sidePanelBg; }); var StyledAiAssistantPanelHeader = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 16px 16px 4px 16px;\n border-bottom: 1px solid ", ";\n color: ", ";\n"])), function (props) { return props.theme.borderColor; }, function (props) { return props.theme.subtextColorActive; }); var StyledAiAssistantPanelContent = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n color: ", ";\n padding: 10px 0px 10px 0px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n height: 100%;\n"])), function (props) { return props.theme.sidePanelScrollBar; }, function (props) { return props.theme.subtextColorActive; }); var SidePanelTitle = (0, _src3.SidePanelTitleFactory)(); function AiAssistantPanel() { var dispatch = (0, _lib.useDispatch)(); var aiAssistant = (0, _lib.useSelector)(function (state) { return state.demo.aiAssistant; }); var locale = (0, _lib.useSelector)(function (state) { return state.demo.keplerGl.map.uiState.locale; }); var onConfigButtonClick = (0, _react.useCallback)(function () { if (aiAssistant) { // set aiAssistant.config.isReady to false so we can render the config component dispatch((0, _actions.updateAiAssistantConfig)(_objectSpread(_objectSpread({}, aiAssistant.config), {}, { isReady: false }))); } }, [aiAssistant, dispatch]); // combine keplerGlMessages and messages var combinedMessages = (0, _react.useMemo)(function () { return Object.keys(_localization.messages).reduce(function (acc, language) { return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, language, _objectSpread(_objectSpread({}, _localization.messages[language] || {}), _src2.messages[language] || {}))); }, {}); }, []); return /*#__PURE__*/_react["default"].createElement(_reactIntl.IntlProvider, { locale: locale, messages: (0, _src.flattenMessages)(combinedMessages[locale]) }, /*#__PURE__*/_react["default"].createElement(StyledAiAssistantPanelContainer, { className: "ai-assistant-manager" }, /*#__PURE__*/_react["default"].createElement(StyledAiAssistantPanel, null, /*#__PURE__*/_react["default"].createElement(StyledAiAssistantPanelHeader, null, /*#__PURE__*/_react["default"].createElement(SidePanelTitle, { className: "ai-assistant-manager-title", title: "AI Assistant" }, /*#__PURE__*/_react["default"].createElement(_src3.Icons.Settings, { onClick: onConfigButtonClick }))), /*#__PURE__*/_react["default"].createElement(StyledAiAssistantPanelContent, null, !(aiAssistant !== null && aiAssistant !== void 0 && aiAssistant.config.isReady) ? /*#__PURE__*/_react["default"].createElement(_aiAssistantConfig.AiAssistantConfig, null) : /*#__PURE__*/_react["default"].createElement(_aiAssistantComponent.AiAssistantComponent, null))))); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGliIiwiX3JlYWN0SW50bCIsIl9zcmMiLCJfc3JjMiIsIl9zcmMzIiwiX2FjdGlvbnMiLCJfYWlBc3Npc3RhbnRDb25maWciLCJfYWlBc3Npc3RhbnRDb21wb25lbnQiLCJfbG9jYWxpemF0aW9uIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkQWlBc3Npc3RhbnRQYW5lbENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkQWlBc3Npc3RhbnRQYW5lbCIsInByb3BzIiwidGhlbWUiLCJzaWRlUGFuZWxCZyIsIlN0eWxlZEFpQXNzaXN0YW50UGFuZWxIZWFkZXIiLCJib3JkZXJDb2xvciIsInN1YnRleHRDb2xvckFjdGl2ZSIsIlN0eWxlZEFpQXNzaXN0YW50UGFuZWxDb250ZW50Iiwic2lkZVBhbmVsU2Nyb2xsQmFyIiwiU2lkZVBhbmVsVGl0bGUiLCJTaWRlUGFuZWxUaXRsZUZhY3RvcnkiLCJBaUFzc2lzdGFudFBhbmVsIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImFpQXNzaXN0YW50IiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRlbW8iLCJsb2NhbGUiLCJrZXBsZXJHbCIsIm1hcCIsInVpU3RhdGUiLCJvbkNvbmZpZ0J1dHRvbkNsaWNrIiwidXNlQ2FsbGJhY2siLCJ1cGRhdGVBaUFzc2lzdGFudENvbmZpZyIsImNvbmZpZyIsImlzUmVhZHkiLCJjb21iaW5lZE1lc3NhZ2VzIiwidXNlTWVtbyIsIm1lc3NhZ2VzIiwicmVkdWNlIiwiYWNjIiwibGFuZ3VhZ2UiLCJrZXBsZXJHbE1lc3NhZ2VzIiwiY3JlYXRlRWxlbWVudCIsIkludGxQcm92aWRlciIsImZsYXR0ZW5NZXNzYWdlcyIsImNsYXNzTmFtZSIsInRpdGxlIiwiSWNvbnMiLCJTZXR0aW5ncyIsIm9uQ2xpY2siLCJBaUFzc2lzdGFudENvbmZpZyIsIkFpQXNzaXN0YW50Q29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FpLWFzc2lzdGFudC9zcmMvY29tcG9uZW50cy9haS1hc3Npc3RhbnQtbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHt1c2VTZWxlY3RvciwgdXNlRGlzcGF0Y2h9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7ZmxhdHRlbk1lc3NhZ2VzfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7bWVzc2FnZXMgYXMga2VwbGVyR2xNZXNzYWdlc30gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuXG5pbXBvcnQge01hcFN0eWxlfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7U2lkZVBhbmVsVGl0bGVGYWN0b3J5LCBJY29uc30gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7VmlzU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5cbmltcG9ydCB7QWlBc3Npc3RhbnRTdGF0ZX0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHt1cGRhdGVBaUFzc2lzdGFudENvbmZpZ30gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge0FpQXNzaXN0YW50Q29uZmlnfSBmcm9tICcuL2FpLWFzc2lzdGFudC1jb25maWcnO1xuaW1wb3J0IHtBaUFzc2lzdGFudENvbXBvbmVudH0gZnJvbSAnLi9haS1hc3Npc3RhbnQtY29tcG9uZW50JztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJy4uL2xvY2FsaXphdGlvbic7XG5cbmNvbnN0IFN0eWxlZEFpQXNzaXN0YW50UGFuZWxDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OyAvKiBwcmV2ZW50IHBhZGRpbmcgZnJvbSBibG9ja2luZyBpbnB1dCAqL1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgJiA+ICoge1xuICAgIC8qIGFsbCBjaGlsZHJlbiBzaG91bGQgYWxsb3cgaW5wdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRBaUFzc2lzdGFudFBhbmVsID0gc3R5bGVkLmRpdmBcbiAgdG9wOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbEJnfTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYDtcblxuY29uc3QgU3R5bGVkQWlBc3Npc3RhbnRQYW5lbEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDE2cHggMTZweCA0cHggMTZweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm9yZGVyQ29sb3J9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3JBY3RpdmV9O1xuYDtcblxuY29uc3QgU3R5bGVkQWlBc3Npc3RhbnRQYW5lbENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbFNjcm9sbEJhcn07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvckFjdGl2ZX07XG4gIHBhZGRpbmc6IDEwcHggMHB4IDEwcHggMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG5gO1xuXG5jb25zdCBTaWRlUGFuZWxUaXRsZSA9IFNpZGVQYW5lbFRpdGxlRmFjdG9yeSgpO1xuXG5leHBvcnQgdHlwZSBTdGF0ZSA9IHtcbiAgZGVtbzoge1xuICAgIGtlcGxlckdsOiB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgdWlTdGF0ZToge2xvY2FsZTogc3RyaW5nfTtcbiAgICAgICAgdmlzU3RhdGU6IFZpc1N0YXRlO1xuICAgICAgICBtYXBTdHlsZTogTWFwU3R5bGU7XG4gICAgICB9O1xuICAgIH07XG4gICAgYWlBc3Npc3RhbnQ6IEFpQXNzaXN0YW50U3RhdGU7XG4gIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gQWlBc3Npc3RhbnRQYW5lbCgpIHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBhaUFzc2lzdGFudCA9IHVzZVNlbGVjdG9yKChzdGF0ZTogU3RhdGUpID0+IHN0YXRlLmRlbW8uYWlBc3Npc3RhbnQpO1xuICBjb25zdCBsb2NhbGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFN0YXRlKSA9PiBzdGF0ZS5kZW1vLmtlcGxlckdsLm1hcC51aVN0YXRlLmxvY2FsZSk7XG5cbiAgY29uc3Qgb25Db25maWdCdXR0b25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoYWlBc3Npc3RhbnQpIHtcbiAgICAgIC8vIHNldCBhaUFzc2lzdGFudC5jb25maWcuaXNSZWFkeSB0byBmYWxzZSBzbyB3ZSBjYW4gcmVuZGVyIHRoZSBjb25maWcgY29tcG9uZW50XG4gICAgICBkaXNwYXRjaCh1cGRhdGVBaUFzc2lzdGFudENvbmZpZyh7Li4uYWlBc3Npc3RhbnQuY29uZmlnLCBpc1JlYWR5OiBmYWxzZX0pKTtcbiAgICB9XG4gIH0sIFthaUFzc2lzdGFudCwgZGlzcGF0Y2hdKTtcblxuICAvLyBjb21iaW5lIGtlcGxlckdsTWVzc2FnZXMgYW5kIG1lc3NhZ2VzXG4gIGNvbnN0IGNvbWJpbmVkTWVzc2FnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobWVzc2FnZXMpLnJlZHVjZShcbiAgICAgIChhY2MsIGxhbmd1YWdlKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtsYW5ndWFnZV06IHtcbiAgICAgICAgICAuLi4obWVzc2FnZXNbbGFuZ3VhZ2VdIHx8IHt9KSxcbiAgICAgICAgICAuLi4oa2VwbGVyR2xNZXNzYWdlc1tsYW5ndWFnZV0gfHwge30pXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17ZmxhdHRlbk1lc3NhZ2VzKGNvbWJpbmVkTWVzc2FnZXNbbG9jYWxlXSl9PlxuICAgICAgPFN0eWxlZEFpQXNzaXN0YW50UGFuZWxDb250YWluZXIgY2xhc3NOYW1lPVwiYWktYXNzaXN0YW50LW1hbmFnZXJcIj5cbiAgICAgICAgPFN0eWxlZEFpQXNzaXN0YW50UGFuZWw+XG4gICAgICAgICAgPFN0eWxlZEFpQXNzaXN0YW50UGFuZWxIZWFkZXI+XG4gICAgICAgICAgICA8U2lkZVBhbmVsVGl0bGUgY2xhc3NOYW1lPVwiYWktYXNzaXN0YW50LW1hbmFnZXItdGl0bGVcIiB0aXRsZT1cIkFJIEFzc2lzdGFudFwiPlxuICAgICAgICAgICAgICA8SWNvbnMuU2V0dGluZ3Mgb25DbGljaz17b25Db25maWdCdXR0b25DbGlja30gLz5cbiAgICAgICAgICAgIDwvU2lkZVBhbmVsVGl0bGU+XG4gICAgICAgICAgPC9TdHlsZWRBaUFzc2lzdGFudFBhbmVsSGVhZGVyPlxuXG4gICAgICAgICAgPFN0eWxlZEFpQXNzaXN0YW50UGFuZWxDb250ZW50PlxuICAgICAgICAgICAgeyFhaUFzc2lzdGFudD8uY29uZmlnLmlzUmVhZHkgPyA8QWlBc3Npc3RhbnRDb25maWcgLz4gOiA8QWlBc3Npc3RhbnRDb21wb25lbnQgLz59XG4gICAgICAgICAgPC9TdHlsZWRBaUFzc2lzdGFudFBhbmVsQ29udGVudD5cbiAgICAgICAgPC9TdHlsZWRBaUFzc2lzdGFudFBhbmVsPlxuICAgICAgPC9TdHlsZWRBaUFzc2lzdGFudFBhbmVsQ29udGFpbmVyPlxuICAgIDwvSW50bFByb3ZpZGVyPlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEs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