@evergis/react 2.0.166 → 2.0.167

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 +5 -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 +1307 -320
  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 +1229 -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
- };
4843
-
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
- };
5506
+ const bottomLeft = distance => styled.css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteralLoose(["\n bottom: ", ";\n left: ", ";\n"])), distance, distance);
4948
5507
 
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 :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,377 @@ 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 Legend = _ref => {
6113
+ let {
6114
+ layerInfo
6115
+ } = _ref;
6116
+ const classified = getClassified(layerInfo);
6117
+ const params = Object.keys(classified);
6118
+ return React__default.createElement(MapLegendContainer, null, Object.keys(classified).map((param, index) => {
6119
+ var _classified$param$val, _layerInfo$style;
6120
+
6121
+ const attributeName = getAttributeNameFromCondition((_classified$param$val = classified[param].values[0]) == null ? void 0 : _classified$param$val.condition);
6122
+ return React__default.createElement(LegendSection, {
6123
+ symbol: (_layerInfo$style = layerInfo.style) == null ? void 0 : _layerInfo$style.symbol,
6124
+ attributeType: getAttributeType(layerInfo, attributeName),
6125
+ attributeName: attributeName,
6126
+ classified: classified[param],
6127
+ param: param,
6128
+ params: params,
6129
+ index: index
6130
+ });
6131
+ }));
6132
+ };
6133
+
6134
+ const Map = _ref => {
6135
+ let {
6136
+ className,
6137
+ position,
6138
+ resolution,
6139
+ minScale,
6140
+ maxScale,
6141
+ children,
6142
+ onBboxChange,
6143
+ style
6144
+ } = _ref;
6145
+ const wrapperRef = useMapWrapper();
6146
+ const {
6147
+ map
6148
+ } = useMapContext();
6149
+ const handleBboxChange = React.useCallback(state => {
6150
+ if (onBboxChange && shouldUpdateMapState(map, {
6151
+ position,
6152
+ resolution
6153
+ })) {
6154
+ onBboxChange(state);
6155
+ }
6156
+ }, [map, onBboxChange, position, resolution]);
6157
+ useUpdateMapView({
6158
+ position,
6159
+ resolution
6160
+ });
6161
+ useMaxMinScale(minScale, maxScale, position, resolution);
6162
+ useMapBboxChange(handleBboxChange);
6163
+ return React__default.createElement("div", {
6164
+ className: className,
6165
+ ref: wrapperRef,
6166
+ style: style
6167
+ }, children);
6168
+ };
6169
+
5257
6170
  let MeasureTool = /*#__PURE__*/function (_React$Component) {
5258
6171
  _inherits(MeasureTool, _React$Component);
5259
6172
 
@@ -5458,15 +6371,15 @@ const Measurer = _ref => {
5458
6371
  }, props)) : null;
5459
6372
  };
5460
6373
 
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 => {
6374
+ var _templateObject$6, _templateObject2$6, _templateObject3$4;
6375
+ 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"])));
6376
+ 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
6377
  let {
5465
6378
  width
5466
6379
  } = _ref;
5467
6380
  return width + "px";
5468
6381
  });
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 => {
6382
+ 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
6383
  let {
5471
6384
  alignEnd
5472
6385
  } = _ref2;
@@ -5519,17 +6432,17 @@ const ZoomLevel = () => {
5519
6432
  }, level || 0);
5520
6433
  };
5521
6434
 
5522
- var _templateObject$8, _templateObject2$8, _templateObject3$6, _templateObject4$5, _templateObject5$5, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$2, _templateObject10$2, _templateObject11$2;
6435
+ var _templateObject$7, _templateObject2$7, _templateObject3$5, _templateObject4$4, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$2, _templateObject10$2, _templateObject11$2;
5523
6436
 
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);
6437
+ 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
6438
 
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);
6439
+ 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
6440
 
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);
6441
+ 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
6442
 
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);
6443
+ 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
6444
 
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));
6445
+ 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
6446
 
5534
6447
  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
6448
 
@@ -5629,13 +6542,24 @@ exports.CardHeader = CardHeader;
5629
6542
  exports.CircleLineMiterRender = CircleLineMiterRender;
5630
6543
  exports.ClassificationCondition = ClassificationCondition;
5631
6544
  exports.ClassificationManager = ClassificationManager;
6545
+ exports.ClassifiedItem = ClassifiedItem;
5632
6546
  exports.ClusterLayer = ClusterLayer;
5633
6547
  exports.ClusterSymbol = ClusterSymbol;
5634
6548
  exports.CompoundIcon = CompoundIcon;
5635
6549
  exports.DEFAULT_CRS = DEFAULT_CRS;
6550
+ exports.DEFAULT_ID_ATTRIBUTE_NAME = DEFAULT_ID_ATTRIBUTE_NAME;
6551
+ exports.DEFAULT_LEGEND_SIZES = DEFAULT_LEGEND_SIZES;
6552
+ exports.DEFAULT_LEGEND_STYLES = DEFAULT_LEGEND_STYLES;
6553
+ exports.DEFAULT_LEGEND_SYMBOL_SIZE = DEFAULT_LEGEND_SYMBOL_SIZE;
6554
+ exports.DEFAULT_PARAMETER_INFO = DEFAULT_PARAMETER_INFO;
5636
6555
  exports.DEFAULT_SRID = DEFAULT_SRID;
6556
+ exports.DEFAULT_SYMBOL_FILL_COLOR = DEFAULT_SYMBOL_FILL_COLOR;
6557
+ exports.DEFAULT_SYMBOL_OFFSET = DEFAULT_SYMBOL_OFFSET;
5637
6558
  exports.DEFAULT_SYMBOL_SIZE = DEFAULT_SYMBOL_SIZE;
6559
+ exports.DEFAULT_SYMBOL_STROKE_COLOR = DEFAULT_SYMBOL_STROKE_COLOR;
6560
+ exports.DEFAULT_SYMBOL_WITH_BG_SIZE = DEFAULT_SYMBOL_WITH_BG_SIZE;
5638
6561
  exports.DraggableMarker = DraggableMarker;
6562
+ exports.EXTRA_BORDER_SIZE = EXTRA_BORDER_SIZE;
5639
6563
  exports.EvergisCard = EvergisCard;
5640
6564
  exports.EvergisCardAttribute = EvergisCardAttribute;
5641
6565
  exports.EvergisCardAttributeContainer = AttributeContainer;
@@ -5663,39 +6587,41 @@ exports.EvergisStyle = EvergisStyle;
5663
6587
  exports.EvergisTileLayer = EvergisTileLayer;
5664
6588
  exports.FeatureLayer = FeatureLayer;
5665
6589
  exports.Fullscreen = Fullscreen;
6590
+ exports.GEOMETRY_ATTRIBUTE = GEOMETRY_ATTRIBUTE;
6591
+ exports.ItemSeparator = ItemSeparator;
6592
+ exports.ItemText = ItemText;
5666
6593
  exports.LabelSymbol = LabelSymbol;
5667
6594
  exports.Legend = Legend;
5668
- exports.LegendContainer = LegendContainer;
5669
6595
  exports.LegendProvider = LegendProvider;
5670
6596
  exports.LegendSection = LegendSection;
5671
- exports.LegendSectionContainer = LegendSectionContainer;
5672
- exports.LegendSymbol = LegendSymbol;
5673
- exports.LegendValue = LegendValue;
5674
- exports.LegendValueContainer = LegendValueContainer;
6597
+ exports.LegendSymbolRenderer = LegendSymbolRenderer;
5675
6598
  exports.LineMiterRender = LineMiterRender;
5676
6599
  exports.Map = Map;
5677
6600
  exports.MapControl = MapControl;
5678
6601
  exports.MapControls = MapControls;
5679
- exports.MapLegend = MapLegend;
5680
6602
  exports.MapLegendContainer = MapLegendContainer;
5681
- exports.MapLegendDescription = MapLegendDescription;
6603
+ exports.MapLegendControl = MapLegendControl;
5682
6604
  exports.MapLegendDescriptionContainer = MapLegendDescriptionContainer;
5683
6605
  exports.MapLegendExpandButton = MapLegendExpandButton;
5684
6606
  exports.MapLegendHeader = MapLegendHeader;
5685
6607
  exports.MapLegendItem = MapLegendItem;
5686
6608
  exports.MapLegendItems = MapLegendItems;
6609
+ exports.MapLegendItemsContainer = MapLegendItemsContainer;
5687
6610
  exports.MapLegendOther = MapLegendOther;
5688
6611
  exports.MapLegendSectionContainer = MapLegendSectionContainer;
5689
- exports.MapLegendSymbol = MapLegendSymbol;
5690
6612
  exports.MapLegendValueDescr = MapLegendValueDescr;
5691
6613
  exports.MapLegendValues = MapLegendValues;
6614
+ exports.MapLegendValuesOther = MapLegendValuesOther;
6615
+ exports.MapLegendValuesRange = MapLegendValuesRange;
5692
6616
  exports.MapProvider = MapProvider;
6617
+ exports.MaximizedLegend = MaximizedLegend;
5693
6618
  exports.Measure = Measure;
5694
6619
  exports.MeasureTool = MeasureTool;
5695
6620
  exports.Measurer = Measurer;
5696
- exports.MinimizedLegend = MinimizedLegend;
6621
+ exports.MinimizedLegendContainer = MinimizedLegendContainer;
5697
6622
  exports.NO_CONTENT_VALUE = NO_CONTENT_VALUE;
5698
6623
  exports.Noop = Noop;
6624
+ exports.PARAMETER_INFOS = PARAMETER_INFOS;
5699
6625
  exports.PREVIEW_LIMITS = PREVIEW_LIMITS;
5700
6626
  exports.SGisBrushFill = SGisBrushFill;
5701
6627
  exports.SGisImageFill = SGisImageFill;
@@ -5703,6 +6629,9 @@ exports.SGisPolygonSymbol = SGisPolygonSymbol;
5703
6629
  exports.SGisPolylineSymbol = SGisPolylineSymbol;
5704
6630
  exports.SOLID_INTERVALS = SOLID_INTERVALS;
5705
6631
  exports.SVGPoly = SVGPoly;
6632
+ exports.SYMBOL_CLASSIFICATION = SYMBOL_CLASSIFICATION;
6633
+ exports.SYMBOL_LIMITS = SYMBOL_LIMITS;
6634
+ exports.SYMBOL_SIZE_PARAMETERS = SYMBOL_SIZE_PARAMETERS;
5706
6635
  exports.ScaleRuler = ScaleRuler;
5707
6636
  exports.ScaleRulerBlock = ScaleRulerBlock;
5708
6637
  exports.ScaleRulerContainer = ScaleRulerContainer;
@@ -5711,11 +6640,18 @@ exports.SelectedPointSymbol = SelectedPointSymbol;
5711
6640
  exports.SelectedPolySymbol = SelectedPolySymbol;
5712
6641
  exports.ShadowedPointSymbol = ShadowedPointSymbol;
5713
6642
  exports.ShadowedPolySymbol = ShadowedPolySymbol;
6643
+ exports.SizeMinimizedLegend = SizeMinimizedLegend;
5714
6644
  exports.SizeMinimizedLegendDown = SizeMinimizedLegendDown;
6645
+ exports.SizeMinimizedLegendLabel = SizeMinimizedLegendLabel;
6646
+ exports.SizeMinimizedLegendSymbol = SizeMinimizedLegendSymbol;
5715
6647
  exports.SizeMinimizedLegendUp = SizeMinimizedLegendUp;
5716
6648
  exports.SquareLineMiterRender = SquareLineMiterRender;
5717
6649
  exports.StyleSymbol = StyleSymbol;
6650
+ exports.SvgSymbol = SvgSymbol;
5718
6651
  exports.Symbol = Symbol;
6652
+ exports.SymbolButton = SymbolButton;
6653
+ exports.SymbolByType = SymbolByType;
6654
+ exports.SymbolContainer = SymbolContainer;
5719
6655
  exports.TextContainer = TextContainer;
5720
6656
  exports.TileLayer = TileLayer;
5721
6657
  exports.Tooltip = Tooltip;
@@ -5725,12 +6661,16 @@ exports.Zoom = Zoom;
5725
6661
  exports.ZoomLevel = ZoomLevel;
5726
6662
  exports.adjustSymbol = adjustSymbol;
5727
6663
  exports.applyParameterValue = applyParameterValue;
6664
+ exports.checkLayerHasLegend = checkLayerHasLegend;
5728
6665
  exports.clamp = clamp;
6666
+ exports.convertSvgToBase64 = convertSvgToBase64;
5729
6667
  exports.copyRings = copyRings;
5730
6668
  exports.createCompositeSymbol = createCompositeSymbol;
5731
6669
  exports.createLabelSymbol = createLabelSymbol;
6670
+ exports.createLegendSymbol = createLegendSymbol;
5732
6671
  exports.createStyleLegend = createStyleLegend;
5733
- exports.createValueTitle = createValueTitle;
6672
+ exports.createSvgGradient = createSvgGradient;
6673
+ exports.createValueTitle = createValueTitle$1;
5734
6674
  exports.defaultOffset = defaultOffset;
5735
6675
  exports.defineStrokeStylePreset = defineStrokeStylePreset;
5736
6676
  exports.deserializeSymbol = deserializeSymbol;
@@ -5741,34 +6681,61 @@ exports.findChildFeatureStyle = findChildFeatureStyle;
5741
6681
  exports.findChildFeatureSymbol = findChildFeatureSymbol;
5742
6682
  exports.formatArea = formatArea;
5743
6683
  exports.formatAttributeValue = formatAttributeValue;
6684
+ exports.formatDate = formatDate;
5744
6685
  exports.formatLength = formatLength;
5745
6686
  exports.formatPolygonMeasure = formatPolygonMeasure;
6687
+ exports.formatRangeClassValue = formatRangeClassValue;
6688
+ exports.formatUniqueClassValue = formatUniqueClassValue;
6689
+ exports.formatValue = formatValue;
6690
+ exports.getAttributeFromCondition = getAttributeFromCondition;
5746
6691
  exports.getAttributeNameFromClassified = getAttributeNameFromClassified;
5747
6692
  exports.getAttributeNameFromCondition = getAttributeNameFromCondition;
6693
+ exports.getAttributeType = getAttributeType;
6694
+ exports.getAttributesConfiguration = getAttributesConfiguration;
5748
6695
  exports.getChildSymbols = getChildSymbols;
6696
+ exports.getClassified = getClassified;
5749
6697
  exports.getCrs = getCrs;
5750
6698
  exports.getDashStylePreset = getDashStylePreset;
6699
+ exports.getDate = getDate;
6700
+ exports.getDimensions = getDimensions;
6701
+ exports.getExprFromCondition = getExprFromCondition;
5751
6702
  exports.getFeatureSymbol = getFeatureSymbol;
6703
+ exports.getHexColor = getHexColor;
6704
+ exports.getLayerDefinition = getLayerDefinition;
5752
6705
  exports.getLegendSymbolRenders = getLegendSymbolRenders;
6706
+ exports.getLegendSymbolSize = getLegendSymbolSize;
5753
6707
  exports.getLineDash = getLineDash;
5754
6708
  exports.getMapLegendSymbolRenders = getMapLegendSymbolRenders;
5755
6709
  exports.getMapState = getMapState;
6710
+ exports.getMaximizedLegendValues = getMaximizedLegendValues;
6711
+ exports.getMinimizedLegendValues = getMinimizedLegendValues;
5756
6712
  exports.getOffsetParameterValue = getOffsetParameterValue;
6713
+ exports.getParameterFromSymbol = getParameterFromSymbol;
5757
6714
  exports.getParameterValue = getParameterValue;
6715
+ exports.getRangeValues = getRangeValues$1;
5758
6716
  exports.getScale = getScale;
6717
+ exports.getServiceConfiguration = getServiceConfiguration;
6718
+ exports.getSignFromConditionPart = getSignFromConditionPart;
6719
+ exports.getSymbolParameterInfo = getSymbolParameterInfo;
5759
6720
  exports.getSymbolRenders = getSymbolRenders;
6721
+ exports.getSymbolStrokeWidth = getSymbolStrokeWidth;
6722
+ exports.getTitleFromCondition = getTitleFromCondition;
6723
+ exports.getValueFromConditionPart = getValueFromConditionPart;
5760
6724
  exports.isArrowLineMiter = isArrowLineMiter;
5761
6725
  exports.isCalculatedParameter = isCalculatedParameter;
5762
6726
  exports.isCircleLineMiter = isCircleLineMiter;
5763
6727
  exports.isCompositeSymbol = isCompositeSymbol;
5764
6728
  exports.isDashedBrush = isDashedBrush;
5765
6729
  exports.isFilledLineMitter = isFilledLineMitter;
6730
+ exports.isH3GridSymbol = isH3GridSymbol;
5766
6731
  exports.isHatchBrush = isHatchBrush;
5767
6732
  exports.isImageSymbol = isImageSymbol;
5768
6733
  exports.isLabelSymbol = isLabelSymbol;
6734
+ exports.isLayerService = isLayerService;
5769
6735
  exports.isMaskedImageSymbol = isMaskedImageSymbol;
5770
6736
  exports.isMiterExist = isMiterExist;
5771
6737
  exports.isNumeric = isNumeric;
6738
+ exports.isObject = isObject;
5772
6739
  exports.isParameterByAttribute = isParameterByAttribute;
5773
6740
  exports.isParameterType = isParameterType;
5774
6741
  exports.isParameterValueSimple = isParameterValueSimple;
@@ -5785,7 +6752,9 @@ exports.isPolylineLikePolygon = isPolylineLikePolygon;
5785
6752
  exports.isPolylineSymbol = isPolylineSymbol;
5786
6753
  exports.isPolylineSymbols = isPolylineSymbols;
5787
6754
  exports.isRangeClass = isRangeClass;
6755
+ exports.isRangeCondition = isRangeCondition;
5788
6756
  exports.isRasterSymbol = isRasterSymbol;
6757
+ exports.isRequisiteNumbers = isRequisiteNumbers;
5789
6758
  exports.isSGisClusterSymbol = isSGisClusterSymbol;
5790
6759
  exports.isSGisH3Symbol = isSGisH3Symbol;
5791
6760
  exports.isSGisImageSymbol = isSGisImageSymbol;
@@ -5797,29 +6766,44 @@ exports.isSimpleOffset = isSimpleOffset;
5797
6766
  exports.isSimplePolylineSymbol = isSimplePolylineSymbol;
5798
6767
  exports.isSimpleSymbol = isSimpleSymbol;
5799
6768
  exports.isSizableSymbol = isSizableSymbol;
6769
+ exports.isSizeClassification = isSizeClassification;
5800
6770
  exports.isSolidBrush = isSolidBrush;
5801
6771
  exports.isSquareLineMiter = isSquareLineMiter;
5802
6772
  exports.isSquareSymbol = isSquareSymbol;
5803
6773
  exports.isStaticImageSymbol = isStaticImageSymbol;
6774
+ exports.isStringAsInn = isStringAsInn;
6775
+ exports.isStringAsKpp = isStringAsKpp;
6776
+ exports.isStringAsMail = isStringAsMail;
6777
+ exports.isStringAsOgrn = isStringAsOgrn;
6778
+ exports.isStringAsPhone = isStringAsPhone;
6779
+ exports.isStringAsUrl = isStringAsUrl;
6780
+ exports.isStringContainsDate = isStringContainsDate;
5804
6781
  exports.isStringParameterValue = isStringParameterValue;
5805
6782
  exports.isStrokeStyledSymbol = isStrokeStyledSymbol;
5806
6783
  exports.isStyle = isStyle;
6784
+ exports.isSvgPointSymbol = isSvgPointSymbol;
5807
6785
  exports.isSymbolWithOffset = isSymbolWithOffset;
5808
6786
  exports.isTwoDimensionalSymbol = isTwoDimensionalSymbol;
5809
6787
  exports.isUniqueClass = isUniqueClass;
5810
6788
  exports.isValidParameter = isValidParameter;
6789
+ exports.isValidUrl = isValidUrl;
6790
+ exports.mailHref = mailHref;
6791
+ exports.manipulateSvgSymbol = manipulateSvgSymbol;
6792
+ exports.matchPhone = matchPhone;
5811
6793
  exports.measureAreaSymbol = measureAreaSymbol;
5812
6794
  exports.measureLengthSymbol = measureLengthSymbol;
5813
6795
  exports.measurePolygonSnapSymbol = measurePolygonSnapSymbol;
5814
6796
  exports.metersToPixels = metersToPixels;
5815
6797
  exports.numberWithSpaces = numberWithSpaces;
5816
6798
  exports.packStyle = packStyle;
6799
+ exports.phoneHref = phoneHref;
5817
6800
  exports.polygonCircleFromPoint = polygonCircleFromPoint;
5818
6801
  exports.printRangeClass = printRangeClass;
5819
6802
  exports.renderSymbolToCanvas = renderSymbolToCanvas;
5820
6803
  exports.selectedPoint = selectedPoint;
5821
6804
  exports.selectedPolygon = selectedPolygon;
5822
6805
  exports.selectedPolyline = selectedPolyline;
6806
+ exports.serializeSvgPointSymbol = serializeSvgPointSymbol;
5823
6807
  exports.setDefaultParameterValue = setDefaultParameterValue;
5824
6808
  exports.setParameterValue = setParameterValue;
5825
6809
  exports.shouldUpdateMapState = shouldUpdateMapState;
@@ -5831,6 +6815,8 @@ exports.toIntervals = toIntervals;
5831
6815
  exports.toLineDash = toLineDash;
5832
6816
  exports.unClassify = unClassify;
5833
6817
  exports.updateMapResolution = updateMapResolution;
6818
+ exports.updateSymbolParameter = updateSymbolParameter;
6819
+ exports.urlHref = urlHref;
5834
6820
  exports.useCanvas = useCanvas;
5835
6821
  exports.useClusterLayer = useClusterLayer;
5836
6822
  exports.useCrs = useCrs;
@@ -5865,6 +6851,7 @@ exports.useMetersToPixelsCb = useMetersToPixelsCb;
5865
6851
  exports.useMount = useMount;
5866
6852
  exports.useProperty = useProperty;
5867
6853
  exports.useScale = useScale;
6854
+ exports.useSvgSymbol = useSvgSymbol;
5868
6855
  exports.useSymbol = useSymbol;
5869
6856
  exports.useToggle = useToggle;
5870
6857
  exports.useTooltip = useTooltip;