@carto/kepler.gl 0.0.40-alpha.3 → 0.0.40-alpha.aggregation-selector
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/common/field-selector.js +62 -17
- package/dist/components/common/field-token.js +4 -12
- package/dist/components/common/icons/chevron-right.js +69 -0
- package/dist/components/common/icons/index.js +9 -1
- package/dist/components/common/item-selector/dropdown-list.js +118 -20
- package/dist/components/common/item-selector/item-selector-submenu.js +133 -0
- package/dist/components/common/item-selector/item-selector.js +7 -4
- package/dist/components/common/item-selector/typeahead.js +16 -16
- package/dist/components/index.js +1 -10
- package/dist/components/map-container.js +1 -14
- package/dist/components/side-panel/layer-panel/layer-configurator.js +13 -11
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +7 -3
- package/dist/constants/default-settings.js +33 -8
- package/dist/constants/index.js +7 -1
- package/dist/layers/base-layer.js +1 -11
- package/dist/localization/ca.js +1 -4
- package/dist/localization/cn.js +1 -4
- package/dist/localization/en.js +1 -4
- package/dist/localization/es.js +1 -4
- package/dist/localization/fi.js +1 -4
- package/dist/localization/ja.js +1 -4
- package/dist/localization/pt.js +1 -4
- package/dist/localization/ru.js +1 -4
- package/dist/reducers/vis-state-merger.js +2 -3
- package/dist/schemas/vis-state-schema.js +1 -5
- package/dist/styles/base.js +3 -3
- package/package.json +1 -1
- package/src/components/common/field-selector.js +62 -21
- package/src/components/common/field-token.js +13 -14
- package/src/components/common/icons/chevron-right.js +47 -0
- package/src/components/common/icons/index.js +1 -0
- package/src/components/common/item-selector/dropdown-list.js +124 -43
- package/src/components/common/item-selector/item-selector-submenu.js +88 -0
- package/src/components/common/item-selector/item-selector.d.ts +2 -1
- package/src/components/common/item-selector/item-selector.js +5 -2
- package/src/components/common/item-selector/typeahead.js +27 -21
- package/src/components/index.js +0 -1
- package/src/components/map-container.js +0 -14
- package/src/components/side-panel/layer-panel/layer-configurator.js +19 -7
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +5 -1
- package/src/constants/default-settings.js +51 -5
- package/src/constants/index.js +2 -1
- package/src/layers/base-layer.js +3 -10
- package/src/layers/index.d.ts +0 -1
- package/src/localization/ca.js +0 -3
- package/src/localization/cn.js +0 -3
- package/src/localization/en.js +0 -3
- package/src/localization/es.js +0 -3
- package/src/localization/fi.js +0 -3
- package/src/localization/ja.js +0 -3
- package/src/localization/pt.js +0 -3
- package/src/localization/ru.js +0 -3
- package/src/reducers/vis-state-merger.js +1 -2
- package/src/schemas/schema-manager.d.ts +0 -1
- package/src/schemas/vis-state-schema.js +0 -2
- package/src/styles/base.js +1 -0
- package/umd/keplergl.min.js +31 -31
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -106
- package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -120
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports["default"] = void 0;
|
|
11
|
-
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
-
|
|
18
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
-
|
|
20
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
21
|
-
|
|
22
|
-
var _rangeSlider = _interopRequireDefault(require("../../common/range-slider"));
|
|
23
|
-
|
|
24
|
-
var _styledComponents2 = require("../../common/styled-components");
|
|
25
|
-
|
|
26
|
-
var _localization = require("../../../localization");
|
|
27
|
-
|
|
28
|
-
var _defaultSettings = require("../../../constants/default-settings");
|
|
29
|
-
|
|
30
|
-
var _templateObject, _templateObject2;
|
|
31
|
-
|
|
32
|
-
var SliderWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"])));
|
|
33
|
-
|
|
34
|
-
var TopRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
|
|
35
|
-
|
|
36
|
-
LayerVisibilityByZoomFactory.deps = [_rangeSlider["default"]];
|
|
37
|
-
|
|
38
|
-
function LayerVisibilityByZoomFactory(RangeSlider) {
|
|
39
|
-
var LayerVisibilityByZoom = function LayerVisibilityByZoom(_ref) {
|
|
40
|
-
var _config$visibilityByZ, _config$visibilityByZ2, _config$visibilityByZ3, _config$visibilityByZ4, _config$visibilityByZ5, _config$visibilityByZ6;
|
|
41
|
-
|
|
42
|
-
var updateLayerConfig = _ref.updateLayerConfig,
|
|
43
|
-
layer = _ref.layer,
|
|
44
|
-
rangeMinValue = _ref.rangeMinValue,
|
|
45
|
-
rangeMaxValue = _ref.rangeMaxValue,
|
|
46
|
-
iconComponent = _ref.iconComponent;
|
|
47
|
-
var config = layer.config;
|
|
48
|
-
var minLimit = rangeMinValue || _defaultSettings.ZOOM_LEVEL_LIMITS.min;
|
|
49
|
-
var maxLimit = rangeMaxValue || _defaultSettings.ZOOM_LEVEL_LIMITS.max;
|
|
50
|
-
|
|
51
|
-
var _React$useState = _react["default"].useState((_config$visibilityByZ = config.visibilityByZoom) !== null && _config$visibilityByZ !== void 0 && _config$visibilityByZ.min ? ((_config$visibilityByZ2 = config.visibilityByZoom) === null || _config$visibilityByZ2 === void 0 ? void 0 : _config$visibilityByZ2.min) < minLimit ? minLimit : (_config$visibilityByZ3 = config.visibilityByZoom) === null || _config$visibilityByZ3 === void 0 ? void 0 : _config$visibilityByZ3.min : minLimit),
|
|
52
|
-
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
53
|
-
zoomMin = _React$useState2[0],
|
|
54
|
-
setZoomMin = _React$useState2[1];
|
|
55
|
-
|
|
56
|
-
var _React$useState3 = _react["default"].useState((_config$visibilityByZ4 = config.visibilityByZoom) !== null && _config$visibilityByZ4 !== void 0 && _config$visibilityByZ4.max ? ((_config$visibilityByZ5 = config.visibilityByZoom) === null || _config$visibilityByZ5 === void 0 ? void 0 : _config$visibilityByZ5.max) > maxLimit ? maxLimit : (_config$visibilityByZ6 = config.visibilityByZoom) === null || _config$visibilityByZ6 === void 0 ? void 0 : _config$visibilityByZ6.max : maxLimit),
|
|
57
|
-
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
|
58
|
-
zoomMax = _React$useState4[0],
|
|
59
|
-
setZoomMax = _React$useState4[1];
|
|
60
|
-
|
|
61
|
-
var _onChange = (0, _react.useCallback)(function (val) {
|
|
62
|
-
setZoomMin(val[0]);
|
|
63
|
-
setZoomMax(val[1]);
|
|
64
|
-
updateLayerConfig({
|
|
65
|
-
visibilityByZoom: {
|
|
66
|
-
min: val[0],
|
|
67
|
-
max: val[1]
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}, [updateLayerConfig]);
|
|
71
|
-
|
|
72
|
-
var IconElement = function IconElement() {
|
|
73
|
-
return iconComponent || null;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
77
|
-
className: "layer-visibility__zoom"
|
|
78
|
-
}, /*#__PURE__*/_react["default"].createElement(TopRow, null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
79
|
-
id: 'layerVisibility.title'
|
|
80
|
-
}), ' ', /*#__PURE__*/_react["default"].createElement(IconElement, {
|
|
81
|
-
"data-test": "icon-help-button"
|
|
82
|
-
}))), /*#__PURE__*/_react["default"].createElement(SliderWrapper, null, /*#__PURE__*/_react["default"].createElement(RangeSlider, {
|
|
83
|
-
range: [rangeMinValue || _defaultSettings.ZOOM_LEVEL_LIMITS.min, rangeMaxValue || _defaultSettings.ZOOM_LEVEL_LIMITS.max],
|
|
84
|
-
value0: zoomMin,
|
|
85
|
-
value1: zoomMax,
|
|
86
|
-
onChange: _onChange,
|
|
87
|
-
isRanged: true,
|
|
88
|
-
showTooltip: true,
|
|
89
|
-
showInput: true,
|
|
90
|
-
inputTheme: "secondary",
|
|
91
|
-
inputSize: "tiny"
|
|
92
|
-
})))));
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
LayerVisibilityByZoom.propTypes = {
|
|
96
|
-
updateLayerConfig: _propTypes["default"].func.isRequired,
|
|
97
|
-
rangeMinValue: _propTypes["default"].number,
|
|
98
|
-
rangeMaxValue: _propTypes["default"].number,
|
|
99
|
-
iconComponent: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func])
|
|
100
|
-
};
|
|
101
|
-
return LayerVisibilityByZoom;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
var _default = LayerVisibilityByZoomFactory;
|
|
105
|
-
exports["default"] = _default;
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdmlzaWJpbGl0eS1ieS16b29tLmpzIl0sIm5hbWVzIjpbIlNsaWRlcldyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJUb3BSb3ciLCJMYXllclZpc2liaWxpdHlCeVpvb21GYWN0b3J5IiwiZGVwcyIsIlJhbmdlU2xpZGVyRmFjdG9yeSIsIlJhbmdlU2xpZGVyIiwiTGF5ZXJWaXNpYmlsaXR5Qnlab29tIiwidXBkYXRlTGF5ZXJDb25maWciLCJsYXllciIsInJhbmdlTWluVmFsdWUiLCJyYW5nZU1heFZhbHVlIiwiaWNvbkNvbXBvbmVudCIsImNvbmZpZyIsIm1pbkxpbWl0IiwiWk9PTV9MRVZFTF9MSU1JVFMiLCJtaW4iLCJtYXhMaW1pdCIsIm1heCIsIlJlYWN0IiwidXNlU3RhdGUiLCJ2aXNpYmlsaXR5Qnlab29tIiwiem9vbU1pbiIsInNldFpvb21NaW4iLCJ6b29tTWF4Iiwic2V0Wm9vbU1heCIsIl9vbkNoYW5nZSIsInZhbCIsIkljb25FbGVtZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJudW1iZXIiLCJvbmVPZlR5cGUiLCJlbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFNQSxhQUFhLEdBQUdDLDZCQUFPQyxHQUFWLCtHQUFuQjs7QUFJQSxJQUFNQyxNQUFNLEdBQUdGLDZCQUFPQyxHQUFWLCtJQUFaOztBQUtBRSw0QkFBNEIsQ0FBQ0MsSUFBN0IsR0FBb0MsQ0FBQ0MsdUJBQUQsQ0FBcEM7O0FBRUEsU0FBU0YsNEJBQVQsQ0FBc0NHLFdBQXRDLEVBQW1EO0FBQ2pELE1BQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBd0IsT0FNeEI7QUFBQTs7QUFBQSxRQUxKQyxpQkFLSSxRQUxKQSxpQkFL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QVVHLE1BRk87QUFHaEN0QixJQUFBQSxhQUFhLEVBQUVtQixzQkFBVUcsTUFITztBQUloQ3JCLElBQUFBLGFBQWEsRUFBRWtCLHNCQUFVSSxTQUFWLENBQW9CLENBQUNKLHNCQUFVSyxPQUFYLEVBQW9CTCxzQkFBVUMsSUFBOUIsQ0FBcEI7QUFKaUIsR0FBbEM7QUFPQSxTQUFPeEIscUJBQVA7QUFDRDs7ZUFFY0osNEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFJhbmdlU2xpZGVyRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHtQYW5lbExhYmVsLCBTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1pPT01fTEVWRUxfTElNSVRTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmNvbnN0IFNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBUb3BSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5MYXllclZpc2liaWxpdHlCeVpvb21GYWN0b3J5LmRlcHMgPSBbUmFuZ2VTbGlkZXJGYWN0b3J5XTtcblxuZnVuY3Rpb24gTGF5ZXJWaXNpYmlsaXR5Qnlab29tRmFjdG9yeShSYW5nZVNsaWRlcikge1xuICBjb25zdCBMYXllclZpc2liaWxpdHlCeVpvb20gPSAoe1xuICAgIHVwZGF0ZUxheWVyQ29uZmlnLFxuICAgIGxheWVyLFxuICAgIHJhbmdlTWluVmFsdWUsXG4gICAgcmFuZ2VNYXhWYWx1ZSxcbiAgICBpY29uQ29tcG9uZW50XG4gIH0pID0+IHtcbiAgICBjb25zdCB7Y29uZmlnfSA9IGxheWVyO1xuICAgIGNvbnN0IG1pbkxpbWl0ID0gcmFuZ2VNaW5WYWx1ZSB8fCBaT09NX0xFVkVMX0xJTUlUUy5taW47XG4gICAgY29uc3QgbWF4TGltaXQgPSByYW5nZU1heFZhbHVlIHx8IFpPT01fTEVWRUxfTElNSVRTLm1heDtcblxuICAgIGNvbnN0IFt6b29tTWluLCBzZXRab29tTWluXSA9IFJlYWN0LnVzZVN0YXRlKFxuICAgICAgY29uZmlnLnZpc2liaWxpdHlCeVpvb20/Lm1pblxuICAgICAgICA/IGNvbmZpZy52aXNpYmlsaXR5Qnlab29tPy5taW4gPCBtaW5MaW1pdFxuICAgICAgICAgID8gbWluTGltaXRcbiAgICAgICAgICA6IGNvbmZpZy52aXNpYmlsaXR5Qnlab29tPy5taW5cbiAgICAgICAgOiBtaW5MaW1pdFxuICAgICk7XG4gICAgY29uc3QgW3pvb21NYXgsIHNldFpvb21NYXhdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICBjb25maWcudmlzaWJpbGl0eUJ5Wm9vbT8ubWF4XG4gICAgICAgID8gY29uZmlnLnZpc2liaWxpdHlCeVpvb20/Lm1heCA+IG1heExpbWl0XG4gICAgICAgICAgPyBtYXhMaW1pdFxuICAgICAgICAgIDogY29uZmlnLnZpc2liaWxpdHlCeVpvb20/Lm1heFxuICAgICAgICA6IG1heExpbWl0XG4gICAgKTtcblxuICAgIGNvbnN0IF9vbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgdmFsID0+IHtcbiAgICAgICAgc2V0Wm9vbU1pbih2YWxbMF0pO1xuICAgICAgICBzZXRab29tTWF4KHZhbFsxXSk7XG4gICAgICAgIHVwZGF0ZUxheWVyQ29uZmlnKHt2aXNpYmlsaXR5Qnlab29tOiB7bWluOiB2YWxbMF0sIG1heDogdmFsWzFdfX0pO1xuICAgICAgfSxcbiAgICAgIFt1cGRhdGVMYXllckNvbmZpZ11cbiAgICApO1xuXG4gICAgY29uc3QgSWNvbkVsZW1lbnQgPSAoKSA9PiBpY29uQ29tcG9uZW50IHx8IG51bGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci12aXNpYmlsaXR5X196b29tXCI+XG4gICAgICAgICAgICA8VG9wUm93PlxuICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2xheWVyVmlzaWJpbGl0eS50aXRsZSd9IC8+eycgJ31cbiAgICAgICAgICAgICAgICA8SWNvbkVsZW1lbnQgZGF0YS10ZXN0PVwiaWNvbi1oZWxwLWJ1dHRvblwiIC8+XG4gICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgIDwvVG9wUm93PlxuICAgICAgICAgICAgPFNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIDxSYW5nZVNsaWRlclxuICAgICAgICAgICAgICAgIHJhbmdlPXtbXG4gICAgICAgICAgICAgICAgICByYW5nZU1pblZhbHVlIHx8IFpPT01fTEVWRUxfTElNSVRTLm1pbixcbiAgICAgICAgICAgICAgICAgIHJhbmdlTWF4VmFsdWUgfHwgWk9PTV9MRVZFTF9MSU1JVFMubWF4XG4gICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICB2YWx1ZTA9e3pvb21NaW59XG4gICAgICAgICAgICAgICAgdmFsdWUxPXt6b29tTWF4fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtfb25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgaXNSYW5nZWQ9e3RydWV9XG4gICAgICAgICAgICAgICAgc2hvd1Rvb2x0aXBcbiAgICAgICAgICAgICAgICBzaG93SW5wdXRcbiAgICAgICAgICAgICAgICBpbnB1dFRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICBpbnB1dFNpemU9XCJ0aW55XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllclZpc2liaWxpdHlCeVpvb20ucHJvcFR5cGVzID0ge1xuICAgIHVwZGF0ZUxheWVyQ29uZmlnOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHJhbmdlTWluVmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgcmFuZ2VNYXhWYWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICBpY29uQ29tcG9uZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgUHJvcFR5cGVzLmZ1bmNdKVxuICB9O1xuXG4gIHJldHVybiBMYXllclZpc2liaWxpdHlCeVpvb207XG59XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyVmlzaWJpbGl0eUJ5Wm9vbUZhY3Rvcnk7XG4iXX0=
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
|
-
import React, {useCallback} from 'react';
|
|
22
|
-
import PropTypes from 'prop-types';
|
|
23
|
-
import styled from 'styled-components';
|
|
24
|
-
import RangeSliderFactory from 'components/common/range-slider';
|
|
25
|
-
import {PanelLabel, SidePanelSection} from 'components/common/styled-components';
|
|
26
|
-
import {FormattedMessage} from 'localization';
|
|
27
|
-
import {ZOOM_LEVEL_LIMITS} from 'constants/default-settings';
|
|
28
|
-
|
|
29
|
-
const SliderWrapper = styled.div`
|
|
30
|
-
position: relative;
|
|
31
|
-
`;
|
|
32
|
-
|
|
33
|
-
const TopRow = styled.div`
|
|
34
|
-
display: flex;
|
|
35
|
-
justify-content: space-between;
|
|
36
|
-
`;
|
|
37
|
-
|
|
38
|
-
LayerVisibilityByZoomFactory.deps = [RangeSliderFactory];
|
|
39
|
-
|
|
40
|
-
function LayerVisibilityByZoomFactory(RangeSlider) {
|
|
41
|
-
const LayerVisibilityByZoom = ({
|
|
42
|
-
updateLayerConfig,
|
|
43
|
-
layer,
|
|
44
|
-
rangeMinValue,
|
|
45
|
-
rangeMaxValue,
|
|
46
|
-
iconComponent
|
|
47
|
-
}) => {
|
|
48
|
-
const {config} = layer;
|
|
49
|
-
const minLimit = rangeMinValue || ZOOM_LEVEL_LIMITS.min;
|
|
50
|
-
const maxLimit = rangeMaxValue || ZOOM_LEVEL_LIMITS.max;
|
|
51
|
-
|
|
52
|
-
const [zoomMin, setZoomMin] = React.useState(
|
|
53
|
-
config.visibilityByZoom?.min
|
|
54
|
-
? config.visibilityByZoom?.min < minLimit
|
|
55
|
-
? minLimit
|
|
56
|
-
: config.visibilityByZoom?.min
|
|
57
|
-
: minLimit
|
|
58
|
-
);
|
|
59
|
-
const [zoomMax, setZoomMax] = React.useState(
|
|
60
|
-
config.visibilityByZoom?.max
|
|
61
|
-
? config.visibilityByZoom?.max > maxLimit
|
|
62
|
-
? maxLimit
|
|
63
|
-
: config.visibilityByZoom?.max
|
|
64
|
-
: maxLimit
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
const _onChange = useCallback(
|
|
68
|
-
val => {
|
|
69
|
-
setZoomMin(val[0]);
|
|
70
|
-
setZoomMax(val[1]);
|
|
71
|
-
updateLayerConfig({visibilityByZoom: {min: val[0], max: val[1]}});
|
|
72
|
-
},
|
|
73
|
-
[updateLayerConfig]
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
const IconElement = () => iconComponent || null;
|
|
77
|
-
|
|
78
|
-
return (
|
|
79
|
-
<div>
|
|
80
|
-
<SidePanelSection>
|
|
81
|
-
<div className="layer-visibility__zoom">
|
|
82
|
-
<TopRow>
|
|
83
|
-
<PanelLabel>
|
|
84
|
-
<FormattedMessage id={'layerVisibility.title'} />{' '}
|
|
85
|
-
<IconElement data-test="icon-help-button" />
|
|
86
|
-
</PanelLabel>
|
|
87
|
-
</TopRow>
|
|
88
|
-
<SliderWrapper>
|
|
89
|
-
<RangeSlider
|
|
90
|
-
range={[
|
|
91
|
-
rangeMinValue || ZOOM_LEVEL_LIMITS.min,
|
|
92
|
-
rangeMaxValue || ZOOM_LEVEL_LIMITS.max
|
|
93
|
-
]}
|
|
94
|
-
value0={zoomMin}
|
|
95
|
-
value1={zoomMax}
|
|
96
|
-
onChange={_onChange}
|
|
97
|
-
isRanged={true}
|
|
98
|
-
showTooltip
|
|
99
|
-
showInput
|
|
100
|
-
inputTheme="secondary"
|
|
101
|
-
inputSize="tiny"
|
|
102
|
-
/>
|
|
103
|
-
</SliderWrapper>
|
|
104
|
-
</div>
|
|
105
|
-
</SidePanelSection>
|
|
106
|
-
</div>
|
|
107
|
-
);
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
LayerVisibilityByZoom.propTypes = {
|
|
111
|
-
updateLayerConfig: PropTypes.func.isRequired,
|
|
112
|
-
rangeMinValue: PropTypes.number,
|
|
113
|
-
rangeMaxValue: PropTypes.number,
|
|
114
|
-
iconComponent: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
return LayerVisibilityByZoom;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export default LayerVisibilityByZoomFactory;
|