@evergis/react 2.0.166 → 2.0.168

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/components/Legend/Legend.d.ts +5 -3
  2. package/dist/components/Legend/components/LegendParameterDescription.d.ts +5 -0
  3. package/dist/components/Legend/components/LegendSection.d.ts +3 -0
  4. package/dist/components/Legend/components/LegendSymbolRenderer.d.ts +5 -0
  5. package/dist/components/Legend/components/MaximizedLegend.d.ts +3 -0
  6. package/dist/components/{MapLegend → Legend/components}/MinimizedLegend.d.ts +1 -1
  7. package/dist/components/Legend/components/SvgSymbol.d.ts +3 -0
  8. package/dist/components/Legend/components/SymbolByType.d.ts +9 -0
  9. package/dist/components/Legend/components/index.d.ts +7 -0
  10. package/dist/components/Legend/constants.d.ts +32 -0
  11. package/dist/components/Legend/hooks/useSvgSymbol.d.ts +15 -0
  12. package/dist/components/Legend/index.d.ts +4 -4
  13. package/dist/components/Legend/styled.d.ts +36 -5
  14. package/dist/components/Legend/types.d.ts +78 -9
  15. package/dist/components/index.d.ts +0 -1
  16. package/dist/contexts/LegendContext.d.ts +1 -1
  17. package/dist/core/attributes/format.d.ts +0 -1
  18. package/dist/core/classification/parameterValue.d.ts +1 -3
  19. package/dist/core/classification/types.d.ts +2 -1
  20. package/dist/core/feature/getFeatureSymbol.d.ts +1 -1
  21. package/dist/core/style/EvergisStyle.d.ts +1 -1
  22. package/dist/core/style/types/parameterValue.d.ts +2 -2
  23. package/dist/core/style/types/symbol.d.ts +8 -2
  24. package/dist/hooks/useLegend/useMapLegend.d.ts +1 -1
  25. package/dist/hooks/useSymbol.d.ts +0 -1
  26. package/dist/index.d.ts +8 -2
  27. package/dist/react.cjs.development.js +1319 -319
  28. package/dist/react.cjs.development.js.map +1 -1
  29. package/dist/react.cjs.production.min.js +1 -1
  30. package/dist/react.cjs.production.min.js.map +1 -1
  31. package/dist/react.esm.js +1240 -313
  32. package/dist/react.esm.js.map +1 -1
  33. package/dist/utils/date.d.ts +16 -0
  34. package/dist/utils/legend.d.ts +72 -0
  35. package/dist/utils/svg.d.ts +6 -0
  36. package/package.json +8 -5
  37. package/dist/components/Legend/LegendSection.d.ts +0 -10
  38. package/dist/components/Legend/LegendSymbol.d.ts +0 -8
  39. package/dist/components/Legend/LegendValue.d.ts +0 -8
  40. package/dist/components/Legend/getSymbolSize.d.ts +0 -3
  41. package/dist/components/MapLegend/MapLegend.d.ts +0 -3
  42. package/dist/components/MapLegend/MapLegendDescription.d.ts +0 -5
  43. package/dist/components/MapLegend/MapLegendSymbol.d.ts +0 -7
  44. package/dist/components/MapLegend/index.d.ts +0 -5
  45. package/dist/components/MapLegend/styled.d.ts +0 -28
  46. package/dist/components/MapLegend/types.d.ts +0 -23
@@ -13,6 +13,7 @@ var _Map = require('@evergis/sgis/es/Map');
13
13
  var DomPainter = require('@evergis/sgis/es/painters/DomPainter/DomPainter');
14
14
  var FeatureLayer$1 = require('@evergis/sgis/es/layers/FeatureLayer');
15
15
  var icons = require('@evergis/icons');
16
+ var dateFns = require('date-fns');
16
17
  var condition = require('@evergis/condition');
17
18
  var MultiPoint = require('@evergis/sgis/es/features/MultiPoint');
18
19
  var Polyline = require('@evergis/sgis/es/features/Polyline');
@@ -31,6 +32,7 @@ var PolylineControl = require('@evergis/sgis/es/controls/PolylineControl');
31
32
  var Label = require('@evergis/sgis/es/features/Label');
32
33
  var Control = require('@evergis/sgis/es/controls/Control');
33
34
  var PolyEditor = require('@evergis/sgis/es/controls/PolyEditor');
35
+ var get = _interopDefault(require('lodash/get'));
34
36
  var ReactDOM = _interopDefault(require('react-dom'));
35
37
  var _Symbol = require('@evergis/sgis/es/symbols/Symbol');
36
38
  var Poly$1 = require('@evergis/sgis/es/features/Poly');
@@ -53,6 +55,10 @@ var styled = require('styled-components');
53
55
  var styled__default = _interopDefault(styled);
54
56
  var punycode = _interopDefault(require('punycode'));
55
57
  var TileLayer$1 = require('@evergis/sgis/es/layers/TileLayer');
58
+ var reactI18next = require('react-i18next');
59
+ var ui = require('@evergis/ui');
60
+ var svg_js = require('@svgdotjs/svg.js');
61
+ var Color = require('@evergis/color/es/Color');
56
62
 
57
63
  function _classCallCheck(instance, Constructor) {
58
64
  if (!(instance instanceof Constructor)) {
@@ -451,6 +457,48 @@ const useEvergisCard = features => {
451
457
  };
452
458
  };
453
459
 
460
+ const NO_CONTENT_VALUE = '—';
461
+
462
+ (function (DateFormat) {
463
+ DateFormat["ClientDefaultFormat"] = "dd.MM.yyyy HH:mm";
464
+ DateFormat["DateTime"] = "dd.MM.yyyy HH:mm:ss";
465
+ DateFormat["UTC"] = "yyyy-MM-dd'T'HH:mm:ss.sssxxx";
466
+ DateFormat["AxisTooltip"] = "d MMMM yyyy";
467
+ })(exports.DateFormat || (exports.DateFormat = {}));
468
+
469
+ const stringDateParsers = [dateFns.parseJSON, dateFns.parseISO, rawDate => new Date(rawDate)];
470
+ const getDate = rawDate => {
471
+ if (!rawDate) return null;
472
+
473
+ if (typeof rawDate === "string") {
474
+ for (const parser of stringDateParsers) {
475
+ const date = parser(rawDate);
476
+
477
+ if (dateFns.isValid(date)) {
478
+ return dateFns.toDate(date);
479
+ }
480
+ }
481
+
482
+ return null;
483
+ }
484
+
485
+ const parsedDate = dateFns.toDate(rawDate);
486
+ return dateFns.isValid(parsedDate) ? parsedDate : null;
487
+ };
488
+ const formatDate = function formatDate(date, _temp) {
489
+ let {
490
+ dateFormat = exports.DateFormat.ClientDefaultFormat,
491
+ defaultValue = NO_CONTENT_VALUE
492
+ } = _temp === void 0 ? {} : _temp;
493
+ const dateValue = date ? getDate(date) : null;
494
+
495
+ if (dateFns.isValid(dateValue)) {
496
+ return dateFns.format(dateValue, dateFormat);
497
+ }
498
+
499
+ return "" + defaultValue;
500
+ };
501
+
454
502
  function numberWithSpaces(x, fractionDigits, delim) {
455
503
  if (fractionDigits === void 0) {
456
504
  fractionDigits = 2;
@@ -517,8 +565,6 @@ const mailHref = mail => "mailto:" + mail;
517
565
  const phoneHref = mail => "tel:" + mail;
518
566
  const urlHref = url => isValidUrl(url) ? url : "//" + url;
519
567
 
520
- const NO_CONTENT_VALUE = '—';
521
-
522
568
  const stringAttribute = value => ({
523
569
  type: 0
524
570
  /* String */
@@ -749,8 +795,8 @@ function isObject(value) {
749
795
  return typeof value === 'object' && value !== null && !Array.isArray(value);
750
796
  }
751
797
 
752
- const isParameterByAttribute = value => Boolean(isObject(value) && value.type && value.type === 'byAttribute');
753
- const isCalculatedParameter = value => Boolean(isObject(value) && value.type && value.type === 'calculated');
798
+ const isParameterByAttribute = value => Boolean(isObject(value) && (value == null ? void 0 : value.type) === 'byAttribute');
799
+ const isCalculatedParameter = value => Boolean(isObject(value) && (value == null ? void 0 : value.type) === 'calculated');
754
800
  const getParameterValue = value => {
755
801
  if (isParameterByAttribute(value) || isCalculatedParameter(value)) {
756
802
  return value.defaultValue;
@@ -808,6 +854,8 @@ const isSizableSymbol = symbol => Boolean(symbol && 'size' in symbol);
808
854
  const isStrokeStyledSymbol = symbol => Boolean(symbol && (isPolygonSymbol(symbol) || isPolylineSymbols(symbol)));
809
855
  const isScalablePolylineSymbol = symbol => symbol.beginning !== null && symbol.ending !== null || symbol.stroke && symbol.stroke.type !== 'solid';
810
856
  const isSimpleSymbol = symbol => Boolean(symbol && !isLabelSymbol(symbol) && !isCompositeSymbol(symbol) && !isRasterSymbol(symbol));
857
+ const isH3GridSymbol = /*#__PURE__*/symbolTypeGuard("h3grid");
858
+ const isSvgPointSymbol = /*#__PURE__*/symbolTypeGuard("svgPointSymbol");
811
859
 
812
860
  const isHatchBrush = /*#__PURE__*/symbolTypeGuard('hatch');
813
861
  const isPatternBrush = /*#__PURE__*/symbolTypeGuard('pattern');
@@ -1915,6 +1963,536 @@ let BaseMeasureToolEditor = /*#__PURE__*/function (_PolyEditor) {
1915
1963
  return BaseMeasureToolEditor;
1916
1964
  }(PolyEditor.PolyEditor);
1917
1965
 
1966
+ const isNumeric = number => !isNaN(parseFloat(number)) && isFinite(number);
1967
+
1968
+ const isParameterType = (types, parameter) => {
1969
+ var _parameter$toLowerCas;
1970
+
1971
+ return (typeof types === "string" ? parameter == null ? void 0 : (_parameter$toLowerCas = parameter.toLowerCase()) == null ? void 0 : _parameter$toLowerCas.includes(types.toLowerCase()) : types.some(type => {
1972
+ var _parameter$toLowerCas2;
1973
+
1974
+ return parameter == null ? void 0 : (_parameter$toLowerCas2 = parameter.toLowerCase()) == null ? void 0 : _parameter$toLowerCas2.includes(type.toLowerCase());
1975
+ })) || false;
1976
+ };
1977
+
1978
+ const isLayerService = value => isObject(value) && "name" in value;
1979
+ const getAttributeFromCondition = condition => {
1980
+ const parts = condition.split(" ");
1981
+ return parts[0].startsWith("(") ? parts[0].slice(1) : parts[0];
1982
+ };
1983
+ const getExprFromCondition = (condition, partIndex) => {
1984
+ var _expr;
1985
+
1986
+ let expr;
1987
+
1988
+ if (partIndex) {
1989
+ const parts = condition.split(" && ").map(part => part.slice(1, -1));
1990
+ expr = parts[partIndex - 1];
1991
+ } else {
1992
+ expr = condition;
1993
+ }
1994
+
1995
+ return (_expr = expr) == null ? void 0 : _expr.split(" ");
1996
+ };
1997
+ const getSignFromConditionPart = (condition, partIndex) => {
1998
+ var _getExprFromCondition;
1999
+
2000
+ return (_getExprFromCondition = getExprFromCondition(condition, partIndex)) == null ? void 0 : _getExprFromCondition[1];
2001
+ };
2002
+ const getValueFromConditionPart = (condition, partIndex) => {
2003
+ var _getExprFromCondition2;
2004
+
2005
+ return (_getExprFromCondition2 = getExprFromCondition(condition, partIndex)) == null ? void 0 : _getExprFromCondition2[2];
2006
+ };
2007
+ const isRangeCondition = condition => condition.includes("(");
2008
+ const getSymbolParameterInfo = parameter => {
2009
+ return PARAMETER_INFOS[parameter] || DEFAULT_PARAMETER_INFO;
2010
+ };
2011
+ const formatValue = (value, type, calculatedParameter) => {
2012
+ var _ref;
2013
+
2014
+ if (type === api.AttributeType.DateTime) {
2015
+ return formatDate(value, {
2016
+ dateFormat: exports.DateFormat.DateTime
2017
+ });
2018
+ }
2019
+
2020
+ const {
2021
+ serialize
2022
+ } = getSymbolParameterInfo(calculatedParameter);
2023
+ return (_ref = value && typeof value === "number" ? serialize(value) : value) == null ? void 0 : _ref.toString();
2024
+ };
2025
+ const formatUniqueClassValue = value => {
2026
+ const {
2027
+ attribute,
2028
+ uniqueValue
2029
+ } = value;
2030
+ return attribute ? formatValue(uniqueValue, attribute.type) : uniqueValue;
2031
+ };
2032
+ const getRangeValues$1 = (_ref2, isDouble, isDate, index) => {
2033
+ let {
2034
+ from,
2035
+ to
2036
+ } = _ref2;
2037
+ return {
2038
+ from: from !== null && index !== 0 ? isDate ? from : isDouble ? +from : +from + 1 : from,
2039
+ to
2040
+ };
2041
+ };
2042
+ const formatRangeClassValue = (value, index) => {
2043
+ var _value$attribute, _value$attribute2;
2044
+
2045
+ const isDouble = ((_value$attribute = value.attribute) == null ? void 0 : _value$attribute.type) === "Double";
2046
+ const isDate = ((_value$attribute2 = value.attribute) == null ? void 0 : _value$attribute2.type) === "DateTime";
2047
+ const {
2048
+ from,
2049
+ to
2050
+ } = getRangeValues$1(value, isDouble, isDate, index);
2051
+ const formattedFrom = isDate && from ? formatDate(from) : from;
2052
+ const formattedTo = isDate && to ? formatDate(to) : to;
2053
+
2054
+ if (from === null) {
2055
+ return "" + formattedTo + (!isDate ? " и менее" : "");
2056
+ }
2057
+
2058
+ if (to === null) {
2059
+ return "" + (!isDate ? "более " : "") + formattedFrom;
2060
+ }
2061
+
2062
+ return from === to ? "" + formattedFrom : formattedFrom + " - " + formattedTo;
2063
+ };
2064
+ const checkLayerHasLegend = layerInfo => {
2065
+ var _SYMBOL_CLASSIFICATIO;
2066
+
2067
+ return ((_SYMBOL_CLASSIFICATIO = SYMBOL_CLASSIFICATION[layerInfo.geometryType]) == null ? void 0 : _SYMBOL_CLASSIFICATIO.some(param => {
2068
+ var _layerInfo$style;
2069
+
2070
+ const paramValue = get((_layerInfo$style = layerInfo.style) == null ? void 0 : _layerInfo$style.symbol, param);
2071
+ return (paramValue == null ? void 0 : paramValue.type) === "byAttribute";
2072
+ })) || false;
2073
+ };
2074
+ const getTitleFromCondition = condition => {
2075
+ var _parts$;
2076
+
2077
+ const parts = condition.split(" == ");
2078
+ return (_parts$ = parts[1]) == null ? void 0 : _parts$.slice(1, -1);
2079
+ };
2080
+
2081
+ function createValueTitle(paramValue, attributeType, index) {
2082
+ if (paramValue.title) return paramValue.title;
2083
+ const value = {
2084
+ parameterValue: getParameterValue(paramValue.value),
2085
+ attribute: {
2086
+ type: attributeType
2087
+ }
2088
+ };
2089
+ const sign = getSignFromConditionPart(paramValue.condition, 1);
2090
+ const isFirstFrom = sign.includes(">");
2091
+ value.from = isFirstFrom ? getValueFromConditionPart(paramValue.condition, 1) : null;
2092
+ value.to = paramValue.condition.includes(" && ") && isFirstFrom ? getValueFromConditionPart(paramValue.condition, 2) : !isFirstFrom ? getValueFromConditionPart(paramValue.condition, 1) : null;
2093
+ if (isRangeClass(value)) return formatRangeClassValue(value, index);
2094
+ if (isUniqueClass(value)) return formatUniqueClassValue(value);
2095
+ return "";
2096
+ } // Основывается на http://cf.everpoint.ru/pages/viewpage.action?pageId=45024217 ->
2097
+ // пункт "Настраиваемые значения параметров символики в системе"
2098
+ // Для добавления подготовленных значений размеров символов нужно использовать константу PREPARED_SYMBOL_SIZES
2099
+
2100
+
2101
+ const DEFAULT_LEGEND_STYLES = {
2102
+ [0
2103
+ /* Point */
2104
+ ]: {
2105
+ fillColor: "#00000047",
2106
+ strokeWidth: 1,
2107
+ strokeColor: "#0000001f"
2108
+ },
2109
+ [1
2110
+ /* ImagePoint */
2111
+ ]: {
2112
+ maskedColor: "#00000047"
2113
+ },
2114
+ [2
2115
+ /* Line */
2116
+ ]: {
2117
+ stroke: {
2118
+ width: 2,
2119
+ color: "#00000047"
2120
+ }
2121
+ },
2122
+ [3
2123
+ /* Polygon */
2124
+ ]: {
2125
+ fill: {
2126
+ color: "#00000000",
2127
+ hatchColor: "#00000000"
2128
+ },
2129
+ stroke: {
2130
+ width: 1,
2131
+ color: "#0000001f"
2132
+ }
2133
+ }
2134
+ };
2135
+ const SYMBOL_SIZE_PARAMETERS = ["size", "width", "height"]; // Основывается на http://cf.everpoint.ru/pages/viewpage.action?pageId=45024217 -> пункт "Библиотека символов"
2136
+
2137
+ const DEFAULT_LEGEND_SIZES = {
2138
+ circlePointSymbol: 8,
2139
+ squarePointSymbol: 12,
2140
+ imagePointSymbol: 24,
2141
+ maskedImagePointSymbol: 24,
2142
+ svgPointSymbol: 24
2143
+ };
2144
+
2145
+ const getNonClassifiedParamValue = (baseSymbol, parameter, classificationsParams, type) => {
2146
+ if (classificationsParams.includes(parameter)) {
2147
+ const defaultParameterValue = getParameterFromSymbol(DEFAULT_LEGEND_STYLES[type], parameter);
2148
+
2149
+ if (defaultParameterValue) {
2150
+ return defaultParameterValue;
2151
+ }
2152
+
2153
+ if (SYMBOL_SIZE_PARAMETERS.includes(parameter) && DEFAULT_LEGEND_SIZES[baseSymbol.type]) {
2154
+ return DEFAULT_LEGEND_SIZES[baseSymbol.type];
2155
+ }
2156
+ }
2157
+
2158
+ return getParameterValue(getParameterFromSymbol(baseSymbol, parameter));
2159
+ };
2160
+
2161
+ const updateSymbolParameter = (symbol, path, value) => symbolParameterWalker(() => value)(symbol, path);
2162
+
2163
+ const createPointSymbol = (baseSymbol, parameter, classificationsParams, parameterValue) => {
2164
+ return updateSymbolParameter(_extends({}, baseSymbol, {
2165
+ fillColor: getNonClassifiedParamValue(baseSymbol, "fillColor", classificationsParams, 0
2166
+ /* Point */
2167
+ ),
2168
+ strokeColor: getNonClassifiedParamValue(baseSymbol, "strokeColor", classificationsParams, 0
2169
+ /* Point */
2170
+ ),
2171
+ strokeWidth: getNonClassifiedParamValue(baseSymbol, "strokeWidth", classificationsParams, 0
2172
+ /* Point */
2173
+ ),
2174
+ size: getNonClassifiedParamValue(baseSymbol, "size", classificationsParams, 0
2175
+ /* Point */
2176
+ ),
2177
+ offset: [0, 0]
2178
+ }), parameter, parameterValue);
2179
+ };
2180
+
2181
+ function getDimensions(symbol, size) {
2182
+ const height = getParameterValue(symbol.height);
2183
+ const width = getParameterValue(symbol.width);
2184
+
2185
+ if (width === height) {
2186
+ return {
2187
+ width: size,
2188
+ height: size
2189
+ };
2190
+ }
2191
+
2192
+ const ratio = height / width;
2193
+
2194
+ if (width < height) {
2195
+ return {
2196
+ width: size,
2197
+ height: height + (size - width) * ratio
2198
+ };
2199
+ }
2200
+
2201
+ return {
2202
+ width: width + (size - height) * ratio,
2203
+ height: size
2204
+ };
2205
+ }
2206
+
2207
+ const createImagePointSymbol = (baseSymbol, parameter, classificationsParams, parameterValue) => {
2208
+ let symbol = _extends({}, baseSymbol);
2209
+
2210
+ if (isMaskedImageSymbol(symbol)) {
2211
+ symbol.maskedColor = getNonClassifiedParamValue(baseSymbol, "maskedColor", classificationsParams, 1
2212
+ /* ImagePoint */
2213
+ );
2214
+ }
2215
+
2216
+ if (parameter === "height" || parameter === "width") {
2217
+ const {
2218
+ height,
2219
+ width
2220
+ } = getDimensions(baseSymbol, parameterValue);
2221
+ symbol.height = height;
2222
+ symbol.width = width;
2223
+ } else {
2224
+ symbol.width = getNonClassifiedParamValue(baseSymbol, "width", classificationsParams, 1
2225
+ /* ImagePoint */
2226
+ );
2227
+ symbol.height = symbol.width;
2228
+ symbol = updateSymbolParameter(symbol, parameter, parameterValue);
2229
+ }
2230
+
2231
+ symbol.offset = [getParameterValue(symbol.height) / 2, getParameterValue(symbol.width) / 2];
2232
+ return symbol;
2233
+ };
2234
+
2235
+ const createLineSymbol = (baseSymbol, parameter, classificationsParams, parameterValue) => {
2236
+ return updateSymbolParameter(_extends({}, baseSymbol, {
2237
+ type: "polylineSymbol",
2238
+ stroke: {
2239
+ color: getNonClassifiedParamValue(baseSymbol, "stroke.color", classificationsParams, 2
2240
+ /* Line */
2241
+ ),
2242
+ width: getNonClassifiedParamValue(baseSymbol, "stroke.width", classificationsParams, 2
2243
+ /* Line */
2244
+ )
2245
+ }
2246
+ }), parameter, parameterValue);
2247
+ };
2248
+
2249
+ const createPolygonSymbol = (baseSymbol, parameter, classificationsParams, parameterValue) => {
2250
+ return updateSymbolParameter(_extends({}, baseSymbol, {
2251
+ fill: {
2252
+ color: getNonClassifiedParamValue(baseSymbol, "fill.color", classificationsParams, 3
2253
+ /* Polygon */
2254
+ ),
2255
+ hatchColor: getNonClassifiedParamValue(baseSymbol, "fill.hatchColor", classificationsParams, 3
2256
+ /* Polygon */
2257
+ )
2258
+ },
2259
+ stroke: {
2260
+ color: getNonClassifiedParamValue(baseSymbol, "stroke.color", classificationsParams, 3
2261
+ /* Polygon */
2262
+ ),
2263
+ width: getNonClassifiedParamValue(baseSymbol, "stroke.width", classificationsParams, 3
2264
+ /* Polygon */
2265
+ )
2266
+ }
2267
+ }), parameter, parameterValue);
2268
+ };
2269
+
2270
+ const createH3Symbol = (baseSymbol, parameter, classificationsParams, parameterValue) => {
2271
+ return updateSymbolParameter(_extends({}, baseSymbol, {
2272
+ fill: {
2273
+ color: getNonClassifiedParamValue(baseSymbol, "fill.color", classificationsParams, 3
2274
+ /* Polygon */
2275
+ )
2276
+ },
2277
+ stroke: {
2278
+ color: getNonClassifiedParamValue(baseSymbol, "stroke.color", classificationsParams, 3
2279
+ /* Polygon */
2280
+ ),
2281
+ width: getNonClassifiedParamValue(baseSymbol, "stroke.width", classificationsParams, 3
2282
+ /* Polygon */
2283
+ )
2284
+ }
2285
+ }), parameter, parameterValue);
2286
+ };
2287
+
2288
+ const createLegendSymbol = (parameterValue, parameter, classificationsParams, baseSymbol) => {
2289
+ if (isParameterValueSymbol(parameterValue)) {
2290
+ return parameterValue;
2291
+ }
2292
+ /* if (isClusterSymbol(baseSymbol)) {
2293
+ return createClusterSymbol(baseSymbol, parameter, classificationsParams, parameterValue);
2294
+ }*/
2295
+
2296
+
2297
+ if (isSizableSymbol(baseSymbol)) {
2298
+ return createPointSymbol(baseSymbol, parameter, classificationsParams, parameterValue);
2299
+ }
2300
+
2301
+ if (isTwoDimensionalSymbol(baseSymbol)) {
2302
+ return createImagePointSymbol(baseSymbol, parameter, classificationsParams, parameterValue);
2303
+ }
2304
+
2305
+ if (isPolylineSymbols(baseSymbol)) {
2306
+ return createLineSymbol(baseSymbol, parameter, classificationsParams, parameterValue);
2307
+ }
2308
+
2309
+ if (isPolygonSymbol(baseSymbol)) {
2310
+ return createPolygonSymbol(baseSymbol, parameter, classificationsParams, parameterValue);
2311
+ }
2312
+
2313
+ if (isH3GridSymbol(baseSymbol)) {
2314
+ return createH3Symbol(baseSymbol, parameter, classificationsParams, parameterValue);
2315
+ }
2316
+
2317
+ return null;
2318
+ };
2319
+ const getMinimizedLegendValues = (attributeType, param, index) => {
2320
+ return param.values.map(paramValue => {
2321
+ const parameterValue = getParameterValue(paramValue.value);
2322
+ const result = {
2323
+ parameterValue,
2324
+ attribute: {
2325
+ type: attributeType
2326
+ }
2327
+ };
2328
+
2329
+ if (isRangeCondition(paramValue.condition)) {
2330
+ const from = getValueFromConditionPart(paramValue.condition, 1);
2331
+ const to = getValueFromConditionPart(paramValue.condition, 2);
2332
+ result.from = from ? isNumeric(from) ? +from : formatDate(from) : null;
2333
+ result.to = to ? isNumeric(to) ? +to : formatDate(to) : null;
2334
+ result.title = createValueTitle(paramValue, attributeType, index);
2335
+ return result;
2336
+ }
2337
+
2338
+ result.uniqueValue = formatValue(paramValue.value);
2339
+ result.title = getTitleFromCondition(paramValue.condition);
2340
+ return result;
2341
+ });
2342
+ };
2343
+ const getMaximizedLegendValues = (attributeType, param, params, classified, symbol, sectionIndex, otherTitle) => {
2344
+ const other = {
2345
+ title: otherTitle,
2346
+ symbol: createLegendSymbol(classified.defaultValue, param, params, symbol)
2347
+ };
2348
+ const items = classified.values.map((paramValue, index) => {
2349
+ const result = {
2350
+ symbol: createLegendSymbol(classified.values[index].value, param, params, symbol)
2351
+ };
2352
+
2353
+ if (isRangeCondition(paramValue.condition)) {
2354
+ result.title = createValueTitle(paramValue, attributeType, sectionIndex);
2355
+ return result;
2356
+ }
2357
+
2358
+ result.title = getTitleFromCondition(paramValue.condition);
2359
+ return result;
2360
+ });
2361
+ return [...items, other];
2362
+ };
2363
+ const getClassified = layerInfo => {
2364
+ const classifyParams = SYMBOL_CLASSIFICATION[layerInfo.geometryType];
2365
+ return classifyParams == null ? void 0 : classifyParams.reduce((result, classified) => {
2366
+ var _layerInfo$style2;
2367
+
2368
+ const param = get((_layerInfo$style2 = layerInfo.style) == null ? void 0 : _layerInfo$style2.symbol, classified);
2369
+ return (param == null ? void 0 : param.type) === "byAttribute" ? _extends({}, result, {
2370
+ [classified]: param
2371
+ }) : result;
2372
+ }, {});
2373
+ };
2374
+ const getSymbolStrokeWidth = symbol => {
2375
+ var _symbol$background;
2376
+
2377
+ return isSvgPointSymbol(symbol) ? (_symbol$background = symbol.background) == null ? void 0 : _symbol$background.strokeWidth : symbol.strokeWidth;
2378
+ };
2379
+ const getParameterFromSymbol = (symbol, parameter) => {
2380
+ let parameterFromSymbol = {};
2381
+ symbolParameterWalker(parameterValue => {
2382
+ parameterFromSymbol = parameterValue;
2383
+ })(symbol, parameter);
2384
+ return parameterFromSymbol;
2385
+ };
2386
+ const getLegendSymbolSize = symbol => {
2387
+ let size = 0;
2388
+
2389
+ if (isSvgPointSymbol(symbol)) {
2390
+ size = getParameterValue(symbol.size);
2391
+ }
2392
+
2393
+ if (isH3GridSymbol(symbol)) {
2394
+ size = getParameterValue(symbol.cellSize);
2395
+ }
2396
+
2397
+ if (isTwoDimensionalSymbol(symbol)) {
2398
+ size = Math.max(getParameterValue(symbol.width), getParameterValue(symbol.height));
2399
+ }
2400
+
2401
+ if (isSizableSymbol(symbol)) {
2402
+ const strokeWidth = getSymbolStrokeWidth(symbol);
2403
+ size = getParameterValue(symbol.size) + (strokeWidth ? getParameterValue(strokeWidth) + EXTRA_BORDER_SIZE : 0);
2404
+ }
2405
+
2406
+ if (isPolylineSymbols(symbol)) {
2407
+ size = getParameterValue(getParameterFromSymbol(symbol, "stroke.width"));
2408
+ }
2409
+
2410
+ return Math.max(DEFAULT_LEGEND_SYMBOL_SIZE, size);
2411
+ };
2412
+ const serializeSvgPointSymbol = symbol => {
2413
+ var _symbol$figure, _symbol$background2, _symbol$background3, _symbol$background4, _symbol$background5;
2414
+
2415
+ if (!symbol) return null;
2416
+ const figureFillColor = ((_symbol$figure = symbol.figure) == null ? void 0 : _symbol$figure.fillColor) || null;
2417
+ const bgFillColor = ((_symbol$background2 = symbol.background) == null ? void 0 : _symbol$background2.fillColor) || null;
2418
+ return _extends({
2419
+ type: "svgPointSymbol",
2420
+ size: symbol.size,
2421
+ offset: symbol.offset,
2422
+ angle: symbol.angle
2423
+ }, bgFillColor ? {
2424
+ background: {
2425
+ id: "symbol-bg",
2426
+ fillColor: bgFillColor,
2427
+ strokeColor: ((_symbol$background3 = symbol.background) == null ? void 0 : _symbol$background3.strokeColor) || null,
2428
+ strokeWidth: ((_symbol$background4 = symbol.background) == null ? void 0 : _symbol$background4.strokeWidth) || null,
2429
+ type: ((_symbol$background5 = symbol.background) == null ? void 0 : _symbol$background5.type) || exports.SvgSymbolBg.Circle
2430
+ }
2431
+ } : {}, figureFillColor ? {
2432
+ figure: {
2433
+ id: "symbol-figure",
2434
+ fillColor: figureFillColor
2435
+ }
2436
+ } : {});
2437
+ };
2438
+ const SIZE_PARAMETERS = ["size", "height", "strokeWidth", "stroke.width"];
2439
+ const isSizeClassification = parameter => SIZE_PARAMETERS.includes(parameter);
2440
+ const getServiceConfiguration = layer => {
2441
+ const emptyServiceConfiguration = {
2442
+ name: ""
2443
+ };
2444
+ if (!isLayerService(layer) || !("configuration" in layer)) return emptyServiceConfiguration;
2445
+ return _extends({}, emptyServiceConfiguration, layer.configuration || {});
2446
+ };
2447
+ /** default attribute name which use for geometry info */
2448
+
2449
+ const GEOMETRY_ATTRIBUTE = "geometry";
2450
+ /** default attribute name which contains unique id info */
2451
+
2452
+ const DEFAULT_ID_ATTRIBUTE_NAME = "gid";
2453
+ const getAttributesConfiguration = layer => {
2454
+ const serviceConfiguration = getServiceConfiguration(layer);
2455
+ const emptyAttributesConfiguration = {
2456
+ geometryAttribute: GEOMETRY_ATTRIBUTE,
2457
+ idAttribute: DEFAULT_ID_ATTRIBUTE_NAME,
2458
+ tableName: ""
2459
+ };
2460
+
2461
+ if (!serviceConfiguration || !("attributesConfiguration" in serviceConfiguration)) {
2462
+ return emptyAttributesConfiguration;
2463
+ }
2464
+
2465
+ return _extends({}, emptyAttributesConfiguration, serviceConfiguration.attributesConfiguration || {});
2466
+ };
2467
+ const getLayerDefinition = layer => {
2468
+ const {
2469
+ geometryAttribute,
2470
+ idAttribute
2471
+ } = getAttributesConfiguration(layer);
2472
+ const emptyLayerDefinition = {
2473
+ attributes: {},
2474
+ geometryAttribute: geometryAttribute,
2475
+ idAttribute,
2476
+ geometryType: api.GeometryType.Unknown,
2477
+ titleAttribute: ""
2478
+ };
2479
+
2480
+ if (!isLayerService(layer) || !("layerDefinition" in layer)) {
2481
+ return emptyLayerDefinition;
2482
+ }
2483
+
2484
+ return _extends({}, emptyLayerDefinition, layer.layerDefinition || {}, {
2485
+ attributes: layer.layerDefinition.attributes || emptyLayerDefinition.attributes
2486
+ });
2487
+ };
2488
+ function getAttributeType(layer, attributeName) {
2489
+ const {
2490
+ attributes
2491
+ } = getLayerDefinition(layer);
2492
+ const attribute = attributes[attributeName];
2493
+ return attribute ? attribute.type : api.AttributeType.Unknown;
2494
+ }
2495
+
1918
2496
  const metersToPixels = (meters, _ref) => {
1919
2497
  let {
1920
2498
  painter,
@@ -1945,16 +2523,164 @@ const polygonCircleFromPoint = (center, diameter) => {
1945
2523
  return [coordinates];
1946
2524
  };
1947
2525
 
1948
- const isNumeric = number => !isNaN(parseFloat(number)) && isFinite(number);
2526
+ const DEFAULT_LEGEND_SYMBOL_SIZE = 26;
2527
+ const EXTRA_BORDER_SIZE = 4;
2528
+ const DEFAULT_SYMBOL_SIZE = 20;
2529
+ const DEFAULT_SYMBOL_WITH_BG_SIZE = 24;
2530
+ const DEFAULT_SYMBOL_FILL_COLOR = "rgba(0, 163, 245, 1)";
2531
+ const DEFAULT_SYMBOL_STROKE_COLOR = "rgb(255, 255, 255)";
2532
+ const DEFAULT_SYMBOL_OFFSET = [0, 0];
2533
+ const SYMBOL_CLASSIFICATION = {
2534
+ [api.GeometryType.Polygon]: ["fill.color", "stroke.color", "stroke.width"],
2535
+ [api.GeometryType.Polyline]: ["stroke.color", "stroke.width"],
2536
+ [api.GeometryType.Point]: ["angle", "background.fillColor", "background.strokeColor", "background.strokeWidth", "figure.fillColor", "size"]
2537
+ };
2538
+ const SYMBOL_LIMITS = {
2539
+ SIZE_MIN: 1,
2540
+ SIZE_MAX: 64,
2541
+ SIZE_STEP: 1,
2542
+ GRID_SIZE_MIN: 0.1,
2543
+ GRID_SIZE_MAX: 120,
2544
+ MIN_OBJECTS_COUNT: 2,
2545
+ MAX_OBJECTS_COUNT: 10000,
2546
+ MIN_CLUSTER_SIZE: 16,
2547
+ MAX_CLUSTER_SIZE: 120,
2548
+ STROKE_WIDTH_MIN: 0,
2549
+ STROKE_WIDTH_MAX: 32,
2550
+ STROKE_WIDTH_STEP: 0.25,
2551
+ ANGLE_MIN: -360,
2552
+ ANGLE_MAX: 360,
2553
+ ANGLE_STEP: 1,
2554
+ PREVIEW_SIZE_MAX: 32,
2555
+ PREVIEW_SIZE_MAX_WIDTH: 26
2556
+ };
2557
+ const DEFAULT_PARAMETER_INFO = {
2558
+ classifyAble: true,
2559
+ min: SYMBOL_LIMITS.STROKE_WIDTH_MIN,
2560
+ max: SYMBOL_LIMITS.STROKE_WIDTH_MAX,
2561
+ step: SYMBOL_LIMITS.STROKE_WIDTH_STEP,
2562
+ units: "px"
2563
+ /* Pixels */
2564
+ ,
2565
+ serialize: value => value,
2566
+ deserialize: value => value
2567
+ };
2568
+ const PARAMETER_INFOS = {
2569
+ size: /*#__PURE__*/_extends({}, DEFAULT_PARAMETER_INFO, {
2570
+ min: SYMBOL_LIMITS.SIZE_MIN,
2571
+ max: SYMBOL_LIMITS.SIZE_MAX,
2572
+ step: SYMBOL_LIMITS.SIZE_STEP,
2573
+ units: "px"
2574
+ /* Pixels */
2575
+
2576
+ })
2577
+ };
1949
2578
 
1950
- const isParameterType = (types, parameter) => {
1951
- var _parameter$toLowerCas;
2579
+ (function (SvgSymbolBg) {
2580
+ SvgSymbolBg["Rect"] = "rect";
2581
+ SvgSymbolBg["Circle"] = "circle";
2582
+ })(exports.SvgSymbolBg || (exports.SvgSymbolBg = {}));
1952
2583
 
1953
- return (typeof types === "string" ? parameter == null ? void 0 : (_parameter$toLowerCas = parameter.toLowerCase()) == null ? void 0 : _parameter$toLowerCas.includes(types.toLowerCase()) : types.some(type => {
1954
- var _parameter$toLowerCas2;
2584
+ const convertSvgToBase64 = svg => "data:image/svg+xml;base64," + window.btoa(svg);
2585
+ const createSvgGradient = (svg, values) => svg.gradient("linear", add => {
2586
+ values == null ? void 0 : values.forEach((_ref, index) => {
2587
+ let {
2588
+ value
2589
+ } = _ref;
2590
+ add.stop(index / ((values == null ? void 0 : values.length) - 1), value);
2591
+ });
2592
+ }).from(0, 0).to(1, 1); // eslint-disable-next-line max-lines-per-function
1955
2593
 
1956
- return parameter == null ? void 0 : (_parameter$toLowerCas2 = parameter.toLowerCase()) == null ? void 0 : _parameter$toLowerCas2.includes(type.toLowerCase());
1957
- })) || false;
2594
+ const manipulateSvgSymbol = (SVGContainer, symbol, svg, bg) => {
2595
+ var _$exec2;
2596
+
2597
+ if (!symbol) return SVGContainer;
2598
+ const symbolData = svg || symbol.data;
2599
+ if (!symbolData) return SVGContainer;
2600
+ SVGContainer.clear();
2601
+ const {
2602
+ size,
2603
+ angle,
2604
+ background,
2605
+ figure
2606
+ } = symbol;
2607
+ const isUploadedFile = !bg && !symbolData.includes("symbol-bg") && !symbolData.includes("symbol-figure");
2608
+ const innerSvg = symbolData.replace(/<\?xml[^?]*\?>|<svg[^>]*>|<\/svg>/g, "");
2609
+
2610
+ if (isUploadedFile) {
2611
+ var _$exec;
2612
+
2613
+ SVGContainer.svg(innerSvg);
2614
+ const uploadedViewBox = (_$exec = /viewBox="([^"]+)"/g.exec(symbolData)) == null ? void 0 : _$exec[1];
2615
+
2616
+ if (uploadedViewBox != null && uploadedViewBox[1]) {
2617
+ SVGContainer.viewbox(uploadedViewBox);
2618
+ }
2619
+
2620
+ SVGContainer.size(size);
2621
+ } else {
2622
+ const hasBg = bg || (innerSvg == null ? void 0 : innerSvg.includes("symbol-bg"));
2623
+ let defaultSize = hasBg ? DEFAULT_SYMBOL_WITH_BG_SIZE : DEFAULT_SYMBOL_SIZE;
2624
+ const currentSize = size || defaultSize;
2625
+ let viewBox = [0, 0, defaultSize, defaultSize];
2626
+ const strokeWidth = getParameterValue(background == null ? void 0 : background.strokeWidth) || (typeof (background == null ? void 0 : background.strokeColor) === "object" ? 1 : 0);
2627
+
2628
+ if (strokeWidth) {
2629
+ defaultSize += strokeWidth;
2630
+ viewBox = [-strokeWidth / 2, -strokeWidth / 2, defaultSize, defaultSize];
2631
+ }
2632
+
2633
+ if (hasBg) {
2634
+ SVGContainer.size(currentSize + "px", currentSize + "px").viewbox(viewBox.join(" "));
2635
+ const currentBg = bg || (background == null ? void 0 : background.type);
2636
+
2637
+ if (currentBg) {
2638
+ const strokeColor = getParameterValue(background == null ? void 0 : background.strokeColor);
2639
+ const fillColor = getParameterValue(background == null ? void 0 : background.fillColor);
2640
+ SVGContainer.svg(currentBg === exports.SvgSymbolBg.Circle ? "<circle\n id=\"symbol-bg\"\n cx=\"" + DEFAULT_SYMBOL_WITH_BG_SIZE / 2 + "\"\n cy=\"" + DEFAULT_SYMBOL_WITH_BG_SIZE / 2 + "\"\n r=\"" + DEFAULT_SYMBOL_WITH_BG_SIZE / 2 + "\"\n fill=\"" + (fillColor || DEFAULT_SYMBOL_FILL_COLOR) + "\"\n stroke=\"" + (strokeColor || DEFAULT_SYMBOL_STROKE_COLOR) + "\"\n stroke-width=\"" + strokeWidth + "\"\n />" : "<rect\n id=\"symbol-bg\"\n width=\"" + DEFAULT_SYMBOL_WITH_BG_SIZE + "\"\n height=\"" + DEFAULT_SYMBOL_WITH_BG_SIZE + "\"\n rx=\"4\"\n fill=\"" + (fillColor || DEFAULT_SYMBOL_FILL_COLOR) + "\"\n stroke=\"" + (strokeColor || DEFAULT_SYMBOL_STROKE_COLOR) + "\"\n stroke-width=\"" + strokeWidth + "\"\n />");
2641
+ SVGContainer.svg(innerSvg);
2642
+ SVGContainer.find("#symbol-bg:not(:first-child)").each(item => item.remove());
2643
+ SVGContainer.find(":not(#symbol-bg)").each(item => item.center(DEFAULT_SYMBOL_WITH_BG_SIZE / 2, DEFAULT_SYMBOL_WITH_BG_SIZE / 2).fill("white")); // eslint-disable-next-line max-depth
2644
+
2645
+ if (isParameterByAttribute(background == null ? void 0 : background.fillColor)) {
2646
+ var _background$fillColor, _SVGContainer$find$;
2647
+
2648
+ const gradient = createSvgGradient(SVGContainer, background == null ? void 0 : (_background$fillColor = background.fillColor) == null ? void 0 : _background$fillColor.values);
2649
+ (_SVGContainer$find$ = SVGContainer.find("#symbol-bg")[0]) == null ? void 0 : _SVGContainer$find$.fill(gradient);
2650
+ }
2651
+ } else {
2652
+ SVGContainer.svg(innerSvg);
2653
+ }
2654
+ } else {
2655
+ const fillColor = getParameterValue(figure == null ? void 0 : figure.fillColor);
2656
+ SVGContainer.size(currentSize + "px", currentSize + "px").viewbox(viewBox.join(" "));
2657
+ SVGContainer.svg(innerSvg);
2658
+ SVGContainer.find("#symbol-figure").each(item => {
2659
+ item.center(DEFAULT_SYMBOL_SIZE / 2, DEFAULT_SYMBOL_SIZE / 2).fill(fillColor || DEFAULT_SYMBOL_FILL_COLOR);
2660
+ });
2661
+ }
2662
+ }
2663
+
2664
+ const rootTransform = (_$exec2 = /<svg[^>]*transform="([^"]+)"/g.exec(symbolData)) == null ? void 0 : _$exec2[1];
2665
+
2666
+ if (rootTransform) {
2667
+ const transformParts = rootTransform.slice(0, -1).split("(");
2668
+ SVGContainer.transform({
2669
+ [transformParts[0]]: transformParts[1].split(",")
2670
+ });
2671
+ }
2672
+
2673
+ const rotatedAngle = SVGContainer.transform("rotate");
2674
+
2675
+ if (rotatedAngle) {
2676
+ SVGContainer.rotate(-rotatedAngle, 0, 0);
2677
+ }
2678
+
2679
+ if (angle !== undefined) {
2680
+ SVGContainer.rotate(angle * (180 / Math.PI), 0, 0);
2681
+ }
2682
+
2683
+ return SVGContainer;
1958
2684
  };
1959
2685
 
1960
2686
  let CircleLineMiterRender = /*#__PURE__*/function (_LineMiterRender) {
@@ -3381,7 +4107,7 @@ function createStyleLegend(style, config) {
3381
4107
  };
3382
4108
  }
3383
4109
 
3384
- function createValueTitle(value, index) {
4110
+ function createValueTitle$1(value, index) {
3385
4111
  if (value.title) return value.title;
3386
4112
  if (isRangeClass(value)) return printRangeClass(value, index);
3387
4113
  if (isUniqueClass(value)) return value.uniqueValue;
@@ -3450,7 +4176,7 @@ const useLegend = (style, config) => React.useMemo(() => {
3450
4176
  }, [style, config]);
3451
4177
 
3452
4178
  const DEFAULT_LEGEND_CONFIG = {
3453
- renderTitle: createValueTitle
4179
+ renderTitle: createValueTitle$1
3454
4180
  };
3455
4181
  const useLayerLegend = (layer, config) => {
3456
4182
  const {
@@ -3499,11 +4225,11 @@ const useLegendValueSymbol = _ref => {
3499
4225
  });
3500
4226
  };
3501
4227
 
3502
- const DEFAULT_SYMBOL_SIZE = 26;
4228
+ const DEFAULT_SYMBOL_SIZE$1 = 26;
3503
4229
  function useSymbol(_ref, canvasRef) {
3504
4230
  let {
3505
4231
  symbol,
3506
- size = DEFAULT_SYMBOL_SIZE,
4232
+ size = DEFAULT_SYMBOL_SIZE$1,
3507
4233
  render = getSymbolRenders,
3508
4234
  maxWidth
3509
4235
  } = _ref;
@@ -4772,189 +5498,14 @@ const EvergisSelect = _ref => {
4772
5498
  };
4773
5499
 
4774
5500
  var _templateObject$2, _templateObject2$2, _templateObject3$1, _templateObject4$1, _templateObject5$1;
4775
- const LegendContainer = /*#__PURE__*/styled__default.div(_templateObject$2 || (_templateObject$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: white;\n"])));
4776
- const LegendSectionContainer = /*#__PURE__*/styled__default.div(_templateObject2$2 || (_templateObject2$2 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4777
- const LegendSymbolTitle = /*#__PURE__*/styled__default.p(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])));
4778
- const LegendValueContainer = /*#__PURE__*/styled__default.div(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n font-size: 0.75rem;\n\n ", " {\n padding-left: 0.5rem;\n }\n"])), LegendSymbolTitle);
4779
- const LegendSectionHeader = /*#__PURE__*/styled__default.div(_templateObject5$1 || (_templateObject5$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n"])));
4780
5501
 
4781
- const LegendSection = _ref => {
4782
- let {
4783
- item,
4784
- renderLegendTitle,
4785
- hideTitle,
4786
- children
4787
- } = _ref;
4788
- return React__default.createElement(LegendSectionContainer, null, !hideTitle && React__default.createElement(LegendSectionHeader, null, renderLegendTitle ? renderLegendTitle(item) : item.title), item.values.map(children));
4789
- };
5502
+ const topLeft = distance => styled.css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteralLoose(["\n top: ", ";\n left: ", ";\n"])), distance, distance);
4790
5503
 
4791
- var _templateObject$3, _templateObject2$3;
4792
- const InputContainer = /*#__PURE__*/styled__default.div(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n border-radius: 0.125rem;\n box-sizing: border-box;\n border: 0.0625rem solid rgba(48, 69, 79, 0.12);\n margin-bottom: 0.5rem;\n \n i {\n color: rgba(48, 69, 79, 0.54);\n padding: 0.25rem;\n\n &:hover {\n cursor: pointer;\n color: rgba(48, 69, 79, 0.87);\n }\n }\n"])));
4793
- const InputField = /*#__PURE__*/styled__default.input(_templateObject2$3 || (_templateObject2$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n border: none;\n outline: none;\n font-size: 1rem;\n line-height: 1.1875rem;\n padding: 0 0.5rem;\n background-color: transparent;\n color: rgba(48, 69, 79, 0.87);\n"])));
5504
+ const topRight = distance => styled.css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteralLoose(["\n top: ", ";\n right: ", ";\n"])), distance, distance);
4794
5505
 
4795
- const SearchInput = _ref => {
4796
- let {
4797
- onChange
4798
- } = _ref;
4799
- return React__default.createElement(InputContainer, null, React__default.createElement(icons.EverCloudSearchIcon, null), React__default.createElement(InputField, {
4800
- onChange: onChange
4801
- }));
4802
- };
4803
-
4804
- const LegendSymbol = _ref => {
4805
- let {
4806
- parameter,
4807
- parameterValue,
4808
- children
4809
- } = _ref;
4810
- const symbol = useLegendValueSymbol({
4811
- parameterValue,
4812
- parameter
4813
- });
4814
-
4815
- if (!symbol) {
4816
- return null;
4817
- }
4818
-
4819
- return React__default.createElement(React__default.Fragment, null, children(symbol));
4820
- };
4821
-
4822
- const LegendValue = _ref => {
4823
- let {
4824
- value,
4825
- parameter,
4826
- maxSize
4827
- } = _ref;
4828
- return React__default.createElement(LegendValueContainer, null, React__default.createElement(LegendSymbol, {
4829
- parameter: parameter,
4830
- parameterValue: value.parameterValue
4831
- }, symbol => React__default.createElement(Symbol, {
4832
- render: getLegendSymbolRenders,
4833
- symbol: symbol,
4834
- size: maxSize
4835
- })), React__default.createElement(LegendSymbolTitle, null, value.title));
4836
- };
4837
-
4838
- const MAX_SIZE$1 = 26;
4839
-
4840
- const getNumberParam = (parameterValue, param) => {
4841
- return typeof parameterValue === 'object' && param in parameterValue && typeof parameterValue[param] === 'number' ? parameterValue[param] : null;
4842
- };
5506
+ const bottomLeft = distance => styled.css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteralLoose(["\n bottom: ", ";\n left: ", ";\n"])), distance, distance);
4843
5507
 
4844
- const getSymbolSize = _ref => {
4845
- let {
4846
- parameterValue,
4847
- maxSize
4848
- } = _ref;
4849
- const size = getNumberParam(parameterValue, 'size');
4850
- const strokeWidth = getNumberParam(parameterValue, 'strokeWidth');
4851
- const width = getNumberParam(parameterValue, 'width');
4852
- const height = getNumberParam(parameterValue, 'height');
4853
-
4854
- if (width && height) {
4855
- return Math.max(width, height);
4856
- } else if (width) {
4857
- return width;
4858
- } else if (height) {
4859
- return height;
4860
- } else if (size) {
4861
- return size + (strokeWidth || 0);
4862
- } else if (typeof maxSize === 'number') {
4863
- return maxSize;
4864
- } else {
4865
- return MAX_SIZE$1;
4866
- }
4867
- };
4868
-
4869
- const Legend = _ref => {
4870
- let {
4871
- layer,
4872
- children,
4873
- className,
4874
- config,
4875
- maxSize
4876
- } = _ref;
4877
- const legend = useLayerLegend(layer, config);
4878
- const {
4879
- renderCustomLegend,
4880
- searchLayer,
4881
- searchable
4882
- } = config || {};
4883
- const {
4884
- symbol
4885
- } = legend || {};
4886
-
4887
- if (!legend && !renderCustomLegend) {
4888
- return null;
4889
- }
4890
-
4891
- return React__default.createElement(LegendProvider, {
4892
- symbol: symbol
4893
- }, React__default.createElement(LegendContainer, {
4894
- className: className
4895
- }, searchable && searchLayer && React__default.createElement(SearchInput, {
4896
- onChange: searchLayer
4897
- }), renderCustomLegend && layer ? renderCustomLegend(layer) : children ? legend && children(legend) : legend && legend.items.map((legendItem, index) => React__default.createElement(LegendSection, {
4898
- key: legendItem.attribute + "-" + legendItem.parameter,
4899
- item: legendItem,
4900
- hideTitle: (layer == null ? void 0 : layer.alias) === legendItem.title,
4901
- renderLegendTitle: config && config.renderLegendTitle
4902
- }, legendValue => React__default.createElement(LegendValue, {
4903
- key: legendValue.title + "-" + index,
4904
- value: legendValue,
4905
- parameter: legendItem.parameter,
4906
- maxSize: getSymbolSize({
4907
- parameterValue: legendValue.parameterValue,
4908
- maxSize
4909
- })
4910
- })))));
4911
- };
4912
-
4913
- const Map = _ref => {
4914
- let {
4915
- className,
4916
- position,
4917
- resolution,
4918
- minScale,
4919
- maxScale,
4920
- children,
4921
- onBboxChange,
4922
- style
4923
- } = _ref;
4924
- const wrapperRef = useMapWrapper();
4925
- const {
4926
- map
4927
- } = useMapContext();
4928
- const handleBboxChange = React.useCallback(state => {
4929
- if (onBboxChange && shouldUpdateMapState(map, {
4930
- position,
4931
- resolution
4932
- })) {
4933
- onBboxChange(state);
4934
- }
4935
- }, [map, onBboxChange, position, resolution]);
4936
- useUpdateMapView({
4937
- position,
4938
- resolution
4939
- });
4940
- useMaxMinScale(minScale, maxScale, position, resolution);
4941
- useMapBboxChange(handleBboxChange);
4942
- return React__default.createElement("div", {
4943
- className: className,
4944
- ref: wrapperRef,
4945
- style: style
4946
- }, children);
4947
- };
4948
-
4949
- var _templateObject$4, _templateObject2$4, _templateObject3$2, _templateObject4$2, _templateObject5$2;
4950
-
4951
- const topLeft = distance => styled.css(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteralLoose(["\n top: ", ";\n left: ", ";\n"])), distance, distance);
4952
-
4953
- const topRight = distance => styled.css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n top: ", ";\n right: ", ";\n"])), distance, distance);
4954
-
4955
- const bottomLeft = distance => styled.css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteralLoose(["\n bottom: ", ";\n left: ", ";\n"])), distance, distance);
4956
-
4957
- const bottomRight = distance => styled.css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteralLoose(["\n bottom: ", ";\n right: ", ";\n"])), distance, distance);
5508
+ const bottomRight = distance => styled.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteralLoose(["\n bottom: ", ";\n right: ", ";\n"])), distance, distance);
4958
5509
 
4959
5510
  const placementMixin = function placementMixin(placement, distance) {
4960
5511
  if (placement === void 0) {
@@ -4965,19 +5516,19 @@ const placementMixin = function placementMixin(placement, distance) {
4965
5516
  distance = '1rem';
4966
5517
  }
4967
5518
 
4968
- return styled.css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n ", "\n ", "\n ", "\n ", "\n"])), placement === 'top-left' && topLeft(distance), placement === 'top-right' && topRight(distance), placement === 'bottom-left' && bottomLeft(distance), placement === 'bottom-right' && bottomRight(distance));
5519
+ return styled.css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteralLoose(["\n ", "\n ", "\n ", "\n ", "\n"])), placement === 'top-left' && topLeft(distance), placement === 'top-right' && topRight(distance), placement === 'bottom-left' && bottomLeft(distance), placement === 'bottom-right' && bottomRight(distance));
4969
5520
  };
4970
5521
 
4971
- var _templateObject$5, _templateObject2$5, _templateObject3$3, _templateObject4$3, _templateObject5$3, _templateObject6$1, _templateObject7$1, _templateObject8$1;
4972
- const mapControlBtnMixin = /*#__PURE__*/styled.css(_templateObject$5 || (_templateObject$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n"])));
4973
- const ZoomInBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject2$5 || (_templateObject2$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // ZoomInBtn.defaultProps = { kind: "plus" };
5522
+ var _templateObject$3, _templateObject2$3, _templateObject3$2, _templateObject4$2, _templateObject5$2, _templateObject6$1, _templateObject7$1, _templateObject8$1;
5523
+ const mapControlBtnMixin = /*#__PURE__*/styled.css(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n"])));
5524
+ const ZoomInBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject2$3 || (_templateObject2$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // ZoomInBtn.defaultProps = { kind: "plus" };
4974
5525
 
4975
- const ZoomOutBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject3$3 || (_templateObject3$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // ZoomOutBtn.defaultProps = { kind: "minus" };
5526
+ const ZoomOutBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // ZoomOutBtn.defaultProps = { kind: "minus" };
4976
5527
 
4977
- const SearchBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject4$3 || (_templateObject4$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // SearchBtn.defaultProps = { kind: "search" };
5528
+ const SearchBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject4$2 || (_templateObject4$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // SearchBtn.defaultProps = { kind: "search" };
4978
5529
  // TODO not exists in fonts
4979
5530
 
4980
- const FullscreenBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject5$3 || (_templateObject5$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // FullscreenBtn.defaultProps = { kind: "maximize" };
5531
+ const FullscreenBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject5$2 || (_templateObject5$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // FullscreenBtn.defaultProps = { kind: "maximize" };
4981
5532
 
4982
5533
  const MeasureBtn = /*#__PURE__*/styled__default(icons.Icon)(_templateObject6$1 || (_templateObject6$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n"])), mapControlBtnMixin); // MeasureBtn.defaultProps = { kind: "measure_length" };
4983
5534
 
@@ -5027,21 +5578,66 @@ const Fullscreen = () => {
5027
5578
  }));
5028
5579
  };
5029
5580
 
5030
- var _templateObject$6, _templateObject2$6, _templateObject3$4, _templateObject4$4, _templateObject5$4, _templateObject6$2, _templateObject7$2, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11$1, _templateObject12$1, _templateObject13$1, _templateObject14$1, _templateObject15$1, _templateObject16$1, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27;
5031
- const MapLegendControl = /*#__PURE__*/styled__default(MapControl)(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n cursor: default;\n"])));
5032
- const MapLegendContainer = /*#__PURE__*/styled__default.div(_templateObject2$6 || (_templateObject2$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n padding-bottom: 1rem;\n box-sizing: border-box;\n\n canvas {\n height: 1.625rem;\n width: 1.625rem;\n }\n"])));
5033
- const MapLegendHeader = /*#__PURE__*/styled__default(LegendSectionHeader)(_templateObject3$4 || (_templateObject3$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n max-width: 15rem;\n margin-bottom: 0.25rem;\n font-weight: 500;\n"])));
5034
- const MapLegendDescriptionContainer = /*#__PURE__*/styled__default.div(_templateObject4$4 || (_templateObject4$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 0.5rem;\n font-weight: 400;\n font-size: 0.625rem;\n color: rgba(255, 255, 255, 0.65);\n"])));
5035
- const MinimizedLegendContainer = /*#__PURE__*/styled__default.div(_templateObject5$4 || (_templateObject5$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: calc(100% - 1.5rem);\n padding-right: 1.5rem;\n"])));
5036
- const MapLegendSectionContainer = /*#__PURE__*/styled__default.div(_templateObject6$2 || (_templateObject6$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n :not(:last-child) {\n margin-bottom: 1rem;\n }\n"])));
5037
- const MapLegendValueDescr = /*#__PURE__*/styled__default.div(_templateObject7$2 || (_templateObject7$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n min-height: 1rem;\n margin-bottom: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n"])));
5581
+ var _templateObject$4, _templateObject2$4, _templateObject3$3, _templateObject4$3, _templateObject5$3, _templateObject6$2, _templateObject7$2, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11$1, _templateObject12$1, _templateObject13$1, _templateObject14$1, _templateObject15$1, _templateObject16$1, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33;
5582
+ const ItemText = /*#__PURE__*/styled__default.div(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n max-width: calc(100% - 2rem);\n font: ", ";\n\n ", " {\n margin: 0;\n }\n"])), _ref => {
5583
+ let {
5584
+ theme: {
5585
+ fonts
5586
+ }
5587
+ } = _ref;
5588
+ return fonts.description;
5589
+ }, ui.Description);
5590
+ const ItemSeparator = /*#__PURE__*/styled__default.div(_templateObject2$4 || (_templateObject2$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n :after {\n content: \"-\";\n margin: 0 0.5rem;\n font-size: 0.75rem;\n }\n"])));
5591
+ const SymbolContainer = /*#__PURE__*/styled__default("span")(_templateObject3$3 || (_templateObject3$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n min-width: 16px;\n margin-right: 0.5rem;\n"])));
5592
+ const ClassifiedItem = /*#__PURE__*/styled__default(ui.Flex)(_templateObject4$3 || (_templateObject4$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n align-items: center;\n /* cursor: ", ";\n pointer-events: ", ";*/\n\n :not(:last-of-type) {\n margin-bottom: 0.25rem;\n }\n\n ", ", ", " {\n transition: opacity ", ";\n }\n\n ", " {\n opacity: ", ";\n }\n\n ", " {\n opacity: ", ";\n }\n\n /* :hover {\n ", ", ", " {\n opacity: 1;\n }\n }*/\n"])), _ref2 => {
5593
+ let {
5594
+ isClusterFillColor
5595
+ } = _ref2;
5596
+ return isClusterFillColor ? "default" : "pointer";
5597
+ }, _ref3 => {
5598
+ let {
5599
+ isClusterFillColor
5600
+ } = _ref3;
5601
+ return isClusterFillColor ? "none" : "auto";
5602
+ }, ItemText, SymbolContainer, ui.transition.hover, ItemText, _ref4 => {
5603
+ let {
5604
+ isHidden
5605
+ } = _ref4;
5606
+ return isHidden ? 0.28 : 0.65;
5607
+ }, SymbolContainer, _ref5 => {
5608
+ let {
5609
+ isHidden
5610
+ } = _ref5;
5611
+ return isHidden ? 0.28 : 1;
5612
+ }, ItemText, SymbolContainer);
5613
+ const SymbolButtonWithClick = /*#__PURE__*/styled.css(_templateObject5$3 || (_templateObject5$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 3.875rem;\n height: 3.875rem;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n"])), _ref6 => {
5614
+ let {
5615
+ theme: {
5616
+ palette
5617
+ }
5618
+ } = _ref6;
5619
+ return palette.elementDeep;
5620
+ });
5621
+ const SymbolButton = /*#__PURE__*/styled__default.span(_templateObject6$2 || (_templateObject6$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color ", ";\n ", ";\n\n svg {\n max-width: 4rem;\n max-height: 4rem;\n }\n"])), ui.transition.hover, _ref7 => {
5622
+ let {
5623
+ onClick
5624
+ } = _ref7;
5625
+ return !!onClick && SymbolButtonWithClick;
5626
+ });
5627
+ const MapLegendControl = /*#__PURE__*/styled__default(MapControl)(_templateObject7$2 || (_templateObject7$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n cursor: default;\n"])));
5628
+ const MapLegendContainer = /*#__PURE__*/styled__default.div(_templateObject8$2 || (_templateObject8$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n padding-bottom: 1rem;\n box-sizing: border-box;\n\n canvas {\n height: 1.625rem;\n width: 1.625rem;\n }\n"])));
5629
+ const MapLegendHeader = /*#__PURE__*/styled__default.div(_templateObject9$1 || (_templateObject9$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n max-width: 15rem;\n margin-bottom: 0.25rem;\n font-weight: 500;\n"])));
5630
+ const MapLegendDescriptionContainer = /*#__PURE__*/styled__default.div(_templateObject10$1 || (_templateObject10$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 0.5rem;\n font-weight: 400;\n font-size: 0.625rem;\n color: rgba(255, 255, 255, 0.65);\n"])));
5631
+ const MinimizedLegendContainer = /*#__PURE__*/styled__default.div(_templateObject11$1 || (_templateObject11$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: calc(100% - 1.5rem);\n padding-right: 1.5rem;\n"])));
5632
+ const MapLegendSectionContainer = /*#__PURE__*/styled__default.div(_templateObject12$1 || (_templateObject12$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n \n :not(:last-child) {\n margin-bottom: 1rem;\n }\n"])));
5633
+ const MapLegendValueDescr = /*#__PURE__*/styled__default.div(_templateObject13$1 || (_templateObject13$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n min-height: 1rem;\n margin-bottom: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1rem;\n"])));
5038
5634
 
5039
5635
  const SizeLegendItemMixin = function SizeLegendItemMixin(value) {
5040
5636
  if (value === void 0) {
5041
5637
  value = 0;
5042
5638
  }
5043
5639
 
5044
- return styled.css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 50%;\n flex: none;\n height: inherit;\n width: inherit;\n margin: 0 auto;\n background: none;\n border: none;\n\n :after {\n content: \"\";\n display: flex;\n border: 1px rgba(48, 69, 79, 0.28) solid;\n border-radius: 50%;\n margin: 0 0 0 -", "px;\n width: ", "px;\n height: ", "px;\n }\n"])), value / 2, value, value);
5640
+ return styled.css(_templateObject14$1 || (_templateObject14$1 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 50%;\n flex: none;\n height: inherit;\n width: inherit;\n margin: 0 auto;\n background: none;\n border: none;\n\n :after {\n content: \"\";\n display: flex;\n border: 1px rgba(48, 69, 79, 0.28) solid;\n border-radius: 50%;\n margin: 0 0 0 -", "px;\n width: ", "px;\n height: ", "px;\n }\n"])), value / 2, value, value);
5045
5641
  };
5046
5642
 
5047
5643
  const StrokeWidthLegendItemMixin = function StrokeWidthLegendItemMixin(value) {
@@ -5049,133 +5645,79 @@ const StrokeWidthLegendItemMixin = function StrokeWidthLegendItemMixin(value) {
5049
5645
  value = 0;
5050
5646
  }
5051
5647
 
5052
- return styled.css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteralLoose(["\n position: relative;\n background: none;\n border: none;\n display: flex;\n align-items: center;\n flex: none;\n width: calc(100% - 2rem);\n height: ", "px;\n margin: 0 0 0.25rem 0;\n padding-left: 2rem;\n font-size: 0.75rem;\n \n :first-child, :last-child {\n height: auto;\n }\n \n :after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 0;\n width: 1.5rem;\n height: ", "px;\n margin-top: -", "px;\n background: rgb(224, 224, 224);\n }\n"])), value, value, Math.round(value / 2));
5648
+ return styled.css(_templateObject15$1 || (_templateObject15$1 = _taggedTemplateLiteralLoose(["\n position: relative;\n background: none;\n border: none;\n display: flex;\n align-items: center;\n flex: none;\n width: calc(100% - 2rem);\n height: ", "px;\n margin: 0 0 0.25rem 0;\n padding-left: 2rem;\n font-size: 0.75rem;\n \n :first-child, :last-child {\n height: auto;\n }\n \n :after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 0;\n width: 1.5rem;\n height: ", "px;\n margin-top: -", "px;\n background: rgb(224, 224, 224);\n }\n"])), value, value, Math.round(value / 2));
5053
5649
  };
5054
5650
 
5055
- const StrokeColorLegendItemMixin = /*#__PURE__*/styled.css(_templateObject10$1 || (_templateObject10$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-right: 0.5rem;\n width: 1.5rem;\n"])));
5056
- const MapLegendItem = /*#__PURE__*/styled__default.div(_templateObject11$1 || (_templateObject11$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n flex: 1;\n height: ", "rem;\n background: ", ";\n border: 1px rgba(48, 69, 79, 0.1) solid;\n margin-right: -1px;\n color: rgba(48, 69, 79, 0.65);\n opacity: ", ";\n\n ", "\n\n ", "\n"])), _ref => {
5651
+ const StrokeColorLegendItemMixin = /*#__PURE__*/styled.css(_templateObject16$1 || (_templateObject16$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-right: 0.5rem;\n width: 1.5rem;\n"])));
5652
+ const MapLegendItem = /*#__PURE__*/styled__default.div(_templateObject17 || (_templateObject17 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n flex: 1;\n height: ", "rem;\n background: ", ";\n border: 1px rgba(48, 69, 79, 0.1) solid;\n margin-right: -1px;\n color: rgba(48, 69, 79, 0.65);\n opacity: ", ";\n\n ", "\n\n ", "\n"])), _ref8 => {
5057
5653
  let {
5058
5654
  parameter
5059
- } = _ref;
5655
+ } = _ref8;
5060
5656
  return isParameterType(["strokeColor", "stroke.color"], parameter) ? 0.25 : 1;
5061
- }, _ref2 => {
5657
+ }, _ref9 => {
5062
5658
  let {
5063
5659
  value
5064
- } = _ref2;
5660
+ } = _ref9;
5065
5661
  return typeof value === "number" ? "none" : value;
5066
- }, _ref3 => {
5662
+ }, _ref10 => {
5067
5663
  let {
5068
5664
  isHidden
5069
- } = _ref3;
5665
+ } = _ref10;
5070
5666
  return isHidden ? 0.28 : 1;
5071
- }, _ref4 => {
5667
+ }, _ref11 => {
5072
5668
  let {
5073
5669
  value,
5074
5670
  parameter
5075
- } = _ref4;
5671
+ } = _ref11;
5076
5672
  return isParameterType("size", parameter) && SizeLegendItemMixin(value);
5077
- }, _ref5 => {
5673
+ }, _ref12 => {
5078
5674
  let {
5079
5675
  value,
5080
5676
  parameter
5081
- } = _ref5;
5677
+ } = _ref12;
5082
5678
  return isParameterType(["strokeWidth", "stroke.width"], parameter) && StrokeWidthLegendItemMixin(value);
5083
5679
  });
5084
- const MapLegendOther = /*#__PURE__*/styled__default(MapLegendItem)(_templateObject12$1 || (_templateObject12$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n flex: none;\n position: relative;\n width: 1rem;\n margin-left: 0.25rem;\n border-radius: 0.125rem;\n"])));
5085
- const SizeLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject13$1 || (_templateObject13$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 2rem;\n height: 2rem;\n margin: 0 auto;\n\n ", " {\n width: auto;\n margin-left: 0;\n }\n"])), MapLegendOther);
5086
- const StrokeWidthLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject14$1 || (_templateObject14$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n flex-direction: column;\n width: auto;\n\n ", " {\n width: calc(100% - 2rem);\n margin-left: 0;\n }\n"])), MapLegendOther);
5087
- const SizeMinimizedLegend = /*#__PURE__*/styled__default.div(_templateObject15$1 || (_templateObject15$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n margin: 0.5rem 0 0.25rem;\n"])));
5088
- const SizeMinimizedLegendSymbol = /*#__PURE__*/styled__default.div(_templateObject16$1 || (_templateObject16$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 4rem;\n margin-right: 0.75rem;\n"])));
5089
- const SizeMinimizedLegendLabel = /*#__PURE__*/styled__default.div(_templateObject17 || (_templateObject17 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.75rem;\n"])));
5090
- const SizeMinimizedLegendDown = /*#__PURE__*/styled__default.div(_templateObject18 || (_templateObject18 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: rgba(48, 69, 79, 0.65);\n"])));
5091
- const SizeMinimizedLegendUp = /*#__PURE__*/styled__default(SizeMinimizedLegendDown)(_templateObject19 || (_templateObject19 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
5092
- const SingleSizeLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject20 || (_templateObject20 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 4rem;\n margin-right: 0.75rem;\n\n ", ":after {\n margin: 0 auto;\n }\n"])), MapLegendItem);
5093
- const SingleLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject21 || (_templateObject21 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n justify-content: center;\n width: 2rem;\n height: auto;\n margin: 0;\n ", "\n \n ", " {\n position: relative;\n top: 0;\n left: 0;\n display: flex;\n align-content: center;\n justify-content: center;\n margin: 0;\n height: auto;\n width: auto;\n\n ", "\n }\n"])), _ref6 => {
5680
+ const MapLegendOther = /*#__PURE__*/styled__default(MapLegendItem)(_templateObject18 || (_templateObject18 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n flex: none;\n position: relative;\n width: 1rem;\n margin-left: 0.25rem;\n border-radius: 0.125rem;\n"])));
5681
+ const SizeLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject19 || (_templateObject19 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 2rem;\n height: 2rem;\n margin: 0 auto;\n\n ", " {\n width: auto;\n margin-left: 0;\n }\n"])), MapLegendOther);
5682
+ const StrokeWidthLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject20 || (_templateObject20 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n flex-direction: column;\n width: auto;\n\n ", " {\n width: calc(100% - 2rem);\n margin-left: 0;\n }\n"])), MapLegendOther);
5683
+ const SizeMinimizedLegend = /*#__PURE__*/styled__default.div(_templateObject21 || (_templateObject21 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n margin: 0.5rem 0 0.25rem;\n"])));
5684
+ const SizeMinimizedLegendSymbol = /*#__PURE__*/styled__default.div(_templateObject22 || (_templateObject22 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 4rem;\n margin-right: 0.75rem;\n"])));
5685
+ const SizeMinimizedLegendLabel = /*#__PURE__*/styled__default.div(_templateObject23 || (_templateObject23 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: 0.75rem;\n"])));
5686
+ const SizeMinimizedLegendDown = /*#__PURE__*/styled__default.div(_templateObject24 || (_templateObject24 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: rgba(48, 69, 79, 0.65);\n"])));
5687
+ const SizeMinimizedLegendUp = /*#__PURE__*/styled__default(SizeMinimizedLegendDown)(_templateObject25 || (_templateObject25 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
5688
+ const SingleSizeLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject26 || (_templateObject26 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 4rem;\n margin-right: 0.75rem;\n\n ", ":after {\n margin: 0 auto;\n }\n"])), MapLegendItem);
5689
+ const SingleLegendItemsMixin = /*#__PURE__*/styled.css(_templateObject27 || (_templateObject27 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n justify-content: center;\n width: 2rem;\n height: auto;\n margin: 0;\n ", "\n \n ", " {\n position: relative;\n top: 0;\n left: 0;\n display: flex;\n align-content: center;\n justify-content: center;\n margin: 0;\n height: auto;\n width: auto;\n\n ", "\n }\n"])), _ref13 => {
5094
5690
  let {
5095
5691
  isSize
5096
- } = _ref6;
5692
+ } = _ref13;
5097
5693
  return isSize && SingleSizeLegendItemsMixin;
5098
- }, MapLegendItem, _ref7 => {
5694
+ }, MapLegendItem, _ref14 => {
5099
5695
  let {
5100
5696
  parameter
5101
- } = _ref7;
5697
+ } = _ref14;
5102
5698
  return isParameterType(["strokeColor", "stroke.color"], parameter) && StrokeColorLegendItemMixin;
5103
5699
  });
5104
- const MapLegendItems = /*#__PURE__*/styled__default.div(_templateObject22 || (_templateObject22 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n width: 100%;\n border-radius: 0.125rem;\n\n ", ";\n ", ";\n ", ";\n"])), _ref8 => {
5700
+ const MapLegendItems = /*#__PURE__*/styled__default.div(_templateObject28 || (_templateObject28 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n width: 100%;\n border-radius: 0.125rem;\n\n ", ";\n ", ";\n ", ";\n"])), _ref15 => {
5105
5701
  let {
5106
5702
  isSize
5107
- } = _ref8;
5703
+ } = _ref15;
5108
5704
  return isSize && SizeLegendItemsMixin;
5109
- }, _ref9 => {
5705
+ }, _ref16 => {
5110
5706
  let {
5111
5707
  isStrokeWidth
5112
- } = _ref9;
5708
+ } = _ref16;
5113
5709
  return isStrokeWidth && StrokeWidthLegendItemsMixin;
5114
- }, _ref10 => {
5710
+ }, _ref17 => {
5115
5711
  let {
5116
5712
  isSingle
5117
- } = _ref10;
5713
+ } = _ref17;
5118
5714
  return isSingle && SingleLegendItemsMixin;
5119
5715
  });
5120
- const MapLegendItemsContainer = /*#__PURE__*/styled__default.div(_templateObject23 || (_templateObject23 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n \n ", " {\n :first-child {\n border-top-left-radius: 0.125rem;\n border-bottom-left-radius: 0.125rem;\n }\n\n :last-child {\n border-top-right-radius: 0.125rem;\n border-bottom-right-radius: 0.125rem;\n }\n }\n"])), MapLegendItem);
5121
- const MapLegendValues = /*#__PURE__*/styled__default.div(_templateObject24 || (_templateObject24 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n margin-top: 0.5rem;\n font-size: 0.75rem;\n color: rgba(48, 69, 79, 0.65);\n"])));
5122
- const MapLegendValuesRange = /*#__PURE__*/styled__default.div(_templateObject25 || (_templateObject25 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: space-between;\n width: calc(100% - 1.25rem);\n \n div {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n\n :first-child {\n margin-right: 0.5rem;\n }\n\n :last-child {\n margin-left: 0.5rem;\n text-align: right;\n }\n }\n"])));
5123
- const MapLegendValuesOther = /*#__PURE__*/styled__default(MapLegendOther)(_templateObject26 || (_templateObject26 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n justify-content: center;\n border: 0;\n overflow: visible;\n"])));
5124
- const MapLegendExpandButton = /*#__PURE__*/styled__default.div(_templateObject27 || (_templateObject27 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n cursor: pointer;\n margin-top: 0.1rem;\n font-size: 0.625rem;\n color: #1FB3AA;\n"])));
5125
-
5126
- const MapLegend = _ref => {
5127
- let {
5128
- layer,
5129
- config,
5130
- className,
5131
- hideTitle
5132
- } = _ref;
5133
- const legend = useMapLegend(layer, config);
5134
-
5135
- if (!legend) {
5136
- return null;
5137
- }
5138
-
5139
- const {
5140
- symbol,
5141
- items
5142
- } = legend;
5143
- return React__default.createElement(LegendProvider, {
5144
- symbol: symbol
5145
- }, React__default.createElement(MapLegendControl, {
5146
- className: className
5147
- }, !hideTitle && React__default.createElement(MapLegendHeader, null, layer == null ? void 0 : layer.alias), !!items.length && React__default.createElement(MapLegendContainer, null, React__default.createElement(Legend, {
5148
- layer: layer,
5149
- config: config
5150
- }))));
5151
- };
5152
-
5153
- const MAX_SIZE$2 = 100;
5154
- const MapLegendSymbol = _ref => {
5155
- let {
5156
- value,
5157
- parameter
5158
- } = _ref;
5159
- return React__default.createElement(LegendSymbol, {
5160
- key: value.title,
5161
- parameter: parameter,
5162
- parameterValue: value.parameterValue
5163
- }, symbol => React__default.createElement(Symbol, {
5164
- render: getMapLegendSymbolRenders,
5165
- symbol: symbol,
5166
- size: MAX_SIZE$2
5167
- }));
5168
- };
5169
-
5170
- const MapLegendDescription = _ref => {
5171
- let {
5172
- parameter
5173
- } = _ref;
5174
- const isSize = isParameterType("size", parameter);
5175
- const isStrokeWidth = isParameterType(["strokeWidth", "stroke.width"], parameter);
5176
- const isStrokeColor = isParameterType(["strokeColor", "stroke.color"], parameter);
5177
- return React__default.createElement(MapLegendDescriptionContainer, null, isStrokeWidth || isStrokeColor ? isStrokeWidth ? "Толщина обводки" : "Цвет обводки" : isSize ? "Размер знака" : "Цвет символа");
5178
- };
5716
+ const MapLegendItemsContainer = /*#__PURE__*/styled__default.div(_templateObject29 || (_templateObject29 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n \n ", " {\n :first-child {\n border-top-left-radius: 0.125rem;\n border-bottom-left-radius: 0.125rem;\n }\n\n :last-child {\n border-top-right-radius: 0.125rem;\n border-bottom-right-radius: 0.125rem;\n }\n }\n"])), MapLegendItem);
5717
+ const MapLegendValues = /*#__PURE__*/styled__default.div(_templateObject30 || (_templateObject30 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n margin-top: 0.5rem;\n font-size: 0.75rem;\n color: rgba(48, 69, 79, 0.65);\n"])));
5718
+ const MapLegendValuesRange = /*#__PURE__*/styled__default.div(_templateObject31 || (_templateObject31 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: space-between;\n width: calc(100% - 1.25rem);\n \n div {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n\n :first-child {\n margin-right: 0.5rem;\n }\n\n :last-child {\n margin-left: 0.5rem;\n text-align: right;\n }\n }\n"])));
5719
+ const MapLegendValuesOther = /*#__PURE__*/styled__default(MapLegendOther)(_templateObject32 || (_templateObject32 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n justify-content: center;\n border: 0;\n overflow: visible;\n"])));
5720
+ const MapLegendExpandButton = /*#__PURE__*/styled__default.div(_templateObject33 || (_templateObject33 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n cursor: pointer;\n margin-top: 0.1rem;\n font-size: 0.625rem;\n color: #1FB3AA;\n"])));
5179
5721
 
5180
5722
  const getValueFromLegendTitle = (title, minOrMax) => {
5181
5723
  if (title.includes(" - ")) {
@@ -5254,6 +5796,388 @@ const MinimizedLegend = _ref => {
5254
5796
  })), typeof (other == null ? void 0 : other.parameterValue) === "string" && (titleMax || titleMin) && React__default.createElement(MapLegendValues, null, React__default.createElement(MapLegendValuesRange, null, React__default.createElement("div", null, titleMax), React__default.createElement("div", null, titleMin)), React__default.createElement(MapLegendValuesOther, null, "-")));
5255
5797
  };
5256
5798
 
5799
+ const useSvgSymbol = (symbol, skipOffset) => {
5800
+ const SVGWrapperRefElement = React.useRef(null);
5801
+ const SVGContainer = React.useMemo(() => svg_js.SVG(), []);
5802
+ const initSvg = React.useCallback(() => {
5803
+ SVGContainer.addTo(SVGWrapperRefElement.current);
5804
+ }, [SVGContainer]);
5805
+ const getSvgData = React.useCallback(() => SVGContainer.svg(), [SVGContainer]);
5806
+ const manipulateSvg = React.useCallback(_ref => {
5807
+ let {
5808
+ svg,
5809
+ bg,
5810
+ newSymbol
5811
+ } = _ref;
5812
+ manipulateSvgSymbol(SVGContainer, newSymbol || symbol, svg, bg);
5813
+ }, [SVGContainer, symbol]);
5814
+ const getUpdatedSvgSymbol = React.useCallback((field, value) => {
5815
+ var _newSymbol$background;
5816
+
5817
+ const {
5818
+ data,
5819
+ offset
5820
+ } = symbol;
5821
+ const newValue = value instanceof Color.Color ? value.toString("rgba") : value;
5822
+ const newSymbol = JSON.parse(JSON.stringify(_extends({}, symbol, {
5823
+ offset: skipOffset ? DEFAULT_SYMBOL_OFFSET : isSizeClassification(field) ? getOffsetParameterValue(offset) : offset
5824
+ })));
5825
+
5826
+ if (field.indexOf(".") !== -1) {
5827
+ var _newSymbol$parts$;
5828
+
5829
+ const parts = field.split(".");
5830
+
5831
+ if ((_newSymbol$parts$ = newSymbol[parts[0]]) != null && _newSymbol$parts$[parts[1]]) {
5832
+ newSymbol[parts[0]][parts[1]] = newValue;
5833
+ } else {
5834
+ newSymbol[parts[0]] = _extends({}, newSymbol[parts[0]], {
5835
+ [parts[1]]: newValue
5836
+ }, parts[0] === "background" ? {
5837
+ type: newSymbol.background.type,
5838
+ id: "symbol-bg"
5839
+ } : parts[0] === "figure" ? {
5840
+ id: "symbol-figure"
5841
+ } : {});
5842
+ }
5843
+ } else {
5844
+ newSymbol[field] = newValue;
5845
+ }
5846
+
5847
+ manipulateSvg({
5848
+ svg: data,
5849
+ newSymbol,
5850
+ bg: (_newSymbol$background = newSymbol.background) == null ? void 0 : _newSymbol$background.type
5851
+ });
5852
+ return _extends({}, newSymbol, {
5853
+ data: SVGContainer.svg()
5854
+ });
5855
+ }, [SVGContainer, manipulateSvg, skipOffset, symbol]);
5856
+ return {
5857
+ svgRef: SVGWrapperRefElement,
5858
+ initSvg,
5859
+ getSvgData,
5860
+ manipulateSvg,
5861
+ getUpdatedSvgSymbol
5862
+ };
5863
+ };
5864
+
5865
+ var _templateObject$5, _templateObject2$5;
5866
+ const SvgSymbolContainer = /*#__PURE__*/styled__default.div(_templateObject$5 || (_templateObject$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5867
+ const SvgSymbolLabel = /*#__PURE__*/styled__default.div(_templateObject2$5 || (_templateObject2$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n"])), _ref => {
5868
+ let {
5869
+ fontSettings
5870
+ } = _ref;
5871
+ return !!(fontSettings != null && fontSettings.fontFamily) && "font-family: " + fontSettings.fontFamily;
5872
+ }, _ref2 => {
5873
+ let {
5874
+ fontSettings
5875
+ } = _ref2;
5876
+ return !!(fontSettings != null && fontSettings.fontWeight) && "font-weight: " + fontSettings.fontWeight;
5877
+ }, _ref3 => {
5878
+ let {
5879
+ fontSettings
5880
+ } = _ref3;
5881
+ return !!(fontSettings != null && fontSettings.fontStyle) && "font-style: " + fontSettings.fontStyle;
5882
+ }, _ref4 => {
5883
+ let {
5884
+ fontSettings
5885
+ } = _ref4;
5886
+ return !!(fontSettings != null && fontSettings.fontColor) && "color: " + fontSettings.fontColor;
5887
+ }, _ref5 => {
5888
+ let {
5889
+ fontSettings
5890
+ } = _ref5;
5891
+ return !!(fontSettings != null && fontSettings.fontSize) && "font-size: " + (typeof fontSettings.fontSize === "string" ? fontSettings.fontSize : fontSettings.fontSize + "px");
5892
+ }, _ref6 => {
5893
+ let {
5894
+ fontSettings
5895
+ } = _ref6;
5896
+ return !!(fontSettings != null && fontSettings.haloColor) && !!(fontSettings != null && fontSettings.haloWidth) && "-webkit-text-stroke: " + fontSettings.haloWidth + "px " + fontSettings.haloColor + ";";
5897
+ });
5898
+ const SvgSymbol = /*#__PURE__*/React.memo(_ref7 => {
5899
+ let {
5900
+ svg,
5901
+ bg,
5902
+ symbol,
5903
+ title,
5904
+ skipOffset,
5905
+ text,
5906
+ fontSettings,
5907
+ onClick
5908
+ } = _ref7;
5909
+ const {
5910
+ svgRef,
5911
+ initSvg,
5912
+ getSvgData,
5913
+ manipulateSvg
5914
+ } = useSvgSymbol(symbol, skipOffset);
5915
+ const onSelectSymbol = React.useCallback(() => {
5916
+ onClick == null ? void 0 : onClick(getSvgData(), _extends({}, symbol, bg ? {
5917
+ background: _extends({}, symbol.background, {
5918
+ type: bg
5919
+ })
5920
+ } : {}));
5921
+ }, [bg, getSvgData, onClick, symbol]);
5922
+ const renderSymbol = React.useMemo(() => React__default.createElement(SymbolButton, {
5923
+ ref: svgRef,
5924
+ title: title,
5925
+ onClick: onClick ? onSelectSymbol : undefined
5926
+ }), [svgRef, title, onClick, onSelectSymbol]);
5927
+ React.useEffect(() => {
5928
+ initSvg();
5929
+ }, [initSvg]);
5930
+ React.useEffect(() => {
5931
+ manipulateSvg({
5932
+ svg,
5933
+ bg,
5934
+ newSymbol: symbol
5935
+ });
5936
+ }, [svg, symbol, bg, manipulateSvg]);
5937
+ return text ? React__default.createElement(SvgSymbolContainer, null, renderSymbol, React__default.createElement(SvgSymbolLabel, {
5938
+ fontSettings: fontSettings
5939
+ }, text), !!(fontSettings != null && fontSettings.haloColor) && !!(fontSettings != null && fontSettings.haloWidth) && React__default.createElement(SvgSymbolLabel, {
5940
+ fontSettings: _extends({}, fontSettings, {
5941
+ haloColor: undefined,
5942
+ haloWidth: undefined
5943
+ })
5944
+ }, text)) : renderSymbol;
5945
+ });
5946
+
5947
+ const SymbolByType = _ref => {
5948
+ let {
5949
+ type,
5950
+ symbol,
5951
+ size,
5952
+ svg,
5953
+ skipOffset
5954
+ } = _ref;
5955
+ const defaultSymbol = React.useMemo(() => React__default.createElement(Symbol, {
5956
+ symbol: symbol,
5957
+ size: size
5958
+ }), [symbol, size]);
5959
+
5960
+ switch (type) {
5961
+ case "svgPointSymbol":
5962
+ return svg ? React__default.createElement(SvgSymbol, {
5963
+ svg: svg,
5964
+ size: size,
5965
+ skipOffset: skipOffset,
5966
+ symbol: serializeSvgPointSymbol(symbol)
5967
+ }) : defaultSymbol;
5968
+
5969
+ default:
5970
+ return defaultSymbol;
5971
+ }
5972
+ };
5973
+
5974
+ const LegendSymbolRenderer = /*#__PURE__*/React.memo(_ref => {
5975
+ let {
5976
+ symbol
5977
+ } = _ref;
5978
+
5979
+ /* return isClusterSymbol(symbol) ? (
5980
+ <ClusterLegendContainer>
5981
+ <ClusterSymbolPreview symbol={symbol as ClusterSymbolDc} />
5982
+ </ClusterLegendContainer>
5983
+ ) : (
5984
+ <SymbolByType
5985
+ symbol={deserializeSymbol(symbol)}
5986
+ size={getLegendSymbolSize(symbol) || DEFAULT_LEGEND_SYMBOL_SIZE}
5987
+ type={symbol.type}
5988
+ svg={(symbol as SvgPointSymbol).data}
5989
+ skipOffset
5990
+ />
5991
+ );*/
5992
+ return React__default.createElement(SymbolByType, {
5993
+ symbol: deserializeSymbol(symbol),
5994
+ size: getLegendSymbolSize(symbol) || DEFAULT_LEGEND_SYMBOL_SIZE,
5995
+ type: symbol.type,
5996
+ svg: symbol.data,
5997
+ skipOffset: true
5998
+ });
5999
+ });
6000
+
6001
+ const MaximizedLegend = _ref => {
6002
+ let {
6003
+ symbol: sectionSymbol,
6004
+ parameter,
6005
+ values,
6006
+ index: sectionIndex,
6007
+ attributeType
6008
+ } = _ref;
6009
+ const {
6010
+ t
6011
+ } = reactI18next.useTranslation("common");
6012
+ const isDate = attributeType === "DateTime";
6013
+ const isSize = isParameterType("size", parameter);
6014
+ const isStrokeWidth = isParameterType(["strokeWidth", "stroke.width"], parameter);
6015
+ const isStrokeColor = isParameterType(["strokeColor", "stroke.color"], parameter);
6016
+ const parameterValue = React.useMemo(() => get(sectionSymbol, parameter), [sectionSymbol, parameter]);
6017
+ const renderColumn = React.useCallback((column, index) => {
6018
+ const dateTime = column.split(" ");
6019
+ return React__default.createElement(React.Fragment, {
6020
+ key: index
6021
+ }, React__default.createElement(ItemText, {
6022
+ title: column
6023
+ }, dateTime[0], React__default.createElement(ui.Description, null, dateTime[1])), index === 0 && React__default.createElement(ItemSeparator, null));
6024
+ }, []);
6025
+ const renderItemText = React.useCallback((title, index) => {
6026
+ if (!title) {
6027
+ return React__default.createElement(ItemText, null, t("classification.other"));
6028
+ }
6029
+
6030
+ const columns = title == null ? void 0 : title.split(" - ");
6031
+ const isSingleColumn = (columns == null ? void 0 : columns.length) === 1;
6032
+
6033
+ if (!isDate || index && isSingleColumn) {
6034
+ return React__default.createElement(ItemText, {
6035
+ title: title
6036
+ }, title);
6037
+ }
6038
+
6039
+ if (!index && isSingleColumn) {
6040
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(ItemText, {
6041
+ title: "\u221E"
6042
+ }, "\u221E"), React__default.createElement(ItemSeparator, null), renderColumn(title));
6043
+ }
6044
+
6045
+ return React__default.createElement(React__default.Fragment, null, columns.map(renderColumn));
6046
+ }, [isDate, renderColumn, t]);
6047
+ const renderLegend = React.useCallback((_ref2, index) => {
6048
+ var _parameterValue$value;
6049
+
6050
+ let {
6051
+ symbol,
6052
+ title
6053
+ /* , hiddenCondition*/
6054
+
6055
+ } = _ref2;
6056
+ if (!symbol) return null; // const isClusterFillColor = checkIsClusterFillColor(symbol, parameter);
6057
+
6058
+ return React__default.createElement(ClassifiedItem, {
6059
+ key: sectionIndex + title + index
6060
+ }, isSize || isStrokeWidth || isStrokeColor ? React__default.createElement(MapLegendItems, {
6061
+ parameter: parameter,
6062
+ isSize: isSize,
6063
+ isStrokeWidth: isStrokeWidth,
6064
+ isStrokeColor: isStrokeColor,
6065
+ isSingle: true
6066
+ }, React__default.createElement(MapLegendItem, {
6067
+ key: "" + title + index,
6068
+ title: title,
6069
+ value: (parameterValue == null ? void 0 : (_parameterValue$value = parameterValue.values[index]) == null ? void 0 : _parameterValue$value.value) || (parameterValue == null ? void 0 : parameterValue.defaultValue),
6070
+ parameter: parameter
6071
+ })) : React__default.createElement(SymbolContainer, null, React__default.createElement(LegendSymbolRenderer, {
6072
+ symbol: symbol
6073
+ /* isClusterFillColor ? symbol : getExtractedSymbol(symbol, true)*/
6074
+
6075
+ })), renderItemText(title, index));
6076
+ }, [isSize, isStrokeColor, isStrokeWidth, parameter, parameterValue == null ? void 0 : parameterValue.defaultValue, parameterValue == null ? void 0 : parameterValue.values, renderItemText, sectionIndex]);
6077
+ return React__default.createElement(React__default.Fragment, null, values.map(renderLegend));
6078
+ };
6079
+
6080
+ const LegendSection = _ref => {
6081
+ let {
6082
+ symbol,
6083
+ param,
6084
+ params,
6085
+ classified,
6086
+ attributeName,
6087
+ attributeType,
6088
+ index
6089
+ } = _ref;
6090
+ const {
6091
+ t
6092
+ } = reactI18next.useTranslation("common");
6093
+ const [isExpanded, toggleExpanded] = ui.useToggle();
6094
+ return React__default.createElement(MapLegendSectionContainer, null, React__default.createElement(MapLegendHeader, null, attributeName), isExpanded ? React__default.createElement(MaximizedLegend, {
6095
+ key: param,
6096
+ symbol: symbol,
6097
+ parameter: param,
6098
+ attributeType: attributeType,
6099
+ index: index,
6100
+ values: getMaximizedLegendValues(attributeType, param, params, classified, symbol, index, t("classification.other"))
6101
+ }) : React__default.createElement(MinimizedLegend, {
6102
+ key: param,
6103
+ values: getMinimizedLegendValues(attributeType, classified, index),
6104
+ defaultValue: classified.defaultValue,
6105
+ parameter: param,
6106
+ attributeType: attributeType
6107
+ }), React__default.createElement(MapLegendExpandButton, {
6108
+ onClick: toggleExpanded
6109
+ }, t(isExpanded ? "toggleMenu" : "Развернуть")));
6110
+ };
6111
+
6112
+ const LegendParameterDescription = _ref => {
6113
+ let {
6114
+ parameter
6115
+ } = _ref;
6116
+ const isSize = isParameterType("size", parameter);
6117
+ const isStrokeWidth = isParameterType(["strokeWidth", "stroke.width"], parameter);
6118
+ const isStrokeColor = isParameterType(["strokeColor", "stroke.color"], parameter);
6119
+ return React__default.createElement(MapLegendDescriptionContainer, null, isStrokeWidth || isStrokeColor ? isStrokeWidth ? "Толщина обводки" : "Цвет обводки" : isSize ? "Размер знака" : "Цвет символа");
6120
+ };
6121
+
6122
+ const Legend = _ref => {
6123
+ let {
6124
+ layerInfo
6125
+ } = _ref;
6126
+ const classified = getClassified(layerInfo);
6127
+ const params = Object.keys(classified);
6128
+ return React__default.createElement(MapLegendContainer, null, Object.keys(classified).map((param, index) => {
6129
+ var _classified$param$val, _layerInfo$style;
6130
+
6131
+ const attributeName = getAttributeNameFromCondition((_classified$param$val = classified[param].values[0]) == null ? void 0 : _classified$param$val.condition);
6132
+ return React__default.createElement(LegendSection, {
6133
+ key: index,
6134
+ symbol: (_layerInfo$style = layerInfo.style) == null ? void 0 : _layerInfo$style.symbol,
6135
+ attributeType: getAttributeType(layerInfo, attributeName),
6136
+ attributeName: attributeName,
6137
+ classified: classified[param],
6138
+ param: param,
6139
+ params: params,
6140
+ index: index
6141
+ });
6142
+ }));
6143
+ };
6144
+
6145
+ const Map = _ref => {
6146
+ let {
6147
+ className,
6148
+ position,
6149
+ resolution,
6150
+ minScale,
6151
+ maxScale,
6152
+ children,
6153
+ onBboxChange,
6154
+ style
6155
+ } = _ref;
6156
+ const wrapperRef = useMapWrapper();
6157
+ const {
6158
+ map
6159
+ } = useMapContext();
6160
+ const handleBboxChange = React.useCallback(state => {
6161
+ if (onBboxChange && shouldUpdateMapState(map, {
6162
+ position,
6163
+ resolution
6164
+ })) {
6165
+ onBboxChange(state);
6166
+ }
6167
+ }, [map, onBboxChange, position, resolution]);
6168
+ useUpdateMapView({
6169
+ position,
6170
+ resolution
6171
+ });
6172
+ useMaxMinScale(minScale, maxScale, position, resolution);
6173
+ useMapBboxChange(handleBboxChange);
6174
+ return React__default.createElement("div", {
6175
+ className: className,
6176
+ ref: wrapperRef,
6177
+ style: style
6178
+ }, children);
6179
+ };
6180
+
5257
6181
  let MeasureTool = /*#__PURE__*/function (_React$Component) {
5258
6182
  _inherits(MeasureTool, _React$Component);
5259
6183
 
@@ -5458,15 +6382,15 @@ const Measurer = _ref => {
5458
6382
  }, props)) : null;
5459
6383
  };
5460
6384
 
5461
- var _templateObject$7, _templateObject2$7, _templateObject3$5;
5462
- const ScaleRulerContainer = /*#__PURE__*/styled__default.div(_templateObject$7 || (_templateObject$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 2rem;\n cursor: default;\n display: flex;\n align-items: flex-end;\n padding: 0 0.5rem 0.5rem;\n box-sizing: border-box;\n"])));
5463
- const ScaleRulerBlock = /*#__PURE__*/styled__default.div(_templateObject2$7 || (_templateObject2$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: flex-end;\n justify-content: center;\n width: ", ";\n height: 0.25rem;\n border: 0.0625rem solid white;\n border-top: 0;\n"])), _ref => {
6385
+ var _templateObject$6, _templateObject2$6, _templateObject3$4;
6386
+ const ScaleRulerContainer = /*#__PURE__*/styled__default.div(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 2rem;\n cursor: default;\n display: flex;\n align-items: flex-end;\n padding: 0 0.5rem 0.5rem;\n box-sizing: border-box;\n"])));
6387
+ const ScaleRulerBlock = /*#__PURE__*/styled__default.div(_templateObject2$6 || (_templateObject2$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: flex-end;\n justify-content: center;\n width: ", ";\n height: 0.25rem;\n border: 0.0625rem solid white;\n border-top: 0;\n"])), _ref => {
5464
6388
  let {
5465
6389
  width
5466
6390
  } = _ref;
5467
6391
  return width + "px";
5468
6392
  });
5469
- const TextContainer = /*#__PURE__*/styled__default.div(_templateObject3$5 || (_templateObject3$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 2rem;\n display: flex;\n justify-content: center;\n align-items: ", ";\n width: ", ";\n color: #fff;\n font-size: 1rem;\n cursor: default;\n padding: 0 0.5rem;\n"])), _ref2 => {
6393
+ const TextContainer = /*#__PURE__*/styled__default.div(_templateObject3$4 || (_templateObject3$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 2rem;\n display: flex;\n justify-content: center;\n align-items: ", ";\n width: ", ";\n color: #fff;\n font-size: 1rem;\n cursor: default;\n padding: 0 0.5rem;\n"])), _ref2 => {
5470
6394
  let {
5471
6395
  alignEnd
5472
6396
  } = _ref2;
@@ -5519,17 +6443,17 @@ const ZoomLevel = () => {
5519
6443
  }, level || 0);
5520
6444
  };
5521
6445
 
5522
- var _templateObject$8, _templateObject2$8, _templateObject3$6, _templateObject4$5, _templateObject5$5, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$2, _templateObject10$2, _templateObject11$2;
6446
+ var _templateObject$7, _templateObject2$7, _templateObject3$5, _templateObject4$4, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$2, _templateObject10$2, _templateObject11$2;
5523
6447
 
5524
- const cornerBottom = cornerSize => styled.css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteralLoose(["\n &:before {\n left: 50%;\n transform: translate(-50%, 100%);\n bottom: 0;\n border-left: ", " solid transparent;\n border-right: ", " solid transparent;\n border-top: ", " solid rgba(28, 33, 48, 0.8);\n }\n"])), cornerSize, cornerSize, cornerSize);
6448
+ const cornerBottom = cornerSize => styled.css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteralLoose(["\n &:before {\n left: 50%;\n transform: translate(-50%, 100%);\n bottom: 0;\n border-left: ", " solid transparent;\n border-right: ", " solid transparent;\n border-top: ", " solid rgba(28, 33, 48, 0.8);\n }\n"])), cornerSize, cornerSize, cornerSize);
5525
6449
 
5526
- const cornerLeft = cornerSize => styled.css(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteralLoose(["\n &:before {\n transform: translate(-100%, -50%);\n left: 0;\n top: 50%;\n border-top: ", " solid transparent;\n border-right: ", " solid rgba(28, 33, 48, 0.8);\n border-bottom: ", " solid transparent;\n }\n"])), cornerSize, cornerSize, cornerSize);
6450
+ const cornerLeft = cornerSize => styled.css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteralLoose(["\n &:before {\n transform: translate(-100%, -50%);\n left: 0;\n top: 50%;\n border-top: ", " solid transparent;\n border-right: ", " solid rgba(28, 33, 48, 0.8);\n border-bottom: ", " solid transparent;\n }\n"])), cornerSize, cornerSize, cornerSize);
5527
6451
 
5528
- const cornerRight = cornerSize => styled.css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n &:before {\n transform: translate(100%, -50%);\n right: 0;\n top: 50%;\n border-top: ", " solid transparent;\n border-left: ", " solid rgba(28, 33, 48, 0.8);\n border-bottom: ", " solid transparent;\n }\n"])), cornerSize, cornerSize, cornerSize);
6452
+ const cornerRight = cornerSize => styled.css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteralLoose(["\n &:before {\n transform: translate(100%, -50%);\n right: 0;\n top: 50%;\n border-top: ", " solid transparent;\n border-left: ", " solid rgba(28, 33, 48, 0.8);\n border-bottom: ", " solid transparent;\n }\n"])), cornerSize, cornerSize, cornerSize);
5529
6453
 
5530
- const cornerTop = cornerSize => styled.css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteralLoose(["\n &:before {\n transform: translate(-50%, -100%);\n left: 50%;\n top: 0;\n border-left: ", " solid transparent;\n border-right: ", " solid transparent;\n border-bottom: ", " solid rgba(28, 33, 48, 0.8);\n }\n"])), cornerSize, cornerSize, cornerSize);
6454
+ const cornerTop = cornerSize => styled.css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteralLoose(["\n &:before {\n transform: translate(-50%, -100%);\n left: 50%;\n top: 0;\n border-left: ", " solid transparent;\n border-right: ", " solid transparent;\n border-bottom: ", " solid rgba(28, 33, 48, 0.8);\n }\n"])), cornerSize, cornerSize, cornerSize);
5531
6455
 
5532
- const top = (distance, cornerSize) => styled.css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteralLoose(["\n transform: translate(-50%, 0);\n left: -50%;\n bottom: ", ";\n ", "\n"])), distance, cornerSize && cornerBottom(cornerSize));
6456
+ const top = (distance, cornerSize) => styled.css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n transform: translate(-50%, 0);\n left: -50%;\n bottom: ", ";\n ", "\n"])), distance, cornerSize && cornerBottom(cornerSize));
5533
6457
 
5534
6458
  const right = (distance, cornerSize) => styled.css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteralLoose(["\n transform: translate(0, -50%);\n top: -50%;\n left: ", ";\n ", "\n"])), distance, cornerSize && cornerLeft(cornerSize));
5535
6459
 
@@ -5629,13 +6553,24 @@ exports.CardHeader = CardHeader;
5629
6553
  exports.CircleLineMiterRender = CircleLineMiterRender;
5630
6554
  exports.ClassificationCondition = ClassificationCondition;
5631
6555
  exports.ClassificationManager = ClassificationManager;
6556
+ exports.ClassifiedItem = ClassifiedItem;
5632
6557
  exports.ClusterLayer = ClusterLayer;
5633
6558
  exports.ClusterSymbol = ClusterSymbol;
5634
6559
  exports.CompoundIcon = CompoundIcon;
5635
6560
  exports.DEFAULT_CRS = DEFAULT_CRS;
6561
+ exports.DEFAULT_ID_ATTRIBUTE_NAME = DEFAULT_ID_ATTRIBUTE_NAME;
6562
+ exports.DEFAULT_LEGEND_SIZES = DEFAULT_LEGEND_SIZES;
6563
+ exports.DEFAULT_LEGEND_STYLES = DEFAULT_LEGEND_STYLES;
6564
+ exports.DEFAULT_LEGEND_SYMBOL_SIZE = DEFAULT_LEGEND_SYMBOL_SIZE;
6565
+ exports.DEFAULT_PARAMETER_INFO = DEFAULT_PARAMETER_INFO;
5636
6566
  exports.DEFAULT_SRID = DEFAULT_SRID;
6567
+ exports.DEFAULT_SYMBOL_FILL_COLOR = DEFAULT_SYMBOL_FILL_COLOR;
6568
+ exports.DEFAULT_SYMBOL_OFFSET = DEFAULT_SYMBOL_OFFSET;
5637
6569
  exports.DEFAULT_SYMBOL_SIZE = DEFAULT_SYMBOL_SIZE;
6570
+ exports.DEFAULT_SYMBOL_STROKE_COLOR = DEFAULT_SYMBOL_STROKE_COLOR;
6571
+ exports.DEFAULT_SYMBOL_WITH_BG_SIZE = DEFAULT_SYMBOL_WITH_BG_SIZE;
5638
6572
  exports.DraggableMarker = DraggableMarker;
6573
+ exports.EXTRA_BORDER_SIZE = EXTRA_BORDER_SIZE;
5639
6574
  exports.EvergisCard = EvergisCard;
5640
6575
  exports.EvergisCardAttribute = EvergisCardAttribute;
5641
6576
  exports.EvergisCardAttributeContainer = AttributeContainer;
@@ -5663,39 +6598,43 @@ exports.EvergisStyle = EvergisStyle;
5663
6598
  exports.EvergisTileLayer = EvergisTileLayer;
5664
6599
  exports.FeatureLayer = FeatureLayer;
5665
6600
  exports.Fullscreen = Fullscreen;
6601
+ exports.GEOMETRY_ATTRIBUTE = GEOMETRY_ATTRIBUTE;
6602
+ exports.ItemSeparator = ItemSeparator;
6603
+ exports.ItemText = ItemText;
5666
6604
  exports.LabelSymbol = LabelSymbol;
5667
6605
  exports.Legend = Legend;
5668
- exports.LegendContainer = LegendContainer;
6606
+ exports.LegendParameterDescription = LegendParameterDescription;
5669
6607
  exports.LegendProvider = LegendProvider;
5670
6608
  exports.LegendSection = LegendSection;
5671
- exports.LegendSectionContainer = LegendSectionContainer;
5672
- exports.LegendSymbol = LegendSymbol;
5673
- exports.LegendValue = LegendValue;
5674
- exports.LegendValueContainer = LegendValueContainer;
6609
+ exports.LegendSymbolRenderer = LegendSymbolRenderer;
5675
6610
  exports.LineMiterRender = LineMiterRender;
5676
6611
  exports.Map = Map;
5677
6612
  exports.MapControl = MapControl;
5678
6613
  exports.MapControls = MapControls;
5679
- exports.MapLegend = MapLegend;
5680
6614
  exports.MapLegendContainer = MapLegendContainer;
5681
- exports.MapLegendDescription = MapLegendDescription;
6615
+ exports.MapLegendControl = MapLegendControl;
5682
6616
  exports.MapLegendDescriptionContainer = MapLegendDescriptionContainer;
5683
6617
  exports.MapLegendExpandButton = MapLegendExpandButton;
5684
6618
  exports.MapLegendHeader = MapLegendHeader;
5685
6619
  exports.MapLegendItem = MapLegendItem;
5686
6620
  exports.MapLegendItems = MapLegendItems;
6621
+ exports.MapLegendItemsContainer = MapLegendItemsContainer;
5687
6622
  exports.MapLegendOther = MapLegendOther;
5688
6623
  exports.MapLegendSectionContainer = MapLegendSectionContainer;
5689
- exports.MapLegendSymbol = MapLegendSymbol;
5690
6624
  exports.MapLegendValueDescr = MapLegendValueDescr;
5691
6625
  exports.MapLegendValues = MapLegendValues;
6626
+ exports.MapLegendValuesOther = MapLegendValuesOther;
6627
+ exports.MapLegendValuesRange = MapLegendValuesRange;
5692
6628
  exports.MapProvider = MapProvider;
6629
+ exports.MaximizedLegend = MaximizedLegend;
5693
6630
  exports.Measure = Measure;
5694
6631
  exports.MeasureTool = MeasureTool;
5695
6632
  exports.Measurer = Measurer;
5696
6633
  exports.MinimizedLegend = MinimizedLegend;
6634
+ exports.MinimizedLegendContainer = MinimizedLegendContainer;
5697
6635
  exports.NO_CONTENT_VALUE = NO_CONTENT_VALUE;
5698
6636
  exports.Noop = Noop;
6637
+ exports.PARAMETER_INFOS = PARAMETER_INFOS;
5699
6638
  exports.PREVIEW_LIMITS = PREVIEW_LIMITS;
5700
6639
  exports.SGisBrushFill = SGisBrushFill;
5701
6640
  exports.SGisImageFill = SGisImageFill;
@@ -5703,6 +6642,9 @@ exports.SGisPolygonSymbol = SGisPolygonSymbol;
5703
6642
  exports.SGisPolylineSymbol = SGisPolylineSymbol;
5704
6643
  exports.SOLID_INTERVALS = SOLID_INTERVALS;
5705
6644
  exports.SVGPoly = SVGPoly;
6645
+ exports.SYMBOL_CLASSIFICATION = SYMBOL_CLASSIFICATION;
6646
+ exports.SYMBOL_LIMITS = SYMBOL_LIMITS;
6647
+ exports.SYMBOL_SIZE_PARAMETERS = SYMBOL_SIZE_PARAMETERS;
5706
6648
  exports.ScaleRuler = ScaleRuler;
5707
6649
  exports.ScaleRulerBlock = ScaleRulerBlock;
5708
6650
  exports.ScaleRulerContainer = ScaleRulerContainer;
@@ -5711,11 +6653,18 @@ exports.SelectedPointSymbol = SelectedPointSymbol;
5711
6653
  exports.SelectedPolySymbol = SelectedPolySymbol;
5712
6654
  exports.ShadowedPointSymbol = ShadowedPointSymbol;
5713
6655
  exports.ShadowedPolySymbol = ShadowedPolySymbol;
6656
+ exports.SizeMinimizedLegend = SizeMinimizedLegend;
5714
6657
  exports.SizeMinimizedLegendDown = SizeMinimizedLegendDown;
6658
+ exports.SizeMinimizedLegendLabel = SizeMinimizedLegendLabel;
6659
+ exports.SizeMinimizedLegendSymbol = SizeMinimizedLegendSymbol;
5715
6660
  exports.SizeMinimizedLegendUp = SizeMinimizedLegendUp;
5716
6661
  exports.SquareLineMiterRender = SquareLineMiterRender;
5717
6662
  exports.StyleSymbol = StyleSymbol;
6663
+ exports.SvgSymbol = SvgSymbol;
5718
6664
  exports.Symbol = Symbol;
6665
+ exports.SymbolButton = SymbolButton;
6666
+ exports.SymbolByType = SymbolByType;
6667
+ exports.SymbolContainer = SymbolContainer;
5719
6668
  exports.TextContainer = TextContainer;
5720
6669
  exports.TileLayer = TileLayer;
5721
6670
  exports.Tooltip = Tooltip;
@@ -5725,12 +6674,16 @@ exports.Zoom = Zoom;
5725
6674
  exports.ZoomLevel = ZoomLevel;
5726
6675
  exports.adjustSymbol = adjustSymbol;
5727
6676
  exports.applyParameterValue = applyParameterValue;
6677
+ exports.checkLayerHasLegend = checkLayerHasLegend;
5728
6678
  exports.clamp = clamp;
6679
+ exports.convertSvgToBase64 = convertSvgToBase64;
5729
6680
  exports.copyRings = copyRings;
5730
6681
  exports.createCompositeSymbol = createCompositeSymbol;
5731
6682
  exports.createLabelSymbol = createLabelSymbol;
6683
+ exports.createLegendSymbol = createLegendSymbol;
5732
6684
  exports.createStyleLegend = createStyleLegend;
5733
- exports.createValueTitle = createValueTitle;
6685
+ exports.createSvgGradient = createSvgGradient;
6686
+ exports.createValueTitle = createValueTitle$1;
5734
6687
  exports.defaultOffset = defaultOffset;
5735
6688
  exports.defineStrokeStylePreset = defineStrokeStylePreset;
5736
6689
  exports.deserializeSymbol = deserializeSymbol;
@@ -5741,34 +6694,61 @@ exports.findChildFeatureStyle = findChildFeatureStyle;
5741
6694
  exports.findChildFeatureSymbol = findChildFeatureSymbol;
5742
6695
  exports.formatArea = formatArea;
5743
6696
  exports.formatAttributeValue = formatAttributeValue;
6697
+ exports.formatDate = formatDate;
5744
6698
  exports.formatLength = formatLength;
5745
6699
  exports.formatPolygonMeasure = formatPolygonMeasure;
6700
+ exports.formatRangeClassValue = formatRangeClassValue;
6701
+ exports.formatUniqueClassValue = formatUniqueClassValue;
6702
+ exports.formatValue = formatValue;
6703
+ exports.getAttributeFromCondition = getAttributeFromCondition;
5746
6704
  exports.getAttributeNameFromClassified = getAttributeNameFromClassified;
5747
6705
  exports.getAttributeNameFromCondition = getAttributeNameFromCondition;
6706
+ exports.getAttributeType = getAttributeType;
6707
+ exports.getAttributesConfiguration = getAttributesConfiguration;
5748
6708
  exports.getChildSymbols = getChildSymbols;
6709
+ exports.getClassified = getClassified;
5749
6710
  exports.getCrs = getCrs;
5750
6711
  exports.getDashStylePreset = getDashStylePreset;
6712
+ exports.getDate = getDate;
6713
+ exports.getDimensions = getDimensions;
6714
+ exports.getExprFromCondition = getExprFromCondition;
5751
6715
  exports.getFeatureSymbol = getFeatureSymbol;
6716
+ exports.getHexColor = getHexColor;
6717
+ exports.getLayerDefinition = getLayerDefinition;
5752
6718
  exports.getLegendSymbolRenders = getLegendSymbolRenders;
6719
+ exports.getLegendSymbolSize = getLegendSymbolSize;
5753
6720
  exports.getLineDash = getLineDash;
5754
6721
  exports.getMapLegendSymbolRenders = getMapLegendSymbolRenders;
5755
6722
  exports.getMapState = getMapState;
6723
+ exports.getMaximizedLegendValues = getMaximizedLegendValues;
6724
+ exports.getMinimizedLegendValues = getMinimizedLegendValues;
5756
6725
  exports.getOffsetParameterValue = getOffsetParameterValue;
6726
+ exports.getParameterFromSymbol = getParameterFromSymbol;
5757
6727
  exports.getParameterValue = getParameterValue;
6728
+ exports.getRangeValues = getRangeValues$1;
5758
6729
  exports.getScale = getScale;
6730
+ exports.getServiceConfiguration = getServiceConfiguration;
6731
+ exports.getSignFromConditionPart = getSignFromConditionPart;
6732
+ exports.getSymbolParameterInfo = getSymbolParameterInfo;
5759
6733
  exports.getSymbolRenders = getSymbolRenders;
6734
+ exports.getSymbolStrokeWidth = getSymbolStrokeWidth;
6735
+ exports.getTitleFromCondition = getTitleFromCondition;
6736
+ exports.getValueFromConditionPart = getValueFromConditionPart;
5760
6737
  exports.isArrowLineMiter = isArrowLineMiter;
5761
6738
  exports.isCalculatedParameter = isCalculatedParameter;
5762
6739
  exports.isCircleLineMiter = isCircleLineMiter;
5763
6740
  exports.isCompositeSymbol = isCompositeSymbol;
5764
6741
  exports.isDashedBrush = isDashedBrush;
5765
6742
  exports.isFilledLineMitter = isFilledLineMitter;
6743
+ exports.isH3GridSymbol = isH3GridSymbol;
5766
6744
  exports.isHatchBrush = isHatchBrush;
5767
6745
  exports.isImageSymbol = isImageSymbol;
5768
6746
  exports.isLabelSymbol = isLabelSymbol;
6747
+ exports.isLayerService = isLayerService;
5769
6748
  exports.isMaskedImageSymbol = isMaskedImageSymbol;
5770
6749
  exports.isMiterExist = isMiterExist;
5771
6750
  exports.isNumeric = isNumeric;
6751
+ exports.isObject = isObject;
5772
6752
  exports.isParameterByAttribute = isParameterByAttribute;
5773
6753
  exports.isParameterType = isParameterType;
5774
6754
  exports.isParameterValueSimple = isParameterValueSimple;
@@ -5785,7 +6765,9 @@ exports.isPolylineLikePolygon = isPolylineLikePolygon;
5785
6765
  exports.isPolylineSymbol = isPolylineSymbol;
5786
6766
  exports.isPolylineSymbols = isPolylineSymbols;
5787
6767
  exports.isRangeClass = isRangeClass;
6768
+ exports.isRangeCondition = isRangeCondition;
5788
6769
  exports.isRasterSymbol = isRasterSymbol;
6770
+ exports.isRequisiteNumbers = isRequisiteNumbers;
5789
6771
  exports.isSGisClusterSymbol = isSGisClusterSymbol;
5790
6772
  exports.isSGisH3Symbol = isSGisH3Symbol;
5791
6773
  exports.isSGisImageSymbol = isSGisImageSymbol;
@@ -5797,29 +6779,44 @@ exports.isSimpleOffset = isSimpleOffset;
5797
6779
  exports.isSimplePolylineSymbol = isSimplePolylineSymbol;
5798
6780
  exports.isSimpleSymbol = isSimpleSymbol;
5799
6781
  exports.isSizableSymbol = isSizableSymbol;
6782
+ exports.isSizeClassification = isSizeClassification;
5800
6783
  exports.isSolidBrush = isSolidBrush;
5801
6784
  exports.isSquareLineMiter = isSquareLineMiter;
5802
6785
  exports.isSquareSymbol = isSquareSymbol;
5803
6786
  exports.isStaticImageSymbol = isStaticImageSymbol;
6787
+ exports.isStringAsInn = isStringAsInn;
6788
+ exports.isStringAsKpp = isStringAsKpp;
6789
+ exports.isStringAsMail = isStringAsMail;
6790
+ exports.isStringAsOgrn = isStringAsOgrn;
6791
+ exports.isStringAsPhone = isStringAsPhone;
6792
+ exports.isStringAsUrl = isStringAsUrl;
6793
+ exports.isStringContainsDate = isStringContainsDate;
5804
6794
  exports.isStringParameterValue = isStringParameterValue;
5805
6795
  exports.isStrokeStyledSymbol = isStrokeStyledSymbol;
5806
6796
  exports.isStyle = isStyle;
6797
+ exports.isSvgPointSymbol = isSvgPointSymbol;
5807
6798
  exports.isSymbolWithOffset = isSymbolWithOffset;
5808
6799
  exports.isTwoDimensionalSymbol = isTwoDimensionalSymbol;
5809
6800
  exports.isUniqueClass = isUniqueClass;
5810
6801
  exports.isValidParameter = isValidParameter;
6802
+ exports.isValidUrl = isValidUrl;
6803
+ exports.mailHref = mailHref;
6804
+ exports.manipulateSvgSymbol = manipulateSvgSymbol;
6805
+ exports.matchPhone = matchPhone;
5811
6806
  exports.measureAreaSymbol = measureAreaSymbol;
5812
6807
  exports.measureLengthSymbol = measureLengthSymbol;
5813
6808
  exports.measurePolygonSnapSymbol = measurePolygonSnapSymbol;
5814
6809
  exports.metersToPixels = metersToPixels;
5815
6810
  exports.numberWithSpaces = numberWithSpaces;
5816
6811
  exports.packStyle = packStyle;
6812
+ exports.phoneHref = phoneHref;
5817
6813
  exports.polygonCircleFromPoint = polygonCircleFromPoint;
5818
6814
  exports.printRangeClass = printRangeClass;
5819
6815
  exports.renderSymbolToCanvas = renderSymbolToCanvas;
5820
6816
  exports.selectedPoint = selectedPoint;
5821
6817
  exports.selectedPolygon = selectedPolygon;
5822
6818
  exports.selectedPolyline = selectedPolyline;
6819
+ exports.serializeSvgPointSymbol = serializeSvgPointSymbol;
5823
6820
  exports.setDefaultParameterValue = setDefaultParameterValue;
5824
6821
  exports.setParameterValue = setParameterValue;
5825
6822
  exports.shouldUpdateMapState = shouldUpdateMapState;
@@ -5831,6 +6828,8 @@ exports.toIntervals = toIntervals;
5831
6828
  exports.toLineDash = toLineDash;
5832
6829
  exports.unClassify = unClassify;
5833
6830
  exports.updateMapResolution = updateMapResolution;
6831
+ exports.updateSymbolParameter = updateSymbolParameter;
6832
+ exports.urlHref = urlHref;
5834
6833
  exports.useCanvas = useCanvas;
5835
6834
  exports.useClusterLayer = useClusterLayer;
5836
6835
  exports.useCrs = useCrs;
@@ -5865,6 +6864,7 @@ exports.useMetersToPixelsCb = useMetersToPixelsCb;
5865
6864
  exports.useMount = useMount;
5866
6865
  exports.useProperty = useProperty;
5867
6866
  exports.useScale = useScale;
6867
+ exports.useSvgSymbol = useSvgSymbol;
5868
6868
  exports.useSymbol = useSymbol;
5869
6869
  exports.useToggle = useToggle;
5870
6870
  exports.useTooltip = useTooltip;