@evergis/react 4.0.101 → 4.0.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.esm.js CHANGED
@@ -100,7 +100,30 @@ const ChartWrapperContainer = styled.div.withConfig({ displayName: "ChartWrapper
100
100
  position: relative;
101
101
  width: 100%;
102
102
  `;
103
- const Tooltip = styled.div.withConfig({ displayName: "Tooltip", componentId: "sc-2prpr" }) `
103
+ /*
104
+ * fill-режим: обёртка забирает всю доступную ячейку (её высоту задаёт флекс-цепочка, а не контент графика),
105
+ * на неё вешается ref для ResizeObserver — меряем обе оси без цикла. Плоский div (не Flex uilib), как соседний
106
+ * ChartWrapperContainer, чтобы ref гарантированно дошёл до DOM-узла. Тело графика центрируется внутри.
107
+ */
108
+ const ChartFillMeasure = styled.div.withConfig({ displayName: "ChartFillMeasure", componentId: "sc-1r4oerb" }) `
109
+ position: relative;
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: center;
113
+ width: 100%;
114
+ height: 100%;
115
+ min-width: 0;
116
+ min-height: 0;
117
+ overflow: hidden;
118
+
119
+ /* SVG по умолчанию inline, поэтому под ним остаётся зазор базовой линии (~4px при line-height
120
+ 18.4px): вне fill его скрывал запас высоты, а тело, точно заполнившее ячейку, из-за него
121
+ вылезает за нижнюю границу. Блочный SVG зазора не даёт. */
122
+ svg {
123
+ display: block;
124
+ }
125
+ `;
126
+ const Tooltip = styled.div.withConfig({ displayName: "Tooltip", componentId: "sc-1va8cy3" }) `
104
127
  position: relative;
105
128
  border-radius: 0.25rem;
106
129
  background-color: rgba(28, 33, 48);
@@ -193,7 +216,7 @@ const LineChartStyles = createGlobalStyle `
193
216
  fill: ${({ theme: { palette } }) => palette.textDisabled};
194
217
  }
195
218
  `;
196
- const StyledBarChart = styled(BarChart$1).withConfig({ displayName: "StyledBarChart", componentId: "sc-1i0hrvl" }) `
219
+ const StyledBarChart = styled(BarChart$1).withConfig({ displayName: "StyledBarChart", componentId: "sc-1l1kx80" }) `
197
220
  .domain {
198
221
  display: none;
199
222
  }
@@ -7630,30 +7653,33 @@ const useRenderElement = (type = WidgetType.Dashboard, elementConfig) => {
7630
7653
  ]);
7631
7654
  };
7632
7655
 
7656
+ /** Пустой бокс на отключённом пути — стабильная ссылка, чтобы не плодить ре-рендеры. */
7657
+ const EMPTY_BOX = {};
7633
7658
  /**
7634
- * Измеряет фактическую ширину DOM-элемента и обновляет её на любой ресайз (ResizeObserver).
7659
+ * Измеряет фактические ширину и высоту DOM-элемента и обновляет их на любой ресайз (ResizeObserver).
7635
7660
  *
7636
- * Возвращает `[ref, width]`, где `width` — число пикселей либо `undefined`, пока элемент ещё
7637
- * не измерен. Используется для «резинового» графика: d3-графикам нужна конкретная пиксельная
7638
- * ширина, а не CSS `100%`.
7661
+ * Возвращает `[ref, box]`, где `box` — `{ width, height }` в пикселях (content-box) либо пустой объект,
7662
+ * пока элемент ещё не измерен. Используется для «резинового» графика: d3-графикам нужны конкретные
7663
+ * пиксельные размеры, а не CSS `100%`, а для вписывания (fit) нужны обе оси.
7639
7664
  *
7640
7665
  * `enabled: false` полностью отключает наблюдение — обычные (не fill) графики не измеряются
7641
7666
  * и не вызывают лишних ре-рендеров.
7642
7667
  */
7643
- const useResizeWidth = (enabled) => {
7668
+ const useResizeBox = (enabled) => {
7644
7669
  const ref = useRef(null);
7645
- const [width, setWidth] = useState();
7670
+ const [box, setBox] = useState(EMPTY_BOX);
7646
7671
  useEffect(() => {
7647
7672
  const node = ref.current;
7648
7673
  if (!enabled || !node)
7649
7674
  return;
7650
7675
  const observer = new ResizeObserver(([entry]) => {
7651
- setWidth(entry.contentRect.width);
7676
+ const { width, height } = entry.contentRect;
7677
+ setBox({ width, height });
7652
7678
  });
7653
7679
  observer.observe(node);
7654
7680
  return () => observer.disconnect();
7655
7681
  }, [enabled]);
7656
- return [ref, enabled ? width : undefined];
7682
+ return [ref, enabled ? box : EMPTY_BOX];
7657
7683
  };
7658
7684
 
7659
7685
  const useShownOtherItems = (options) => {
@@ -7775,6 +7801,19 @@ const ContainerChart = styled(Flex).withConfig({ displayName: "ContainerChart",
7775
7801
  justify-content: center;
7776
7802
  width: 100%;
7777
7803
  }
7804
+
7805
+ /* fill: слот забирает остаток высоты ячейки (под слотами title/alias/legend) и центрирует тело графика. */
7806
+ ${({ $fill }) => $fill &&
7807
+ css `
7808
+ flex: 1 1 auto;
7809
+ min-height: 0;
7810
+ align-items: center;
7811
+ justify-content: center;
7812
+
7813
+ > * {
7814
+ height: 100%;
7815
+ }
7816
+ `}
7778
7817
  `;
7779
7818
  const ContainerLegend = styled(Flex).withConfig({ displayName: "ContainerLegend", componentId: "sc-z1n1s8" }) ``;
7780
7819
  const ContainerUnits = styled.div.withConfig({ displayName: "ContainerUnits", componentId: "sc-1vurgy9" }) `
@@ -7790,6 +7829,13 @@ const ContainerValue = styled(Flex).withConfig({ displayName: "ContainerValue",
7790
7829
  font-size: ${({ big }) => (big ? 1.5 : 1)}rem;
7791
7830
  color: ${({ fontColor, theme: { palette } }) => fontColor || palette.textPrimary};
7792
7831
 
7832
+ /* fill: строка со слотом chart+legend забирает остаток высоты Container'а (гейт — только у Chart-контейнера). */
7833
+ ${({ $fill }) => $fill &&
7834
+ css `
7835
+ flex: 1 1 auto;
7836
+ min-height: 0;
7837
+ `}
7838
+
7793
7839
  > * {
7794
7840
  width: ${({ column }) => (column ? "100%" : "auto")};
7795
7841
  }
@@ -8421,6 +8467,10 @@ const ChartContainerWrapper = styled(FlexSpan).withConfig({ displayName: "ChartC
8421
8467
  /* Заданная высота контейнера достаётся телу графика — за вычетом заголовка. */
8422
8468
  ${({ $sizeCss }) => !!$sizeCss?.height &&
8423
8469
  css `
8470
+ /* Раздача высоты требует, чтобы обёртка была flex-колонкой (FlexSpan сам по себе не flex),
8471
+ иначе Container с flex:1 1 auto не растянется на заданную высоту, а fill-график не впишется по высоте. */
8472
+ display: flex;
8473
+
8424
8474
  > ${Container} {
8425
8475
  flex: 1 1 auto;
8426
8476
  min-height: 0;
@@ -8431,17 +8481,19 @@ const ChartContainerWrapper = styled(FlexSpan).withConfig({ displayName: "ChartC
8431
8481
  `;
8432
8482
 
8433
8483
  /**
8434
- * Флаг «растянуть график на всю ширину контейнера» (`options.chartFill` контейнера Chart).
8484
+ * Контекст вписывания графика (`options.fill` контейнера Chart).
8435
8485
  *
8436
8486
  * Компонент `Chart` рендерится через `renderElement({ id: "chart" })` и получает только дочерний
8437
8487
  * узел `{ id: "chart" }` — опции контейнера до него не доходят. `ChartContainer` оборачивает
8438
- * график в провайдер этого контекста, а `Chart` читает флаг через `useContext`.
8488
+ * график в провайдер этого контекста, а `Chart` читает значение через `useContext`.
8439
8489
  */
8440
- const ChartFillContext = createContext(false);
8490
+ const FillContext = createContext({ fill: false, fitHeight: false });
8441
8491
 
8442
8492
  const ChartContainer = memo(({ elementConfig, isVisible, type, renderElement }) => {
8443
8493
  const { options, children } = elementConfig || {};
8444
- const { twoColumns, hideEmpty, chartFill } = options || {};
8494
+ const { twoColumns, hideEmpty, height } = options || {};
8495
+ const fill = options?.fill;
8496
+ const fillContextValue = useMemo(() => ({ fill: !!fill, fitHeight: !!fill && height != null }), [fill, height]);
8445
8497
  const aliasElement = children.find(child => child.id === "alias");
8446
8498
  const chartElement = children.find(child => child.id === "chart");
8447
8499
  const legendElement = children.find(child => child.id === "legend");
@@ -8456,7 +8508,7 @@ const ChartContainer = memo(({ elementConfig, isVisible, type, renderElement })
8456
8508
  const hasItems = !!data[0]?.items?.length;
8457
8509
  if (!loading && !hasItems && hideEmpty)
8458
8510
  return null;
8459
- return (jsxs(ChartContainerWrapper, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(Container, { isColumn: true, children: [aliasElement && jsx(ContainerAlias, { hasBottomMargin: true, children: renderElement({ id: "alias" }) }), jsx(ContainerValue, { column: !twoColumns, alignItems: "center", children: hasItems ? (jsxs(Fragment$1, { children: [jsx(ContainerChart, { children: jsx(ChartFillContext.Provider, { value: !!chartFill, children: renderElement({ id: "chart" }) }) }), jsx(ContainerLegend, { justifyContent: legendElement?.options?.center ? "center" : "flex-start", children: renderElement({ id: "legend" }) })] })) : (jsx(Fragment$1, { children: "\u2014" })) })] }))] }));
8511
+ return (jsxs(ChartContainerWrapper, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(Container, { isColumn: true, children: [aliasElement && jsx(ContainerAlias, { hasBottomMargin: true, children: renderElement({ id: "alias" }) }), jsx(ContainerValue, { column: !twoColumns, alignItems: twoColumns && fill ? "stretch" : "center", "$fill": !!fill, children: hasItems ? (jsxs(Fragment$1, { children: [jsx(ContainerChart, { "$fill": !!fill, children: jsx(FillContext.Provider, { value: fillContextValue, children: renderElement({ id: "chart" }) }) }), jsx(ContainerLegend, { justifyContent: legendElement?.options?.center ? "center" : "flex-start", children: renderElement({ id: "legend" }) })] })) : (jsx(Fragment$1, { children: "\u2014" })) })] }))] }));
8460
8512
  });
8461
8513
 
8462
8514
  const PagesContainer = memo(({ type = WidgetType.Dashboard, noBorders }) => {
@@ -11463,6 +11515,8 @@ const tagTypography = (tag) => ({ $typography }) => {
11463
11515
  ${style.fontSize && `font-size: ${style.fontSize};`}
11464
11516
  ${style.lineHeight && `line-height: ${style.lineHeight};`}
11465
11517
  ${style.fontWeight != null && `font-weight: ${style.fontWeight};`}
11518
+ ${style.marginTop && `margin-top: ${style.marginTop};`}
11519
+ ${style.marginBottom && `margin-bottom: ${style.marginBottom};`}
11466
11520
  `;
11467
11521
  };
11468
11522
  const MarkdownWrapper = styled.div.withConfig({ displayName: "MarkdownWrapper", componentId: "sc-1iv8z8a" }) `
@@ -12695,7 +12749,8 @@ const ChartLoading = ({ column }) => (jsx(Flex, { position: "absolute", width: "
12695
12749
 
12696
12750
  const ContainerLoading = () => (jsx(Flex, { alignContent: "center", justifyContent: "center", width: "100%", children: jsx(CircularProgress, { diameter: 1.5, mono: true }) }));
12697
12751
 
12698
- // forwardRef чтобы Chart мог измерить фактическую ширину обёртки (fill-режим, useResizeWidth).
12752
+ // forwardRef сохранён для совместимости; в fill-режиме ResizeObserver меряет внешнюю обёртку
12753
+ // ChartFillMeasure (см. Chart/index.tsx), а не сам ChartWrapper.
12699
12754
  const ChartWrapper = memo(forwardRef(({ width, height, column, loading, children }, ref) => {
12700
12755
  return (jsxs(ChartWrapperContainer, { ref: ref, column: column, style: { width, height }, children: [loading && jsx(ChartLoading, { column: column }), jsx(Flex, { opacity: loading ? FILTERED_VALUE_OPACITY / 100 : 1, children: children })] }));
12701
12756
  }));
@@ -14032,10 +14087,10 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
14032
14087
  const primaryColor = palette.primary;
14033
14088
  const { t } = useGlobalContext();
14034
14089
  const { expandedContainers, attributes, dataSources } = useWidgetContext(type);
14035
- // chartFill контейнера: график тянется на всю ширину. Ширину измеряем реально (ResizeObserver),
14036
- // т.к. d3-графики (и useChartChange для line) требуют пиксельное число, а не CSS "100%".
14037
- const fill = useContext(ChartFillContext);
14038
- const [chartRef, measuredWidth] = useResizeWidth(fill);
14090
+ // fill контейнера: вписываем тело графика в контейнер. Размеры ячейки измеряем реально (ResizeObserver),
14091
+ // т.к. d3-графики (и useChartChange для line) требуют пиксельные числа, а не CSS "100%".
14092
+ const { fill, fitHeight } = useContext(FillContext);
14093
+ const [chartRef, { width: measuredWidth, height: measuredHeight }] = useResizeBox(fill);
14039
14094
  const { id, options, children } = element || {};
14040
14095
  const { column, markers: configMarkers, showLabels, showMarkers, showTotal, totalWord: configTotalWord, totalAttribute, expandable, expanded, chartType, relatedDataSources, defaultColor, dotSnapping, } = options || {};
14041
14096
  const isLineChart = chartType === "line";
@@ -14071,11 +14126,19 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
14071
14126
  const chartWidth = fill
14072
14127
  ? measuredWidth ?? DEFAULT_CHART_WIDTH
14073
14128
  : toPxNumber(width) ?? DEFAULT_CHART_WIDTH;
14129
+ // Фит по высоте включается только при заданной высоте контейнера (fitHeight) и уже измеренной
14130
+ // ячейке; иначе — прежняя фикс. высота options.height. Флаг важен и ниже: он различает два
14131
+ // смысла chartHeight — «высота тела» (вне fill) и «вся доступная высота» (в fill).
14132
+ const fitsHeight = useMemo(() => !!(fill && fitHeight && measuredHeight), [fill, fitHeight, measuredHeight]);
14133
+ // fill по высоте: тянем тело графика на измеренную доступную высоту ячейки (content-box минус слоты).
14134
+ const chartHeight = useMemo(() => (fitsHeight && measuredHeight ? measuredHeight : height), [fitsHeight, measuredHeight, height]);
14135
+ // Круглый график вписываем по короткой стороне (object-fit: contain), центрируя в ячейке.
14136
+ const pieSide = useMemo(() => (fitsHeight && measuredHeight ? Math.min(chartWidth, measuredHeight) : chartWidth), [fitsHeight, measuredHeight, chartWidth]);
14074
14137
  const [customize] = useChartChange({
14075
14138
  dataSources: config.dataSources,
14076
14139
  chartId: elementConfig?.id,
14077
14140
  width: chartWidth,
14078
- height,
14141
+ height: chartHeight,
14079
14142
  fontColor,
14080
14143
  relatedAttributes,
14081
14144
  defaultColor: primaryColor,
@@ -14175,26 +14238,37 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
14175
14238
  .flat()
14176
14239
  .map(({ values }) => values)
14177
14240
  .flat();
14178
- return (jsxs(AnyChartWrapper, { height: height, children: [jsx(LineChartStyles, {}), jsx(LineChart, { data: lineChartData, labels: labels, markers: markers, width: chartWidth, height: height, xAxisPadding: 15, yAxisPadding: 0, min: Math.min(...chartValues), customYAxisSelection: yAxis => {
14241
+ return (jsxs(AnyChartWrapper, { height: chartHeight, children: [jsx(LineChartStyles, {}), jsx(LineChart, { data: lineChartData, labels: labels, markers: markers, width: chartWidth, height: chartHeight, xAxisPadding: 15, yAxisPadding: 0, min: Math.min(...chartValues), customYAxisSelection: yAxis => {
14179
14242
  if (isHidedY) {
14180
14243
  yAxis.remove();
14181
14244
  }
14182
14245
  }, customYAxis: yAxis => yAxis.ticks(4), renderTooltip: renderLineChartTooltip, customize: customize, dotSnapping: dotSnapping, dynamicTooltipEnable: true, stackedTooltip: true, tooltipClassName: "dashboardLineChartTooltip", drawGridX: !isHidedY, margin: margin })] }));
14183
14246
  }
14184
14247
  if (isStackBar) {
14185
- const stackBarHeight = showTotal ? height + STACK_BAR_TOTAL_HEIGHT : height;
14248
+ // Вне fill chartHeight высота самой полосы, и обёртка честно становится выше на строку
14249
+ // итога. В fill chartHeight — уже ВСЯ доступная высота ячейки, поэтому строку итога надо
14250
+ // вычесть из неё (обёртка остаётся ровно по ячейке), а не прибавить сверху — иначе тело
14251
+ // вылезает за нижнюю границу на STACK_BAR_TOTAL_HEIGHT.
14252
+ const stackBarHeight = showTotal && !fitsHeight ? chartHeight + STACK_BAR_TOTAL_HEIGHT : chartHeight;
14186
14253
  return (jsx(AnyChartWrapper, { height: stackBarHeight, children: jsx(StackBar, { data: data, filterName: filterName, type: type, alias: elementConfig?.children?.find(child => child.id === "alias"), options: options, renderTooltip: renderPieChartTooltip, renderElement: renderElement }) }));
14187
14254
  }
14188
14255
  if (isPieChart) {
14189
- return (jsx(AnyChartWrapper, { height: height, children: jsx(PieChart, { data: (data[0]?.items
14256
+ return (jsx(AnyChartWrapper, { height: fill ? pieSide : height, children: jsx(PieChart, { data: (data[0]?.items
14190
14257
  ?.filter(({ value }) => !isEmptyValue(value))
14191
14258
  ?.map(item => ({
14192
14259
  ...item,
14193
14260
  color: formatFilterColor(item.name, item.color, defaultColor),
14194
- })) || []), width: chartWidth, height: chartWidth, padAngle: angle, outerRadius: radius, cornerRadius: cornerRadius, renderTooltip: renderPieChartTooltip, withTooltip: true, onClick: filterName ? item => onFilter(item.name) : undefined, children: showTotal && (jsx(PieChartCenter, { children: totalWord || roundTotalSum(+totalSum) })) }) }));
14261
+ })) || []), width: pieSide, height: pieSide, padAngle: angle, outerRadius: radius, cornerRadius: cornerRadius, renderTooltip: renderPieChartTooltip, withTooltip: true, onClick: filterName ? item => onFilter(item.name) : undefined, children: showTotal && (jsx(PieChartCenter, { children: totalWord || roundTotalSum(+totalSum) })) }) }));
14195
14262
  }
14196
14263
  const barChartData = getDataFromFilterItems(data[0]?.items);
14197
- return (jsx(BarChartWrapper, { height: height + margin.bottom, children: jsx(BarChartContainer, { children: jsx(StyledBarChart, { data: barChartData, colors: getColorsFromFilterItems(data[0]?.items, defaultColor, formatFilterColor), minValue: getMinValueFromFilterItems(data[0]?.items), markers: markers, width: chartWidth, height: height, barWidth: barWidth, barPadding: padding, customYAxisLeft: customYAxisLeft, customXAxisBottom: xAxisBottom => customXAxisBottom(xAxisBottom, barChartData), customYAxis: axis => !showLabels && axis.remove(), customBars: ({ bars }) => {
14264
+ // Тот же случай, что у stack: обёртка выше тела на подписи оси X (margin.bottom). В fill
14265
+ // chartHeight — вся доступная высота, поэтому подписи вычитаем из неё, а не прибавляем.
14266
+ // BAR_CHART_FOOTER_MARGIN — это внешний margin-bottom самой BarChartWrapper: в её height он
14267
+ // не входит, но место в ячейке занимает, поэтому его тоже вычитаем.
14268
+ const barBodyHeight = fitsHeight
14269
+ ? chartHeight - margin.bottom - BAR_CHART_FOOTER_MARGIN
14270
+ : chartHeight;
14271
+ return (jsx(BarChartWrapper, { height: barBodyHeight + margin.bottom, children: jsx(BarChartContainer, { children: jsx(StyledBarChart, { data: barChartData, colors: getColorsFromFilterItems(data[0]?.items, defaultColor, formatFilterColor), minValue: getMinValueFromFilterItems(data[0]?.items), markers: markers, width: chartWidth, height: barBodyHeight, barWidth: barWidth, barPadding: padding, customYAxisLeft: customYAxisLeft, customXAxisBottom: xAxisBottom => customXAxisBottom(xAxisBottom, barChartData), customYAxis: axis => !showLabels && axis.remove(), customBars: ({ bars }) => {
14198
14272
  bars.attr("rx", radius);
14199
14273
  bars.attr("ry", radius);
14200
14274
  }, margin: margin, xAxisPadding: 0, yAxisPadding: 0, formatTooltipValue: formatTooltipValue, formatTooltipName: formatTooltipName, hideTooltipGroupName: true, dynamicTooltipEnable: true, isBarTooltip: true, onBarClick: filterName ? item => onFilter(item.name) : undefined }) }) }));
@@ -14212,6 +14286,10 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
14212
14286
  defaultColor,
14213
14287
  formatFilterColor,
14214
14288
  chartWidth,
14289
+ chartHeight,
14290
+ fitsHeight,
14291
+ pieSide,
14292
+ fill,
14215
14293
  barWidth,
14216
14294
  showLabels,
14217
14295
  padding,
@@ -14239,7 +14317,11 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
14239
14317
  ]);
14240
14318
  if (!isVisibleContainer(id, expandable, expanded, expandedContainers))
14241
14319
  return null;
14242
- return (jsx(ChartWrapper, { ref: chartRef, width: width, height: isStackBar ? "auto" : isPieChart ? (fill ? chartWidth : width) : height, column: column, loading: loading, children: renderChart }));
14320
+ const chartBody = (jsx(ChartWrapper, { width: isPieChart && fill ? pieSide : width, height: isStackBar ? "auto" : isPieChart ? (fill ? pieSide : width) : chartHeight, column: column, loading: loading, children: renderChart }));
14321
+ if (!fill)
14322
+ return chartBody;
14323
+ // fill: тело центрируется в измеряемой обёртке, ref которой питает ResizeObserver обеими осями.
14324
+ return jsx(ChartFillMeasure, { ref: chartRef, children: chartBody });
14243
14325
  });
14244
14326
 
14245
14327
  const ChartLegend = ({ data, chartElement, fontSize, type, twoColumns, loading }) => {
@@ -14967,5 +15049,5 @@ const Map$1 = ({ zIndex, lowerSiblings, upperSiblings, onError, children, ...res
14967
15049
  }, children: children }), upperSiblings] }));
14968
15050
  };
14969
15051
 
14970
- export { ALIGNMENTS, ALIGN_ITEMS, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EMPTY_DATA_SOURCE_LAYER_INFO, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILL_SIZE, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardBackgroundHeader, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GlobalContext, GlobalProvider, Header, HeaderContainer, HeaderFontColorMixin, HeaderFrontView, HeaderTemplate, HeaderTitleContainer, HiddenTitleItems, IconContainer, ImageContainer, LEFT_PANEL_HEADER_HEIGHT, Layer, LayerDescription, LayerGroup, LayerGroupList, LayerIcon, LayerIconContainer, LayerListContainer, LayerTree, LayersContainer, LayersListWrapper, LinearProgressContainer, LogTerminal, LogoContainer, MAX_CHART_WIDTH, Map$1 as Map, MapContext, MapProvider, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OBJECT_FITS, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, RoundedBackgroundContainer, SAVE_HOOK_RESULT_DURATION, SERVER_NOTIFICATION_EVENT, STACK_BAR_TOTAL_HEIGHT, ScalingFactor, ServerNotificationsContext, ServerNotificationsProvider, SlideshowContainer, SmallPreviewContainer$1 as SmallPreviewContainer, SmallPreviewControl, SmallPreviewCounter, SmallPreviewImages, SmallPreviewLeft, SmallPreviewRight, StackBar, StyligClassificationTypes, SvgImage, TIME_ZONE_FORMAT, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, VIEW_MODES, WidgetType, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyTreeFilterToCondition, applyVarsToCondition, asAttributeName, asChartId, asContainerId, asDataSourceName, asFilterName, asLayerName, asModalId, asResourceId, asTabId, checkEqualOrIncludes, checkIsLoading, createConfigLayer, createConfigPage, createNewPageId, createSaveNotificationId, createTreeNode, dateOptions, debounce, decimalOpacityToHex, eqlParametersToPayload, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, geometryToEwkt, getActualExtrusionHeight, getAttributeByName, getAttributeConfigurationByName, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDataSourceLayerInfo, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getLayerInfo, getLayerInfoAttribute, getLayerInfoFromDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getStyleAttributes, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, getWrapperSizeStyle, hexToRgba, isEmptyElementValue, isEmptyValue, isFillSize, isHiddenEmptyValue, isHookActive, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isTreeFilterValue, isVisibleContainer, mergeAttributeConfigurations, metersPerPixel, numberOptions, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, rgbToHex, roundTotalSum, sizeCssMixin, sliceShownOtherItems, stretchPalette, timeOptions, toCssSize, toPxNumber, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, treeNodesToProjectItems, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useExpandableContainers, useExportPdf, useFeatureSaveHooks, useFetchImageWithAuth, useFetchWithAuth, useGetConfigLayer, useGlobalContext, useHeaderRender, useHideIfEmptyDataSource, useIconsFromLayers, useLayerHiddenAttributes, useLayerParams, useMapContext, useMapDraw, useMapImages, useMaxZoomTo, useProjectDashboardInit, usePythonSandbox, usePythonTask, useRedrawLayer, useRelatedDataSourceAttributes, useRemoteTask, useRenderElement, useResizeWidth, useSavePrototypeBuilder, useServerNotificationsContext, useShownOtherItems, useToggle, useUpdateDataSource, useVisibleProjectItems, useWidgetConfig, useWidgetContext, useWidgetFilters, useWidgetPage, useWindowResize, useWrapperSize, useZoomToFeatures, useZoomToPoint };
15052
+ export { ALIGNMENTS, ALIGN_ITEMS, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EMPTY_DATA_SOURCE_LAYER_INFO, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILL_SIZE, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardBackgroundHeader, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GlobalContext, GlobalProvider, Header, HeaderContainer, HeaderFontColorMixin, HeaderFrontView, HeaderTemplate, HeaderTitleContainer, HiddenTitleItems, IconContainer, ImageContainer, LEFT_PANEL_HEADER_HEIGHT, Layer, LayerDescription, LayerGroup, LayerGroupList, LayerIcon, LayerIconContainer, LayerListContainer, LayerTree, LayersContainer, LayersListWrapper, LinearProgressContainer, LogTerminal, LogoContainer, MAX_CHART_WIDTH, Map$1 as Map, MapContext, MapProvider, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OBJECT_FITS, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, RoundedBackgroundContainer, SAVE_HOOK_RESULT_DURATION, SERVER_NOTIFICATION_EVENT, STACK_BAR_TOTAL_HEIGHT, ScalingFactor, ServerNotificationsContext, ServerNotificationsProvider, SlideshowContainer, SmallPreviewContainer$1 as SmallPreviewContainer, SmallPreviewControl, SmallPreviewCounter, SmallPreviewImages, SmallPreviewLeft, SmallPreviewRight, StackBar, StyligClassificationTypes, SvgImage, TIME_ZONE_FORMAT, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, VIEW_MODES, WidgetType, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyTreeFilterToCondition, applyVarsToCondition, asAttributeName, asChartId, asContainerId, asDataSourceName, asFilterName, asLayerName, asModalId, asResourceId, asTabId, checkEqualOrIncludes, checkIsLoading, createConfigLayer, createConfigPage, createNewPageId, createSaveNotificationId, createTreeNode, dateOptions, debounce, decimalOpacityToHex, eqlParametersToPayload, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, geometryToEwkt, getActualExtrusionHeight, getAttributeByName, getAttributeConfigurationByName, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDataSourceLayerInfo, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getLayerInfo, getLayerInfoAttribute, getLayerInfoFromDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getStyleAttributes, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, getWrapperSizeStyle, hexToRgba, isEmptyElementValue, isEmptyValue, isFillSize, isHiddenEmptyValue, isHookActive, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isTreeFilterValue, isVisibleContainer, mergeAttributeConfigurations, metersPerPixel, numberOptions, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, rgbToHex, roundTotalSum, sizeCssMixin, sliceShownOtherItems, stretchPalette, timeOptions, toCssSize, toPxNumber, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, treeNodesToProjectItems, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useExpandableContainers, useExportPdf, useFeatureSaveHooks, useFetchImageWithAuth, useFetchWithAuth, useGetConfigLayer, useGlobalContext, useHeaderRender, useHideIfEmptyDataSource, useIconsFromLayers, useLayerHiddenAttributes, useLayerParams, useMapContext, useMapDraw, useMapImages, useMaxZoomTo, useProjectDashboardInit, usePythonSandbox, usePythonTask, useRedrawLayer, useRelatedDataSourceAttributes, useRemoteTask, useRenderElement, useResizeBox, useSavePrototypeBuilder, useServerNotificationsContext, useShownOtherItems, useToggle, useUpdateDataSource, useVisibleProjectItems, useWidgetConfig, useWidgetContext, useWidgetFilters, useWidgetPage, useWindowResize, useWrapperSize, useZoomToFeatures, useZoomToPoint };
14971
15053
  //# sourceMappingURL=react.esm.js.map