@evergis/react 4.0.114 → 4.0.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Dashboard/constants.d.ts +14 -0
- package/dist/components/Dashboard/hooks/index.d.ts +1 -0
- package/dist/components/Dashboard/hooks/useContainerRoot.d.ts +29 -0
- package/dist/components/Dashboard/styled.d.ts +12 -0
- package/dist/index.js +136 -87
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +133 -89
- package/dist/react.esm.js.map +1 -1
- package/dist/utils/roundTotalSum.d.ts +2 -1
- package/package.json +2 -2
- package/dist/components/Dashboard/containers/ChartContainer/styled.d.ts +0 -2
package/dist/react.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
-
import { IconButton, Flex, transition, Chip, shadows, Description, Divider, Icon, LegendToggler, Tooltip as Tooltip$1, DropdownField, MultiSelectContainer, IconButtonButton,
|
|
2
|
+
import { IconButton, Flex, transition, Chip, shadows, Description, Divider, Icon, LegendToggler, Tooltip as Tooltip$1, DropdownField, MultiSelectContainer, IconButtonButton, FlatButton, FlexSpan, IconToggle, DraggableTreeContainer, DraggableTree, UploaderItemArea, UploaderTitleWrapper, Dialog, DialogTitle, ThemeProvider, darkTheme, DialogContent, CircularProgress, Switch, AutoComplete, Input, Slider, Dropdown, Checkbox, DatePicker, getLocale, IconToggleButton, LinearProgress, Popup, Menu, ActionsGroup, DialogActions, RaisedButton, Preview, H2, Blank, Popover, Uploader, NumberRangeSlider, useAsyncAutocomplete, RangeNumberInput, TreeDropdown, defaultTheme, dateFormat } from '@evergis/uilib-gl';
|
|
3
3
|
import { isValidElement, Fragment, createContext, memo, useRef, useState, useCallback, useEffect, useContext, useMemo, createElement, forwardRef } from 'react';
|
|
4
4
|
import styled, { createGlobalStyle, css, useTheme } from 'styled-components';
|
|
5
5
|
import { lineChartClassNames, BarChart as BarChart$1, barChartClassNames, LineChart, PieChart } from '@evergis/charts';
|
|
@@ -3532,6 +3532,24 @@ const DEFAULT_FILTER_PADDING = 12;
|
|
|
3532
3532
|
const BASE_CONTAINER_STYLE = {
|
|
3533
3533
|
marginBottom: "1rem",
|
|
3534
3534
|
};
|
|
3535
|
+
/**
|
|
3536
|
+
* Маркер тела контейнера внутри `ContainerRoot` — содержимое без заголовка.
|
|
3537
|
+
*
|
|
3538
|
+
* Нужен, чтобы находить тело по DOM снаружи: `#<id контейнера>` теперь указывает на корень,
|
|
3539
|
+
* то есть на пару «заголовок + тело».
|
|
3540
|
+
*/
|
|
3541
|
+
const CONTAINER_BODY_ATTRIBUTE = "data-container-body";
|
|
3542
|
+
/**
|
|
3543
|
+
* Заданная высота контейнера достаётся телу — за вычетом заголовка.
|
|
3544
|
+
*
|
|
3545
|
+
* Сама высота остаётся на корне, поэтому тело забирает остаток ячейки, а заголовок сохраняет
|
|
3546
|
+
* `flex-shrink: 0` и не сжимается.
|
|
3547
|
+
*/
|
|
3548
|
+
const CONTAINER_BODY_FILL_STYLE = {
|
|
3549
|
+
flex: "1 1 auto",
|
|
3550
|
+
minHeight: 0,
|
|
3551
|
+
minWidth: 0,
|
|
3552
|
+
};
|
|
3535
3553
|
|
|
3536
3554
|
const StackBarContainer = styled(Flex).withConfig({ displayName: "StackBarContainer", componentId: "sc-stc97k" }) `
|
|
3537
3555
|
flex-wrap: nowrap;
|
|
@@ -3807,15 +3825,16 @@ const debounce = (callback, delay) => {
|
|
|
3807
3825
|
const MILLION = 1000000;
|
|
3808
3826
|
const TEN_THOUSANDS = 10000;
|
|
3809
3827
|
const THOUSAND = 1000;
|
|
3810
|
-
const
|
|
3811
|
-
const roundTotalSum = (value) => {
|
|
3828
|
+
const COMPACT_FRACTION_DIGITS = 1;
|
|
3829
|
+
const roundTotalSum = (value, fractionDigits) => {
|
|
3812
3830
|
if (!value)
|
|
3813
3831
|
return "";
|
|
3832
|
+
const digits = fractionDigits ?? COMPACT_FRACTION_DIGITS;
|
|
3814
3833
|
if (value >= MILLION) {
|
|
3815
|
-
return `${(value / MILLION).toFixed(
|
|
3834
|
+
return `${(value / MILLION).toFixed(digits)}M`;
|
|
3816
3835
|
}
|
|
3817
3836
|
if (value >= TEN_THOUSANDS) {
|
|
3818
|
-
return `${(value / THOUSAND).toFixed(
|
|
3837
|
+
return `${(value / THOUSAND).toFixed(digits)}K`;
|
|
3819
3838
|
}
|
|
3820
3839
|
return value;
|
|
3821
3840
|
};
|
|
@@ -3960,11 +3979,14 @@ const formatNumberValue = (stringFormat, value, type, noUnits = false) => {
|
|
|
3960
3979
|
if (scalingFactor) {
|
|
3961
3980
|
currentValue *= scalingFactor;
|
|
3962
3981
|
}
|
|
3963
|
-
const
|
|
3982
|
+
const hasRounding = !isNil(rounding);
|
|
3983
|
+
const compactValue = roundDigitGroup
|
|
3984
|
+
? roundTotalSum(Number(currentValue), hasRounding ? rounding : undefined)
|
|
3985
|
+
: null;
|
|
3964
3986
|
if (typeof compactValue === "string" && compactValue) {
|
|
3965
3987
|
return appendUnitsLabel(compactValue, unitsLabel, noUnits);
|
|
3966
3988
|
}
|
|
3967
|
-
if (
|
|
3989
|
+
if (hasRounding && (!isIntValue || !isDefaultScaling)) {
|
|
3968
3990
|
currentValue = currentValue && Number(currentValue).toFixed(rounding);
|
|
3969
3991
|
}
|
|
3970
3992
|
if (splitDigitGroup) {
|
|
@@ -4585,7 +4607,24 @@ const ElementValueWrapper = styled.div.withConfig({ displayName: "ElementValueWr
|
|
|
4585
4607
|
}
|
|
4586
4608
|
`};
|
|
4587
4609
|
`;
|
|
4588
|
-
|
|
4610
|
+
/**
|
|
4611
|
+
* Единственный корневой узел контейнера: внутри — заголовок (`ExpandableTitle`) и тело.
|
|
4612
|
+
*
|
|
4613
|
+
* Два корня (фрагмент из заголовка и тела) ломают раскладку родителя: в строке
|
|
4614
|
+
* (`options.column: false`) они становятся ДВУМЯ ячейками flex-row и делят её ширину между собой,
|
|
4615
|
+
* а доля из `options.width` достаётся только телу. Поэтому `id`, `data-templatename`, авторский
|
|
4616
|
+
* `style` и `$sizeCss` живут здесь, а не на теле — см. `useContainerRoot`.
|
|
4617
|
+
*
|
|
4618
|
+
* Всегда flex-колонка: заголовок и тело раньше были flex-элементами родительского `Container`,
|
|
4619
|
+
* и блочная обёртка вернула бы схлопывание вертикальных отступов между ними.
|
|
4620
|
+
*/
|
|
4621
|
+
const ContainerRoot = styled(Flex).withConfig({ displayName: "ContainerRoot", componentId: "sc-2j6lbd" }) `
|
|
4622
|
+
flex-direction: column;
|
|
4623
|
+
min-width: 0;
|
|
4624
|
+
|
|
4625
|
+
${sizeCssMixin};
|
|
4626
|
+
`;
|
|
4627
|
+
const Container = styled(Flex).withConfig({ displayName: "Container", componentId: "sc-1o8dsu2" }) `
|
|
4589
4628
|
flex-direction: column;
|
|
4590
4629
|
width: 100%;
|
|
4591
4630
|
|
|
@@ -4639,7 +4678,7 @@ const Container = styled(Flex).withConfig({ displayName: "Container", componentI
|
|
|
4639
4678
|
|
|
4640
4679
|
${sizeCssMixin};
|
|
4641
4680
|
`;
|
|
4642
|
-
const ContainerWrapper = styled(Flex).withConfig({ displayName: "ContainerWrapper", componentId: "sc-
|
|
4681
|
+
const ContainerWrapper = styled(Flex).withConfig({ displayName: "ContainerWrapper", componentId: "sc-16tb6s0" }) `
|
|
4643
4682
|
position: relative;
|
|
4644
4683
|
box-sizing: border-box;
|
|
4645
4684
|
width: 100%;
|
|
@@ -4660,7 +4699,7 @@ const ContainerWrapper = styled(Flex).withConfig({ displayName: "ContainerWrappe
|
|
|
4660
4699
|
}
|
|
4661
4700
|
`}
|
|
4662
4701
|
`;
|
|
4663
|
-
const DashboardChip = styled(Chip).withConfig({ displayName: "DashboardChip", componentId: "sc-
|
|
4702
|
+
const DashboardChip = styled(Chip).withConfig({ displayName: "DashboardChip", componentId: "sc-19j7obx" }) `
|
|
4664
4703
|
margin: 0 0.25rem 0.25rem 0;
|
|
4665
4704
|
background: ${({ $isDefault, $bgColor, theme: { palette } }) => $isDefault ? palette.element : $bgColor || palette.primary};
|
|
4666
4705
|
border-radius: ${({ $radius, theme: { borderRadius } }) => $radius || borderRadius.medium};
|
|
@@ -4676,7 +4715,7 @@ const DashboardChip = styled(Chip).withConfig({ displayName: "DashboardChip", co
|
|
|
4676
4715
|
color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.icon : $fontColor || "#fff"};
|
|
4677
4716
|
}
|
|
4678
4717
|
`;
|
|
4679
|
-
const DashboardPlaceholderWrap = styled(Flex).withConfig({ displayName: "DashboardPlaceholderWrap", componentId: "sc-
|
|
4718
|
+
const DashboardPlaceholderWrap = styled(Flex).withConfig({ displayName: "DashboardPlaceholderWrap", componentId: "sc-anwihw" }) `
|
|
4680
4719
|
flex-grow: 1;
|
|
4681
4720
|
flex-direction: column;
|
|
4682
4721
|
justify-content: center;
|
|
@@ -4684,7 +4723,7 @@ const DashboardPlaceholderWrap = styled(Flex).withConfig({ displayName: "Dashboa
|
|
|
4684
4723
|
width: 100%;
|
|
4685
4724
|
margin-bottom: 2rem;
|
|
4686
4725
|
`;
|
|
4687
|
-
const DashboardPlaceholder = styled(Flex).withConfig({ displayName: "DashboardPlaceholder", componentId: "sc-
|
|
4726
|
+
const DashboardPlaceholder = styled(Flex).withConfig({ displayName: "DashboardPlaceholder", componentId: "sc-jry8vp" }) `
|
|
4688
4727
|
flex-direction: column;
|
|
4689
4728
|
justify-content: center;
|
|
4690
4729
|
align-items: center;
|
|
@@ -4717,7 +4756,7 @@ const DashboardPlaceholder = styled(Flex).withConfig({ displayName: "DashboardPl
|
|
|
4717
4756
|
}
|
|
4718
4757
|
}
|
|
4719
4758
|
`;
|
|
4720
|
-
const DashboardWrapper = styled(Flex).withConfig({ displayName: "DashboardWrapper", componentId: "sc-
|
|
4759
|
+
const DashboardWrapper = styled(Flex).withConfig({ displayName: "DashboardWrapper", componentId: "sc-100ipup" }) `
|
|
4721
4760
|
flex-direction: column;
|
|
4722
4761
|
flex-wrap: nowrap;
|
|
4723
4762
|
flex-grow: 1;
|
|
@@ -4730,7 +4769,7 @@ const DashboardWrapper = styled(Flex).withConfig({ displayName: "DashboardWrappe
|
|
|
4730
4769
|
margin-top: -0.35rem;
|
|
4731
4770
|
`}
|
|
4732
4771
|
`;
|
|
4733
|
-
const DashboardContent = styled(Flex).withConfig({ displayName: "DashboardContent", componentId: "sc-
|
|
4772
|
+
const DashboardContent = styled(Flex).withConfig({ displayName: "DashboardContent", componentId: "sc-77il9k" }) `
|
|
4734
4773
|
flex-grow: 1;
|
|
4735
4774
|
width: 100%;
|
|
4736
4775
|
padding: 1.5rem 1.5rem 2rem;
|
|
@@ -4745,16 +4784,16 @@ const PresentationWrapperCss = css `
|
|
|
4745
4784
|
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
4746
4785
|
box-shadow: ${shadows.raised};
|
|
4747
4786
|
`;
|
|
4748
|
-
const PresentationWrapper = styled.div.withConfig({ displayName: "PresentationWrapper", componentId: "sc-
|
|
4787
|
+
const PresentationWrapper = styled.div.withConfig({ displayName: "PresentationWrapper", componentId: "sc-891z9z" }) `
|
|
4749
4788
|
${PresentationWrapperCss};
|
|
4750
4789
|
position: relative;
|
|
4751
4790
|
z-index: 1;
|
|
4752
4791
|
`;
|
|
4753
|
-
const PresentationPanelWrapper = styled(PresentationWrapper).withConfig({ displayName: "PresentationPanelWrapper", componentId: "sc-
|
|
4792
|
+
const PresentationPanelWrapper = styled(PresentationWrapper).withConfig({ displayName: "PresentationPanelWrapper", componentId: "sc-1ptpbt9" }) `
|
|
4754
4793
|
margin-top: 0.75rem;
|
|
4755
4794
|
transition: background-color ${transition.toggle};
|
|
4756
4795
|
`;
|
|
4757
|
-
const PresentationHeader = styled.div.withConfig({ displayName: "PresentationHeader", componentId: "sc-
|
|
4796
|
+
const PresentationHeader = styled.div.withConfig({ displayName: "PresentationHeader", componentId: "sc-182b7wg" }) `
|
|
4758
4797
|
margin: -1.5rem -1.5rem 0 -1.5rem;
|
|
4759
4798
|
padding: 1.5rem;
|
|
4760
4799
|
// background: url(images.presentationHeader) 0 0 no-repeat;
|
|
@@ -4766,7 +4805,7 @@ const PresentationHeader = styled.div.withConfig({ displayName: "PresentationHea
|
|
|
4766
4805
|
padding-top: 7rem;
|
|
4767
4806
|
`};
|
|
4768
4807
|
`;
|
|
4769
|
-
const PresentationHeaderTools = styled(Flex).withConfig({ displayName: "PresentationHeaderTools", componentId: "sc-
|
|
4808
|
+
const PresentationHeaderTools = styled(Flex).withConfig({ displayName: "PresentationHeaderTools", componentId: "sc-dms7fm" }) `
|
|
4770
4809
|
justify-content: space-between;
|
|
4771
4810
|
align-items: center;
|
|
4772
4811
|
margin-bottom: -0.5rem;
|
|
@@ -4784,7 +4823,7 @@ const PresentationHeaderTools = styled(Flex).withConfig({ displayName: "Presenta
|
|
|
4784
4823
|
}
|
|
4785
4824
|
}
|
|
4786
4825
|
`;
|
|
4787
|
-
const LayerGroupList = styled(Flex).withConfig({ displayName: "LayerGroupList", componentId: "sc-
|
|
4826
|
+
const LayerGroupList = styled(Flex).withConfig({ displayName: "LayerGroupList", componentId: "sc-19uothl" }) `
|
|
4788
4827
|
flex-direction: column;
|
|
4789
4828
|
height: 100%;
|
|
4790
4829
|
flex-wrap: nowrap;
|
|
@@ -4797,8 +4836,8 @@ const LayerGroupList = styled(Flex).withConfig({ displayName: "LayerGroupList",
|
|
|
4797
4836
|
flex-grow: 1;
|
|
4798
4837
|
}
|
|
4799
4838
|
`;
|
|
4800
|
-
const PresentationHeaderButtons = styled(Flex).withConfig({ displayName: "PresentationHeaderButtons", componentId: "sc-
|
|
4801
|
-
const PresentationPanelContainer = styled.div.withConfig({ displayName: "PresentationPanelContainer", componentId: "sc-
|
|
4839
|
+
const PresentationHeaderButtons = styled(Flex).withConfig({ displayName: "PresentationHeaderButtons", componentId: "sc-c24t7n" }) ``;
|
|
4840
|
+
const PresentationPanelContainer = styled.div.withConfig({ displayName: "PresentationPanelContainer", componentId: "sc-17q0jzw" }) `
|
|
4802
4841
|
position: absolute;
|
|
4803
4842
|
top: 0;
|
|
4804
4843
|
left: calc(${({ left }) => left || 0}px + 0.75rem);
|
|
@@ -4867,7 +4906,7 @@ const PresentationPanelContainer = styled.div.withConfig({ displayName: "Present
|
|
|
4867
4906
|
}
|
|
4868
4907
|
}
|
|
4869
4908
|
`;
|
|
4870
|
-
const DataSourceErrorContainer = styled(Flex).withConfig({ displayName: "DataSourceErrorContainer", componentId: "sc-
|
|
4909
|
+
const DataSourceErrorContainer = styled(Flex).withConfig({ displayName: "DataSourceErrorContainer", componentId: "sc-nh93ry" }) `
|
|
4871
4910
|
align-items: center;
|
|
4872
4911
|
justify-content: center;
|
|
4873
4912
|
flex-wrap: nowrap;
|
|
@@ -4886,12 +4925,12 @@ const DataSourceErrorContainer = styled(Flex).withConfig({ displayName: "DataSou
|
|
|
4886
4925
|
}
|
|
4887
4926
|
}
|
|
4888
4927
|
`;
|
|
4889
|
-
const AttributeLabel = styled(Description).withConfig({ displayName: "AttributeLabel", componentId: "sc-
|
|
4928
|
+
const AttributeLabel = styled(Description).withConfig({ displayName: "AttributeLabel", componentId: "sc-9u3noy" }) `
|
|
4890
4929
|
margin-top: 0 !important;
|
|
4891
4930
|
margin-bottom: ${({ forCheckbox }) => forCheckbox ? "0.75rem" : "0.25rem"} !important;
|
|
4892
4931
|
padding-left: ${({ isEdit }) => (isEdit ? "0.5rem" : "0")};
|
|
4893
4932
|
`;
|
|
4894
|
-
const FeatureControls = styled(Flex).withConfig({ displayName: "FeatureControls", componentId: "sc-
|
|
4933
|
+
const FeatureControls = styled(Flex).withConfig({ displayName: "FeatureControls", componentId: "sc-1wenq0r" }) `
|
|
4895
4934
|
align-items: center;
|
|
4896
4935
|
gap: 1rem;
|
|
4897
4936
|
flex-wrap: nowrap;
|
|
@@ -6532,6 +6571,45 @@ const useContainerAttributes = ({ elementConfig, type, renderElement }) => {
|
|
|
6532
6571
|
return { getRenderContainerItem, attributesToRender };
|
|
6533
6572
|
};
|
|
6534
6573
|
|
|
6574
|
+
/**
|
|
6575
|
+
* Пропсы корневой обёртки контейнера: идентификаторы для внешних селекторов, авторский `style`
|
|
6576
|
+
* из конфига и css-объект размеров.
|
|
6577
|
+
*
|
|
6578
|
+
* Размеры уходят styled-пропом (класс), а не inline-стилем, поэтому перебиваются снаружи
|
|
6579
|
+
* без `!important`. Авторский `style` остаётся inline — у него приоритет по замыслу автора конфига.
|
|
6580
|
+
*/
|
|
6581
|
+
const useWrapperSize = ({ elementConfig, defaults }) => {
|
|
6582
|
+
const { id, style, templateName, options } = elementConfig || {};
|
|
6583
|
+
const { width, height, overflow } = options || {};
|
|
6584
|
+
return useMemo(() => ({
|
|
6585
|
+
id,
|
|
6586
|
+
"data-templatename": templateName,
|
|
6587
|
+
style,
|
|
6588
|
+
$sizeCss: getWrapperSizeStyle({ style, width, height, overflow, defaults, defaultWidth: FILL_SIZE }),
|
|
6589
|
+
}), [id, templateName, style, width, height, overflow, defaults]);
|
|
6590
|
+
};
|
|
6591
|
+
|
|
6592
|
+
/**
|
|
6593
|
+
* Пропсы двух узлов контейнера с заголовком: корня (`ContainerRoot`) и тела.
|
|
6594
|
+
*
|
|
6595
|
+
* Контейнер обязан иметь ОДИН корневой узел — иначе в строке (`options.column: false`) заголовок
|
|
6596
|
+
* и тело становятся двумя ячейками родительского flex-row. Размеры из конфига поэтому уходят на
|
|
6597
|
+
* корень, а тело получает лишь остаток высоты под заголовком.
|
|
6598
|
+
*/
|
|
6599
|
+
const useContainerRoot = ({ elementConfig, defaults }) => {
|
|
6600
|
+
const root = useWrapperSize({ elementConfig, defaults });
|
|
6601
|
+
// Гейт по РЕЗУЛЬТИРУЮЩЕЙ высоте, а не по `options.height`: высоту задаёт ещё и авторский `style`,
|
|
6602
|
+
// и внутренние `defaults` контейнера. `auto` высотой не считаем — делить нечего.
|
|
6603
|
+
const fillsHeight = !!root.$sizeCss?.height && root.$sizeCss.height !== "auto";
|
|
6604
|
+
return useMemo(() => ({
|
|
6605
|
+
root,
|
|
6606
|
+
body: {
|
|
6607
|
+
[CONTAINER_BODY_ATTRIBUTE]: "",
|
|
6608
|
+
$sizeCss: fillsHeight ? CONTAINER_BODY_FILL_STYLE : undefined,
|
|
6609
|
+
},
|
|
6610
|
+
}), [root, fillsHeight]);
|
|
6611
|
+
};
|
|
6612
|
+
|
|
6535
6613
|
const useEditGroupAttributes = ({ elementConfig, type }) => {
|
|
6536
6614
|
const { options } = elementConfig || {};
|
|
6537
6615
|
const { controls, useProjectHiddenAttributes } = options || {};
|
|
@@ -7477,7 +7555,11 @@ const useExportPdf = (id, margin = 20) => {
|
|
|
7477
7555
|
return;
|
|
7478
7556
|
}
|
|
7479
7557
|
setLoading(true);
|
|
7480
|
-
const
|
|
7558
|
+
const target = document.querySelector(`#${id}`);
|
|
7559
|
+
// `#id` — корень контейнера, то есть пара «заголовок + тело». Постранично режем содержимое
|
|
7560
|
+
// тела: у самого корня детей всего два, и длинное тело уехало бы одной картинкой на первую
|
|
7561
|
+
// страницу. Fallback — для одноузловых целей вроде корня дашборда.
|
|
7562
|
+
const container = target?.querySelector(`:scope > [${CONTAINER_BODY_ATTRIBUTE}]`) ?? target;
|
|
7481
7563
|
if (!container) {
|
|
7482
7564
|
setLoading(false);
|
|
7483
7565
|
return;
|
|
@@ -7861,32 +7943,14 @@ const useUpdateDataSource = ({ dataSource, config, filters, attributes, layerPar
|
|
|
7861
7943
|
}, [dataSource, getDataSourcePromises, getUpdatedDataSources, dataSources]);
|
|
7862
7944
|
};
|
|
7863
7945
|
|
|
7864
|
-
/**
|
|
7865
|
-
* Пропсы корневой обёртки контейнера: идентификаторы для внешних селекторов, авторский `style`
|
|
7866
|
-
* из конфига и css-объект размеров.
|
|
7867
|
-
*
|
|
7868
|
-
* Размеры уходят styled-пропом (класс), а не inline-стилем, поэтому перебиваются снаружи
|
|
7869
|
-
* без `!important`. Авторский `style` остаётся inline — у него приоритет по замыслу автора конфига.
|
|
7870
|
-
*/
|
|
7871
|
-
const useWrapperSize = ({ elementConfig, defaults }) => {
|
|
7872
|
-
const { id, style, templateName, options } = elementConfig || {};
|
|
7873
|
-
const { width, height, overflow } = options || {};
|
|
7874
|
-
return useMemo(() => ({
|
|
7875
|
-
id,
|
|
7876
|
-
"data-templatename": templateName,
|
|
7877
|
-
style,
|
|
7878
|
-
$sizeCss: getWrapperSizeStyle({ style, width, height, overflow, defaults, defaultWidth: FILL_SIZE }),
|
|
7879
|
-
}), [id, templateName, style, width, height, overflow, defaults]);
|
|
7880
|
-
};
|
|
7881
|
-
|
|
7882
7946
|
const ContainersGroupContainer = memo(({ elementConfig, type, renderElement }) => {
|
|
7883
7947
|
const { expandedContainers } = useWidgetContext(type);
|
|
7884
7948
|
const { id, children, options } = elementConfig || {};
|
|
7885
7949
|
const { column, expandable, expanded, alignItems } = options || {};
|
|
7886
7950
|
const isColumn = column === undefined || column;
|
|
7887
7951
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
7888
|
-
const root =
|
|
7889
|
-
return (jsxs(
|
|
7952
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
7953
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(Container, { ...body, isColumn: isColumn, "$alignItems": alignItems, children: jsx(ContainerChildren, { type: type, items: children, elementConfig: elementConfig, isColumn: isColumn, isMain: id?.startsWith(CONFIG_PAGE_ID), renderElement: renderElement }) }))] }));
|
|
7890
7954
|
});
|
|
7891
7955
|
|
|
7892
7956
|
const ChartLegendContainer = styled(Flex).withConfig({ displayName: "ChartLegendContainer", componentId: "sc-1di1zl9" }) `
|
|
@@ -8307,7 +8371,7 @@ const DataSourceProgressContainer = memo(({ config, elementConfig, type, innerCo
|
|
|
8307
8371
|
const { maxValue, showTotal, relatedDataSource, expandable, expanded } = options || {};
|
|
8308
8372
|
const valueElement = children?.find(item => item.id === "value");
|
|
8309
8373
|
const unitsElement = children?.find(item => item.id === "units");
|
|
8310
|
-
const root =
|
|
8374
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
8311
8375
|
const { sliceItems, checkIsSliced, showMore, onShowMore } = useShownOtherItems(options);
|
|
8312
8376
|
const totalUnits = useMemo(() => unitsElement?.type === "attributeUnits"
|
|
8313
8377
|
? attributes?.find(({ attributeName }) => attributeName === unitsElement.attributeName)?.stringFormat
|
|
@@ -8338,7 +8402,7 @@ const DataSourceProgressContainer = memo(({ config, elementConfig, type, innerCo
|
|
|
8338
8402
|
return jsx(DataSourceError, { name: elementConfig.templateName });
|
|
8339
8403
|
}
|
|
8340
8404
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
8341
|
-
return (jsxs(
|
|
8405
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), !isVisible ? null : dataSource ? (jsxs(DataSourceProgressContainerWrapper, { ...body, children: [sliceItems(dataSource?.features)?.map((feature, index) => (jsx(DataSourceInnerContainer, { type: type, index: index, feature: feature, config: config, elementConfig: elementConfig, maxValue: currentMaxValue, innerComponent: innerComponent }, index))), checkIsSliced(dataSource?.features) && (jsx(ContainerToggler, { toggled: showMore, onClick: onShowMore, children: showMore ? t("hide", { ns: "dashboard", defaultValue: "Свернуть" }) : t("showAll", {
|
|
8342
8406
|
ns: "dashboard",
|
|
8343
8407
|
defaultValue: "Показать все",
|
|
8344
8408
|
}) })), showTotal && (jsxs(Fragment$1, { children: [jsx(Divider, {}), jsxs(ProgressTotal, { children: [jsx(ProgressTotalTitle, { children: t("total", { ns: "dashboard", defaultValue: "Итого" }) }), jsxs(ProgressValue, { children: [totalValue, jsx(ProgressUnits, { children: totalUnits })] })] })] }))] })) : (jsx(ContainerLoading, {})), jsx(HiddenTitleItems, { elementConfig: elementConfig, config: config, type: type })] }));
|
|
@@ -8599,7 +8663,7 @@ const FiltersContainer = memo(({ elementConfig, config, type, renderElement }) =
|
|
|
8599
8663
|
const { filters: configFilters } = currentPage;
|
|
8600
8664
|
const { id, options } = elementConfig || {};
|
|
8601
8665
|
const { padding, bgColor, fontColor, fontSize, expandable, expanded } = options || {};
|
|
8602
|
-
const root =
|
|
8666
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
8603
8667
|
const isLoading = useMemo(() => checkIsLoading(dataSources, config, configFilters), [configFilters, config, dataSources]);
|
|
8604
8668
|
const filterItems = useMemo(() => elementConfig?.children?.filter(child => child.options?.filterName), [elementConfig?.children]);
|
|
8605
8669
|
const renderFilter = useCallback((filter, index) => {
|
|
@@ -8608,7 +8672,7 @@ const FiltersContainer = memo(({ elementConfig, config, type, renderElement }) =
|
|
|
8608
8672
|
}, [config, type]);
|
|
8609
8673
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
8610
8674
|
const selectedItems = useMemo(() => getFilterSelectedItems(filterItems, filters, configFilters), [configFilters, filters, filterItems]);
|
|
8611
|
-
return (jsxs(
|
|
8675
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(Flex, { mb: !isVisible && selectedItems.length ? "2rem" : 0, children: jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }) }), isLoading && jsx(ContainerLoading, {}), !isLoading && isVisible && (jsx(FiltersContainerWrapper, { ...body, "$padding": padding, "$bgColor": bgColor, "$fontSize": fontSize, "$fontColor": fontColor, children: filterItems?.map(renderFilter) })), jsx(HiddenTitleItems, { elementConfig: elementConfig, config: config, type: type, filter: filterItems[0]?.options?.filterName })] }));
|
|
8612
8676
|
});
|
|
8613
8677
|
|
|
8614
8678
|
const DefaultAttributesContainer = memo(({ type, renderElement }) => {
|
|
@@ -8616,26 +8680,6 @@ const DefaultAttributesContainer = memo(({ type, renderElement }) => {
|
|
|
8616
8680
|
return (jsx(Fragment$1, { children: attributes?.map(({ attributeName }) => (jsx(Container, { isColumn: true, children: renderElement({ id: attributeName }) }, attributeName))) }));
|
|
8617
8681
|
});
|
|
8618
8682
|
|
|
8619
|
-
const ChartContainerWrapper = styled(FlexSpan).withConfig({ displayName: "ChartContainerWrapper", componentId: "sc-17oj4lo" }) `
|
|
8620
|
-
flex-direction: column;
|
|
8621
|
-
min-width: 0;
|
|
8622
|
-
|
|
8623
|
-
/* Заданная высота контейнера достаётся телу графика — за вычетом заголовка. */
|
|
8624
|
-
${({ $sizeCss }) => !!$sizeCss?.height &&
|
|
8625
|
-
css `
|
|
8626
|
-
/* Раздача высоты требует, чтобы обёртка была flex-колонкой (FlexSpan сам по себе не flex),
|
|
8627
|
-
иначе Container с flex:1 1 auto не растянется на заданную высоту, а fill-график не впишется по высоте. */
|
|
8628
|
-
display: flex;
|
|
8629
|
-
|
|
8630
|
-
> ${Container} {
|
|
8631
|
-
flex: 1 1 auto;
|
|
8632
|
-
min-height: 0;
|
|
8633
|
-
}
|
|
8634
|
-
`}
|
|
8635
|
-
|
|
8636
|
-
${sizeCssMixin};
|
|
8637
|
-
`;
|
|
8638
|
-
|
|
8639
8683
|
/**
|
|
8640
8684
|
* Контекст вписывания графика (`options.fill` контейнера Chart).
|
|
8641
8685
|
*
|
|
@@ -8653,7 +8697,7 @@ const ChartContainer = memo(({ elementConfig, isVisible, type, renderElement })
|
|
|
8653
8697
|
const aliasElement = children.find(child => child.id === "alias");
|
|
8654
8698
|
const chartElement = children.find(child => child.id === "chart");
|
|
8655
8699
|
const legendElement = children.find(child => child.id === "legend");
|
|
8656
|
-
const root =
|
|
8700
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
8657
8701
|
const { data, loading } = useChartData({
|
|
8658
8702
|
element: chartElement,
|
|
8659
8703
|
type,
|
|
@@ -8664,7 +8708,7 @@ const ChartContainer = memo(({ elementConfig, isVisible, type, renderElement })
|
|
|
8664
8708
|
const hasItems = !!data[0]?.items?.length;
|
|
8665
8709
|
if (!loading && !hasItems && hideEmpty)
|
|
8666
8710
|
return null;
|
|
8667
|
-
return (jsxs(
|
|
8711
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(Container, { ...body, 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" })) })] }))] }));
|
|
8668
8712
|
});
|
|
8669
8713
|
|
|
8670
8714
|
const PagesContainer = memo(({ type = WidgetType.Dashboard, noBorders }) => {
|
|
@@ -8890,13 +8934,13 @@ const DataSourceContainer = memo(({ config, elementConfig, type, innerComponent,
|
|
|
8890
8934
|
gap: gap ?? DEFAULT_TILE_GAP,
|
|
8891
8935
|
});
|
|
8892
8936
|
const defaults = useMemo(() => ({ height: isLoading ? "3rem" : "auto" }), [isLoading]);
|
|
8893
|
-
const root =
|
|
8937
|
+
const { root, body } = useContainerRoot({ elementConfig, defaults });
|
|
8894
8938
|
if (!relatedDataSource)
|
|
8895
8939
|
return null;
|
|
8896
8940
|
if (dataSource && !dataSource.features) {
|
|
8897
8941
|
return jsx(DataSourceError, { name: elementConfig.templateName });
|
|
8898
8942
|
}
|
|
8899
|
-
return (jsxs(
|
|
8943
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), !isVisible ? null : dataSource ? (jsxs(Fragment$1, { children: [jsx(DataSourceContainerWrapper, { ...body, ref: tilesRef, isColumn: column, "$isRow": !column, "$columns": columns, "$gap": gap, "$align": align, "$stretch": stretch, "$tileWidth": tileWidth, children: sliceItems(dataSource.features)?.map((feature, index) => (jsx(DataSourceInnerContainer, { index: index, type: type, config: config, feature: feature, elementConfig: elementConfig, innerComponent: innerComponent }, index))) }), checkIsSliced(dataSource.features) && (jsx(ContainerToggler, { toggled: showMore, onClick: onShowMore, children: showMore
|
|
8900
8944
|
? t("hide", { ns: "dashboard", defaultValue: "Свернуть" })
|
|
8901
8945
|
: t("showAll", { ns: "dashboard", defaultValue: "Показать все" }) }))] })) : (jsx(ContainerLoading, {}))] }));
|
|
8902
8946
|
});
|
|
@@ -9056,7 +9100,7 @@ const SlideshowContainer = memo(({ config, elementConfig, type }) => {
|
|
|
9056
9100
|
const { id, options } = elementConfig || {};
|
|
9057
9101
|
const { expandable, expanded } = options || {};
|
|
9058
9102
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
9059
|
-
const root =
|
|
9103
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
9060
9104
|
const render = useMemo(() => getRenderElement({
|
|
9061
9105
|
config,
|
|
9062
9106
|
elementConfig,
|
|
@@ -9082,11 +9126,11 @@ const SlideshowContainer = memo(({ config, elementConfig, type }) => {
|
|
|
9082
9126
|
// Подпись `alias` не задают почти всегда — тогда обёртку не рендерим, чтобы в DOM не оставался
|
|
9083
9127
|
// пустой блок, который вдобавок отъедал бы половину ширины у галереи (см. isColumn ниже).
|
|
9084
9128
|
const aliasNode = render({ id: "alias" });
|
|
9085
|
-
return (jsxs(
|
|
9129
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: render }), isVisible && (
|
|
9086
9130
|
// `isColumn`: подпись над галереей, а сама галерея на всю ширину. Без него Container
|
|
9087
9131
|
// раскладывает alias и slideshow в ряд, и оба (Flex с `width: 100%`) сжимаются пополам —
|
|
9088
9132
|
// картинка занимала лишь половину доступной ширины.
|
|
9089
|
-
jsxs(Container, { ...
|
|
9133
|
+
jsxs(Container, { ...body, isColumn: true, children: [aliasNode && jsx(ContainerAlias, { hasBottomMargin: true, children: aliasNode }), jsx(ContainerValue, { children: render({
|
|
9090
9134
|
id: "slideshow",
|
|
9091
9135
|
wrap: false,
|
|
9092
9136
|
}) })] }))] }));
|
|
@@ -9097,8 +9141,8 @@ const CameraContainer = memo(({ elementConfig, type, renderElement }) => {
|
|
|
9097
9141
|
const { id, options } = elementConfig || {};
|
|
9098
9142
|
const { expandable, expanded } = options || {};
|
|
9099
9143
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
9100
|
-
const root =
|
|
9101
|
-
return (jsxs(
|
|
9144
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
9145
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(Container, { ...body, children: [jsx(ContainerAlias, { hasBottomMargin: true, children: renderElement({ id: "alias" }) }), jsx(ContainerValue, { children: renderElement({ id: "value", wrap: false }) })] }))] }));
|
|
9102
9146
|
});
|
|
9103
9147
|
|
|
9104
9148
|
const TabAnchor = styled.div.withConfig({ displayName: "TabAnchor", componentId: "sc-emqf31" }) `
|
|
@@ -9518,7 +9562,7 @@ const LayersContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
9518
9562
|
const { id, options } = elementConfig || {};
|
|
9519
9563
|
const { layerNames, expandable, expanded } = options || {};
|
|
9520
9564
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
9521
|
-
const root =
|
|
9565
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
9522
9566
|
const layers = useMemo(() => {
|
|
9523
9567
|
if (!currentPage?.layers)
|
|
9524
9568
|
return [];
|
|
@@ -9526,7 +9570,7 @@ const LayersContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
9526
9570
|
return currentPage.layers;
|
|
9527
9571
|
return currentPage.layers.filter(({ name }) => layerNames.includes(name));
|
|
9528
9572
|
}, [currentPage?.layers, layerNames]);
|
|
9529
|
-
return (jsxs(
|
|
9573
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(LayersContainerWrapper, { ...body, children: jsx(LayerTree, { layers: layers, onlyMainTools: true }) }))] }));
|
|
9530
9574
|
});
|
|
9531
9575
|
|
|
9532
9576
|
const ExportPdfContainer = memo(({ type, elementConfig }) => {
|
|
@@ -9562,8 +9606,8 @@ const UploadContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
9562
9606
|
const { id, options } = elementConfig || {};
|
|
9563
9607
|
const { expandable, expanded } = options || {};
|
|
9564
9608
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
9565
|
-
const root =
|
|
9566
|
-
return (jsxs(
|
|
9609
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
9610
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(UploadContainerWrapper, { ...body, children: renderElement({ id: "uploader", wrap: false }) }))] }));
|
|
9567
9611
|
});
|
|
9568
9612
|
|
|
9569
9613
|
const StatusBadge = styled(Chip).withConfig({ displayName: "StatusBadge", componentId: "sc-1xmfl10" }) `
|
|
@@ -9783,7 +9827,7 @@ const TaskContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
9783
9827
|
const { taskId, runTask, stopTask, status, openLog, loading, isLogDialogOpen, closeLog, log, lastMessage, result, } = usePythonTask();
|
|
9784
9828
|
const { options } = elementConfig || {};
|
|
9785
9829
|
const { title, relatedResources, center, icon, statusColors, responseFilters, useNotifications, } = options || {};
|
|
9786
|
-
const root =
|
|
9830
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
9787
9831
|
const { setNotificationDismissed } = useTaskNotifications({
|
|
9788
9832
|
enabled: !!useNotifications,
|
|
9789
9833
|
suppressed: isLogDialogOpen,
|
|
@@ -9823,12 +9867,12 @@ const TaskContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
9823
9867
|
return runTask({ resourceId, parameters: newParams, script, fileName, methodName });
|
|
9824
9868
|
}));
|
|
9825
9869
|
}, [attributes, currentPage.filters, dataSources, ewktGeometry, layerInfo, projectDataSources, relatedResources, runTask, selectedFilters, stopTask, taskId]);
|
|
9826
|
-
return (jsxs(
|
|
9870
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), jsxs(TaskContainerWrapper, { ...body, justifyContent: center ? "center" : "flex-start", children: [jsx(StatusWaitingButton, { title: title || t("run", { ns: "dashboard", defaultValue: "Запуск" }), icon: icon, status: status, statusColors: statusColors, isWaiting: loading || !!taskId, isDisabled: !relatedResources?.length, onClick: onClick }), !!(log || taskId) && (jsxs(Fragment$1, { children: [jsx(IconButton, { kind: "info", onClick: openLog }), jsx(LogDialog, { logs: log, status: status, statusColors: statusColors, isOpen: isLogDialogOpen, onClose: onCloseLog, onMinimize: useNotifications ? onMinimizeLog : undefined })] }))] })] }));
|
|
9827
9871
|
});
|
|
9828
9872
|
|
|
9829
9873
|
const EditContainer = ({ type, elementConfig, renderElement }) => {
|
|
9830
|
-
const {
|
|
9831
|
-
return (jsxs(
|
|
9874
|
+
const { root, body } = useContainerRoot({ elementConfig });
|
|
9875
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), jsxs(Container, { ...body, isColumn: true, children: [jsx(ContainerAlias, { hasBottomMargin: true, children: renderElement({ id: "alias" }) }), jsx(ContainerValue, { children: renderElement({ id: "value" }) })] })] }));
|
|
9832
9876
|
};
|
|
9833
9877
|
|
|
9834
9878
|
const getControlTemplateName = (type) => {
|
|
@@ -10565,7 +10609,7 @@ const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
10565
10609
|
const { items, visibleItems, viewMode, setViewMode, showMore, setShowMore, hasMore, hiddenCount } = useAttachmentContainer({ type, elementConfig });
|
|
10566
10610
|
const { id, options } = elementConfig || {};
|
|
10567
10611
|
const { expandable, expanded } = options || {};
|
|
10568
|
-
const root =
|
|
10612
|
+
const { root, body } = useContainerRoot({ elementConfig, defaults: BASE_CONTAINER_STYLE });
|
|
10569
10613
|
const [previewIndex, setPreviewIndex] = useState(null);
|
|
10570
10614
|
const previewImages = useAttachmentPreviewImages({ items, active: previewIndex !== null });
|
|
10571
10615
|
const handlePreview = useCallback((link) => {
|
|
@@ -10576,7 +10620,7 @@ const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
10576
10620
|
const handleClosePreview = useCallback(() => setPreviewIndex(null), []);
|
|
10577
10621
|
const handleShowMore = useCallback(() => setShowMore(true), [setShowMore]);
|
|
10578
10622
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
10579
|
-
return (jsxs(
|
|
10623
|
+
return (jsxs(ContainerRoot, { ...root, children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(Container, { ...body, children: jsxs(Flex, { column: true, children: [jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsx(AttachmentsGrid, { items: visibleItems, isEdit: false, onPreview: handlePreview })) : (jsx(AttachmentsList, { items: visibleItems, isEdit: false, onPreview: handlePreview })) }), hasMore && !showMore && (jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), previewIndex !== null && (jsx(Preview, { images: previewImages, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleClosePreview, errorTitleText: t("attachments.resourceUnavailable", {
|
|
10580
10624
|
ns: "common",
|
|
10581
10625
|
defaultValue: "Ресурс недоступен",
|
|
10582
10626
|
}) }, previewIndex))] }) }))] }));
|
|
@@ -15205,5 +15249,5 @@ const DEFAULT_CIRCLE_STYLE = {
|
|
|
15205
15249
|
],
|
|
15206
15250
|
};
|
|
15207
15251
|
|
|
15208
|
-
export { ALIGNMENTS, ALIGN_ITEMS, ATTRIBUTE_ICON_ELEMENT_TYPES, 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_BLUR, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_RADIUS, DEFAULT_CIRCLE_STYLE, DEFAULT_COLOR, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_STYLE, DEFAULT_FILL_STYLE, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_STYLE, DEFAULT_LINE_WIDTH, DEFAULT_LNG, DEFAULT_OPACITY, 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, 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, OVERFLOWS, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, QUERY_DESCRIPTION_CACHE_TTL, 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, SvgImage, TILE_ALIGNMENTS, 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, dateOptions, debounce, decimalOpacityToHex, enrichStyleItemsWithIds, enrichStyleModelsWithIds, eqlParametersToPayload, fetchQueryDescription, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, geometryToEwkt, getActualExtrusionHeight, getAttributeByName, getAttributeConfigurationByName, getAttributeIconElement, getAttributeIconUrl, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDataSourceLayerInfo, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getImageUrl, getLayerClientStyle, 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, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useEqualTileWidth, 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 };
|
|
15252
|
+
export { ALIGNMENTS, ALIGN_ITEMS, ATTRIBUTE_ICON_ELEMENT_TYPES, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, COMPACT_FRACTION_DIGITS, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CONTAINER_BODY_ATTRIBUTE, CONTAINER_BODY_FILL_STYLE, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerRoot, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_BLUR, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_RADIUS, DEFAULT_CIRCLE_STYLE, DEFAULT_COLOR, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_STYLE, DEFAULT_FILL_STYLE, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_STYLE, DEFAULT_LINE_WIDTH, DEFAULT_LNG, DEFAULT_OPACITY, 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, 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, OVERFLOWS, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, QUERY_DESCRIPTION_CACHE_TTL, 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, SvgImage, TILE_ALIGNMENTS, 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, dateOptions, debounce, decimalOpacityToHex, enrichStyleItemsWithIds, enrichStyleModelsWithIds, eqlParametersToPayload, fetchQueryDescription, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, geometryToEwkt, getActualExtrusionHeight, getAttributeByName, getAttributeConfigurationByName, getAttributeIconElement, getAttributeIconUrl, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDataSourceLayerInfo, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getImageUrl, getLayerClientStyle, 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, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useContainerRoot, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useEqualTileWidth, 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 };
|
|
15209
15253
|
//# sourceMappingURL=react.esm.js.map
|