@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.
Files changed (42) hide show
  1. package/dist/cjs/adapters/duckdb-wasm-adapter.js +258 -0
  2. package/dist/{components → cjs/components}/index.js +1 -1
  3. package/dist/cjs/components/monaco-editor.js +174 -0
  4. package/dist/cjs/components/preview-data-panel.js +127 -0
  5. package/dist/cjs/components/schema-panel.js +170 -0
  6. package/dist/cjs/components/sql-panel.js +395 -0
  7. package/dist/cjs/components/tree.js +90 -0
  8. package/dist/{index.js → cjs/index.js} +1 -1
  9. package/dist/{plugin.js → cjs/plugin.js} +2 -2
  10. package/dist/cjs/processors/data-processor.js +353 -0
  11. package/dist/cjs/table/duckdb-table-utils.js +675 -0
  12. package/dist/cjs/table/duckdb-table.js +553 -0
  13. package/dist/{table → cjs/table}/index.js +1 -1
  14. package/dist/cjs/utils/perf.js +46 -0
  15. package/dist/esm/adapters/duckdb-wasm-adapter.js +251 -0
  16. package/dist/esm/components/index.js +9 -0
  17. package/dist/esm/components/monaco-editor.js +167 -0
  18. package/dist/esm/components/preview-data-panel.js +120 -0
  19. package/dist/esm/components/schema-panel.js +164 -0
  20. package/dist/esm/components/sql-panel.js +388 -0
  21. package/dist/esm/components/tree.js +82 -0
  22. package/dist/esm/index.js +9 -0
  23. package/dist/esm/plugin.js +22 -0
  24. package/dist/esm/processors/data-processor.js +342 -0
  25. package/dist/esm/table/duckdb-table-utils.js +650 -0
  26. package/dist/esm/table/duckdb-table.js +548 -0
  27. package/dist/esm/table/index.js +5 -0
  28. package/dist/esm/utils/perf.js +40 -0
  29. package/dist/processors/data-processor.d.ts +2 -0
  30. package/dist/table/duckdb-table-utils.d.ts +11 -2
  31. package/dist/table/duckdb-table.d.ts +7 -0
  32. package/package.json +25 -22
  33. package/dist/adapters/duckdb-wasm-adapter.js +0 -259
  34. package/dist/components/monaco-editor.js +0 -175
  35. package/dist/components/preview-data-panel.js +0 -128
  36. package/dist/components/schema-panel.js +0 -171
  37. package/dist/components/sql-panel.js +0 -396
  38. package/dist/components/tree.js +0 -91
  39. package/dist/processors/data-processor.js +0 -353
  40. package/dist/table/duckdb-table-utils.js +0 -669
  41. package/dist/table/duckdb-table.js +0 -480
  42. 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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