@evergis/react 4.0.131 → 4.0.132
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/components/Chart/styled.d.ts +7 -0
- package/dist/components/Dashboard/constants.d.ts +15 -0
- package/dist/components/Dashboard/types.d.ts +5 -0
- package/dist/index.js +280 -227
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +280 -229
- package/dist/react.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/react.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import styled, { createGlobalStyle, css, useTheme } from 'styled-components';
|
|
|
2
2
|
import { Icon, IconButtonInnerChild, IconButton, Flex, transition, Chip, shadows, Description, Divider, Popup, Menu, IconToggleButton, LinearProgress, Tooltip as Tooltip$1, IconToggle, Preview, LegendToggler, DropdownField, MultiSelectContainer, IconButtonButton, useDragAndDropEffect, FlatButton, DraggableTreeContainer, DraggableTree, FlexSpan, Dialog, DialogTitle, ActionsGroup, DialogContent, DialogActions, RaisedButton, UploaderItemArea, UploaderTitleWrapper, ThemeProvider, darkTheme, CircularProgress, Switch, AutoComplete, Input, Slider, Dropdown, Checkbox, DatePicker, getLocale, H2, Blank, Popover, NumberInput, Uploader, NumberRangeSlider, useAsyncAutocomplete, RangeNumberInput, TreeDropdown, defaultTheme, dateFormat } from '@evergis/uilib-gl';
|
|
3
3
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
4
4
|
import { isValidElement, Fragment, createContext, memo, useRef, useState, useCallback, useEffect, useContext, useMemo, createElement, useLayoutEffect, forwardRef } from 'react';
|
|
5
|
-
import { lineChartClassNames, BarChart as BarChart$1,
|
|
5
|
+
import { barChartClassNames, lineChartClassNames, BarChart as BarChart$1, LineChart, PieChart } from '@evergis/charts';
|
|
6
6
|
import { AttributeType, AttributeIconType, generateId, STORAGE_TOKEN_KEY, parseJwt, STORAGE_REFRESH_TOKEN_KEY, RemoteTaskStatus, AttributeConfigurationType, LayerServiceType, OgcGeometryType, StringSubType } from '@evergis/api';
|
|
7
7
|
import { isNil, isEmpty, uniqueId, isEqual, unescape } from 'lodash';
|
|
8
8
|
import { Color as Color$1, ColorScale } from '@evergis/color';
|
|
@@ -73,205 +73,6 @@ const AddFeatureButton = ({ title, icon = "feature_add" /* , layerName, geometry
|
|
|
73
73
|
return (jsx(IconButton, { kind: icon, primary: true, onClick: handleAddFeature, children: title }));
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
const ChartTooltipTable = styled.table.withConfig({ displayName: "ChartTooltipTable", componentId: "sc-1fk3ts5" }) `
|
|
77
|
-
td {
|
|
78
|
-
padding: 0;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
tr:not(:last-child) td {
|
|
82
|
-
padding-bottom: 0.375rem;
|
|
83
|
-
}
|
|
84
|
-
`;
|
|
85
|
-
const ChartTooltip = styled(Flex).withConfig({ displayName: "ChartTooltip", componentId: "sc-1iyyyv7" }) `
|
|
86
|
-
flex-wrap: nowrap;
|
|
87
|
-
background: rgb(48, 69, 79);
|
|
88
|
-
border-radius: 0.25rem;
|
|
89
|
-
color: white;
|
|
90
|
-
|
|
91
|
-
:not(:last-child) {
|
|
92
|
-
margin-bottom: 0.25rem;
|
|
93
|
-
}
|
|
94
|
-
`;
|
|
95
|
-
const ChartTooltipLabel = styled.div.withConfig({ displayName: "ChartTooltipLabel", componentId: "sc-gl0qxz" }) `
|
|
96
|
-
margin-right: 0.25rem;
|
|
97
|
-
`;
|
|
98
|
-
const ChartTooltipColor = styled.div.withConfig({ displayName: "ChartTooltipColor", componentId: "sc-tmvvbh" }) `
|
|
99
|
-
width: 0.625rem;
|
|
100
|
-
height: 0.625rem;
|
|
101
|
-
background-color: ${({ $color }) => $color};
|
|
102
|
-
border-radius: ${({ theme: { borderRadius } }) => borderRadius.smallest};
|
|
103
|
-
margin-right: 0.25rem;
|
|
104
|
-
`;
|
|
105
|
-
const ChartLegendColor$1 = styled.div.withConfig({ displayName: "ChartLegendColor", componentId: "sc-l66k4q" }) `
|
|
106
|
-
width: 0.5rem;
|
|
107
|
-
height: 0.5rem;
|
|
108
|
-
background-color: ${({ $color }) => $color};
|
|
109
|
-
border-radius: 0.125rem;
|
|
110
|
-
`;
|
|
111
|
-
const ChartLegendValue = styled.div.withConfig({ displayName: "ChartLegendValue", componentId: "sc-1d7z775" }) `
|
|
112
|
-
opacity: 0.65;
|
|
113
|
-
`;
|
|
114
|
-
const ChartTooltipRow = styled(Flex).withConfig({ displayName: "ChartTooltipRow", componentId: "sc-ih1uc5" }) `
|
|
115
|
-
display: flex;
|
|
116
|
-
flex-direction: row;
|
|
117
|
-
flex-wrap: nowrap;
|
|
118
|
-
align-items: center;
|
|
119
|
-
margin-top: 0.5rem;
|
|
120
|
-
line-height: 0;
|
|
121
|
-
|
|
122
|
-
${ChartLegendColor$1} {
|
|
123
|
-
margin-right: 0.25rem;
|
|
124
|
-
}
|
|
125
|
-
`;
|
|
126
|
-
const ChartTooltipName = styled.div.withConfig({ displayName: "ChartTooltipName", componentId: "sc-sm4g0t" }) `
|
|
127
|
-
margin-right: 1rem;
|
|
128
|
-
opacity: 0.65;
|
|
129
|
-
`;
|
|
130
|
-
const PieChartCenter = styled.div.withConfig({ displayName: "PieChartCenter", componentId: "sc-1le93jy" }) `
|
|
131
|
-
position: absolute;
|
|
132
|
-
top: 50%;
|
|
133
|
-
left: 50%;
|
|
134
|
-
transform: translate(-50%, -50%);
|
|
135
|
-
text-align: center;
|
|
136
|
-
font-weight: bold;
|
|
137
|
-
font-size: 1.5rem;
|
|
138
|
-
`;
|
|
139
|
-
const ChartWrapperContainer = styled.div.withConfig({ displayName: "ChartWrapperContainer", componentId: "sc-1f4x9zv" }) `
|
|
140
|
-
position: relative;
|
|
141
|
-
width: 100%;
|
|
142
|
-
`;
|
|
143
|
-
/*
|
|
144
|
-
* fill-режим: обёртка забирает всю доступную ячейку (её высоту задаёт флекс-цепочка, а не контент графика),
|
|
145
|
-
* на неё вешается ref для ResizeObserver — меряем обе оси без цикла. Плоский div (не Flex uilib), как соседний
|
|
146
|
-
* ChartWrapperContainer, чтобы ref гарантированно дошёл до DOM-узла. Тело графика центрируется внутри.
|
|
147
|
-
*/
|
|
148
|
-
const ChartFillMeasure = styled.div.withConfig({ displayName: "ChartFillMeasure", componentId: "sc-1r4oerb" }) `
|
|
149
|
-
position: relative;
|
|
150
|
-
display: flex;
|
|
151
|
-
align-items: center;
|
|
152
|
-
justify-content: center;
|
|
153
|
-
width: 100%;
|
|
154
|
-
height: 100%;
|
|
155
|
-
min-width: 0;
|
|
156
|
-
min-height: 0;
|
|
157
|
-
overflow: hidden;
|
|
158
|
-
|
|
159
|
-
/* SVG по умолчанию inline, поэтому под ним остаётся зазор базовой линии (~4px при line-height
|
|
160
|
-
18.4px): вне fill его скрывал запас высоты, а тело, точно заполнившее ячейку, из-за него
|
|
161
|
-
вылезает за нижнюю границу. Блочный SVG зазора не даёт. */
|
|
162
|
-
svg {
|
|
163
|
-
display: block;
|
|
164
|
-
}
|
|
165
|
-
`;
|
|
166
|
-
const Tooltip = styled.div.withConfig({ displayName: "Tooltip", componentId: "sc-1va8cy3" }) `
|
|
167
|
-
position: relative;
|
|
168
|
-
border-radius: 0.25rem;
|
|
169
|
-
background-color: rgba(28, 33, 48);
|
|
170
|
-
padding: 0.5rem;
|
|
171
|
-
box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.15);
|
|
172
|
-
font-size: 0.75rem;
|
|
173
|
-
transform: ${({ transform }) => transform};
|
|
174
|
-
color: white;
|
|
175
|
-
|
|
176
|
-
:before {
|
|
177
|
-
position: absolute;
|
|
178
|
-
display: block;
|
|
179
|
-
content: "";
|
|
180
|
-
width: 0;
|
|
181
|
-
height: 0;
|
|
182
|
-
}
|
|
183
|
-
`;
|
|
184
|
-
const LineChartStyles = createGlobalStyle `
|
|
185
|
-
.dashboardLineChartTooltip.${lineChartClassNames.lineChartMouseLabel} {
|
|
186
|
-
.${lineChartClassNames.lineChartLabelFlex} {
|
|
187
|
-
justify-content: center;
|
|
188
|
-
align-items: flex-end;
|
|
189
|
-
|
|
190
|
-
${Tooltip} {
|
|
191
|
-
margin: 0 0 12px 0;
|
|
192
|
-
|
|
193
|
-
:before {
|
|
194
|
-
top: auto;
|
|
195
|
-
bottom: 0;
|
|
196
|
-
left: 50%;
|
|
197
|
-
transform: translate(-50%, 100%);
|
|
198
|
-
border-left: 4px solid transparent;
|
|
199
|
-
border-right: 4px solid transparent;
|
|
200
|
-
border-top: 4px solid rgba(28, 33, 48, 0.9);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
.${lineChartClassNames.lineChartYScaleGlobal}, .${lineChartClassNames.lineChartXScaleGlobal} {
|
|
207
|
-
.domain {
|
|
208
|
-
visibility: hidden;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.tick {
|
|
212
|
-
text {
|
|
213
|
-
fill: ${({ theme: { palette } }) => palette.textDisabled};
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
line {
|
|
217
|
-
visibility: hidden;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
.${lineChartClassNames.lineChartXScaleGlobal} {
|
|
223
|
-
.tick {
|
|
224
|
-
:first-of-type {
|
|
225
|
-
text {
|
|
226
|
-
text-anchor: start;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
:last-of-type {
|
|
231
|
-
text {
|
|
232
|
-
text-anchor: end;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
.${lineChartClassNames.lineChartLine} {
|
|
239
|
-
stroke-width: 2px;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.${lineChartClassNames.lineChartLabel} {
|
|
243
|
-
color: ${({ theme: { palette } }) => palette.textPrimary};
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
.${lineChartClassNames.lineChartMouseCircle} {
|
|
247
|
-
stroke: #ffffff;
|
|
248
|
-
stroke-width: 2px;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
.${lineChartClassNames.lineChartGridLineX} {
|
|
252
|
-
stroke: ${({ theme: { palette } }) => palette.element};
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
text {
|
|
256
|
-
fill: ${({ theme: { palette } }) => palette.textDisabled};
|
|
257
|
-
}
|
|
258
|
-
`;
|
|
259
|
-
const StyledBarChart = styled(BarChart$1).withConfig({ displayName: "StyledBarChart", componentId: "sc-1l1kx80" }) `
|
|
260
|
-
.domain {
|
|
261
|
-
display: none;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
.tick {
|
|
265
|
-
text {
|
|
266
|
-
fill: ${({ theme: { palette } }) => palette.textDisabled};
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
line {
|
|
270
|
-
visibility: hidden;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
`;
|
|
274
|
-
|
|
275
76
|
function range(start, stop, step) {
|
|
276
77
|
start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
|
|
277
78
|
|
|
@@ -3586,6 +3387,22 @@ const ATTRIBUTE_ICON_ELEMENT_TYPES = {
|
|
|
3586
3387
|
const EMPTY_DATA_SOURCE_LAYER_INFO = {
|
|
3587
3388
|
configuration: { attributesConfiguration: { attributes: [] } },
|
|
3588
3389
|
};
|
|
3390
|
+
/**
|
|
3391
|
+
* z-index плавающих слоёв дашборда: тултипы графиков и выпадающие списки фильтров.
|
|
3392
|
+
*
|
|
3393
|
+
* Тултипы графиков (`@evergis/charts`) и поповеры дропдаунов рендерятся порталом в `body`, где
|
|
3394
|
+
* их собственные z-index (100 у Bar/Line, 103 у Pie) ниже модального окна `Dialog` из
|
|
3395
|
+
* `@evergis/uilib-gl` (110) — внутри модалки дашборда они уходили под окно.
|
|
3396
|
+
*/
|
|
3397
|
+
const DASHBOARD_OVERLAY_Z_INDEX = 1000;
|
|
3398
|
+
/**
|
|
3399
|
+
* Стиль контейнера тултипа `PieChart`: там z-index проставляется инлайном (103), поэтому поднять
|
|
3400
|
+
* его CSS-классом нельзя — только через `tooltipStyle`. Ключ пишем в CSS-нотации: значение уходит
|
|
3401
|
+
* в `d3.selection.style()` → `setProperty`, а camelCase он не понимает.
|
|
3402
|
+
*/
|
|
3403
|
+
const PIE_CHART_TOOLTIP_STYLE = {
|
|
3404
|
+
"z-index": `${DASHBOARD_OVERLAY_Z_INDEX}`,
|
|
3405
|
+
};
|
|
3589
3406
|
const DEFAULT_DROPDOWN_WIDTH = 312;
|
|
3590
3407
|
const DEFAULT_FILTER_PADDING = 12;
|
|
3591
3408
|
/** Базовый отступ обёртки контейнера. Снимается, когда контейнер занимает ячейку целиком. */
|
|
@@ -3619,6 +3436,217 @@ const CONTAINER_BODY_FILL_STYLE = {
|
|
|
3619
3436
|
*/
|
|
3620
3437
|
const CONTAINERS_GROUP_DEFAULTS = { boxSizing: "border-box" };
|
|
3621
3438
|
|
|
3439
|
+
const ChartTooltipTable = styled.table.withConfig({ displayName: "ChartTooltipTable", componentId: "sc-1fk3ts5" }) `
|
|
3440
|
+
td {
|
|
3441
|
+
padding: 0;
|
|
3442
|
+
}
|
|
3443
|
+
|
|
3444
|
+
tr:not(:last-child) td {
|
|
3445
|
+
padding-bottom: 0.375rem;
|
|
3446
|
+
}
|
|
3447
|
+
`;
|
|
3448
|
+
const ChartTooltip = styled(Flex).withConfig({ displayName: "ChartTooltip", componentId: "sc-1iyyyv7" }) `
|
|
3449
|
+
flex-wrap: nowrap;
|
|
3450
|
+
background: rgb(48, 69, 79);
|
|
3451
|
+
border-radius: 0.25rem;
|
|
3452
|
+
color: white;
|
|
3453
|
+
|
|
3454
|
+
:not(:last-child) {
|
|
3455
|
+
margin-bottom: 0.25rem;
|
|
3456
|
+
}
|
|
3457
|
+
`;
|
|
3458
|
+
const ChartTooltipLabel = styled.div.withConfig({ displayName: "ChartTooltipLabel", componentId: "sc-gl0qxz" }) `
|
|
3459
|
+
margin-right: 0.25rem;
|
|
3460
|
+
`;
|
|
3461
|
+
const ChartTooltipColor = styled.div.withConfig({ displayName: "ChartTooltipColor", componentId: "sc-tmvvbh" }) `
|
|
3462
|
+
width: 0.625rem;
|
|
3463
|
+
height: 0.625rem;
|
|
3464
|
+
background-color: ${({ $color }) => $color};
|
|
3465
|
+
border-radius: ${({ theme: { borderRadius } }) => borderRadius.smallest};
|
|
3466
|
+
margin-right: 0.25rem;
|
|
3467
|
+
`;
|
|
3468
|
+
const ChartLegendColor$1 = styled.div.withConfig({ displayName: "ChartLegendColor", componentId: "sc-l66k4q" }) `
|
|
3469
|
+
width: 0.5rem;
|
|
3470
|
+
height: 0.5rem;
|
|
3471
|
+
background-color: ${({ $color }) => $color};
|
|
3472
|
+
border-radius: 0.125rem;
|
|
3473
|
+
`;
|
|
3474
|
+
const ChartLegendValue = styled.div.withConfig({ displayName: "ChartLegendValue", componentId: "sc-1d7z775" }) `
|
|
3475
|
+
opacity: 0.65;
|
|
3476
|
+
`;
|
|
3477
|
+
const ChartTooltipRow = styled(Flex).withConfig({ displayName: "ChartTooltipRow", componentId: "sc-ih1uc5" }) `
|
|
3478
|
+
display: flex;
|
|
3479
|
+
flex-direction: row;
|
|
3480
|
+
flex-wrap: nowrap;
|
|
3481
|
+
align-items: center;
|
|
3482
|
+
margin-top: 0.5rem;
|
|
3483
|
+
line-height: 0;
|
|
3484
|
+
|
|
3485
|
+
${ChartLegendColor$1} {
|
|
3486
|
+
margin-right: 0.25rem;
|
|
3487
|
+
}
|
|
3488
|
+
`;
|
|
3489
|
+
const ChartTooltipName = styled.div.withConfig({ displayName: "ChartTooltipName", componentId: "sc-sm4g0t" }) `
|
|
3490
|
+
margin-right: 1rem;
|
|
3491
|
+
opacity: 0.65;
|
|
3492
|
+
`;
|
|
3493
|
+
const PieChartCenter = styled.div.withConfig({ displayName: "PieChartCenter", componentId: "sc-1le93jy" }) `
|
|
3494
|
+
position: absolute;
|
|
3495
|
+
top: 50%;
|
|
3496
|
+
left: 50%;
|
|
3497
|
+
transform: translate(-50%, -50%);
|
|
3498
|
+
text-align: center;
|
|
3499
|
+
font-weight: bold;
|
|
3500
|
+
font-size: 1.5rem;
|
|
3501
|
+
`;
|
|
3502
|
+
const ChartWrapperContainer = styled.div.withConfig({ displayName: "ChartWrapperContainer", componentId: "sc-1f4x9zv" }) `
|
|
3503
|
+
position: relative;
|
|
3504
|
+
width: 100%;
|
|
3505
|
+
`;
|
|
3506
|
+
/*
|
|
3507
|
+
* fill-режим: обёртка забирает всю доступную ячейку (её высоту задаёт флекс-цепочка, а не контент графика),
|
|
3508
|
+
* на неё вешается ref для ResizeObserver — меряем обе оси без цикла. Плоский div (не Flex uilib), как соседний
|
|
3509
|
+
* ChartWrapperContainer, чтобы ref гарантированно дошёл до DOM-узла. Тело графика центрируется внутри.
|
|
3510
|
+
*/
|
|
3511
|
+
const ChartFillMeasure = styled.div.withConfig({ displayName: "ChartFillMeasure", componentId: "sc-1r4oerb" }) `
|
|
3512
|
+
position: relative;
|
|
3513
|
+
display: flex;
|
|
3514
|
+
align-items: center;
|
|
3515
|
+
justify-content: center;
|
|
3516
|
+
width: 100%;
|
|
3517
|
+
height: 100%;
|
|
3518
|
+
min-width: 0;
|
|
3519
|
+
min-height: 0;
|
|
3520
|
+
overflow: hidden;
|
|
3521
|
+
|
|
3522
|
+
/* SVG по умолчанию inline, поэтому под ним остаётся зазор базовой линии (~4px при line-height
|
|
3523
|
+
18.4px): вне fill его скрывал запас высоты, а тело, точно заполнившее ячейку, из-за него
|
|
3524
|
+
вылезает за нижнюю границу. Блочный SVG зазора не даёт. */
|
|
3525
|
+
svg {
|
|
3526
|
+
display: block;
|
|
3527
|
+
}
|
|
3528
|
+
`;
|
|
3529
|
+
const Tooltip = styled.div.withConfig({ displayName: "Tooltip", componentId: "sc-1va8cy3" }) `
|
|
3530
|
+
position: relative;
|
|
3531
|
+
border-radius: 0.25rem;
|
|
3532
|
+
background-color: rgba(28, 33, 48);
|
|
3533
|
+
padding: 0.5rem;
|
|
3534
|
+
box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.15);
|
|
3535
|
+
font-size: 0.75rem;
|
|
3536
|
+
transform: ${({ transform }) => transform};
|
|
3537
|
+
color: white;
|
|
3538
|
+
|
|
3539
|
+
:before {
|
|
3540
|
+
position: absolute;
|
|
3541
|
+
display: block;
|
|
3542
|
+
content: "";
|
|
3543
|
+
width: 0;
|
|
3544
|
+
height: 0;
|
|
3545
|
+
}
|
|
3546
|
+
`;
|
|
3547
|
+
/**
|
|
3548
|
+
* Тултипы графиков рендерятся в `body` со своим z-index (100 у Bar и Line) — ниже модального окна
|
|
3549
|
+
* `Dialog` из `@evergis/uilib-gl` (110), поэтому в модалке дашборда они уходили под окно. Класс
|
|
3550
|
+
* дублируем, чтобы правило перебило стили `@evergis/charts` по специфичности, а не по порядку
|
|
3551
|
+
* подключения.
|
|
3552
|
+
*/
|
|
3553
|
+
const ChartTooltipStyles = createGlobalStyle `
|
|
3554
|
+
.${barChartClassNames.barChartMouseTooltip}.${barChartClassNames.barChartMouseTooltip},
|
|
3555
|
+
.${lineChartClassNames.lineChartMouseLabel}.${lineChartClassNames.lineChartMouseLabel} {
|
|
3556
|
+
z-index: ${DASHBOARD_OVERLAY_Z_INDEX};
|
|
3557
|
+
}
|
|
3558
|
+
`;
|
|
3559
|
+
const LineChartStyles = createGlobalStyle `
|
|
3560
|
+
.dashboardLineChartTooltip.${lineChartClassNames.lineChartMouseLabel} {
|
|
3561
|
+
.${lineChartClassNames.lineChartLabelFlex} {
|
|
3562
|
+
justify-content: center;
|
|
3563
|
+
align-items: flex-end;
|
|
3564
|
+
|
|
3565
|
+
${Tooltip} {
|
|
3566
|
+
margin: 0 0 12px 0;
|
|
3567
|
+
|
|
3568
|
+
:before {
|
|
3569
|
+
top: auto;
|
|
3570
|
+
bottom: 0;
|
|
3571
|
+
left: 50%;
|
|
3572
|
+
transform: translate(-50%, 100%);
|
|
3573
|
+
border-left: 4px solid transparent;
|
|
3574
|
+
border-right: 4px solid transparent;
|
|
3575
|
+
border-top: 4px solid rgba(28, 33, 48, 0.9);
|
|
3576
|
+
}
|
|
3577
|
+
}
|
|
3578
|
+
}
|
|
3579
|
+
}
|
|
3580
|
+
|
|
3581
|
+
.${lineChartClassNames.lineChartYScaleGlobal}, .${lineChartClassNames.lineChartXScaleGlobal} {
|
|
3582
|
+
.domain {
|
|
3583
|
+
visibility: hidden;
|
|
3584
|
+
}
|
|
3585
|
+
|
|
3586
|
+
.tick {
|
|
3587
|
+
text {
|
|
3588
|
+
fill: ${({ theme: { palette } }) => palette.textDisabled};
|
|
3589
|
+
}
|
|
3590
|
+
|
|
3591
|
+
line {
|
|
3592
|
+
visibility: hidden;
|
|
3593
|
+
}
|
|
3594
|
+
}
|
|
3595
|
+
}
|
|
3596
|
+
|
|
3597
|
+
.${lineChartClassNames.lineChartXScaleGlobal} {
|
|
3598
|
+
.tick {
|
|
3599
|
+
:first-of-type {
|
|
3600
|
+
text {
|
|
3601
|
+
text-anchor: start;
|
|
3602
|
+
}
|
|
3603
|
+
}
|
|
3604
|
+
|
|
3605
|
+
:last-of-type {
|
|
3606
|
+
text {
|
|
3607
|
+
text-anchor: end;
|
|
3608
|
+
}
|
|
3609
|
+
}
|
|
3610
|
+
}
|
|
3611
|
+
}
|
|
3612
|
+
|
|
3613
|
+
.${lineChartClassNames.lineChartLine} {
|
|
3614
|
+
stroke-width: 2px;
|
|
3615
|
+
}
|
|
3616
|
+
|
|
3617
|
+
.${lineChartClassNames.lineChartLabel} {
|
|
3618
|
+
color: ${({ theme: { palette } }) => palette.textPrimary};
|
|
3619
|
+
}
|
|
3620
|
+
|
|
3621
|
+
.${lineChartClassNames.lineChartMouseCircle} {
|
|
3622
|
+
stroke: #ffffff;
|
|
3623
|
+
stroke-width: 2px;
|
|
3624
|
+
}
|
|
3625
|
+
|
|
3626
|
+
.${lineChartClassNames.lineChartGridLineX} {
|
|
3627
|
+
stroke: ${({ theme: { palette } }) => palette.element};
|
|
3628
|
+
}
|
|
3629
|
+
|
|
3630
|
+
text {
|
|
3631
|
+
fill: ${({ theme: { palette } }) => palette.textDisabled};
|
|
3632
|
+
}
|
|
3633
|
+
`;
|
|
3634
|
+
const StyledBarChart = styled(BarChart$1).withConfig({ displayName: "StyledBarChart", componentId: "sc-1l1kx80" }) `
|
|
3635
|
+
.domain {
|
|
3636
|
+
display: none;
|
|
3637
|
+
}
|
|
3638
|
+
|
|
3639
|
+
.tick {
|
|
3640
|
+
text {
|
|
3641
|
+
fill: ${({ theme: { palette } }) => palette.textDisabled};
|
|
3642
|
+
}
|
|
3643
|
+
|
|
3644
|
+
line {
|
|
3645
|
+
visibility: hidden;
|
|
3646
|
+
}
|
|
3647
|
+
}
|
|
3648
|
+
`;
|
|
3649
|
+
|
|
3622
3650
|
const StackBarContainer = styled(Flex).withConfig({ displayName: "StackBarContainer", componentId: "sc-stc97k" }) `
|
|
3623
3651
|
flex-wrap: nowrap;
|
|
3624
3652
|
width: 100%;
|
|
@@ -4514,13 +4542,22 @@ const applyFiltersToCondition = ({ condition, name, defaultValue, filters, isSin
|
|
|
4514
4542
|
return applyTreeFilterToCondition(condition, name, rawValue, isSingle);
|
|
4515
4543
|
}
|
|
4516
4544
|
const hasFilter = filters[name] !== undefined && !!filters[name].value?.toString().length;
|
|
4545
|
+
const filterName = `${FILTER_PREFIX}${name}`;
|
|
4546
|
+
// Пока фильтр не применён, границы `%name.min` / `%name.max` берём из range-дефолта конфига
|
|
4547
|
+
// (`defaultValue: [from, to]`) — иначе в условие ушёл бы весь массив вместо своей границы.
|
|
4548
|
+
// Проверка плейсхолдеров обязательна: у array-фильтра массивный дефолт подставляется целиком.
|
|
4549
|
+
const rangeDefault = !hasFilter &&
|
|
4550
|
+
Array.isArray(defaultValue) &&
|
|
4551
|
+
(condition.includes(`${filterName}.min`) || condition.includes(`${filterName}.max`))
|
|
4552
|
+
? defaultValue
|
|
4553
|
+
: null;
|
|
4517
4554
|
const min = formatConditionValue({
|
|
4518
|
-
value: hasFilter ? filters[name].min : null,
|
|
4555
|
+
value: hasFilter ? filters[name].min : rangeDefault?.[0] ?? null,
|
|
4519
4556
|
checkQuotes: !isSingle,
|
|
4520
4557
|
isSetParams,
|
|
4521
4558
|
});
|
|
4522
4559
|
const max = formatConditionValue({
|
|
4523
|
-
value: hasFilter ? filters[name].max : null,
|
|
4560
|
+
value: hasFilter ? filters[name].max : rangeDefault?.[1] ?? null,
|
|
4524
4561
|
checkQuotes: !isSingle,
|
|
4525
4562
|
isSetParams,
|
|
4526
4563
|
});
|
|
@@ -4530,7 +4567,6 @@ const applyFiltersToCondition = ({ condition, name, defaultValue, filters, isSin
|
|
|
4530
4567
|
checkQuotes: !isSingle,
|
|
4531
4568
|
isSetParams,
|
|
4532
4569
|
});
|
|
4533
|
-
const filterName = `${FILTER_PREFIX}${name}`;
|
|
4534
4570
|
const hasMin = min !== "" && min !== null && min !== undefined;
|
|
4535
4571
|
const hasMax = max !== "" && max !== null && max !== undefined;
|
|
4536
4572
|
let result = condition;
|
|
@@ -12742,7 +12778,7 @@ const EditStringContainer = ({ type, elementConfig, renderElement, }) => {
|
|
|
12742
12778
|
onControlChange(String(lastSelected?.value ?? ""));
|
|
12743
12779
|
setValue(lastSelected?.text ?? "");
|
|
12744
12780
|
}, [onControlChange, setValue]);
|
|
12745
|
-
return (jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsx(ContainerValue, { column: true, children: control?.relatedDataSource ? (jsx(AutoComplete, { value: value, options: options, width: "100%", onChange: onChange, onSelect: onSelect })) : (jsx(Input, { value: controlValue, width: "100%", onChange: (e) => onControlChange(e.target.value) })) })] }));
|
|
12781
|
+
return (jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsx(ContainerValue, { column: true, children: control?.relatedDataSource ? (jsx(AutoComplete, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, value: value, options: options, width: "100%", onChange: onChange, onSelect: onSelect })) : (jsx(Input, { value: controlValue, width: "100%", onChange: (e) => onControlChange(e.target.value) })) })] }));
|
|
12746
12782
|
};
|
|
12747
12783
|
|
|
12748
12784
|
const EditNumberContainer = ({ type, elementConfig, renderElement, }) => {
|
|
@@ -12755,7 +12791,7 @@ const EditDropdownContainer = ({ type, elementConfig, renderElement, }) => {
|
|
|
12755
12791
|
const { value, control, items, onChange } = useEditControl(type, elementConfig);
|
|
12756
12792
|
const { id, style } = elementConfig || {};
|
|
12757
12793
|
const optionsList = useMemo(() => items.map(item => ({ text: item, value: item })), [items]);
|
|
12758
|
-
return (jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsx(ContainerValue, { column: true, children: jsx(Dropdown, { zIndex:
|
|
12794
|
+
return (jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsx(ContainerValue, { column: true, children: jsx(Dropdown, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, label: control?.label, placeholder: control?.placeholder, options: optionsList, value: value, width: `${control?.width ?? DEFAULT_DROPDOWN_WIDTH}px`, onChange: ([option]) => onChange(option.value) }) })] }));
|
|
12759
12795
|
};
|
|
12760
12796
|
|
|
12761
12797
|
const CheckboxWrapper = styled(ContainerValue).withConfig({ displayName: "CheckboxWrapper", componentId: "sc-169umb6" }) `
|
|
@@ -12796,7 +12832,7 @@ const EditDateContainer = ({ type, elementConfig, renderElement, }) => {
|
|
|
12796
12832
|
const { withTime } = options || {};
|
|
12797
12833
|
const dateValue = useMemo(() => (value ? new Date(value) : undefined), [value]);
|
|
12798
12834
|
const handleChange = useCallback((date) => onChange(date.toISOString()), [onChange]);
|
|
12799
|
-
return (jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsx(ContainerValue, { column: true, children: jsx(DatePicker, { value: dateValue, locale: getLocale(language), withTime: withTime ?? false, withHeader: true, width: "100%", onChange: handleChange }) })] }));
|
|
12835
|
+
return (jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsx(ContainerValue, { column: true, children: jsx(DatePicker, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, value: dateValue, locale: getLocale(language), withTime: withTime ?? false, withHeader: true, width: "100%", onChange: handleChange }) })] }));
|
|
12800
12836
|
};
|
|
12801
12837
|
|
|
12802
12838
|
const AddButton = ({ multiple = true, accept, onSelectFiles, onSelectFromCatalog, onSelectFromLink, }) => {
|
|
@@ -13944,7 +13980,7 @@ const ElementControl = ({ elementConfig }) => {
|
|
|
13944
13980
|
});
|
|
13945
13981
|
}
|
|
13946
13982
|
}, [changeControls, control?.targetAttributeName]);
|
|
13947
|
-
return (jsx(Dropdown, { zIndex:
|
|
13983
|
+
return (jsx(Dropdown, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, width: toCssSize(width) ?? "100%", label: label, options: items, value: currentValue, placeholder: placeholder, disabled: isDisabled, onChange: handleChange }));
|
|
13948
13984
|
};
|
|
13949
13985
|
|
|
13950
13986
|
const StyledIconFontSizeMixin = css `
|
|
@@ -14118,7 +14154,7 @@ const LocalLink = memo(({ link, style }) => {
|
|
|
14118
14154
|
navigator.clipboard.writeText(link);
|
|
14119
14155
|
toggleOpen();
|
|
14120
14156
|
}, [link, toggleOpen]);
|
|
14121
|
-
return (jsx(Popover, { open: isOpen, zIndex:
|
|
14157
|
+
return (jsx(Popover, { open: isOpen, zIndex: DASHBOARD_OVERLAY_Z_INDEX, onRequestClose: toggleOpen, anchorOrigin: "bottom-right", targetOrigin: "top-right", anchor: jsx(LocalLinkButton, { onClick: toggleOpen }), children: jsxs(LocalLinkBlank, { children: [jsx(Link, { href: link, target: "_blank", rel: "noreferrer", style: style, children: link }), jsx(LocalLinkCopy, { children: jsx(IconButton, { kind: "copy", onClick: onCopy, children: t("copy", { ns: "dashboard", defaultValue: "Копировать" }) }) })] }) }));
|
|
14122
14158
|
});
|
|
14123
14159
|
|
|
14124
14160
|
const ElementLink = memo(({ type, elementConfig }) => {
|
|
@@ -14739,7 +14775,7 @@ const TableCell = memo(({ attribute, row, canEdit, onChange }) => {
|
|
|
14739
14775
|
}
|
|
14740
14776
|
const renderEditor = () => {
|
|
14741
14777
|
if (type === AttributeType.DateTime) {
|
|
14742
|
-
return (jsx(DatePicker, { focus: true, value: dateValue, locale: getLocale(language), withTime: withTime, withHeader: true, width: "100%", onChange: date => handleChange(date.toISOString()) }));
|
|
14778
|
+
return (jsx(DatePicker, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, focus: true, value: dateValue, locale: getLocale(language), withTime: withTime, withHeader: true, width: "100%", onChange: date => handleChange(date.toISOString()) }));
|
|
14743
14779
|
}
|
|
14744
14780
|
if (NUMBER_EDITOR_TYPES.includes(type)) {
|
|
14745
14781
|
return (jsx(NumberInput, { autoFocus: true, value: value === null || value === undefined ? null : Number(value), width: "100%", numeralDecimalScale: INTEGER_ATTRIBUTE_TYPES.includes(type) ? 0 : undefined, onChange: next => handleChange(next) }));
|
|
@@ -15817,7 +15853,7 @@ const TextFilter = ({ type, filter }) => {
|
|
|
15817
15853
|
}, [filterName, filters]);
|
|
15818
15854
|
if (!configFilter)
|
|
15819
15855
|
return null;
|
|
15820
|
-
return (jsx(TextFilterContainer, { children: jsx(AutoComplete, { value: value, placeholder: placeholder, options: variants || options, zIndex:
|
|
15856
|
+
return (jsx(TextFilterContainer, { children: jsx(AutoComplete, { value: value, placeholder: placeholder, options: variants || options, zIndex: DASHBOARD_OVERLAY_Z_INDEX, width: getFilterWidth(width), menuHeight: height ? `${height}px` : "10rem", withInfiniteScroll: !variants, infiniteScrollProps: variants ? undefined : infiniteScrollProps, multiSelect: multiSelect, selected: selected, setOptions: variants ? undefined : setOptions, onChange: onChange, onSelect: onSelect, onGetInnerRef: ref => (suggestRef.current = ref), asyncCallback: variants ? undefined : search, onBlur: onBlur, onKeyUp: isFreeTextInput || (variants && !variants.length) ? onKeyUp : undefined }) }));
|
|
15821
15857
|
};
|
|
15822
15858
|
|
|
15823
15859
|
const getListOptions = (items, filterName, configFilters) => {
|
|
@@ -15863,7 +15899,7 @@ const DropdownFilter = ({ type, filter, elementConfig }) => {
|
|
|
15863
15899
|
}, [changeFilters, filterName]);
|
|
15864
15900
|
if (!configFilter && !variants)
|
|
15865
15901
|
return null;
|
|
15866
|
-
return (jsx(Dropdown, { zIndex:
|
|
15902
|
+
return (jsx(Dropdown, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, width: getFilterWidth(width), value: value, placeholder: placeholder, options: filterOptions, onChange: onChange }));
|
|
15867
15903
|
};
|
|
15868
15904
|
|
|
15869
15905
|
const CheckboxFilter = ({ type, filter, elementConfig }) => {
|
|
@@ -16133,7 +16169,7 @@ const BarChartFilter = ({ type, config, elementConfig, filter }) => {
|
|
|
16133
16169
|
return (jsx(ThemeProvider, { children: jsx(TooltipContainer, { children: group.groupName === group.value.toString() ? group.value : [group.groupName, group.value].join(": ") }) }));
|
|
16134
16170
|
}, []);
|
|
16135
16171
|
const totalHeight = height + BAR_CHART_HEADER_HEIGHT + BAR_CHART_FOOTER_MARGIN;
|
|
16136
|
-
return (
|
|
16172
|
+
return (jsxs(ChartWrapper, { height: totalHeight, loading: loading, style: style, children: [jsx(ChartTooltipStyles, {}), jsxs(BarChartWrapper, { height: totalHeight, children: [jsxs(BarChartFilterHeader, { height: BAR_CHART_HEADER_HEIGHT, children: [jsxs(BarChartFilterArrows, { children: [jsx(IconButton, { kind: "prev", disabled: prevDisabled, onClick: onPrev }), jsx(IconButton, { kind: "next", disabled: nextDisabled, onClick: onNext })] }), renderSelectedRange] }), jsx(BarChartContainer, { barHeight: barHeight, marginBottom: DEFAULT_BAR_CHART_MARGINS.bottom, children: jsx(BarChart, { data: data, margin: DEFAULT_BAR_CHART_MARGINS, height: height, barWidth: barWidth, barPadding: padding, xAxisPadding: 0, yAxisPadding: 0, selectable: !loading, dynamicTooltipEnable: true, isBarTooltip: true, renderTooltip: renderTooltip, ...rest }) })] })] }));
|
|
16137
16173
|
};
|
|
16138
16174
|
|
|
16139
16175
|
const DEFAULT_FROM_DATA = { minFromData: null, maxFromData: null };
|
|
@@ -16143,6 +16179,7 @@ const RangeDateFilter = ({ type, filter }) => {
|
|
|
16143
16179
|
const { currentPage } = useWidgetPage(type);
|
|
16144
16180
|
const [value, setValue] = useState([undefined, undefined]);
|
|
16145
16181
|
const isInit = useRef(false);
|
|
16182
|
+
const isDefaultApplied = useRef(false);
|
|
16146
16183
|
const updateDebounce = useDebouncedCallback(FILTER_UPDATE_DEBOUNCE);
|
|
16147
16184
|
const { filters: configFilters } = currentPage;
|
|
16148
16185
|
const { filterName, label, minValue, maxValue, withTime } = filter.options;
|
|
@@ -16155,28 +16192,42 @@ const RangeDateFilter = ({ type, filter }) => {
|
|
|
16155
16192
|
maxFromData: !prev.maxFromData ? date : date > prev.maxFromData ? date : prev.maxFromData
|
|
16156
16193
|
};
|
|
16157
16194
|
}, DEFAULT_FROM_DATA) || DEFAULT_FROM_DATA, [configFilter?.attributeValue, dataSource?.features]);
|
|
16158
|
-
const minDate = useMemo(() => minValue || minFromData
|
|
16159
|
-
const maxDate = useMemo(() => maxValue || maxFromData
|
|
16195
|
+
const minDate = useMemo(() => minValue || minFromData?.toISOString(), [minFromData, minValue]);
|
|
16196
|
+
const maxDate = useMemo(() => maxValue || maxFromData?.toISOString(), [maxFromData, maxValue]);
|
|
16197
|
+
// Диапазон по умолчанию: `defaultValue: [from, to]` из конфига фильтра — начальное значение
|
|
16198
|
+
// и точка сброса. Границы календаря (min/max) при этом не меняются; незаданная граница
|
|
16199
|
+
// дефолта падает на них же — как было до появления `defaultValue`.
|
|
16200
|
+
const defaultRange = useMemo(() => {
|
|
16201
|
+
const [from, to] = (Array.isArray(configFilter?.defaultValue) ? configFilter.defaultValue : []);
|
|
16202
|
+
return [getDate(from)?.toISOString() ?? minDate, getDate(to)?.toISOString() ?? maxDate];
|
|
16203
|
+
}, [configFilter?.defaultValue, maxDate, minDate]);
|
|
16160
16204
|
const isEmpty = useMemo(() => isNil(value?.[0]) && isNil(value?.[1]), [value]);
|
|
16161
|
-
const isDefault = useMemo(() => value?.[0] ===
|
|
16205
|
+
const isDefault = useMemo(() => value?.[0] === defaultRange[0] && value?.[1] === defaultRange[1], [defaultRange, value]);
|
|
16162
16206
|
const reset = useCallback(() => {
|
|
16163
|
-
|
|
16207
|
+
const [from, to] = defaultRange;
|
|
16208
|
+
setValue([from, to]);
|
|
16164
16209
|
changeFilters({
|
|
16165
16210
|
[filterName]: {
|
|
16166
|
-
value: [
|
|
16167
|
-
min:
|
|
16168
|
-
max:
|
|
16211
|
+
value: [from, to],
|
|
16212
|
+
min: from,
|
|
16213
|
+
max: to
|
|
16169
16214
|
}
|
|
16170
16215
|
}, configFilter?.resetFilters);
|
|
16171
|
-
}, [changeFilters, configFilter?.resetFilters,
|
|
16216
|
+
}, [changeFilters, configFilter?.resetFilters, defaultRange, filterName]);
|
|
16172
16217
|
const onChange = useCallback((newValue) => {
|
|
16173
16218
|
setValue([newValue[0].toISOString(), newValue[1].toISOString()]);
|
|
16174
16219
|
}, []);
|
|
16220
|
+
// Дефолт применяем однократно — как только обе границы диапазона известны. С `defaultValue`
|
|
16221
|
+
// это происходит сразу, без него — после подгрузки фич связанного источника данных.
|
|
16175
16222
|
useEffect(() => {
|
|
16176
|
-
if (
|
|
16177
|
-
|
|
16178
|
-
|
|
16179
|
-
|
|
16223
|
+
if (isDefaultApplied.current)
|
|
16224
|
+
return;
|
|
16225
|
+
const [from, to] = defaultRange;
|
|
16226
|
+
if (isNil(from) || isNil(to))
|
|
16227
|
+
return;
|
|
16228
|
+
isDefaultApplied.current = true;
|
|
16229
|
+
reset();
|
|
16230
|
+
}, [defaultRange, reset]);
|
|
16180
16231
|
useEffect(() => {
|
|
16181
16232
|
if (!isInit.current) {
|
|
16182
16233
|
isInit.current = true;
|
|
@@ -16194,7 +16245,7 @@ const RangeDateFilter = ({ type, filter }) => {
|
|
|
16194
16245
|
}, [value]); // eslint-disable-line
|
|
16195
16246
|
if (!configFilter)
|
|
16196
16247
|
return null;
|
|
16197
|
-
return (jsx(RangeNumberInput, { label: label || t("interval", { ns: "dashboard", defaultValue: "Интервал" }), selectedOption: { range: true }, minDate: getDate(minDate), maxDate: getDate(maxDate), value: [getDate(value[0]), getDate(value[1])], zIndex:
|
|
16248
|
+
return (jsx(RangeNumberInput, { label: label || t("interval", { ns: "dashboard", defaultValue: "Интервал" }), selectedOption: { range: true }, minDate: getDate(minDate), maxDate: getDate(maxDate), value: [getDate(value[0]), getDate(value[1])], zIndex: DASHBOARD_OVERLAY_Z_INDEX, prefix: jsx(Icon, { kind: "date", disabled: true }), suffix: !isEmpty && !isDefault && jsx(StyledIconButton, { kind: "error", onClick: reset }), withTime: withTime, isDate: true, onChange: onChange }));
|
|
16198
16249
|
};
|
|
16199
16250
|
|
|
16200
16251
|
const getJustifyContent = (align) => {
|
|
@@ -16838,7 +16889,7 @@ const useTreeFilter = (type, filter) => {
|
|
|
16838
16889
|
|
|
16839
16890
|
const TreeFilter = ({ type, filter }) => {
|
|
16840
16891
|
const { width, placeholder, multiSelect, loading, data, setData, expanded, setExpanded, onLoadChildren, selectedIds, selectedCount, selectedLabel, searchValue, onSearchChange, onOpen, onClose, onToggleSelect, onReset, onSave, dirty, } = useTreeFilter(type, filter);
|
|
16841
|
-
return (jsx(TreeFilterContainer, { children: jsx(TreeDropdown, { zIndex:
|
|
16892
|
+
return (jsx(TreeFilterContainer, { children: jsx(TreeDropdown, { zIndex: DASHBOARD_OVERLAY_Z_INDEX, width: getFilterWidth(width), placeholder: placeholder, multiSelect: multiSelect, loading: loading, data: data, setData: setData, expanded: expanded, setExpanded: setExpanded, onLoadChildren: onLoadChildren, selectedIds: selectedIds, selectedCount: selectedCount, selectedLabel: selectedLabel, searchValue: searchValue, onSearchChange: onSearchChange, onOpen: onOpen, onClose: onClose, onToggleSelect: onToggleSelect, onReset: onReset, onSave: onSave, dirty: dirty }) }));
|
|
16842
16893
|
};
|
|
16843
16894
|
|
|
16844
16895
|
const getFilterComponent = (filterType) => {
|
|
@@ -17395,7 +17446,7 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
|
|
|
17395
17446
|
?.map(item => ({
|
|
17396
17447
|
...item,
|
|
17397
17448
|
color: formatFilterColor(item.name, item.color, defaultColor),
|
|
17398
|
-
})) || []), 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) })) }) }));
|
|
17449
|
+
})) || []), width: pieSide, height: pieSide, padAngle: angle, outerRadius: radius, cornerRadius: cornerRadius, renderTooltip: renderPieChartTooltip, tooltipStyle: PIE_CHART_TOOLTIP_STYLE, withTooltip: true, onClick: filterName ? item => onFilter(item.name) : undefined, children: showTotal && (jsx(PieChartCenter, { children: totalWord || roundTotalSum(+totalSum) })) }) }));
|
|
17399
17450
|
}
|
|
17400
17451
|
const barChartData = getDataFromFilterItems(data[0]?.items);
|
|
17401
17452
|
// Тот же случай, что у stack: обёртка выше тела на подписи оси X (margin.bottom). В fill
|
|
@@ -17455,7 +17506,7 @@ const Chart = memo(({ config, element, elementConfig, type, renderElement }) =>
|
|
|
17455
17506
|
]);
|
|
17456
17507
|
if (!isVisibleContainer(id, expandable, expanded, expandedContainers))
|
|
17457
17508
|
return null;
|
|
17458
|
-
const chartBody = (
|
|
17509
|
+
const chartBody = (jsxs(ChartWrapper, { width: isPieChart && fill ? pieSide : width, height: isStackBar ? "auto" : isPieChart ? (fill ? pieSide : width) : chartHeight, column: column, loading: loading, children: [jsx(ChartTooltipStyles, {}), renderChart] }));
|
|
17459
17510
|
if (!fill)
|
|
17460
17511
|
return chartBody;
|
|
17461
17512
|
// fill: тело центрируется в измеряемой обёртке, ref которой питает ResizeObserver обеими осями.
|
|
@@ -18124,5 +18175,5 @@ const DEFAULT_HEATMAP_STYLE = {
|
|
|
18124
18175
|
],
|
|
18125
18176
|
};
|
|
18126
18177
|
|
|
18127
|
-
export { ALIGNMENTS, ALIGN_ITEMS, ATTRIBUTE_ICON_ELEMENT_TYPES, AddButtonRow, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, COMPACT_FRACTION_DIGITS, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CONTAINERS_GROUP_DEFAULTS, 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_STROKE_WIDTH, DEFAULT_CIRCLE_STYLE, DEFAULT_COLOR, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_BASE, DEFAULT_FILL_EXTRUSION_HEIGHT, DEFAULT_FILL_EXTRUSION_STYLE, DEFAULT_FILL_EXTRUSION_VERTICAL_GRADIENT, DEFAULT_FILL_STYLE, DEFAULT_FILTER_PADDING, DEFAULT_GRID_GAP, DEFAULT_HEATMAP_COLOR, DEFAULT_HEATMAP_INTENSITY, DEFAULT_HEATMAP_RADIUS, DEFAULT_HEATMAP_STYLE, DEFAULT_HEATMAP_WEIGHT, DEFAULT_ICON_ANCHOR, DEFAULT_ICON_OVERLAP, DEFAULT_ICON_PADDING, DEFAULT_ICON_ROTATE, DEFAULT_ICON_SIZE, 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_SYMBOL_COLOR, DEFAULT_SYMBOL_HALO_COLOR, DEFAULT_SYMBOL_PLACEMENT, DEFAULT_SYMBOL_SPACING, DEFAULT_SYMBOL_STYLE, DEFAULT_TEXT_ANCHOR, DEFAULT_TEXT_JUSTIFY, DEFAULT_TEXT_SIZE, DEFAULT_TEXT_TRANSFORM, DEFAULT_TRACK_FR, DEFAULT_TRANSLATE, DEFAULT_ZOOM, DRAG_THRESHOLD_PX, 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, EXTENT_FILTER_NAME, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTable, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILL_SIZE, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FR_PRECISION, FeatureCardBackgroundHeader, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GEOMETRY_FILTER_NAME, GRID_AUTO_FILL_DEFAULTS, GRID_CELL_ATTR, GRID_CELL_ID_PREFIX, GRID_DRAGGING_ATTR, GRID_DRAG_SOURCE_ATTR, GRID_DROP_TARGET_ATTR, GRID_FILL_DEFAULTS, GRID_HANDLE_ATTR, GRID_HANDLE_PROPS, GRID_ROW_ID_PREFIX, GlobalContext, GlobalProvider, GridRowContainer, HANDLE_BLEED_PX, 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, MAP_VIEW_FILTER_NAMES, MAX_CHART_WIDTH, MAX_TRACKS, MIN_TRACK_PX, MIN_TRACK_RATIO, Map$1 as Map, MapContext, MapProvider, NO_CELL_DRAG_SELECTOR, 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, StructuredDataContainer, SvgImage, TILE_ALIGNMENTS, TIME_ZONE_FORMAT, TITLE_SLOT_IDS, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, VIEW_MODES, WidgetType, ZOOM_FILTER_NAME, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyTreeFilterToCondition, applyVarsToCondition, asAttributeName, asChartId, asContainerId, asDataSourceName, asFilterName, asLayerName, asModalId, asResourceId, asTabId, buildGridTemplate, buildTrackTemplate, checkEqualOrIncludes, checkIsLoading, collectConfigIds, containsNodeId, createConfigLayer, createConfigPage, createGridCell, createGridIdFactory, createGridRow, createNewPageId, createSaveNotificationId, dateOptions, debounce, decimalOpacityToHex, enrichStyleItemsWithIds, enrichStyleModelsWithIds, eqlParametersToPayload, fetchQueryDescription, findAttributeInExpression, findCellContext, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, geometryToEwkt, getActualExtrusionHeight, getAttributeByName, getAttributeConfigurationByName, getAttributeIconElement, getAttributeIconUrl, getAttributeValue, getAttributesConfiguration, getAverageTrackSize, 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, getLayoutChildren, getMapViewDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getStyleAttributes, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, getTrackSize, getTrackSizeKey, getTrackSizes, getWrapperSizeStyle, hexToRgba, isEmptyElementValue, isEmptyValue, isFeaturesFilterValue, isFillSize, isFrSize, isGridNode, isHiddenEmptyValue, isHookActive, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isRootOwningContainer, isTreeFilterValue, isVisibleContainer, mapNodeById, mergeAttributeConfigurations, metersPerPixel, noMarginMixin, numberOptions, parseFrValue, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, removeTracks, replaceNodesByIds, rgbToHex, roundFr, roundTotalSum, setLayoutChildren, sizeCssMixin, sliceShownOtherItems, stretchPalette, timeOptions, toConditionsArray, toCssSize, toFrSize, toPxNumber, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useContainerRoot, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSourceLoading, 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, withTrackSize };
|
|
18178
|
+
export { ALIGNMENTS, ALIGN_ITEMS, ATTRIBUTE_ICON_ELEMENT_TYPES, AddButtonRow, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, COMPACT_FRACTION_DIGITS, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CONTAINERS_GROUP_DEFAULTS, CONTAINER_BODY_ATTRIBUTE, CONTAINER_BODY_FILL_STYLE, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerRoot, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DASHBOARD_OVERLAY_Z_INDEX, 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_STROKE_WIDTH, DEFAULT_CIRCLE_STYLE, DEFAULT_COLOR, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_BASE, DEFAULT_FILL_EXTRUSION_HEIGHT, DEFAULT_FILL_EXTRUSION_STYLE, DEFAULT_FILL_EXTRUSION_VERTICAL_GRADIENT, DEFAULT_FILL_STYLE, DEFAULT_FILTER_PADDING, DEFAULT_GRID_GAP, DEFAULT_HEATMAP_COLOR, DEFAULT_HEATMAP_INTENSITY, DEFAULT_HEATMAP_RADIUS, DEFAULT_HEATMAP_STYLE, DEFAULT_HEATMAP_WEIGHT, DEFAULT_ICON_ANCHOR, DEFAULT_ICON_OVERLAP, DEFAULT_ICON_PADDING, DEFAULT_ICON_ROTATE, DEFAULT_ICON_SIZE, 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_SYMBOL_COLOR, DEFAULT_SYMBOL_HALO_COLOR, DEFAULT_SYMBOL_PLACEMENT, DEFAULT_SYMBOL_SPACING, DEFAULT_SYMBOL_STYLE, DEFAULT_TEXT_ANCHOR, DEFAULT_TEXT_JUSTIFY, DEFAULT_TEXT_SIZE, DEFAULT_TEXT_TRANSFORM, DEFAULT_TRACK_FR, DEFAULT_TRANSLATE, DEFAULT_ZOOM, DRAG_THRESHOLD_PX, 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, EXTENT_FILTER_NAME, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTable, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILL_SIZE, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FR_PRECISION, FeatureCardBackgroundHeader, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GEOMETRY_FILTER_NAME, GRID_AUTO_FILL_DEFAULTS, GRID_CELL_ATTR, GRID_CELL_ID_PREFIX, GRID_DRAGGING_ATTR, GRID_DRAG_SOURCE_ATTR, GRID_DROP_TARGET_ATTR, GRID_FILL_DEFAULTS, GRID_HANDLE_ATTR, GRID_HANDLE_PROPS, GRID_ROW_ID_PREFIX, GlobalContext, GlobalProvider, GridRowContainer, HANDLE_BLEED_PX, 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, MAP_VIEW_FILTER_NAMES, MAX_CHART_WIDTH, MAX_TRACKS, MIN_TRACK_PX, MIN_TRACK_RATIO, Map$1 as Map, MapContext, MapProvider, NO_CELL_DRAG_SELECTOR, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OBJECT_FITS, OVERFLOWS, OneColumnContainer, PIE_CHART_TOOLTIP_STYLE, 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, StructuredDataContainer, SvgImage, TILE_ALIGNMENTS, TIME_ZONE_FORMAT, TITLE_SLOT_IDS, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, VIEW_MODES, WidgetType, ZOOM_FILTER_NAME, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyTreeFilterToCondition, applyVarsToCondition, asAttributeName, asChartId, asContainerId, asDataSourceName, asFilterName, asLayerName, asModalId, asResourceId, asTabId, buildGridTemplate, buildTrackTemplate, checkEqualOrIncludes, checkIsLoading, collectConfigIds, containsNodeId, createConfigLayer, createConfigPage, createGridCell, createGridIdFactory, createGridRow, createNewPageId, createSaveNotificationId, dateOptions, debounce, decimalOpacityToHex, enrichStyleItemsWithIds, enrichStyleModelsWithIds, eqlParametersToPayload, fetchQueryDescription, findAttributeInExpression, findCellContext, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, geometryToEwkt, getActualExtrusionHeight, getAttributeByName, getAttributeConfigurationByName, getAttributeIconElement, getAttributeIconUrl, getAttributeValue, getAttributesConfiguration, getAverageTrackSize, 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, getLayoutChildren, getMapViewDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getStyleAttributes, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, getTrackSize, getTrackSizeKey, getTrackSizes, getWrapperSizeStyle, hexToRgba, isEmptyElementValue, isEmptyValue, isFeaturesFilterValue, isFillSize, isFrSize, isGridNode, isHiddenEmptyValue, isHookActive, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isRootOwningContainer, isTreeFilterValue, isVisibleContainer, mapNodeById, mergeAttributeConfigurations, metersPerPixel, noMarginMixin, numberOptions, parseFrValue, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, removeTracks, replaceNodesByIds, rgbToHex, roundFr, roundTotalSum, setLayoutChildren, sizeCssMixin, sliceShownOtherItems, stretchPalette, timeOptions, toConditionsArray, toCssSize, toFrSize, toPxNumber, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useContainerRoot, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSourceLoading, 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, withTrackSize };
|
|
18128
18179
|
//# sourceMappingURL=react.esm.js.map
|