kepler.gl 3.1.0 → 3.1.1
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/README.md +27 -132
- package/dist/src/common-utils/src/data-type.d.ts +9 -1
- package/dist/src/components/src/common/data-table/header-cell.d.ts +1 -0
- package/dist/src/components/src/common/data-table/index.d.ts +1 -0
- package/dist/src/components/src/common/file-uploader/file-drop.d.ts +1 -32
- package/dist/src/components/src/common/item-selector/dropdown-list.d.ts +2 -2
- package/dist/src/components/src/common/item-selector/item-selector.d.ts +1 -1
- package/dist/src/components/src/common/item-selector/typeahead.d.ts +1 -1
- package/dist/src/components/src/geocoder/geocoder.d.ts +7 -0
- package/dist/src/components/src/geocoder-panel.d.ts +2 -2
- package/dist/src/components/src/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
- package/dist/src/constants/src/default-settings.d.ts +14 -1
- package/dist/src/deckgl-arrow-layers/src/constants.d.ts +0 -12
- package/dist/src/deckgl-arrow-layers/src/index.d.ts +0 -1
- package/dist/src/deckgl-arrow-layers/src/utils/utils.d.ts +12 -1
- package/dist/src/duckdb/src/components/preview-data-panel.d.ts +7 -2
- package/dist/src/duckdb/src/components/schema-panel.d.ts +12 -3
- package/dist/src/duckdb/src/processors/data-processor.d.ts +1 -0
- package/dist/src/duckdb/src/table/duckdb-table-utils.d.ts +106 -0
- package/dist/src/duckdb/src/table/duckdb-table.d.ts +5 -3
- package/dist/src/processors/src/data-processor.d.ts +15 -1
- package/dist/src/reducers/src/provider-state-updaters.d.ts +1 -0
- package/dist/src/reducers/src/vis-state-updaters.d.ts +1 -1
- package/dist/src/table/src/dataset-utils.d.ts +1 -1
- package/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
- package/dist/src/utils/src/application-config.d.ts +4 -3
- package/dist/src/utils/src/data-utils.d.ts +9 -3
- package/dist/src/utils/src/indexed-data-container.d.ts +2 -2
- package/dist/src/utils/src/map-style-utils/mapbox-utils.d.ts +1 -1
- package/dist/src/utils/src/map-utils.d.ts +1 -1
- package/dist/src/utils/src/plot.d.ts +2 -2
- package/package.json +5 -5
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/dist/components/ai-assistant-component.js +2 -1
- package/src/ai-assistant/package.json +7 -7
- package/src/ai-assistant/src/components/ai-assistant-component.tsx +1 -0
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/dist/data-type.d.ts +9 -1
- package/src/common-utils/dist/data-type.js +50 -1
- package/src/common-utils/package.json +3 -3
- package/src/common-utils/src/data-type.ts +49 -1
- package/src/components/dist/common/data-table/header-cell.d.ts +1 -0
- package/src/components/dist/common/data-table/header-cell.js +2 -2
- package/src/components/dist/common/data-table/index.d.ts +1 -0
- package/src/components/dist/common/data-table/index.js +5 -1
- package/src/components/dist/common/file-uploader/file-drop.d.ts +1 -32
- package/src/components/dist/common/file-uploader/file-drop.js +152 -167
- package/src/components/dist/common/item-selector/dropdown-list.d.ts +2 -2
- package/src/components/dist/common/item-selector/dropdown-list.js +2 -3
- package/src/components/dist/common/item-selector/item-selector.d.ts +1 -1
- package/src/components/dist/common/item-selector/typeahead.d.ts +1 -1
- package/src/components/dist/common/range-brush.js +3 -3
- package/src/components/dist/geocoder/geocoder.d.ts +7 -0
- package/src/components/dist/geocoder/geocoder.js +19 -11
- package/src/components/dist/geocoder-panel.d.ts +2 -2
- package/src/components/dist/geocoder-panel.js +64 -91
- package/src/components/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
- package/src/components/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
- package/src/components/dist/hooks/use-legend-position.js +8 -4
- package/src/components/dist/map/map-legend-panel.js +2 -3
- package/src/components/dist/modal-container.js +8 -8
- package/src/components/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
- package/src/components/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
- package/src/components/dist/side-panel/layer-panel/color-range-selector.js +10 -11
- package/src/components/dist/side-panel/layer-panel/color-selector.js +3 -3
- package/src/components/dist/side-panel/layer-panel/custom-palette.js +1 -2
- package/src/components/dist/side-panel/layer-panel/layer-configurator.js +6 -8
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
- package/src/components/package.json +16 -16
- package/src/components/src/common/data-table/header-cell.tsx +2 -1
- package/src/components/src/common/data-table/index.tsx +4 -0
- package/src/components/src/common/file-uploader/file-drop.tsx +186 -161
- package/src/components/src/common/item-selector/dropdown-list.tsx +1 -6
- package/src/components/src/common/range-brush.tsx +2 -2
- package/src/components/src/geocoder/geocoder.tsx +16 -8
- package/src/components/src/geocoder-panel.tsx +95 -85
- package/src/components/src/hooks/use-fetch-vector-tile-metadata.ts +27 -25
- package/src/components/src/hooks/use-legend-position.ts +5 -2
- package/src/components/src/map/map-legend-panel.tsx +1 -2
- package/src/components/src/modal-container.tsx +7 -7
- package/src/components/src/modals/tilesets-modals/tileset-vector-form.tsx +12 -3
- package/src/components/src/side-panel/layer-panel/color-palette-preset.tsx +1 -1
- package/src/components/src/side-panel/layer-panel/color-range-selector.tsx +6 -11
- package/src/components/src/side-panel/layer-panel/color-selector.tsx +2 -2
- package/src/components/src/side-panel/layer-panel/custom-palette.tsx +0 -1
- package/src/components/src/side-panel/layer-panel/layer-configurator.tsx +23 -33
- package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +0 -1
- package/src/constants/dist/default-settings.d.ts +14 -1
- package/src/constants/dist/default-settings.js +20 -5
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/91/4f/6c65f3a1eba584ffd2d892cabc25ab5804d4a9ef53694c98707372a83e56343a274bec04f15927a6fe7602615f0f23f73ccf599f524ef97ad6c77c8832ea +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/a6/b2/5424aa4477192fb44cc90fd80892efdc96731f2ff0f48e8f28abf64243cc +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/src/default-settings.ts +16 -1
- package/src/constants/umd/keplergl.min.js +2 -2
- package/src/deckgl-arrow-layers/dist/constants.d.ts +0 -12
- package/src/deckgl-arrow-layers/dist/constants.js +4 -15
- package/src/deckgl-arrow-layers/dist/index.d.ts +0 -1
- package/src/deckgl-arrow-layers/dist/index.js +1 -8
- package/src/deckgl-arrow-layers/dist/layers/geo-arrow-scatterplot-layer.js +4 -4
- package/src/deckgl-arrow-layers/dist/layers/geo-arrow-text-layer.js +5 -5
- package/src/deckgl-arrow-layers/dist/utils/utils.d.ts +12 -1
- package/src/deckgl-arrow-layers/dist/utils/utils.js +7 -5
- package/src/deckgl-arrow-layers/package.json +2 -1
- package/src/deckgl-arrow-layers/src/constants.ts +0 -13
- package/src/deckgl-arrow-layers/src/index.ts +0 -2
- package/src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts +5 -3
- package/src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts +8 -4
- package/src/deckgl-arrow-layers/src/utils/utils.ts +7 -5
- package/src/deckgl-layers/dist/deckgl-extensions/filter-arrow-layer.d.ts +1 -1
- package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.d.ts +1 -1
- package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.js +3 -3
- package/src/deckgl-layers/package.json +5 -5
- package/src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts +4 -3
- package/src/duckdb/dist/components/monaco-editor.js +4 -5
- package/src/duckdb/dist/components/preview-data-panel.d.ts +7 -2
- package/src/duckdb/dist/components/preview-data-panel.js +7 -8
- package/src/duckdb/dist/components/schema-panel.d.ts +12 -3
- package/src/duckdb/dist/components/schema-panel.js +41 -24
- package/src/duckdb/dist/components/sql-panel.js +245 -56
- package/src/duckdb/dist/init.js +20 -14
- package/src/duckdb/dist/processors/data-processor.d.ts +1 -0
- package/src/duckdb/dist/processors/data-processor.js +4 -4
- package/src/duckdb/dist/table/duckdb-table-utils.d.ts +106 -0
- package/src/duckdb/dist/table/duckdb-table-utils.js +493 -2
- package/src/duckdb/dist/table/duckdb-table.d.ts +5 -3
- package/src/duckdb/dist/table/duckdb-table.js +153 -261
- package/src/duckdb/package.json +6 -6
- package/src/duckdb/src/components/monaco-editor.tsx +3 -3
- package/src/duckdb/src/components/preview-data-panel.tsx +15 -8
- package/src/duckdb/src/components/schema-panel.tsx +92 -21
- package/src/duckdb/src/components/sql-panel.tsx +160 -22
- package/src/duckdb/src/init.ts +4 -1
- package/src/duckdb/src/processors/data-processor.ts +2 -2
- package/src/duckdb/src/table/duckdb-table-utils.ts +407 -1
- package/src/duckdb/src/table/duckdb-table.ts +61 -92
- package/src/effects/package.json +5 -5
- package/src/layers/dist/arc-layer/arc-layer.d.ts +1 -1
- package/src/layers/dist/arc-layer/arc-layer.js +2 -3
- package/src/layers/dist/base-layer.d.ts +7 -6
- package/src/layers/dist/base-layer.js +36 -19
- package/src/layers/dist/geojson-layer/geojson-layer.js +4 -2
- package/src/layers/dist/geojson-layer/geojson-utils.js +10 -3
- package/src/layers/dist/heatmap-layer/heatmap-layer.d.ts +2 -0
- package/src/layers/dist/heatmap-layer/heatmap-layer.js +16 -9
- package/src/layers/dist/icon-layer/icon-layer.d.ts +6 -3
- package/src/layers/dist/icon-layer/icon-layer.js +19 -11
- package/src/layers/dist/index.d.ts +1 -1
- package/src/layers/dist/index.js +1 -1
- package/src/layers/dist/layer-text-label.d.ts +9 -0
- package/src/layers/dist/layer-text-label.js +51 -6
- package/src/layers/dist/layer-utils.d.ts +39 -30
- package/src/layers/dist/layer-utils.js +69 -9
- package/src/layers/dist/line-layer/line-layer.d.ts +1 -1
- package/src/layers/dist/line-layer/line-layer.js +2 -3
- package/src/layers/dist/point-layer/point-layer.d.ts +10 -7
- package/src/layers/dist/point-layer/point-layer.js +16 -8
- package/src/layers/dist/trip-layer/trip-layer.d.ts +2 -2
- package/src/layers/dist/trip-layer/trip-layer.js +4 -2
- package/src/layers/dist/vector-tile/abstract-tile-layer.d.ts +3 -7
- package/src/layers/dist/vector-tile/abstract-tile-layer.js +7 -6
- package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +5 -7
- package/src/layers/dist/vector-tile/vector-tile-layer.js +23 -2
- package/src/layers/package.json +11 -10
- package/src/layers/src/arc-layer/arc-layer.ts +1 -1
- package/src/layers/src/base-layer.ts +50 -9
- package/src/layers/src/geojson-layer/geojson-layer.ts +3 -1
- package/src/layers/src/geojson-layer/geojson-utils.ts +4 -1
- package/src/layers/src/heatmap-layer/heatmap-layer.ts +17 -12
- package/src/layers/src/icon-layer/icon-layer.ts +7 -3
- package/src/layers/src/index.ts +1 -2
- package/src/layers/src/layer-text-label.ts +53 -4
- package/src/layers/src/layer-utils.ts +88 -9
- package/src/layers/src/line-layer/line-layer.ts +1 -1
- package/src/layers/src/point-layer/point-layer.ts +15 -11
- package/src/layers/src/trip-layer/trip-layer.ts +4 -2
- package/src/layers/src/vector-tile/abstract-tile-layer.ts +11 -5
- package/src/layers/src/vector-tile/vector-tile-layer.ts +33 -4
- package/src/localization/package.json +1 -1
- package/src/processors/dist/data-processor.d.ts +15 -1
- package/src/processors/dist/data-processor.js +104 -11
- package/src/processors/package.json +8 -7
- package/src/processors/src/data-processor.ts +116 -13
- package/src/reducers/dist/export-utils.js +2 -2
- package/src/reducers/dist/layer-utils.js +1 -1
- package/src/reducers/dist/provider-state-updaters.d.ts +1 -0
- package/src/reducers/dist/provider-state-updaters.js +5 -2
- package/src/reducers/dist/vis-state-updaters.d.ts +1 -1
- package/src/reducers/dist/vis-state-updaters.js +23 -12
- package/src/reducers/package.json +16 -16
- package/src/reducers/src/export-utils.ts +1 -1
- package/src/reducers/src/layer-utils.ts +2 -1
- package/src/reducers/src/provider-state-updaters.ts +4 -1
- package/src/reducers/src/vis-state-updaters.ts +45 -10
- package/src/schemas/dist/dataset-schema.js +35 -6
- package/src/schemas/package.json +7 -7
- package/src/schemas/src/dataset-schema.ts +36 -8
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a3/a9/7f26bbc52905b0e21e9366a30ef0ba98f4ccf9aa8dd8326d90ba90191ba2e305323f505bf134c825356156c793bf9386ed2cef2aeb48eb327c26d106f69a +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/7e/51/b8756555a0e2e696d944445ac23f7febf769006013fbc8419f39a701649d +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +2 -2
- package/src/table/dist/dataset-utils.js +23 -14
- package/src/table/dist/src/table/src/dataset-utils.d.ts +1 -1
- package/src/table/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
- package/src/table/dist/tileset/vector-tile-utils.js +122 -2
- package/src/table/package.json +5 -5
- package/src/table/src/dataset-utils.ts +16 -6
- package/src/table/src/tileset/vector-tile-utils.ts +131 -8
- package/src/tasks/package.json +2 -2
- package/src/types/actions.d.ts +1 -0
- package/src/types/layers.d.ts +1 -0
- package/src/types/package.json +1 -1
- package/src/types/types.d.ts +17 -0
- package/src/utils/dist/application-config.d.ts +4 -3
- package/src/utils/dist/application-config.js +3 -2
- package/src/utils/dist/data-scale-utils.js +4 -4
- package/src/utils/dist/data-utils.d.ts +9 -3
- package/src/utils/dist/data-utils.js +40 -7
- package/src/utils/dist/dataset-utils.js +23 -8
- package/src/utils/dist/indexed-data-container.d.ts +2 -2
- package/src/utils/dist/indexed-data-container.js +1 -1
- package/src/utils/dist/map-style-utils/mapbox-utils.d.ts +1 -1
- package/src/utils/dist/map-style-utils/mapbox-utils.js +3 -3
- package/src/utils/dist/plot.d.ts +2 -2
- package/src/utils/dist/plot.js +6 -6
- package/src/utils/map-utils.spec.js +1 -2
- package/src/utils/package.json +5 -4
- package/src/utils/src/application-config.ts +11 -8
- package/src/utils/src/data-scale-utils.ts +3 -3
- package/src/utils/src/data-utils.ts +36 -7
- package/src/utils/src/dataset-utils.ts +41 -9
- package/src/utils/src/indexed-data-container.ts +1 -1
- package/src/utils/src/map-style-utils/mapbox-utils.ts +2 -2
- package/src/utils/src/plot.ts +5 -5
- package/umd/keplergl.min.js +1279 -1295
|
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.formatTextLabelData = exports.defaultPadding = void 0;
|
|
8
|
+
exports.getArrowTextVector = exports.formatTextLabelData = exports.defaultPadding = void 0;
|
|
9
9
|
exports.getTextOffsetByRadius = getTextOffsetByRadius;
|
|
10
10
|
exports.textLabelAccessor = void 0;
|
|
11
11
|
var arrow = _interopRequireWildcard(require("apache-arrow"));
|
|
@@ -59,8 +59,12 @@ var formatTextLabelData = exports.formatTextLabelData = function formatTextLabel
|
|
|
59
59
|
}
|
|
60
60
|
var getTextAccessor = textLabelAccessor(tl)(dataContainer);
|
|
61
61
|
var characterSet;
|
|
62
|
+
var getText = getTextAccessor;
|
|
63
|
+
var rebuildArrowTextVector = true;
|
|
62
64
|
if (!(triggerChanged !== null && triggerChanged !== void 0 && triggerChanged["getLabelCharacterSet-".concat(i)]) && oldLayerData && oldLayerData.textLabels && oldLayerData.textLabels[i]) {
|
|
63
65
|
characterSet = oldLayerData.textLabels[i].characterSet;
|
|
66
|
+
getText = oldLayerData.textLabels[i].getText;
|
|
67
|
+
rebuildArrowTextVector = false;
|
|
64
68
|
} else {
|
|
65
69
|
if (data instanceof arrow.Table) {
|
|
66
70
|
// we don't filter out arrow tables,
|
|
@@ -87,13 +91,19 @@ var formatTextLabelData = exports.formatTextLabelData = function formatTextLabel
|
|
|
87
91
|
characterSet = (0, _lodash["default"])(_allLabels.join(''));
|
|
88
92
|
}
|
|
89
93
|
}
|
|
90
|
-
|
|
94
|
+
|
|
91
95
|
// For Arrow Layers getText has to be an arrow vector.
|
|
92
96
|
// For now check here for ArrowTable, not ArrowDataContainer.
|
|
93
|
-
if (data instanceof arrow.Table && dataContainer instanceof _utils.ArrowDataContainer) {
|
|
94
|
-
// TODO the data has to be a column of string type.
|
|
95
|
-
// as numerical and other columns types lack valueOffsets prop.
|
|
97
|
+
if (rebuildArrowTextVector && data instanceof arrow.Table && dataContainer instanceof _utils.ArrowDataContainer) {
|
|
96
98
|
getText = dataContainer.getColumn(tl.field.fieldIdx);
|
|
99
|
+
try {
|
|
100
|
+
getText = getArrowTextVector(getText, getTextAccessor);
|
|
101
|
+
} catch (error) {
|
|
102
|
+
// empty text labels
|
|
103
|
+
getText = getArrowTextVector(getText, function () {
|
|
104
|
+
return ' ';
|
|
105
|
+
});
|
|
106
|
+
}
|
|
97
107
|
}
|
|
98
108
|
return {
|
|
99
109
|
characterSet: characterSet,
|
|
@@ -101,4 +111,39 @@ var formatTextLabelData = exports.formatTextLabelData = function formatTextLabel
|
|
|
101
111
|
};
|
|
102
112
|
});
|
|
103
113
|
};
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnJvdyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl92aWV3cG9ydE1lcmNhdG9yUHJvamVjdCIsIl91dGlscyIsIl9jb21tb25VdGlscyIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZGVmYXVsdFBhZGRpbmciLCJleHBvcnRzIiwiZ2V0VGV4dE9mZnNldEJ5UmFkaXVzIiwicmFkaXVzU2NhbGUiLCJnZXRSYWRpdXMiLCJtYXBTdGF0ZSIsInRleHRMYWJlbCIsImRpc3RhbmNlU2NhbGUiLCJnZXREaXN0YW5jZVNjYWxlcyIsInhNdWx0IiwiYW5jaG9yIiwieU11bHQiLCJhbGlnbm1lbnQiLCJzaXplT2Zmc2V0Iiwic2l6ZSIsInBpeGVsUmFkaXVzIiwicGl4ZWxzUGVyTWV0ZXIiLCJwYWRkaW5nIiwiZCIsInRleHRMYWJlbEFjY2Vzc29yIiwiZGMiLCJ2YWwiLCJmaWVsZCIsInZhbHVlQWNjZXNzb3IiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJTdHJpbmciLCJmb3JtYXRUZXh0TGFiZWxEYXRhIiwiX3JlZiIsInRyaWdnZXJDaGFuZ2VkIiwib2xkTGF5ZXJEYXRhIiwiZGF0YSIsImRhdGFDb250YWluZXIiLCJmaWx0ZXJlZEluZGV4IiwibWFwIiwidGwiLCJnZXRUZXh0IiwiY2hhcmFjdGVyU2V0IiwiZ2V0VGV4dEFjY2Vzc29yIiwiY29uY2F0IiwidGV4dExhYmVscyIsIlRhYmxlIiwiYWxsTGFiZWxzIiwiZm9yRWFjaCIsInZhbHVlIiwiaW5kZXgiLCJwdXNoIiwibnVtUm93cyIsInVuaXEiLCJqb2luIiwiQXJyb3dEYXRhQ29udGFpbmVyIiwiZ2V0Q29sdW1uIiwiZmllbGRJZHgiXSwic291cmNlcyI6WyIuLi9zcmMvbGF5ZXItdGV4dC1sYWJlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBhcnJvdyBmcm9tICdhcGFjaGUtYXJyb3cnO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2UsIEFycm93RGF0YUNvbnRhaW5lcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLnVuaXEnO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFBhZGRpbmcgPSAyMDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRPZmZzZXRCeVJhZGl1cyhyYWRpdXNTY2FsZSwgZ2V0UmFkaXVzLCBtYXBTdGF0ZSkge1xuICByZXR1cm4gdGV4dExhYmVsID0+IHtcbiAgICBjb25zdCBkaXN0YW5jZVNjYWxlID0gZ2V0RGlzdGFuY2VTY2FsZXMobWFwU3RhdGUpO1xuICAgIGNvbnN0IHhNdWx0ID0gdGV4dExhYmVsLmFuY2hvciA9PT0gJ21pZGRsZScgPyAwIDogdGV4dExhYmVsLmFuY2hvciA9PT0gJ3N0YXJ0JyA/IDEgOiAtMTtcbiAgICBjb25zdCB5TXVsdCA9IHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdjZW50ZXInID8gMCA6IHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdib3R0b20nID8gMSA6IC0xO1xuXG4gICAgY29uc3Qgc2l6ZU9mZnNldCA9XG4gICAgICB0ZXh0TGFiZWwuYWxpZ25tZW50ID09PSAnY2VudGVyJ1xuICAgICAgICA/IDBcbiAgICAgICAgOiB0ZXh0TGFiZWwuYWxpZ25tZW50ID09PSAnYm90dG9tJ1xuICAgICAgICA/IHRleHRMYWJlbC5zaXplXG4gICAgICAgIDogdGV4dExhYmVsLnNpemU7XG5cbiAgICBjb25zdCBwaXhlbFJhZGl1cyA9IHJhZGl1c1NjYWxlICogZGlzdGFuY2VTY2FsZS5waXhlbHNQZXJNZXRlclswXTtcbiAgICBjb25zdCBwYWRkaW5nID0gZGVmYXVsdFBhZGRpbmc7XG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhZGl1cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBkID0+IFtcbiAgICAgICAgICB4TXVsdCAqIChnZXRSYWRpdXMoZCkgKiBwaXhlbFJhZGl1cyArIHBhZGRpbmcpLFxuICAgICAgICAgIHlNdWx0ICogKGdldFJhZGl1cyhkKSAqIHBpeGVsUmFkaXVzICsgcGFkZGluZyArIHNpemVPZmZzZXQpXG4gICAgICAgIF1cbiAgICAgIDogW1xuICAgICAgICAgIHhNdWx0ICogKGdldFJhZGl1cyAqIHBpeGVsUmFkaXVzICsgcGFkZGluZyksXG4gICAgICAgICAgeU11bHQgKiAoZ2V0UmFkaXVzICogcGl4ZWxSYWRpdXMgKyBwYWRkaW5nICsgc2l6ZU9mZnNldClcbiAgICAgICAgXTtcbiAgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZXhwb3J0IGNvbnN0IHRleHRMYWJlbEFjY2Vzc29yID0gdGV4dExhYmVsID0+IGRjID0+IGQgPT4ge1xuICBjb25zdCB2YWwgPSB0ZXh0TGFiZWwuZmllbGQudmFsdWVBY2Nlc3NvcihkKTtcbiAgcmV0dXJuIG5vdE51bGxvclVuZGVmaW5lZCh2YWwpID8gU3RyaW5nKHZhbCkgOiAnJztcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUZXh0TGFiZWxEYXRhID0gKHtcbiAgdGV4dExhYmVsLFxuICB0cmlnZ2VyQ2hhbmdlZCxcbiAgb2xkTGF5ZXJEYXRhLFxuICBkYXRhLFxuICBkYXRhQ29udGFpbmVyLFxuICBmaWx0ZXJlZEluZGV4XG59OiB7XG4gIHRleHRMYWJlbDogYW55O1xuICB0cmlnZ2VyQ2hhbmdlZD86IGJvb2xlYW4gfCB7W2tleTogc3RyaW5nXTogYm9vbGVhbn07XG4gIG9sZExheWVyRGF0YTogYW55O1xuICBkYXRhOiBhbnk7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2U7XG4gIGZpbHRlcmVkSW5kZXg/OiBVaW50OENsYW1wZWRBcnJheSB8IG51bGw7XG59KSA9PiB7XG4gIHJldHVybiB0ZXh0TGFiZWwubWFwKCh0bCwgaSkgPT4ge1xuICAgIGlmICghdGwuZmllbGQpIHtcbiAgICAgIC8vIGlmIG5vIGZpZWxkIHNlbGVjdGVkLFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZ2V0VGV4dDogbnVsbCxcbiAgICAgICAgY2hhcmFjdGVyU2V0OiBbXVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRUZXh0QWNjZXNzb3I6IChkOiB7aW5kZXg6IG51bWJlcn0pID0+IHN0cmluZyA9IHRleHRMYWJlbEFjY2Vzc29yKHRsKShkYXRhQ29udGFpbmVyKTtcbiAgICBsZXQgY2hhcmFjdGVyU2V0O1xuXG4gICAgaWYgKFxuICAgICAgIXRyaWdnZXJDaGFuZ2VkPy5bYGdldExhYmVsQ2hhcmFjdGVyU2V0LSR7aX1gXSAmJlxuICAgICAgb2xkTGF5ZXJEYXRhICYmXG4gICAgICBvbGRMYXllckRhdGEudGV4dExhYmVscyAmJlxuICAgICAgb2xkTGF5ZXJEYXRhLnRleHRMYWJlbHNbaV1cbiAgICApIHtcbiAgICAgIGNoYXJhY3RlclNldCA9IG9sZExheWVyRGF0YS50ZXh0TGFiZWxzW2ldLmNoYXJhY3RlclNldDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBhcnJvdy5UYWJsZSkge1xuICAgICAgICAvLyB3ZSBkb24ndCBmaWx0ZXIgb3V0IGFycm93IHRhYmxlcyxcbiAgICAgICAgLy8gc28gd2UgdXNlIGZpbHRlcmVkSW5kZXggYXJyYXkgaW5zdGVhZFxuICAgICAgICBjb25zdCBhbGxMYWJlbHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICh0bC5maWVsZCkge1xuICAgICAgICAgIGlmIChmaWx0ZXJlZEluZGV4KSB7XG4gICAgICAgICAgICBmaWx0ZXJlZEluZGV4LmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodmFsdWUgPiAwKSBhbGxMYWJlbHMucHVzaChnZXRUZXh0QWNjZXNzb3Ioe2luZGV4fSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhQ29udGFpbmVyLm51bVJvd3MoKTsgKytpbmRleCkge1xuICAgICAgICAgICAgICBhbGxMYWJlbHMucHVzaChnZXRUZXh0QWNjZXNzb3Ioe2luZGV4fSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaGFyYWN0ZXJTZXQgPSB1bmlxKGFsbExhYmVscy5qb2luKCcnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhbGxMYWJlbHMgPSB0bC5maWVsZCA/IGRhdGEubWFwKGdldFRleHRBY2Nlc3NvcikgOiBbXTtcbiAgICAgICAgY2hhcmFjdGVyU2V0ID0gdW5pcShhbGxMYWJlbHMuam9pbignJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBnZXRUZXh0OiB0eXBlb2YgZ2V0VGV4dEFjY2Vzc29yIHwgYXJyb3cuVmVjdG9yID0gZ2V0VGV4dEFjY2Vzc29yO1xuICAgIC8vIEZvciBBcnJvdyBMYXllcnMgZ2V0VGV4dCBoYXMgdG8gYmUgYW4gYXJyb3cgdmVjdG9yLlxuICAgIC8vIEZvciBub3cgY2hlY2sgaGVyZSBmb3IgQXJyb3dUYWJsZSwgbm90IEFycm93RGF0YUNvbnRhaW5lci5cbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIGFycm93LlRhYmxlICYmIGRhdGFDb250YWluZXIgaW5zdGFuY2VvZiBBcnJvd0RhdGFDb250YWluZXIpIHtcbiAgICAgIC8vIFRPRE8gdGhlIGRhdGEgaGFzIHRvIGJlIGEgY29sdW1uIG9mIHN0cmluZyB0eXBlLlxuICAgICAgLy8gYXMgbnVtZXJpY2FsIGFuZCBvdGhlciBjb2x1bW5zIHR5cGVzIGxhY2sgdmFsdWVPZmZzZXRzIHByb3AuXG4gICAgICBnZXRUZXh0ID0gZGF0YUNvbnRhaW5lci5nZXRDb2x1bW4odGwuZmllbGQuZmllbGRJZHgpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjaGFyYWN0ZXJTZXQsXG4gICAgICBnZXRUZXh0XG4gICAgfTtcbiAgfSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsd0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUwsT0FBQTtBQUErQixTQUFBTSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcs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
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get an arrow vector suitable to render text labels with arrow layers.
|
|
117
|
+
* @param getText A candidate arrow vector to use for text labels.
|
|
118
|
+
* @param getTextAccessor Text label accessor.
|
|
119
|
+
*/
|
|
120
|
+
var getArrowTextVector = exports.getArrowTextVector = function getArrowTextVector(candidateTextVector, getTextAccessor) {
|
|
121
|
+
// if the passed vector is suitable for text labels
|
|
122
|
+
if (arrow.DataType.isUtf8(candidateTextVector === null || candidateTextVector === void 0 ? void 0 : candidateTextVector.type)) {
|
|
123
|
+
return candidateTextVector;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// create utf8 vector from source vector with the same number of batches.
|
|
127
|
+
// @ts-expect-error
|
|
128
|
+
var offsets = candidateTextVector._offsets;
|
|
129
|
+
var numOffsets = offsets.length;
|
|
130
|
+
var batchVectors = [];
|
|
131
|
+
var datum = {
|
|
132
|
+
index: 0
|
|
133
|
+
};
|
|
134
|
+
for (var batchIndex = 0; batchIndex < numOffsets - 1; batchIndex++) {
|
|
135
|
+
var batchStart = offsets[batchIndex];
|
|
136
|
+
var batchEnd = offsets[batchIndex + 1];
|
|
137
|
+
var batchLabels = [];
|
|
138
|
+
for (var rowIndex = batchStart; rowIndex < batchEnd; ++rowIndex) {
|
|
139
|
+
datum.index = rowIndex;
|
|
140
|
+
batchLabels.push(getTextAccessor(datum));
|
|
141
|
+
}
|
|
142
|
+
batchVectors.push(arrow.vectorFromArray(batchLabels, new arrow.Utf8()));
|
|
143
|
+
}
|
|
144
|
+
var input = batchVectors.flatMap(function (x) {
|
|
145
|
+
return x.data;
|
|
146
|
+
}).flat(Number.POSITIVE_INFINITY);
|
|
147
|
+
return new arrow.Vector(input);
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnJvdyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl92aWV3cG9ydE1lcmNhdG9yUHJvamVjdCIsIl91dGlscyIsIl9jb21tb25VdGlscyIsIl9sb2Rhc2giLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZGVmYXVsdFBhZGRpbmciLCJleHBvcnRzIiwiZ2V0VGV4dE9mZnNldEJ5UmFkaXVzIiwicmFkaXVzU2NhbGUiLCJnZXRSYWRpdXMiLCJtYXBTdGF0ZSIsInRleHRMYWJlbCIsImRpc3RhbmNlU2NhbGUiLCJnZXREaXN0YW5jZVNjYWxlcyIsInhNdWx0IiwiYW5jaG9yIiwieU11bHQiLCJhbGlnbm1lbnQiLCJzaXplT2Zmc2V0Iiwic2l6ZSIsInBpeGVsUmFkaXVzIiwicGl4ZWxzUGVyTWV0ZXIiLCJwYWRkaW5nIiwiZCIsInRleHRMYWJlbEFjY2Vzc29yIiwiZGMiLCJ2YWwiLCJmaWVsZCIsInZhbHVlQWNjZXNzb3IiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJTdHJpbmciLCJmb3JtYXRUZXh0TGFiZWxEYXRhIiwiX3JlZiIsInRyaWdnZXJDaGFuZ2VkIiwib2xkTGF5ZXJEYXRhIiwiZGF0YSIsImRhdGFDb250YWluZXIiLCJmaWx0ZXJlZEluZGV4IiwibWFwIiwidGwiLCJnZXRUZXh0IiwiY2hhcmFjdGVyU2V0IiwiZ2V0VGV4dEFjY2Vzc29yIiwicmVidWlsZEFycm93VGV4dFZlY3RvciIsImNvbmNhdCIsInRleHRMYWJlbHMiLCJUYWJsZSIsImFsbExhYmVscyIsImZvckVhY2giLCJ2YWx1ZSIsImluZGV4IiwicHVzaCIsIm51bVJvd3MiLCJ1bmlxIiwiam9pbiIsIkFycm93RGF0YUNvbnRhaW5lciIsImdldENvbHVtbiIsImZpZWxkSWR4IiwiZ2V0QXJyb3dUZXh0VmVjdG9yIiwiZXJyb3IiLCJjYW5kaWRhdGVUZXh0VmVjdG9yIiwiRGF0YVR5cGUiLCJpc1V0ZjgiLCJ0eXBlIiwib2Zmc2V0cyIsIl9vZmZzZXRzIiwibnVtT2Zmc2V0cyIsImxlbmd0aCIsImJhdGNoVmVjdG9ycyIsImRhdHVtIiwiYmF0Y2hJbmRleCIsImJhdGNoU3RhcnQiLCJiYXRjaEVuZCIsImJhdGNoTGFiZWxzIiwicm93SW5kZXgiLCJ2ZWN0b3JGcm9tQXJyYXkiLCJVdGY4IiwiaW5wdXQiLCJmbGF0TWFwIiwieCIsImZsYXQiLCJOdW1iZXIiLCJQT1NJVElWRV9JTkZJTklUWSIsIlZlY3RvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllci10ZXh0LWxhYmVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCAqIGFzIGFycm93IGZyb20gJ2FwYWNoZS1hcnJvdyc7XG5pbXBvcnQge2dldERpc3RhbmNlU2NhbGVzfSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZSwgQXJyb3dEYXRhQ29udGFpbmVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UGFkZGluZyA9IDIwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dE9mZnNldEJ5UmFkaXVzKHJhZGl1c1NjYWxlLCBnZXRSYWRpdXMsIG1hcFN0YXRlKSB7XG4gIHJldHVybiB0ZXh0TGFiZWwgPT4ge1xuICAgIGNvbnN0IGRpc3RhbmNlU2NhbGUgPSBnZXREaXN0YW5jZVNjYWxlcyhtYXBTdGF0ZSk7XG4gICAgY29uc3QgeE11bHQgPSB0ZXh0TGFiZWwuYW5jaG9yID09PSAnbWlkZGxlJyA/IDAgOiB0ZXh0TGFiZWwuYW5jaG9yID09PSAnc3RhcnQnID8gMSA6IC0xO1xuICAgIGNvbnN0IHlNdWx0ID0gdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2NlbnRlcicgPyAwIDogdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2JvdHRvbScgPyAxIDogLTE7XG5cbiAgICBjb25zdCBzaXplT2Zmc2V0ID1cbiAgICAgIHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdjZW50ZXInXG4gICAgICAgID8gMFxuICAgICAgICA6IHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdib3R0b20nXG4gICAgICAgID8gdGV4dExhYmVsLnNpemVcbiAgICAgICAgOiB0ZXh0TGFiZWwuc2l6ZTtcblxuICAgIGNvbnN0IHBpeGVsUmFkaXVzID0gcmFkaXVzU2NhbGUgKiBkaXN0YW5jZVNjYWxlLnBpeGVsc1Blck1ldGVyWzBdO1xuICAgIGNvbnN0IHBhZGRpbmcgPSBkZWZhdWx0UGFkZGluZztcblxuICAgIHJldHVybiB0eXBlb2YgZ2V0UmFkaXVzID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGQgPT4gW1xuICAgICAgICAgIHhNdWx0ICogKGdldFJhZGl1cyhkKSAqIHBpeGVsUmFkaXVzICsgcGFkZGluZyksXG4gICAgICAgICAgeU11bHQgKiAoZ2V0UmFkaXVzKGQpICogcGl4ZWxSYWRpdXMgKyBwYWRkaW5nICsgc2l6ZU9mZnNldClcbiAgICAgICAgXVxuICAgICAgOiBbXG4gICAgICAgICAgeE11bHQgKiAoZ2V0UmFkaXVzICogcGl4ZWxSYWRpdXMgKyBwYWRkaW5nKSxcbiAgICAgICAgICB5TXVsdCAqIChnZXRSYWRpdXMgKiBwaXhlbFJhZGl1cyArIHBhZGRpbmcgKyBzaXplT2Zmc2V0KVxuICAgICAgICBdO1xuICB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgY29uc3QgdGV4dExhYmVsQWNjZXNzb3IgPSB0ZXh0TGFiZWwgPT4gZGMgPT4gZCA9PiB7XG4gIGNvbnN0IHZhbCA9IHRleHRMYWJlbC5maWVsZC52YWx1ZUFjY2Vzc29yKGQpO1xuICByZXR1cm4gbm90TnVsbG9yVW5kZWZpbmVkKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFRleHRMYWJlbERhdGEgPSAoe1xuICB0ZXh0TGFiZWwsXG4gIHRyaWdnZXJDaGFuZ2VkLFxuICBvbGRMYXllckRhdGEsXG4gIGRhdGEsXG4gIGRhdGFDb250YWluZXIsXG4gIGZpbHRlcmVkSW5kZXhcbn06IHtcbiAgdGV4dExhYmVsOiBhbnk7XG4gIHRyaWdnZXJDaGFuZ2VkPzogYm9vbGVhbiB8IHtba2V5OiBzdHJpbmddOiBib29sZWFufTtcbiAgb2xkTGF5ZXJEYXRhOiBhbnk7XG4gIGRhdGE6IGFueTtcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZTtcbiAgZmlsdGVyZWRJbmRleD86IFVpbnQ4Q2xhbXBlZEFycmF5IHwgbnVsbDtcbn0pID0+IHtcbiAgcmV0dXJuIHRleHRMYWJlbC5tYXAoKHRsLCBpKSA9PiB7XG4gICAgaWYgKCF0bC5maWVsZCkge1xuICAgICAgLy8gaWYgbm8gZmllbGQgc2VsZWN0ZWQsXG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXRUZXh0OiBudWxsLFxuICAgICAgICBjaGFyYWN0ZXJTZXQ6IFtdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGdldFRleHRBY2Nlc3NvcjogKGQ6IHtpbmRleDogbnVtYmVyfSkgPT4gc3RyaW5nID0gdGV4dExhYmVsQWNjZXNzb3IodGwpKGRhdGFDb250YWluZXIpO1xuICAgIGxldCBjaGFyYWN0ZXJTZXQ7XG4gICAgbGV0IGdldFRleHQ6IHR5cGVvZiBnZXRUZXh0QWNjZXNzb3IgfCBhcnJvdy5WZWN0b3IgPSBnZXRUZXh0QWNjZXNzb3I7XG5cbiAgICBsZXQgcmVidWlsZEFycm93VGV4dFZlY3RvciA9IHRydWU7XG4gICAgaWYgKFxuICAgICAgIXRyaWdnZXJDaGFuZ2VkPy5bYGdldExhYmVsQ2hhcmFjdGVyU2V0LSR7aX1gXSAmJlxuICAgICAgb2xkTGF5ZXJEYXRhICYmXG4gICAgICBvbGRMYXllckRhdGEudGV4dExhYmVscyAmJlxuICAgICAgb2xkTGF5ZXJEYXRhLnRleHRMYWJlbHNbaV1cbiAgICApIHtcbiAgICAgIGNoYXJhY3RlclNldCA9IG9sZExheWVyRGF0YS50ZXh0TGFiZWxzW2ldLmNoYXJhY3RlclNldDtcbiAgICAgIGdldFRleHQgPSBvbGRMYXllckRhdGEudGV4dExhYmVsc1tpXS5nZXRUZXh0O1xuICAgICAgcmVidWlsZEFycm93VGV4dFZlY3RvciA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIGFycm93LlRhYmxlKSB7XG4gICAgICAgIC8vIHdlIGRvbid0IGZpbHRlciBvdXQgYXJyb3cgdGFibGVzLFxuICAgICAgICAvLyBzbyB3ZSB1c2UgZmlsdGVyZWRJbmRleCBhcnJheSBpbnN0ZWFkXG4gICAgICAgIGNvbnN0IGFsbExhYmVsczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKHRsLmZpZWxkKSB7XG4gICAgICAgICAgaWYgKGZpbHRlcmVkSW5kZXgpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkSW5kZXguZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSA+IDApIGFsbExhYmVscy5wdXNoKGdldFRleHRBY2Nlc3Nvcih7aW5kZXh9KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGRhdGFDb250YWluZXIubnVtUm93cygpOyArK2luZGV4KSB7XG4gICAgICAgICAgICAgIGFsbExhYmVscy5wdXNoKGdldFRleHRBY2Nlc3Nvcih7aW5kZXh9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNoYXJhY3RlclNldCA9IHVuaXEoYWxsTGFiZWxzLmpvaW4oJycpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFsbExhYmVscyA9IHRsLmZpZWxkID8gZGF0YS5tYXAoZ2V0VGV4dEFjY2Vzc29yKSA6IFtdO1xuICAgICAgICBjaGFyYWN0ZXJTZXQgPSB1bmlxKGFsbExhYmVscy5qb2luKCcnKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yIEFycm93IExheWVycyBnZXRUZXh0IGhhcyB0byBiZSBhbiBhcnJvdyB2ZWN0b3IuXG4gICAgLy8gRm9yIG5vdyBjaGVjayBoZXJlIGZvciBBcnJvd1RhYmxlLCBub3QgQXJyb3dEYXRhQ29udGFpbmVyLlxuICAgIGlmIChcbiAgICAgIHJlYnVpbGRBcnJvd1RleHRWZWN0b3IgJiZcbiAgICAgIGRhdGEgaW5zdGFuY2VvZiBhcnJvdy5UYWJsZSAmJlxuICAgICAgZGF0YUNvbnRhaW5lciBpbnN0YW5jZW9mIEFycm93RGF0YUNvbnRhaW5lclxuICAgICkge1xuICAgICAgZ2V0VGV4dCA9IGRhdGFDb250YWluZXIuZ2V0Q29sdW1uKHRsLmZpZWxkLmZpZWxkSWR4KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGdldFRleHQgPSBnZXRBcnJvd1RleHRWZWN0b3IoZ2V0VGV4dCBhcyBhcnJvdy5WZWN0b3IsIGdldFRleHRBY2Nlc3Nvcik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBlbXB0eSB0ZXh0IGxhYmVsc1xuICAgICAgICBnZXRUZXh0ID0gZ2V0QXJyb3dUZXh0VmVjdG9yKGdldFRleHQsICgpID0+ICcgJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoYXJhY3RlclNldCxcbiAgICAgIGdldFRleHRcbiAgICB9O1xuICB9KTtcbn07XG5cbi8qKlxuICogR2V0IGFuIGFycm93IHZlY3RvciBzdWl0YWJsZSB0byByZW5kZXIgdGV4dCBsYWJlbHMgd2l0aCBhcnJvdyBsYXllcnMuXG4gKiBAcGFyYW0gZ2V0VGV4dCBBIGNhbmRpZGF0ZSBhcnJvdyB2ZWN0b3IgdG8gdXNlIGZvciB0ZXh0IGxhYmVscy5cbiAqIEBwYXJhbSBnZXRUZXh0QWNjZXNzb3IgVGV4dCBsYWJlbCBhY2Nlc3Nvci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFycm93VGV4dFZlY3RvciA9IChcbiAgY2FuZGlkYXRlVGV4dFZlY3RvcjogYXJyb3cuVmVjdG9yLFxuICBnZXRUZXh0QWNjZXNzb3I6ICh7aW5kZXh9OiB7aW5kZXg6IG51bWJlcn0pID0+IHN0cmluZ1xuKTogYXJyb3cuVmVjdG9yID0+IHtcbiAgLy8gaWYgdGhlIHBhc3NlZCB2ZWN0b3IgaXMgc3VpdGFibGUgZm9yIHRleHQgbGFiZWxzXG4gIGlmIChhcnJvdy5EYXRhVHlwZS5pc1V0ZjgoY2FuZGlkYXRlVGV4dFZlY3Rvcj8udHlwZSkpIHtcbiAgICByZXR1cm4gY2FuZGlkYXRlVGV4dFZlY3RvcjtcbiAgfVxuXG4gIC8vIGNyZWF0ZSB1dGY4IHZlY3RvciBmcm9tIHNvdXJjZSB2ZWN0b3Igd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgYmF0Y2hlcy5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBjb25zdCBvZmZzZXRzID0gY2FuZGlkYXRlVGV4dFZlY3Rvci5fb2Zmc2V0cztcbiAgY29uc3QgbnVtT2Zmc2V0cyA9IG9mZnNldHMubGVuZ3RoO1xuICBjb25zdCBiYXRjaFZlY3RvcnM6IGFycm93LlZlY3RvcltdID0gW107XG4gIGNvbnN0IGRhdHVtID0ge2luZGV4OiAwfTtcbiAgZm9yIChsZXQgYmF0Y2hJbmRleCA9IDA7IGJhdGNoSW5kZXggPCBudW1PZmZzZXRzIC0gMTsgYmF0Y2hJbmRleCsrKSB7XG4gICAgY29uc3QgYmF0Y2hTdGFydCA9IG9mZnNldHNbYmF0Y2hJbmRleF07XG4gICAgY29uc3QgYmF0Y2hFbmQgPSBvZmZzZXRzW2JhdGNoSW5kZXggKyAxXTtcblxuICAgIGNvbnN0IGJhdGNoTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gYmF0Y2hTdGFydDsgcm93SW5kZXggPCBiYXRjaEVuZDsgKytyb3dJbmRleCkge1xuICAgICAgZGF0dW0uaW5kZXggPSByb3dJbmRleDtcbiAgICAgIGJhdGNoTGFiZWxzLnB1c2goZ2V0VGV4dEFjY2Vzc29yKGRhdHVtKSk7XG4gICAgfVxuXG4gICAgYmF0Y2hWZWN0b3JzLnB1c2goYXJyb3cudmVjdG9yRnJvbUFycmF5KGJhdGNoTGFiZWxzLCBuZXcgYXJyb3cuVXRmOCgpKSk7XG4gIH1cblxuICBjb25zdCBpbnB1dCA9IGJhdGNoVmVjdG9ycy5mbGF0TWFwKHggPT4geC5kYXRhKS5mbGF0KE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7XG5cbiAgcmV0dXJuIG5ldyBhcnJvdy5WZWN0b3IoaW5wdXQpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLHdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFBK0IsU0FBQU0seUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFSLHdCQUFBUSxDQUFBLEVBQUFFLENBQUEs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
|
|
@@ -1,37 +1,26 @@
|
|
|
1
1
|
import * as arrow from 'apache-arrow';
|
|
2
2
|
import { Feature, BBox } from 'geojson';
|
|
3
|
-
import {
|
|
3
|
+
import { KeplerTable } from '@kepler.gl/table';
|
|
4
|
+
import { Field, ProtoDatasetField, FieldPair, SupportedColumnMode, LayerColumn, LayerColumns, RGBColor } from '@kepler.gl/types';
|
|
4
5
|
import { DataContainerInterface, ArrowDataContainer } from '@kepler.gl/utils';
|
|
5
6
|
import { DeckGlGeoTypes, GeojsonDataMaps } from './geojson-layer/geojson-utils';
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
lng: {
|
|
12
|
-
fieldIdx: number;
|
|
13
|
-
value: string;
|
|
14
|
-
};
|
|
15
|
-
altitude?: undefined;
|
|
16
|
-
} | {
|
|
17
|
-
lat: {
|
|
18
|
-
fieldIdx: number;
|
|
19
|
-
value: string;
|
|
20
|
-
};
|
|
21
|
-
lng: {
|
|
22
|
-
fieldIdx: number;
|
|
23
|
-
value: string;
|
|
24
|
-
};
|
|
25
|
-
altitude: {
|
|
26
|
-
value: null;
|
|
27
|
-
fieldIdx: number;
|
|
28
|
-
optional: boolean;
|
|
29
|
-
} | {
|
|
30
|
-
fieldIdx: number;
|
|
31
|
-
value: string;
|
|
32
|
-
optional: boolean;
|
|
33
|
-
};
|
|
7
|
+
export declare type FindDefaultLayerProps = {
|
|
8
|
+
label: string;
|
|
9
|
+
color?: RGBColor;
|
|
10
|
+
isVisible?: boolean;
|
|
11
|
+
columns?: Record<string, LayerColumn>;
|
|
34
12
|
};
|
|
13
|
+
export declare type FindDefaultLayerPropsReturnValue = {
|
|
14
|
+
/** Layer props to create layers by default when a dataset is added */
|
|
15
|
+
props: FindDefaultLayerProps[];
|
|
16
|
+
/** layer props of possible alternative layer configurations, not created by default */
|
|
17
|
+
altProps?: FindDefaultLayerProps[];
|
|
18
|
+
/** Already found layer configurations */
|
|
19
|
+
foundLayers?: (FindDefaultLayerProps & {
|
|
20
|
+
type: string;
|
|
21
|
+
})[];
|
|
22
|
+
};
|
|
23
|
+
export declare function assignPointPairToLayerColumn(pair: FieldPair, hasAlt: boolean): Record<string, LayerColumn>;
|
|
35
24
|
export declare type GeojsonLayerMetaProps = {
|
|
36
25
|
dataToFeature: GeojsonDataMaps;
|
|
37
26
|
featureTypes: DeckGlGeoTypes;
|
|
@@ -39,7 +28,7 @@ export declare type GeojsonLayerMetaProps = {
|
|
|
39
28
|
fixedRadius: boolean;
|
|
40
29
|
centroids?: Array<number[] | null>;
|
|
41
30
|
};
|
|
42
|
-
export declare function getGeojsonLayerMetaFromArrow({
|
|
31
|
+
export declare function getGeojsonLayerMetaFromArrow({ geoColumn, geoField, chunkIndex }: {
|
|
43
32
|
dataContainer: DataContainerInterface;
|
|
44
33
|
geoColumn: arrow.Vector;
|
|
45
34
|
geoField: ProtoDatasetField;
|
|
@@ -95,3 +84,23 @@ export declare function getNeighbors(neighborsField: LayerColumn | undefined, da
|
|
|
95
84
|
* @returns Returns bounding box if exists.
|
|
96
85
|
*/
|
|
97
86
|
export declare function getBoundsFromArrowMetadata(layerColumn: LayerColumn, dataContainer: ArrowDataContainer): [number, number, number, number] | false;
|
|
87
|
+
/**
|
|
88
|
+
* Finds and returns the first satisfied column mode based on the provided columns and fields.
|
|
89
|
+
* @param supportedColumnModes - An array of supported column modes to check.
|
|
90
|
+
* @param columns - The available columns.
|
|
91
|
+
* @param fields - Optional table fields to be used for extra verification.
|
|
92
|
+
* @returns The first column mode that satisfies the required conditions, or undefined if none match.
|
|
93
|
+
*/
|
|
94
|
+
export declare function getSatisfiedColumnMode(columnModes: SupportedColumnMode[] | null, columns: LayerColumns | undefined, fields?: KeplerTable['fields']): SupportedColumnMode | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Returns true if the field is of geoarrow point format.
|
|
97
|
+
* @param field A field.
|
|
98
|
+
* @returns Returns true if the field is of geoarrow point format.
|
|
99
|
+
*/
|
|
100
|
+
export declare function isGeoArrowPointField(field: Field): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Create default geoarrow column props based on the dataset.
|
|
103
|
+
* @param dataset A dataset to create layer props from.
|
|
104
|
+
* @returns geoarrow column props.
|
|
105
|
+
*/
|
|
106
|
+
export declare function getGeoArrowPointLayerProps(dataset: KeplerTable): FindDefaultLayerProps[];
|
|
@@ -11,15 +11,18 @@ exports.getBoundsFromArrowMetadata = getBoundsFromArrowMetadata;
|
|
|
11
11
|
exports.getColumnModeRequiredColumns = getColumnModeRequiredColumns;
|
|
12
12
|
exports.getFilteredIndex = getFilteredIndex;
|
|
13
13
|
exports.getGeoArrowPointFields = getGeoArrowPointFields;
|
|
14
|
+
exports.getGeoArrowPointLayerProps = getGeoArrowPointLayerProps;
|
|
14
15
|
exports.getGeojsonLayerMetaFromArrow = getGeojsonLayerMetaFromArrow;
|
|
15
16
|
exports.getHoveredObjectFromArrow = getHoveredObjectFromArrow;
|
|
16
17
|
exports.getNeighbors = getNeighbors;
|
|
18
|
+
exports.getSatisfiedColumnMode = getSatisfiedColumnMode;
|
|
19
|
+
exports.isGeoArrowPointField = isGeoArrowPointField;
|
|
17
20
|
exports.isLayerHoveredFromArrow = isLayerHoveredFromArrow;
|
|
18
21
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
22
|
var arrow = _interopRequireWildcard(require("apache-arrow"));
|
|
20
23
|
var _gis = require("@loaders.gl/gis");
|
|
24
|
+
var _constants = require("@kepler.gl/constants");
|
|
21
25
|
var _arrow = require("@loaders.gl/arrow");
|
|
22
|
-
var _deckglArrowLayers = require("@kepler.gl/deckgl-arrow-layers");
|
|
23
26
|
var _wkt = require("@loaders.gl/wkt");
|
|
24
27
|
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); }
|
|
25
28
|
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; }
|
|
@@ -125,11 +128,10 @@ function getBinaryGeometriesFromWKBArrow(geoColumn, options) {
|
|
|
125
128
|
}
|
|
126
129
|
function getGeojsonLayerMetaFromArrow(_ref) {
|
|
127
130
|
var _geoField$metadata;
|
|
128
|
-
var
|
|
129
|
-
geoColumn = _ref.geoColumn,
|
|
131
|
+
var geoColumn = _ref.geoColumn,
|
|
130
132
|
geoField = _ref.geoField,
|
|
131
133
|
chunkIndex = _ref.chunkIndex;
|
|
132
|
-
var encoding = geoField === null || geoField === void 0 || (_geoField$metadata = geoField.metadata) === null || _geoField$metadata === void 0 ? void 0 : _geoField$metadata.get(
|
|
134
|
+
var encoding = geoField === null || geoField === void 0 || (_geoField$metadata = geoField.metadata) === null || _geoField$metadata === void 0 ? void 0 : _geoField$metadata.get(_constants.GEOARROW_METADATA_KEY);
|
|
133
135
|
var options = _objectSpread(_objectSpread({}, chunkIndex !== undefined && chunkIndex >= 0 ? {
|
|
134
136
|
chunkIndex: chunkIndex,
|
|
135
137
|
chunkOffset: geoColumn.data[0].length * chunkIndex
|
|
@@ -139,7 +141,7 @@ function getGeojsonLayerMetaFromArrow(_ref) {
|
|
|
139
141
|
});
|
|
140
142
|
|
|
141
143
|
// getBinaryGeometriesFromArrow doesn't support geoarrow.wkb
|
|
142
|
-
if (encoding ===
|
|
144
|
+
if (encoding === _constants.GEOARROW_EXTENSIONS.WKB) {
|
|
143
145
|
return getBinaryGeometriesFromWKBArrow(geoColumn, options);
|
|
144
146
|
}
|
|
145
147
|
|
|
@@ -180,7 +182,7 @@ function getHoveredObjectFromArrow(objectInfo, dataContainer, layerId, columnAcc
|
|
|
180
182
|
var col = columnAccessor(dataContainer);
|
|
181
183
|
var rawGeometry = col === null || col === void 0 ? void 0 : col.get(objectInfo.index);
|
|
182
184
|
var field = fieldAccessor(dataContainer);
|
|
183
|
-
var encoding = field === null || field === void 0 || (_field$metadata = field.metadata) === null || _field$metadata === void 0 ? void 0 : _field$metadata.get(
|
|
185
|
+
var encoding = field === null || field === void 0 || (_field$metadata = field.metadata) === null || _field$metadata === void 0 ? void 0 : _field$metadata.get(_constants.GEOARROW_METADATA_KEY);
|
|
184
186
|
var hoveredFeature = (0, _arrow.parseGeometryFromArrow)(rawGeometry, encoding);
|
|
185
187
|
var properties = dataContainer.rowAsArray(objectInfo.index).reduce(function (prev, cur, i) {
|
|
186
188
|
var _dataContainer$getFie;
|
|
@@ -220,7 +222,7 @@ function getColumnModeRequiredColumns(supportedColumnModes, columnMode) {
|
|
|
220
222
|
function getGeoArrowPointFields(fields) {
|
|
221
223
|
return fields.filter(function (field) {
|
|
222
224
|
var _field$metadata2;
|
|
223
|
-
return field.type === 'geoarrow' && ((_field$metadata2 = field.metadata) === null || _field$metadata2 === void 0 ? void 0 : _field$metadata2.get(
|
|
225
|
+
return field.type === 'geoarrow' && ((_field$metadata2 = field.metadata) === null || _field$metadata2 === void 0 ? void 0 : _field$metadata2.get(_constants.GEOARROW_METADATA_KEY)) === _constants.GEOARROW_EXTENSIONS.POINT;
|
|
224
226
|
});
|
|
225
227
|
}
|
|
226
228
|
|
|
@@ -242,7 +244,7 @@ function createGeoArrowPointVector(dataContainer, getPosition) {
|
|
|
242
244
|
}).length : 2;
|
|
243
245
|
var precision = 2;
|
|
244
246
|
var metadata = new Map();
|
|
245
|
-
metadata.set(
|
|
247
|
+
metadata.set(_constants.GEOARROW_METADATA_KEY, _constants.GEOARROW_EXTENSIONS.POINT);
|
|
246
248
|
var childField = new arrow.Field('xyz', new arrow.Float(precision), false, metadata);
|
|
247
249
|
var fixedSizeList = new arrow.FixedSizeList(numCoords, childField);
|
|
248
250
|
var floatBuilder = new arrow.FloatBuilder({
|
|
@@ -346,4 +348,62 @@ function getBoundsFromArrowMetadata(layerColumn, dataContainer) {
|
|
|
346
348
|
}
|
|
347
349
|
return false;
|
|
348
350
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnJvdyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9naXMiLCJfYXJyb3ciLCJfZGVja2dsQXJyb3dMYXllcnMiLCJfd2t0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiYXNzaWduUG9pbnRQYWlyVG9MYXllckNvbHVtbiIsInBhaXIiLCJoYXNBbHQiLCJfcGFpciRwYWlyIiwibGF0IiwibG5nIiwiYWx0aXR1ZGUiLCJkZWZhdWx0QWx0Q29sdW1uIiwidmFsdWUiLCJmaWVsZElkeCIsIm9wdGlvbmFsIiwiZ2V0QmluYXJ5R2VvbWV0cmllc0Zyb21XS0JBcnJvdyIsImdlb0NvbHVtbiIsIm9wdGlvbnMiLCJkYXRhVG9GZWF0dXJlIiwiZmVhdHVyZVR5cGVzIiwicG9pbnQiLCJsaW5lIiwicG9seWdvbiIsImNodW5rcyIsImNodW5rSW5kZXgiLCJ1bmRlZmluZWQiLCJkYXRhIiwiZ2xvYmFsRmVhdHVyZUlkT2Zmc2V0IiwiY2h1bmtPZmZzZXQiLCJmZWF0dXJlSW5kZXgiLCJib3VuZHMiLCJJbmZpbml0eSIsImNodW5rIiwiZ2VvanNvbkZlYXR1cmVzIiwidmFsdWVPZmZzZXRzIiwiX1dLQkxvYWRlciRwYXJzZVN5bmMiLCJ2YWx1ZXNTbGljZSIsInZhbHVlcyIsInNsaWNlIiwiZ2VvbWV0cnkiLCJXS0JMb2FkZXIiLCJwYXJzZVN5bmMiLCJidWZmZXIiLCJ3a2IiLCJzaGFwZSIsImZlYXR1cmUiLCJ0eXBlIiwicHJvcGVydGllcyIsImluZGV4IiwiZ2VvanNvblRvQmluYXJ5T3B0aW9ucyIsInRyaWFuZ3VsYXRlIiwiZml4UmluZ1dpbmRpbmciLCJiaW5hcnlGZWF0dXJlcyIsImdlb2pzb25Ub0JpbmFyeSIsImZlYXR1cmVUeXBlc0FyciIsInByb3AiLCJmZWF0dXJlcyIsInVwZGF0ZUJvdW5kc0Zyb21HZW9BcnJvd1NhbXBsZXMiLCJwb3NpdGlvbnMiLCJzaXplIiwiZ2xvYmFsRmVhdHVyZUlkcyIsIm51bWVyaWNQcm9wcyIsImxlbiIsImZpeGVkUmFkaXVzIiwiZ2V0R2VvanNvbkxheWVyTWV0YUZyb21BcnJvdyIsIl9yZWYiLCJfZ2VvRmllbGQkbWV0YWRhdGEiLCJkYXRhQ29udGFpbmVyIiwiZ2VvRmllbGQiLCJlbmNvZGluZyIsIm1ldGFkYXRhIiwiY2FsY3VsYXRlTWVhbkNlbnRlcnMiLCJFWFRFTlNJT05fTkFNRSIsIldLQiIsIl9nZXRCaW5hcnlHZW9tZXRyaWVzRiIsImdldEJpbmFyeUdlb21ldHJpZXNGcm9tQXJyb3ciLCJiaW5hcnlHZW9tZXRyaWVzIiwibWVhbkNlbnRlcnMiLCJjZW50cm9pZHMiLCJpc0xheWVySG92ZXJlZEZyb21BcnJvdyIsIm9iamVjdEluZm8iLCJsYXllcklkIiwicGlja2VkIiwiX29iamVjdEluZm8kbGF5ZXIiLCJkZWNrTGF5ZXJJZCIsImxheWVyIiwicHJvcHMiLCJpZCIsInN0YXJ0c1dpdGgiLCJnZXRIb3ZlcmVkT2JqZWN0RnJvbUFycm93IiwiY29sdW1uQWNjZXNzb3IiLCJmaWVsZEFjY2Vzc29yIiwiX2ZpZWxkJG1ldGFkYXRhIiwiY29sIiwicmF3R2VvbWV0cnkiLCJmaWVsZCIsImhvdmVyZWRGZWF0dXJlIiwicGFyc2VHZW9tZXRyeUZyb21BcnJvdyIsInJvd0FzQXJyYXkiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyIiwiX2RhdGFDb250YWluZXIkZ2V0RmllIiwiZmllbGROYW1lIiwiZ2V0RmllbGQiLCJuYW1lIiwiZ2V0Q29sdW1uTW9kZVJlcXVpcmVkQ29sdW1ucyIsInN1cHBvcnRlZENvbHVtbk1vZGVzIiwiY29sdW1uTW9kZSIsIl9zdXBwb3J0ZWRDb2x1bW5Nb2RlcyIsImZpbmQiLCJfcmVmMiIsImtleSIsInJlcXVpcmVkQ29sdW1ucyIsImdldEdlb0Fycm93UG9pbnRGaWVsZHMiLCJmaWVsZHMiLCJfZmllbGQkbWV0YWRhdGEyIiwiUE9JTlQiLCJjcmVhdGVHZW9BcnJvd1BvaW50VmVjdG9yIiwiZ2V0UG9zaXRpb24iLCJudW1FbGVtZW50cyIsIm51bVJvd3MiLCJ0YWJsZSIsImdldFRhYmxlIiwibnVtQ29vcmRzIiwicHJlY2lzaW9uIiwiTWFwIiwiY2hpbGRGaWVsZCIsIkZpZWxkIiwiRmxvYXQiLCJmaXhlZFNpemVMaXN0IiwiRml4ZWRTaXplTGlzdCIsImZsb2F0QnVpbGRlciIsIkZsb2F0QnVpbGRlciIsImZpeGVkU2l6ZUxpc3RCdWlsZGVyIiwiRml4ZWRTaXplTGlzdEJ1aWxkZXIiLCJhZGRDaGlsZCIsImFzc2VtYmxlZEJhdGNoZXMiLCJpbmRleERhdGEiLCJiYXRjaEluZGV4IiwiYmF0Y2hlcyIsIm51bVJvd3NJbkJhdGNoIiwicG9zIiwiYXBwZW5kIiwiZmx1c2giLCJtYWtlVmVjdG9yIiwiZ2V0RmlsdGVyZWRJbmRleCIsInZpc2libGVJbmRpY2VzIiwiZXhpc3RpbmdGaWx0ZXJlZEluZGV4IiwiZmlsdGVyZWRJbmRleCIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiZmlsbCIsImdldE5laWdoYm9ycyIsIm5laWdoYm9yc0ZpZWxkIiwibmVpZ2hib3JJbmRpY2VzIiwidmFsdWVBdCIsInRvQXJyYXkiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwibmVpZ2hib3JzRGF0YSIsIm1hcCIsImlkeCIsInBvc2l0aW9uIiwiZ2V0Qm91bmRzRnJvbUFycm93TWV0YWRhdGEiLCJsYXllckNvbHVtbiIsImdlb01ldGFkYXRhIiwiZ2V0R2VvTWV0YWRhdGEiLCJnZW8iLCJzY2hlbWEiLCJmaWVsZE1ldGFkYXRhIiwiY29sdW1ucyIsImJvdW5kc0Zyb21NZXRhZGF0YSIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xheWVyLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCAqIGFzIGFycm93IGZyb20gJ2FwYWNoZS1hcnJvdyc7XG5pbXBvcnQge0ZlYXR1cmUsIEJCb3h9IGZyb20gJ2dlb2pzb24nO1xuaW1wb3J0IHtnZXRHZW9NZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvZ2lzJztcblxuaW1wb3J0IHtcbiAgRmllbGQsXG4gIFByb3RvRGF0YXNldEZpZWxkLFxuICBGaWVsZFBhaXIsXG4gIFN1cHBvcnRlZENvbHVtbk1vZGUsXG4gIExheWVyQ29sdW1uXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlLCBBcnJvd0RhdGFDb250YWluZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0QmluYXJ5R2VvbWV0cmllc0Zyb21BcnJvdyxcbiAgcGFyc2VHZW9tZXRyeUZyb21BcnJvdyxcbiAgQmluYXJ5R2VvbWV0cmllc0Zyb21BcnJvd09wdGlvbnMsXG4gIHVwZGF0ZUJvdW5kc0Zyb21HZW9BcnJvd1NhbXBsZXNcbn0gZnJvbSAnQGxvYWRlcnMuZ2wvYXJyb3cnO1xuaW1wb3J0IHtFWFRFTlNJT05fTkFNRX0gZnJvbSAnQGtlcGxlci5nbC9kZWNrZ2wtYXJyb3ctbGF5ZXJzJztcblxuaW1wb3J0IHtXS0JMb2FkZXJ9IGZyb20gJ0Bsb2FkZXJzLmdsL3drdCc7XG5pbXBvcnQge2dlb2pzb25Ub0JpbmFyeX0gZnJvbSAnQGxvYWRlcnMuZ2wvZ2lzJztcbmltcG9ydCB7XG4gIEJpbmFyeUZlYXR1cmVDb2xsZWN0aW9uLFxuICBHZW9tZXRyeSxcbiAgQmluYXJ5UG9pbnRGZWF0dXJlLFxuICBCaW5hcnlMaW5lRmVhdHVyZSxcbiAgQmluYXJ5UG9seWdvbkZlYXR1cmVcbn0gZnJvbSAnQGxvYWRlcnMuZ2wvc2NoZW1hJztcblxuaW1wb3J0IHtEZWNrR2xHZW9UeXBlcywgR2VvanNvbkRhdGFNYXBzfSBmcm9tICcuL2dlb2pzb24tbGF5ZXIvZ2VvanNvbi11dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ25Qb2ludFBhaXJUb0xheWVyQ29sdW1uKHBhaXI6IEZpZWxkUGFpciwgaGFzQWx0OiBib29sZWFuKSB7XG4gIGNvbnN0IHtsYXQsIGxuZywgYWx0aXR1ZGV9ID0gcGFpci5wYWlyO1xuICBpZiAoIWhhc0FsdCkge1xuICAgIHJldHVybiB7bGF0LCBsbmd9O1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdEFsdENvbHVtbiA9IHt2YWx1ZTogbnVsbCwgZmllbGRJZHg6IC0xLCBvcHRpb25hbDogdHJ1ZX07XG5cbiAgcmV0dXJuIHtcbiAgICBsYXQsXG4gICAgbG5nLFxuICAgIGFsdGl0dWRlOiBhbHRpdHVkZSA/IHsuLi5kZWZhdWx0QWx0Q29sdW1uLCAuLi5hbHRpdHVkZX0gOiBkZWZhdWx0QWx0Q29sdW1uXG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEdlb2pzb25MYXllck1ldGFQcm9wcyA9IHtcbiAgZGF0YVRvRmVhdHVyZTogR2VvanNvbkRhdGFNYXBzO1xuICBmZWF0dXJlVHlwZXM6IERlY2tHbEdlb1R5cGVzO1xuICBib3VuZHM6IEJCb3ggfCBudWxsO1xuICBmaXhlZFJhZGl1czogYm9vbGVhbjtcbiAgY2VudHJvaWRzPzogQXJyYXk8bnVtYmVyW10gfCBudWxsPjtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBnZW9hcnJvdy53a2IgdmVjdG9yIGludG8gYW4gYXJyYXkgb2YgQmluYXJ5RmVhdHVyZUNvbGxlY3Rpb25zLlxuICogQHBhcmFtIGdlb0NvbHVtbiBBIHZlY3RvciBjb2x1bW4gd2l0aCBnZW9hcnJvdy53a2IgZXh0ZW5zaW9uLlxuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZ2VvbWV0cnkgdHJhbnNmb3JtYXRpb24uXG4gKiBAcmV0dXJuc1xuICovXG5mdW5jdGlvbiBnZXRCaW5hcnlHZW9tZXRyaWVzRnJvbVdLQkFycm93KFxuICBnZW9Db2x1bW46IGFycm93LlZlY3RvcixcbiAgb3B0aW9uczoge2NodW5rSW5kZXg/OiBudW1iZXI7IGNodW5rT2Zmc2V0PzogbnVtYmVyfVxuKTogR2VvanNvbkxheWVyTWV0YVByb3BzIHtcbiAgY29uc3QgZGF0YVRvRmVhdHVyZTogQmluYXJ5RmVhdHVyZUNvbGxlY3Rpb25bXSA9IFtdO1xuICBjb25zdCBmZWF0dXJlVHlwZXM6IEdlb2pzb25MYXllck1ldGFQcm9wc1snZmVhdHVyZVR5cGVzJ10gPSB7XG4gICAgcG9pbnQ6IGZhbHNlLFxuICAgIGxpbmU6IGZhbHNlLFxuICAgIHBvbHlnb246IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgY2h1bmtzID1cbiAgICBvcHRpb25zPy5jaHVua0luZGV4ICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucz8uY2h1bmtJbmRleCA+PSAwXG4gICAgICA/IFtnZW9Db2x1bW4uZGF0YVtvcHRpb25zPy5jaHVua0luZGV4XV1cbiAgICAgIDogZ2VvQ29sdW1uLmRhdGE7XG4gIGNvbnN0IGdsb2JhbEZlYXR1cmVJZE9mZnNldCA9IG9wdGlvbnM/LmNodW5rT2Zmc2V0IHx8IDA7XG4gIGxldCBmZWF0dXJlSW5kZXggPSBnbG9iYWxGZWF0dXJlSWRPZmZzZXQ7XG4gIGxldCBib3VuZHM6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0gW0luZmluaXR5LCBJbmZpbml0eSwgLUluZmluaXR5LCAtSW5maW5pdHldO1xuXG4gIGNodW5rcy5mb3JFYWNoKGNodW5rID0+IHtcbiAgICBjb25zdCBnZW9qc29uRmVhdHVyZXM6IEZlYXR1cmVbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2h1bmsubGVuZ3RoOyArK2kpIHtcbiAgICAgIC8vIGlnbm9yZSBmZWF0dXJlcyB3aXRob3V0IGFueSBnZW9tZXRyeVxuICAgICAgaWYgKGNodW5rLnZhbHVlT2Zmc2V0c1tpICsgMV0gLSBjaHVuay52YWx1ZU9mZnNldHNbaV0gPiAwKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlc1NsaWNlID0gY2h1bmsudmFsdWVzLnNsaWNlKGNodW5rLnZhbHVlT2Zmc2V0c1tpXSwgY2h1bmsudmFsdWVPZmZzZXRzW2kgKyAxXSk7XG5cbiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBXS0JMb2FkZXI/LnBhcnNlU3luYz8uKHZhbHVlc1NsaWNlLmJ1ZmZlciwge1xuICAgICAgICAgIHdrYjoge3NoYXBlOiAnZ2VvanNvbi1nZW9tZXRyeSd9XG4gICAgICAgIH0pIGFzIEdlb21ldHJ5O1xuICAgICAgICBjb25zdCBmZWF0dXJlOiBGZWF0dXJlID0ge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBnZW9tZXRyeSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7aW5kZXg6IGZlYXR1cmVJbmRleH1cbiAgICAgICAgfTtcbiAgICAgICAgZ2VvanNvbkZlYXR1cmVzLnB1c2goZmVhdHVyZSk7XG5cbiAgICAgICAgY29uc3Qge3R5cGV9ID0gZ2VvbWV0cnk7XG4gICAgICAgIGZlYXR1cmVUeXBlcy5wb2x5Z29uID0gdHlwZSA9PT0gJ1BvbHlnb24nIHx8IHR5cGUgPT09ICdNdWx0aVBvbHlnb24nO1xuICAgICAgICBmZWF0dXJlVHlwZXMucG9pbnQgPSB0eXBlID09PSAnUG9pbnQnIHx8IHR5cGUgPT09ICdNdWx0aVBvaW50JztcbiAgICAgICAgZmVhdHVyZVR5cGVzLmxpbmUgPSB0eXBlID09PSAnTGluZVN0cmluZycgfHwgdHlwZSA9PT0gJ011bHRpTGluZVN0cmluZyc7XG4gICAgICB9XG5cbiAgICAgIGZlYXR1cmVJbmRleCsrO1xuICAgIH1cblxuICAgIGNvbnN0IGdlb2pzb25Ub0JpbmFyeU9wdGlvbnMgPSB7XG4gICAgICB0cmlhbmd1bGF0ZTogdHJ1ZSxcbiAgICAgIGZpeFJpbmdXaW5kaW5nOiB0cnVlXG4gICAgfTtcbiAgICBjb25zdCBiaW5hcnlGZWF0dXJlcyA9IGdlb2pzb25Ub0JpbmFyeShnZW9qc29uRmVhdHVyZXMsIGdlb2pzb25Ub0JpbmFyeU9wdGlvbnMpO1xuXG4gICAgLy8gTmVlZCB0byB1cGRhdGUgZ2xvYmFsRmVhdHVyZUlkcywgdG8gdGFrZSBpbnRvIGFjY291bnQgcHJldmlvdXMgYmF0Y2hlcyxcbiAgICAvLyBhcyBnZW9qc29uVG9CaW5hcnkgZG9lc24ndCBoYXZlIHN1Y2ggb3B0aW9uLlxuICAgIGNvbnN0IGZlYXR1cmVUeXBlc0FyciA9IFsncG9pbnRzJywgJ2xpbmVzJywgJ3BvbHlnb25zJ107XG4gICAgZmVhdHVyZVR5cGVzQXJyLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGJpbmFyeUZlYXR1cmVzW3Byb3BdIGFzXG4gICAgICAgIHwgQmluYXJ5UG9pbnRGZWF0dXJlXG4gICAgICAgIHwgQmluYXJ5TGluZUZlYXR1cmVcbiAgICAgICAgfCBCaW5hcnlQb2x5Z29uRmVhdHVyZTtcbiAgICAgIGlmIChmZWF0dXJlcykge1xuICAgICAgICBib3VuZHMgPSB1cGRhdGVCb3VuZHNGcm9tR2VvQXJyb3dTYW1wbGVzKFxuICAgICAgICAgIGZlYXR1cmVzLnBvc2l0aW9ucy52YWx1ZSBhcyBGbG9hdDY0QXJyYXksXG4gICAgICAgICAgZmVhdHVyZXMucG9zaXRpb25zLnNpemUsXG4gICAgICAgICAgYm91bmRzXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qge2dsb2JhbEZlYXR1cmVJZHMsIG51bWVyaWNQcm9wc30gPSBmZWF0dXJlcztcbiAgICAgICAgY29uc3Qge2luZGV4fSA9IG51bWVyaWNQcm9wcztcbiAgICAgICAgY29uc3QgbGVuID0gZ2xvYmFsRmVhdHVyZUlkcy52YWx1ZS5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgICBnbG9iYWxGZWF0dXJlSWRzLnZhbHVlW2ldID0gaW5kZXgudmFsdWVbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRhdGFUb0ZlYXR1cmUucHVzaChiaW5hcnlGZWF0dXJlcyk7XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgZGF0YVRvRmVhdHVyZTogZGF0YVRvRmVhdHVyZSxcbiAgICBmZWF0dXJlVHlwZXM6IGZlYXR1cmVUeXBlcyxcbiAgICBib3VuZHMsXG4gICAgZml4ZWRSYWRpdXM6IGZhbHNlXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9qc29uTGF5ZXJNZXRhRnJvbUFycm93KHtcbiAgZGF0YUNvbnRhaW5lcixcbiAgZ2VvQ29sdW1uLFxuICBnZW9GaWVsZCxcbiAgY2h1bmtJbmRleFxufToge1xuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlO1xuICBnZW9Db2x1bW46IGFycm93LlZlY3RvcjtcbiAgZ2VvRmllbGQ6IFByb3RvRGF0YXNldEZpZWxkO1xuICBjaHVua0luZGV4PzogbnVtYmVyO1xufSk6IEdlb2pzb25MYXllck1ldGFQcm9wcyB7XG4gIGNvbnN0IGVuY29kaW5nID0gZ2VvRmllbGQ/Lm1ldGFkYXRhPy5nZXQoJ0FSUk9XOmV4dGVuc2lvbjpuYW1lJyk7XG4gIGNvbnN0IG9wdGlvbnM6IEJpbmFyeUdlb21ldHJpZXNGcm9tQXJyb3dPcHRpb25zID0ge1xuICAgIC4uLihjaHVua0luZGV4ICE9PSB1bmRlZmluZWQgJiYgY2h1bmtJbmRleCA+PSAwXG4gICAgICA/IHtcbiAgICAgICAgICBjaHVua0luZGV4LFxuICAgICAgICAgIGNodW5rT2Zmc2V0OiBnZW9Db2x1bW4uZGF0YVswXS5sZW5ndGggKiBjaHVua0luZGV4XG4gICAgICAgIH1cbiAgICAgIDoge30pLFxuICAgIHRyaWFuZ3VsYXRlOiB0cnVlLFxuICAgIGNhbGN1bGF0ZU1lYW5DZW50ZXJzOiB0cnVlXG4gIH07XG5cbiAgLy8gZ2V0QmluYXJ5R2VvbWV0cmllc0Zyb21BcnJvdyBkb2Vzbid0IHN1cHBvcnQgZ2VvYXJyb3cud2tiXG4gIGlmIChlbmNvZGluZyA9PT0gRVhURU5TSU9OX05BTUUuV0tCKSB7XG4gICAgcmV0dXJuIGdldEJpbmFyeUdlb21ldHJpZXNGcm9tV0tCQXJyb3coZ2VvQ29sdW1uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSBiaW5hcnkgZGF0YSBmcm9tIGFycm93IGRhdGEgZm9yIEdlb0pzb25MYXllclxuICBjb25zdCB7YmluYXJ5R2VvbWV0cmllcywgZmVhdHVyZVR5cGVzLCBib3VuZHMsIG1lYW5DZW50ZXJzfSA9IGdldEJpbmFyeUdlb21ldHJpZXNGcm9tQXJyb3coXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdlb0NvbHVtbixcbiAgICBlbmNvZGluZyxcbiAgICBvcHRpb25zXG4gICk7XG5cbiAgLy8gc2luY2UgdGhlcmUgaXMgbm8gZmVhdHVyZS5wcm9wZXJ0aWVzLnJhZGl1cywgd2Ugc2V0IGZpeGVkUmFkaXVzIHRvIGZhbHNlXG4gIGNvbnN0IGZpeGVkUmFkaXVzID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhVG9GZWF0dXJlOiBiaW5hcnlHZW9tZXRyaWVzLFxuICAgIGZlYXR1cmVUeXBlcyxcbiAgICBib3VuZHMsXG4gICAgZml4ZWRSYWRpdXMsXG4gICAgY2VudHJvaWRzOiBtZWFuQ2VudGVyc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMYXllckhvdmVyZWRGcm9tQXJyb3cob2JqZWN0SW5mbywgbGF5ZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIGRlY2suZ2wgbGF5ZXJzIGNyZWF0ZWQgZnJvbSBtdWx0aXBsZSBjaHVua3MgaW4gYXJyb3cgdGFibGVcbiAgLy8gdGhlIG9iamVjdEluZm8ubGF5ZXIgaWQgc2hvdWxkIGJlIGAke3RoaXMuaWR9LSR7aX1gXG4gIGlmIChvYmplY3RJbmZvPy5waWNrZWQpIHtcbiAgICBjb25zdCBkZWNrTGF5ZXJJZCA9IG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQ7XG4gICAgcmV0dXJuIGRlY2tMYXllcklkLnN0YXJ0c1dpdGgobGF5ZXJJZCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG92ZXJlZE9iamVjdEZyb21BcnJvdyhcbiAgb2JqZWN0SW5mbyxcbiAgZGF0YUNvbnRhaW5lcixcbiAgbGF5ZXJJZCxcbiAgY29sdW1uQWNjZXNzb3IsXG4gIGZpZWxkQWNjZXNzb3Jcbik6IEZlYXR1cmUgfCBudWxsIHtcbiAgLy8gaG92ZXIgb2JqZWN0IHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBvYmplY3QgaW4gdGhlIGRhdGEgYXJyYXlcbiAgLy8gTk9URTogdGhpcyBjb3VsZCBiZSBkb25lIGluIERlY2suZ2wgZ2V0UGlja2luZ0luZm8ocGFyYW1zKSBhbmQgYmluYXJ5VG9HZW9qc29uKClcbiAgaWYgKGlzTGF5ZXJIb3ZlcmVkRnJvbUFycm93KG9iamVjdEluZm8sIGxheWVySWQpICYmIG9iamVjdEluZm8uaW5kZXggPj0gMCAmJiBkYXRhQ29udGFpbmVyKSB7XG4gICAgY29uc3QgY29sID0gY29sdW1uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3QgcmF3R2VvbWV0cnkgPSBjb2w/LmdldChvYmplY3RJbmZvLmluZGV4KTtcblxuICAgIGNvbnN0IGZpZWxkID0gZmllbGRBY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcbiAgICBjb25zdCBlbmNvZGluZyA9IGZpZWxkPy5tZXRhZGF0YT8uZ2V0KCdBUlJPVzpleHRlbnNpb246bmFtZScpO1xuXG4gICAgY29uc3QgaG92ZXJlZEZlYXR1cmUgPSBwYXJzZUdlb21ldHJ5RnJvbUFycm93KHJhd0dlb21ldHJ5LCBlbmNvZGluZyk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gZGF0YUNvbnRhaW5lci5yb3dBc0FycmF5KG9iamVjdEluZm8uaW5kZXgpLnJlZHVjZSgocHJldiwgY3VyLCBpKSA9PiB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBkYXRhQ29udGFpbmVyPy5nZXRGaWVsZD8uKGkpLm5hbWU7XG4gICAgICBpZiAoZmllbGROYW1lICE9PSBmaWVsZC5uYW1lKSB7XG4gICAgICAgIHByZXZbZmllbGROYW1lXSA9IGN1cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcblxuICAgIHJldHVybiBob3ZlcmVkRmVhdHVyZVxuICAgICAgPyB7XG4gICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgIGdlb21ldHJ5OiBob3ZlcmVkRmVhdHVyZSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAuLi5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgaW5kZXg6IG9iamVjdEluZm8uaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBmaW5kIHJlcXVpcmVkQ29sdW1ucyBvZiBzdXBwb3J0ZWQgY29sdW1uIG1vZGUgYmFzZWQgb24gY29sdW1uIG1vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtbk1vZGVSZXF1aXJlZENvbHVtbnMoXG4gIHN1cHBvcnRlZENvbHVtbk1vZGVzOiBTdXBwb3J0ZWRDb2x1bW5Nb2RlW10gfCBudWxsLFxuICBjb2x1bW5Nb2RlPzogc3RyaW5nXG4pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzdXBwb3J0ZWRDb2x1bW5Nb2Rlcz8uZmluZCgoe2tleX0pID0+IGtleSA9PT0gY29sdW1uTW9kZSk/LnJlcXVpcmVkQ29sdW1ucztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGdlb2Fycm93IGZpZWxkcyB3aXRoIEFSUk9XOmV4dGVuc2lvbjpuYW1lIFBPSU5UIG1ldGFkYXRhXG4gKiBAcGFyYW0gZmllbGRzIEFueSBmaWVsZHNcbiAqIEByZXR1cm5zIGdlb2Fycm93IGZpZWxkcyB3aXRoIEFSUk9XOmV4dGVuc2lvbjpuYW1lIFBPSU5UIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9BcnJvd1BvaW50RmllbGRzKGZpZWxkczogRmllbGRbXSk6IEZpZWxkW10ge1xuICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZpZWxkLnR5cGUgPT09ICdnZW9hcnJvdycgJiZcbiAgICAgIGZpZWxkLm1ldGFkYXRhPy5nZXQoJ0FSUk9XOmV4dGVuc2lvbjpuYW1lJykgPT09IEVYVEVOU0lPTl9OQU1FLlBPSU5UXG4gICAgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGFuIGFycm93IHZlY3RvciBjb21wYXRpYmxlIHdpdGggQVJST1c6ZXh0ZW5zaW9uOm5hbWUgZ2VvYXJyb3cucG9pbnQuXG4gKiBAcGFyYW0gZ2V0UG9zaXRpb24gUG9zaXRpb24gYWNjZXNzb3IuXG4gKiBAcGFyYW0gbnVtRWxlbWVudHMgTnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IuXG4gKiBAcmV0dXJucyBBbiBhcnJvdyB2ZWN0b3IgY29tcGF0aWJsZSB3aXRoIEFSUk9XOmV4dGVuc2lvbjpuYW1lIGdlb2Fycm93LnBvaW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2VvQXJyb3dQb2ludFZlY3RvcihcbiAgZGF0YUNvbnRhaW5lcjogQXJyb3dEYXRhQ29udGFpbmVyLFxuICBnZXRQb3NpdGlvbjogKHtpbmRleH06IHtpbmRleDogbnVtYmVyfSkgPT4gbnVtYmVyW11cbik6IGFycm93LlZlY3RvciB7XG4gIC8vIFRPRE8gdXBkYXRlL3Jlc2l6ZSBleGlzdGluZyB2ZWN0b3I/XG4gIC8vIFRPRE8gZmluZCBhbiBlYXNpZXIgd2F5IHRvIGNyZWF0ZSBwb2ludCBnZW8gY29sdW1uc1xuICAvLyBpbiBhIGNvcnJlY3QgYXJyb3cgZm9ybWF0LCBhcyB0aGlzIGFwcHJvYWNoIHNlZW1zIHRvbyBleGNlc3NpdmUgZm9yIGp1c3QgYSBzaW1wbGUgaW50ZXJsZWF2ZWQgYnVmZmVyLlxuXG4gIGNvbnN0IG51bUVsZW1lbnRzID0gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCk7XG4gIGNvbnN0IHRhYmxlID0gZGF0YUNvbnRhaW5lci5nZXRUYWJsZSgpO1xuXG4gIGNvbnN0IG51bUNvb3JkcyA9IG51bUVsZW1lbnRzID4gMCA/IGdldFBvc2l0aW9uKHtpbmRleDogMH0pLmxlbmd0aCA6IDI7XG4gIGNvbnN0IHByZWNpc2lvbiA9IDI7XG5cbiAgY29uc3QgbWV0YWRhdGEgPSBuZXcgTWFwKCk7XG4gIG1ldGFkYXRhLnNldCgnQVJST1c6ZXh0ZW5zaW9uOm5hbWUnLCBFWFRFTlNJT05fTkFNRS5QT0lOVCk7XG5cbiAgY29uc3QgY2hpbGRGaWVsZCA9IG5ldyBhcnJvdy5GaWVsZCgneHl6JywgbmV3IGFycm93LkZsb2F0KHByZWNpc2lvbiksIGZhbHNlLCBtZXRhZGF0YSk7XG4gIGNvbnN0IGZpeGVkU2l6ZUxpc3QgPSBuZXcgYXJyb3cuRml4ZWRTaXplTGlzdChudW1Db29yZHMsIGNoaWxkRmllbGQpO1xuICBjb25zdCBmbG9hdEJ1aWxkZXIgPSBuZXcgYXJyb3cuRmxvYXRCdWlsZGVyKHt0eXBlOiBuZXcgYXJyb3cuRmxvYXQocHJlY2lzaW9uKX0pO1xuICBjb25zdCBmaXhlZFNpemVMaXN0QnVpbGRlciA9IG5ldyBhcnJvdy5GaXhlZFNpemVMaXN0QnVpbGRlcih7dHlwZTogZml4ZWRTaXplTGlzdH0pO1xuICBmaXhlZFNpemVMaXN0QnVpbGRlci5hZGRDaGlsZChmbG9hdEJ1aWxkZXIpO1xuXG4gIGNvbnN0IGFzc2VtYmxlZEJhdGNoZXM6IGFycm93LkRhdGFbXSA9IFtdO1xuICBjb25zdCBpbmRleERhdGEgPSB7aW5kZXg6IDB9O1xuICBmb3IgKGxldCBiYXRjaEluZGV4ID0gMDsgYmF0Y2hJbmRleCA8IHRhYmxlLmJhdGNoZXMubGVuZ3RoOyArK2JhdGNoSW5kZXgpIHtcbiAgICBjb25zdCBudW1Sb3dzSW5CYXRjaCA9IHRhYmxlLmJhdGNoZXNbYmF0Y2hJbmRleF0ubnVtUm93cztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtUm93c0luQmF0Y2g7ICsraSkge1xuICAgICAgY29uc3QgcG9zID0gZ2V0UG9zaXRpb24oaW5kZXhEYXRhKTtcbiAgICAgIGZpeGVkU2l6ZUxpc3RCdWlsZGVyLmFwcGVuZChwb3MpO1xuXG4gICAgICArK2luZGV4RGF0YS5pbmRleDtcbiAgICB9XG4gICAgYXNzZW1ibGVkQmF0Y2hlcy5wdXNoKGZpeGVkU2l6ZUxpc3RCdWlsZGVyLmZsdXNoKCkpO1xuICB9XG5cbiAgcmV0dXJuIGFycm93Lm1ha2VWZWN0b3IoYXNzZW1ibGVkQmF0Y2hlcyk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZmlsdGVyZWQgaW5kZXggc3VpdGFibGUgZm9yIEZpbHRlckFycm93RXh0ZW5zaW9uLlxuICogQHBhcmFtIG51bUVsZW1lbnRzIFNpemUgZm9yIGZpbHRlcmVkIGluZGV4IGFycmF5LlxuICogQHBhcmFtIHZpc2libGVJbmRpY2VzIEFuIGFycmF5IHdpdGggaW5kaWNlcyBvZiBlbGVtZW50cyB0aGF0IGFyZW4ndCBmaWx0ZXJlZCBvdXQuXG4gKiBAcmV0dXJucyBmaWx0ZXJlZEluZGV4IFswfDFdIGFycmF5IGZvciBHUFUgZmlsdGVyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJlZEluZGV4KFxuICBudW1FbGVtZW50czogbnVtYmVyLFxuICB2aXNpYmxlSW5kaWNlczogbnVtYmVyW10sXG4gIGV4aXN0aW5nRmlsdGVyZWRJbmRleDogVWludDhDbGFtcGVkQXJyYXkgfCBudWxsXG4pIHtcbiAgLy8gY29udGVudHMgYXJlIGluaXRpYWxpemVkIHdpdGggemVyb3MgYnkgZGVmYXVsdCwgbWVhbmluZyBub3QgdmlzaWJsZVxuICBjb25zdCBmaWx0ZXJlZEluZGV4ID1cbiAgICBleGlzdGluZ0ZpbHRlcmVkSW5kZXggJiYgZXhpc3RpbmdGaWx0ZXJlZEluZGV4Lmxlbmd0aCA9PT0gbnVtRWxlbWVudHNcbiAgICAgID8gZXhpc3RpbmdGaWx0ZXJlZEluZGV4XG4gICAgICA6IG5ldyBVaW50OENsYW1wZWRBcnJheShudW1FbGVtZW50cyk7XG4gIGZpbHRlcmVkSW5kZXguZmlsbCgwKTtcblxuICBpZiAodmlzaWJsZUluZGljZXMpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpc2libGVJbmRpY2VzLmxlbmd0aDsgKytpKSB7XG4gICAgICBmaWx0ZXJlZEluZGV4W3Zpc2libGVJbmRpY2VzW2ldXSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBmaWx0ZXJlZEluZGV4O1xufVxuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgb2YgbmVpZ2hib3JzIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gKiBAcGFyYW0gbmVpZ2hib3JzRmllbGQgTGF5ZXJDb2x1bW4gZmllbGQgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBuZWlnaGJvcnMuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBEYXRhIGNvbnRhaW5lci5cbiAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBpbnRlcmVzdC5cbiAqIEBwYXJhbSBnZXRQb3NpdGlvbiBQb3NpdGlvbiBhY2Nlc3Nvci5cbiAqIEByZXR1cm5zIEFuIGFycmF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbmVpZ2hib3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVpZ2hib3JzKFxuICBuZWlnaGJvcnNGaWVsZDogTGF5ZXJDb2x1bW4gfCB1bmRlZmluZWQsXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIGluZGV4OiBudW1iZXIsXG4gIGdldFBvc2l0aW9uOiAoe2luZGV4fToge2luZGV4OiBudW1iZXJ9KSA9PiBudW1iZXJbXVxuKToge2luZGV4OiBudW1iZXI7IHBvc2l0aW9uOiBudW1iZXJbXX1bXSB7XG4gIGlmICghbmVpZ2hib3JzRmllbGQgfHwgbmVpZ2hib3JzRmllbGQuZmllbGRJZHggPCAwKSByZXR1cm4gW107XG5cbiAgbGV0IG5laWdoYm9ySW5kaWNlcyA9IGRhdGFDb250YWluZXIudmFsdWVBdChpbmRleCwgbmVpZ2hib3JzRmllbGQuZmllbGRJZHgpO1xuICAvLyBJbiBjYXNlIG9mIGFycm93IGNvbHVtbiB3aXRoIGFuIGFycmF5IG9mIGluZGljZXMuXG4gIGlmIChuZWlnaGJvckluZGljZXMudG9BcnJheSkge1xuICAgIG5laWdoYm9ySW5kaWNlcyA9IEFycmF5LmZyb20obmVpZ2hib3JJbmRpY2VzLnRvQXJyYXkoKSk7XG4gIH1cbiAgaWYgKCFBcnJheS5pc0FycmF5KG5laWdoYm9ySW5kaWNlcykpIHJldHVybiBbXTtcblxuICAvLyBmaW5kIG5laWdoYm9yXG4gIGNvbnN0IG5laWdoYm9yc0RhdGEgPSBuZWlnaGJvckluZGljZXMubWFwKGlkeCA9PiAoe1xuICAgIGluZGV4OiBpZHgsXG4gICAgcG9zaXRpb246IGdldFBvc2l0aW9uKHtpbmRleDogaWR4fSlcbiAgfSkpO1xuXG4gIHJldHVybiBuZWlnaGJvcnNEYXRhO1xufVxuXG4vKipcbiAqIFJldHVybnMgYm91bmRzIGZyb20gYSBnZW9hcnJvdyBmaWVsZC5cbiAqIFRPRE86IHJlZmFjdG9yIG9uY2UgbWV0YWRhdGEgZXh0cmFjdGlvbiBmcm9tIHBhcnF1ZXQgdG8gYXJyb3cgdmVjdG9ycyBpcyBpbiBwbGFjZS5cbiAqIEBwYXJhbSBsYXllckNvbHVtbiBMYXllciBjb2x1bW5zIGZvciB3aGljaCB0byBjaGVjayBmb3IgYSBib3VuZGluZyBib3guXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBEYXRhIGNvbnRhaW5lciB3aXRoIGdlb2Fycm93IG1ldGFkYXRhLlxuICogQHJldHVybnMgUmV0dXJucyBib3VuZGluZyBib3ggaWYgZXhpc3RzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRzRnJvbUFycm93TWV0YWRhdGEoXG4gIGxheWVyQ29sdW1uOiBMYXllckNvbHVtbixcbiAgZGF0YUNvbnRhaW5lcjogQXJyb3dEYXRhQ29udGFpbmVyXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IGZhbHNlIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmaWVsZCA9IGRhdGFDb250YWluZXIuZ2V0RmllbGQobGF5ZXJDb2x1bW4uZmllbGRJZHgpO1xuICAgIGNvbnN0IHRhYmxlID0gZGF0YUNvbnRhaW5lci5nZXRUYWJsZSgpO1xuXG4gICAgY29uc3QgZ2VvTWV0YWRhdGEgPSBnZXRHZW9NZXRhZGF0YSh7XG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgIGdlbzogdGFibGUuc2NoZW1hLm1ldGFkYXRhLmdldCgnZ2VvJylcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChnZW9NZXRhZGF0YSkge1xuICAgICAgY29uc3QgZmllbGRNZXRhZGF0YSA9IGdlb01ldGFkYXRhLmNvbHVtbnNbZmllbGQubmFtZV07XG4gICAgICBpZiAoZmllbGRNZXRhZGF0YSkge1xuICAgICAgICBjb25zdCBib3VuZHNGcm9tTWV0YWRhdGEgPSBmaWVsZE1ldGFkYXRhWydiYm94J107XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGJvdW5kc0Zyb21NZXRhZGF0YSkgJiYgYm91bmRzRnJvbU1ldGFkYXRhLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgIHJldHVybiBib3VuZHNGcm9tTWV0YWRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gaWdub3JlIGZvciBub3dcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFB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
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Finds and returns the first satisfied column mode based on the provided columns and fields.
|
|
354
|
+
* @param supportedColumnModes - An array of supported column modes to check.
|
|
355
|
+
* @param columns - The available columns.
|
|
356
|
+
* @param fields - Optional table fields to be used for extra verification.
|
|
357
|
+
* @returns The first column mode that satisfies the required conditions, or undefined if none match.
|
|
358
|
+
*/
|
|
359
|
+
function getSatisfiedColumnMode(columnModes, columns, fields) {
|
|
360
|
+
return columnModes === null || columnModes === void 0 ? void 0 : columnModes.find(function (mode) {
|
|
361
|
+
var _mode$requiredColumns;
|
|
362
|
+
return (_mode$requiredColumns = mode.requiredColumns) === null || _mode$requiredColumns === void 0 ? void 0 : _mode$requiredColumns.every(function (requriedCol) {
|
|
363
|
+
var column = columns === null || columns === void 0 ? void 0 : columns[requriedCol];
|
|
364
|
+
if (column !== null && column !== void 0 && column.value) {
|
|
365
|
+
if (mode.verifyField && fields !== null && fields !== void 0 && fields[column.fieldIdx]) {
|
|
366
|
+
var field = fields[column.fieldIdx];
|
|
367
|
+
return mode.verifyField(field);
|
|
368
|
+
}
|
|
369
|
+
return true;
|
|
370
|
+
}
|
|
371
|
+
return false;
|
|
372
|
+
});
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Returns true if the field is of geoarrow point format.
|
|
378
|
+
* @param field A field.
|
|
379
|
+
* @returns Returns true if the field is of geoarrow point format.
|
|
380
|
+
*/
|
|
381
|
+
function isGeoArrowPointField(field) {
|
|
382
|
+
var _field$metadata3;
|
|
383
|
+
return field.type === 'geoarrow' && ((_field$metadata3 = field.metadata) === null || _field$metadata3 === void 0 ? void 0 : _field$metadata3.get(_constants.GEOARROW_METADATA_KEY)) === _constants.GEOARROW_EXTENSIONS.POINT;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Create default geoarrow column props based on the dataset.
|
|
388
|
+
* @param dataset A dataset to create layer props from.
|
|
389
|
+
* @returns geoarrow column props.
|
|
390
|
+
*/
|
|
391
|
+
function getGeoArrowPointLayerProps(dataset) {
|
|
392
|
+
var label = dataset.label;
|
|
393
|
+
var altProps = [];
|
|
394
|
+
dataset.fields.forEach(function (field) {
|
|
395
|
+
if (isGeoArrowPointField(field)) {
|
|
396
|
+
altProps.push({
|
|
397
|
+
label: typeof label === 'string' && label.replace(/\.[^/.]+$/, '') || field.name,
|
|
398
|
+
columns: {
|
|
399
|
+
geoarrow: {
|
|
400
|
+
value: field.name,
|
|
401
|
+
fieldIdx: field.fieldIdx
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
return altProps;
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnJvdyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9naXMiLCJfY29uc3RhbnRzIiwiX2Fycm93IiwiX3drdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImFzc2lnblBvaW50UGFpclRvTGF5ZXJDb2x1bW4iLCJwYWlyIiwiaGFzQWx0IiwiX3BhaXIkcGFpciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGVmYXVsdEFsdENvbHVtbiIsInZhbHVlIiwiZmllbGRJZHgiLCJvcHRpb25hbCIsImdldEJpbmFyeUdlb21ldHJpZXNGcm9tV0tCQXJyb3ciLCJnZW9Db2x1bW4iLCJvcHRpb25zIiwiZGF0YVRvRmVhdHVyZSIsImZlYXR1cmVUeXBlcyIsInBvaW50IiwibGluZSIsInBvbHlnb24iLCJjaHVua3MiLCJjaHVua0luZGV4IiwidW5kZWZpbmVkIiwiZGF0YSIsImdsb2JhbEZlYXR1cmVJZE9mZnNldCIsImNodW5rT2Zmc2V0IiwiZmVhdHVyZUluZGV4IiwiYm91bmRzIiwiSW5maW5pdHkiLCJjaHVuayIsImdlb2pzb25GZWF0dXJlcyIsInZhbHVlT2Zmc2V0cyIsIl9XS0JMb2FkZXIkcGFyc2VTeW5jIiwidmFsdWVzU2xpY2UiLCJ2YWx1ZXMiLCJzbGljZSIsImdlb21ldHJ5IiwiV0tCTG9hZGVyIiwicGFyc2VTeW5jIiwiYnVmZmVyIiwid2tiIiwic2hhcGUiLCJmZWF0dXJlIiwidHlwZSIsInByb3BlcnRpZXMiLCJpbmRleCIsImdlb2pzb25Ub0JpbmFyeU9wdGlvbnMiLCJ0cmlhbmd1bGF0ZSIsImZpeFJpbmdXaW5kaW5nIiwiYmluYXJ5RmVhdHVyZXMiLCJnZW9qc29uVG9CaW5hcnkiLCJmZWF0dXJlVHlwZXNBcnIiLCJwcm9wIiwiZmVhdHVyZXMiLCJ1cGRhdGVCb3VuZHNGcm9tR2VvQXJyb3dTYW1wbGVzIiwicG9zaXRpb25zIiwic2l6ZSIsImdsb2JhbEZlYXR1cmVJZHMiLCJudW1lcmljUHJvcHMiLCJsZW4iLCJmaXhlZFJhZGl1cyIsImdldEdlb2pzb25MYXllck1ldGFGcm9tQXJyb3ciLCJfcmVmIiwiX2dlb0ZpZWxkJG1ldGFkYXRhIiwiZ2VvRmllbGQiLCJlbmNvZGluZyIsIm1ldGFkYXRhIiwiR0VPQVJST1dfTUVUQURBVEFfS0VZIiwiY2FsY3VsYXRlTWVhbkNlbnRlcnMiLCJHRU9BUlJPV19FWFRFTlNJT05TIiwiV0tCIiwiX2dldEJpbmFyeUdlb21ldHJpZXNGIiwiZ2V0QmluYXJ5R2VvbWV0cmllc0Zyb21BcnJvdyIsImJpbmFyeUdlb21ldHJpZXMiLCJtZWFuQ2VudGVycyIsImNlbnRyb2lkcyIsImlzTGF5ZXJIb3ZlcmVkRnJvbUFycm93Iiwib2JqZWN0SW5mbyIsImxheWVySWQiLCJwaWNrZWQiLCJfb2JqZWN0SW5mbyRsYXllciIsImRlY2tMYXllcklkIiwibGF5ZXIiLCJwcm9wcyIsImlkIiwic3RhcnRzV2l0aCIsImdldEhvdmVyZWRPYmplY3RGcm9tQXJyb3ciLCJkYXRhQ29udGFpbmVyIiwiY29sdW1uQWNjZXNzb3IiLCJmaWVsZEFjY2Vzc29yIiwiX2ZpZWxkJG1ldGFkYXRhIiwiY29sIiwicmF3R2VvbWV0cnkiLCJmaWVsZCIsImhvdmVyZWRGZWF0dXJlIiwicGFyc2VHZW9tZXRyeUZyb21BcnJvdyIsInJvd0FzQXJyYXkiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyIiwiX2RhdGFDb250YWluZXIkZ2V0RmllIiwiZmllbGROYW1lIiwiZ2V0RmllbGQiLCJuYW1lIiwiZ2V0Q29sdW1uTW9kZVJlcXVpcmVkQ29sdW1ucyIsInN1cHBvcnRlZENvbHVtbk1vZGVzIiwiY29sdW1uTW9kZSIsIl9zdXBwb3J0ZWRDb2x1bW5Nb2RlcyIsImZpbmQiLCJfcmVmMiIsImtleSIsInJlcXVpcmVkQ29sdW1ucyIsImdldEdlb0Fycm93UG9pbnRGaWVsZHMiLCJmaWVsZHMiLCJfZmllbGQkbWV0YWRhdGEyIiwiUE9JTlQiLCJjcmVhdGVHZW9BcnJvd1BvaW50VmVjdG9yIiwiZ2V0UG9zaXRpb24iLCJudW1FbGVtZW50cyIsIm51bVJvd3MiLCJ0YWJsZSIsImdldFRhYmxlIiwibnVtQ29vcmRzIiwicHJlY2lzaW9uIiwiTWFwIiwiY2hpbGRGaWVsZCIsIkZpZWxkIiwiRmxvYXQiLCJmaXhlZFNpemVMaXN0IiwiRml4ZWRTaXplTGlzdCIsImZsb2F0QnVpbGRlciIsIkZsb2F0QnVpbGRlciIsImZpeGVkU2l6ZUxpc3RCdWlsZGVyIiwiRml4ZWRTaXplTGlzdEJ1aWxkZXIiLCJhZGRDaGlsZCIsImFzc2VtYmxlZEJhdGNoZXMiLCJpbmRleERhdGEiLCJiYXRjaEluZGV4IiwiYmF0Y2hlcyIsIm51bVJvd3NJbkJhdGNoIiwicG9zIiwiYXBwZW5kIiwiZmx1c2giLCJtYWtlVmVjdG9yIiwiZ2V0RmlsdGVyZWRJbmRleCIsInZpc2libGVJbmRpY2VzIiwiZXhpc3RpbmdGaWx0ZXJlZEluZGV4IiwiZmlsdGVyZWRJbmRleCIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiZmlsbCIsImdldE5laWdoYm9ycyIsIm5laWdoYm9yc0ZpZWxkIiwibmVpZ2hib3JJbmRpY2VzIiwidmFsdWVBdCIsInRvQXJyYXkiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwibmVpZ2hib3JzRGF0YSIsIm1hcCIsImlkeCIsInBvc2l0aW9uIiwiZ2V0Qm91bmRzRnJvbUFycm93TWV0YWRhdGEiLCJsYXllckNvbHVtbiIsImdlb01ldGFkYXRhIiwiZ2V0R2VvTWV0YWRhdGEiLCJnZW8iLCJzY2hlbWEiLCJmaWVsZE1ldGFkYXRhIiwiY29sdW1ucyIsImJvdW5kc0Zyb21NZXRhZGF0YSIsImVycm9yIiwiZ2V0U2F0aXNmaWVkQ29sdW1uTW9kZSIsImNvbHVtbk1vZGVzIiwibW9kZSIsIl9tb2RlJHJlcXVpcmVkQ29sdW1ucyIsImV2ZXJ5IiwicmVxdXJpZWRDb2wiLCJjb2x1bW4iLCJ2ZXJpZnlGaWVsZCIsImlzR2VvQXJyb3dQb2ludEZpZWxkIiwiX2ZpZWxkJG1ldGFkYXRhMyIsImdldEdlb0Fycm93UG9pbnRMYXllclByb3BzIiwiZGF0YXNldCIsImxhYmVsIiwiYWx0UHJvcHMiLCJyZXBsYWNlIiwiZ2VvYXJyb3ciXSwic291cmNlcyI6WyIuLi9zcmMvbGF5ZXItdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0ICogYXMgYXJyb3cgZnJvbSAnYXBhY2hlLWFycm93JztcbmltcG9ydCB7RmVhdHVyZSwgQkJveH0gZnJvbSAnZ2VvanNvbic7XG5pbXBvcnQge2dldEdlb01ldGFkYXRhfSBmcm9tICdAbG9hZGVycy5nbC9naXMnO1xuXG5pbXBvcnQge0dFT0FSUk9XX0VYVEVOU0lPTlMsIEdFT0FSUk9XX01FVEFEQVRBX0tFWX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge1xuICBGaWVsZCxcbiAgUHJvdG9EYXRhc2V0RmllbGQsXG4gIEZpZWxkUGFpcixcbiAgU3VwcG9ydGVkQ29sdW1uTW9kZSxcbiAgTGF5ZXJDb2x1bW4sXG4gIExheWVyQ29sdW1ucyxcbiAgUkdCQ29sb3Jcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2UsIEFycm93RGF0YUNvbnRhaW5lcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1xuICBnZXRCaW5hcnlHZW9tZXRyaWVzRnJvbUFycm93LFxuICBwYXJzZUdlb21ldHJ5RnJvbUFycm93LFxuICBCaW5hcnlHZW9tZXRyaWVzRnJvbUFycm93T3B0aW9ucyxcbiAgdXBkYXRlQm91bmRzRnJvbUdlb0Fycm93U2FtcGxlc1xufSBmcm9tICdAbG9hZGVycy5nbC9hcnJvdyc7XG5cbmltcG9ydCB7V0tCTG9hZGVyfSBmcm9tICdAbG9hZGVycy5nbC93a3QnO1xuaW1wb3J0IHtnZW9qc29uVG9CaW5hcnl9IGZyb20gJ0Bsb2FkZXJzLmdsL2dpcyc7XG5pbXBvcnQge1xuICBCaW5hcnlGZWF0dXJlQ29sbGVjdGlvbixcbiAgR2VvbWV0cnksXG4gIEJpbmFyeVBvaW50RmVhdHVyZSxcbiAgQmluYXJ5TGluZUZlYXR1cmUsXG4gIEJpbmFyeVBvbHlnb25GZWF0dXJlXG59IGZyb20gJ0Bsb2FkZXJzLmdsL3NjaGVtYSc7XG5cbmltcG9ydCB7RGVja0dsR2VvVHlwZXMsIEdlb2pzb25EYXRhTWFwc30gZnJvbSAnLi9nZW9qc29uLWxheWVyL2dlb2pzb24tdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBGaW5kRGVmYXVsdExheWVyUHJvcHMgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNvbG9yPzogUkdCQ29sb3I7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNvbHVtbnM/OiBSZWNvcmQ8c3RyaW5nLCBMYXllckNvbHVtbj47XG59O1xuXG5leHBvcnQgdHlwZSBGaW5kRGVmYXVsdExheWVyUHJvcHNSZXR1cm5WYWx1ZSA9IHtcbiAgLyoqIExheWVyIHByb3BzIHRvIGNyZWF0ZSBsYXllcnMgYnkgZGVmYXVsdCB3aGVuIGEgZGF0YXNldCBpcyBhZGRlZCAqL1xuICBwcm9wczogRmluZERlZmF1bHRMYXllclByb3BzW107XG4gIC8qKiBsYXllciBwcm9wcyBvZiBwb3NzaWJsZSBhbHRlcm5hdGl2ZSBsYXllciBjb25maWd1cmF0aW9ucywgbm90IGNyZWF0ZWQgYnkgZGVmYXVsdCAqL1xuICBhbHRQcm9wcz86IEZpbmREZWZhdWx0TGF5ZXJQcm9wc1tdO1xuICAvKiogQWxyZWFkeSBmb3VuZCBsYXllciBjb25maWd1cmF0aW9ucyAqL1xuICBmb3VuZExheWVycz86IChGaW5kRGVmYXVsdExheWVyUHJvcHMgJiB7dHlwZTogc3RyaW5nfSlbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ25Qb2ludFBhaXJUb0xheWVyQ29sdW1uKFxuICBwYWlyOiBGaWVsZFBhaXIsXG4gIGhhc0FsdDogYm9vbGVhblxuKTogUmVjb3JkPHN0cmluZywgTGF5ZXJDb2x1bW4+IHtcbiAgY29uc3Qge2xhdCwgbG5nLCBhbHRpdHVkZX0gPSBwYWlyLnBhaXI7XG4gIGlmICghaGFzQWx0KSB7XG4gICAgcmV0dXJuIHtsYXQsIGxuZ307XG4gIH1cblxuICBjb25zdCBkZWZhdWx0QWx0Q29sdW1uID0ge3ZhbHVlOiBudWxsLCBmaWVsZElkeDogLTEsIG9wdGlvbmFsOiB0cnVlfTtcblxuICByZXR1cm4ge1xuICAgIGxhdCxcbiAgICBsbmcsXG4gICAgYWx0aXR1ZGU6IGFsdGl0dWRlID8gey4uLmRlZmF1bHRBbHRDb2x1bW4sIC4uLmFsdGl0dWRlfSA6IGRlZmF1bHRBbHRDb2x1bW5cbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgR2VvanNvbkxheWVyTWV0YVByb3BzID0ge1xuICBkYXRhVG9GZWF0dXJlOiBHZW9qc29uRGF0YU1hcHM7XG4gIGZlYXR1cmVUeXBlczogRGVja0dsR2VvVHlwZXM7XG4gIGJvdW5kczogQkJveCB8IG51bGw7XG4gIGZpeGVkUmFkaXVzOiBib29sZWFuO1xuICBjZW50cm9pZHM/OiBBcnJheTxudW1iZXJbXSB8IG51bGw+O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGdlb2Fycm93LndrYiB2ZWN0b3IgaW50byBhbiBhcnJheSBvZiBCaW5hcnlGZWF0dXJlQ29sbGVjdGlvbnMuXG4gKiBAcGFyYW0gZ2VvQ29sdW1uIEEgdmVjdG9yIGNvbHVtbiB3aXRoIGdlb2Fycm93LndrYiBleHRlbnNpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBnZW9tZXRyeSB0cmFuc2Zvcm1hdGlvbi5cbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGdldEJpbmFyeUdlb21ldHJpZXNGcm9tV0tCQXJyb3coXG4gIGdlb0NvbHVtbjogYXJyb3cuVmVjdG9yLFxuICBvcHRpb25zOiB7Y2h1bmtJbmRleD86IG51bWJlcjsgY2h1bmtPZmZzZXQ/OiBudW1iZXJ9XG4pOiBHZW9qc29uTGF5ZXJNZXRhUHJvcHMge1xuICBjb25zdCBkYXRhVG9GZWF0dXJlOiBCaW5hcnlGZWF0dXJlQ29sbGVjdGlvbltdID0gW107XG4gIGNvbnN0IGZlYXR1cmVUeXBlczogR2VvanNvbkxheWVyTWV0YVByb3BzWydmZWF0dXJlVHlwZXMnXSA9IHtcbiAgICBwb2ludDogZmFsc2UsXG4gICAgbGluZTogZmFsc2UsXG4gICAgcG9seWdvbjogZmFsc2VcbiAgfTtcblxuICBjb25zdCBjaHVua3MgPVxuICAgIG9wdGlvbnM/LmNodW5rSW5kZXggIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zPy5jaHVua0luZGV4ID49IDBcbiAgICAgID8gW2dlb0NvbHVtbi5kYXRhW29wdGlvbnM/LmNodW5rSW5kZXhdXVxuICAgICAgOiBnZW9Db2x1bW4uZGF0YTtcbiAgY29uc3QgZ2xvYmFsRmVhdHVyZUlkT2Zmc2V0ID0gb3B0aW9ucz8uY2h1bmtPZmZzZXQgfHwgMDtcbiAgbGV0IGZlYXR1cmVJbmRleCA9IGdsb2JhbEZlYXR1cmVJZE9mZnNldDtcbiAgbGV0IGJvdW5kczogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPSBbSW5maW5pdHksIEluZmluaXR5LCAtSW5maW5pdHksIC1JbmZpbml0eV07XG5cbiAgY2h1bmtzLmZvckVhY2goY2h1bmsgPT4ge1xuICAgIGNvbnN0IGdlb2pzb25GZWF0dXJlczogRmVhdHVyZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaHVuay5sZW5ndGg7ICsraSkge1xuICAgICAgLy8gaWdub3JlIGZlYXR1cmVzIHdpdGhvdXQgYW55IGdlb21ldHJ5XG4gICAgICBpZiAoY2h1bmsudmFsdWVPZmZzZXRzW2kgKyAxXSAtIGNodW5rLnZhbHVlT2Zmc2V0c1tpXSA+IDApIHtcbiAgICAgICAgY29uc3QgdmFsdWVzU2xpY2UgPSBjaHVuay52YWx1ZXMuc2xpY2UoY2h1bmsudmFsdWVPZmZzZXRzW2ldLCBjaHVuay52YWx1ZU9mZnNldHNbaSArIDFdKTtcblxuICAgICAgICBjb25zdCBnZW9tZXRyeSA9IFdLQkxvYWRlcj8ucGFyc2VTeW5jPy4odmFsdWVzU2xpY2UuYnVmZmVyLCB7XG4gICAgICAgICAgd2tiOiB7c2hhcGU6ICdnZW9qc29uLWdlb21ldHJ5J31cbiAgICAgICAgfSkgYXMgR2VvbWV0cnk7XG4gICAgICAgIGNvbnN0IGZlYXR1cmU6IEZlYXR1cmUgPSB7XG4gICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgIGdlb21ldHJ5LFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtpbmRleDogZmVhdHVyZUluZGV4fVxuICAgICAgICB9O1xuICAgICAgICBnZW9qc29uRmVhdHVyZXMucHVzaChmZWF0dXJlKTtcblxuICAgICAgICBjb25zdCB7dHlwZX0gPSBnZW9tZXRyeTtcbiAgICAgICAgZmVhdHVyZVR5cGVzLnBvbHlnb24gPSB0eXBlID09PSAnUG9seWdvbicgfHwgdHlwZSA9PT0gJ011bHRpUG9seWdvbic7XG4gICAgICAgIGZlYXR1cmVUeXBlcy5wb2ludCA9IHR5cGUgPT09ICdQb2ludCcgfHwgdHlwZSA9PT0gJ011bHRpUG9pbnQnO1xuICAgICAgICBmZWF0dXJlVHlwZXMubGluZSA9IHR5cGUgPT09ICdMaW5lU3RyaW5nJyB8fCB0eXBlID09PSAnTXVsdGlMaW5lU3RyaW5nJztcbiAgICAgIH1cblxuICAgICAgZmVhdHVyZUluZGV4Kys7XG4gICAgfVxuXG4gICAgY29uc3QgZ2VvanNvblRvQmluYXJ5T3B0aW9ucyA9IHtcbiAgICAgIHRyaWFuZ3VsYXRlOiB0cnVlLFxuICAgICAgZml4UmluZ1dpbmRpbmc6IHRydWVcbiAgICB9O1xuICAgIGNvbnN0IGJpbmFyeUZlYXR1cmVzID0gZ2VvanNvblRvQmluYXJ5KGdlb2pzb25GZWF0dXJlcywgZ2VvanNvblRvQmluYXJ5T3B0aW9ucyk7XG5cbiAgICAvLyBOZWVkIHRvIHVwZGF0ZSBnbG9iYWxGZWF0dXJlSWRzLCB0byB0YWtlIGludG8gYWNjb3VudCBwcmV2aW91cyBiYXRjaGVzLFxuICAgIC8vIGFzIGdlb2pzb25Ub0JpbmFyeSBkb2Vzbid0IGhhdmUgc3VjaCBvcHRpb24uXG4gICAgY29uc3QgZmVhdHVyZVR5cGVzQXJyID0gWydwb2ludHMnLCAnbGluZXMnLCAncG9seWdvbnMnXTtcbiAgICBmZWF0dXJlVHlwZXNBcnIuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gYmluYXJ5RmVhdHVyZXNbcHJvcF0gYXNcbiAgICAgICAgfCBCaW5hcnlQb2ludEZlYXR1cmVcbiAgICAgICAgfCBCaW5hcnlMaW5lRmVhdHVyZVxuICAgICAgICB8IEJpbmFyeVBvbHlnb25GZWF0dXJlO1xuICAgICAgaWYgKGZlYXR1cmVzKSB7XG4gICAgICAgIGJvdW5kcyA9IHVwZGF0ZUJvdW5kc0Zyb21HZW9BcnJvd1NhbXBsZXMoXG4gICAgICAgICAgZmVhdHVyZXMucG9zaXRpb25zLnZhbHVlIGFzIEZsb2F0NjRBcnJheSxcbiAgICAgICAgICBmZWF0dXJlcy5wb3NpdGlvbnMuc2l6ZSxcbiAgICAgICAgICBib3VuZHNcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB7Z2xvYmFsRmVhdHVyZUlkcywgbnVtZXJpY1Byb3BzfSA9IGZlYXR1cmVzO1xuICAgICAgICBjb25zdCB7aW5kZXh9ID0gbnVtZXJpY1Byb3BzO1xuICAgICAgICBjb25zdCBsZW4gPSBnbG9iYWxGZWF0dXJlSWRzLnZhbHVlLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgIGdsb2JhbEZlYXR1cmVJZHMudmFsdWVbaV0gPSBpbmRleC52YWx1ZVtpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZGF0YVRvRmVhdHVyZS5wdXNoKGJpbmFyeUZlYXR1cmVzKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhVG9GZWF0dXJlOiBkYXRhVG9GZWF0dXJlLFxuICAgIGZlYXR1cmVUeXBlczogZmVhdHVyZVR5cGVzLFxuICAgIGJvdW5kcyxcbiAgICBmaXhlZFJhZGl1czogZmFsc2VcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb2pzb25MYXllck1ldGFGcm9tQXJyb3coe1xuICBnZW9Db2x1bW4sXG4gIGdlb0ZpZWxkLFxuICBjaHVua0luZGV4XG59OiB7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2U7XG4gIGdlb0NvbHVtbjogYXJyb3cuVmVjdG9yO1xuICBnZW9GaWVsZDogUHJvdG9EYXRhc2V0RmllbGQ7XG4gIGNodW5rSW5kZXg/OiBudW1iZXI7XG59KTogR2VvanNvbkxheWVyTWV0YVByb3BzIHtcbiAgY29uc3QgZW5jb2RpbmcgPSBnZW9GaWVsZD8ubWV0YWRhdGE/LmdldChHRU9BUlJPV19NRVRBREFUQV9LRVkpO1xuICBjb25zdCBvcHRpb25zOiBCaW5hcnlHZW9tZXRyaWVzRnJvbUFycm93T3B0aW9ucyA9IHtcbiAgICAuLi4oY2h1bmtJbmRleCAhPT0gdW5kZWZpbmVkICYmIGNodW5rSW5kZXggPj0gMFxuICAgICAgPyB7XG4gICAgICAgICAgY2h1bmtJbmRleCxcbiAgICAgICAgICBjaHVua09mZnNldDogZ2VvQ29sdW1uLmRhdGFbMF0ubGVuZ3RoICogY2h1bmtJbmRleFxuICAgICAgICB9XG4gICAgICA6IHt9KSxcbiAgICB0cmlhbmd1bGF0ZTogdHJ1ZSxcbiAgICBjYWxjdWxhdGVNZWFuQ2VudGVyczogdHJ1ZVxuICB9O1xuXG4gIC8vIGdldEJpbmFyeUdlb21ldHJpZXNGcm9tQXJyb3cgZG9lc24ndCBzdXBwb3J0IGdlb2Fycm93LndrYlxuICBpZiAoZW5jb2RpbmcgPT09IEdFT0FSUk9XX0VYVEVOU0lPTlMuV0tCKSB7XG4gICAgcmV0dXJuIGdldEJpbmFyeUdlb21ldHJpZXNGcm9tV0tCQXJyb3coZ2VvQ29sdW1uLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSBiaW5hcnkgZGF0YSBmcm9tIGFycm93IGRhdGEgZm9yIEdlb0pzb25MYXllclxuICBjb25zdCB7YmluYXJ5R2VvbWV0cmllcywgZmVhdHVyZVR5cGVzLCBib3VuZHMsIG1lYW5DZW50ZXJzfSA9IGdldEJpbmFyeUdlb21ldHJpZXNGcm9tQXJyb3coXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdlb0NvbHVtbixcbiAgICBlbmNvZGluZyxcbiAgICBvcHRpb25zXG4gICk7XG5cbiAgLy8gc2luY2UgdGhlcmUgaXMgbm8gZmVhdHVyZS5wcm9wZXJ0aWVzLnJhZGl1cywgd2Ugc2V0IGZpeGVkUmFkaXVzIHRvIGZhbHNlXG4gIGNvbnN0IGZpeGVkUmFkaXVzID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhVG9GZWF0dXJlOiBiaW5hcnlHZW9tZXRyaWVzLFxuICAgIGZlYXR1cmVUeXBlcyxcbiAgICBib3VuZHMsXG4gICAgZml4ZWRSYWRpdXMsXG4gICAgY2VudHJvaWRzOiBtZWFuQ2VudGVyc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMYXllckhvdmVyZWRGcm9tQXJyb3cob2JqZWN0SW5mbywgbGF5ZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIGRlY2suZ2wgbGF5ZXJzIGNyZWF0ZWQgZnJvbSBtdWx0aXBsZSBjaHVua3MgaW4gYXJyb3cgdGFibGVcbiAgLy8gdGhlIG9iamVjdEluZm8ubGF5ZXIgaWQgc2hvdWxkIGJlIGAke3RoaXMuaWR9LSR7aX1gXG4gIGlmIChvYmplY3RJbmZvPy5waWNrZWQpIHtcbiAgICBjb25zdCBkZWNrTGF5ZXJJZCA9IG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQ7XG4gICAgcmV0dXJuIGRlY2tMYXllcklkLnN0YXJ0c1dpdGgobGF5ZXJJZCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG92ZXJlZE9iamVjdEZyb21BcnJvdyhcbiAgb2JqZWN0SW5mbyxcbiAgZGF0YUNvbnRhaW5lcixcbiAgbGF5ZXJJZCxcbiAgY29sdW1uQWNjZXNzb3IsXG4gIGZpZWxkQWNjZXNzb3Jcbik6IEZlYXR1cmUgfCBudWxsIHtcbiAgLy8gaG92ZXIgb2JqZWN0IHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBvYmplY3QgaW4gdGhlIGRhdGEgYXJyYXlcbiAgLy8gTk9URTogdGhpcyBjb3VsZCBiZSBkb25lIGluIERlY2suZ2wgZ2V0UGlja2luZ0luZm8ocGFyYW1zKSBhbmQgYmluYXJ5VG9HZW9qc29uKClcbiAgaWYgKGlzTGF5ZXJIb3ZlcmVkRnJvbUFycm93KG9iamVjdEluZm8sIGxheWVySWQpICYmIG9iamVjdEluZm8uaW5kZXggPj0gMCAmJiBkYXRhQ29udGFpbmVyKSB7XG4gICAgY29uc3QgY29sID0gY29sdW1uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3QgcmF3R2VvbWV0cnkgPSBjb2w/LmdldChvYmplY3RJbmZvLmluZGV4KTtcblxuICAgIGNvbnN0IGZpZWxkID0gZmllbGRBY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcbiAgICBjb25zdCBlbmNvZGluZyA9IGZpZWxkPy5tZXRhZGF0YT8uZ2V0KEdFT0FSUk9XX01FVEFEQVRBX0tFWSk7XG5cbiAgICBjb25zdCBob3ZlcmVkRmVhdHVyZSA9IHBhcnNlR2VvbWV0cnlGcm9tQXJyb3cocmF3R2VvbWV0cnksIGVuY29kaW5nKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBkYXRhQ29udGFpbmVyLnJvd0FzQXJyYXkob2JqZWN0SW5mby5pbmRleCkucmVkdWNlKChwcmV2LCBjdXIsIGkpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGRhdGFDb250YWluZXI/LmdldEZpZWxkPy4oaSkubmFtZTtcbiAgICAgIGlmIChmaWVsZE5hbWUgIT09IGZpZWxkLm5hbWUpIHtcbiAgICAgICAgcHJldltmaWVsZE5hbWVdID0gY3VyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGhvdmVyZWRGZWF0dXJlXG4gICAgICA/IHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgZ2VvbWV0cnk6IGhvdmVyZWRGZWF0dXJlLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIC4uLnByb3BlcnRpZXMsXG4gICAgICAgICAgICBpbmRleDogb2JqZWN0SW5mby5pbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIGZpbmQgcmVxdWlyZWRDb2x1bW5zIG9mIHN1cHBvcnRlZCBjb2x1bW4gbW9kZSBiYXNlZCBvbiBjb2x1bW4gbW9kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uTW9kZVJlcXVpcmVkQ29sdW1ucyhcbiAgc3VwcG9ydGVkQ29sdW1uTW9kZXM6IFN1cHBvcnRlZENvbHVtbk1vZGVbXSB8IG51bGwsXG4gIGNvbHVtbk1vZGU/OiBzdHJpbmdcbik6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHN1cHBvcnRlZENvbHVtbk1vZGVzPy5maW5kKCh7a2V5fSkgPT4ga2V5ID09PSBjb2x1bW5Nb2RlKT8ucmVxdWlyZWRDb2x1bW5zO1xufVxuXG4vKipcbiAqIFJldHVybnMgZ2VvYXJyb3cgZmllbGRzIHdpdGggQVJST1c6ZXh0ZW5zaW9uOm5hbWUgUE9JTlQgbWV0YWRhdGFcbiAqIEBwYXJhbSBmaWVsZHMgQW55IGZpZWxkc1xuICogQHJldHVybnMgZ2VvYXJyb3cgZmllbGRzIHdpdGggQVJST1c6ZXh0ZW5zaW9uOm5hbWUgUE9JTlQgbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb0Fycm93UG9pbnRGaWVsZHMoZmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSB7XG4gIHJldHVybiBmaWVsZHMuZmlsdGVyKGZpZWxkID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgZmllbGQudHlwZSA9PT0gJ2dlb2Fycm93JyAmJlxuICAgICAgZmllbGQubWV0YWRhdGE/LmdldChHRU9BUlJPV19NRVRBREFUQV9LRVkpID09PSBHRU9BUlJPV19FWFRFTlNJT05TLlBPSU5UXG4gICAgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGFuIGFycm93IHZlY3RvciBjb21wYXRpYmxlIHdpdGggQVJST1c6ZXh0ZW5zaW9uOm5hbWUgZ2VvYXJyb3cucG9pbnQuXG4gKiBAcGFyYW0gZ2V0UG9zaXRpb24gUG9zaXRpb24gYWNjZXNzb3IuXG4gKiBAcGFyYW0gbnVtRWxlbWVudHMgTnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IuXG4gKiBAcmV0dXJucyBBbiBhcnJvdyB2ZWN0b3IgY29tcGF0aWJsZSB3aXRoIEFSUk9XOmV4dGVuc2lvbjpuYW1lIGdlb2Fycm93LnBvaW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2VvQXJyb3dQb2ludFZlY3RvcihcbiAgZGF0YUNvbnRhaW5lcjogQXJyb3dEYXRhQ29udGFpbmVyLFxuICBnZXRQb3NpdGlvbjogKHtpbmRleH06IHtpbmRleDogbnVtYmVyfSkgPT4gbnVtYmVyW11cbik6IGFycm93LlZlY3RvciB7XG4gIC8vIFRPRE8gdXBkYXRlL3Jlc2l6ZSBleGlzdGluZyB2ZWN0b3I/XG4gIC8vIFRPRE8gZmluZCBhbiBlYXNpZXIgd2F5IHRvIGNyZWF0ZSBwb2ludCBnZW8gY29sdW1uc1xuICAvLyBpbiBhIGNvcnJlY3QgYXJyb3cgZm9ybWF0LCBhcyB0aGlzIGFwcHJvYWNoIHNlZW1zIHRvbyBleGNlc3NpdmUgZm9yIGp1c3QgYSBzaW1wbGUgaW50ZXJsZWF2ZWQgYnVmZmVyLlxuXG4gIGNvbnN0IG51bUVsZW1lbnRzID0gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCk7XG4gIGNvbnN0IHRhYmxlID0gZGF0YUNvbnRhaW5lci5nZXRUYWJsZSgpO1xuXG4gIGNvbnN0IG51bUNvb3JkcyA9IG51bUVsZW1lbnRzID4gMCA/IGdldFBvc2l0aW9uKHtpbmRleDogMH0pLmxlbmd0aCA6IDI7XG4gIGNvbnN0IHByZWNpc2lvbiA9IDI7XG5cbiAgY29uc3QgbWV0YWRhdGEgPSBuZXcgTWFwKCk7XG4gIG1ldGFkYXRhLnNldChHRU9BUlJPV19NRVRBREFUQV9LRVksIEdFT0FSUk9XX0VYVEVOU0lPTlMuUE9JTlQpO1xuXG4gIGNvbnN0IGNoaWxkRmllbGQgPSBuZXcgYXJyb3cuRmllbGQoJ3h5eicsIG5ldyBhcnJvdy5GbG9hdChwcmVjaXNpb24pLCBmYWxzZSwgbWV0YWRhdGEpO1xuICBjb25zdCBmaXhlZFNpemVMaXN0ID0gbmV3IGFycm93LkZpeGVkU2l6ZUxpc3QobnVtQ29vcmRzLCBjaGlsZEZpZWxkKTtcbiAgY29uc3QgZmxvYXRCdWlsZGVyID0gbmV3IGFycm93LkZsb2F0QnVpbGRlcih7dHlwZTogbmV3IGFycm93LkZsb2F0KHByZWNpc2lvbil9KTtcbiAgY29uc3QgZml4ZWRTaXplTGlzdEJ1aWxkZXIgPSBuZXcgYXJyb3cuRml4ZWRTaXplTGlzdEJ1aWxkZXIoe3R5cGU6IGZpeGVkU2l6ZUxpc3R9KTtcbiAgZml4ZWRTaXplTGlzdEJ1aWxkZXIuYWRkQ2hpbGQoZmxvYXRCdWlsZGVyKTtcblxuICBjb25zdCBhc3NlbWJsZWRCYXRjaGVzOiBhcnJvdy5EYXRhW10gPSBbXTtcbiAgY29uc3QgaW5kZXhEYXRhID0ge2luZGV4OiAwfTtcbiAgZm9yIChsZXQgYmF0Y2hJbmRleCA9IDA7IGJhdGNoSW5kZXggPCB0YWJsZS5iYXRjaGVzLmxlbmd0aDsgKytiYXRjaEluZGV4KSB7XG4gICAgY29uc3QgbnVtUm93c0luQmF0Y2ggPSB0YWJsZS5iYXRjaGVzW2JhdGNoSW5kZXhdLm51bVJvd3M7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVJvd3NJbkJhdGNoOyArK2kpIHtcbiAgICAgIGNvbnN0IHBvcyA9IGdldFBvc2l0aW9uKGluZGV4RGF0YSk7XG4gICAgICBmaXhlZFNpemVMaXN0QnVpbGRlci5hcHBlbmQocG9zKTtcblxuICAgICAgKytpbmRleERhdGEuaW5kZXg7XG4gICAgfVxuICAgIGFzc2VtYmxlZEJhdGNoZXMucHVzaChmaXhlZFNpemVMaXN0QnVpbGRlci5mbHVzaCgpKTtcbiAgfVxuXG4gIHJldHVybiBhcnJvdy5tYWtlVmVjdG9yKGFzc2VtYmxlZEJhdGNoZXMpO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZpbHRlcmVkIGluZGV4IHN1aXRhYmxlIGZvciBGaWx0ZXJBcnJvd0V4dGVuc2lvbi5cbiAqIEBwYXJhbSBudW1FbGVtZW50cyBTaXplIGZvciBmaWx0ZXJlZCBpbmRleCBhcnJheS5cbiAqIEBwYXJhbSB2aXNpYmxlSW5kaWNlcyBBbiBhcnJheSB3aXRoIGluZGljZXMgb2YgZWxlbWVudHMgdGhhdCBhcmVuJ3QgZmlsdGVyZWQgb3V0LlxuICogQHJldHVybnMgZmlsdGVyZWRJbmRleCBbMHwxXSBhcnJheSBmb3IgR1BVIGZpbHRlcmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsdGVyZWRJbmRleChcbiAgbnVtRWxlbWVudHM6IG51bWJlcixcbiAgdmlzaWJsZUluZGljZXM6IG51bWJlcltdLFxuICBleGlzdGluZ0ZpbHRlcmVkSW5kZXg6IFVpbnQ4Q2xhbXBlZEFycmF5IHwgbnVsbFxuKSB7XG4gIC8vIGNvbnRlbnRzIGFyZSBpbml0aWFsaXplZCB3aXRoIHplcm9zIGJ5IGRlZmF1bHQsIG1lYW5pbmcgbm90IHZpc2libGVcbiAgY29uc3QgZmlsdGVyZWRJbmRleCA9XG4gICAgZXhpc3RpbmdGaWx0ZXJlZEluZGV4ICYmIGV4aXN0aW5nRmlsdGVyZWRJbmRleC5sZW5ndGggPT09IG51bUVsZW1lbnRzXG4gICAgICA/IGV4aXN0aW5nRmlsdGVyZWRJbmRleFxuICAgICAgOiBuZXcgVWludDhDbGFtcGVkQXJyYXkobnVtRWxlbWVudHMpO1xuICBmaWx0ZXJlZEluZGV4LmZpbGwoMCk7XG5cbiAgaWYgKHZpc2libGVJbmRpY2VzKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aXNpYmxlSW5kaWNlcy5sZW5ndGg7ICsraSkge1xuICAgICAgZmlsdGVyZWRJbmRleFt2aXNpYmxlSW5kaWNlc1tpXV0gPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmlsdGVyZWRJbmRleDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIG5laWdoYm9ycyB0byB0aGUgc3BlY2lmaWVkIGluZGV4LlxuICogQHBhcmFtIG5laWdoYm9yc0ZpZWxkIExheWVyQ29sdW1uIGZpZWxkIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbmVpZ2hib3JzLlxuICogQHBhcmFtIGRhdGFDb250YWluZXIgRGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgaW50ZXJlc3QuXG4gKiBAcGFyYW0gZ2V0UG9zaXRpb24gUG9zaXRpb24gYWNjZXNzb3IuXG4gKiBAcmV0dXJucyBBbiBhcnJheSB3aXRoIGluZm9ybWF0aW9uIGFib3V0IG5laWdoYm9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5laWdoYm9ycyhcbiAgbmVpZ2hib3JzRmllbGQ6IExheWVyQ29sdW1uIHwgdW5kZWZpbmVkLFxuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlLFxuICBpbmRleDogbnVtYmVyLFxuICBnZXRQb3NpdGlvbjogKHtpbmRleH06IHtpbmRleDogbnVtYmVyfSkgPT4gbnVtYmVyW11cbik6IHtpbmRleDogbnVtYmVyOyBwb3NpdGlvbjogbnVtYmVyW119W10ge1xuICBpZiAoIW5laWdoYm9yc0ZpZWxkIHx8IG5laWdoYm9yc0ZpZWxkLmZpZWxkSWR4IDwgMCkgcmV0dXJuIFtdO1xuXG4gIGxldCBuZWlnaGJvckluZGljZXMgPSBkYXRhQ29udGFpbmVyLnZhbHVlQXQoaW5kZXgsIG5laWdoYm9yc0ZpZWxkLmZpZWxkSWR4KTtcbiAgLy8gSW4gY2FzZSBvZiBhcnJvdyBjb2x1bW4gd2l0aCBhbiBhcnJheSBvZiBpbmRpY2VzLlxuICBpZiAobmVpZ2hib3JJbmRpY2VzLnRvQXJyYXkpIHtcbiAgICBuZWlnaGJvckluZGljZXMgPSBBcnJheS5mcm9tKG5laWdoYm9ySW5kaWNlcy50b0FycmF5KCkpO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheShuZWlnaGJvckluZGljZXMpKSByZXR1cm4gW107XG5cbiAgLy8gZmluZCBuZWlnaGJvclxuICBjb25zdCBuZWlnaGJvcnNEYXRhID0gbmVpZ2hib3JJbmRpY2VzLm1hcChpZHggPT4gKHtcbiAgICBpbmRleDogaWR4LFxuICAgIHBvc2l0aW9uOiBnZXRQb3NpdGlvbih7aW5kZXg6IGlkeH0pXG4gIH0pKTtcblxuICByZXR1cm4gbmVpZ2hib3JzRGF0YTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGJvdW5kcyBmcm9tIGEgZ2VvYXJyb3cgZmllbGQuXG4gKiBUT0RPOiByZWZhY3RvciBvbmNlIG1ldGFkYXRhIGV4dHJhY3Rpb24gZnJvbSBwYXJxdWV0IHRvIGFycm93IHZlY3RvcnMgaXMgaW4gcGxhY2UuXG4gKiBAcGFyYW0gbGF5ZXJDb2x1bW4gTGF5ZXIgY29sdW1ucyBmb3Igd2hpY2ggdG8gY2hlY2sgZm9yIGEgYm91bmRpbmcgYm94LlxuICogQHBhcmFtIGRhdGFDb250YWluZXIgRGF0YSBjb250YWluZXIgd2l0aCBnZW9hcnJvdyBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIFJldHVybnMgYm91bmRpbmcgYm94IGlmIGV4aXN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdW5kc0Zyb21BcnJvd01ldGFkYXRhKFxuICBsYXllckNvbHVtbjogTGF5ZXJDb2x1bW4sXG4gIGRhdGFDb250YWluZXI6IEFycm93RGF0YUNvbnRhaW5lclxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBmYWxzZSB7XG4gIHRyeSB7XG4gICAgY29uc3QgZmllbGQgPSBkYXRhQ29udGFpbmVyLmdldEZpZWxkKGxheWVyQ29sdW1uLmZpZWxkSWR4KTtcbiAgICBjb25zdCB0YWJsZSA9IGRhdGFDb250YWluZXIuZ2V0VGFibGUoKTtcblxuICAgIGNvbnN0IGdlb01ldGFkYXRhID0gZ2V0R2VvTWV0YWRhdGEoe1xuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICBnZW86IHRhYmxlLnNjaGVtYS5tZXRhZGF0YS5nZXQoJ2dlbycpXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZ2VvTWV0YWRhdGEpIHtcbiAgICAgIGNvbnN0IGZpZWxkTWV0YWRhdGEgPSBnZW9NZXRhZGF0YS5jb2x1bW5zW2ZpZWxkLm5hbWVdO1xuICAgICAgaWYgKGZpZWxkTWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgYm91bmRzRnJvbU1ldGFkYXRhID0gZmllbGRNZXRhZGF0YVsnYmJveCddO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShib3VuZHNGcm9tTWV0YWRhdGEpICYmIGJvdW5kc0Zyb21NZXRhZGF0YS5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICByZXR1cm4gYm91bmRzRnJvbU1ldGFkYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGlnbm9yZSBmb3Igbm93XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogRmluZHMgYW5kIHJldHVybnMgdGhlIGZpcnN0IHNhdGlzZmllZCBjb2x1bW4gbW9kZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY29sdW1ucyBhbmQgZmllbGRzLlxuICogQHBhcmFtIHN1cHBvcnRlZENvbHVtbk1vZGVzIC0gQW4gYXJyYXkgb2Ygc3VwcG9ydGVkIGNvbHVtbiBtb2RlcyB0byBjaGVjay5cbiAqIEBwYXJhbSBjb2x1bW5zIC0gVGhlIGF2YWlsYWJsZSBjb2x1bW5zLlxuICogQHBhcmFtIGZpZWxkcyAtIE9wdGlvbmFsIHRhYmxlIGZpZWxkcyB0byBiZSB1c2VkIGZvciBleHRyYSB2ZXJpZmljYXRpb24uXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgY29sdW1uIG1vZGUgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVkIGNvbmRpdGlvbnMsIG9yIHVuZGVmaW5lZCBpZiBub25lIG1hdGNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2F0aXNmaWVkQ29sdW1uTW9kZShcbiAgY29sdW1uTW9kZXM6IFN1cHBvcnRlZENvbHVtbk1vZGVbXSB8IG51bGwsXG4gIGNvbHVtbnM6IExheWVyQ29sdW1ucyB8IHVuZGVmaW5lZCxcbiAgZmllbGRzPzogS2VwbGVyVGFibGVbJ2ZpZWxkcyddXG4pOiBTdXBwb3J0ZWRDb2x1bW5Nb2RlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNvbHVtbk1vZGVzPy5maW5kKG1vZGUgPT4ge1xuICAgIHJldHVybiBtb2RlLnJlcXVpcmVkQ29sdW1ucz8uZXZlcnkocmVxdXJpZWRDb2wgPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucz8uW3JlcXVyaWVkQ29sXTtcbiAgICAgIGlmIChjb2x1bW4/LnZhbHVlKSB7XG4gICAgICAgIGlmIChtb2RlLnZlcmlmeUZpZWxkICYmIGZpZWxkcz8uW2NvbHVtbi5maWVsZElkeF0pIHtcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkc1tjb2x1bW4uZmllbGRJZHhdO1xuICAgICAgICAgIHJldHVybiBtb2RlLnZlcmlmeUZpZWxkKGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBmaWVsZCBpcyBvZiBnZW9hcnJvdyBwb2ludCBmb3JtYXQuXG4gKiBAcGFyYW0gZmllbGQgQSBmaWVsZC5cbiAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSBpZiB0aGUgZmllbGQgaXMgb2YgZ2VvYXJyb3cgcG9pbnQgZm9ybWF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNHZW9BcnJvd1BvaW50RmllbGQoZmllbGQ6IEZpZWxkKSB7XG4gIHJldHVybiAoXG4gICAgZmllbGQudHlwZSA9PT0gJ2dlb2Fycm93JyAmJlxuICAgIGZpZWxkLm1ldGFkYXRhPy5nZXQoR0VPQVJST1dfTUVUQURBVEFfS0VZKSA9PT0gR0VPQVJST1dfRVhURU5TSU9OUy5QT0lOVFxuICApO1xufVxuXG4vKipcbiAqIENyZWF0ZSBkZWZhdWx0IGdlb2Fycm93IGNvbHVtbiBwcm9wcyBiYXNlZCBvbiB0aGUgZGF0YXNldC5cbiAqIEBwYXJhbSBkYXRhc2V0IEEgZGF0YXNldCB0byBjcmVhdGUgbGF5ZXIgcHJvcHMgZnJvbS5cbiAqIEByZXR1cm5zICBnZW9hcnJvdyBjb2x1bW4gcHJvcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9BcnJvd1BvaW50TGF5ZXJQcm9wcyhkYXRhc2V0OiBLZXBsZXJUYWJsZSkge1xuICBjb25zdCB7bGFiZWx9ID0gZGF0YXNldDtcbiAgY29uc3QgYWx0UHJvcHM6IEZpbmREZWZhdWx0TGF5ZXJQcm9wc1tdID0gW107XG4gIGRhdGFzZXQuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgIGlmIChpc0dlb0Fycm93UG9pbnRGaWVsZChmaWVsZCkpIHtcbiAgICAgIGFsdFByb3BzLnB1c2goe1xuICAgICAgICBsYWJlbDogKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgJiYgbGFiZWwucmVwbGFjZSgvXFwuW14vLl0rJC8sICcnKSkgfHwgZmllbGQubmFtZSxcbiAgICAgICAgY29sdW1uczoge2dlb2Fycm93OiB7dmFsdWU6IGZpZWxkLm5hbWUsIGZpZWxkSWR4OiBmaWVsZC5maWVsZElkeH19XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYWx0UHJvcHM7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLElBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQVlBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQU9BLElBQUFJLElBQUEsR0FBQUosT0FBQTtBQUEwQyxTQUFBSyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVAsd0JBQUFPLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMs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
|
|
@@ -147,7 +147,7 @@ export default class LineLayer extends ArcLayer {
|
|
|
147
147
|
aggregation?: import("@kepler.gl/types").VisualChannelAggregation | undefined;
|
|
148
148
|
};
|
|
149
149
|
};
|
|
150
|
-
static findDefaultLayerProps({
|
|
150
|
+
static findDefaultLayerProps({ fieldPairs }: KeplerTable): {
|
|
151
151
|
props: {
|
|
152
152
|
color?: RGBColor;
|
|
153
153
|
columns: LineLayerColumnsConfig;
|