kepler.gl 3.2.3 → 3.2.5
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/src/duckdb/src/components/index.d.ts +8 -1
- package/dist/src/duckdb/src/index.d.ts +3 -5
- package/dist/src/duckdb/src/table/index.d.ts +1 -0
- package/dist/src/reducers/src/ui-state-updaters.d.ts +1 -1
- package/dist/src/utils/src/application-config.d.ts +2 -0
- package/package.json +2 -2
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/dist/components/ai-assistant-component.js +42 -7
- package/src/ai-assistant/package.json +7 -7
- package/src/ai-assistant/src/components/ai-assistant-component.tsx +17 -4
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/package.json +3 -3
- package/src/components/dist/map-container.js +72 -64
- package/src/components/package.json +15 -15
- package/src/components/src/map-container.tsx +8 -1
- package/src/constants/dist/default-settings.js +1 -1
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/89/a2/7b6ce2c6c94377ff73d3eb84e41a05931160d1d250804fb519215165f383a46120fd1f4662bd2ae95d7c509ce63f4b8e866b515f9f8750cb702709d4bcdc +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/c4/d0/bd16d41c708342b14f4c0aaa31136faccd8d411ae1d3962252433ac31d00ac57f49ecd4f6b4d682ccdab28858444adefb98aa54c83743d739b90698c03cf +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/10/75/d229810e58d38a1b61f7938bf1587615fbe97f4afa69493e595badd1f471 +2 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/5b/96/163a3fcac4673f000a64cbecbb40621d276cb6f295539b4a6e139bbfc4f5 +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/umd/keplergl.min.js +1 -1
- package/src/deckgl-arrow-layers/package.json +3 -3
- package/src/deckgl-layers/package.json +4 -4
- package/src/duckdb/dist/components/index.d.ts +8 -1
- package/src/duckdb/dist/components/index.js +54 -11
- package/src/duckdb/dist/index.d.ts +3 -5
- package/src/duckdb/dist/index.js +28 -40
- package/src/duckdb/dist/table/index.d.ts +1 -0
- package/src/duckdb/dist/table/index.js +17 -0
- package/src/duckdb/package.json +25 -8
- package/src/duckdb/src/components/index.tsx +9 -1
- package/src/duckdb/src/index.ts +3 -9
- package/src/duckdb/src/table/index.ts +5 -0
- package/src/effects/package.json +5 -5
- package/src/layers/dist/icon-layer/icon-layer.d.ts +3 -1
- package/src/layers/dist/icon-layer/icon-layer.js +28 -4
- package/src/layers/package.json +9 -9
- package/src/layers/src/icon-layer/icon-layer.ts +24 -2
- package/src/localization/package.json +1 -1
- package/src/processors/package.json +7 -7
- package/src/reducers/dist/ui-state-updaters.d.ts +1 -1
- package/src/reducers/dist/ui-state-updaters.js +4 -4
- package/src/reducers/package.json +16 -16
- package/src/reducers/src/ui-state-updaters.ts +9 -4
- package/src/schemas/package.json +7 -7
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/00/92/9b4a08e852e2f12e4702d7c41fe5299bcd72ee10d25072f6aa4bb473d4dbe8d2ea1992b32bf82ea9ad73efdacf9f4e228a18523c93042cc58d07a56115bf +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/13/40/aa1c82ba19f8a57b20540cedfbc7086324551b58a599674e858ef4b8c12fad29b2e5d0a17f38ff2fb0adb913909e58b1aada0a79f49e8dc1b3ca673db76f +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/58/24/f9a517552c80acd6fe8c93f7ed4a3e8b24272284e6f2257ad18e152a8dbf +2 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/95/15/0b35e451aad3f2352a14cfa64386984de34da0a0b5ad2fc736ecb44d22db +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +1 -1
- package/src/table/package.json +5 -5
- package/src/tasks/package.json +2 -2
- package/src/types/layers.d.ts +2 -0
- package/src/types/package.json +1 -1
- package/src/utils/dist/application-config.d.ts +2 -0
- package/src/utils/dist/application-config.js +13 -2
- package/src/utils/dist/dom-to-image.js +19 -7
- package/src/utils/package.json +4 -5
- package/src/utils/src/application-config.ts +17 -1
- package/src/utils/src/dom-to-image.ts +18 -6
- package/umd/keplergl.min.js +1146 -1146
|
@@ -1 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { SqlPanel } from './sql-panel';
|
|
2
|
+
export { SchemaPanel, SchemaPanelDropMessage } from './schema-panel';
|
|
3
|
+
export { PreviewDataPanel } from './preview-data-panel';
|
|
4
|
+
export { Tree, DatasetNode, ColumnNode } from './tree';
|
|
5
|
+
export { default as MonacoEditor } from './monaco-editor';
|
|
6
|
+
export type { SchemaSuggestion } from './schema-panel';
|
|
7
|
+
export type { PreviewDataPanelProps, QueryResult, DataTableStyle } from './preview-data-panel';
|
|
8
|
+
export type { TreeNodeData, TreeNodeProps, TreeProps } from './tree';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export { DuckDBWasmAdapter } from './adapters/duckdb-wasm-adapter';
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
export { restoreGeoarrowMetadata, KeplerGlDuckDbTable } from './table/duckdb-table';
|
|
2
|
+
export { keplerGlDuckDBPlugin, keplerGlDuckDBPlugin as default } from './plugin';
|
|
3
|
+
export * from './table/duckdb-table';
|
|
5
4
|
export * from './table/duckdb-table-utils';
|
|
6
|
-
export
|
|
7
|
-
export { consolidateFieldTypes, extendFieldsWithDuckDBColumnType, fieldTypeToColumnType } from './processors/data-processor';
|
|
5
|
+
export * from './processors/data-processor';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './duckdb-table-utils';
|
|
@@ -28,7 +28,7 @@ export declare const DEFAULT_MAP_CONTROLS: MapControls;
|
|
|
28
28
|
* @property imageDataUri Default: `''`,
|
|
29
29
|
* @property exporting Default: `false`
|
|
30
30
|
* @property error Default: `false`
|
|
31
|
-
* @property escapeXhtmlForWebpack Default: `true`
|
|
31
|
+
* @property escapeXhtmlForWebpack Default: from application config (auto-detected: `true` for webpack)
|
|
32
32
|
* @public
|
|
33
33
|
*/
|
|
34
34
|
export declare const DEFAULT_EXPORT_IMAGE: ExportImage;
|
|
@@ -49,6 +49,8 @@ export declare type KeplerApplicationConfig = {
|
|
|
49
49
|
/** Whether to show the server input field in the raster tile layer setup form */
|
|
50
50
|
rasterServerShowServerInput?: boolean;
|
|
51
51
|
enableWMSLayer?: boolean;
|
|
52
|
+
/** Whether to apply fix for uglify error in dom-to-image (should be true for webpack builds, false for Vite) */
|
|
53
|
+
escapeXhtmlForWebpack?: boolean;
|
|
52
54
|
};
|
|
53
55
|
export declare const getApplicationConfig: () => Required<KeplerApplicationConfig>;
|
|
54
56
|
export declare function initApplicationConfig(appConfig?: KeplerApplicationConfig): void;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kepler.gl",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.5",
|
|
5
5
|
"description": "kepler.gl is a webgl based application to visualize large scale location data in the browser",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"@deck.gl/mapbox": "^8.9.27",
|
|
104
104
|
"@hubble.gl/core": "1.4.0",
|
|
105
105
|
"@hubble.gl/react": "1.4.0",
|
|
106
|
-
"@kepler.gl/components": "3.2.
|
|
106
|
+
"@kepler.gl/components": "3.2.5",
|
|
107
107
|
"@loaders.gl/polyfills": "^4.3.2",
|
|
108
108
|
"@types/mapbox__geo-viewport": "^0.4.1",
|
|
109
109
|
"html-webpack-plugin": "^4.3.0",
|
package/src/actions/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/actions",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.5",
|
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@deck.gl/core": "^8.9.27",
|
|
34
|
-
"@kepler.gl/cloud-providers": "3.2.
|
|
35
|
-
"@kepler.gl/constants": "3.2.
|
|
36
|
-
"@kepler.gl/layers": "3.2.
|
|
37
|
-
"@kepler.gl/processors": "3.2.
|
|
38
|
-
"@kepler.gl/table": "3.2.
|
|
39
|
-
"@kepler.gl/types": "3.2.
|
|
40
|
-
"@kepler.gl/utils": "3.2.
|
|
34
|
+
"@kepler.gl/cloud-providers": "3.2.5",
|
|
35
|
+
"@kepler.gl/constants": "3.2.5",
|
|
36
|
+
"@kepler.gl/layers": "3.2.5",
|
|
37
|
+
"@kepler.gl/processors": "3.2.5",
|
|
38
|
+
"@kepler.gl/table": "3.2.5",
|
|
39
|
+
"@kepler.gl/types": "3.2.5",
|
|
40
|
+
"@kepler.gl/utils": "3.2.5",
|
|
41
41
|
"@reduxjs/toolkit": "^1.7.2",
|
|
42
42
|
"@types/lodash": "4.17.5",
|
|
43
43
|
"@types/react-redux": "^7.1.23",
|
|
@@ -69,6 +69,10 @@ function AiAssistantComponent() {
|
|
|
69
69
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
70
70
|
ideas = _useState4[0],
|
|
71
71
|
setIdeas = _useState4[1];
|
|
72
|
+
var _useState5 = (0, _react.useState)(0),
|
|
73
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
74
|
+
restartKey = _useState6[0],
|
|
75
|
+
setRestartKey = _useState6[1];
|
|
72
76
|
|
|
73
77
|
// get dataset meta data and re-initialize assistant when datasets or layers change
|
|
74
78
|
(0, _react.useEffect)(function () {
|
|
@@ -84,7 +88,10 @@ function AiAssistantComponent() {
|
|
|
84
88
|
var _useAssistant = (0, _core.useAssistant)(_objectSpread(_objectSpread({}, assistantProps), {}, {
|
|
85
89
|
instructions: instructions
|
|
86
90
|
})),
|
|
87
|
-
temporaryPrompt = _useAssistant.temporaryPrompt
|
|
91
|
+
temporaryPrompt = _useAssistant.temporaryPrompt,
|
|
92
|
+
libraryRestartChat = _useAssistant.restartChat;
|
|
93
|
+
var restartChatRef = (0, _react.useRef)(libraryRestartChat);
|
|
94
|
+
restartChatRef.current = libraryRestartChat;
|
|
88
95
|
var generateIdeas = /*#__PURE__*/function () {
|
|
89
96
|
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
90
97
|
var response, match, json;
|
|
@@ -128,10 +135,36 @@ function AiAssistantComponent() {
|
|
|
128
135
|
}
|
|
129
136
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
130
137
|
}, [datasetMetaData]);
|
|
131
|
-
var onRestartAssistant = function
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
138
|
+
var onRestartAssistant = /*#__PURE__*/function () {
|
|
139
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
140
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
141
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
142
|
+
case 0:
|
|
143
|
+
dispatch((0, _actions.updateAiAssistantMessages)([]));
|
|
144
|
+
_context2.prev = 1;
|
|
145
|
+
_context2.next = 4;
|
|
146
|
+
return restartChatRef.current();
|
|
147
|
+
case 4:
|
|
148
|
+
_context2.next = 9;
|
|
149
|
+
break;
|
|
150
|
+
case 6:
|
|
151
|
+
_context2.prev = 6;
|
|
152
|
+
_context2.t0 = _context2["catch"](1);
|
|
153
|
+
console.error('Error restarting chat:', _context2.t0);
|
|
154
|
+
case 9:
|
|
155
|
+
setRestartKey(function (prev) {
|
|
156
|
+
return prev + 1;
|
|
157
|
+
});
|
|
158
|
+
case 10:
|
|
159
|
+
case "end":
|
|
160
|
+
return _context2.stop();
|
|
161
|
+
}
|
|
162
|
+
}, _callee2, null, [[1, 6]]);
|
|
163
|
+
}));
|
|
164
|
+
return function onRestartAssistant() {
|
|
165
|
+
return _ref2.apply(this, arguments);
|
|
166
|
+
};
|
|
167
|
+
}();
|
|
135
168
|
var onMessagesUpdated = function onMessagesUpdated(messages) {
|
|
136
169
|
dispatch((0, _actions.updateAiAssistantMessages)(messages));
|
|
137
170
|
};
|
|
@@ -143,7 +176,9 @@ function AiAssistantComponent() {
|
|
|
143
176
|
};
|
|
144
177
|
return /*#__PURE__*/_react["default"].createElement(StyledAiAssistantComponent, {
|
|
145
178
|
className: "ai-assistant-component"
|
|
146
|
-
}, /*#__PURE__*/_react["default"].createElement(_ui.AiAssistant, (0, _extends2["default"])({
|
|
179
|
+
}, /*#__PURE__*/_react["default"].createElement(_ui.AiAssistant, (0, _extends2["default"])({
|
|
180
|
+
key: restartKey
|
|
181
|
+
}, assistantProps, {
|
|
147
182
|
instructions: instructions,
|
|
148
183
|
theme: _styles.theme.textColor === _styles.textColorLT ? 'light' : 'dark',
|
|
149
184
|
welcomeMessage: _constants.WELCOME_MESSAGE,
|
|
@@ -164,4 +199,4 @@ function AiAssistantComponent() {
|
|
|
164
199
|
onRefreshIdeas: generateIdeas
|
|
165
200
|
})));
|
|
166
201
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zdHlsZXMiLCJfY29yZSIsIl91aSIsIl9hY3Rpb25zIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl90b29scyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZEFpQXNzaXN0YW50Q29tcG9uZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJBaUFzc2lzdGFudENvbXBvbmVudCIsInZpc1N0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRlbW8iLCJrZXBsZXJHbCIsIm1hcCIsImFpQXNzaXN0YW50IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInRvb2xzIiwic2V0dXBMTE1Ub29scyIsImVuYWJsZVZvaWNlQW5kU2NyZWVuQ2FwdHVyZSIsImNvbmZpZyIsInByb3ZpZGVyIiwiYXNzaXN0YW50UHJvcHMiLCJuYW1lIiwiQVNTSVNUQU5UX05BTUUiLCJkZXNjcmlwdGlvbiIsIkFTU0lTVEFOVF9ERVNDUklQVElPTiIsInZlcnNpb24iLCJBU1NJU1RBTlRfVkVSU0lPTiIsIm1vZGVsUHJvdmlkZXIiLCJtb2RlbCIsImFwaUtleSIsImJhc2VVcmwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJkYXRhc2V0TWV0YURhdGEiLCJzZXREYXRhc2V0TWV0YURhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlkZWFzIiwic2V0SWRlYXMiLCJ1c2VFZmZlY3QiLCJtZXRhRGF0YSIsImdldERhdGFzZXRDb250ZXh0IiwiZGF0YXNldHMiLCJsYXllcnMiLCJpbnN0cnVjdGlvbnMiLCJjb25jYXQiLCJJTlNUUlVDVElPTlMiLCJfdXNlQXNzaXN0YW50IiwidXNlQXNzaXN0YW50IiwidGVtcG9yYXJ5UHJvbXB0IiwiZ2VuZXJhdGVJZGVhcyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwibWF0Y2giLCJqc29uIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInByb21wdCIsIlBST01QVF9JREVBUyIsInRlbXBlcmF0dXJlIiwic2VudCIsIkpTT04iLCJwYXJzZSIsInQwIiwiY29uc29sZSIsImVycm9yIiwic3RvcCIsIm9uUmVzdGFydEFzc2lzdGFudCIsInVwZGF0ZUFpQXNzaXN0YW50TWVzc2FnZXMiLCJvbk1lc3NhZ2VzVXBkYXRlZCIsIm1lc3NhZ2VzIiwib25TY3JlZW5zaG90Q2xpY2siLCJzZXRTdGFydFNjcmVlbkNhcHR1cmUiLCJvblJlbW92ZVNjcmVlbnNob3QiLCJzZXRTY3JlZW5DYXB0dXJlZCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJBaUFzc2lzdGFudCIsIl9leHRlbmRzMiIsInRoZW1lIiwidGV4dENvbG9yIiwidGV4dENvbG9yTFQiLCJ3ZWxjb21lTWVzc2FnZSIsIldFTENPTUVfTUVTU0FHRSIsInRvcFAiLCJpbml0aWFsTWVzc2FnZXMiLCJlbmFibGVWb2ljZSIsImVuYWJsZVNjcmVlbkNhcHR1cmUiLCJzY3JlZW5DYXB0dXJlZEJhc2U2NCIsInNjcmVlbnNob3RUb0FzayIsInNjcmVlbkNhcHR1cmVkIiwib25SZXN0YXJ0Q2hhdCIsImZvbnRTaXplIiwiYm90TWVzc2FnZUNsYXNzTmFtZSIsImdpdGh1Yklzc3VlTGluayIsIm9uUmVmcmVzaElkZWFzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvYWktYXNzaXN0YW50LWNvbXBvbmVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3J9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHt0ZXh0Q29sb3JMVCwgdGhlbWV9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7TWVzc2FnZU1vZGVsLCB1c2VBc3Npc3RhbnR9IGZyb20gJ0BvcGVuYXNzaXN0YW50L2NvcmUnO1xuaW1wb3J0IHtBaUFzc2lzdGFudH0gZnJvbSAnQG9wZW5hc3Npc3RhbnQvdWknO1xuaW1wb3J0ICdAb3BlbmFzc2lzdGFudC9lY2hhcnRzL2Rpc3QvaW5kZXguY3NzJztcbmltcG9ydCAnQG9wZW5hc3Npc3RhbnQvdWkvZGlzdC9pbmRleC5jc3MnO1xuaW1wb3J0IHtzZXRTY3JlZW5DYXB0dXJlZCwgc2V0U3RhcnRTY3JlZW5DYXB0dXJlLCB1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFTU0lTVEFOVF9ERVNDUklQVElPTixcbiAgQVNTSVNUQU5UX05BTUUsXG4gIEFTU0lTVEFOVF9WRVJTSU9OLFxuICBJTlNUUlVDVElPTlMsXG4gIFBST01QVF9JREVBUyxcbiAgV0VMQ09NRV9NRVNTQUdFXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge2dldERhdGFzZXRDb250ZXh0fSBmcm9tICcuLi90b29scy91dGlscyc7XG5pbXBvcnQge3NldHVwTExNVG9vbHN9IGZyb20gJy4uL3Rvb2xzL3Rvb2xzJztcbmltcG9ydCB7U3RhdGV9IGZyb20gJy4vYWktYXNzaXN0YW50LW1hbmFnZXInO1xuXG5jb25zdCBTdHlsZWRBaUFzc2lzdGFudENvbXBvbmVudCA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcblxuICAqIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBmdW5jdGlvbiBBaUFzc2lzdGFudENvbXBvbmVudCgpIHtcbiAgY29uc3QgdmlzU3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFN0YXRlKSA9PiBzdGF0ZS5kZW1vLmtlcGxlckdsLm1hcC52aXNTdGF0ZSk7XG4gIGNvbnN0IGFpQXNzaXN0YW50ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBTdGF0ZSkgPT4gc3RhdGUuZGVtby5haUFzc2lzdGFudCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICAvLyBkZWZpbmUgTExNIGZ1bmN0aW9uc1xuICBjb25zdCB0b29scyA9IHNldHVwTExNVG9vbHMoe3Zpc1N0YXRlLCBhaUFzc2lzdGFudCwgZGlzcGF0Y2h9KTtcblxuICAvLyBlbmFibGUgdm9pY2UgYW5kIHNjcmVlbiBjYXB0dXJlXG4gIGNvbnN0IGVuYWJsZVZvaWNlQW5kU2NyZWVuQ2FwdHVyZSA9XG4gICAgYWlBc3Npc3RhbnQ/LmNvbmZpZy5wcm92aWRlciA9PT0gJ29wZW5haScgfHwgYWlBc3Npc3RhbnQ/LmNvbmZpZy5wcm92aWRlciA9PT0gJ2dvb2dsZScgfHwgZmFsc2U7XG5cbiAgLy8gZGVmaW5lIGFzc2lzdGFudCBwcm9wc1xuICBjb25zdCBhc3Npc3RhbnRQcm9wcyA9IHtcbiAgICBuYW1lOiBBU1NJU1RBTlRfTkFNRSxcbiAgICBkZXNjcmlwdGlvbjogQVNTSVNUQU5UX0RFU0NSSVBUSU9OLFxuICAgIHZlcnNpb246IEFTU0lTVEFOVF9WRVJTSU9OLFxuICAgIG1vZGVsUHJvdmlkZXI6IGFpQXNzaXN0YW50Py5jb25maWcucHJvdmlkZXIgfHwgJycsXG4gICAgbW9kZWw6IGFpQXNzaXN0YW50Py5jb25maWcubW9kZWwgfHwgJycsXG4gICAgYXBpS2V5OiBhaUFzc2lzdGFudD8uY29uZmlnLmFwaUtleSB8fCAnJyxcbiAgICBiYXNlVXJsOiBhaUFzc2lzdGFudD8uY29uZmlnLmJhc2VVcmwgfHwgJycsXG4gICAgdG9vbHNcbiAgfTtcblxuICBjb25zdCBbZGF0YXNldE1ldGFEYXRhLCBzZXREYXRhc2V0TWV0YURhdGFdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgY29uc3QgW2lkZWFzLCBzZXRJZGVhc10gPSB1c2VTdGF0ZTx7dGl0bGU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZ31bXT4oW10pO1xuXG4gIC8vIGdldCBkYXRhc2V0IG1ldGEgZGF0YSBhbmQgcmUtaW5pdGlhbGl6ZSBhc3Npc3RhbnQgd2hlbiBkYXRhc2V0cyBvciBsYXllcnMgY2hhbmdlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbWV0YURhdGEgPSBnZXREYXRhc2V0Q29udGV4dCh2aXNTdGF0ZT8uZGF0YXNldHMsIHZpc1N0YXRlPy5sYXllcnMgfHwgW10pO1xuICAgIHNldERhdGFzZXRNZXRhRGF0YShtZXRhRGF0YSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbdmlzU3RhdGU/LmRhdGFzZXRzLCB2aXNTdGF0ZT8ubGF5ZXJzXSk7XG5cbiAgLy8gdXNlIGRhdGFzZXQgbWV0YSBkYXRhIGluIExMTSBpbnN0cnVjdGlvbnNcbiAgY29uc3QgaW5zdHJ1Y3Rpb25zID0gYCR7SU5TVFJVQ1RJT05TfVxcblxcbiR7ZGF0YXNldE1ldGFEYXRhfWA7XG5cbiAgLy8gZ2VuZXJhdGUgaWRlYXMgZnJvbSBMTE1cbiAgY29uc3Qge3RlbXBvcmFyeVByb21wdH0gPSB1c2VBc3Npc3RhbnQoey4uLmFzc2lzdGFudFByb3BzLCBpbnN0cnVjdGlvbnN9KTtcblxuICBjb25zdCBnZW5lcmF0ZUlkZWFzID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRlbXBvcmFyeVByb21wdCh7XG4gICAgICAgIHByb21wdDogUFJPTVBUX0lERUFTLFxuICAgICAgICB0ZW1wZXJhdHVyZTogMS4wXG4gICAgICB9KTtcbiAgICAgIC8vIGZpbmQgW3t9LHt9Li4uXSBpbiB0aGUgdGV4dCBhbmQgcGFyc2UgaXQgYXMganNvbiwgaGFuZGxpbmcgd2hpdGVzcGFjZVxuICAgICAgY29uc3QgbWF0Y2ggPSByZXNwb25zZT8ubWF0Y2goL1xcW1xccypcXHsuKlxcfVxccypcXF0vcyk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UobWF0Y2hbMF0pO1xuICAgICAgICBzZXRJZGVhcyhqc29uKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2VuZXJhdGluZyBpZGVhcycsIGVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBnZXQgaWRlYXMgVUkgY29tcG9uZW50XG4gICAgaWYgKGlkZWFzLmxlbmd0aCA9PT0gMCAmJiBkYXRhc2V0TWV0YURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgZ2VuZXJhdGVJZGVhcygpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtkYXRhc2V0TWV0YURhdGFdKTtcblxuICBjb25zdCBvblJlc3RhcnRBc3Npc3RhbnQgPSAoKSA9PiB7XG4gICAgLy8gY2xlYW4gdXAgYWlBc3Npc3RhbnQgc3RhdGVcbiAgICBkaXNwYXRjaCh1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzKFtdKSk7XG4gIH07XG5cbiAgY29uc3Qgb25NZXNzYWdlc1VwZGF0ZWQgPSAobWVzc2FnZXM6IE1lc3NhZ2VNb2RlbFtdKSA9PiB7XG4gICAgZGlzcGF0Y2godXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlcyhtZXNzYWdlcykpO1xuICB9O1xuXG4gIGNvbnN0IG9uU2NyZWVuc2hvdENsaWNrID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNldFN0YXJ0U2NyZWVuQ2FwdHVyZSh0cnVlKSk7XG4gIH07XG5cbiAgY29uc3Qgb25SZW1vdmVTY3JlZW5zaG90ID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNldFNjcmVlbkNhcHR1cmVkKCcnKSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWlBc3Npc3RhbnRDb21wb25lbnQgY2xhc3NOYW1lPVwiYWktYXNzaXN0YW50LWNvbXBvbmVudFwiPlxuICAgICAgPEFpQXNzaXN0YW50XG4gICAgICAgIHsuLi5hc3Npc3RhbnRQcm9wc31cbiAgICAgICAgaW5zdHJ1Y3Rpb25zPXtpbnN0cnVjdGlvbnN9XG4gICAgICAgIHRoZW1lPXt0aGVtZS50ZXh0Q29sb3IgPT09IHRleHRDb2xvckxUID8gJ2xpZ2h0JyA6ICdkYXJrJ31cbiAgICAgICAgd2VsY29tZU1lc3NhZ2U9e1dFTENPTUVfTUVTU0FHRX1cbiAgICAgICAgdGVtcGVyYXR1cmU9e2FpQXNzaXN0YW50Py5jb25maWcudGVtcGVyYXR1cmUgfHwgMH1cbiAgICAgICAgdG9wUD17YWlBc3Npc3RhbnQ/LmNvbmZpZy50b3BQIHx8IDB9XG4gICAgICAgIGluaXRpYWxNZXNzYWdlcz17YWlBc3Npc3RhbnQ/Lm1lc3NhZ2VzfVxuICAgICAgICBvbk1lc3NhZ2VzVXBkYXRlZD17b25NZXNzYWdlc1VwZGF0ZWR9XG4gICAgICAgIGVuYWJsZVZvaWNlPXtlbmFibGVWb2ljZUFuZFNjcmVlbkNhcHR1cmV9XG4gICAgICAgIGVuYWJsZVNjcmVlbkNhcHR1cmU9e2VuYWJsZVZvaWNlQW5kU2NyZWVuQ2FwdHVyZX1cbiAgICAgICAgb25TY3JlZW5zaG90Q2xpY2s9e29uU2NyZWVuc2hvdENsaWNrfVxuICAgICAgICBzY3JlZW5DYXB0dXJlZEJhc2U2ND17YWlBc3Npc3RhbnQ/LnNjcmVlbnNob3RUb0Fzay5zY3JlZW5DYXB0dXJlZCB8fCAnJ31cbiAgICAgICAgb25SZW1vdmVTY3JlZW5zaG90PXtvblJlbW92ZVNjcmVlbnNob3R9XG4gICAgICAgIG9uUmVzdGFydENoYXQ9e29uUmVzdGFydEFzc2lzdGFudH1cbiAgICAgICAgZm9udFNpemU9eyd0ZXh0LXRpbnknfVxuICAgICAgICBib3RNZXNzYWdlQ2xhc3NOYW1lPXsnJ31cbiAgICAgICAgZ2l0aHViSXNzdWVMaW5rPXsnaHR0cHM6Ly9naXRodWIuY29tL2tlcGxlcmdsL2tlcGxlci5nbC9pc3N1ZXMnfVxuICAgICAgICBpZGVhcz17aWRlYXN9XG4gICAgICAgIG9uUmVmcmVzaElkZWFzPXtnZW5lcmF0ZUlkZWFzfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZEFpQXNzaXN0YW50Q29tcG9uZW50PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxHQUFBLEdBQUFOLE9BQUE7QUFDQUEs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
|
|
202
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zdHlsZXMiLCJfY29yZSIsIl91aSIsIl9hY3Rpb25zIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl90b29scyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZEFpQXNzaXN0YW50Q29tcG9uZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJBaUFzc2lzdGFudENvbXBvbmVudCIsInZpc1N0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRlbW8iLCJrZXBsZXJHbCIsIm1hcCIsImFpQXNzaXN0YW50IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInRvb2xzIiwic2V0dXBMTE1Ub29scyIsImVuYWJsZVZvaWNlQW5kU2NyZWVuQ2FwdHVyZSIsImNvbmZpZyIsInByb3ZpZGVyIiwiYXNzaXN0YW50UHJvcHMiLCJuYW1lIiwiQVNTSVNUQU5UX05BTUUiLCJkZXNjcmlwdGlvbiIsIkFTU0lTVEFOVF9ERVNDUklQVElPTiIsInZlcnNpb24iLCJBU1NJU1RBTlRfVkVSU0lPTiIsIm1vZGVsUHJvdmlkZXIiLCJtb2RlbCIsImFwaUtleSIsImJhc2VVcmwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJkYXRhc2V0TWV0YURhdGEiLCJzZXREYXRhc2V0TWV0YURhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlkZWFzIiwic2V0SWRlYXMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInJlc3RhcnRLZXkiLCJzZXRSZXN0YXJ0S2V5IiwidXNlRWZmZWN0IiwibWV0YURhdGEiLCJnZXREYXRhc2V0Q29udGV4dCIsImRhdGFzZXRzIiwibGF5ZXJzIiwiaW5zdHJ1Y3Rpb25zIiwiY29uY2F0IiwiSU5TVFJVQ1RJT05TIiwiX3VzZUFzc2lzdGFudCIsInVzZUFzc2lzdGFudCIsInRlbXBvcmFyeVByb21wdCIsImxpYnJhcnlSZXN0YXJ0Q2hhdCIsInJlc3RhcnRDaGF0IiwicmVzdGFydENoYXRSZWYiLCJ1c2VSZWYiLCJjdXJyZW50IiwiZ2VuZXJhdGVJZGVhcyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwibWF0Y2giLCJqc29uIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInByb21wdCIsIlBST01QVF9JREVBUyIsInRlbXBlcmF0dXJlIiwic2VudCIsIkpTT04iLCJwYXJzZSIsInQwIiwiY29uc29sZSIsImVycm9yIiwic3RvcCIsIm9uUmVzdGFydEFzc2lzdGFudCIsIl9yZWYyIiwiX2NhbGxlZTIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzIiwib25NZXNzYWdlc1VwZGF0ZWQiLCJtZXNzYWdlcyIsIm9uU2NyZWVuc2hvdENsaWNrIiwic2V0U3RhcnRTY3JlZW5DYXB0dXJlIiwib25SZW1vdmVTY3JlZW5zaG90Iiwic2V0U2NyZWVuQ2FwdHVyZWQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiQWlBc3Npc3RhbnQiLCJfZXh0ZW5kczIiLCJrZXkiLCJ0aGVtZSIsInRleHRDb2xvciIsInRleHRDb2xvckxUIiwid2VsY29tZU1lc3NhZ2UiLCJXRUxDT01FX01FU1NBR0UiLCJ0b3BQIiwiaW5pdGlhbE1lc3NhZ2VzIiwiZW5hYmxlVm9pY2UiLCJlbmFibGVTY3JlZW5DYXB0dXJlIiwic2NyZWVuQ2FwdHVyZWRCYXNlNjQiLCJzY3JlZW5zaG90VG9Bc2siLCJzY3JlZW5DYXB0dXJlZCIsIm9uUmVzdGFydENoYXQiLCJmb250U2l6ZSIsImJvdE1lc3NhZ2VDbGFzc05hbWUiLCJnaXRodWJJc3N1ZUxpbmsiLCJvblJlZnJlc2hJZGVhcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2FpLWFzc2lzdGFudC1jb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3J9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHt0ZXh0Q29sb3JMVCwgdGhlbWV9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7TWVzc2FnZU1vZGVsLCB1c2VBc3Npc3RhbnR9IGZyb20gJ0BvcGVuYXNzaXN0YW50L2NvcmUnO1xuaW1wb3J0IHtBaUFzc2lzdGFudH0gZnJvbSAnQG9wZW5hc3Npc3RhbnQvdWknO1xuaW1wb3J0ICdAb3BlbmFzc2lzdGFudC9lY2hhcnRzL2Rpc3QvaW5kZXguY3NzJztcbmltcG9ydCAnQG9wZW5hc3Npc3RhbnQvdWkvZGlzdC9pbmRleC5jc3MnO1xuaW1wb3J0IHtzZXRTY3JlZW5DYXB0dXJlZCwgc2V0U3RhcnRTY3JlZW5DYXB0dXJlLCB1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFTU0lTVEFOVF9ERVNDUklQVElPTixcbiAgQVNTSVNUQU5UX05BTUUsXG4gIEFTU0lTVEFOVF9WRVJTSU9OLFxuICBJTlNUUlVDVElPTlMsXG4gIFBST01QVF9JREVBUyxcbiAgV0VMQ09NRV9NRVNTQUdFXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge2dldERhdGFzZXRDb250ZXh0fSBmcm9tICcuLi90b29scy91dGlscyc7XG5pbXBvcnQge3NldHVwTExNVG9vbHN9IGZyb20gJy4uL3Rvb2xzL3Rvb2xzJztcbmltcG9ydCB7U3RhdGV9IGZyb20gJy4vYWktYXNzaXN0YW50LW1hbmFnZXInO1xuXG5jb25zdCBTdHlsZWRBaUFzc2lzdGFudENvbXBvbmVudCA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcblxuICAqIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBmdW5jdGlvbiBBaUFzc2lzdGFudENvbXBvbmVudCgpIHtcbiAgY29uc3QgdmlzU3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFN0YXRlKSA9PiBzdGF0ZS5kZW1vLmtlcGxlckdsLm1hcC52aXNTdGF0ZSk7XG4gIGNvbnN0IGFpQXNzaXN0YW50ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBTdGF0ZSkgPT4gc3RhdGUuZGVtby5haUFzc2lzdGFudCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICAvLyBkZWZpbmUgTExNIGZ1bmN0aW9uc1xuICBjb25zdCB0b29scyA9IHNldHVwTExNVG9vbHMoe3Zpc1N0YXRlLCBhaUFzc2lzdGFudCwgZGlzcGF0Y2h9KTtcblxuICAvLyBlbmFibGUgdm9pY2UgYW5kIHNjcmVlbiBjYXB0dXJlXG4gIGNvbnN0IGVuYWJsZVZvaWNlQW5kU2NyZWVuQ2FwdHVyZSA9XG4gICAgYWlBc3Npc3RhbnQ/LmNvbmZpZy5wcm92aWRlciA9PT0gJ29wZW5haScgfHwgYWlBc3Npc3RhbnQ/LmNvbmZpZy5wcm92aWRlciA9PT0gJ2dvb2dsZScgfHwgZmFsc2U7XG5cbiAgLy8gZGVmaW5lIGFzc2lzdGFudCBwcm9wc1xuICBjb25zdCBhc3Npc3RhbnRQcm9wcyA9IHtcbiAgICBuYW1lOiBBU1NJU1RBTlRfTkFNRSxcbiAgICBkZXNjcmlwdGlvbjogQVNTSVNUQU5UX0RFU0NSSVBUSU9OLFxuICAgIHZlcnNpb246IEFTU0lTVEFOVF9WRVJTSU9OLFxuICAgIG1vZGVsUHJvdmlkZXI6IGFpQXNzaXN0YW50Py5jb25maWcucHJvdmlkZXIgfHwgJycsXG4gICAgbW9kZWw6IGFpQXNzaXN0YW50Py5jb25maWcubW9kZWwgfHwgJycsXG4gICAgYXBpS2V5OiBhaUFzc2lzdGFudD8uY29uZmlnLmFwaUtleSB8fCAnJyxcbiAgICBiYXNlVXJsOiBhaUFzc2lzdGFudD8uY29uZmlnLmJhc2VVcmwgfHwgJycsXG4gICAgdG9vbHNcbiAgfTtcblxuICBjb25zdCBbZGF0YXNldE1ldGFEYXRhLCBzZXREYXRhc2V0TWV0YURhdGFdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgY29uc3QgW2lkZWFzLCBzZXRJZGVhc10gPSB1c2VTdGF0ZTx7dGl0bGU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZ31bXT4oW10pO1xuXG4gIGNvbnN0IFtyZXN0YXJ0S2V5LCBzZXRSZXN0YXJ0S2V5XSA9IHVzZVN0YXRlPG51bWJlcj4oMCk7XG5cbiAgLy8gZ2V0IGRhdGFzZXQgbWV0YSBkYXRhIGFuZCByZS1pbml0aWFsaXplIGFzc2lzdGFudCB3aGVuIGRhdGFzZXRzIG9yIGxheWVycyBjaGFuZ2VcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBtZXRhRGF0YSA9IGdldERhdGFzZXRDb250ZXh0KHZpc1N0YXRlPy5kYXRhc2V0cywgdmlzU3RhdGU/LmxheWVycyB8fCBbXSk7XG4gICAgc2V0RGF0YXNldE1ldGFEYXRhKG1ldGFEYXRhKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFt2aXNTdGF0ZT8uZGF0YXNldHMsIHZpc1N0YXRlPy5sYXllcnNdKTtcblxuICAvLyB1c2UgZGF0YXNldCBtZXRhIGRhdGEgaW4gTExNIGluc3RydWN0aW9uc1xuICBjb25zdCBpbnN0cnVjdGlvbnMgPSBgJHtJTlNUUlVDVElPTlN9XFxuXFxuJHtkYXRhc2V0TWV0YURhdGF9YDtcblxuICAvLyBnZW5lcmF0ZSBpZGVhcyBmcm9tIExMTVxuICBjb25zdCB7dGVtcG9yYXJ5UHJvbXB0LCByZXN0YXJ0Q2hhdDogbGlicmFyeVJlc3RhcnRDaGF0fSA9IHVzZUFzc2lzdGFudCh7Li4uYXNzaXN0YW50UHJvcHMsIGluc3RydWN0aW9uc30pO1xuICBcbiAgY29uc3QgcmVzdGFydENoYXRSZWYgPSB1c2VSZWYobGlicmFyeVJlc3RhcnRDaGF0KTtcbiAgcmVzdGFydENoYXRSZWYuY3VycmVudCA9IGxpYnJhcnlSZXN0YXJ0Q2hhdDtcblxuICBjb25zdCBnZW5lcmF0ZUlkZWFzID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRlbXBvcmFyeVByb21wdCh7XG4gICAgICAgIHByb21wdDogUFJPTVBUX0lERUFTLFxuICAgICAgICB0ZW1wZXJhdHVyZTogMS4wXG4gICAgICB9KTtcbiAgICAgIC8vIGZpbmQgW3t9LHt9Li4uXSBpbiB0aGUgdGV4dCBhbmQgcGFyc2UgaXQgYXMganNvbiwgaGFuZGxpbmcgd2hpdGVzcGFjZVxuICAgICAgY29uc3QgbWF0Y2ggPSByZXNwb25zZT8ubWF0Y2goL1xcW1xccypcXHsuKlxcfVxccypcXF0vcyk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UobWF0Y2hbMF0pO1xuICAgICAgICBzZXRJZGVhcyhqc29uKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2VuZXJhdGluZyBpZGVhcycsIGVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBnZXQgaWRlYXMgVUkgY29tcG9uZW50XG4gICAgaWYgKGlkZWFzLmxlbmd0aCA9PT0gMCAmJiBkYXRhc2V0TWV0YURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgZ2VuZXJhdGVJZGVhcygpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtkYXRhc2V0TWV0YURhdGFdKTtcblxuICBjb25zdCBvblJlc3RhcnRBc3Npc3RhbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgZGlzcGF0Y2godXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlcyhbXSkpO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXN0YXJ0Q2hhdFJlZi5jdXJyZW50KCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVzdGFydGluZyBjaGF0OicsIGUpO1xuICAgIH1cbiAgICBcbiAgICBzZXRSZXN0YXJ0S2V5KHByZXYgPT4gcHJldiArIDEpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWVzc2FnZXNVcGRhdGVkID0gKG1lc3NhZ2VzOiBNZXNzYWdlTW9kZWxbXSkgPT4ge1xuICAgIGRpc3BhdGNoKHVwZGF0ZUFpQXNzaXN0YW50TWVzc2FnZXMobWVzc2FnZXMpKTtcbiAgfTtcblxuICBjb25zdCBvblNjcmVlbnNob3RDbGljayA9ICgpID0+IHtcbiAgICBkaXNwYXRjaChzZXRTdGFydFNjcmVlbkNhcHR1cmUodHJ1ZSkpO1xuICB9O1xuXG4gIGNvbnN0IG9uUmVtb3ZlU2NyZWVuc2hvdCA9ICgpID0+IHtcbiAgICBkaXNwYXRjaChzZXRTY3JlZW5DYXB0dXJlZCgnJykpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEFpQXNzaXN0YW50Q29tcG9uZW50IGNsYXNzTmFtZT1cImFpLWFzc2lzdGFudC1jb21wb25lbnRcIj5cbiAgICAgIDxBaUFzc2lzdGFudFxuICAgICAgICBrZXk9e3Jlc3RhcnRLZXl9XG4gICAgICAgIHsuLi5hc3Npc3RhbnRQcm9wc31cbiAgICAgICAgaW5zdHJ1Y3Rpb25zPXtpbnN0cnVjdGlvbnN9XG4gICAgICAgIHRoZW1lPXt0aGVtZS50ZXh0Q29sb3IgPT09IHRleHRDb2xvckxUID8gJ2xpZ2h0JyA6ICdkYXJrJ31cbiAgICAgICAgd2VsY29tZU1lc3NhZ2U9e1dFTENPTUVfTUVTU0FHRX1cbiAgICAgICAgdGVtcGVyYXR1cmU9e2FpQXNzaXN0YW50Py5jb25maWcudGVtcGVyYXR1cmUgfHwgMH1cbiAgICAgICAgdG9wUD17YWlBc3Npc3RhbnQ/LmNvbmZpZy50b3BQIHx8IDB9XG4gICAgICAgIGluaXRpYWxNZXNzYWdlcz17YWlBc3Npc3RhbnQ/Lm1lc3NhZ2VzfVxuICAgICAgICBvbk1lc3NhZ2VzVXBkYXRlZD17b25NZXNzYWdlc1VwZGF0ZWR9XG4gICAgICAgIGVuYWJsZVZvaWNlPXtlbmFibGVWb2ljZUFuZFNjcmVlbkNhcHR1cmV9XG4gICAgICAgIGVuYWJsZVNjcmVlbkNhcHR1cmU9e2VuYWJsZVZvaWNlQW5kU2NyZWVuQ2FwdHVyZX1cbiAgICAgICAgb25TY3JlZW5zaG90Q2xpY2s9e29uU2NyZWVuc2hvdENsaWNrfVxuICAgICAgICBzY3JlZW5DYXB0dXJlZEJhc2U2ND17YWlBc3Npc3RhbnQ/LnNjcmVlbnNob3RUb0Fzay5zY3JlZW5DYXB0dXJlZCB8fCAnJ31cbiAgICAgICAgb25SZW1vdmVTY3JlZW5zaG90PXtvblJlbW92ZVNjcmVlbnNob3R9XG4gICAgICAgIG9uUmVzdGFydENoYXQ9e29uUmVzdGFydEFzc2lzdGFudH1cbiAgICAgICAgZm9udFNpemU9eyd0ZXh0LXRpbnknfVxuICAgICAgICBib3RNZXNzYWdlQ2xhc3NOYW1lPXsnJ31cbiAgICAgICAgZ2l0aHViSXNzdWVMaW5rPXsnaHR0cHM6Ly9naXRodWIuY29tL2tlcGxlcmdsL2tlcGxlci5nbC9pc3N1ZXMnfVxuICAgICAgICBpZGVhcz17aWRlYXN9XG4gICAgICAgIG9uUmVmcmVzaElkZWFzPXtnZW5lcmF0ZUlkZWFzfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZEFpQXNzaXN0YW50Q29tcG9uZW50PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxHQUFBLEdBQUFOLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBUUEsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQTZDLElBQUFXLGVBQUEsRUFyQjdDO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWQsd0JBQUFjLENBQUEsRUFBQUUsQ0FBQSxT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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/ai-assistant",
|
|
3
3
|
"author": "Xun Li<lixun910@gmail.com>",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.5",
|
|
5
5
|
"description": "kepler.gl AI assistant",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"@ai-sdk/deepseek": "^0.2.14",
|
|
35
35
|
"@ai-sdk/google": "^1.2.18",
|
|
36
36
|
"@ai-sdk/xai": "^1.2.16",
|
|
37
|
-
"@kepler.gl/components": "3.2.
|
|
38
|
-
"@kepler.gl/constants": "3.2.
|
|
39
|
-
"@kepler.gl/layers": "3.2.
|
|
40
|
-
"@kepler.gl/table": "3.2.
|
|
41
|
-
"@kepler.gl/types": "3.2.
|
|
42
|
-
"@kepler.gl/utils": "3.2.
|
|
37
|
+
"@kepler.gl/components": "3.2.5",
|
|
38
|
+
"@kepler.gl/constants": "3.2.5",
|
|
39
|
+
"@kepler.gl/layers": "3.2.5",
|
|
40
|
+
"@kepler.gl/table": "3.2.5",
|
|
41
|
+
"@kepler.gl/types": "3.2.5",
|
|
42
|
+
"@kepler.gl/utils": "3.2.5",
|
|
43
43
|
"@openassistant/core": "^0.5.17",
|
|
44
44
|
"@openassistant/duckdb": "^0.5.17",
|
|
45
45
|
"@openassistant/echarts": "^0.5.17",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
// Copyright contributors to the kepler.gl project
|
|
3
3
|
|
|
4
|
-
import React, {useEffect, useState} from 'react';
|
|
4
|
+
import React, {useEffect, useRef, useState} from 'react';
|
|
5
5
|
import {useDispatch, useSelector} from 'react-redux';
|
|
6
6
|
import styled from 'styled-components';
|
|
7
7
|
import {textColorLT, theme} from '@kepler.gl/styles';
|
|
@@ -59,6 +59,8 @@ export function AiAssistantComponent() {
|
|
|
59
59
|
|
|
60
60
|
const [ideas, setIdeas] = useState<{title: string; description: string}[]>([]);
|
|
61
61
|
|
|
62
|
+
const [restartKey, setRestartKey] = useState<number>(0);
|
|
63
|
+
|
|
62
64
|
// get dataset meta data and re-initialize assistant when datasets or layers change
|
|
63
65
|
useEffect(() => {
|
|
64
66
|
const metaData = getDatasetContext(visState?.datasets, visState?.layers || []);
|
|
@@ -70,7 +72,10 @@ export function AiAssistantComponent() {
|
|
|
70
72
|
const instructions = `${INSTRUCTIONS}\n\n${datasetMetaData}`;
|
|
71
73
|
|
|
72
74
|
// generate ideas from LLM
|
|
73
|
-
const {temporaryPrompt} = useAssistant({...assistantProps, instructions});
|
|
75
|
+
const {temporaryPrompt, restartChat: libraryRestartChat} = useAssistant({...assistantProps, instructions});
|
|
76
|
+
|
|
77
|
+
const restartChatRef = useRef(libraryRestartChat);
|
|
78
|
+
restartChatRef.current = libraryRestartChat;
|
|
74
79
|
|
|
75
80
|
const generateIdeas = async () => {
|
|
76
81
|
try {
|
|
@@ -97,9 +102,16 @@ export function AiAssistantComponent() {
|
|
|
97
102
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
98
103
|
}, [datasetMetaData]);
|
|
99
104
|
|
|
100
|
-
const onRestartAssistant = () => {
|
|
101
|
-
// clean up aiAssistant state
|
|
105
|
+
const onRestartAssistant = async () => {
|
|
102
106
|
dispatch(updateAiAssistantMessages([]));
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
await restartChatRef.current();
|
|
110
|
+
} catch (e) {
|
|
111
|
+
console.error('Error restarting chat:', e);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
setRestartKey(prev => prev + 1);
|
|
103
115
|
};
|
|
104
116
|
|
|
105
117
|
const onMessagesUpdated = (messages: MessageModel[]) => {
|
|
@@ -117,6 +129,7 @@ export function AiAssistantComponent() {
|
|
|
117
129
|
return (
|
|
118
130
|
<StyledAiAssistantComponent className="ai-assistant-component">
|
|
119
131
|
<AiAssistant
|
|
132
|
+
key={restartKey}
|
|
120
133
|
{...assistantProps}
|
|
121
134
|
instructions={instructions}
|
|
122
135
|
theme={theme.textColor === textColorLT ? 'light' : 'dark'}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/cloud-providers",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.5",
|
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"umd"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@kepler.gl/types": "3.2.
|
|
33
|
+
"@kepler.gl/types": "3.2.5",
|
|
34
34
|
"react": "^18.2.0"
|
|
35
35
|
},
|
|
36
36
|
"nyc": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/common-utils",
|
|
3
3
|
"author": "Shan He <heshan0131@gmail.com>",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.5",
|
|
5
5
|
"description": "kepler.gl common utils",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"umd"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@kepler.gl/constants": "3.2.
|
|
34
|
-
"@kepler.gl/types": "3.2.
|
|
33
|
+
"@kepler.gl/constants": "3.2.5",
|
|
34
|
+
"@kepler.gl/types": "3.2.5",
|
|
35
35
|
"d3-array": "^2.8.0",
|
|
36
36
|
"global": "^4.3.0",
|
|
37
37
|
"h3-js": "^3.1.0",
|