@kepler.gl/duckdb 3.1.0-alpha.6
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/components/index.d.ts +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/monaco-editor.d.ts +14 -0
- package/dist/components/monaco-editor.js +176 -0
- package/dist/components/preview-data-panel.d.ts +33 -0
- package/dist/components/preview-data-panel.js +138 -0
- package/dist/components/schema-panel.d.ts +4 -0
- package/dist/components/schema-panel.js +150 -0
- package/dist/components/sql-panel.d.ts +6 -0
- package/dist/components/sql-panel.js +199 -0
- package/dist/components/tree.d.ts +28 -0
- package/dist/components/tree.js +90 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +25 -0
- package/dist/init.d.ts +19 -0
- package/dist/init.js +154 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.js +32 -0
- package/dist/processors/data-processor.d.ts +18 -0
- package/dist/processors/data-processor.js +328 -0
- package/dist/table/duckdb-table.d.ts +37 -0
- package/dist/table/duckdb-table.js +443 -0
- package/dist/utils/perf.d.ts +4 -0
- package/dist/utils/perf.js +46 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sql-panel';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _sqlPanel = require("./sql-panel");
|
|
7
|
+
Object.keys(_sqlPanel).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _sqlPanel[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _sqlPanel[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3FsUGFuZWwiLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCAqIGZyb20gJy4vc3FsLXBhbmVsJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFILFNBQUEsRUFBQUksT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQUwsU0FBQSxDQUFBSyxHQUFBO0VBQUFILE1BQUEsQ0FBQUssY0FBQSxDQUFBRCxPQUFBLEVBQUFELEdBQUE7SUFBQUcsVUFBQTtJQUFBQyxHQUFBLFdBQUFBLElBQUE7TUFBQSxPQUFBVCxTQUFBLENBQUFLLEdBQUE7SUFBQTtFQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { OnChange } from '@monaco-editor/react';
|
|
3
|
+
interface MonacoEditorProps {
|
|
4
|
+
code: string;
|
|
5
|
+
isReadOnly?: boolean;
|
|
6
|
+
onChange: OnChange;
|
|
7
|
+
onRunQuery: () => void;
|
|
8
|
+
tableSchema?: {
|
|
9
|
+
table_name: string;
|
|
10
|
+
column_name: string;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
declare const MonacoEditor: React.FC<MonacoEditorProps>;
|
|
14
|
+
export default MonacoEditor;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _react2 = _interopRequireDefault(require("@monaco-editor/react"));
|
|
13
|
+
var monaco = _interopRequireWildcard(require("monaco-editor"));
|
|
14
|
+
var _lodash = _interopRequireDefault(require("lodash.uniq"));
|
|
15
|
+
var _lodash2 = _interopRequireDefault(require("lodash.uniqby"));
|
|
16
|
+
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); }
|
|
17
|
+
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; }
|
|
18
|
+
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; }
|
|
19
|
+
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; } // SPDX-License-Identifier: MIT
|
|
20
|
+
// Copyright contributors to the kepler.gl project
|
|
21
|
+
// import {tableSchema as DEFAULT_SCHEMA} from './table-schema';
|
|
22
|
+
var MONACO_OPTIONS = {
|
|
23
|
+
minimap: {
|
|
24
|
+
enabled: false
|
|
25
|
+
},
|
|
26
|
+
language: 'sql',
|
|
27
|
+
contextmenu: false,
|
|
28
|
+
renderLineHighlight: 'none',
|
|
29
|
+
scrollBeyondLastLine: false,
|
|
30
|
+
scrollbar: {
|
|
31
|
+
alwaysConsumeMouseWheel: false
|
|
32
|
+
},
|
|
33
|
+
overviewRulerLanes: 0,
|
|
34
|
+
automaticLayout: true,
|
|
35
|
+
acceptSuggestionOnEnter: 'on',
|
|
36
|
+
quickSuggestionsDelay: 400,
|
|
37
|
+
matchOnWordStartOnly: false,
|
|
38
|
+
tabCompletion: 'off',
|
|
39
|
+
lineNumbers: 'off'
|
|
40
|
+
};
|
|
41
|
+
function parseSqlAndFindTableNameAndAliases(sql) {
|
|
42
|
+
var regex = /\b(?:FROM|JOIN)\s+([^\s.]+(?:\.[^\s.]+)?)\s*(?:AS)?\s*([^\s,]+)?/gi;
|
|
43
|
+
var tables = [];
|
|
44
|
+
while (true) {
|
|
45
|
+
var match = regex.exec(sql);
|
|
46
|
+
if (!match) {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
var table_name = match[1];
|
|
50
|
+
if (!/\(/.test(table_name)) {
|
|
51
|
+
// exclude function calls
|
|
52
|
+
var alias = match[2];
|
|
53
|
+
if (alias && /on|where|inner|left|right|join/.test(alias)) {
|
|
54
|
+
alias = null;
|
|
55
|
+
}
|
|
56
|
+
tables.push({
|
|
57
|
+
table_name: table_name,
|
|
58
|
+
alias: alias || table_name
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return tables;
|
|
63
|
+
}
|
|
64
|
+
var MonacoEditor = function MonacoEditor(_ref) {
|
|
65
|
+
var onRunQuery = _ref.onRunQuery,
|
|
66
|
+
onChange = _ref.onChange,
|
|
67
|
+
code = _ref.code,
|
|
68
|
+
tableSchema = _ref.tableSchema,
|
|
69
|
+
isReadOnly = _ref.isReadOnly;
|
|
70
|
+
// private editor?: monaco.editor.IStandaloneCodeEditor;
|
|
71
|
+
var schemaTableNames = (0, _react.useMemo)(function () {
|
|
72
|
+
return tableSchema ? (0, _lodash["default"])(tableSchema.map(function (d) {
|
|
73
|
+
return d.table_name;
|
|
74
|
+
})) : [];
|
|
75
|
+
}, [tableSchema]);
|
|
76
|
+
var schemaTableNamesSet = (0, _react.useMemo)(function () {
|
|
77
|
+
return new Set(schemaTableNames);
|
|
78
|
+
}, [schemaTableNames]);
|
|
79
|
+
var handleRunQueryRef = (0, _react.useRef)(onRunQuery);
|
|
80
|
+
handleRunQueryRef.current = onRunQuery;
|
|
81
|
+
var handleEditorDidMount = (0, _react.useCallback)(function (editor) {
|
|
82
|
+
// this.editor = editor;
|
|
83
|
+
editor.focus();
|
|
84
|
+
editor.addAction({
|
|
85
|
+
id: 'run-query',
|
|
86
|
+
label: 'Run Query',
|
|
87
|
+
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter, monaco.KeyMod.Shift | monaco.KeyCode.Enter],
|
|
88
|
+
contextMenuGroupId: 'custom',
|
|
89
|
+
contextMenuOrder: 0,
|
|
90
|
+
run: function run() {
|
|
91
|
+
return handleRunQueryRef.current();
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
monaco.languages.registerCompletionItemProvider('*', {
|
|
95
|
+
provideCompletionItems: function provideCompletionItems(model, position, context, cancelationToken) {
|
|
96
|
+
var _thisLine$trim$split$, _exec, _exec2;
|
|
97
|
+
var suggestions = [{
|
|
98
|
+
label: 'myCustomSnippet',
|
|
99
|
+
kind: monaco.languages.CompletionItemKind.Snippet,
|
|
100
|
+
insertText: 'This is a piece of custom code',
|
|
101
|
+
insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
|
|
102
|
+
documentation: 'This is a piece of custom code'
|
|
103
|
+
// TODO: range is missing
|
|
104
|
+
}];
|
|
105
|
+
var fullQueryText = model.getValue();
|
|
106
|
+
var tableNamesAndAliases = new Map(parseSqlAndFindTableNameAndAliases(fullQueryText).map(function (_ref2) {
|
|
107
|
+
var table_name = _ref2.table_name,
|
|
108
|
+
alias = _ref2.alias;
|
|
109
|
+
return [alias, table_name];
|
|
110
|
+
}));
|
|
111
|
+
var thisLine = model.getValueInRange({
|
|
112
|
+
startLineNumber: position.lineNumber,
|
|
113
|
+
startColumn: 1,
|
|
114
|
+
endLineNumber: position.lineNumber,
|
|
115
|
+
endColumn: position.column
|
|
116
|
+
});
|
|
117
|
+
var thisToken = ((_thisLine$trim$split$ = thisLine.trim().split(' ').slice(-1)) === null || _thisLine$trim$split$ === void 0 ? void 0 : _thisLine$trim$split$[0]) || '';
|
|
118
|
+
var lastTokenBeforeSpace = (_exec = /\s?(\w+)\s+\w+$/.exec(thisLine.trim())) === null || _exec === void 0 ? void 0 : _exec[1];
|
|
119
|
+
var lastTokenBeforeDot = (_exec2 = /(\w+)\.\w*$/.exec(thisToken)) === null || _exec2 === void 0 ? void 0 : _exec2[1];
|
|
120
|
+
|
|
121
|
+
// console.log(tableNamesAndAliases, thisToken, lastTokenBeforeSpace, lastTokenBeforeDot);
|
|
122
|
+
|
|
123
|
+
if (lastTokenBeforeSpace && /from|join|update|into/.test(lastTokenBeforeSpace)) {
|
|
124
|
+
suggestions.push.apply(suggestions, (0, _toConsumableArray2["default"])(schemaTableNames.map(function (table_name) {
|
|
125
|
+
return {
|
|
126
|
+
label: table_name,
|
|
127
|
+
kind: monaco.languages.CompletionItemKind.Field,
|
|
128
|
+
insertText: table_name
|
|
129
|
+
// TODO: range is missing
|
|
130
|
+
};
|
|
131
|
+
})));
|
|
132
|
+
}
|
|
133
|
+
if (lastTokenBeforeDot) {
|
|
134
|
+
var table_name = null;
|
|
135
|
+
if (schemaTableNamesSet.has(lastTokenBeforeDot)) {
|
|
136
|
+
table_name = lastTokenBeforeDot;
|
|
137
|
+
} else if (tableNamesAndAliases.get(lastTokenBeforeDot)) {
|
|
138
|
+
table_name = tableNamesAndAliases.get(lastTokenBeforeDot);
|
|
139
|
+
}
|
|
140
|
+
if (table_name && tableSchema) {
|
|
141
|
+
suggestions.push.apply(suggestions, (0, _toConsumableArray2["default"])(tableSchema.filter(function (d) {
|
|
142
|
+
return d.table_name === table_name;
|
|
143
|
+
}).map(function (_ref3) {
|
|
144
|
+
var table_name = _ref3.table_name,
|
|
145
|
+
column_name = _ref3.column_name;
|
|
146
|
+
return {
|
|
147
|
+
label: column_name,
|
|
148
|
+
kind: monaco.languages.CompletionItemKind.Field,
|
|
149
|
+
insertText: column_name
|
|
150
|
+
// TODO: range is missing
|
|
151
|
+
};
|
|
152
|
+
})));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
suggestions: (0, _lodash2["default"])(suggestions, function (s) {
|
|
157
|
+
return s.insertText;
|
|
158
|
+
})
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}, [tableSchema]);
|
|
163
|
+
return /*#__PURE__*/_react["default"].createElement(_react2["default"], {
|
|
164
|
+
height: "100%",
|
|
165
|
+
theme: "vs-dark",
|
|
166
|
+
defaultLanguage: "sql",
|
|
167
|
+
defaultValue: code,
|
|
168
|
+
onChange: onChange,
|
|
169
|
+
onMount: handleEditorDidMount,
|
|
170
|
+
options: _objectSpread(_objectSpread({}, MONACO_OPTIONS), {}, {
|
|
171
|
+
readOnly: isReadOnly
|
|
172
|
+
})
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
var _default = exports["default"] = MonacoEditor;
|
|
176
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3QyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm1vbmFjbyIsIl9sb2Rhc2giLCJfbG9kYXNoMiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIk1PTkFDT19PUFRJT05TIiwibWluaW1hcCIsImVuYWJsZWQiLCJsYW5ndWFnZSIsImNvbnRleHRtZW51IiwicmVuZGVyTGluZUhpZ2hsaWdodCIsInNjcm9sbEJleW9uZExhc3RMaW5lIiwic2Nyb2xsYmFyIiwiYWx3YXlzQ29uc3VtZU1vdXNlV2hlZWwiLCJvdmVydmlld1J1bGVyTGFuZXMiLCJhdXRvbWF0aWNMYXlvdXQiLCJhY2NlcHRTdWdnZXN0aW9uT25FbnRlciIsInF1aWNrU3VnZ2VzdGlvbnNEZWxheSIsIm1hdGNoT25Xb3JkU3RhcnRPbmx5IiwidGFiQ29tcGxldGlvbiIsImxpbmVOdW1iZXJzIiwicGFyc2VTcWxBbmRGaW5kVGFibGVOYW1lQW5kQWxpYXNlcyIsInNxbCIsInJlZ2V4IiwidGFibGVzIiwibWF0Y2giLCJleGVjIiwidGFibGVfbmFtZSIsInRlc3QiLCJhbGlhcyIsIk1vbmFjb0VkaXRvciIsIl9yZWYiLCJvblJ1blF1ZXJ5Iiwib25DaGFuZ2UiLCJjb2RlIiwidGFibGVTY2hlbWEiLCJpc1JlYWRPbmx5Iiwic2NoZW1hVGFibGVOYW1lcyIsInVzZU1lbW8iLCJ1bmlxIiwibWFwIiwiZCIsInNjaGVtYVRhYmxlTmFtZXNTZXQiLCJTZXQiLCJoYW5kbGVSdW5RdWVyeVJlZiIsInVzZVJlZiIsImN1cnJlbnQiLCJoYW5kbGVFZGl0b3JEaWRNb3VudCIsInVzZUNhbGxiYWNrIiwiZWRpdG9yIiwiZm9jdXMiLCJhZGRBY3Rpb24iLCJpZCIsImxhYmVsIiwia2V5YmluZGluZ3MiLCJLZXlNb2QiLCJDdHJsQ21kIiwiS2V5Q29kZSIsIkVudGVyIiwiU2hpZnQiLCJjb250ZXh0TWVudUdyb3VwSWQiLCJjb250ZXh0TWVudU9yZGVyIiwicnVuIiwibGFuZ3VhZ2VzIiwicmVnaXN0ZXJDb21wbGV0aW9uSXRlbVByb3ZpZGVyIiwicHJvdmlkZUNvbXBsZXRpb25JdGVtcyIsIm1vZGVsIiwicG9zaXRpb24iLCJjb250ZXh0IiwiY2FuY2VsYXRpb25Ub2tlbiIsIl90aGlzTGluZSR0cmltJHNwbGl0JCIsIl9leGVjIiwiX2V4ZWMyIiwic3VnZ2VzdGlvbnMiLCJraW5kIiwiQ29tcGxldGlvbkl0ZW1LaW5kIiwiU25pcHBldCIsImluc2VydFRleHQiLCJpbnNlcnRUZXh0UnVsZXMiLCJDb21wbGV0aW9uSXRlbUluc2VydFRleHRSdWxlIiwiSW5zZXJ0QXNTbmlwcGV0IiwiZG9jdW1lbnRhdGlvbiIsImZ1bGxRdWVyeVRleHQiLCJnZXRWYWx1ZSIsInRhYmxlTmFtZXNBbmRBbGlhc2VzIiwiTWFwIiwiX3JlZjIiLCJ0aGlzTGluZSIsImdldFZhbHVlSW5SYW5nZSIsInN0YXJ0TGluZU51bWJlciIsImxpbmVOdW1iZXIiLCJzdGFydENvbHVtbiIsImVuZExpbmVOdW1iZXIiLCJlbmRDb2x1bW4iLCJjb2x1bW4iLCJ0aGlzVG9rZW4iLCJ0cmltIiwic3BsaXQiLCJzbGljZSIsImxhc3RUb2tlbkJlZm9yZVNwYWNlIiwibGFzdFRva2VuQmVmb3JlRG90IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIkZpZWxkIiwiX3JlZjMiLCJjb2x1bW5fbmFtZSIsInVuaXFCeSIsInMiLCJjcmVhdGVFbGVtZW50IiwiaGVpZ2h0IiwidGhlbWUiLCJkZWZhdWx0TGFuZ3VhZ2UiLCJkZWZhdWx0VmFsdWUiLCJvbk1vdW50Iiwib3B0aW9ucyIsInJlYWRPbmx5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9uYWNvLWVkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEVkaXRvciwge09uQ2hhbmdlLCBPbk1vdW50fSBmcm9tICdAbW9uYWNvLWVkaXRvci9yZWFjdCc7XG5pbXBvcnQgKiBhcyBtb25hY28gZnJvbSAnbW9uYWNvLWVkaXRvcic7XG4vLyBpbXBvcnQge3RhYmxlU2NoZW1hIGFzIERFRkFVTFRfU0NIRU1BfSBmcm9tICcuL3RhYmxlLXNjaGVtYSc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC51bmlxYnknO1xuXG5jb25zdCBNT05BQ09fT1BUSU9OUzogbW9uYWNvLmVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMgPSB7XG4gIG1pbmltYXA6IHtlbmFibGVkOiBmYWxzZX0sXG4gIGxhbmd1YWdlOiAnc3FsJyxcbiAgY29udGV4dG1lbnU6IGZhbHNlLFxuICByZW5kZXJMaW5lSGlnaGxpZ2h0OiAnbm9uZScsXG4gIHNjcm9sbEJleW9uZExhc3RMaW5lOiBmYWxzZSxcbiAgc2Nyb2xsYmFyOiB7YWx3YXlzQ29uc3VtZU1vdXNlV2hlZWw6IGZhbHNlfSxcbiAgb3ZlcnZpZXdSdWxlckxhbmVzOiAwLFxuICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gIGFjY2VwdFN1Z2dlc3Rpb25PbkVudGVyOiAnb24nLFxuICBxdWlja1N1Z2dlc3Rpb25zRGVsYXk6IDQwMCxcbiAgbWF0Y2hPbldvcmRTdGFydE9ubHk6IGZhbHNlLFxuICB0YWJDb21wbGV0aW9uOiAnb2ZmJyxcbiAgbGluZU51bWJlcnM6ICdvZmYnXG59O1xuXG5mdW5jdGlvbiBwYXJzZVNxbEFuZEZpbmRUYWJsZU5hbWVBbmRBbGlhc2VzKHNxbDogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4ID0gL1xcYig/OkZST018Sk9JTilcXHMrKFteXFxzLl0rKD86XFwuW15cXHMuXSspPylcXHMqKD86QVMpP1xccyooW15cXHMsXSspPy9naTtcbiAgY29uc3QgdGFibGVzOiB7dGFibGVfbmFtZTogc3RyaW5nOyBhbGlhczogc3RyaW5nfVtdID0gW107XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMoc3FsKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgdGFibGVfbmFtZSA9IG1hdGNoWzFdO1xuICAgIGlmICghL1xcKC8udGVzdCh0YWJsZV9uYW1lKSkge1xuICAgICAgLy8gZXhjbHVkZSBmdW5jdGlvbiBjYWxsc1xuICAgICAgbGV0IGFsaWFzID0gbWF0Y2hbMl0gYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIGlmIChhbGlhcyAmJiAvb258d2hlcmV8aW5uZXJ8bGVmdHxyaWdodHxqb2luLy50ZXN0KGFsaWFzKSkge1xuICAgICAgICBhbGlhcyA9IG51bGw7XG4gICAgICB9XG4gICAgICB0YWJsZXMucHVzaCh7XG4gICAgICAgIHRhYmxlX25hbWUsXG4gICAgICAgIGFsaWFzOiBhbGlhcyB8fCB0YWJsZV9uYW1lXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFibGVzO1xufVxuXG5pbnRlcmZhY2UgTW9uYWNvRWRpdG9yUHJvcHMge1xuICBjb2RlOiBzdHJpbmc7XG4gIGlzUmVhZE9ubHk/OiBib29sZWFuO1xuICBvbkNoYW5nZTogT25DaGFuZ2U7XG4gIG9uUnVuUXVlcnk6ICgpID0+IHZvaWQ7XG4gIHRhYmxlU2NoZW1hPzoge3RhYmxlX25hbWU6IHN0cmluZzsgY29sdW1uX25hbWU6IHN0cmluZ31bXTtcbn1cblxuY29uc3QgTW9uYWNvRWRpdG9yOiBSZWFjdC5GQzxNb25hY29FZGl0b3JQcm9wcz4gPSAoe1xuICBvblJ1blF1ZXJ5LFxuICBvbkNoYW5nZSxcbiAgY29kZSxcbiAgdGFibGVTY2hlbWEsXG4gIGlzUmVhZE9ubHlcbn0pID0+IHtcbiAgLy8gcHJpdmF0ZSBlZGl0b3I/OiBtb25hY28uZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcjtcbiAgY29uc3Qgc2NoZW1hVGFibGVOYW1lcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHRhYmxlU2NoZW1hID8gdW5pcSh0YWJsZVNjaGVtYS5tYXAoZCA9PiBkLnRhYmxlX25hbWUpKSA6IFtdKSxcbiAgICBbdGFibGVTY2hlbWFdXG4gICk7XG4gIGNvbnN0IHNjaGVtYVRhYmxlTmFtZXNTZXQgPSB1c2VNZW1vKCgpID0+IG5ldyBTZXQoc2NoZW1hVGFibGVOYW1lcyksIFtzY2hlbWFUYWJsZU5hbWVzXSk7XG4gIGNvbnN0IGhhbmRsZVJ1blF1ZXJ5UmVmID0gdXNlUmVmKG9uUnVuUXVlcnkpO1xuICBoYW5kbGVSdW5RdWVyeVJlZi5jdXJyZW50ID0gb25SdW5RdWVyeTtcblxuICBjb25zdCBoYW5kbGVFZGl0b3JEaWRNb3VudDogT25Nb3VudCA9IHVzZUNhbGxiYWNrKFxuICAgIGVkaXRvciA9PiB7XG4gICAgICAvLyB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICAgIGVkaXRvci5mb2N1cygpO1xuXG4gICAgICBlZGl0b3IuYWRkQWN0aW9uKHtcbiAgICAgICAgaWQ6ICdydW4tcXVlcnknLFxuICAgICAgICBsYWJlbDogJ1J1biBRdWVyeScsXG4gICAgICAgIGtleWJpbmRpbmdzOiBbXG4gICAgICAgICAgbW9uYWNvLktleU1vZC5DdHJsQ21kIHwgbW9uYWNvLktleUNvZGUuRW50ZXIsXG4gICAgICAgICAgbW9uYWNvLktleU1vZC5TaGlmdCB8IG1vbmFjby5LZXlDb2RlLkVudGVyXG4gICAgICAgIF0sXG4gICAgICAgIGNvbnRleHRNZW51R3JvdXBJZDogJ2N1c3RvbScsXG4gICAgICAgIGNvbnRleHRNZW51T3JkZXI6IDAsXG4gICAgICAgIHJ1bjogKCkgPT4gaGFuZGxlUnVuUXVlcnlSZWYuY3VycmVudCgpXG4gICAgICB9KTtcblxuICAgICAgbW9uYWNvLmxhbmd1YWdlcy5yZWdpc3RlckNvbXBsZXRpb25JdGVtUHJvdmlkZXIoJyonLCB7XG4gICAgICAgIHByb3ZpZGVDb21wbGV0aW9uSXRlbXM6IChtb2RlbCwgcG9zaXRpb24sIGNvbnRleHQsIGNhbmNlbGF0aW9uVG9rZW4pID0+IHtcbiAgICAgICAgICBjb25zdCBzdWdnZXN0aW9uczogbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbVtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ215Q3VzdG9tU25pcHBldCcsXG4gICAgICAgICAgICAgIGtpbmQ6IG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW1LaW5kLlNuaXBwZXQsXG4gICAgICAgICAgICAgIGluc2VydFRleHQ6ICdUaGlzIGlzIGEgcGllY2Ugb2YgY3VzdG9tIGNvZGUnLFxuICAgICAgICAgICAgICBpbnNlcnRUZXh0UnVsZXM6IG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW1JbnNlcnRUZXh0UnVsZS5JbnNlcnRBc1NuaXBwZXQsXG4gICAgICAgICAgICAgIGRvY3VtZW50YXRpb246ICdUaGlzIGlzIGEgcGllY2Ugb2YgY3VzdG9tIGNvZGUnXG4gICAgICAgICAgICAgIC8vIFRPRE86IHJhbmdlIGlzIG1pc3NpbmdcbiAgICAgICAgICAgIH0gYXMgbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbVxuICAgICAgICAgIF07XG5cbiAgICAgICAgICBjb25zdCBmdWxsUXVlcnlUZXh0ID0gbW9kZWwuZ2V0VmFsdWUoKTtcblxuICAgICAgICAgIGNvbnN0IHRhYmxlTmFtZXNBbmRBbGlhc2VzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oXG4gICAgICAgICAgICBwYXJzZVNxbEFuZEZpbmRUYWJsZU5hbWVBbmRBbGlhc2VzKGZ1bGxRdWVyeVRleHQpLm1hcCgoe3RhYmxlX25hbWUsIGFsaWFzfSkgPT4gW1xuICAgICAgICAgICAgICBhbGlhcyxcbiAgICAgICAgICAgICAgdGFibGVfbmFtZVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgdGhpc0xpbmUgPSBtb2RlbC5nZXRWYWx1ZUluUmFuZ2Uoe1xuICAgICAgICAgICAgc3RhcnRMaW5lTnVtYmVyOiBwb3NpdGlvbi5saW5lTnVtYmVyLFxuICAgICAgICAgICAgc3RhcnRDb2x1bW46IDEsXG4gICAgICAgICAgICBlbmRMaW5lTnVtYmVyOiBwb3NpdGlvbi5saW5lTnVtYmVyLFxuICAgICAgICAgICAgZW5kQ29sdW1uOiBwb3NpdGlvbi5jb2x1bW5cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCB0aGlzVG9rZW4gPSB0aGlzTGluZS50cmltKCkuc3BsaXQoJyAnKS5zbGljZSgtMSk/LlswXSB8fCAnJztcblxuICAgICAgICAgIGNvbnN0IGxhc3RUb2tlbkJlZm9yZVNwYWNlID0gL1xccz8oXFx3KylcXHMrXFx3KyQvLmV4ZWModGhpc0xpbmUudHJpbSgpKT8uWzFdO1xuICAgICAgICAgIGNvbnN0IGxhc3RUb2tlbkJlZm9yZURvdCA9IC8oXFx3KylcXC5cXHcqJC8uZXhlYyh0aGlzVG9rZW4pPy5bMV07XG5cbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0YWJsZU5hbWVzQW5kQWxpYXNlcywgdGhpc1Rva2VuLCBsYXN0VG9rZW5CZWZvcmVTcGFjZSwgbGFzdFRva2VuQmVmb3JlRG90KTtcblxuICAgICAgICAgIGlmIChsYXN0VG9rZW5CZWZvcmVTcGFjZSAmJiAvZnJvbXxqb2lufHVwZGF0ZXxpbnRvLy50ZXN0KGxhc3RUb2tlbkJlZm9yZVNwYWNlKSkge1xuICAgICAgICAgICAgc3VnZ2VzdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgLi4uc2NoZW1hVGFibGVOYW1lcy5tYXAoXG4gICAgICAgICAgICAgICAgdGFibGVfbmFtZSA9PlxuICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRhYmxlX25hbWUsXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW1LaW5kLkZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBpbnNlcnRUZXh0OiB0YWJsZV9uYW1lXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHJhbmdlIGlzIG1pc3NpbmdcbiAgICAgICAgICAgICAgICAgIH0gYXMgbW9uYWNvLmxhbmd1YWdlcy5Db21wbGV0aW9uSXRlbSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobGFzdFRva2VuQmVmb3JlRG90KSB7XG4gICAgICAgICAgICBsZXQgdGFibGVfbmFtZSA9IG51bGwgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAgIGlmIChzY2hlbWFUYWJsZU5hbWVzU2V0LmhhcyhsYXN0VG9rZW5CZWZvcmVEb3QpKSB7XG4gICAgICAgICAgICAgIHRhYmxlX25hbWUgPSBsYXN0VG9rZW5CZWZvcmVEb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRhYmxlTmFtZXNBbmRBbGlhc2VzLmdldChsYXN0VG9rZW5CZWZvcmVEb3QpKSB7XG4gICAgICAgICAgICAgIHRhYmxlX25hbWUgPSB0YWJsZU5hbWVzQW5kQWxpYXNlcy5nZXQobGFzdFRva2VuQmVmb3JlRG90KSBhcyBzdHJpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFibGVfbmFtZSAmJiB0YWJsZVNjaGVtYSkge1xuICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIC4uLnRhYmxlU2NoZW1hXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKGQgPT4gZC50YWJsZV9uYW1lID09PSB0YWJsZV9uYW1lKVxuICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKHt0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZX0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2x1bW5fbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW1LaW5kLkZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0VGV4dDogY29sdW1uX25hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHJhbmdlIGlzIG1pc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICB9IGFzIG1vbmFjby5sYW5ndWFnZXMuQ29tcGxldGlvbkl0ZW0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zOiB1bmlxQnkoc3VnZ2VzdGlvbnMsIHMgPT4gcy5pbnNlcnRUZXh0KVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW3RhYmxlU2NoZW1hXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEVkaXRvclxuICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICB0aGVtZT1cInZzLWRhcmtcIlxuICAgICAgZGVmYXVsdExhbmd1YWdlPVwic3FsXCJcbiAgICAgIGRlZmF1bHRWYWx1ZT17Y29kZX1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uTW91bnQ9e2hhbmRsZUVkaXRvckRpZE1vdW50fVxuICAgICAgb3B0aW9ucz17e1xuICAgICAgICAuLi5NT05BQ09fT1BUSU9OUyxcbiAgICAgICAgcmVhZE9ubHk6IGlzUmVhZE9ubHlcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1vbmFjb0VkaXRvcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUFtQyxTQUFBTSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEs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
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
declare type BaseComponentProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
style?: CSSProperties;
|
|
5
|
+
};
|
|
6
|
+
export declare type ColMeta = {
|
|
7
|
+
[key: string]: {
|
|
8
|
+
colIdx: number;
|
|
9
|
+
name: string;
|
|
10
|
+
displayName: string;
|
|
11
|
+
type: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare type DataTableStyle = {
|
|
15
|
+
minCellSize?: number;
|
|
16
|
+
cellPadding?: number;
|
|
17
|
+
fontSize?: number;
|
|
18
|
+
font?: string;
|
|
19
|
+
optionsButton?: number;
|
|
20
|
+
};
|
|
21
|
+
export declare type PreviewDataPanelProps = BaseComponentProps & {
|
|
22
|
+
result: any;
|
|
23
|
+
rowsToCalculatePreview?: number;
|
|
24
|
+
theme?: any;
|
|
25
|
+
setColumnDisplayFormat?: (formats: {
|
|
26
|
+
[key: string]: string;
|
|
27
|
+
}) => void;
|
|
28
|
+
defaultPinnedColumns?: string[];
|
|
29
|
+
dataTableStyle: DataTableStyle;
|
|
30
|
+
onAddResultToMap: (result: any) => void;
|
|
31
|
+
};
|
|
32
|
+
export declare const PreviewDataPanel: React.FC<PreviewDataPanelProps>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PreviewDataPanel = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _components = require("@kepler.gl/components");
|
|
14
|
+
var _utils = require("@kepler.gl/utils");
|
|
15
|
+
var _processors = require("@kepler.gl/processors");
|
|
16
|
+
var _styledComponents = require("styled-components");
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
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; } // SPDX-License-Identifier: MIT
|
|
21
|
+
// Copyright contributors to the kepler.gl project
|
|
22
|
+
var DEFAULT_ROWS_TO_CALCULATE_PREVIEW = 100;
|
|
23
|
+
// min Cellsize should take into account option button and field token
|
|
24
|
+
var minCellSize = 80;
|
|
25
|
+
// option buttons and field token
|
|
26
|
+
var optionButtonWidth = 20;
|
|
27
|
+
var pinButton = 20;
|
|
28
|
+
var cellPadding = 20;
|
|
29
|
+
var PreviewDataPanelWOTheme = function PreviewDataPanelWOTheme(_ref) {
|
|
30
|
+
var result = _ref.result,
|
|
31
|
+
_ref$rowsToCalculateP = _ref.rowsToCalculatePreview,
|
|
32
|
+
rowsToCalculatePreview = _ref$rowsToCalculateP === void 0 ? DEFAULT_ROWS_TO_CALCULATE_PREVIEW : _ref$rowsToCalculateP,
|
|
33
|
+
setColumnDisplayFormat = _ref.setColumnDisplayFormat,
|
|
34
|
+
_ref$defaultPinnedCol = _ref.defaultPinnedColumns,
|
|
35
|
+
defaultPinnedColumns = _ref$defaultPinnedCol === void 0 ? [] : _ref$defaultPinnedCol,
|
|
36
|
+
theme = _ref.theme;
|
|
37
|
+
var _useState = (0, _react.useState)(defaultPinnedColumns),
|
|
38
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
39
|
+
pinnedColumns = _useState2[0],
|
|
40
|
+
setPinnedColumns = _useState2[1];
|
|
41
|
+
var fields = (0, _react.useMemo)(function () {
|
|
42
|
+
return (0, _processors.arrowSchemaToFields)(result.schema);
|
|
43
|
+
}, [result.schema]);
|
|
44
|
+
var dataContainer = (0, _react.useMemo)(function () {
|
|
45
|
+
// const fields = arrowSchemaToFields(result.schema);
|
|
46
|
+
|
|
47
|
+
var cols = (0, _toConsumableArray2["default"])(Array(result.numCols).keys()).map(function (i) {
|
|
48
|
+
return result.getChildAt(i);
|
|
49
|
+
});
|
|
50
|
+
var dataContainer = (0, _utils.createDataContainer)(cols, {
|
|
51
|
+
fields: fields,
|
|
52
|
+
inputDataFormat: _utils.DataForm.COLS_ARRAY
|
|
53
|
+
});
|
|
54
|
+
return dataContainer;
|
|
55
|
+
}, [result, fields]);
|
|
56
|
+
var columns = (0, _react.useMemo)(function () {
|
|
57
|
+
return fields.map(function (f) {
|
|
58
|
+
return f.name;
|
|
59
|
+
});
|
|
60
|
+
}, [fields]);
|
|
61
|
+
var colMeta = (0, _react.useMemo)(function () {
|
|
62
|
+
return fields.reduce(function (acc, _ref2, colIdx) {
|
|
63
|
+
var name = _ref2.name,
|
|
64
|
+
displayName = _ref2.displayName,
|
|
65
|
+
type = _ref2.type,
|
|
66
|
+
displayFormat = _ref2.displayFormat;
|
|
67
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, name, {
|
|
68
|
+
// because '' || 'aaa' = 'aaa'
|
|
69
|
+
name: displayName !== undefined ? displayName : name,
|
|
70
|
+
displayName: displayName,
|
|
71
|
+
displayFormat: displayFormat,
|
|
72
|
+
type: type,
|
|
73
|
+
colIdx: colIdx
|
|
74
|
+
}));
|
|
75
|
+
}, {});
|
|
76
|
+
}, [fields]);
|
|
77
|
+
var copyTableColumn = (0, _react.useCallback)(function (column) {
|
|
78
|
+
var _navigator;
|
|
79
|
+
var _colMeta$column = colMeta[column],
|
|
80
|
+
colIdx = _colMeta$column.colIdx,
|
|
81
|
+
type = _colMeta$column.type;
|
|
82
|
+
var text = dataContainer.mapIndex(function (row) {
|
|
83
|
+
return (0, _utils.parseFieldValue)(dataContainer.valueAt(row.index, colIdx), type);
|
|
84
|
+
}).join('\n');
|
|
85
|
+
(_navigator = navigator) === null || _navigator === void 0 || _navigator.clipboard.writeText(text);
|
|
86
|
+
}, [colMeta, dataContainer]);
|
|
87
|
+
var pinTableColumn = (0, _react.useCallback)(function (column) {
|
|
88
|
+
return pinnedColumns.includes(column) ? setPinnedColumns(pinnedColumns.filter(function (c) {
|
|
89
|
+
return c !== column;
|
|
90
|
+
})) : setPinnedColumns([].concat((0, _toConsumableArray2["default"])(pinnedColumns), [column]));
|
|
91
|
+
}, [pinnedColumns]);
|
|
92
|
+
|
|
93
|
+
// TODO Potentially costly operation for non row based data containers. Revisit sorting below.
|
|
94
|
+
var dataTableStyle = (0, _react.useMemo)(function () {
|
|
95
|
+
return {
|
|
96
|
+
minCellSize: minCellSize,
|
|
97
|
+
cellPadding: cellPadding,
|
|
98
|
+
optionsButton: theme.fieldTokenWidth + theme.fieldTokenRightMargin + optionButtonWidth + pinButton,
|
|
99
|
+
fontSize: theme.cellFontSize,
|
|
100
|
+
font: theme.fontFamily
|
|
101
|
+
};
|
|
102
|
+
}, [theme]);
|
|
103
|
+
var cellSizeCache = (0, _react.useMemo)(function () {
|
|
104
|
+
return columns.reduce(function (acc, column) {
|
|
105
|
+
var _colMeta$column2 = colMeta[column],
|
|
106
|
+
colIdx = _colMeta$column2.colIdx,
|
|
107
|
+
displayName = _colMeta$column2.displayName,
|
|
108
|
+
type = _colMeta$column2.type;
|
|
109
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, column, (0, _components.renderedSize)(_objectSpread({
|
|
110
|
+
text: {
|
|
111
|
+
dataContainer: dataContainer,
|
|
112
|
+
column: displayName
|
|
113
|
+
},
|
|
114
|
+
colIdx: colIdx,
|
|
115
|
+
type: type,
|
|
116
|
+
numRowsToCalculate: rowsToCalculatePreview
|
|
117
|
+
}, dataTableStyle))));
|
|
118
|
+
}, {});
|
|
119
|
+
}, [columns, colMeta, dataContainer, rowsToCalculatePreview, dataTableStyle]);
|
|
120
|
+
return /*#__PURE__*/_react["default"].createElement(_components.DataTable, {
|
|
121
|
+
colMeta: colMeta,
|
|
122
|
+
columns: columns,
|
|
123
|
+
cellSizeCache: cellSizeCache,
|
|
124
|
+
dataContainer: dataContainer,
|
|
125
|
+
pinnedColumns: pinnedColumns
|
|
126
|
+
// sortColumn={sortColumnConfig}
|
|
127
|
+
,
|
|
128
|
+
copyTableColumn: copyTableColumn,
|
|
129
|
+
pinTableColumn: pinTableColumn
|
|
130
|
+
// sortTableColumn={setTableSortColumn}
|
|
131
|
+
,
|
|
132
|
+
setColumnDisplayFormat: setColumnDisplayFormat !== null && setColumnDisplayFormat !== void 0 ? setColumnDisplayFormat : function () {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
var PreviewDataPanel = exports.PreviewDataPanel = (0, _styledComponents.withTheme)(PreviewDataPanelWOTheme);
|
|
138
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29tcG9uZW50cyIsIl91dGlscyIsIl9wcm9jZXNzb3JzIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJERUZBVUxUX1JPV1NfVE9fQ0FMQ1VMQVRFX1BSRVZJRVciLCJtaW5DZWxsU2l6ZSIsIm9wdGlvbkJ1dHRvbldpZHRoIiwicGluQnV0dG9uIiwiY2VsbFBhZGRpbmciLCJQcmV2aWV3RGF0YVBhbmVsV09UaGVtZSIsIl9yZWYiLCJyZXN1bHQiLCJfcmVmJHJvd3NUb0NhbGN1bGF0ZVAiLCJyb3dzVG9DYWxjdWxhdGVQcmV2aWV3Iiwic2V0Q29sdW1uRGlzcGxheUZvcm1hdCIsIl9yZWYkZGVmYXVsdFBpbm5lZENvbCIsImRlZmF1bHRQaW5uZWRDb2x1bW5zIiwidGhlbWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwaW5uZWRDb2x1bW5zIiwic2V0UGlubmVkQ29sdW1ucyIsImZpZWxkcyIsInVzZU1lbW8iLCJhcnJvd1NjaGVtYVRvRmllbGRzIiwic2NoZW1hIiwiZGF0YUNvbnRhaW5lciIsImNvbHMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiQXJyYXkiLCJudW1Db2xzIiwibWFwIiwiZ2V0Q2hpbGRBdCIsImNyZWF0ZURhdGFDb250YWluZXIiLCJpbnB1dERhdGFGb3JtYXQiLCJEYXRhRm9ybSIsIkNPTFNfQVJSQVkiLCJjb2x1bW5zIiwiZiIsIm5hbWUiLCJjb2xNZXRhIiwicmVkdWNlIiwiYWNjIiwiX3JlZjIiLCJjb2xJZHgiLCJkaXNwbGF5TmFtZSIsInR5cGUiLCJkaXNwbGF5Rm9ybWF0IiwidW5kZWZpbmVkIiwiY29weVRhYmxlQ29sdW1uIiwidXNlQ2FsbGJhY2siLCJjb2x1bW4iLCJfbmF2aWdhdG9yIiwiX2NvbE1ldGEkY29sdW1uIiwidGV4dCIsIm1hcEluZGV4Iiwicm93IiwicGFyc2VGaWVsZFZhbHVlIiwidmFsdWVBdCIsImluZGV4Iiwiam9pbiIsIm5hdmlnYXRvciIsImNsaXBib2FyZCIsIndyaXRlVGV4dCIsInBpblRhYmxlQ29sdW1uIiwiaW5jbHVkZXMiLCJjIiwiY29uY2F0IiwiZGF0YVRhYmxlU3R5bGUiLCJvcHRpb25zQnV0dG9uIiwiZmllbGRUb2tlbldpZHRoIiwiZmllbGRUb2tlblJpZ2h0TWFyZ2luIiwiZm9udFNpemUiLCJjZWxsRm9udFNpemUiLCJmb250IiwiZm9udEZhbWlseSIsImNlbGxTaXplQ2FjaGUiLCJfY29sTWV0YSRjb2x1bW4yIiwicmVuZGVyZWRTaXplIiwibnVtUm93c1RvQ2FsY3VsYXRlIiwiY3JlYXRlRWxlbWVudCIsIkRhdGFUYWJsZSIsIlByZXZpZXdEYXRhUGFuZWwiLCJleHBvcnRzIiwid2l0aFRoZW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvcHJldmlldy1kYXRhLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUsIENTU1Byb3BlcnRpZXN9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtEYXRhVGFibGUsIHJlbmRlcmVkU2l6ZX0gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7cGFyc2VGaWVsZFZhbHVlLCBjcmVhdGVEYXRhQ29udGFpbmVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7YXJyb3dTY2hlbWFUb0ZpZWxkc30gZnJvbSAnQGtlcGxlci5nbC9wcm9jZXNzb3JzJztcbmltcG9ydCB7RGF0YUZvcm19IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxudHlwZSBCYXNlQ29tcG9uZW50UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xufTtcblxuY29uc3QgREVGQVVMVF9ST1dTX1RPX0NBTENVTEFURV9QUkVWSUVXID0gMTAwO1xuLy8gbWluIENlbGxzaXplIHNob3VsZCB0YWtlIGludG8gYWNjb3VudCBvcHRpb24gYnV0dG9uIGFuZCBmaWVsZCB0b2tlblxuY29uc3QgbWluQ2VsbFNpemUgPSA4MDtcbi8vIG9wdGlvbiBidXR0b25zIGFuZCBmaWVsZCB0b2tlblxuY29uc3Qgb3B0aW9uQnV0dG9uV2lkdGggPSAyMDtcbmNvbnN0IHBpbkJ1dHRvbiA9IDIwO1xuY29uc3QgY2VsbFBhZGRpbmcgPSAyMDtcblxuZXhwb3J0IHR5cGUgQ29sTWV0YSA9IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIGNvbElkeDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFUYWJsZVN0eWxlID0ge1xuICBtaW5DZWxsU2l6ZT86IG51bWJlcjtcbiAgY2VsbFBhZGRpbmc/OiBudW1iZXI7XG4gIGZvbnRTaXplPzogbnVtYmVyO1xuICBmb250Pzogc3RyaW5nO1xuICBvcHRpb25zQnV0dG9uPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUHJldmlld0RhdGFQYW5lbFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICByZXN1bHQ6IGFueTtcbiAgcm93c1RvQ2FsY3VsYXRlUHJldmlldz86IG51bWJlcjtcbiAgdGhlbWU/OiBhbnk7XG4gIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ/OiAoZm9ybWF0czoge1trZXk6IHN0cmluZ106IHN0cmluZ30pID0+IHZvaWQ7XG4gIGRlZmF1bHRQaW5uZWRDb2x1bW5zPzogc3RyaW5nW107XG4gIGRhdGFUYWJsZVN0eWxlOiBEYXRhVGFibGVTdHlsZTtcbiAgb25BZGRSZXN1bHRUb01hcDogKHJlc3VsdDogYW55KSA9PiB2b2lkO1xufTtcblxuY29uc3QgUHJldmlld0RhdGFQYW5lbFdPVGhlbWU6IFJlYWN0LkZDPFByZXZpZXdEYXRhUGFuZWxQcm9wcz4gPSAoe1xuICByZXN1bHQsXG4gIHJvd3NUb0NhbGN1bGF0ZVByZXZpZXcgPSBERUZBVUxUX1JPV1NfVE9fQ0FMQ1VMQVRFX1BSRVZJRVcsXG4gIHNldENvbHVtbkRpc3BsYXlGb3JtYXQsXG4gIGRlZmF1bHRQaW5uZWRDb2x1bW5zID0gW10sXG4gIHRoZW1lXG59KSA9PiB7XG4gIGNvbnN0IFtwaW5uZWRDb2x1bW5zLCBzZXRQaW5uZWRDb2x1bW5zXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihkZWZhdWx0UGlubmVkQ29sdW1ucyk7XG4gIGNvbnN0IGZpZWxkcyA9IHVzZU1lbW8oKCkgPT4gYXJyb3dTY2hlbWFUb0ZpZWxkcyhyZXN1bHQuc2NoZW1hKSwgW3Jlc3VsdC5zY2hlbWFdKTtcbiAgY29uc3QgZGF0YUNvbnRhaW5lciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIGNvbnN0IGZpZWxkcyA9IGFycm93U2NoZW1hVG9GaWVsZHMocmVzdWx0LnNjaGVtYSk7XG5cbiAgICBjb25zdCBjb2xzID0gWy4uLkFycmF5KHJlc3VsdC5udW1Db2xzKS5rZXlzKCldLm1hcChpID0+IHJlc3VsdC5nZXRDaGlsZEF0KGkpKTtcblxuICAgIGNvbnN0IGRhdGFDb250YWluZXIgPSBjcmVhdGVEYXRhQ29udGFpbmVyKGNvbHMsIHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGlucHV0RGF0YUZvcm1hdDogRGF0YUZvcm0uQ09MU19BUlJBWVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhQ29udGFpbmVyO1xuICB9LCBbcmVzdWx0LCBmaWVsZHNdKTtcblxuICBjb25zdCBjb2x1bW5zID0gdXNlTWVtbygoKSA9PiBmaWVsZHMubWFwKGYgPT4gZi5uYW1lKSwgW2ZpZWxkc10pO1xuICBjb25zdCBjb2xNZXRhID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgZmllbGRzLnJlZHVjZShcbiAgICAgICAgKGFjYywge25hbWUsIGRpc3BsYXlOYW1lLCB0eXBlLCBkaXNwbGF5Rm9ybWF0fSwgY29sSWR4KSA9PiAoe1xuICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICBbbmFtZV06IHtcbiAgICAgICAgICAgIC8vIGJlY2F1c2UgJycgfHwgJ2FhYScgPSAnYWFhJ1xuICAgICAgICAgICAgbmFtZTogZGlzcGxheU5hbWUgIT09IHVuZGVmaW5lZCA/IGRpc3BsYXlOYW1lIDogbmFtZSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgZGlzcGxheUZvcm1hdCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBjb2xJZHhcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKSxcbiAgICBbZmllbGRzXVxuICApO1xuICBjb25zdCBjb3B5VGFibGVDb2x1bW4gPSB1c2VDYWxsYmFjayhcbiAgICBjb2x1bW4gPT4ge1xuICAgICAgY29uc3Qge2NvbElkeCwgdHlwZX0gPSBjb2xNZXRhW2NvbHVtbl07XG4gICAgICBjb25zdCB0ZXh0ID0gZGF0YUNvbnRhaW5lclxuICAgICAgICAubWFwSW5kZXgocm93ID0+IHBhcnNlRmllbGRWYWx1ZShkYXRhQ29udGFpbmVyLnZhbHVlQXQocm93LmluZGV4LCBjb2xJZHgpLCB0eXBlKSlcbiAgICAgICAgLmpvaW4oJ1xcbicpO1xuICAgICAgbmF2aWdhdG9yPy5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgIH0sXG4gICAgW2NvbE1ldGEsIGRhdGFDb250YWluZXJdXG4gICk7XG4gIGNvbnN0IHBpblRhYmxlQ29sdW1uID0gdXNlQ2FsbGJhY2soXG4gICAgY29sdW1uID0+XG4gICAgICBwaW5uZWRDb2x1bW5zLmluY2x1ZGVzKGNvbHVtbilcbiAgICAgICAgPyBzZXRQaW5uZWRDb2x1bW5zKHBpbm5lZENvbHVtbnMuZmlsdGVyKGMgPT4gYyAhPT0gY29sdW1uKSlcbiAgICAgICAgOiBzZXRQaW5uZWRDb2x1bW5zKFsuLi5waW5uZWRDb2x1bW5zLCBjb2x1bW5dKSxcbiAgICBbcGlubmVkQ29sdW1uc11cbiAgKTtcblxuICAvLyBUT0RPIFBvdGVudGlhbGx5IGNvc3RseSBvcGVyYXRpb24gZm9yIG5vbiByb3cgYmFzZWQgZGF0YSBjb250YWluZXJzLiBSZXZpc2l0IHNvcnRpbmcgYmVsb3cuXG4gIGNvbnN0IGRhdGFUYWJsZVN0eWxlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgbWluQ2VsbFNpemUsXG4gICAgICBjZWxsUGFkZGluZyxcbiAgICAgIG9wdGlvbnNCdXR0b246XG4gICAgICAgIHRoZW1lLmZpZWxkVG9rZW5XaWR0aCArIHRoZW1lLmZpZWxkVG9rZW5SaWdodE1hcmdpbiArIG9wdGlvbkJ1dHRvbldpZHRoICsgcGluQnV0dG9uLFxuICAgICAgZm9udFNpemU6IHRoZW1lLmNlbGxGb250U2l6ZSxcbiAgICAgIGZvbnQ6IHRoZW1lLmZvbnRGYW1pbHlcbiAgICB9KSxcbiAgICBbdGhlbWVdXG4gICk7XG4gIGNvbnN0IGNlbGxTaXplQ2FjaGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKGFjYywgY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCB7Y29sSWR4LCBkaXNwbGF5TmFtZSwgdHlwZX0gPSBjb2xNZXRhW2NvbHVtbl07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtjb2x1bW5dOiByZW5kZXJlZFNpemUoe1xuICAgICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgIGRhdGFDb250YWluZXIsXG4gICAgICAgICAgICBjb2x1bW46IGRpc3BsYXlOYW1lXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb2xJZHgsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBudW1Sb3dzVG9DYWxjdWxhdGU6IHJvd3NUb0NhbGN1bGF0ZVByZXZpZXcsXG4gICAgICAgICAgLi4uZGF0YVRhYmxlU3R5bGVcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfSwge30pO1xuICB9LCBbY29sdW1ucywgY29sTWV0YSwgZGF0YUNvbnRhaW5lciwgcm93c1RvQ2FsY3VsYXRlUHJldmlldywgZGF0YVRhYmxlU3R5bGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxEYXRhVGFibGVcbiAgICAgIGNvbE1ldGE9e2NvbE1ldGF9XG4gICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgY2VsbFNpemVDYWNoZT17Y2VsbFNpemVDYWNoZX1cbiAgICAgIGRhdGFDb250YWluZXI9e2RhdGFDb250YWluZXJ9XG4gICAgICBwaW5uZWRDb2x1bW5zPXtwaW5uZWRDb2x1bW5zfVxuICAgICAgLy8gICBzb3J0Q29sdW1uPXtzb3J0Q29sdW1uQ29uZmlnfVxuICAgICAgY29weVRhYmxlQ29sdW1uPXtjb3B5VGFibGVDb2x1bW59XG4gICAgICBwaW5UYWJsZUNvbHVtbj17cGluVGFibGVDb2x1bW59XG4gICAgICAvLyAgIHNvcnRUYWJsZUNvbHVtbj17c2V0VGFibGVTb3J0Q29sdW1ufVxuICAgICAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdD17c2V0Q29sdW1uRGlzcGxheUZvcm1hdCA/PyAoKCkgPT4gbnVsbCl9XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcmV2aWV3RGF0YVBhbmVsID0gd2l0aFRoZW1lKFxuICBQcmV2aWV3RGF0YVBhbmVsV09UaGVtZVxuKSBhcyBSZWFjdC5GQzxQcmV2aWV3RGF0YVBhbmVsUHJvcHM+O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGlCQUFBLEdBQUFKLE9BQUE7QUFBNEMsU0FBQUsseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEs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
|