@kepler.gl/duckdb 3.3.0-alpha.2 → 3.3.0-alpha.20
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/cjs/adapters/duckdb-wasm-adapter.js +258 -0
- package/dist/{components → cjs/components}/index.js +1 -1
- package/dist/cjs/components/monaco-editor.js +174 -0
- package/dist/cjs/components/preview-data-panel.js +127 -0
- package/dist/cjs/components/schema-panel.js +170 -0
- package/dist/cjs/components/sql-panel.js +395 -0
- package/dist/cjs/components/tree.js +90 -0
- package/dist/{index.js → cjs/index.js} +1 -1
- package/dist/{plugin.js → cjs/plugin.js} +2 -2
- package/dist/cjs/processors/data-processor.js +353 -0
- package/dist/cjs/table/duckdb-table-utils.js +675 -0
- package/dist/cjs/table/duckdb-table.js +553 -0
- package/dist/{table → cjs/table}/index.js +1 -1
- package/dist/cjs/utils/perf.js +46 -0
- package/dist/esm/adapters/duckdb-wasm-adapter.js +251 -0
- package/dist/esm/components/index.js +9 -0
- package/dist/esm/components/monaco-editor.js +167 -0
- package/dist/esm/components/preview-data-panel.js +120 -0
- package/dist/esm/components/schema-panel.js +164 -0
- package/dist/esm/components/sql-panel.js +388 -0
- package/dist/esm/components/tree.js +82 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/plugin.js +22 -0
- package/dist/esm/processors/data-processor.js +342 -0
- package/dist/esm/table/duckdb-table-utils.js +650 -0
- package/dist/esm/table/duckdb-table.js +548 -0
- package/dist/esm/table/index.js +5 -0
- package/dist/esm/utils/perf.js +40 -0
- package/dist/processors/data-processor.d.ts +2 -0
- package/dist/table/duckdb-table-utils.d.ts +11 -2
- package/dist/table/duckdb-table.d.ts +7 -0
- package/package.json +25 -22
- package/dist/adapters/duckdb-wasm-adapter.js +0 -259
- package/dist/components/monaco-editor.js +0 -175
- package/dist/components/preview-data-panel.js +0 -128
- package/dist/components/schema-panel.js +0 -171
- package/dist/components/sql-panel.js +0 -396
- package/dist/components/tree.js +0 -91
- package/dist/processors/data-processor.js +0 -353
- package/dist/table/duckdb-table-utils.js +0 -669
- package/dist/table/duckdb-table.js +0 -480
- package/dist/utils/perf.js +0 -46
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
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; }
|
|
5
|
+
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) { _defineProperty(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; }
|
|
6
|
+
// SPDX-License-Identifier: MIT
|
|
7
|
+
// Copyright contributors to the kepler.gl project
|
|
8
|
+
|
|
9
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
10
|
+
import { withTheme } from 'styled-components';
|
|
11
|
+
import { DataTable, renderedSize } from '@kepler.gl/components';
|
|
12
|
+
import { arrowSchemaToFields } from '@kepler.gl/processors';
|
|
13
|
+
import { parseFieldValue, createDataContainer, DataForm } from '@kepler.gl/utils';
|
|
14
|
+
var DEFAULT_ROWS_TO_CALCULATE_PREVIEW = 100;
|
|
15
|
+
// min Cellsize should take into account option button and field token
|
|
16
|
+
var minCellSize = 80;
|
|
17
|
+
// option buttons and field token
|
|
18
|
+
var optionButtonWidth = 20;
|
|
19
|
+
var pinButton = 20;
|
|
20
|
+
var cellPadding = 20;
|
|
21
|
+
var PreviewDataPanelWOTheme = function PreviewDataPanelWOTheme(_ref) {
|
|
22
|
+
var result = _ref.result,
|
|
23
|
+
_ref$rowsToCalculateP = _ref.rowsToCalculatePreview,
|
|
24
|
+
rowsToCalculatePreview = _ref$rowsToCalculateP === void 0 ? DEFAULT_ROWS_TO_CALCULATE_PREVIEW : _ref$rowsToCalculateP,
|
|
25
|
+
_ref$defaultPinnedCol = _ref.defaultPinnedColumns,
|
|
26
|
+
defaultPinnedColumns = _ref$defaultPinnedCol === void 0 ? [] : _ref$defaultPinnedCol,
|
|
27
|
+
theme = _ref.theme;
|
|
28
|
+
var _useState = useState(defaultPinnedColumns),
|
|
29
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
+
pinnedColumns = _useState2[0],
|
|
31
|
+
setPinnedColumns = _useState2[1];
|
|
32
|
+
var fields = useMemo(function () {
|
|
33
|
+
return arrowSchemaToFields(result.table, result.tableDuckDBTypes);
|
|
34
|
+
}, [result]);
|
|
35
|
+
var dataContainer = useMemo(function () {
|
|
36
|
+
var cols = _toConsumableArray(Array(result.table.numCols).keys()).map(function (i) {
|
|
37
|
+
return result.table.getChildAt(i);
|
|
38
|
+
});
|
|
39
|
+
var dataContainer = createDataContainer(cols, {
|
|
40
|
+
fields: fields,
|
|
41
|
+
inputDataFormat: DataForm.COLS_ARRAY
|
|
42
|
+
});
|
|
43
|
+
return dataContainer;
|
|
44
|
+
}, [result, fields]);
|
|
45
|
+
var columns = useMemo(function () {
|
|
46
|
+
return fields.map(function (f) {
|
|
47
|
+
return f.name;
|
|
48
|
+
});
|
|
49
|
+
}, [fields]);
|
|
50
|
+
var colMeta = useMemo(function () {
|
|
51
|
+
return fields.reduce(function (acc, _ref2, colIdx) {
|
|
52
|
+
var name = _ref2.name,
|
|
53
|
+
displayName = _ref2.displayName,
|
|
54
|
+
type = _ref2.type,
|
|
55
|
+
displayFormat = _ref2.displayFormat;
|
|
56
|
+
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, name, {
|
|
57
|
+
// because '' || 'aaa' = 'aaa'
|
|
58
|
+
name: displayName !== undefined ? displayName : name,
|
|
59
|
+
displayName: displayName,
|
|
60
|
+
displayFormat: displayFormat,
|
|
61
|
+
type: type,
|
|
62
|
+
colIdx: colIdx
|
|
63
|
+
}));
|
|
64
|
+
}, {});
|
|
65
|
+
}, [fields]);
|
|
66
|
+
var copyTableColumn = useCallback(function (column) {
|
|
67
|
+
var _navigator;
|
|
68
|
+
var _colMeta$column = colMeta[column],
|
|
69
|
+
colIdx = _colMeta$column.colIdx,
|
|
70
|
+
type = _colMeta$column.type;
|
|
71
|
+
var text = dataContainer.mapIndex(function (row) {
|
|
72
|
+
return parseFieldValue(dataContainer.valueAt(row.index, colIdx), type);
|
|
73
|
+
}).join('\n');
|
|
74
|
+
(_navigator = navigator) === null || _navigator === void 0 || _navigator.clipboard.writeText(text);
|
|
75
|
+
}, [colMeta, dataContainer]);
|
|
76
|
+
var pinTableColumn = useCallback(function (column) {
|
|
77
|
+
return pinnedColumns.includes(column) ? setPinnedColumns(pinnedColumns.filter(function (c) {
|
|
78
|
+
return c !== column;
|
|
79
|
+
})) : setPinnedColumns([].concat(_toConsumableArray(pinnedColumns), [column]));
|
|
80
|
+
}, [pinnedColumns]);
|
|
81
|
+
|
|
82
|
+
// TODO Potentially costly operation for non row based data containers. Revisit sorting below.
|
|
83
|
+
var dataTableStyle = useMemo(function () {
|
|
84
|
+
return {
|
|
85
|
+
minCellSize: minCellSize,
|
|
86
|
+
cellPadding: cellPadding,
|
|
87
|
+
optionsButton: theme.fieldTokenWidth + theme.fieldTokenRightMargin + optionButtonWidth + pinButton,
|
|
88
|
+
fontSize: theme.cellFontSize,
|
|
89
|
+
font: theme.fontFamily
|
|
90
|
+
};
|
|
91
|
+
}, [theme]);
|
|
92
|
+
var cellSizeCache = useMemo(function () {
|
|
93
|
+
return columns.reduce(function (acc, column) {
|
|
94
|
+
var _colMeta$column2 = colMeta[column],
|
|
95
|
+
colIdx = _colMeta$column2.colIdx,
|
|
96
|
+
displayName = _colMeta$column2.displayName,
|
|
97
|
+
type = _colMeta$column2.type;
|
|
98
|
+
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, column, renderedSize(_objectSpread({
|
|
99
|
+
text: {
|
|
100
|
+
dataContainer: dataContainer,
|
|
101
|
+
column: displayName
|
|
102
|
+
},
|
|
103
|
+
colIdx: colIdx,
|
|
104
|
+
type: type,
|
|
105
|
+
numRowsToCalculate: rowsToCalculatePreview
|
|
106
|
+
}, dataTableStyle))));
|
|
107
|
+
}, {});
|
|
108
|
+
}, [columns, colMeta, dataContainer, rowsToCalculatePreview, dataTableStyle]);
|
|
109
|
+
return /*#__PURE__*/React.createElement(DataTable, {
|
|
110
|
+
colMeta: colMeta,
|
|
111
|
+
columns: columns,
|
|
112
|
+
cellSizeCache: cellSizeCache,
|
|
113
|
+
dataContainer: dataContainer,
|
|
114
|
+
pinnedColumns: pinnedColumns,
|
|
115
|
+
copyTableColumn: copyTableColumn,
|
|
116
|
+
pinTableColumn: pinTableColumn
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
export var PreviewDataPanel = withTheme(PreviewDataPanelWOTheme);
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInVzZVN0YXRlIiwid2l0aFRoZW1lIiwiRGF0YVRhYmxlIiwicmVuZGVyZWRTaXplIiwiYXJyb3dTY2hlbWFUb0ZpZWxkcyIsInBhcnNlRmllbGRWYWx1ZSIsImNyZWF0ZURhdGFDb250YWluZXIiLCJEYXRhRm9ybSIsIkRFRkFVTFRfUk9XU19UT19DQUxDVUxBVEVfUFJFVklFVyIsIm1pbkNlbGxTaXplIiwib3B0aW9uQnV0dG9uV2lkdGgiLCJwaW5CdXR0b24iLCJjZWxsUGFkZGluZyIsIlByZXZpZXdEYXRhUGFuZWxXT1RoZW1lIiwiX3JlZiIsInJlc3VsdCIsIl9yZWYkcm93c1RvQ2FsY3VsYXRlUCIsInJvd3NUb0NhbGN1bGF0ZVByZXZpZXciLCJfcmVmJGRlZmF1bHRQaW5uZWRDb2wiLCJkZWZhdWx0UGlubmVkQ29sdW1ucyIsInRoZW1lIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicGlubmVkQ29sdW1ucyIsInNldFBpbm5lZENvbHVtbnMiLCJmaWVsZHMiLCJ0YWJsZSIsInRhYmxlRHVja0RCVHlwZXMiLCJkYXRhQ29udGFpbmVyIiwiY29scyIsIl90b0NvbnN1bWFibGVBcnJheSIsIkFycmF5IiwibnVtQ29scyIsImtleXMiLCJtYXAiLCJpIiwiZ2V0Q2hpbGRBdCIsImlucHV0RGF0YUZvcm1hdCIsIkNPTFNfQVJSQVkiLCJjb2x1bW5zIiwiZiIsIm5hbWUiLCJjb2xNZXRhIiwicmVkdWNlIiwiYWNjIiwiX3JlZjIiLCJjb2xJZHgiLCJkaXNwbGF5TmFtZSIsInR5cGUiLCJkaXNwbGF5Rm9ybWF0IiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsInVuZGVmaW5lZCIsImNvcHlUYWJsZUNvbHVtbiIsImNvbHVtbiIsIl9uYXZpZ2F0b3IiLCJfY29sTWV0YSRjb2x1bW4iLCJ0ZXh0IiwibWFwSW5kZXgiLCJyb3ciLCJ2YWx1ZUF0IiwiaW5kZXgiLCJqb2luIiwibmF2aWdhdG9yIiwiY2xpcGJvYXJkIiwid3JpdGVUZXh0IiwicGluVGFibGVDb2x1bW4iLCJpbmNsdWRlcyIsImZpbHRlciIsImMiLCJjb25jYXQiLCJkYXRhVGFibGVTdHlsZSIsIm9wdGlvbnNCdXR0b24iLCJmaWVsZFRva2VuV2lkdGgiLCJmaWVsZFRva2VuUmlnaHRNYXJnaW4iLCJmb250U2l6ZSIsImNlbGxGb250U2l6ZSIsImZvbnQiLCJmb250RmFtaWx5IiwiY2VsbFNpemVDYWNoZSIsIl9jb2xNZXRhJGNvbHVtbjIiLCJudW1Sb3dzVG9DYWxjdWxhdGUiLCJjcmVhdGVFbGVtZW50IiwiUHJldmlld0RhdGFQYW5lbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ByZXZpZXctZGF0YS1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0ICogYXMgYXJyb3cgZnJvbSAnYXBhY2hlLWFycm93JztcbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSwgQ1NTUHJvcGVydGllc30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtEYXRhVGFibGUsIHJlbmRlcmVkU2l6ZX0gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7YXJyb3dTY2hlbWFUb0ZpZWxkc30gZnJvbSAnQGtlcGxlci5nbC9wcm9jZXNzb3JzJztcbmltcG9ydCB7cGFyc2VGaWVsZFZhbHVlLCBjcmVhdGVEYXRhQ29udGFpbmVyLCBEYXRhRm9ybX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbnR5cGUgQmFzZUNvbXBvbmVudFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN0eWxlPzogQ1NTUHJvcGVydGllcztcbn07XG5cbmNvbnN0IERFRkFVTFRfUk9XU19UT19DQUxDVUxBVEVfUFJFVklFVyA9IDEwMDtcbi8vIG1pbiBDZWxsc2l6ZSBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgb3B0aW9uIGJ1dHRvbiBhbmQgZmllbGQgdG9rZW5cbmNvbnN0IG1pbkNlbGxTaXplID0gODA7XG4vLyBvcHRpb24gYnV0dG9ucyBhbmQgZmllbGQgdG9rZW5cbmNvbnN0IG9wdGlvbkJ1dHRvbldpZHRoID0gMjA7XG5jb25zdCBwaW5CdXR0b24gPSAyMDtcbmNvbnN0IGNlbGxQYWRkaW5nID0gMjA7XG5cbmV4cG9ydCB0eXBlIENvbE1ldGEgPSB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBjb2xJZHg6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhVGFibGVTdHlsZSA9IHtcbiAgbWluQ2VsbFNpemU/OiBudW1iZXI7XG4gIGNlbGxQYWRkaW5nPzogbnVtYmVyO1xuICBmb250U2l6ZT86IG51bWJlcjtcbiAgZm9udD86IHN0cmluZztcbiAgb3B0aW9uc0J1dHRvbj86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5UmVzdWx0ID0ge1xuICB0YWJsZTogYXJyb3cuVGFibGU7XG4gIHRhYmxlRHVja0RCVHlwZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59O1xuXG5leHBvcnQgdHlwZSBQcmV2aWV3RGF0YVBhbmVsUHJvcHMgPSBCYXNlQ29tcG9uZW50UHJvcHMgJiB7XG4gIHJlc3VsdDogUXVlcnlSZXN1bHQ7XG4gIHJvd3NUb0NhbGN1bGF0ZVByZXZpZXc/OiBudW1iZXI7XG4gIHRoZW1lPzogYW55O1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PzogKGZvcm1hdHM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PiB2b2lkO1xuICBkZWZhdWx0UGlubmVkQ29sdW1ucz86IHN0cmluZ1tdO1xuICBkYXRhVGFibGVTdHlsZTogRGF0YVRhYmxlU3R5bGU7XG4gIG9uQWRkUmVzdWx0VG9NYXA6IChyZXN1bHQ6IFF1ZXJ5UmVzdWx0KSA9PiB2b2lkO1xufTtcblxuY29uc3QgUHJldmlld0RhdGFQYW5lbFdPVGhlbWU6IFJlYWN0LkZDPFByZXZpZXdEYXRhUGFuZWxQcm9wcz4gPSAoe1xuICByZXN1bHQsXG4gIHJvd3NUb0NhbGN1bGF0ZVByZXZpZXcgPSBERUZBVUxUX1JPV1NfVE9fQ0FMQ1VMQVRFX1BSRVZJRVcsXG4gIGRlZmF1bHRQaW5uZWRDb2x1bW5zID0gW10sXG4gIHRoZW1lXG59KSA9PiB7XG4gIGNvbnN0IFtwaW5uZWRDb2x1bW5zLCBzZXRQaW5uZWRDb2x1bW5zXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihkZWZhdWx0UGlubmVkQ29sdW1ucyk7XG4gIGNvbnN0IGZpZWxkcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gYXJyb3dTY2hlbWFUb0ZpZWxkcyhyZXN1bHQudGFibGUsIHJlc3VsdC50YWJsZUR1Y2tEQlR5cGVzKSxcbiAgICBbcmVzdWx0XVxuICApO1xuICBjb25zdCBkYXRhQ29udGFpbmVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgY29scyA9IFsuLi5BcnJheShyZXN1bHQudGFibGUubnVtQ29scykua2V5cygpXS5tYXAoaSA9PiByZXN1bHQudGFibGUuZ2V0Q2hpbGRBdChpKSk7XG5cbiAgICBjb25zdCBkYXRhQ29udGFpbmVyID0gY3JlYXRlRGF0YUNvbnRhaW5lcihjb2xzLCB7XG4gICAgICBmaWVsZHMsXG4gICAgICBpbnB1dERhdGFGb3JtYXQ6IERhdGFGb3JtLkNPTFNfQVJSQVlcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YUNvbnRhaW5lcjtcbiAgfSwgW3Jlc3VsdCwgZmllbGRzXSk7XG5cbiAgY29uc3QgY29sdW1ucyA9IHVzZU1lbW8oKCkgPT4gZmllbGRzLm1hcChmID0+IGYubmFtZSksIFtmaWVsZHNdKTtcbiAgY29uc3QgY29sTWV0YSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGZpZWxkcy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHtuYW1lLCBkaXNwbGF5TmFtZSwgdHlwZSwgZGlzcGxheUZvcm1hdH0sIGNvbElkeCkgPT4gKHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgW25hbWVdOiB7XG4gICAgICAgICAgICAvLyBiZWNhdXNlICcnIHx8ICdhYWEnID0gJ2FhYSdcbiAgICAgICAgICAgIG5hbWU6IGRpc3BsYXlOYW1lICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5TmFtZSA6IG5hbWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIGRpc3BsYXlGb3JtYXQsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgY29sSWR4XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAge31cbiAgICAgICksXG4gICAgW2ZpZWxkc11cbiAgKTtcbiAgY29uc3QgY29weVRhYmxlQ29sdW1uID0gdXNlQ2FsbGJhY2soXG4gICAgY29sdW1uID0+IHtcbiAgICAgIGNvbnN0IHtjb2xJZHgsIHR5cGV9ID0gY29sTWV0YVtjb2x1bW5dO1xuICAgICAgY29uc3QgdGV4dCA9IGRhdGFDb250YWluZXJcbiAgICAgICAgLm1hcEluZGV4KHJvdyA9PiBwYXJzZUZpZWxkVmFsdWUoZGF0YUNvbnRhaW5lci52YWx1ZUF0KHJvdy5pbmRleCwgY29sSWR4KSwgdHlwZSkpXG4gICAgICAgIC5qb2luKCdcXG4nKTtcbiAgICAgIG5hdmlnYXRvcj8uY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICB9LFxuICAgIFtjb2xNZXRhLCBkYXRhQ29udGFpbmVyXVxuICApO1xuICBjb25zdCBwaW5UYWJsZUNvbHVtbiA9IHVzZUNhbGxiYWNrKFxuICAgIGNvbHVtbiA9PlxuICAgICAgcGlubmVkQ29sdW1ucy5pbmNsdWRlcyhjb2x1bW4pXG4gICAgICAgID8gc2V0UGlubmVkQ29sdW1ucyhwaW5uZWRDb2x1bW5zLmZpbHRlcihjID0+IGMgIT09IGNvbHVtbikpXG4gICAgICAgIDogc2V0UGlubmVkQ29sdW1ucyhbLi4ucGlubmVkQ29sdW1ucywgY29sdW1uXSksXG4gICAgW3Bpbm5lZENvbHVtbnNdXG4gICk7XG5cbiAgLy8gVE9ETyBQb3RlbnRpYWxseSBjb3N0bHkgb3BlcmF0aW9uIGZvciBub24gcm93IGJhc2VkIGRhdGEgY29udGFpbmVycy4gUmV2aXNpdCBzb3J0aW5nIGJlbG93LlxuICBjb25zdCBkYXRhVGFibGVTdHlsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIG1pbkNlbGxTaXplLFxuICAgICAgY2VsbFBhZGRpbmcsXG4gICAgICBvcHRpb25zQnV0dG9uOlxuICAgICAgICB0aGVtZS5maWVsZFRva2VuV2lkdGggKyB0aGVtZS5maWVsZFRva2VuUmlnaHRNYXJnaW4gKyBvcHRpb25CdXR0b25XaWR0aCArIHBpbkJ1dHRvbixcbiAgICAgIGZvbnRTaXplOiB0aGVtZS5jZWxsRm9udFNpemUsXG4gICAgICBmb250OiB0aGVtZS5mb250RmFtaWx5XG4gICAgfSksXG4gICAgW3RoZW1lXVxuICApO1xuICBjb25zdCBjZWxsU2l6ZUNhY2hlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChhY2MsIGNvbHVtbikgPT4ge1xuICAgICAgY29uc3Qge2NvbElkeCwgZGlzcGxheU5hbWUsIHR5cGV9ID0gY29sTWV0YVtjb2x1bW5dO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbY29sdW1uXTogcmVuZGVyZWRTaXplKHtcbiAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICBkYXRhQ29udGFpbmVyLFxuICAgICAgICAgICAgY29sdW1uOiBkaXNwbGF5TmFtZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29sSWR4LFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgbnVtUm93c1RvQ2FsY3VsYXRlOiByb3dzVG9DYWxjdWxhdGVQcmV2aWV3LFxuICAgICAgICAgIC4uLmRhdGFUYWJsZVN0eWxlXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH0sIHt9KTtcbiAgfSwgW2NvbHVtbnMsIGNvbE1ldGEsIGRhdGFDb250YWluZXIsIHJvd3NUb0NhbGN1bGF0ZVByZXZpZXcsIGRhdGFUYWJsZVN0eWxlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RGF0YVRhYmxlXG4gICAgICBjb2xNZXRhPXtjb2xNZXRhfVxuICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgIGNlbGxTaXplQ2FjaGU9e2NlbGxTaXplQ2FjaGV9XG4gICAgICBkYXRhQ29udGFpbmVyPXtkYXRhQ29udGFpbmVyfVxuICAgICAgcGlubmVkQ29sdW1ucz17cGlubmVkQ29sdW1uc31cbiAgICAgIGNvcHlUYWJsZUNvbHVtbj17Y29weVRhYmxlQ29sdW1ufVxuICAgICAgcGluVGFibGVDb2x1bW49e3BpblRhYmxlQ29sdW1ufVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJldmlld0RhdGFQYW5lbCA9IHdpdGhUaGVtZShcbiAgUHJldmlld0RhdGFQYW5lbFdPVGhlbWVcbikgYXMgUmVhY3QuRkM8UHJldmlld0RhdGFQYW5lbFByb3BzPjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBOztBQUdBLE9BQU9BLEtBQUssSUFBR0MsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBc0IsT0FBTztBQUMxRSxTQUFRQyxTQUFTLFFBQU8sbUJBQW1CO0FBRTNDLFNBQVFDLFNBQVMsRUFBRUMsWUFBWSxRQUFPLHVCQUF1QjtBQUM3RCxTQUFRQyxtQkFBbUIsUUFBTyx1QkFBdUI7QUFDekQsU0FBUUMsZUFBZSxFQUFFQyxtQkFBbUIsRUFBRUMsUUFBUSxRQUFPLGtCQUFrQjtBQU8vRSxJQUFNQyxpQ0FBaUMsR0FBRyxHQUFHO0FBQzdDO0FBQ0EsSUFBTUMsV0FBVyxHQUFHLEVBQUU7QUFDdEI7QUFD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
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
4
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
5
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
6
|
+
// SPDX-License-Identifier: MIT
|
|
7
|
+
// Copyright contributors to the kepler.gl project
|
|
8
|
+
|
|
9
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
10
|
+
import { useSelector } from 'react-redux';
|
|
11
|
+
import styled from 'styled-components';
|
|
12
|
+
import { LoadingSpinner, Icons } from '@kepler.gl/components';
|
|
13
|
+
import { arrowSchemaToFields } from '@kepler.gl/processors';
|
|
14
|
+
import { getApplicationConfig } from '@kepler.gl/utils';
|
|
15
|
+
import { Tree, DatasetNode, ColumnNode } from './tree';
|
|
16
|
+
import { getDuckDBColumnTypes, getDuckDBColumnTypesMap } from '../table/duckdb-table-utils';
|
|
17
|
+
|
|
18
|
+
// TODO note that demo state is available in demo-app, but not when add modules to dependencies in a custom map
|
|
19
|
+
|
|
20
|
+
var StyledSchemaPanel = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 12px;\n padding: 12px;\n font-family: ", ";\n height: 100%;\n"])), function (props) {
|
|
21
|
+
return props.theme.textColor;
|
|
22
|
+
}, function (props) {
|
|
23
|
+
return props.theme.fontFamily;
|
|
24
|
+
});
|
|
25
|
+
var StyledLoadingSpinnerWrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n"])));
|
|
26
|
+
function getColumnSchema(_x, _x2) {
|
|
27
|
+
return _getColumnSchema.apply(this, arguments);
|
|
28
|
+
}
|
|
29
|
+
function _getColumnSchema() {
|
|
30
|
+
_getColumnSchema = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(connection, tableName) {
|
|
31
|
+
var columnResult, columnDescribe, keplerFields;
|
|
32
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
33
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
34
|
+
case 0:
|
|
35
|
+
_context2.next = 2;
|
|
36
|
+
return connection.query("Select * from '".concat(tableName, "' LIMIT 1;"));
|
|
37
|
+
case 2:
|
|
38
|
+
columnResult = _context2.sent;
|
|
39
|
+
_context2.next = 5;
|
|
40
|
+
return getDuckDBColumnTypes(connection, tableName);
|
|
41
|
+
case 5:
|
|
42
|
+
columnDescribe = _context2.sent;
|
|
43
|
+
keplerFields = arrowSchemaToFields(columnResult, getDuckDBColumnTypesMap(columnDescribe));
|
|
44
|
+
return _context2.abrupt("return", {
|
|
45
|
+
key: tableName,
|
|
46
|
+
object: {
|
|
47
|
+
type: 'dataset',
|
|
48
|
+
tableName: tableName
|
|
49
|
+
},
|
|
50
|
+
children: columnResult.schema.fields.map(function (field, fieldIndex) {
|
|
51
|
+
return {
|
|
52
|
+
key: field.name,
|
|
53
|
+
object: {
|
|
54
|
+
type: 'column',
|
|
55
|
+
name: field.name,
|
|
56
|
+
arrowType: field.type,
|
|
57
|
+
fieldType: keplerFields[fieldIndex].type
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
case 8:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context2.stop();
|
|
65
|
+
}
|
|
66
|
+
}, _callee2);
|
|
67
|
+
}));
|
|
68
|
+
return _getColumnSchema.apply(this, arguments);
|
|
69
|
+
}
|
|
70
|
+
function getSchemaSuggestion(result) {
|
|
71
|
+
return result.reduce(function (accu, data) {
|
|
72
|
+
var columns = data.children.map(function (child) {
|
|
73
|
+
return {
|
|
74
|
+
column_name: child.key,
|
|
75
|
+
table_name: data.key
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
return accu.concat(columns);
|
|
79
|
+
}, []);
|
|
80
|
+
}
|
|
81
|
+
var StyledSchemaPanelDropMessage = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n flex-direction: column;\n text-align: center;\n\n div {\n margin: 5px;\n }\n .header {\n font-size: 15px;\n }\n .bold {\n font-weight: 700;\n }\n"])));
|
|
82
|
+
var StyledAddIcon = styled(Icons.Add)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: inline;\n margin-top: -3px;\n"])));
|
|
83
|
+
export var SchemaPanelDropMessage = function SchemaPanelDropMessage() {
|
|
84
|
+
return /*#__PURE__*/React.createElement(StyledSchemaPanelDropMessage, null, /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: "header"
|
|
86
|
+
}, /*#__PURE__*/React.createElement(StyledAddIcon, null), " Add files to DuckDB"), /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
className: "bold"
|
|
88
|
+
}, "Supported formats: "), /*#__PURE__*/React.createElement("div", null, ".csv, .json, .geojson, .parquet, .arrow"), /*#__PURE__*/React.createElement("div", null, "Files you add will stay local to your browser."));
|
|
89
|
+
};
|
|
90
|
+
export var SchemaPanel = function SchemaPanel(_ref) {
|
|
91
|
+
var setTableSchema = _ref.setTableSchema,
|
|
92
|
+
droppedFile = _ref.droppedFile,
|
|
93
|
+
schemaUpdateTrigger = _ref.schemaUpdateTrigger;
|
|
94
|
+
var _useState = useState([]),
|
|
95
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
96
|
+
columnSchemas = _useState2[0],
|
|
97
|
+
setColumnSchemas = _useState2[1];
|
|
98
|
+
var datasets = useSelector(function (state) {
|
|
99
|
+
var _state$demo;
|
|
100
|
+
return state === null || state === void 0 || (_state$demo = state.demo) === null || _state$demo === void 0 || (_state$demo = _state$demo.keplerGl) === null || _state$demo === void 0 || (_state$demo = _state$demo.map) === null || _state$demo === void 0 ? void 0 : _state$demo.visState.datasets;
|
|
101
|
+
});
|
|
102
|
+
var getTableSchema = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
103
|
+
var _tableResult$getChild, _ref3;
|
|
104
|
+
var db, c, tableResult, tableNames, result, tableSchema;
|
|
105
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
106
|
+
while (1) switch (_context.prev = _context.next) {
|
|
107
|
+
case 0:
|
|
108
|
+
db = getApplicationConfig().database;
|
|
109
|
+
if (db) {
|
|
110
|
+
_context.next = 4;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
console.error('The database is not configured properly.');
|
|
114
|
+
return _context.abrupt("return");
|
|
115
|
+
case 4:
|
|
116
|
+
_context.next = 6;
|
|
117
|
+
return db.connect();
|
|
118
|
+
case 6:
|
|
119
|
+
c = _context.sent;
|
|
120
|
+
_context.next = 9;
|
|
121
|
+
return c.query('SHOW TABLES;');
|
|
122
|
+
case 9:
|
|
123
|
+
tableResult = _context.sent;
|
|
124
|
+
tableNames = (_tableResult$getChild = tableResult.getChildAt(0)) === null || _tableResult$getChild === void 0 ? void 0 : _tableResult$getChild.toJSON();
|
|
125
|
+
_context.next = 13;
|
|
126
|
+
return Promise.all((_ref3 = tableNames || []) === null || _ref3 === void 0 ? void 0 : _ref3.map(function (name) {
|
|
127
|
+
return getColumnSchema(c, name);
|
|
128
|
+
}));
|
|
129
|
+
case 13:
|
|
130
|
+
result = _context.sent;
|
|
131
|
+
tableSchema = getSchemaSuggestion(result);
|
|
132
|
+
setColumnSchemas(result);
|
|
133
|
+
setTableSchema(tableSchema);
|
|
134
|
+
_context.next = 19;
|
|
135
|
+
return c.close();
|
|
136
|
+
case 19:
|
|
137
|
+
case "end":
|
|
138
|
+
return _context.stop();
|
|
139
|
+
}
|
|
140
|
+
}, _callee);
|
|
141
|
+
})), [setColumnSchemas, setTableSchema, schemaUpdateTrigger]);
|
|
142
|
+
useEffect(function () {
|
|
143
|
+
getTableSchema();
|
|
144
|
+
}, [datasets, droppedFile, getTableSchema]);
|
|
145
|
+
return /*#__PURE__*/React.createElement(StyledSchemaPanel, null, columnSchemas !== null && columnSchemas !== void 0 && columnSchemas.length ? columnSchemas.map(function (data) {
|
|
146
|
+
return /*#__PURE__*/React.createElement(Tree, {
|
|
147
|
+
key: data.key,
|
|
148
|
+
treeData: data,
|
|
149
|
+
renderNode: function renderNode(node) {
|
|
150
|
+
if (node.object.type === 'dataset') {
|
|
151
|
+
return /*#__PURE__*/React.createElement(DatasetNode, {
|
|
152
|
+
node: node
|
|
153
|
+
});
|
|
154
|
+
} else if (node.object.type === 'column') {
|
|
155
|
+
return /*#__PURE__*/React.createElement(ColumnNode, {
|
|
156
|
+
node: node
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}) : droppedFile ? /*#__PURE__*/React.createElement(StyledLoadingSpinnerWrapper, null, /*#__PURE__*/React.createElement(LoadingSpinner, null)) : /*#__PURE__*/React.createElement(SchemaPanelDropMessage, null));
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VTZWxlY3RvciIsInN0eWxlZCIsIkxvYWRpbmdTcGlubmVyIiwiSWNvbnMiLCJhcnJvd1NjaGVtYVRvRmllbGRzIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJUcmVlIiwiRGF0YXNldE5vZGUiLCJDb2x1bW5Ob2RlIiwiZ2V0RHVja0RCQ29sdW1uVHlwZXMiLCJnZXREdWNrREJDb2x1bW5UeXBlc01hcCIsIlN0eWxlZFNjaGVtYVBhbmVsIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3IiLCJmb250RmFtaWx5IiwiU3R5bGVkTG9hZGluZ1NwaW5uZXJXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MiIsImdldENvbHVtblNjaGVtYSIsIl94IiwiX3gyIiwiX2dldENvbHVtblNjaGVtYSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUyIiwiY29ubmVjdGlvbiIsInRhYmxlTmFtZSIsImNvbHVtblJlc3VsdCIsImNvbHVtbkRlc2NyaWJlIiwia2VwbGVyRmllbGRzIiwid3JhcCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInByZXYiLCJuZXh0IiwicXVlcnkiLCJjb25jYXQiLCJzZW50IiwiYWJydXB0Iiwia2V5Iiwib2JqZWN0IiwidHlwZSIsImNoaWxkcmVuIiwic2NoZW1hIiwiZmllbGRzIiwibWFwIiwiZmllbGQiLCJmaWVsZEluZGV4IiwibmFtZSIsImFycm93VHlwZSIsImZpZWxkVHlwZSIsInN0b3AiLCJnZXRTY2hlbWFTdWdnZXN0aW9uIiwicmVzdWx0IiwicmVkdWNlIiwiYWNjdSIsImRhdGEiLCJjb2x1bW5zIiwiY2hpbGQiLCJjb2x1bW5fbmFtZSIsInRhYmxlX25hbWUiLCJTdHlsZWRTY2hlbWFQYW5lbERyb3BNZXNzYWdlIiwiX3RlbXBsYXRlT2JqZWN0MyIsIlN0eWxlZEFkZEljb24iLCJBZGQiLCJfdGVtcGxhdGVPYmplY3Q0IiwiU2NoZW1hUGFuZWxEcm9wTWVzc2FnZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTY2hlbWFQYW5lbCIsIl9yZWYiLCJzZXRUYWJsZVNjaGVtYSIsImRyb3BwZWRGaWxlIiwic2NoZW1hVXBkYXRlVHJpZ2dlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNvbHVtblNjaGVtYXMiLCJzZXRDb2x1bW5TY2hlbWFzIiwiZGF0YXNldHMiLCJzdGF0ZSIsIl9zdGF0ZSRkZW1vIiwiZGVtbyIsImtlcGxlckdsIiwidmlzU3RhdGUiLCJnZXRUYWJsZVNjaGVtYSIsIl9jYWxsZWUiLCJfdGFibGVSZXN1bHQkZ2V0Q2hpbGQiLCJfcmVmMyIsImRiIiwiYyIsInRhYmxlUmVzdWx0IiwidGFibGVOYW1lcyIsInRhYmxlU2NoZW1hIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRhdGFiYXNlIiwiY29uc29sZSIsImVycm9yIiwiY29ubmVjdCIsImdldENoaWxkQXQiLCJ0b0pTT04iLCJQcm9taXNlIiwiYWxsIiwiY2xvc2UiLCJsZW5ndGgiLCJ0cmVlRGF0YSIsInJlbmRlck5vZGUiLCJub2RlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2NoZW1hLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VTZWxlY3Rvcn0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7TG9hZGluZ1NwaW5uZXIsIEljb25zfSBmcm9tICdAa2VwbGVyLmdsL2NvbXBvbmVudHMnO1xuaW1wb3J0IHthcnJvd1NjaGVtYVRvRmllbGRzfSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWcsIERhdGFiYXNlQ29ubmVjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7VHJlZSwgRGF0YXNldE5vZGUsIENvbHVtbk5vZGUsIFRyZWVOb2RlRGF0YX0gZnJvbSAnLi90cmVlJztcbmltcG9ydCB7Z2V0RHVja0RCQ29sdW1uVHlwZXMsIGdldER1Y2tEQkNvbHVtblR5cGVzTWFwfSBmcm9tICcuLi90YWJsZS9kdWNrZGItdGFibGUtdXRpbHMnO1xuXG4vLyBUT0RPIG5vdGUgdGhhdCBkZW1vIHN0YXRlIGlzIGF2YWlsYWJsZSBpbiBkZW1vLWFwcCwgYnV0IG5vdCB3aGVuIGFkZCBtb2R1bGVzIHRvIGRlcGVuZGVuY2llcyBpbiBhIGN1c3RvbSBtYXBcbnR5cGUgU3RhdGUgPSB7XG4gIGRlbW8/OiB7XG4gICAga2VwbGVyR2w6IHtcbiAgICAgIG1hcDoge1xuICAgICAgICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5jb25zdCBTdHlsZWRTY2hlbWFQYW5lbCA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGhlaWdodDogMTAwJTtcbmA7XG5cbmNvbnN0IFN0eWxlZExvYWRpbmdTcGlubmVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG5gO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRDb2x1bW5TY2hlbWEoY29ubmVjdGlvbjogRGF0YWJhc2VDb25uZWN0aW9uLCB0YWJsZU5hbWU6IHN0cmluZykge1xuICBjb25zdCBjb2x1bW5SZXN1bHQgPSBhd2FpdCBjb25uZWN0aW9uLnF1ZXJ5KGBTZWxlY3QgKiBmcm9tICcke3RhYmxlTmFtZX0nIExJTUlUIDE7YCk7XG5cbiAgY29uc3QgY29sdW1uRGVzY3JpYmUgPSBhd2FpdCBnZXREdWNrREJDb2x1bW5UeXBlcyhjb25uZWN0aW9uLCB0YWJsZU5hbWUpO1xuICBjb25zdCBrZXBsZXJGaWVsZHMgPSBhcnJvd1NjaGVtYVRvRmllbGRzKGNvbHVtblJlc3VsdCwgZ2V0RHVja0RCQ29sdW1uVHlwZXNNYXAoY29sdW1uRGVzY3JpYmUpKTtcblxuICByZXR1cm4ge1xuICAgIGtleTogdGFibGVOYW1lLFxuICAgIG9iamVjdDoge1xuICAgICAgdHlwZTogJ2RhdGFzZXQnLFxuICAgICAgdGFibGVOYW1lOiB0YWJsZU5hbWVcbiAgICB9LFxuICAgIGNoaWxkcmVuOiBjb2x1bW5SZXN1bHQuc2NoZW1hLmZpZWxkcy5tYXAoKGZpZWxkLCBmaWVsZEluZGV4KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGZpZWxkLm5hbWUsXG4gICAgICAgIG9iamVjdDoge1xuICAgICAgICAgIHR5cGU6ICdjb2x1bW4nLFxuICAgICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgICAgYXJyb3dUeXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAgIGZpZWxkVHlwZToga2VwbGVyRmllbGRzW2ZpZWxkSW5kZXhdLnR5cGVcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KVxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBTY2hlbWFTdWdnZXN0aW9uID0ge2NvbHVtbl9uYW1lOiBzdHJpbmc7IHRhYmxlX25hbWU6IHN0cmluZ307XG5cbmZ1bmN0aW9uIGdldFNjaGVtYVN1Z2dlc3Rpb24ocmVzdWx0OiB7a2V5OiBzdHJpbmc7IGNoaWxkcmVuOiB7a2V5OiBzdHJpbmd9W119W10pIHtcbiAgcmV0dXJuIHJlc3VsdC5yZWR1Y2UoKGFjY3UsIGRhdGEpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gZGF0YS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKHtcbiAgICAgIGNvbHVtbl9uYW1lOiBjaGlsZC5rZXksXG4gICAgICB0YWJsZV9uYW1lOiBkYXRhLmtleVxuICAgIH0pKTtcbiAgICByZXR1cm4gYWNjdS5jb25jYXQoY29sdW1ucyk7XG4gIH0sIFtdIGFzIFNjaGVtYVN1Z2dlc3Rpb25bXSk7XG59XG5cbnR5cGUgU2NoZW1hUGFuZWxQcm9wcyA9IHtcbiAgc2V0VGFibGVTY2hlbWE6ICh0YWJsZVNjaGVtYTogU2NoZW1hU3VnZ2VzdGlvbltdKSA9PiB2b2lkO1xuICBkcm9wcGVkRmlsZTogRmlsZSB8IG51bGw7XG4gIHNjaGVtYVVwZGF0ZVRyaWdnZXI6IG51bWJlcjtcbn07XG5cbmNvbnN0IFN0eWxlZFNjaGVtYVBhbmVsRHJvcE1lc3NhZ2UgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgZGl2IHtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxuICAuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbiAgLmJvbGQge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEFkZEljb24gPSBzdHlsZWQoSWNvbnMuQWRkKWBcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFNjaGVtYVBhbmVsRHJvcE1lc3NhZ2UgPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFNjaGVtYVBhbmVsRHJvcE1lc3NhZ2U+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlclwiPlxuICAgICAgICA8U3R5bGVkQWRkSWNvbiAvPiBBZGQgZmlsZXMgdG8gRHVja0RCXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9sZFwiPlN1cHBvcnRlZCBmb3JtYXRzOiA8L2Rpdj5cbiAgICAgIDxkaXY+LmNzdiwgLmpzb24sIC5nZW9qc29uLCAucGFycXVldCwgLmFycm93PC9kaXY+XG4gICAgICA8ZGl2PkZpbGVzIHlvdSBhZGQgd2lsbCBzdGF5IGxvY2FsIHRvIHlvdXIgYnJvd3Nlci48L2Rpdj5cbiAgICA8L1N0eWxlZFNjaGVtYVBhbmVsRHJvcE1lc3NhZ2U+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgU2NoZW1hUGFuZWwgPSAoe1xuICBzZXRUYWJsZVNjaGVtYSxcbiAgZHJvcHBlZEZpbGUsXG4gIHNjaGVtYVVwZGF0ZVRyaWdnZXJcbn06IFNjaGVtYVBhbmVsUHJvcHMpID0+IHtcbiAgY29uc3QgW2NvbHVtblNjaGVtYXMsIHNldENvbHVtblNjaGVtYXNdID0gdXNlU3RhdGU8VHJlZU5vZGVEYXRhPHt0eXBlOiBzdHJpbmd9PltdPihbXSk7XG4gIGNvbnN0IGRhdGFzZXRzID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBTdGF0ZSkgPT4gc3RhdGU/LmRlbW8/LmtlcGxlckdsPy5tYXA/LnZpc1N0YXRlLmRhdGFzZXRzKTtcblxuICBjb25zdCBnZXRUYWJsZVNjaGVtYSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkYiA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZGF0YWJhc2U7XG4gICAgaWYgKCFkYikge1xuICAgICAgY29uc29sZS5lcnJvcignVGhlIGRhdGFiYXNlIGlzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5LicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjID0gYXdhaXQgZGIuY29ubmVjdCgpO1xuXG4gICAgY29uc3QgdGFibGVSZXN1bHQgPSBhd2FpdCBjLnF1ZXJ5KCdTSE9XIFRBQkxFUzsnKTtcblxuICAgIGNvbnN0IHRhYmxlTmFtZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gdGFibGVSZXN1bHQuZ2V0Q2hpbGRBdCgwKT8udG9KU09OKCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbCgodGFibGVOYW1lcyB8fCBbXSk/Lm1hcChuYW1lID0+IGdldENvbHVtblNjaGVtYShjLCBuYW1lKSkpO1xuICAgIGNvbnN0IHRhYmxlU2NoZW1hID0gZ2V0U2NoZW1hU3VnZ2VzdGlvbihyZXN1bHQpO1xuXG4gICAgc2V0Q29sdW1uU2NoZW1hcyhyZXN1bHQpO1xuICAgIHNldFRhYmxlU2NoZW1hKHRhYmxlU2NoZW1hKTtcbiAgICBhd2FpdCBjLmNsb3NlKCk7XG5cbiAgICAvLyBzY2hlbWFVcGRhdGVUcmlnZ2VyIGluZGljYXRlcyBwb3NzaWJsZSBjaGFuZ2UgaW4gRHVja0RCXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbc2V0Q29sdW1uU2NoZW1hcywgc2V0VGFibGVTY2hlbWEsIHNjaGVtYVVwZGF0ZVRyaWdnZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdldFRhYmxlU2NoZW1hKCk7XG4gIH0sIFtkYXRhc2V0cywgZHJvcHBlZEZpbGUsIGdldFRhYmxlU2NoZW1hXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2NoZW1hUGFuZWw+XG4gICAgICB7Y29sdW1uU2NoZW1hcz8ubGVuZ3RoID8gKFxuICAgICAgICBjb2x1bW5TY2hlbWFzLm1hcChkYXRhID0+IChcbiAgICAgICAgICA8VHJlZVxuICAgICAgICAgICAga2V5PXtkYXRhLmtleX1cbiAgICAgICAgICAgIHRyZWVEYXRhPXtkYXRhfVxuICAgICAgICAgICAgcmVuZGVyTm9kZT17bm9kZSA9PiB7XG4gICAgICAgICAgICAgIGlmIChub2RlLm9iamVjdC50eXBlID09PSAnZGF0YXNldCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPERhdGFzZXROb2RlIG5vZGU9e25vZGV9IC8+O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUub2JqZWN0LnR5cGUgPT09ICdjb2x1bW4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDb2x1bW5Ob2RlIG5vZGU9e25vZGV9IC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApKVxuICAgICAgKSA6IGRyb3BwZWRGaWxlID8gKFxuICAgICAgICA8U3R5bGVkTG9hZGluZ1NwaW5uZXJXcmFwcGVyPlxuICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgICAgICA8L1N0eWxlZExvYWRpbmdTcGlubmVyV3JhcHBlcj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTY2hlbWFQYW5lbERyb3BNZXNzYWdlIC8+XG4gICAgICApfVxuICAgIDwvU3R5bGVkU2NoZW1hUGFuZWw+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFPLE9BQU87QUFDN0QsU0FBUUMsV0FBVyxRQUFPLGFBQWE7QUFDdkMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUV0QyxTQUFRQyxjQUFjLEVBQUVDLEtBQUssUUFBTyx1QkFBdUI7QUFDM0QsU0FBUUMsbUJBQW1CLFFBQU8sdUJBQXVCO0FBRXpELFNBQVFDLG9CQUFvQixRQUEyQixrQkFBa0I7QUFFekUsU0FBUUMsSUFBSSxFQUFFQyxXQUFXLEVBQUVDLFVBQVUs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
|