kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
253 lines (224 loc) • 24.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.toggleSidePanel = exports.toggleModal = exports.toggleMapControl = exports.toggleLegend = exports.startExportingImage = exports.showExportDropdown = exports.setUserMapboxAccessToken = exports.setResolution = exports.setRatio = exports.setExportSelectedDataset = exports.setExportMapFormat = exports.setExportImageError = exports.setExportImageDataUri = exports.setExportHTMLMapMode = exports.setExportFiltered = exports.setExportDataType = exports.setExportData = exports.removeNotification = exports.openDeleteModal = exports.hideExportDropdown = exports.cleanupExportImage = exports.addNotification = void 0;
var _reduxActions = require("redux-actions");
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
// Copyright (c) 2023 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
/**
* Toggle active side panel
* @memberof uiStateActions
* @param {string} id id of side panel to be shown, one of `layer`, `filter`, `interaction`, `map`
* @public
*/
var toggleSidePanel = exports.toggleSidePanel = (0, _reduxActions.createAction)(_actionTypes["default"].TOGGLE_SIDE_PANEL, function (id) {
return id;
});
/**
* Show and hide modal dialog
* @memberof uiStateActions
* @param {string|null} id - id of modal to be shown, null to hide modals. One of:
*
* - [`DATA_TABLE_ID`](../constants/default-settings.md#data_table_id)
* - [`DELETE_DATA_ID`](../constants/default-settings.md#delete_data_id)
* - [`ADD_DATA_ID`](../constants/default-settings.md#add_data_id)
* - [`EXPORT_IMAGE_ID`](../constants/default-settings.md#export_image_id)
* - [`EXPORT_DATA_ID`](../constants/default-settings.md#export_data_id)
* - [`ADD_MAP_STYLE_ID`](../constants/default-settings.md#add_map_style_id)
* @public
*/
var toggleModal = exports.toggleModal = (0, _reduxActions.createAction)(_actionTypes["default"].TOGGLE_MODAL, function (id) {
return id;
});
/**
* Hide and show side panel header dropdown, activated by clicking the share link on top of the side panel
* @memberof uiStateActions
* @param {string} id - id of the dropdown
* @public
*/
var showExportDropdown = exports.showExportDropdown = (0, _reduxActions.createAction)(_actionTypes["default"].SHOW_EXPORT_DROPDOWN, function (id) {
return id;
});
/**
* Hide side panel header dropdown, activated by clicking the share link on top of the side panel
* @memberof uiStateActions
* @public
*/
var hideExportDropdown = exports.hideExportDropdown = (0, _reduxActions.createAction)(_actionTypes["default"].HIDE_EXPORT_DROPDOWN);
/**
* Toggle active map control panel
* @memberof uiStateActions
* @param {string} panelId - map control panel id, one of the keys of: [`DEFAULT_MAP_CONTROLS`](#default_map_controls)
* @public
*/
var toggleMapControl = exports.toggleMapControl = (0, _reduxActions.createAction)(_actionTypes["default"].TOGGLE_MAP_CONTROL, function (panelId) {
return panelId;
});
/**
* Toggle active map control panel
* @memberof uiStateActions
* @param {string} datasetId - `id` of the dataset to be deleted
* @public
*/
var openDeleteModal = exports.openDeleteModal = (0, _reduxActions.createAction)(_actionTypes["default"].OPEN_DELETE_MODAL, function (datasetId) {
return datasetId;
});
/**
* Add a notification to be displayed
* @memberof uiStateActions
* @param {Object} notification - The `notification` object to be added
* @public
*/
var addNotification = exports.addNotification = (0, _reduxActions.createAction)(_actionTypes["default"].ADD_NOTIFICATION, function (notification) {
return notification;
});
/**
* Remove a notification
* @memberof uiStateActions
* @param {string} id - `id` of the notification to be removed
* @public
*/
var removeNotification = exports.removeNotification = (0, _reduxActions.createAction)(_actionTypes["default"].REMOVE_NOTIFICATION, function (id) {
return id;
});
/**
* Set `exportImage.ratio`
* @memberof uiStateActions
* @param {string} ratio - one of `'SCREEN'`, `'FOUR_BY_THREE'` and `'SIXTEEN_BY_NINE'`
* @public
*/
var setRatio = exports.setRatio = (0, _reduxActions.createAction)(_actionTypes["default"].SET_RATIO, function (ratio) {
return ratio;
});
/**
* Set `exportImage.resolution`
* @memberof uiStateActions
* @param {string} resolution - one of `'ONE_X'`, `'TWO_X'`
* @public
*/
var setResolution = exports.setResolution = (0, _reduxActions.createAction)(_actionTypes["default"].SET_RESOLUTION, function (resolution) {
return resolution;
});
/**
* Set `exportImage.legend` to true or false
* @memberof uiStateActions
* @public
*/
var toggleLegend = exports.toggleLegend = (0, _reduxActions.createAction)(_actionTypes["default"].TOGGLE_LEGEND);
/**
* Set `exportImage.exporting` to true
* @memberof uiStateActions
* @public
*/
var startExportingImage = exports.startExportingImage = (0, _reduxActions.createAction)(_actionTypes["default"].START_EXPORTING_IMAGE);
/**
* Set `exportImage.setExportImageDataUri` to a dataUri
* @memberof uiStateActions
* @param {string} dataUri - export image data uri
* @public
*/
var setExportImageDataUri = exports.setExportImageDataUri = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_IMAGE_DATA_URI, function (dataUri) {
return dataUri;
});
var setExportImageError = exports.setExportImageError = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_IMAGE_ERROR, function (error) {
return error;
});
/**
* Delete cached export image
* @memberof uiStateActions
* @public
*/
var cleanupExportImage = exports.cleanupExportImage = (0, _reduxActions.createAction)(_actionTypes["default"].CLEANUP_EXPORT_IMAGE);
/**
* Set selected dataset for export
* @memberof uiStateActions
* @param {string} datasetId - dataset id
* @public
*/
var setExportSelectedDataset = exports.setExportSelectedDataset = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_SELECTED_DATASET, function (datasetId) {
return datasetId;
});
/**
* Set data format for exporting data
* @memberof uiStateActions
* @param {string} dataType - one of `'text/csv'`
* @public
*/
var setExportDataType = exports.setExportDataType = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_DATA_TYPE, function (dataType) {
return dataType;
});
/**
* Whether to export filtered data, `true` or `false`
* @memberof uiStateActions
* @param {boolean} payload - set `true` to ony export filtered data
* @public
*/
var setExportFiltered = exports.setExportFiltered = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_FILTERED, function (payload) {
return payload;
});
/**
* Whether to including data in map config, toggle between `true` or `false`
* @memberof uiStateActions
* @public
*/
var setExportData = exports.setExportData = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_DATA);
/**
* Whether we export a mapbox access token used to create a single map html file
* @memberof uiStateActions
* @param {string} payload - mapbox access token
* @public
*/
var setUserMapboxAccessToken = exports.setUserMapboxAccessToken = (0, _reduxActions.createAction)(_actionTypes["default"].SET_USER_MAPBOX_ACCESS_TOKEN, function (payload) {
return payload;
});
/**
* Set the export map format (html, json)
* @memberOf uiStateActions
* @param {string} payload - map format
* @public
*/
var setExportMapFormat = exports.setExportMapFormat = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_MAP_FORMAT, function (payload) {
return payload;
});
/**
* Set the HTML mode to use to export HTML mode
* @type {actionCreator}
*/
var setExportHTMLMapMode = exports.setExportHTMLMapMode = (0, _reduxActions.createAction)(_actionTypes["default"].SET_EXPORT_MAP_HTML_MODE, function (payload) {
return payload;
});
/**
* This declaration is needed to group actions in docs
*/
/**
* Actions handled mostly by `uiState` reducer.
* They manage UI changes in tha app, such as open and close side panel,
* switch between tabs in the side panel, open and close modal dialog for exporting data / images etc.
* It also manges which settings are selected during image and map export
*
* @public
*/
/* eslint-disable no-unused-vars */
var uiStateActions = null;
/* eslint-enable no-unused-vars */
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL3VpLXN0YXRlLWFjdGlvbnMuanMiXSwibmFtZXMiOlsidG9nZ2xlU2lkZVBhbmVsIiwiQWN0aW9uVHlwZXMiLCJUT0dHTEVfU0lERV9QQU5FTCIsImlkIiwidG9nZ2xlTW9kYWwiLCJUT0dHTEVfTU9EQUwiLCJzaG93RXhwb3J0RHJvcGRvd24iLCJTSE9XX0VYUE9SVF9EUk9QRE9XTiIsImhpZGVFeHBvcnREcm9wZG93biIsIkhJREVfRVhQT1JUX0RST1BET1dOIiwidG9nZ2xlTWFwQ29udHJvbCIsIlRPR0dMRV9NQVBfQ09OVFJPTCIsInBhbmVsSWQiLCJvcGVuRGVsZXRlTW9kYWwiLCJPUEVOX0RFTEVURV9NT0RBTCIsImRhdGFzZXRJZCIsImFkZE5vdGlmaWNhdGlvbiIsIkFERF9OT1RJRklDQVRJT04iLCJub3RpZmljYXRpb24iLCJyZW1vdmVOb3RpZmljYXRpb24iLCJSRU1PVkVfTk9USUZJQ0FUSU9OIiwic2V0UmF0aW8iLCJTRVRfUkFUSU8iLCJyYXRpbyIsInNldFJlc29sdXRpb24iLCJTRVRfUkVTT0xVVElPTiIsInJlc29sdXRpb24iLCJ0b2dnbGVMZWdlbmQiLCJUT0dHTEVfTEVHRU5EIiwic3RhcnRFeHBvcnRpbmdJbWFnZSIsIlNUQVJUX0VYUE9SVElOR19JTUFHRSIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsIlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkkiLCJkYXRhVXJpIiwic2V0RXhwb3J0SW1hZ2VFcnJvciIsIlNFVF9FWFBPUlRfSU1BR0VfRVJST1IiLCJlcnJvciIsImNsZWFudXBFeHBvcnRJbWFnZSIsIkNMRUFOVVBfRVhQT1JUX0lNQUdFIiwic2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0IiwiU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUIiwic2V0RXhwb3J0RGF0YVR5cGUiLCJTRVRfRVhQT1JUX0RBVEFfVFlQRSIsImRhdGFUeXBlIiwic2V0RXhwb3J0RmlsdGVyZWQiLCJTRVRfRVhQT1JUX0ZJTFRFUkVEIiwicGF5bG9hZCIsInNldEV4cG9ydERhdGEiLCJTRVRfRVhQT1JUX0RBVEEiLCJzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJTRVRfVVNFUl9NQVBCT1hfQUNDRVNTX1RPS0VOIiwic2V0RXhwb3J0TWFwRm9ybWF0IiwiU0VUX0VYUE9SVF9NQVBfRk9STUFUIiwic2V0RXhwb3J0SFRNTE1hcE1vZGUiLCJTRVRfRVhQT1JUX01BUF9IVE1MX01PREUiLCJ1aVN0YXRlQWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFLQTs7Ozs7O0FBTU8sSUFBTUEsZUFBZSw2QkFBRyxnQ0FDN0JDLHdCQUFZQyxpQkFEaUIsRUFFN0IsVUFBQUMsRUFBRTtBQUFBLFNBQUlBLEVBQUo7QUFBQSxDQUYyQixDQUF4QjtBQUtQOzs7Ozs7Ozs7Ozs7OztBQWFPLElBQU1DLFdBQVcseUJBQUcsZ0NBQWFILHdCQUFZSSxZQUF6QixFQUF1QyxVQUFBRixFQUFFO0FBQUEsU0FBSUEsRUFBSjtBQUFBLENBQXpDLENBQXBCO0FBRVA7Ozs7Ozs7QUFNTyxJQUFNRyxrQkFBa0IsZ0NBQUcsZ0NBQ2hDTCx3QkFBWU0sb0JBRG9CLEVBRWhDLFVBQUFKLEVBQUU7QUFBQSxTQUFJQSxFQUFKO0FBQUEsQ0FGOEIsQ0FBM0I7QUFLUDs7Ozs7O0FBS08sSUFBTUssa0JBQWtCLGdDQUFHLGdDQUNoQ1Asd0JBQVlRLG9CQURvQixDQUEzQjtBQUlQOzs7Ozs7O0FBTU8sSUFBTUMsZ0JBQWdCLDhCQUFHLGdDQUM5QlQsd0JBQVlVLGtCQURrQixFQUU5QixVQUFBQyxPQUFPO0FBQUEsU0FBSUEsT0FBSjtBQUFBLENBRnVCLENBQXpCO0FBS1A7Ozs7Ozs7QUFNTyxJQUFNQyxlQUFlLDZCQUFHLGdDQUM3Qlosd0JBQVlhLGlCQURpQixFQUU3QixVQUFBQyxTQUFTO0FBQUEsU0FBSUEsU0FBSjtBQUFBLENBRm9CLENBQXhCO0FBS1A7Ozs7Ozs7QUFNTyxJQUFNQyxlQUFlLDZCQUFHLGdDQUM3QmYsd0JBQVlnQixnQkFEaUIsRUFFN0IsVUFBQUMsWUFBWTtBQUFBLFNBQUlBLFlBQUo7QUFBQSxDQUZpQixDQUF4QjtBQUtQOzs7Ozs7O0FBTU8sSUFBTUMsa0JBQWtCLGdDQUFHLGdDQUNoQ2xCLHdCQUFZbUIsbUJBRG9CLEVBRWhDLFVBQUFqQixFQUFFO0FBQUEsU0FBSUEsRUFBSjtBQUFBLENBRjhCLENBQTNCO0FBS1A7Ozs7Ozs7QUFNTyxJQUFNa0IsUUFBUSxzQkFBRyxnQ0FBYXBCLHdCQUFZcUIsU0FBekIsRUFBb0MsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUo7QUFBQSxDQUF6QyxDQUFqQjtBQUVQOzs7Ozs7O0FBTU8sSUFBTUMsYUFBYSwyQkFBRyxnQ0FDM0J2Qix3QkFBWXdCLGNBRGUsRUFFM0IsVUFBQUMsVUFBVTtBQUFBLFNBQUlBLFVBQUo7QUFBQSxDQUZpQixDQUF0QjtBQUtQOzs7Ozs7QUFLTyxJQUFNQyxZQUFZLDBCQUFHLGdDQUFhMUIsd0JBQVkyQixhQUF6QixDQUFyQjtBQUVQOzs7Ozs7QUFLTyxJQUFNQyxtQkFBbUIsaUNBQUcsZ0NBQ2pDNUIsd0JBQVk2QixxQkFEcUIsQ0FBNUI7QUFJUDs7Ozs7OztBQU1PLElBQU1DLHFCQUFxQixtQ0FBRyxnQ0FDbkM5Qix3QkFBWStCLHlCQUR1QixFQUVuQyxVQUFBQyxPQUFPO0FBQUEsU0FBSUEsT0FBSjtBQUFBLENBRjRCLENBQTlCO0FBS0EsSUFBTUMsbUJBQW1CLGlDQUFHLGdDQUNqQ2pDLHdCQUFZa0Msc0JBRHFCLEVBRWpDLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFKO0FBQUEsQ0FGNEIsQ0FBNUI7QUFLUDs7Ozs7O0FBS08sSUFBTUMsa0JBQWtCLGdDQUFHLGdDQUNoQ3BDLHdCQUFZcUMsb0JBRG9CLENBQTNCO0FBSVA7Ozs7Ozs7QUFNTyxJQUFNQyx3QkFBd0Isc0NBQUcsZ0NBQ3RDdEMsd0JBQVl1QywyQkFEMEIsRUFFdEMsVUFBQXpCLFNBQVM7QUFBQSxTQUFJQSxTQUFKO0FBQUEsQ0FGNkIsQ0FBakM7QUFLUDs7Ozs7OztBQU1PLElBQU0wQixpQkFBaUIsK0JBQUcsZ0NBQy9CeEMsd0JBQVl5QyxvQkFEbUIsRUFFL0IsVUFBQUMsUUFBUTtBQUFBLFNBQUlBLFFBQUo7QUFBQSxDQUZ1QixDQUExQjtBQUtQOzs7Ozs7O0FBTU8sSUFBTUMsaUJBQWlCLCtCQUFHLGdDQUMvQjNDLHdCQUFZNEMsbUJBRG1CLEVBRS9CLFVBQUFDLE9BQU87QUFBQSxTQUFJQSxPQUFKO0FBQUEsQ0FGd0IsQ0FBMUI7QUFLUDs7Ozs7O0FBS08sSUFBTUMsYUFBYSwyQkFBRyxnQ0FBYTlDLHdCQUFZK0MsZUFBekIsQ0FBdEI7QUFFUDs7Ozs7OztBQU1PLElBQU1DLHdCQUF3QixzQ0FBRyxnQ0FDdENoRCx3QkFBWWlELDRCQUQwQixFQUV0QyxVQUFBSixPQUFPO0FBQUEsU0FBSUEsT0FBSjtBQUFBLENBRitCLENBQWpDO0FBS1A7Ozs7Ozs7QUFNTyxJQUFNSyxrQkFBa0IsZ0NBQUcsZ0NBQ2hDbEQsd0JBQVltRCxxQkFEb0IsRUFFaEMsVUFBQU4sT0FBTztBQUFBLFNBQUlBLE9BQUo7QUFBQSxDQUZ5QixDQUEzQjtBQUtQOzs7OztBQUlPLElBQU1PLG9CQUFvQixrQ0FBRyxnQ0FDbENwRCx3QkFBWXFELHdCQURzQixFQUVsQyxVQUFBUixPQUFPO0FBQUEsU0FBSUEsT0FBSjtBQUFBLENBRjJCLENBQTdCO0FBS1A7Ozs7QUFHQTs7Ozs7Ozs7O0FBUUE7O0FBQ0EsSUFBTVMsY0FBYyxHQUFHLElBQXZCO0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge2NyZWF0ZUFjdGlvbn0gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5pbXBvcnQgQWN0aW9uVHlwZXMgZnJvbSAnY29uc3RhbnRzL2FjdGlvbi10eXBlcyc7XG5cbi8qKlxuICogVG9nZ2xlIGFjdGl2ZSBzaWRlIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZUFjdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCAgaWQgb2Ygc2lkZSBwYW5lbCB0byBiZSBzaG93biwgb25lIG9mIGBsYXllcmAsIGBmaWx0ZXJgLCBgaW50ZXJhY3Rpb25gLCBgbWFwYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlU2lkZVBhbmVsID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5UT0dHTEVfU0lERV9QQU5FTCxcbiAgaWQgPT4gaWRcbik7XG5cbi8qKlxuICogU2hvdyBhbmQgaGlkZSBtb2RhbCBkaWFsb2dcbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gaWQgLSBpZCBvZiBtb2RhbCB0byBiZSBzaG93biwgbnVsbCB0byBoaWRlIG1vZGFscy4gT25lIG9mOlxuICpcbiAqICAtIFtgREFUQV9UQUJMRV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2RhdGFfdGFibGVfaWQpXG4gKiAgLSBbYERFTEVURV9EQVRBX0lEYF0oLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MubWQjZGVsZXRlX2RhdGFfaWQpXG4gKiAgLSBbYEFERF9EQVRBX0lEYF0oLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MubWQjYWRkX2RhdGFfaWQpXG4gKiAgLSBbYEVYUE9SVF9JTUFHRV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2V4cG9ydF9pbWFnZV9pZClcbiAqICAtIFtgRVhQT1JUX0RBVEFfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNleHBvcnRfZGF0YV9pZClcbiAqICAtIFtgQUREX01BUF9TVFlMRV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2FkZF9tYXBfc3R5bGVfaWQpXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVNb2RhbCA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5UT0dHTEVfTU9EQUwsIGlkID0+IGlkKTtcblxuLyoqXG4gKiBIaWRlIGFuZCBzaG93IHNpZGUgcGFuZWwgaGVhZGVyIGRyb3Bkb3duLCBhY3RpdmF0ZWQgYnkgY2xpY2tpbmcgdGhlIHNoYXJlIGxpbmsgb24gdG9wIG9mIHRoZSBzaWRlIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZUFjdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIGlkIG9mIHRoZSBkcm9wZG93blxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2hvd0V4cG9ydERyb3Bkb3duID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TSE9XX0VYUE9SVF9EUk9QRE9XTixcbiAgaWQgPT4gaWRcbik7XG5cbi8qKlxuICogSGlkZSBzaWRlIHBhbmVsIGhlYWRlciBkcm9wZG93biwgYWN0aXZhdGVkIGJ5IGNsaWNraW5nIHRoZSBzaGFyZSBsaW5rIG9uIHRvcCBvZiB0aGUgc2lkZSBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBoaWRlRXhwb3J0RHJvcGRvd24gPSBjcmVhdGVBY3Rpb24oXG4gIEFjdGlvblR5cGVzLkhJREVfRVhQT1JUX0RST1BET1dOXG4pO1xuXG4vKipcbiAqIFRvZ2dsZSBhY3RpdmUgbWFwIGNvbnRyb2wgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IHBhbmVsSWQgLSBtYXAgY29udHJvbCBwYW5lbCBpZCwgb25lIG9mIHRoZSBrZXlzIG9mOiBbYERFRkFVTFRfTUFQX0NPTlRST0xTYF0oI2RlZmF1bHRfbWFwX2NvbnRyb2xzKVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlTWFwQ29udHJvbCA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuVE9HR0xFX01BUF9DT05UUk9MLFxuICBwYW5lbElkID0+IHBhbmVsSWRcbik7XG5cbi8qKlxuICogVG9nZ2xlIGFjdGl2ZSBtYXAgY29udHJvbCBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0YXNldElkIC0gYGlkYCBvZiB0aGUgZGF0YXNldCB0byBiZSBkZWxldGVkXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBvcGVuRGVsZXRlTW9kYWwgPSBjcmVhdGVBY3Rpb24oXG4gIEFjdGlvblR5cGVzLk9QRU5fREVMRVRFX01PREFMLFxuICBkYXRhc2V0SWQgPT4gZGF0YXNldElkXG4pO1xuXG4vKipcbiAqIEFkZCBhIG5vdGlmaWNhdGlvbiB0byBiZSBkaXNwbGF5ZWRcbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtPYmplY3R9IG5vdGlmaWNhdGlvbiAtIFRoZSBgbm90aWZpY2F0aW9uYCBvYmplY3QgdG8gYmUgYWRkZWRcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZE5vdGlmaWNhdGlvbiA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuQUREX05PVElGSUNBVElPTixcbiAgbm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvblxuKTtcblxuLyoqXG4gKiBSZW1vdmUgYSBub3RpZmljYXRpb25cbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGlkIC0gYGlkYCBvZiB0aGUgbm90aWZpY2F0aW9uIHRvIGJlIHJlbW92ZWRcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZU5vdGlmaWNhdGlvbiA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuUkVNT1ZFX05PVElGSUNBVElPTixcbiAgaWQgPT4gaWRcbik7XG5cbi8qKlxuICogU2V0IGBleHBvcnRJbWFnZS5yYXRpb2BcbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IHJhdGlvIC0gb25lIG9mIGAnU0NSRUVOJ2AsIGAnRk9VUl9CWV9USFJFRSdgIGFuZCBgJ1NJWFRFRU5fQllfTklORSdgXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRSYXRpbyA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5TRVRfUkFUSU8sIHJhdGlvID0+IHJhdGlvKTtcblxuLyoqXG4gKiBTZXQgYGV4cG9ydEltYWdlLnJlc29sdXRpb25gXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZUFjdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXNvbHV0aW9uIC0gb25lIG9mIGAnT05FX1gnYCwgYCdUV09fWCdgXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRSZXNvbHV0aW9uID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TRVRfUkVTT0xVVElPTixcbiAgcmVzb2x1dGlvbiA9PiByZXNvbHV0aW9uXG4pO1xuXG4vKipcbiAqIFNldCBgZXhwb3J0SW1hZ2UubGVnZW5kYCB0byB0cnVlIG9yIGZhbHNlXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZUFjdGlvbnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZUxlZ2VuZCA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5UT0dHTEVfTEVHRU5EKTtcblxuLyoqXG4gKiBTZXQgYGV4cG9ydEltYWdlLmV4cG9ydGluZ2AgdG8gdHJ1ZVxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzdGFydEV4cG9ydGluZ0ltYWdlID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TVEFSVF9FWFBPUlRJTkdfSU1BR0Vcbik7XG5cbi8qKlxuICogU2V0IGBleHBvcnRJbWFnZS5zZXRFeHBvcnRJbWFnZURhdGFVcmlgIHRvIGEgZGF0YVVyaVxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0YVVyaSAtIGV4cG9ydCBpbWFnZSBkYXRhIHVyaVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0lNQUdFX0RBVEFfVVJJLFxuICBkYXRhVXJpID0+IGRhdGFVcmlcbik7XG5cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRJbWFnZUVycm9yID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0lNQUdFX0VSUk9SLFxuICBlcnJvciA9PiBlcnJvclxuKTtcblxuLyoqXG4gKiBEZWxldGUgY2FjaGVkIGV4cG9ydCBpbWFnZVxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBjbGVhbnVwRXhwb3J0SW1hZ2UgPSBjcmVhdGVBY3Rpb24oXG4gIEFjdGlvblR5cGVzLkNMRUFOVVBfRVhQT1JUX0lNQUdFXG4pO1xuXG4vKipcbiAqIFNldCBzZWxlY3RlZCBkYXRhc2V0IGZvciBleHBvcnRcbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGRhdGFzZXRJZCAtIGRhdGFzZXQgaWRcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydFNlbGVjdGVkRGF0YXNldCA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VULFxuICBkYXRhc2V0SWQgPT4gZGF0YXNldElkXG4pO1xuXG4vKipcbiAqIFNldCBkYXRhIGZvcm1hdCBmb3IgZXhwb3J0aW5nIGRhdGFcbiAqIEBtZW1iZXJvZiB1aVN0YXRlQWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGRhdGFUeXBlIC0gb25lIG9mIGAndGV4dC9jc3YnYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0RGF0YVR5cGUgPSBjcmVhdGVBY3Rpb24oXG4gIEFjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV9UWVBFLFxuICBkYXRhVHlwZSA9PiBkYXRhVHlwZVxuKTtcblxuLyoqXG4gKiBXaGV0aGVyIHRvIGV4cG9ydCBmaWx0ZXJlZCBkYXRhLCBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHBheWxvYWQgLSBzZXQgYHRydWVgIHRvIG9ueSBleHBvcnQgZmlsdGVyZWQgZGF0YVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0RmlsdGVyZWQgPSBjcmVhdGVBY3Rpb24oXG4gIEFjdGlvblR5cGVzLlNFVF9FWFBPUlRfRklMVEVSRUQsXG4gIHBheWxvYWQgPT4gcGF5bG9hZFxuKTtcblxuLyoqXG4gKiBXaGV0aGVyIHRvIGluY2x1ZGluZyBkYXRhIGluIG1hcCBjb25maWcsIHRvZ2dsZSBiZXR3ZWVuIGB0cnVlYCBvciBgZmFsc2VgXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZUFjdGlvbnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydERhdGEgPSBjcmVhdGVBY3Rpb24oQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9EQVRBKTtcblxuLyoqXG4gKiBXaGV0aGVyIHdlIGV4cG9ydCBhIG1hcGJveCBhY2Nlc3MgdG9rZW4gdXNlZCB0byBjcmVhdGUgYSBzaW5nbGUgbWFwIGh0bWwgZmlsZVxuICogQG1lbWJlcm9mIHVpU3RhdGVBY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF5bG9hZCAtIG1hcGJveCBhY2Nlc3MgdG9rZW5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbiA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuU0VUX1VTRVJfTUFQQk9YX0FDQ0VTU19UT0tFTixcbiAgcGF5bG9hZCA9PiBwYXlsb2FkXG4pO1xuXG4vKipcbiAqIFNldCB0aGUgZXhwb3J0IG1hcCBmb3JtYXQgKGh0bWwsIGpzb24pXG4gKiBAbWVtYmVyT2YgdWlTdGF0ZUFjdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXlsb2FkIC0gbWFwIGZvcm1hdFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0TWFwRm9ybWF0ID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX01BUF9GT1JNQVQsXG4gIHBheWxvYWQgPT4gcGF5bG9hZFxuKTtcblxuLyoqXG4gKiBTZXQgdGhlIEhUTUwgbW9kZSB0byB1c2UgdG8gZXhwb3J0IEhUTUwgbW9kZVxuICogQHR5cGUge2FjdGlvbkNyZWF0b3J9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRIVE1MTWFwTW9kZSA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9NQVBfSFRNTF9NT0RFLFxuICBwYXlsb2FkID0+IHBheWxvYWRcbik7XG5cbi8qKlxuICogVGhpcyBkZWNsYXJhdGlvbiBpcyBuZWVkZWQgdG8gZ3JvdXAgYWN0aW9ucyBpbiBkb2NzXG4gKi9cbi8qKlxuICogQWN0aW9ucyBoYW5kbGVkIG1vc3RseSBieSAgYHVpU3RhdGVgIHJlZHVjZXIuXG4gKiBUaGV5IG1hbmFnZSBVSSBjaGFuZ2VzIGluIHRoYSBhcHAsIHN1Y2ggYXMgb3BlbiBhbmQgY2xvc2Ugc2lkZSBwYW5lbCxcbiAqIHN3aXRjaCBiZXR3ZWVuIHRhYnMgaW4gdGhlIHNpZGUgcGFuZWwsIG9wZW4gYW5kIGNsb3NlIG1vZGFsIGRpYWxvZyBmb3IgZXhwb3J0aW5nIGRhdGEgLyBpbWFnZXMgZXRjLlxuICogSXQgYWxzbyBtYW5nZXMgd2hpY2ggc2V0dGluZ3MgYXJlIHNlbGVjdGVkIGR1cmluZyBpbWFnZSBhbmQgbWFwIGV4cG9ydFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmNvbnN0IHVpU3RhdGVBY3Rpb25zID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbiJdfQ==