@evergis/react 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.esm.js CHANGED
@@ -34,180 +34,180 @@ const AddFeatureButton = ({ title, icon = "feature_add" /* , layerName, geometry
34
34
  return (jsx(IconButton, { kind: icon, primary: true, onClick: handleAddFeature, children: title }));
35
35
  };
36
36
 
37
- const ChartTooltipTable = styled.table `
38
- td {
39
- padding: 0;
40
- }
41
-
42
- tr:not(:last-child) td {
43
- padding-bottom: 0.375rem;
44
- }
37
+ const ChartTooltipTable = styled.table `
38
+ td {
39
+ padding: 0;
40
+ }
41
+
42
+ tr:not(:last-child) td {
43
+ padding-bottom: 0.375rem;
44
+ }
45
45
  `;
46
- const ChartTooltip = styled(Flex) `
47
- flex-wrap: nowrap;
48
- background: rgb(48, 69, 79);
49
- border-radius: 0.25rem;
50
- color: white;
51
-
52
- :not(:last-child) {
53
- margin-bottom: 0.25rem;
54
- }
46
+ const ChartTooltip = styled(Flex) `
47
+ flex-wrap: nowrap;
48
+ background: rgb(48, 69, 79);
49
+ border-radius: 0.25rem;
50
+ color: white;
51
+
52
+ :not(:last-child) {
53
+ margin-bottom: 0.25rem;
54
+ }
55
55
  `;
56
- const ChartTooltipLabel = styled.div `
57
- margin-right: 0.25rem;
58
- `;
59
- const ChartTooltipColor = styled.div `
60
- width: 0.625rem;
61
- height: 0.625rem;
62
- background-color: ${({ $color }) => $color};
63
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.smallest};
64
- margin-right: 0.25rem;
65
- `;
66
- const ChartLegendColor$1 = styled.div `
67
- width: 0.5rem;
68
- height: 0.5rem;
69
- background-color: ${({ $color }) => $color};
70
- border-radius: 0.125rem;
71
- `;
72
- const ChartLegendValue = styled.div `
73
- opacity: 0.65;
74
- `;
75
- const ChartTooltipRow = styled(Flex) `
76
- display: flex;
77
- flex-direction: row;
78
- flex-wrap: nowrap;
79
- align-items: center;
80
- margin-top: 0.5rem;
81
- line-height: 0;
82
-
83
- ${ChartLegendColor$1} {
84
- margin-right: 0.25rem;
85
- }
56
+ const ChartTooltipLabel = styled.div `
57
+ margin-right: 0.25rem;
58
+ `;
59
+ const ChartTooltipColor = styled.div `
60
+ width: 0.625rem;
61
+ height: 0.625rem;
62
+ background-color: ${({ $color }) => $color};
63
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.smallest};
64
+ margin-right: 0.25rem;
65
+ `;
66
+ const ChartLegendColor$1 = styled.div `
67
+ width: 0.5rem;
68
+ height: 0.5rem;
69
+ background-color: ${({ $color }) => $color};
70
+ border-radius: 0.125rem;
71
+ `;
72
+ const ChartLegendValue = styled.div `
73
+ opacity: 0.65;
74
+ `;
75
+ const ChartTooltipRow = styled(Flex) `
76
+ display: flex;
77
+ flex-direction: row;
78
+ flex-wrap: nowrap;
79
+ align-items: center;
80
+ margin-top: 0.5rem;
81
+ line-height: 0;
82
+
83
+ ${ChartLegendColor$1} {
84
+ margin-right: 0.25rem;
85
+ }
86
86
  `;
87
- const ChartTooltipName = styled.div `
88
- margin-right: 1rem;
89
- opacity: 0.65;
90
- `;
91
- const PieChartCenter = styled.div `
92
- position: absolute;
93
- top: 50%;
94
- left: 50%;
95
- transform: translate(-50%, -50%);
96
- text-align: center;
97
- font-weight: bold;
98
- font-size: 1.5rem;
99
- `;
100
- const ChartWrapperContainer = styled.div `
101
- position: relative;
102
- width: 100%;
103
- `;
104
- const Tooltip = styled.div `
105
- position: relative;
106
- border-radius: 0.25rem;
107
- background-color: rgba(28, 33, 48);
108
- padding: 0.5rem;
109
- box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.15);
110
- font-size: 0.75rem;
111
- transform: ${({ transform }) => transform};
112
- color: white;
113
-
114
- :before {
115
- position: absolute;
116
- display: block;
117
- content: "";
118
- width: 0;
119
- height: 0;
120
- }
87
+ const ChartTooltipName = styled.div `
88
+ margin-right: 1rem;
89
+ opacity: 0.65;
90
+ `;
91
+ const PieChartCenter = styled.div `
92
+ position: absolute;
93
+ top: 50%;
94
+ left: 50%;
95
+ transform: translate(-50%, -50%);
96
+ text-align: center;
97
+ font-weight: bold;
98
+ font-size: 1.5rem;
99
+ `;
100
+ const ChartWrapperContainer = styled.div `
101
+ position: relative;
102
+ width: 100%;
103
+ `;
104
+ const Tooltip = styled.div `
105
+ position: relative;
106
+ border-radius: 0.25rem;
107
+ background-color: rgba(28, 33, 48);
108
+ padding: 0.5rem;
109
+ box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.15);
110
+ font-size: 0.75rem;
111
+ transform: ${({ transform }) => transform};
112
+ color: white;
113
+
114
+ :before {
115
+ position: absolute;
116
+ display: block;
117
+ content: "";
118
+ width: 0;
119
+ height: 0;
120
+ }
121
121
  `;
122
- const LineChartStyles = createGlobalStyle `
123
- .dashboardLineChartTooltip.${lineChartClassNames.lineChartMouseLabel} {
124
- .${lineChartClassNames.lineChartLabelFlex} {
125
- justify-content: center;
126
- align-items: flex-end;
127
-
128
- ${Tooltip} {
129
- margin: 0 0 12px 0;
130
-
131
- :before {
132
- top: auto;
133
- bottom: 0;
134
- left: 50%;
135
- transform: translate(-50%, 100%);
136
- border-left: 4px solid transparent;
137
- border-right: 4px solid transparent;
138
- border-top: 4px solid rgba(28, 33, 48, 0.9);
139
- }
140
- }
141
- }
142
- }
143
-
144
- .${lineChartClassNames.lineChartYScaleGlobal}, .${lineChartClassNames.lineChartXScaleGlobal} {
145
- .domain {
146
- visibility: hidden;
147
- }
148
-
149
- .tick {
150
- text {
151
- fill: ${({ theme: { palette } }) => palette.textDisabled};
152
- }
153
-
154
- line {
155
- visibility: hidden;
156
- }
157
- }
158
- }
159
-
160
- .${lineChartClassNames.lineChartXScaleGlobal} {
161
- .tick {
162
- :first-of-type {
163
- text {
164
- text-anchor: start;
165
- }
166
- }
167
-
168
- :last-of-type {
169
- text {
170
- text-anchor: end;
171
- }
172
- }
173
- }
174
- }
175
-
176
- .${lineChartClassNames.lineChartLine} {
177
- stroke-width: 2px;
178
- }
179
-
180
- .${lineChartClassNames.lineChartLabel} {
181
- color: ${({ theme: { palette } }) => palette.textPrimary};
182
- }
183
-
184
- .${lineChartClassNames.lineChartMouseCircle} {
185
- stroke: #ffffff;
186
- stroke-width: 2px;
187
- }
188
-
189
- .${lineChartClassNames.lineChartGridLineX} {
190
- stroke: ${({ theme: { palette } }) => palette.element};
191
- }
192
-
193
- text {
194
- fill: ${({ theme: { palette } }) => palette.textDisabled};
195
- }
122
+ const LineChartStyles = createGlobalStyle `
123
+ .dashboardLineChartTooltip.${lineChartClassNames.lineChartMouseLabel} {
124
+ .${lineChartClassNames.lineChartLabelFlex} {
125
+ justify-content: center;
126
+ align-items: flex-end;
127
+
128
+ ${Tooltip} {
129
+ margin: 0 0 12px 0;
130
+
131
+ :before {
132
+ top: auto;
133
+ bottom: 0;
134
+ left: 50%;
135
+ transform: translate(-50%, 100%);
136
+ border-left: 4px solid transparent;
137
+ border-right: 4px solid transparent;
138
+ border-top: 4px solid rgba(28, 33, 48, 0.9);
139
+ }
140
+ }
141
+ }
142
+ }
143
+
144
+ .${lineChartClassNames.lineChartYScaleGlobal}, .${lineChartClassNames.lineChartXScaleGlobal} {
145
+ .domain {
146
+ visibility: hidden;
147
+ }
148
+
149
+ .tick {
150
+ text {
151
+ fill: ${({ theme: { palette } }) => palette.textDisabled};
152
+ }
153
+
154
+ line {
155
+ visibility: hidden;
156
+ }
157
+ }
158
+ }
159
+
160
+ .${lineChartClassNames.lineChartXScaleGlobal} {
161
+ .tick {
162
+ :first-of-type {
163
+ text {
164
+ text-anchor: start;
165
+ }
166
+ }
167
+
168
+ :last-of-type {
169
+ text {
170
+ text-anchor: end;
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
+ .${lineChartClassNames.lineChartLine} {
177
+ stroke-width: 2px;
178
+ }
179
+
180
+ .${lineChartClassNames.lineChartLabel} {
181
+ color: ${({ theme: { palette } }) => palette.textPrimary};
182
+ }
183
+
184
+ .${lineChartClassNames.lineChartMouseCircle} {
185
+ stroke: #ffffff;
186
+ stroke-width: 2px;
187
+ }
188
+
189
+ .${lineChartClassNames.lineChartGridLineX} {
190
+ stroke: ${({ theme: { palette } }) => palette.element};
191
+ }
192
+
193
+ text {
194
+ fill: ${({ theme: { palette } }) => palette.textDisabled};
195
+ }
196
196
  `;
197
- const StyledBarChart = styled(BarChart$1) `
198
- .domain {
199
- display: none;
200
- }
201
-
202
- .tick {
203
- text {
204
- fill: ${({ theme: { palette } }) => palette.textDisabled};
205
- }
206
-
207
- line {
208
- visibility: hidden;
209
- }
210
- }
197
+ const StyledBarChart = styled(BarChart$1) `
198
+ .domain {
199
+ display: none;
200
+ }
201
+
202
+ .tick {
203
+ text {
204
+ fill: ${({ theme: { palette } }) => palette.textDisabled};
205
+ }
206
+
207
+ line {
208
+ visibility: hidden;
209
+ }
210
+ }
211
211
  `;
212
212
 
213
213
  function range(start, stop, step) {
@@ -3456,42 +3456,42 @@ const BASE_CONTAINER_STYLE = {
3456
3456
  marginBottom: "1rem",
3457
3457
  };
3458
3458
 
3459
- const StackBarContainer = styled(Flex) `
3460
- flex-wrap: nowrap;
3461
- width: 100%;
3459
+ const StackBarContainer = styled(Flex) `
3460
+ flex-wrap: nowrap;
3461
+ width: 100%;
3462
3462
  `;
3463
- const StackBarHeader = styled(Flex) `
3464
- justify-content: space-between;
3465
- margin-bottom: 0.375rem;
3466
- font-size: 0.75rem;
3463
+ const StackBarHeader = styled(Flex) `
3464
+ justify-content: space-between;
3465
+ margin-bottom: 0.375rem;
3466
+ font-size: 0.75rem;
3467
3467
  `;
3468
- const StackBarSection = styled.div `
3469
- cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
3470
- width: ${({ $width }) => $width}%;
3471
- height: ${({ $height }) => ($height ? `${$height}px` : "0.5rem")};
3472
- margin: 0 0.5px;
3473
- background-color: ${({ $color }) => $color};
3474
- opacity: ${({ hasAnyFilter, isFiltered }) => (isFiltered ? 1 : hasAnyFilter ? FILTERED_VALUE_OPACITY / 100 : 1)};
3475
- transition: opacity ${transition.release}, background-color ${transition.release};
3476
-
3477
- :first-child {
3478
- border-top-left-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3479
- border-bottom-left-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3480
- }
3481
-
3482
- :last-child {
3483
- border-top-right-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3484
- border-bottom-right-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3485
- }
3468
+ const StackBarSection = styled.div `
3469
+ cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
3470
+ width: ${({ $width }) => $width}%;
3471
+ height: ${({ $height }) => ($height ? `${$height}px` : "0.5rem")};
3472
+ margin: 0 0.5px;
3473
+ background-color: ${({ $color }) => $color};
3474
+ opacity: ${({ hasAnyFilter, isFiltered }) => (isFiltered ? 1 : hasAnyFilter ? FILTERED_VALUE_OPACITY / 100 : 1)};
3475
+ transition: opacity ${transition.release}, background-color ${transition.release};
3476
+
3477
+ :first-child {
3478
+ border-top-left-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3479
+ border-bottom-left-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3480
+ }
3481
+
3482
+ :last-child {
3483
+ border-top-right-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3484
+ border-bottom-right-radius: ${({ cornerRadius }) => (cornerRadius ? `${cornerRadius}px` : "0.5rem")};
3485
+ }
3486
3486
  `;
3487
- const StackBarAlias = styled.div `
3488
- color: ${({ theme: { palette } }) => palette.textSecondary};
3487
+ const StackBarAlias = styled.div `
3488
+ color: ${({ theme: { palette } }) => palette.textSecondary};
3489
3489
  `;
3490
3490
  const StackBarTotal = styled(Flex) ``;
3491
3491
  const StackBarValue = styled.div ``;
3492
- const StackBarUnits = styled.div `
3493
- margin-left: 0.25rem;
3494
- color: ${({ theme: { palette } }) => palette.textSecondary};
3492
+ const StackBarUnits = styled.div `
3493
+ margin-left: 0.25rem;
3494
+ color: ${({ theme: { palette } }) => palette.textSecondary};
3495
3495
  `;
3496
3496
 
3497
3497
  const transparentizeColor = (originalColor, percent) => {
@@ -3953,8 +3953,13 @@ const useFetchWithAuth = (url, transform, cleanup) => {
3953
3953
  });
3954
3954
  }, [url]);
3955
3955
  useEffect(() => {
3956
- fetchData();
3957
- }, [fetchData]);
3956
+ if (url) {
3957
+ fetchData();
3958
+ }
3959
+ else {
3960
+ setData(null);
3961
+ }
3962
+ }, [url]);
3958
3963
  useEffect(() => () => {
3959
3964
  if (data !== null)
3960
3965
  cleanupRef.current?.(data);
@@ -4236,8 +4241,8 @@ const useChartChange = ({ dataSources, chartId, width, height, relatedAttributes
4236
4241
  const customize = useCallback(({ svg }) => {
4237
4242
  svg.style("overflow", "visible");
4238
4243
  svg
4239
- .selectAll(`.${lineChartClassNames.lineChartXScaleGlobal} line,
4240
- .${lineChartClassNames.lineChartYScaleGlobal} line,
4244
+ .selectAll(`.${lineChartClassNames.lineChartXScaleGlobal} line,
4245
+ .${lineChartClassNames.lineChartYScaleGlobal} line,
4241
4246
  .domain`)
4242
4247
  .each((_, index, nodes) => {
4243
4248
  nodes[index].remove();
@@ -4294,11 +4299,11 @@ const useChartChange = ({ dataSources, chartId, width, height, relatedAttributes
4294
4299
  .attr("fill", `url(#${gradientId})`)
4295
4300
  .attr("stroke-width", "0")
4296
4301
  .attr("fill-opacity", FILL_OPACITY);
4297
- defs.push(`
4298
- <linearGradient id="${gradientId}" x1="0" y1="0" x2="0" y2="1">
4299
- <stop offset="0" stop-color="${color}" stop-opacity="1" />
4300
- <stop offset="1" stop-color="${color}" stop-opacity="0" />
4301
- </linearGradient>
4302
+ defs.push(`
4303
+ <linearGradient id="${gradientId}" x1="0" y1="0" x2="0" y2="1">
4304
+ <stop offset="0" stop-color="${color}" stop-opacity="1" />
4305
+ <stop offset="1" stop-color="${color}" stop-opacity="0" />
4306
+ </linearGradient>
4302
4307
  `);
4303
4308
  ref.current = {
4304
4309
  path: newPath,
@@ -4657,104 +4662,104 @@ const formatDataSourceCondition = ({ condition, configFilters, filters, attribut
4657
4662
  : conditionSection.join(splitter);
4658
4663
  };
4659
4664
 
4660
- const DashboardChipsContainer = styled(Flex) `
4661
- flex-wrap: wrap;
4665
+ const DashboardChipsContainer = styled(Flex) `
4666
+ flex-wrap: wrap;
4662
4667
  `;
4663
- const DefaultChipColorMixin = css `
4664
- && {
4665
- color: ${({ theme: { palette } }) => palette.textPrimary};
4666
- }
4667
-
4668
- && > * {
4669
- color: ${({ theme: { palette } }) => palette.textPrimary};
4670
- }
4671
-
4672
- && span[kind]:after {
4673
- color: ${({ theme: { palette } }) => palette.icon};
4674
- }
4668
+ const DefaultChipColorMixin = css `
4669
+ && {
4670
+ color: ${({ theme: { palette } }) => palette.textPrimary};
4671
+ }
4672
+
4673
+ && > * {
4674
+ color: ${({ theme: { palette } }) => palette.textPrimary};
4675
+ }
4676
+
4677
+ && span[kind]:after {
4678
+ color: ${({ theme: { palette } }) => palette.icon};
4679
+ }
4675
4680
  `;
4676
- const CustomChipColorMixin = css `
4677
- && {
4678
- color: ${({ $fontColor }) => $fontColor};
4679
- }
4680
-
4681
- && > * {
4682
- color: ${({ $fontColor }) => $fontColor};
4683
- }
4684
-
4685
- && span[kind]:after {
4686
- color: ${({ $fontColor }) => $fontColor};
4687
- }
4681
+ const CustomChipColorMixin = css `
4682
+ && {
4683
+ color: ${({ $fontColor }) => $fontColor};
4684
+ }
4685
+
4686
+ && > * {
4687
+ color: ${({ $fontColor }) => $fontColor};
4688
+ }
4689
+
4690
+ && span[kind]:after {
4691
+ color: ${({ $fontColor }) => $fontColor};
4692
+ }
4693
+ `;
4694
+ const DashboardChip$1 = styled(Chip) `
4695
+ margin: 0 0.25rem 0.25rem 0;
4696
+ background: ${({ $isDefault, $bgColor, theme: { palette } }) => $isDefault ? palette.element : $bgColor || palette.primary};
4697
+ border-radius: ${({ $radius, theme: { borderRadius } }) => $radius || borderRadius.medium};
4698
+ white-space: nowrap;
4699
+ font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
4700
+ color: ${({ theme: { palette } }) => palette.iconContrast};
4701
+
4702
+ > * {
4703
+ font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
4704
+ }
4705
+
4706
+ span[kind] {
4707
+ height: 0.875rem;
4708
+
4709
+ :after {
4710
+ font-size: 0.875rem;
4711
+ }
4712
+ }
4713
+
4714
+ button {
4715
+ width: auto;
4716
+ padding: 0 0.5rem;
4717
+ }
4718
+
4719
+ ${({ $isDefault }) => $isDefault && DefaultChipColorMixin}
4720
+ ${({ $fontColor, $isDefault }) => !!$fontColor && !$isDefault && CustomChipColorMixin}
4688
4721
  `;
4689
- const DashboardChip$1 = styled(Chip) `
4690
- margin: 0 0.25rem 0.25rem 0;
4691
- background: ${({ $isDefault, $bgColor, theme: { palette } }) => $isDefault ? palette.element : $bgColor || palette.primary};
4692
- border-radius: ${({ $radius, theme: { borderRadius } }) => $radius || borderRadius.medium};
4693
- white-space: nowrap;
4694
- font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
4695
- color: ${({ theme: { palette } }) => palette.iconContrast};
4696
-
4697
- > * {
4698
- font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
4699
- }
4700
-
4701
- span[kind] {
4702
- height: 0.875rem;
4703
-
4704
- :after {
4705
- font-size: 0.875rem;
4706
- }
4707
- }
4708
-
4709
- button {
4710
- width: auto;
4711
- padding: 0 0.5rem;
4712
- }
4713
-
4714
- ${({ $isDefault }) => $isDefault && DefaultChipColorMixin}
4715
- ${({ $fontColor, $isDefault }) => !!$fontColor && !$isDefault && CustomChipColorMixin}
4716
- `;
4717
-
4718
- const LayerGroupContainer = styled(Flex) `
4719
- display: flex;
4720
- justify-content: center;
4721
- position: relative;
4722
- flex-direction: column;
4723
- padding: 0 0.25rem 0 1rem;
4724
- box-sizing: border-box;
4725
- transition: opacity ${transition.hover}, background-color ${transition.hover};
4726
- font-family: "NunitoSans", sans-serif;
4727
- `;
4728
- const LayerGroupMain = styled(Flex) `
4729
- flex-direction: row;
4730
- flex-wrap: nowrap;
4731
- align-items: center;
4732
- justify-content: space-between;
4733
- width: 100%;
4734
-
4735
- ${Icon} {
4736
- width: 2rem;
4737
- min-width: 2rem;
4738
- height: 2rem;
4739
- display: inline-flex;
4740
- align-items: center;
4741
- justify-content: center;
4742
- margin-right: 0.75rem;
4743
- }
4744
-
4745
- ${Description} {
4746
- display: flex;
4747
- align-items: center;
4748
- flex-grow: 1;
4749
- width: 100%;
4750
- margin-right: 0.25rem;
4751
- color: ${({ theme }) => theme.palette.textPrimary};
4752
- }
4753
4722
 
4754
- button {
4755
- width: 2.25rem;
4756
- justify-content: flex-start;
4757
- }
4723
+ const LayerGroupContainer = styled(Flex) `
4724
+ display: flex;
4725
+ justify-content: center;
4726
+ position: relative;
4727
+ flex-direction: column;
4728
+ padding: 0 0.25rem 0 1rem;
4729
+ box-sizing: border-box;
4730
+ transition: opacity ${transition.hover}, background-color ${transition.hover};
4731
+ font-family: "NunitoSans", sans-serif;
4732
+ `;
4733
+ const LayerGroupMain = styled(Flex) `
4734
+ flex-direction: row;
4735
+ flex-wrap: nowrap;
4736
+ align-items: center;
4737
+ justify-content: space-between;
4738
+ width: 100%;
4739
+
4740
+ ${Icon} {
4741
+ width: 2rem;
4742
+ min-width: 2rem;
4743
+ height: 2rem;
4744
+ display: inline-flex;
4745
+ align-items: center;
4746
+ justify-content: center;
4747
+ margin-right: 0.75rem;
4748
+ }
4749
+
4750
+ ${Description} {
4751
+ display: flex;
4752
+ align-items: center;
4753
+ flex-grow: 1;
4754
+ width: 100%;
4755
+ margin-right: 0.25rem;
4756
+ color: ${({ theme }) => theme.palette.textPrimary};
4757
+ }
4758
+
4759
+ button {
4760
+ width: 2.25rem;
4761
+ justify-content: flex-start;
4762
+ }
4758
4763
  `;
4759
4764
 
4760
4765
  const customModes = MapboxDraw.modes;
@@ -5567,330 +5572,330 @@ const LayerTree = ({ layers, onlyMainTools }) => {
5567
5572
  return (jsx(DraggableTree, { nodes: nodes, disableDrag: onlyMainTools, options: { pastePlaceholderHeight: "0.025rem" }, onUpdate: onUpdate }));
5568
5573
  };
5569
5574
 
5570
- const LayersListWrapper = styled(Flex) `
5571
- flex-direction: column;
5572
- height: 100%;
5573
- width: 100%;
5574
- box-sizing: border-box;
5575
+ const LayersListWrapper = styled(Flex) `
5576
+ flex-direction: column;
5577
+ height: 100%;
5578
+ width: 100%;
5579
+ box-sizing: border-box;
5575
5580
  `;
5576
- const LayerListContainer = styled(Flex) `
5577
- flex-grow: 1;
5578
- height: 100%;
5579
- box-sizing: border-box;
5580
- padding-top: 0.25rem;
5581
+ const LayerListContainer = styled(Flex) `
5582
+ flex-grow: 1;
5583
+ height: 100%;
5584
+ box-sizing: border-box;
5585
+ padding-top: 0.25rem;
5581
5586
  `;
5582
5587
 
5583
- const ElementValueWrapper = styled.div `
5584
- transition: background-color ${transition.toggle};
5585
-
5588
+ const ElementValueWrapper = styled.div `
5589
+ transition: background-color ${transition.toggle};
5590
+
5586
5591
  ${({ noMargin }) => !!noMargin &&
5587
- css `
5588
- &&&& {
5589
- margin-bottom: 0;
5590
- }
5591
- `};
5592
- `;
5593
- const Container = styled(Flex) `
5594
- flex-direction: column;
5595
- width: 100%;
5596
-
5592
+ css `
5593
+ &&&& {
5594
+ margin-bottom: 0;
5595
+ }
5596
+ `};
5597
+ `;
5598
+ const Container = styled(Flex) `
5599
+ flex-direction: column;
5600
+ width: 100%;
5601
+
5597
5602
  ${({ isColumn }) => isColumn
5598
- ? css `
5599
- &&& > * {
5600
- justify-content: flex-start;
5601
- }
5602
- > * {
5603
- width: 100%;
5604
-
5605
- :not(:last-child) {
5606
- margin-bottom: 0.5rem;
5607
- }
5608
- }
5603
+ ? css `
5604
+ &&& > * {
5605
+ justify-content: flex-start;
5606
+ }
5607
+ > * {
5608
+ width: 100%;
5609
+
5610
+ :not(:last-child) {
5611
+ margin-bottom: 0.5rem;
5612
+ }
5613
+ }
5609
5614
  `
5610
- : css `
5611
- flex-direction: row;
5612
- justify-content: space-between;
5613
- align-items: center;
5614
- `}
5615
-
5615
+ : css `
5616
+ flex-direction: row;
5617
+ justify-content: space-between;
5618
+ align-items: center;
5619
+ `}
5620
+
5616
5621
  ${({ isTitle }) => isTitle &&
5617
- css `
5618
- &&&& {
5619
- margin-bottom: 0.75rem;
5620
- }
5621
- `}
5622
-
5622
+ css `
5623
+ &&&& {
5624
+ margin-bottom: 0.75rem;
5625
+ }
5626
+ `}
5627
+
5623
5628
  ${({ noBorders }) => noBorders &&
5624
- css `
5625
- ${ContainerWrapper} {
5626
- box-shadow: none;
5627
- padding: 0;
5628
- }
5629
- `}
5630
- `;
5631
- const ContainerWrapper = styled(Flex) `
5632
- position: relative;
5633
- box-sizing: border-box;
5634
- width: 100%;
5635
- background: ${({ theme: { palette } }) => palette.backgroundAlpha};
5636
- box-shadow: rgb(0 0 0 / 15%) 0 0.1875rem 0.625rem;
5637
- margin-bottom: 2rem;
5638
- padding: 1.5rem;
5639
- border-radius: 0.5rem;
5640
- backdrop-filter: blur(20px);
5641
- color: ${({ theme: { palette } }) => palette.textPrimary};
5642
- z-index: ${({ $zIndex }) => $zIndex ?? 1};
5643
- transition: background-color ${transition.toggle};
5644
-
5629
+ css `
5630
+ ${ContainerWrapper} {
5631
+ box-shadow: none;
5632
+ padding: 0;
5633
+ }
5634
+ `}
5635
+ `;
5636
+ const ContainerWrapper = styled(Flex) `
5637
+ position: relative;
5638
+ box-sizing: border-box;
5639
+ width: 100%;
5640
+ background: ${({ theme: { palette } }) => palette.backgroundAlpha};
5641
+ box-shadow: rgb(0 0 0 / 15%) 0 0.1875rem 0.625rem;
5642
+ margin-bottom: 2rem;
5643
+ padding: 1.5rem;
5644
+ border-radius: 0.5rem;
5645
+ backdrop-filter: blur(20px);
5646
+ color: ${({ theme: { palette } }) => palette.textPrimary};
5647
+ z-index: ${({ $zIndex }) => $zIndex ?? 1};
5648
+ transition: background-color ${transition.toggle};
5649
+
5645
5650
  ${({ $noMargin }) => $noMargin &&
5646
- css `
5647
- &&&& {
5648
- margin-bottom: 0;
5649
- }
5650
- `}
5651
- `;
5652
- const DashboardChip = styled(Chip) `
5653
- margin: 0 0.25rem 0.25rem 0;
5654
- background: ${({ $isDefault, $bgColor, theme: { palette } }) => $isDefault ? palette.element : $bgColor || palette.primary};
5655
- border-radius: ${({ $radius, theme: { borderRadius } }) => $radius || borderRadius.medium};
5656
- font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
5657
- color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.textPrimary : $fontColor || "#fff"};
5658
-
5659
- > * {
5660
- font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
5661
- color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.textPrimary : $fontColor || "#fff"};
5662
- }
5663
-
5664
- span[kind]:after {
5665
- color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.icon : $fontColor || "#fff"};
5666
- }
5667
- `;
5668
- const DashboardPlaceholderWrap = styled(Flex) `
5669
- flex-grow: 1;
5670
- flex-direction: column;
5671
- justify-content: center;
5672
- align-items: center;
5673
- width: 100%;
5674
- margin-bottom: 2rem;
5651
+ css `
5652
+ &&&& {
5653
+ margin-bottom: 0;
5654
+ }
5655
+ `}
5656
+ `;
5657
+ const DashboardChip = styled(Chip) `
5658
+ margin: 0 0.25rem 0.25rem 0;
5659
+ background: ${({ $isDefault, $bgColor, theme: { palette } }) => $isDefault ? palette.element : $bgColor || palette.primary};
5660
+ border-radius: ${({ $radius, theme: { borderRadius } }) => $radius || borderRadius.medium};
5661
+ font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
5662
+ color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.textPrimary : $fontColor || "#fff"};
5663
+
5664
+ > * {
5665
+ font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
5666
+ color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.textPrimary : $fontColor || "#fff"};
5667
+ }
5668
+
5669
+ span[kind]:after {
5670
+ color: ${({ $isDefault, $fontColor, theme: { palette } }) => $isDefault ? palette.icon : $fontColor || "#fff"};
5671
+ }
5675
5672
  `;
5676
- const DashboardPlaceholder = styled(Flex) `
5677
- flex-direction: column;
5678
- justify-content: center;
5679
- align-items: center;
5680
- margin-top: 2rem;
5681
-
5673
+ const DashboardPlaceholderWrap = styled(Flex) `
5674
+ flex-grow: 1;
5675
+ flex-direction: column;
5676
+ justify-content: center;
5677
+ align-items: center;
5678
+ width: 100%;
5679
+ margin-bottom: 2rem;
5680
+ `;
5681
+ const DashboardPlaceholder = styled(Flex) `
5682
+ flex-direction: column;
5683
+ justify-content: center;
5684
+ align-items: center;
5685
+ margin-top: 2rem;
5686
+
5682
5687
  ${({ isLoading }) => isLoading &&
5683
- css `
5684
- width: 6.25rem;
5685
- `}
5686
-
5687
- &&& > * {
5688
- margin-bottom: 0;
5689
- }
5690
-
5691
- > div {
5692
- width: 100%;
5693
- margin-top: 1rem;
5694
- font-size: 0.75rem;
5695
- text-align: center;
5696
- color: ${({ theme: { palette } }) => palette.textDisabled};
5697
- }
5698
-
5699
- span[kind] {
5700
- width: 2.25rem;
5701
- height: 2.25rem;
5702
- opacity: 0.28;
5703
-
5704
- :after {
5705
- font-size: 32px;
5706
- }
5707
- }
5688
+ css `
5689
+ width: 6.25rem;
5690
+ `}
5691
+
5692
+ &&& > * {
5693
+ margin-bottom: 0;
5694
+ }
5695
+
5696
+ > div {
5697
+ width: 100%;
5698
+ margin-top: 1rem;
5699
+ font-size: 0.75rem;
5700
+ text-align: center;
5701
+ color: ${({ theme: { palette } }) => palette.textDisabled};
5702
+ }
5703
+
5704
+ span[kind] {
5705
+ width: 2.25rem;
5706
+ height: 2.25rem;
5707
+ opacity: 0.28;
5708
+
5709
+ :after {
5710
+ font-size: 32px;
5711
+ }
5712
+ }
5708
5713
  `;
5709
- const DashboardWrapper = styled(Flex) `
5710
- flex-direction: column;
5711
- flex-wrap: nowrap;
5712
- flex-grow: 1;
5713
- width: calc(100% - 3rem);
5714
- height: calc(100% - ${LEFT_PANEL_HEADER_HEIGHT});
5715
-
5714
+ const DashboardWrapper = styled(Flex) `
5715
+ flex-direction: column;
5716
+ flex-wrap: nowrap;
5717
+ flex-grow: 1;
5718
+ width: calc(100% - 3rem);
5719
+ height: calc(100% - ${LEFT_PANEL_HEADER_HEIGHT});
5720
+
5716
5721
  ${({ hasImage, isPresentationMode }) => hasImage &&
5717
5722
  !isPresentationMode &&
5718
- css `
5719
- margin-top: -0.35rem;
5720
- `}
5721
- `;
5722
- const DashboardContent = styled(Flex) `
5723
- flex-grow: 1;
5724
- width: 100%;
5725
- padding: 1.5rem 1.5rem 2rem;
5726
- overflow-y: auto;
5727
- scrollbar-gutter: stable;
5728
- `;
5729
- const PresentationWrapperCss = css `
5730
- margin-bottom: 0.75rem;
5731
- padding: 1.5rem;
5732
- background-color: ${({ theme: { palette } }) => palette.panelBackground};
5733
- backdrop-filter: blur(10px);
5734
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
5735
- box-shadow: ${shadows.raised};
5736
- `;
5737
- const PresentationWrapper = styled.div `
5738
- ${PresentationWrapperCss};
5739
- position: relative;
5740
- z-index: 1;
5741
- `;
5742
- const PresentationPanelWrapper = styled(PresentationWrapper) `
5743
- margin-top: 0.75rem;
5744
- transition: background-color ${transition.toggle};
5745
- `;
5746
- const PresentationHeader = styled.div `
5747
- margin: -1.5rem -1.5rem 0 -1.5rem;
5748
- padding: 1.5rem;
5749
- // background: url(images.presentationHeader) 0 0 no-repeat;
5750
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
5751
- transition: background-color ${transition.toggle};
5752
-
5723
+ css `
5724
+ margin-top: -0.35rem;
5725
+ `}
5726
+ `;
5727
+ const DashboardContent = styled(Flex) `
5728
+ flex-grow: 1;
5729
+ width: 100%;
5730
+ padding: 1.5rem 1.5rem 2rem;
5731
+ overflow-y: auto;
5732
+ scrollbar-gutter: stable;
5733
+ `;
5734
+ const PresentationWrapperCss = css `
5735
+ margin-bottom: 0.75rem;
5736
+ padding: 1.5rem;
5737
+ background-color: ${({ theme: { palette } }) => palette.panelBackground};
5738
+ backdrop-filter: blur(10px);
5739
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
5740
+ box-shadow: ${shadows.raised};
5741
+ `;
5742
+ const PresentationWrapper = styled.div `
5743
+ ${PresentationWrapperCss};
5744
+ position: relative;
5745
+ z-index: 1;
5746
+ `;
5747
+ const PresentationPanelWrapper = styled(PresentationWrapper) `
5748
+ margin-top: 0.75rem;
5749
+ transition: background-color ${transition.toggle};
5750
+ `;
5751
+ const PresentationHeader = styled.div `
5752
+ margin: -1.5rem -1.5rem 0 -1.5rem;
5753
+ padding: 1.5rem;
5754
+ // background: url(images.presentationHeader) 0 0 no-repeat;
5755
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
5756
+ transition: background-color ${transition.toggle};
5757
+
5753
5758
  ${({ image }) => !!image &&
5754
- css `
5755
- padding-top: 7rem;
5756
- `};
5757
- `;
5758
- const PresentationHeaderTools = styled(Flex) `
5759
- justify-content: space-between;
5760
- align-items: center;
5761
- margin-bottom: -0.5rem;
5762
- margin-right: -0.5rem;
5763
-
5764
- span[kind="sun"],
5765
- span[kind="moon"] {
5766
- :after {
5767
- font-size: 0.85rem;
5768
- color: ${({ theme: { palette } }) => palette.iconDisabled};
5769
- }
5770
-
5771
- :hover:after {
5772
- color: ${({ theme: { palette } }) => palette.icon};
5773
- }
5774
- }
5759
+ css `
5760
+ padding-top: 7rem;
5761
+ `};
5762
+ `;
5763
+ const PresentationHeaderTools = styled(Flex) `
5764
+ justify-content: space-between;
5765
+ align-items: center;
5766
+ margin-bottom: -0.5rem;
5767
+ margin-right: -0.5rem;
5768
+
5769
+ span[kind="sun"],
5770
+ span[kind="moon"] {
5771
+ :after {
5772
+ font-size: 0.85rem;
5773
+ color: ${({ theme: { palette } }) => palette.iconDisabled};
5774
+ }
5775
+
5776
+ :hover:after {
5777
+ color: ${({ theme: { palette } }) => palette.icon};
5778
+ }
5779
+ }
5775
5780
  `;
5776
- const LayerGroupList = styled(Flex) `
5777
- flex-direction: column;
5778
- height: 100%;
5779
- flex-wrap: nowrap;
5780
- overflow-x: ${({ $noScroll }) => ($noScroll ? "visible" : "hidden")};
5781
- overflow-y: ${({ $noScroll }) => ($noScroll ? "visible" : "auto")};
5782
- padding: 0 0.125rem 0 0.75rem;
5783
- scrollbar-gutter: stable;
5784
-
5785
- > * {
5786
- flex-grow: 1;
5787
- }
5781
+ const LayerGroupList = styled(Flex) `
5782
+ flex-direction: column;
5783
+ height: 100%;
5784
+ flex-wrap: nowrap;
5785
+ overflow-x: ${({ $noScroll }) => ($noScroll ? "visible" : "hidden")};
5786
+ overflow-y: ${({ $noScroll }) => ($noScroll ? "visible" : "auto")};
5787
+ padding: 0 0.125rem 0 0.75rem;
5788
+ scrollbar-gutter: stable;
5789
+
5790
+ > * {
5791
+ flex-grow: 1;
5792
+ }
5788
5793
  `;
5789
5794
  const PresentationHeaderButtons = styled(Flex) ``;
5790
- const PresentationPanelContainer = styled.div `
5791
- position: absolute;
5792
- top: 0;
5793
- left: calc(${({ left }) => left || 0}px + 0.75rem);
5794
- bottom: 0;
5795
- z-index: 3;
5796
- display: flex;
5797
- flex-direction: column;
5798
- width: ${LEFT_PANEL_HEADER_HEIGHT}px;
5799
- padding-right: 0.5rem;
5800
- scrollbar-gutter: stable;
5801
- overflow-y: hidden;
5802
-
5803
- :hover {
5804
- overflow-y: auto;
5805
- }
5806
-
5795
+ const PresentationPanelContainer = styled.div `
5796
+ position: absolute;
5797
+ top: 0;
5798
+ left: calc(${({ left }) => left || 0}px + 0.75rem);
5799
+ bottom: 0;
5800
+ z-index: 3;
5801
+ display: flex;
5802
+ flex-direction: column;
5803
+ width: ${LEFT_PANEL_HEADER_HEIGHT}px;
5804
+ padding-right: 0.5rem;
5805
+ scrollbar-gutter: stable;
5806
+ overflow-y: hidden;
5807
+
5808
+ :hover {
5809
+ overflow-y: auto;
5810
+ }
5811
+
5807
5812
  ${({ showLayers }) => !showLayers &&
5808
- css `
5809
- > :first-child {
5810
- padding-bottom: 0;
5811
- }
5812
- `};
5813
-
5814
- ${PresentationHeader} > * {
5815
- position: relative;
5816
- z-index: 2;
5817
- }
5818
-
5819
- /* PaginationWrapper {
5820
- ${PresentationWrapperCss};
5821
- width: calc(100% - 2rem);
5822
- min-height: 8.625rem;
5823
- padding-top: 0.5rem;
5824
- padding-bottom: 0.5rem;
5825
- margin-bottom: 0.75rem;
5826
- }*/
5827
-
5828
- ${DashboardWrapper} {
5829
- width: 100%;
5830
- margin-top: 0;
5831
-
5832
- ${DashboardContent} {
5833
- padding: 0;
5834
- overflow-y: unset;
5835
-
5836
- > * > ${ContainerWrapper} > * > ${ContainerWrapper} {
5837
- ${PresentationWrapperCss};
5838
- width: calc(100% - 3rem);
5839
- }
5840
- }
5841
- }
5842
-
5843
- ${DashboardPlaceholder} {
5844
- ${PresentationWrapperCss};
5845
- width: 18.5rem;
5846
- height: 10.75rem;
5847
- }
5848
-
5849
- ${LayerListContainer} {
5850
- height: auto;
5851
- margin: 0 -1.125rem -1.5rem;
5852
- padding: 0;
5853
-
5854
- ${LayerGroupList} {
5855
- padding: 0;
5856
- }
5857
- }
5813
+ css `
5814
+ > :first-child {
5815
+ padding-bottom: 0;
5816
+ }
5817
+ `};
5818
+
5819
+ ${PresentationHeader} > * {
5820
+ position: relative;
5821
+ z-index: 2;
5822
+ }
5823
+
5824
+ /* PaginationWrapper {
5825
+ ${PresentationWrapperCss};
5826
+ width: calc(100% - 2rem);
5827
+ min-height: 8.625rem;
5828
+ padding-top: 0.5rem;
5829
+ padding-bottom: 0.5rem;
5830
+ margin-bottom: 0.75rem;
5831
+ }*/
5832
+
5833
+ ${DashboardWrapper} {
5834
+ width: 100%;
5835
+ margin-top: 0;
5836
+
5837
+ ${DashboardContent} {
5838
+ padding: 0;
5839
+ overflow-y: unset;
5840
+
5841
+ > * > ${ContainerWrapper} > * > ${ContainerWrapper} {
5842
+ ${PresentationWrapperCss};
5843
+ width: calc(100% - 3rem);
5844
+ }
5845
+ }
5846
+ }
5847
+
5848
+ ${DashboardPlaceholder} {
5849
+ ${PresentationWrapperCss};
5850
+ width: 18.5rem;
5851
+ height: 10.75rem;
5852
+ }
5853
+
5854
+ ${LayerListContainer} {
5855
+ height: auto;
5856
+ margin: 0 -1.125rem -1.5rem;
5857
+ padding: 0;
5858
+
5859
+ ${LayerGroupList} {
5860
+ padding: 0;
5861
+ }
5862
+ }
5858
5863
  `;
5859
- const DataSourceErrorContainer = styled(Flex) `
5860
- align-items: center;
5861
- justify-content: center;
5862
- flex-wrap: nowrap;
5863
- flex-grow: 1;
5864
- padding: 1rem;
5865
- border: 1px ${({ theme: { palette } }) => palette.element} solid;
5866
- border-radius: 10px;
5867
- font-size: 0.875rem;
5868
- color: ${({ theme: { palette } }) => palette.textDisabled};
5869
-
5870
- span[kind] {
5871
- margin-right: 1rem;
5872
-
5873
- :after {
5874
- color: ${({ theme: { palette } }) => palette.iconDisabled};
5875
- }
5876
- }
5864
+ const DataSourceErrorContainer = styled(Flex) `
5865
+ align-items: center;
5866
+ justify-content: center;
5867
+ flex-wrap: nowrap;
5868
+ flex-grow: 1;
5869
+ padding: 1rem;
5870
+ border: 1px ${({ theme: { palette } }) => palette.element} solid;
5871
+ border-radius: 10px;
5872
+ font-size: 0.875rem;
5873
+ color: ${({ theme: { palette } }) => palette.textDisabled};
5874
+
5875
+ span[kind] {
5876
+ margin-right: 1rem;
5877
+
5878
+ :after {
5879
+ color: ${({ theme: { palette } }) => palette.iconDisabled};
5880
+ }
5881
+ }
5877
5882
  `;
5878
- const AttributeLabel = styled(Description) `
5879
- margin-top: 0 !important;
5880
- margin-bottom: ${({ forCheckbox }) => forCheckbox ? "0.75rem" : "0.25rem"} !important;
5881
- padding-left: ${({ isEdit }) => (isEdit ? "0.5rem" : "0")};
5882
- `;
5883
- const FeatureControls = styled(Flex) `
5884
- align-items: center;
5885
- gap: 1rem;
5886
- flex-wrap: nowrap;
5887
- position: relative;
5888
- flex-shrink: 0;
5889
-
5890
- button {
5891
- padding: 0;
5892
- width: auto;
5893
- }
5883
+ const AttributeLabel = styled(Description) `
5884
+ margin-top: 0 !important;
5885
+ margin-bottom: ${({ forCheckbox }) => forCheckbox ? "0.75rem" : "0.25rem"} !important;
5886
+ padding-left: ${({ isEdit }) => (isEdit ? "0.5rem" : "0")};
5887
+ `;
5888
+ const FeatureControls = styled(Flex) `
5889
+ align-items: center;
5890
+ gap: 1rem;
5891
+ flex-wrap: nowrap;
5892
+ position: relative;
5893
+ flex-shrink: 0;
5894
+
5895
+ button {
5896
+ padding: 0;
5897
+ width: auto;
5898
+ }
5894
5899
  `;
5895
5900
 
5896
5901
  const getAttributeByName = (attributeName, attributes) => {
@@ -5973,148 +5978,148 @@ const ContainersGroupContainer = memo(({ elementConfig, type, renderElement }) =
5973
5978
  return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(Container, { id: id, isColumn: isColumn, children: jsx(ContainerChildren, { type: type, items: children, elementConfig: elementConfig, isColumn: isColumn, isMain: id?.startsWith(CONFIG_PAGE_ID), renderElement: renderElement }) }))] }));
5974
5979
  });
5975
5980
 
5976
- const ChartLegendContainer = styled(Flex) `
5977
- flex-direction: column;
5978
- flex-wrap: wrap;
5979
- justify-content: ${({ twoColumns }) => (twoColumns ? "flex-start" : "center")};
5980
- `;
5981
- const ChartLegendItem = styled(Flex) `
5982
- cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
5983
- align-items: center;
5984
- flex-wrap: nowrap;
5985
- width: auto;
5986
- margin-right: 0.375rem;
5987
- margin-bottom: 0.25rem;
5988
- line-height: 0.75rem;
5989
- opacity: ${({ isFiltered, hasAnyFilter }) => (isFiltered ? 1 : hasAnyFilter ? FILTERED_VALUE_OPACITY / 100 : 1)};
5990
- `;
5991
- const ChartLegendColor = styled.div `
5992
- width: 0.5rem;
5993
- height: 0.5rem;
5994
- margin-right: 0.375rem;
5995
- background-color: ${({ color }) => color};
5996
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.tiny};
5997
- `;
5998
- const ChartLegendName = styled.div `
5999
- flex: 1;
6000
- font-size: ${({ $fontSize }) => $fontSize || "0.625rem"};
6001
- color: ${({ theme: { palette }, $fontColor }) => $fontColor || palette.textPrimary};
6002
- `;
6003
-
6004
- const ContainerAlias = styled(Flex) `
6005
- align-items: center;
6006
- flex-wrap: nowrap;
6007
- font-size: 0.75rem;
6008
- color: ${({ theme: { palette } }) => palette.textSecondary};
6009
-
6010
- &&& {
6011
- margin-bottom: ${({ hasBottomMargin }) => (hasBottomMargin ? 0.25 : 0)}rem;
6012
- }
6013
-
6014
- span[kind] {
6015
- margin-right: 0.5rem;
6016
-
6017
- :after {
6018
- color: ${({ theme: { palette } }) => palette.primary};
6019
- }
6020
- }
6021
- `;
6022
- const ContainerAliasIcon = styled.div `
6023
- margin-right: 0.5rem;
5981
+ const ChartLegendContainer = styled(Flex) `
5982
+ flex-direction: column;
5983
+ flex-wrap: wrap;
5984
+ justify-content: ${({ twoColumns }) => (twoColumns ? "flex-start" : "center")};
5985
+ `;
5986
+ const ChartLegendItem = styled(Flex) `
5987
+ cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
5988
+ align-items: center;
5989
+ flex-wrap: nowrap;
5990
+ width: auto;
5991
+ margin-right: 0.375rem;
5992
+ margin-bottom: 0.25rem;
5993
+ line-height: 0.75rem;
5994
+ opacity: ${({ isFiltered, hasAnyFilter }) => (isFiltered ? 1 : hasAnyFilter ? FILTERED_VALUE_OPACITY / 100 : 1)};
5995
+ `;
5996
+ const ChartLegendColor = styled.div `
5997
+ width: 0.5rem;
5998
+ height: 0.5rem;
5999
+ margin-right: 0.375rem;
6000
+ background-color: ${({ color }) => color};
6001
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.tiny};
6002
+ `;
6003
+ const ChartLegendName = styled.div `
6004
+ flex: 1;
6005
+ font-size: ${({ $fontSize }) => $fontSize || "0.625rem"};
6006
+ color: ${({ theme: { palette }, $fontColor }) => $fontColor || palette.textPrimary};
6024
6007
  `;
6025
- const ContainerChart = styled(Flex) `
6026
- justify-content: flex-start;
6027
6008
 
6028
- > * {
6029
- display: flex;
6030
- justify-content: center;
6031
- width: 100%;
6032
- }
6009
+ const ContainerAlias = styled(Flex) `
6010
+ align-items: center;
6011
+ flex-wrap: nowrap;
6012
+ font-size: 0.75rem;
6013
+ color: ${({ theme: { palette } }) => palette.textSecondary};
6014
+
6015
+ &&& {
6016
+ margin-bottom: ${({ hasBottomMargin }) => (hasBottomMargin ? 0.25 : 0)}rem;
6017
+ }
6018
+
6019
+ span[kind] {
6020
+ margin-right: 0.5rem;
6021
+
6022
+ :after {
6023
+ color: ${({ theme: { palette } }) => palette.primary};
6024
+ }
6025
+ }
6033
6026
  `;
6034
- const ContainerLegend = styled(Flex) ``;
6035
- const ContainerUnits = styled.div `
6036
- margin-left: 0.5rem;
6037
- white-space: nowrap;
6038
- font-size: 0.75rem;
6039
- `;
6040
- const ContainerValue = styled(Flex) `
6041
- justify-content: flex-end;
6042
- align-items: center;
6043
- flex-wrap: nowrap;
6044
- width: 100%;
6045
- font-size: ${({ big }) => (big ? 1.5 : 1)}rem;
6046
- color: ${({ fontColor, theme: { palette } }) => fontColor || palette.textPrimary};
6047
-
6048
- > * {
6049
- width: ${({ column }) => (column ? "100%" : "auto")};
6050
- }
6051
-
6052
- ${ContainerChart}, ${ContainerLegend} {
6053
- width: ${({ column }) => (column ? "100%" : "50%")};
6054
- }
6055
-
6056
- ${ContainerLegend} {
6057
- margin-left: ${({ column }) => (column ? 0 : "1rem")};
6058
- }
6059
-
6060
- ${ChartLegendContainer} {
6061
- flex-direction: ${({ column }) => (column ? "row" : "column")};
6062
- margin-top: ${({ column }) => (column ? "1rem" : 0)};
6063
- }
6027
+ const ContainerAliasIcon = styled.div `
6028
+ margin-right: 0.5rem;
6064
6029
  `;
6065
- const ColorIconMixin = css `
6066
- :after {
6067
- color: ${({ $fontColor }) => $fontColor} !important;
6068
- }
6030
+ const ContainerChart = styled(Flex) `
6031
+ justify-content: flex-start;
6032
+
6033
+ > * {
6034
+ display: flex;
6035
+ justify-content: center;
6036
+ width: 100%;
6037
+ }
6069
6038
  `;
6070
- const SizeIconMixin = css `
6071
- :after {
6072
- font-size: ${({ $fontSize }) => $fontSize}px !important;
6073
- }
6039
+ const ContainerLegend = styled(Flex) ``;
6040
+ const ContainerUnits = styled.div `
6041
+ margin-left: 0.5rem;
6042
+ white-space: nowrap;
6043
+ font-size: 0.75rem;
6044
+ `;
6045
+ const ContainerValue = styled(Flex) `
6046
+ justify-content: flex-end;
6047
+ align-items: center;
6048
+ flex-wrap: nowrap;
6049
+ width: 100%;
6050
+ font-size: ${({ big }) => (big ? 1.5 : 1)}rem;
6051
+ color: ${({ fontColor, theme: { palette } }) => fontColor || palette.textPrimary};
6052
+
6053
+ > * {
6054
+ width: ${({ column }) => (column ? "100%" : "auto")};
6055
+ }
6056
+
6057
+ ${ContainerChart}, ${ContainerLegend} {
6058
+ width: ${({ column }) => (column ? "100%" : "50%")};
6059
+ }
6060
+
6061
+ ${ContainerLegend} {
6062
+ margin-left: ${({ column }) => (column ? 0 : "1rem")};
6063
+ }
6064
+
6065
+ ${ChartLegendContainer} {
6066
+ flex-direction: ${({ column }) => (column ? "row" : "column")};
6067
+ margin-top: ${({ column }) => (column ? "1rem" : 0)};
6068
+ }
6074
6069
  `;
6075
- const ContainerIcon = styled(Icon) `
6076
- width: auto;
6077
- height: auto;
6078
- margin-bottom: 0.5rem;
6079
- ${({ $fontColor }) => !!$fontColor && ColorIconMixin};
6080
- ${({ $fontSize }) => !!$fontSize && SizeIconMixin};
6081
- `;
6082
- const SvgContainerColorMixin$1 = css `
6083
- path,
6084
- line,
6085
- circle {
6086
- fill: ${({ $fontColor }) => $fontColor};
6087
- }
6070
+ const ColorIconMixin = css `
6071
+ :after {
6072
+ color: ${({ $fontColor }) => $fontColor} !important;
6073
+ }
6088
6074
  `;
6089
- const SvgContainer$1 = styled.div `
6090
- &&& {
6091
- min-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6092
- max-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6093
-
6094
- ${({ $fontColor }) => !!$fontColor && SvgContainerColorMixin$1};
6095
-
6096
- > * {
6097
- min-width: inherit;
6098
- }
6099
- }
6075
+ const SizeIconMixin = css `
6076
+ :after {
6077
+ font-size: ${({ $fontSize }) => $fontSize}px !important;
6078
+ }
6100
6079
  `;
6101
- const TwoColumnContainerWrapper = styled(Flex) `
6102
- width: 100%;
6103
- flex-direction: row;
6104
- flex-wrap: nowrap;
6105
- align-items: center;
6106
-
6107
- > * {
6108
- flex: 1;
6109
- }
6110
-
6111
- > ${ContainerValue} {
6112
- justify-content: flex-end;
6113
-
6114
- > * {
6115
- text-align: right;
6116
- }
6117
- }
6080
+ const ContainerIcon = styled(Icon) `
6081
+ width: auto;
6082
+ height: auto;
6083
+ margin-bottom: 0.5rem;
6084
+ ${({ $fontColor }) => !!$fontColor && ColorIconMixin};
6085
+ ${({ $fontSize }) => !!$fontSize && SizeIconMixin};
6086
+ `;
6087
+ const SvgContainerColorMixin$1 = css `
6088
+ path,
6089
+ line,
6090
+ circle {
6091
+ fill: ${({ $fontColor }) => $fontColor};
6092
+ }
6093
+ `;
6094
+ const SvgContainer$1 = styled.div `
6095
+ &&& {
6096
+ min-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6097
+ max-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6098
+
6099
+ ${({ $fontColor }) => !!$fontColor && SvgContainerColorMixin$1};
6100
+
6101
+ > * {
6102
+ min-width: inherit;
6103
+ }
6104
+ }
6105
+ `;
6106
+ const TwoColumnContainerWrapper = styled(Flex) `
6107
+ width: 100%;
6108
+ flex-direction: row;
6109
+ flex-wrap: nowrap;
6110
+ align-items: center;
6111
+
6112
+ > * {
6113
+ flex: 1;
6114
+ }
6115
+
6116
+ > ${ContainerValue} {
6117
+ justify-content: flex-end;
6118
+
6119
+ > * {
6120
+ text-align: right;
6121
+ }
6122
+ }
6118
6123
  `;
6119
6124
 
6120
6125
  const useRenderContainerItem = (type, renderElement) => {
@@ -6195,10 +6200,10 @@ const TwoColumnContainer = memo(({ elementConfig, type, renderElement }) => {
6195
6200
  return renderAttributes?.length ? (jsx(Fragment$1, { children: renderAttributes.map(attribute => renderContainer(attribute)) })) : (renderContainer());
6196
6201
  });
6197
6202
 
6198
- const InnerContainerWrapper = styled.div `
6199
- cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
6200
- width: ${({ column }) => (column ? "100%" : "auto")};
6201
- opacity: ${({ hasAnyFilter, isFiltered }) => (isFiltered ? 1 : hasAnyFilter ? FILTERED_VALUE_OPACITY / 100 : 1)};
6203
+ const InnerContainerWrapper = styled.div `
6204
+ cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
6205
+ width: ${({ column }) => (column ? "100%" : "auto")};
6206
+ opacity: ${({ hasAnyFilter, isFiltered }) => (isFiltered ? 1 : hasAnyFilter ? FILTERED_VALUE_OPACITY / 100 : 1)};
6202
6207
  `;
6203
6208
 
6204
6209
  const DataSourceInnerContainer = memo(({ config, elementConfig, feature, maxValue, type, index, innerComponent }) => {
@@ -6269,107 +6274,107 @@ const DataSourceInnerContainer = memo(({ config, elementConfig, feature, maxValu
6269
6274
  return (jsx(InnerContainerWrapper, { hasAnyFilter: hasAnyFilter, isFiltered: isFiltered(value), column: column === undefined || column, onClick: filterName ? () => onFilter(value) : undefined, children: jsx(InnerContainer, { config: config, elementConfig: elementConfig, feature: feature, maxValue: maxValue, type: type, index: index, renderElement: render }) }));
6270
6275
  });
6271
6276
 
6272
- const DataSourceProgressContainerWrapper = styled.div `
6273
- width: 100%;
6277
+ const DataSourceProgressContainerWrapper = styled.div `
6278
+ width: 100%;
6274
6279
  `;
6275
- const ContainerToggler = styled(LegendToggler) `
6276
- width: auto;
6277
- margin-left: -1rem;
6280
+ const ContainerToggler = styled(LegendToggler) `
6281
+ width: auto;
6282
+ margin-left: -1rem;
6278
6283
  `;
6279
6284
 
6280
- const ProgressContainerWrapper = styled(Flex) `
6281
- align-items: center;
6282
- width: 100%;
6283
- margin-bottom: 1rem;
6284
- `;
6285
- const ProgressIcon = styled.div `
6286
- margin-right: 0.5rem;
6287
- `;
6288
- const ProgressContent = styled(Flex) `
6289
- flex: 1;
6290
- flex-direction: column;
6291
- `;
6292
- const ProgressAlias = styled(Flex) `
6293
- flex: 1;
6294
- justify-content: space-between;
6295
- margin-bottom: 0.25rem;
6296
- font-size: 0.75rem;
6297
- color: ${({ theme: { palette } }) => palette.textSecondary};
6285
+ const ProgressContainerWrapper = styled(Flex) `
6286
+ align-items: center;
6287
+ width: 100%;
6288
+ margin-bottom: 1rem;
6298
6289
  `;
6299
- const ProgressValue = styled(Flex) `
6300
- align-items: center;
6301
- width: auto;
6302
- font-size: 1rem;
6303
- color: ${({ theme: { palette } }) => palette.textPrimary};
6290
+ const ProgressIcon = styled.div `
6291
+ margin-right: 0.5rem;
6304
6292
  `;
6305
- const ProgressInnerValue = styled(ProgressValue) `
6306
- justify-content: flex-end;
6307
- width: 4rem;
6308
- margin-left: 0.5rem;
6309
- `;
6310
- const ProgressUnits = styled(Flex) `
6311
- margin-left: 0.25rem;
6312
- font-size: 0.75rem;
6313
- color: ${({ theme: { palette } }) => palette.textSecondary};
6314
- `;
6315
- const ProgressBarWrapper = styled.div `
6316
- flex-grow: 1;
6317
- height: 0.5rem;
6318
- background-color: ${({ theme: { palette } }) => palette.element};
6319
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.xSmall};
6293
+ const ProgressContent = styled(Flex) `
6294
+ flex: 1;
6295
+ flex-direction: column;
6320
6296
  `;
6321
- const ProgressBarContainer = styled(Flex) `
6322
- position: relative;
6323
- align-items: center;
6324
- width: 100%;
6325
-
6297
+ const ProgressAlias = styled(Flex) `
6298
+ flex: 1;
6299
+ justify-content: space-between;
6300
+ margin-bottom: 0.25rem;
6301
+ font-size: 0.75rem;
6302
+ color: ${({ theme: { palette } }) => palette.textSecondary};
6303
+ `;
6304
+ const ProgressValue = styled(Flex) `
6305
+ align-items: center;
6306
+ width: auto;
6307
+ font-size: 1rem;
6308
+ color: ${({ theme: { palette } }) => palette.textPrimary};
6309
+ `;
6310
+ const ProgressInnerValue = styled(ProgressValue) `
6311
+ justify-content: flex-end;
6312
+ width: 4rem;
6313
+ margin-left: 0.5rem;
6314
+ `;
6315
+ const ProgressUnits = styled(Flex) `
6316
+ margin-left: 0.25rem;
6317
+ font-size: 0.75rem;
6318
+ color: ${({ theme: { palette } }) => palette.textSecondary};
6319
+ `;
6320
+ const ProgressBarWrapper = styled.div `
6321
+ flex-grow: 1;
6322
+ height: 0.5rem;
6323
+ background-color: ${({ theme: { palette } }) => palette.element};
6324
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.xSmall};
6325
+ `;
6326
+ const ProgressBarContainer = styled(Flex) `
6327
+ position: relative;
6328
+ align-items: center;
6329
+ width: 100%;
6330
+
6326
6331
  ${({ innerValue }) => innerValue &&
6327
- css `
6328
- ${ProgressBarWrapper} {
6329
- height: 1.125rem;
6330
- }
6331
-
6332
- ${ProgressInnerValue} {
6333
- z-index: 1;
6334
- position: absolute;
6335
- right: 0.25rem;
6336
- }
6337
- `}
6338
- `;
6339
- const ProgressBar = styled.div `
6340
- width: ${({ $width }) => $width};
6341
- height: inherit;
6342
- background-color: ${({ $color }) => $color || "#a7d759"};
6343
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.xSmall};
6344
- `;
6345
- const ProgressTooltipAlias = styled.div `
6346
- margin-bottom: 0.25rem;
6347
- text-align: left;
6348
- color: ${({ theme: { palette } }) => palette.primary};
6332
+ css `
6333
+ ${ProgressBarWrapper} {
6334
+ height: 1.125rem;
6335
+ }
6336
+
6337
+ ${ProgressInnerValue} {
6338
+ z-index: 1;
6339
+ position: absolute;
6340
+ right: 0.25rem;
6341
+ }
6342
+ `}
6343
+ `;
6344
+ const ProgressBar = styled.div `
6345
+ width: ${({ $width }) => $width};
6346
+ height: inherit;
6347
+ background-color: ${({ $color }) => $color || "#a7d759"};
6348
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.xSmall};
6349
+ `;
6350
+ const ProgressTooltipAlias = styled.div `
6351
+ margin-bottom: 0.25rem;
6352
+ text-align: left;
6353
+ color: ${({ theme: { palette } }) => palette.primary};
6349
6354
  `;
6350
6355
  const ProgressTooltipValue = styled.div ``;
6351
- const ProgressTooltipValueContainer = styled(Flex) `
6352
- align-items: center;
6353
-
6354
- > * {
6355
- opacity: 0.65;
6356
- }
6357
-
6358
- ${ProgressTooltipValue} {
6359
- opacity: 1;
6360
- }
6356
+ const ProgressTooltipValueContainer = styled(Flex) `
6357
+ align-items: center;
6358
+
6359
+ > * {
6360
+ opacity: 0.65;
6361
+ }
6362
+
6363
+ ${ProgressTooltipValue} {
6364
+ opacity: 1;
6365
+ }
6361
6366
  `;
6362
- const ProgressTooltipValueOf = styled.div `
6363
- margin: 0 0.25rem;
6367
+ const ProgressTooltipValueOf = styled.div `
6368
+ margin: 0 0.25rem;
6364
6369
  `;
6365
- const ProgressTotalTitle = styled.div `
6366
- font-size: 0.75rem;
6367
- font-weight: bold;
6370
+ const ProgressTotalTitle = styled.div `
6371
+ font-size: 0.75rem;
6372
+ font-weight: bold;
6368
6373
  `;
6369
- const ProgressTotal = styled(Flex) `
6370
- align-items: center;
6371
- justify-content: space-between;
6372
- margin-top: 1rem;
6374
+ const ProgressTotal = styled(Flex) `
6375
+ align-items: center;
6376
+ justify-content: space-between;
6377
+ margin-top: 1rem;
6373
6378
  `;
6374
6379
 
6375
6380
  const DataSourceProgressContainer = memo(({ config, elementConfig, type, innerComponent, renderElement }) => {
@@ -6475,166 +6480,166 @@ const DEFAULT_BAR_CHART_MARGINS = {
6475
6480
  right: 0,
6476
6481
  };
6477
6482
 
6478
- const FiltersContainerWrapper = styled(Flex) `
6479
- flex-direction: column;
6480
- padding: ${({ $padding }) => $padding ?? `${DEFAULT_FILTER_PADDING}px`};
6481
- background-color: ${({ $bgColor, $fontColor, theme: { palette } }) => $bgColor || ($fontColor ? transparentizeColor($fontColor, 6) : palette.element)};
6482
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
6483
-
6484
- ${DropdownField}, input {
6485
- background-color: ${({ theme: { palette } }) => palette.background};
6486
- }
6487
-
6488
- > div:not(:last-child) {
6489
- margin-bottom: 0.5rem;
6490
- }
6491
-
6492
- > label {
6493
- align-items: flex-start;
6494
- font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
6495
-
6496
- &.active {
6497
- color: ${({ $fontColor }) => $fontColor};
6498
-
6499
- svg rect {
6500
- fill: ${({ $fontColor }) => $fontColor} !important;
6501
- }
6502
- }
6503
-
6504
- &:not(:last-child) {
6505
- margin-bottom: 0.75rem;
6506
- }
6507
-
6508
- &:last-child {
6509
- margin-bottom: 0;
6510
- }
6511
- }
6483
+ const FiltersContainerWrapper = styled(Flex) `
6484
+ flex-direction: column;
6485
+ padding: ${({ $padding }) => $padding ?? `${DEFAULT_FILTER_PADDING}px`};
6486
+ background-color: ${({ $bgColor, $fontColor, theme: { palette } }) => $bgColor || ($fontColor ? transparentizeColor($fontColor, 6) : palette.element)};
6487
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
6488
+
6489
+ ${DropdownField}, input {
6490
+ background-color: ${({ theme: { palette } }) => palette.background};
6491
+ }
6492
+
6493
+ > div:not(:last-child) {
6494
+ margin-bottom: 0.5rem;
6495
+ }
6496
+
6497
+ > label {
6498
+ align-items: flex-start;
6499
+ font-size: ${({ $fontSize }) => $fontSize || "0.875rem"};
6500
+
6501
+ &.active {
6502
+ color: ${({ $fontColor }) => $fontColor};
6503
+
6504
+ svg rect {
6505
+ fill: ${({ $fontColor }) => $fontColor} !important;
6506
+ }
6507
+ }
6508
+
6509
+ &:not(:last-child) {
6510
+ margin-bottom: 0.75rem;
6511
+ }
6512
+
6513
+ &:last-child {
6514
+ margin-bottom: 0;
6515
+ }
6516
+ }
6512
6517
  `;
6513
- const StyledIconButton = styled(IconButton) `
6514
- width: 0.75rem;
6515
- height: 0.75rem;
6516
-
6517
- span[kind] {
6518
- height: 0.75rem;
6519
-
6520
- :after {
6521
- font-size: 0.75rem;
6522
- }
6523
- }
6518
+ const StyledIconButton = styled(IconButton) `
6519
+ width: 0.75rem;
6520
+ height: 0.75rem;
6521
+
6522
+ span[kind] {
6523
+ height: 0.75rem;
6524
+
6525
+ :after {
6526
+ font-size: 0.75rem;
6527
+ }
6528
+ }
6524
6529
  `;
6525
- const TextFilterContainer = styled.div `
6526
- width: 15.85rem;
6527
-
6528
- ${MultiSelectContainer} {
6529
- color: ${({ theme: { palette } }) => palette.textPrimary};
6530
-
6531
- ${IconButtonButton} {
6532
- span[kind]:after {
6533
- color: ${({ theme: { palette } }) => palette.textPrimary};
6534
- }
6535
- }
6536
- }
6530
+ const TextFilterContainer = styled.div `
6531
+ width: 15.85rem;
6532
+
6533
+ ${MultiSelectContainer} {
6534
+ color: ${({ theme: { palette } }) => palette.textPrimary};
6535
+
6536
+ ${IconButtonButton} {
6537
+ span[kind]:after {
6538
+ color: ${({ theme: { palette } }) => palette.textPrimary};
6539
+ }
6540
+ }
6541
+ }
6537
6542
  `;
6538
- const BarChartContainer = styled.div `
6539
- width: 100%;
6540
- overflow-x: hidden;
6541
-
6543
+ const BarChartContainer = styled.div `
6544
+ width: 100%;
6545
+ overflow-x: hidden;
6546
+
6542
6547
  ${({ barHeight, marginBottom }) => !!barHeight &&
6543
- css `
6544
- .barChartBarGlobal rect {
6545
- height: ${barHeight}px;
6546
- y: calc(100% - ${barHeight + marginBottom}px);
6547
- }
6548
- `}
6549
- `;
6550
- const AnyChartWrapper = styled.div `
6551
- width: 100%;
6552
- height: ${({ height }) => height}px;
6553
- `;
6554
- const BarChartWrapper = styled(AnyChartWrapper) `
6555
- width: 100%;
6556
- margin: 0 auto ${BAR_CHART_FOOTER_MARGIN}px;
6557
-
6558
- :hover {
6559
- ${BarChartContainer} {
6560
- overflow-x: auto;
6561
- }
6562
- }
6548
+ css `
6549
+ .barChartBarGlobal rect {
6550
+ height: ${barHeight}px;
6551
+ y: calc(100% - ${barHeight + marginBottom}px);
6552
+ }
6553
+ `}
6554
+ `;
6555
+ const AnyChartWrapper = styled.div `
6556
+ width: 100%;
6557
+ height: ${({ height }) => height}px;
6558
+ `;
6559
+ const BarChartWrapper = styled(AnyChartWrapper) `
6560
+ width: 100%;
6561
+ margin: 0 auto ${BAR_CHART_FOOTER_MARGIN}px;
6562
+
6563
+ :hover {
6564
+ ${BarChartContainer} {
6565
+ overflow-x: auto;
6566
+ }
6567
+ }
6563
6568
  `;
6564
- const BarChartFilterHeader = styled(Flex) `
6565
- justify-content: space-between;
6566
- align-items: center;
6567
- height: ${({ height }) => `calc(${typeof height === "number" ? `${height}px` : height} - 0.5rem)`};
6568
- padding: 0.25rem 0;
6569
+ const BarChartFilterHeader = styled(Flex) `
6570
+ justify-content: space-between;
6571
+ align-items: center;
6572
+ height: ${({ height }) => `calc(${typeof height === "number" ? `${height}px` : height} - 0.5rem)`};
6573
+ padding: 0.25rem 0;
6569
6574
  `;
6570
- const BarChartFilterArrows = styled(Flex) `
6571
- margin-left: -0.5rem;
6572
-
6573
- span[kind] {
6574
- display: flex;
6575
- align-items: center;
6576
-
6577
- :after {
6578
- font-size: 0.75rem;
6579
- }
6580
- }
6575
+ const BarChartFilterArrows = styled(Flex) `
6576
+ margin-left: -0.5rem;
6577
+
6578
+ span[kind] {
6579
+ display: flex;
6580
+ align-items: center;
6581
+
6582
+ :after {
6583
+ font-size: 0.75rem;
6584
+ }
6585
+ }
6581
6586
  `;
6582
- const BarChartFilterSelected = styled.div `
6583
- font-size: 0.75rem;
6584
- font-weight: bold;
6585
- color: ${({ theme: { palette } }) => palette.textPrimary};
6587
+ const BarChartFilterSelected = styled.div `
6588
+ font-size: 0.75rem;
6589
+ font-weight: bold;
6590
+ color: ${({ theme: { palette } }) => palette.textPrimary};
6586
6591
  `;
6587
- styled.div `
6588
- color: ${({ theme: { palette } }) => palette.textSecondary};
6592
+ styled.div `
6593
+ color: ${({ theme: { palette } }) => palette.textSecondary};
6589
6594
  `;
6590
- const BarChart = styled(BarChart$1) `
6591
- .${barChartClassNames.barChartXAxis} {
6592
- .domain,
6593
- line {
6594
- display: none;
6595
- }
6596
-
6597
- .tick {
6598
- text {
6599
- text-anchor: start;
6600
- font-size: 12px;
6601
- color: rgba(48, 69, 79, 0.46);
6602
- }
6603
-
6604
- :last-of-type {
6605
- text {
6606
- text-anchor: end;
6607
- }
6608
- }
6609
- }
6610
- }
6611
-
6612
- .marker {
6613
- font-size: 12px;
6614
- }
6595
+ const BarChart = styled(BarChart$1) `
6596
+ .${barChartClassNames.barChartXAxis} {
6597
+ .domain,
6598
+ line {
6599
+ display: none;
6600
+ }
6601
+
6602
+ .tick {
6603
+ text {
6604
+ text-anchor: start;
6605
+ font-size: 12px;
6606
+ color: rgba(48, 69, 79, 0.46);
6607
+ }
6608
+
6609
+ :last-of-type {
6610
+ text {
6611
+ text-anchor: end;
6612
+ }
6613
+ }
6614
+ }
6615
+ }
6616
+
6617
+ .marker {
6618
+ font-size: 12px;
6619
+ }
6615
6620
  `;
6616
- const TooltipContainer = styled.div `
6617
- position: relative;
6618
- font-size: 0.75rem;
6619
- color: #ffffff;
6620
- margin-bottom: 0.5rem;
6621
- padding: 0.375rem;
6622
- background-color: rgba(0, 0, 0, 1);
6623
- border-radius: 0.25rem;
6624
- box-shadow: 0 0.1875rem 0.5rem rgba(48, 69, 79, 0.06);
6625
-
6626
- :before {
6627
- content: "";
6628
- position: absolute;
6629
- bottom: 0;
6630
- left: 50%;
6631
- transform: translate(-50%, 100%);
6632
- width: 0;
6633
- height: 0;
6634
- border-style: solid;
6635
- border-width: 0.25rem 0.1875rem 0 0.1875rem;
6636
- border-color: rgba(48, 69, 79, 1) transparent transparent transparent;
6637
- }
6621
+ const TooltipContainer = styled.div `
6622
+ position: relative;
6623
+ font-size: 0.75rem;
6624
+ color: #ffffff;
6625
+ margin-bottom: 0.5rem;
6626
+ padding: 0.375rem;
6627
+ background-color: rgba(0, 0, 0, 1);
6628
+ border-radius: 0.25rem;
6629
+ box-shadow: 0 0.1875rem 0.5rem rgba(48, 69, 79, 0.06);
6630
+
6631
+ :before {
6632
+ content: "";
6633
+ position: absolute;
6634
+ bottom: 0;
6635
+ left: 50%;
6636
+ transform: translate(-50%, 100%);
6637
+ width: 0;
6638
+ height: 0;
6639
+ border-style: solid;
6640
+ border-width: 0.25rem 0.1875rem 0 0.1875rem;
6641
+ border-color: rgba(48, 69, 79, 1) transparent transparent transparent;
6642
+ }
6638
6643
  `;
6639
6644
 
6640
6645
  const FiltersContainer = memo(({ elementConfig, config, type, renderElement }) => {
@@ -6711,64 +6716,64 @@ const PagesContainer = memo(({ type = WidgetType.Dashboard, noBorders }) => {
6711
6716
  return (jsx(Container, { id: getRootElementId(type), style: { width }, isMain: true, isColumn: isColumn, noBorders: noBorders, children: jsx(ContainerChildren, { type: type, items: filteredChildren, isMain: true, renderElement: renderElement }) }));
6712
6717
  });
6713
6718
 
6714
- const ImageContainerBg$1 = styled.div `
6715
- position: absolute;
6716
- top: 0;
6717
- bottom: 0;
6718
- left: 0;
6719
- right: 0;
6720
-
6721
- img {
6722
- width: 100%;
6723
- height: 100%;
6724
- object-position: center;
6725
- object-fit: cover;
6726
- }
6719
+ const ImageContainerBg$1 = styled.div `
6720
+ position: absolute;
6721
+ top: 0;
6722
+ bottom: 0;
6723
+ left: 0;
6724
+ right: 0;
6725
+
6726
+ img {
6727
+ width: 100%;
6728
+ height: 100%;
6729
+ object-position: center;
6730
+ object-fit: cover;
6731
+ }
6727
6732
  `;
6728
- const ImageContainerTitle = styled.div `
6729
- width: 100%;
6730
- overflow-wrap: break-word;
6731
- font-size: 1rem;
6732
- font-weight: 500;
6733
- `;
6734
- const ImageContainerText = styled.div `
6735
- width: 100%;
6736
- overflow-wrap: break-word;
6737
- margin-top: 0.5rem;
6738
- font-size: 0.75rem;
6739
- `;
6740
- const ImageContainerButton$1 = styled(FlatButton) `
6741
- min-height: 1.5rem;
6742
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.large};
6743
- background-color: ${({ theme: { palette } }) => palette.primary};
6744
- text-transform: none;
6745
-
6746
- :hover {
6747
- background-color: ${({ theme: { palette } }) => palette.primaryDeep};
6748
- }
6733
+ const ImageContainerTitle = styled.div `
6734
+ width: 100%;
6735
+ overflow-wrap: break-word;
6736
+ font-size: 1rem;
6737
+ font-weight: 500;
6738
+ `;
6739
+ const ImageContainerText = styled.div `
6740
+ width: 100%;
6741
+ overflow-wrap: break-word;
6742
+ margin-top: 0.5rem;
6743
+ font-size: 0.75rem;
6744
+ `;
6745
+ const ImageContainerButton$1 = styled(FlatButton) `
6746
+ min-height: 1.5rem;
6747
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.large};
6748
+ background-color: ${({ theme: { palette } }) => palette.primary};
6749
+ text-transform: none;
6750
+
6751
+ :hover {
6752
+ background-color: ${({ theme: { palette } }) => palette.primaryDeep};
6753
+ }
6749
6754
  `;
6750
- const ImageContainerWrapper = styled(Flex) `
6751
- flex-direction: column;
6752
- justify-content: flex-end;
6753
- position: relative;
6754
- padding: 1rem;
6755
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
6756
- overflow: hidden;
6757
-
6758
- ${ImageContainerTitle}, ${ImageContainerText}, ${ImageContainerButton$1} {
6759
- z-index: 1;
6760
- color: ${({ theme: { palette } }) => palette.textContrast};
6761
- }
6762
-
6763
- :after {
6764
- content: "";
6765
- position: absolute;
6766
- top: 0;
6767
- bottom: 0;
6768
- left: 0;
6769
- right: 0;
6770
- background-color: rgba(0, 0, 0, 0.4);
6771
- }
6755
+ const ImageContainerWrapper = styled(Flex) `
6756
+ flex-direction: column;
6757
+ justify-content: flex-end;
6758
+ position: relative;
6759
+ padding: 1rem;
6760
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
6761
+ overflow: hidden;
6762
+
6763
+ ${ImageContainerTitle}, ${ImageContainerText}, ${ImageContainerButton$1} {
6764
+ z-index: 1;
6765
+ color: ${({ theme: { palette } }) => palette.textContrast};
6766
+ }
6767
+
6768
+ :after {
6769
+ content: "";
6770
+ position: absolute;
6771
+ top: 0;
6772
+ bottom: 0;
6773
+ left: 0;
6774
+ right: 0;
6775
+ background-color: rgba(0, 0, 0, 0.4);
6776
+ }
6772
6777
  `;
6773
6778
 
6774
6779
  const ImageContainer = memo(({ elementConfig, renderElement }) => {
@@ -6776,52 +6781,52 @@ const ImageContainer = memo(({ elementConfig, renderElement }) => {
6776
6781
  return (jsxs(ImageContainerWrapper, { id: id, style: style, children: [jsx(ImageContainerTitle, { children: renderElement({ id: "alias" }) }), jsx(ImageContainerText, { children: renderElement({ id: "text" }) }), renderElement({ id: "button" }), jsx(ImageContainerBg$1, { children: renderElement({ id: "image" }) })] }));
6777
6782
  });
6778
6783
 
6779
- const IconContainerWrapper = styled(Flex) `
6780
- flex-direction: column;
6781
- justify-content: center;
6782
- position: relative;
6783
- padding: 0.5rem 1rem 1rem;
6784
- background-color: ${({ theme: { palette } }) => palette.element};
6785
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
6786
- overflow: hidden;
6787
- `;
6788
- const IconContainerHeaderWrapper = styled(Flex) `
6789
- justify-content: space-between;
6790
- align-items: center;
6791
- flex-wrap: nowrap;
6792
- width: 100%;
6793
- margin-bottom: 0.25rem;
6794
- `;
6795
- const IconContainerHeader = styled(Flex) `
6796
- align-items: center;
6797
- flex-wrap: nowrap;
6798
- width: 100%;
6799
- margin-right: 0.5rem;
6800
- font-size: 0.875rem;
6801
-
6802
- ${Icon} {
6803
- margin-right: 0.5rem;
6804
-
6805
- :after {
6806
- font-size: 1.15rem;
6807
- color: ${({ theme: { palette } }) => palette.textSecondary};
6808
- }
6809
- }
6784
+ const IconContainerWrapper = styled(Flex) `
6785
+ flex-direction: column;
6786
+ justify-content: center;
6787
+ position: relative;
6788
+ padding: 0.5rem 1rem 1rem;
6789
+ background-color: ${({ theme: { palette } }) => palette.element};
6790
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
6791
+ overflow: hidden;
6810
6792
  `;
6811
- const IconContainerTitle = styled(Flex) `
6812
- > * {
6813
- width: 13rem;
6814
- white-space: nowrap;
6815
- overflow: hidden;
6816
- font-weight: bold;
6817
- text-overflow: ellipsis;
6818
- }
6793
+ const IconContainerHeaderWrapper = styled(Flex) `
6794
+ justify-content: space-between;
6795
+ align-items: center;
6796
+ flex-wrap: nowrap;
6797
+ width: 100%;
6798
+ margin-bottom: 0.25rem;
6799
+ `;
6800
+ const IconContainerHeader = styled(Flex) `
6801
+ align-items: center;
6802
+ flex-wrap: nowrap;
6803
+ width: 100%;
6804
+ margin-right: 0.5rem;
6805
+ font-size: 0.875rem;
6806
+
6807
+ ${Icon} {
6808
+ margin-right: 0.5rem;
6809
+
6810
+ :after {
6811
+ font-size: 1.15rem;
6812
+ color: ${({ theme: { palette } }) => palette.textSecondary};
6813
+ }
6814
+ }
6815
+ `;
6816
+ const IconContainerTitle = styled(Flex) `
6817
+ > * {
6818
+ width: 13rem;
6819
+ white-space: nowrap;
6820
+ overflow: hidden;
6821
+ font-weight: bold;
6822
+ text-overflow: ellipsis;
6823
+ }
6819
6824
  `;
6820
- const IconContainerText = styled.div `
6821
- width: 100%;
6822
- overflow-wrap: break-word;
6823
- font-size: 0.75rem;
6824
- color: ${({ theme: { palette } }) => palette.textSecondary};
6825
+ const IconContainerText = styled.div `
6826
+ width: 100%;
6827
+ overflow-wrap: break-word;
6828
+ font-size: 0.75rem;
6829
+ color: ${({ theme: { palette } }) => palette.textSecondary};
6825
6830
  `;
6826
6831
 
6827
6832
  const IconContainer = memo(({ elementConfig, renderElement }) => {
@@ -6844,107 +6849,107 @@ const DataSourceContainer = memo(({ config, elementConfig, type, innerComponent,
6844
6849
  return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), !isVisible ? null : dataSource ? (jsx(Container, { id: id, isColumn: column, style: { height: isLoading ? "3rem" : "auto", ...style }, children: dataSource.features?.map((feature, index) => (jsx(DataSourceInnerContainer, { index: index, type: type, config: config, feature: feature, elementConfig: elementConfig, innerComponent: innerComponent }, index))) })) : (jsx(ContainerLoading, {}))] }));
6845
6850
  });
6846
6851
 
6847
- const SvgContainerColorMixin = css `
6848
- path,
6849
- line,
6850
- circle {
6851
- fill: ${({ $fontColor }) => $fontColor};
6852
- }
6852
+ const SvgContainerColorMixin = css `
6853
+ path,
6854
+ line,
6855
+ circle {
6856
+ fill: ${({ $fontColor }) => $fontColor};
6857
+ }
6853
6858
  `;
6854
- const SvgContainer = styled.div `
6855
- &&& {
6856
- min-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6857
- max-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6858
-
6859
- ${({ $fontColor }) => !!$fontColor && SvgContainerColorMixin};
6860
-
6861
- > * {
6862
- min-width: inherit;
6863
- }
6864
- }
6859
+ const SvgContainer = styled.div `
6860
+ &&& {
6861
+ min-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6862
+ max-width: ${({ $width }) => ($width ? `${$width}px` : "1rem")};
6863
+
6864
+ ${({ $fontColor }) => !!$fontColor && SvgContainerColorMixin};
6865
+
6866
+ > * {
6867
+ min-width: inherit;
6868
+ }
6869
+ }
6865
6870
  `;
6866
6871
 
6867
- const ContainerIconTitle = styled(Flex) `
6868
- align-items: center;
6869
- flex-wrap: nowrap;
6870
- flex-shrink: 1;
6871
- flex-grow: 0;
6872
- color: ${({ fontColor, theme: { palette } }) => fontColor || palette.textSecondary};
6873
-
6874
- > div {
6875
- flex-shrink: 1;
6876
- flex-grow: 0;
6877
- width: auto;
6878
- }
6879
-
6880
- ${SvgContainer} {
6881
- flex-shrink: 0;
6882
- flex-grow: 0;
6883
- margin-right: 0.5rem;
6884
- }
6885
-
6886
- svg,
6887
- img,
6888
- span[kind] {
6889
- margin-right: 0.5rem;
6890
- }
6891
-
6872
+ const ContainerIconTitle = styled(Flex) `
6873
+ align-items: center;
6874
+ flex-wrap: nowrap;
6875
+ flex-shrink: 1;
6876
+ flex-grow: 0;
6877
+ color: ${({ fontColor, theme: { palette } }) => fontColor || palette.textSecondary};
6878
+
6879
+ > div {
6880
+ flex-shrink: 1;
6881
+ flex-grow: 0;
6882
+ width: auto;
6883
+ }
6884
+
6885
+ ${SvgContainer} {
6886
+ flex-shrink: 0;
6887
+ flex-grow: 0;
6888
+ margin-right: 0.5rem;
6889
+ }
6890
+
6891
+ svg,
6892
+ img,
6893
+ span[kind] {
6894
+ margin-right: 0.5rem;
6895
+ }
6896
+
6892
6897
  ${({ fontColor }) => !!fontColor &&
6893
- css `
6894
- span[kind] {
6895
- color: ${fontColor};
6896
- }
6897
-
6898
- ${SvgContainer} {
6899
- path,
6900
- circle {
6901
- fill: ${fontColor};
6902
- }
6903
- }
6904
- `};
6905
-
6906
- ${LegendToggler} {
6907
- margin-left: 0.25rem;
6908
- }
6909
-
6910
- span[kind="download"] {
6911
- opacity: 0;
6912
- transition: opacity ${transition.hover};
6913
- }
6914
-
6915
- :hover {
6916
- span[kind="download"] {
6917
- opacity: 1;
6918
- }
6919
- }
6898
+ css `
6899
+ span[kind] {
6900
+ color: ${fontColor};
6901
+ }
6902
+
6903
+ ${SvgContainer} {
6904
+ path,
6905
+ circle {
6906
+ fill: ${fontColor};
6907
+ }
6908
+ }
6909
+ `};
6910
+
6911
+ ${LegendToggler} {
6912
+ margin-left: 0.25rem;
6913
+ }
6914
+
6915
+ span[kind="download"] {
6916
+ opacity: 0;
6917
+ transition: opacity ${transition.hover};
6918
+ }
6919
+
6920
+ :hover {
6921
+ span[kind="download"] {
6922
+ opacity: 1;
6923
+ }
6924
+ }
6920
6925
  `;
6921
- const ContainerTitle = styled(Flex) `
6922
- align-items: center;
6923
- justify-content: space-between;
6924
- width: 100%;
6925
-
6926
- > * {
6927
- font-size: 1.125rem;
6928
- font-weight: 500;
6929
- }
6930
-
6931
- ${LegendToggler} {
6932
- padding-right: 0;
6933
- }
6934
-
6926
+ const ContainerTitle = styled(Flex) `
6927
+ align-items: center;
6928
+ justify-content: space-between;
6929
+ width: 100%;
6930
+
6931
+ > * {
6932
+ font-size: 1.125rem;
6933
+ font-weight: 500;
6934
+ }
6935
+
6936
+ ${LegendToggler} {
6937
+ padding-right: 0;
6938
+ }
6939
+
6935
6940
  ${({ simple }) => simple &&
6936
- css `
6937
- justify-content: flex-start;
6938
-
6939
- ${ContainerIconTitle} {
6940
- font-size: 0.75rem;
6941
- }
6942
-
6943
- ${LegendToggler} {
6944
- margin-left: 0;
6945
- padding-left: 0.25rem;
6946
- }
6947
- `}
6941
+ css `
6942
+ justify-content: flex-start;
6943
+
6944
+ ${ContainerIconTitle} {
6945
+ font-size: 0.75rem;
6946
+ }
6947
+
6948
+ ${LegendToggler} {
6949
+ margin-left: 0;
6950
+ padding-left: 0.25rem;
6951
+ }
6952
+ `}
6948
6953
  `;
6949
6954
 
6950
6955
  const TitleContainer = memo(({ containerId, templateName, layerNames, fontColor, expandable, expanded, isVisible, elementConfig, renderElement, type, }) => {
@@ -7018,82 +7023,82 @@ const CameraContainer = memo(({ elementConfig, type, renderElement }) => {
7018
7023
  return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(Container, { id: id, style: style, children: [jsx(ContainerAlias, { hasBottomMargin: true, children: renderElement({ id: "alias" }) }), jsx(ContainerValue, { children: renderElement({ id: "value", wrap: false }) })] }))] }));
7019
7024
  });
7020
7025
 
7021
- const TabAnchor = styled.div `
7022
- position: absolute;
7023
- top: -1.5rem;
7024
- right: 0;
7026
+ const TabAnchor = styled.div `
7027
+ position: absolute;
7028
+ top: -1.5rem;
7029
+ right: 0;
7025
7030
  `;
7026
- const TabValue = styled(Flex) `
7027
- flex-wrap: nowrap;
7031
+ const TabValue = styled(Flex) `
7032
+ flex-wrap: nowrap;
7028
7033
  `;
7029
- const noBgMixin = css `
7030
- background-color: transparent;
7031
- border-radius: 0;
7032
- border-bottom: 0.125rem solid
7033
- ${({ active, bgColor, theme: { palette } }) => (active ? bgColor || palette.primary : palette.element)};
7034
-
7035
- ${TabValue},
7036
- span[kind] {
7037
- color: ${({ active, bgColor, theme: { palette } }) => active ? bgColor || palette.primary : palette.textSecondary};
7038
- }
7039
-
7040
- &&& svg {
7041
- path,
7042
- line,
7043
- circle {
7044
- fill: ${({ active, bgColor, theme: { palette } }) => active ? bgColor || palette.primary : palette.textSecondary};
7045
- }
7046
- }
7047
-
7048
- :not(:last-child) {
7049
- margin-right: 0;
7050
- }
7034
+ const noBgMixin = css `
7035
+ background-color: transparent;
7036
+ border-radius: 0;
7037
+ border-bottom: 0.125rem solid
7038
+ ${({ active, bgColor, theme: { palette } }) => (active ? bgColor || palette.primary : palette.element)};
7039
+
7040
+ ${TabValue},
7041
+ span[kind] {
7042
+ color: ${({ active, bgColor, theme: { palette } }) => active ? bgColor || palette.primary : palette.textSecondary};
7043
+ }
7044
+
7045
+ &&& svg {
7046
+ path,
7047
+ line,
7048
+ circle {
7049
+ fill: ${({ active, bgColor, theme: { palette } }) => active ? bgColor || palette.primary : palette.textSecondary};
7050
+ }
7051
+ }
7052
+
7053
+ :not(:last-child) {
7054
+ margin-right: 0;
7055
+ }
7051
7056
  `;
7052
- const TabContainer = styled.a `
7053
- display: flex;
7054
- flex-direction: ${({ column }) => (column ? "column" : "row")};
7055
- align-items: center;
7056
- justify-content: center;
7057
- flex-wrap: nowrap;
7058
- padding: ${({ onlyIcon }) => (onlyIcon ? 1 : 0.5)}rem 1rem;
7059
- background-color: ${({ active, bgColor, theme: { palette } }) => active ? bgColor || palette.primary : palette.element};
7060
- border-radius: ${({ column, radius, theme: { borderRadius } }) => radius ? `${radius}px` : column ? borderRadius.medium : borderRadius.xLarge};
7061
- text-decoration: none;
7062
-
7063
- :not(:last-child) {
7064
- margin-right: 0.5rem;
7065
- }
7066
-
7067
- ${TabValue} {
7068
- margin-top: ${({ column }) => (column ? 0.5 : 0)}rem;
7069
- margin-left: ${({ column, hasIcon }) => (column || !hasIcon ? 0 : 0.5)}rem;
7070
- font-size: ${({ column }) => (column ? 0.75 : 0.875)}rem;
7071
- white-space: nowrap;
7072
- }
7073
-
7074
- ${TabValue},
7075
- span[kind] {
7076
- color: ${({ active, theme: { palette } }) => (active ? palette.textContrast : palette.textSecondary)};
7077
- }
7078
-
7079
- ${SvgContainer$1} {
7080
- height: 1rem;
7081
- }
7082
-
7083
- svg,
7084
- img {
7085
- max-width: 1rem;
7086
- max-height: 1rem;
7087
- }
7088
-
7089
- ${({ noBg }) => noBg && noBgMixin};
7057
+ const TabContainer = styled.a `
7058
+ display: flex;
7059
+ flex-direction: ${({ column }) => (column ? "column" : "row")};
7060
+ align-items: center;
7061
+ justify-content: center;
7062
+ flex-wrap: nowrap;
7063
+ padding: ${({ onlyIcon }) => (onlyIcon ? 1 : 0.5)}rem 1rem;
7064
+ background-color: ${({ active, bgColor, theme: { palette } }) => active ? bgColor || palette.primary : palette.element};
7065
+ border-radius: ${({ column, radius, theme: { borderRadius } }) => radius ? `${radius}px` : column ? borderRadius.medium : borderRadius.xLarge};
7066
+ text-decoration: none;
7067
+
7068
+ :not(:last-child) {
7069
+ margin-right: 0.5rem;
7070
+ }
7071
+
7072
+ ${TabValue} {
7073
+ margin-top: ${({ column }) => (column ? 0.5 : 0)}rem;
7074
+ margin-left: ${({ column, hasIcon }) => (column || !hasIcon ? 0 : 0.5)}rem;
7075
+ font-size: ${({ column }) => (column ? 0.75 : 0.875)}rem;
7076
+ white-space: nowrap;
7077
+ }
7078
+
7079
+ ${TabValue},
7080
+ span[kind] {
7081
+ color: ${({ active, theme: { palette } }) => (active ? palette.textContrast : palette.textSecondary)};
7082
+ }
7083
+
7084
+ ${SvgContainer$1} {
7085
+ height: 1rem;
7086
+ }
7087
+
7088
+ svg,
7089
+ img {
7090
+ max-width: 1rem;
7091
+ max-height: 1rem;
7092
+ }
7093
+
7094
+ ${({ noBg }) => noBg && noBgMixin};
7090
7095
  `;
7091
- const SwiperContainer = styled.div `
7092
- width: 100%;
7093
-
7094
- .swiper-wrapper {
7095
- display: flex;
7096
- }
7096
+ const SwiperContainer = styled.div `
7097
+ width: 100%;
7098
+
7099
+ .swiper-wrapper {
7100
+ display: flex;
7101
+ }
7097
7102
  `;
7098
7103
 
7099
7104
  const TabsContainer = memo(({ elementConfig, type }) => {
@@ -7121,96 +7126,96 @@ const TabsContainer = memo(({ elementConfig, type }) => {
7121
7126
  });
7122
7127
 
7123
7128
  const ContainerIconValue = styled(Flex) ``;
7124
- const RoundedBackgroundContainerWrapper = styled(Flex) `
7125
- position: relative;
7126
- flex-direction: ${({ $bigIcon }) => ($bigIcon ? "row" : "column")};
7127
- width: 9rem;
7128
- padding: 0.75rem 0.75rem 0.5rem;
7129
- background-color: ${({ theme: { palette } }) => palette.element};
7130
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.large};
7131
- flex-wrap: nowrap;
7132
-
7133
- && {
7134
- margin-bottom: 0.5rem;
7135
- }
7136
-
7129
+ const RoundedBackgroundContainerWrapper = styled(Flex) `
7130
+ position: relative;
7131
+ flex-direction: ${({ $bigIcon }) => ($bigIcon ? "row" : "column")};
7132
+ width: 9rem;
7133
+ padding: 0.75rem 0.75rem 0.5rem;
7134
+ background-color: ${({ theme: { palette } }) => palette.element};
7135
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.large};
7136
+ flex-wrap: nowrap;
7137
+
7138
+ && {
7139
+ margin-bottom: 0.5rem;
7140
+ }
7141
+
7137
7142
  ${({ $center }) => $center &&
7138
- css `
7139
- align-items: center;
7140
-
7141
- > * {
7142
- display: flex;
7143
- justify-content: center;
7144
- text-align: center;
7145
- width: 100%;
7146
- }
7147
- `};
7148
-
7143
+ css `
7144
+ align-items: center;
7145
+
7146
+ > * {
7147
+ display: flex;
7148
+ justify-content: center;
7149
+ text-align: center;
7150
+ width: 100%;
7151
+ }
7152
+ `};
7153
+
7149
7154
  ${({ $color }) => $color &&
7150
- css `
7151
- background-color: ${transparentizeColor($color, 6)};
7152
-
7153
- * {
7154
- color: ${$color};
7155
- }
7156
- `};
7157
-
7158
- ${ContainerIcon}, ${SvgContainer$1} {
7159
- margin-bottom: 0.25rem;
7160
- }
7161
-
7155
+ css `
7156
+ background-color: ${transparentizeColor($color, 6)};
7157
+
7158
+ * {
7159
+ color: ${$color};
7160
+ }
7161
+ `};
7162
+
7163
+ ${ContainerIcon}, ${SvgContainer$1} {
7164
+ margin-bottom: 0.25rem;
7165
+ }
7166
+
7162
7167
  ${({ $bigIcon }) => $bigIcon &&
7163
- css `
7164
- ${ContainerIcon}, ${SvgContainer$1} {
7165
- position: absolute;
7166
- top: 0.75rem;
7167
- right: 0.75rem;
7168
- width: 3rem;
7169
- opacity: 0.12;
7170
-
7171
- :after {
7172
- font-size: 3rem;
7173
- }
7174
- }
7175
- `};
7176
-
7177
- ${ContainerIconValue} {
7178
- align-items: center;
7179
- flex-direction: column;
7180
-
7168
+ css `
7169
+ ${ContainerIcon}, ${SvgContainer$1} {
7170
+ position: absolute;
7171
+ top: 0.75rem;
7172
+ right: 0.75rem;
7173
+ width: 3rem;
7174
+ opacity: 0.12;
7175
+
7176
+ :after {
7177
+ font-size: 3rem;
7178
+ }
7179
+ }
7180
+ `};
7181
+
7182
+ ${ContainerIconValue} {
7183
+ align-items: center;
7184
+ flex-direction: column;
7185
+
7181
7186
  ${({ $big }) => $big &&
7182
- css `
7183
- flex-direction: row;
7184
- margin-bottom: 0.5rem;
7185
-
7186
- > * {
7187
- text-align: left;
7188
- }
7189
-
7190
- span[kind] {
7191
- margin-right: 0.5rem;
7192
- }
7193
-
7194
- ${ContainerValue} {
7195
- width: auto;
7196
- }
7197
- `};
7198
- }
7199
-
7200
- ${ContainerValue} {
7201
- flex-direction: ${({ $inlineUnits }) => ($inlineUnits ? "row" : "column")};
7202
- justify-content: ${({ $big }) => ($big ? "flex-start" : "center")};
7203
- align-items: ${({ $inlineUnits }) => ($inlineUnits ? "center" : "flex-start")};
7204
- line-height: 1;
7205
- }
7206
-
7207
- ${ContainerUnits} {
7208
- margin-left: ${({ $inlineUnits }) => ($inlineUnits ? "0.25rem" : 0)};
7209
- }
7210
-
7211
- ${ContainerAlias} {
7212
- margin-top: 0.25rem;
7213
- }
7187
+ css `
7188
+ flex-direction: row;
7189
+ margin-bottom: 0.5rem;
7190
+
7191
+ > * {
7192
+ text-align: left;
7193
+ }
7194
+
7195
+ span[kind] {
7196
+ margin-right: 0.5rem;
7197
+ }
7198
+
7199
+ ${ContainerValue} {
7200
+ width: auto;
7201
+ }
7202
+ `};
7203
+ }
7204
+
7205
+ ${ContainerValue} {
7206
+ flex-direction: ${({ $inlineUnits }) => ($inlineUnits ? "row" : "column")};
7207
+ justify-content: ${({ $big }) => ($big ? "flex-start" : "center")};
7208
+ align-items: ${({ $inlineUnits }) => ($inlineUnits ? "center" : "flex-start")};
7209
+ line-height: 1;
7210
+ }
7211
+
7212
+ ${ContainerUnits} {
7213
+ margin-left: ${({ $inlineUnits }) => ($inlineUnits ? "0.25rem" : 0)};
7214
+ }
7215
+
7216
+ ${ContainerAlias} {
7217
+ margin-top: 0.25rem;
7218
+ }
7214
7219
  `;
7215
7220
 
7216
7221
  const ALIAS_DEFAULT_MAX_LENGTH = 28;
@@ -7257,20 +7262,20 @@ const AddFeatureContainer = memo(({ elementConfig }) => {
7257
7262
  .map(({ options }, index) => (jsx(AddFeatureButton, { icon: options?.icon, title: options?.title, layerName: options?.layerName, geometryType: options?.geometryType }, index))) }));
7258
7263
  });
7259
7264
 
7260
- const LayersContainerWrapper = styled(Container) `
7261
- ${DraggableTreeContainer} {
7262
- width: calc(100% + 3rem);
7263
- margin: -0.75rem -1.5rem 0;
7264
- }
7265
-
7266
- ${LayerListContainer} {
7267
- height: auto;
7268
- }
7269
-
7270
- ${LayerGroupList} {
7271
- margin: ${({ isPresentationMode }) => (isPresentationMode ? 0 : "0 -1.25rem 0 -1rem")};
7272
- padding: 0;
7273
- }
7265
+ const LayersContainerWrapper = styled(Container) `
7266
+ ${DraggableTreeContainer} {
7267
+ width: calc(100% + 3rem);
7268
+ margin: -0.75rem -1.5rem 0;
7269
+ }
7270
+
7271
+ ${LayerListContainer} {
7272
+ height: auto;
7273
+ }
7274
+
7275
+ ${LayerGroupList} {
7276
+ margin: ${({ isPresentationMode }) => (isPresentationMode ? 0 : "0 -1.25rem 0 -1rem")};
7277
+ padding: 0;
7278
+ }
7274
7279
  `;
7275
7280
 
7276
7281
  const LayersContainer = memo(({ type, elementConfig, renderElement }) => {
@@ -7305,9 +7310,9 @@ const UploadContainer = memo(({ type, elementConfig, renderElement }) => {
7305
7310
  return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && renderElement({ id: "uploader", wrap: false })] }));
7306
7311
  });
7307
7312
 
7308
- const StatusBadge = styled(Chip) `
7309
- background-color: ${({ bgColor }) => bgColor};
7310
- color: ${({ theme }) => theme.palette.iconContrast};
7313
+ const StatusBadge = styled(Chip) `
7314
+ background-color: ${({ bgColor }) => bgColor};
7315
+ color: ${({ theme }) => theme.palette.iconContrast};
7311
7316
  `;
7312
7317
 
7313
7318
  const STATUS_TRANSLATION_KEYS = {
@@ -7359,22 +7364,22 @@ var EditGeometryType;
7359
7364
  EditGeometryType["Raster"] = "raster";
7360
7365
  })(EditGeometryType || (EditGeometryType = {}));
7361
7366
 
7362
- const StyledButton = styled(FlatButton) `
7363
- display: flex;
7364
- align-items: center;
7365
-
7366
- ${({ status = RemoteTaskStatus.Unknown, statusColors, themeName }) => !!statusColors?.[status] && css `
7367
- transition: background-color ${transition.toggle};
7368
- background-color: ${statusColors[status]};
7369
-
7370
- :hover {
7371
- background-color: ${adjustColor(statusColors[status], themeName === ThemeName.Dark ? -5 : 5)};
7372
- }
7373
-
7374
- :active {
7375
- background-color: ${adjustColor(statusColors[status], themeName === ThemeName.Dark ? -10 : 10)};
7376
- }
7377
- `}
7367
+ const StyledButton = styled(FlatButton) `
7368
+ display: flex;
7369
+ align-items: center;
7370
+
7371
+ ${({ status = RemoteTaskStatus.Unknown, statusColors, themeName }) => !!statusColors?.[status] && css `
7372
+ transition: background-color ${transition.toggle};
7373
+ background-color: ${statusColors[status]};
7374
+
7375
+ :hover {
7376
+ background-color: ${adjustColor(statusColors[status], themeName === ThemeName.Dark ? -5 : 5)};
7377
+ }
7378
+
7379
+ :active {
7380
+ background-color: ${adjustColor(statusColors[status], themeName === ThemeName.Dark ? -10 : 10)};
7381
+ }
7382
+ `}
7378
7383
  `;
7379
7384
 
7380
7385
  const StatusWaitingButton = ({ title, icon = "play", status, statusColors, isWaiting, isDisabled, onClick }) => {
@@ -7538,23 +7543,23 @@ const EditDropdownContainer = ({ type, elementConfig, renderElement, }) => {
7538
7543
  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: 1000, label: control.label, placeholder: control.placeholder, options: optionsList, value: value, width: `${control.width ?? DEFAULT_DROPDOWN_WIDTH}px`, onChange: ([option]) => onChange(option.value) }) })] }));
7539
7544
  };
7540
7545
 
7541
- const CheckboxWrapper = styled(ContainerValue) `
7542
- flex-wrap: wrap;
7543
-
7544
- && > label {
7545
- cursor: pointer;
7546
- margin-bottom: 0.25rem;
7547
- }
7546
+ const CheckboxWrapper = styled(ContainerValue) `
7547
+ flex-wrap: wrap;
7548
+
7549
+ && > label {
7550
+ cursor: pointer;
7551
+ margin-bottom: 0.25rem;
7552
+ }
7548
7553
  `;
7549
- const ChipsWrapper = styled(ContainerValue) `
7550
- flex-wrap: wrap;
7551
-
7552
- && > span {
7553
- cursor: pointer;
7554
- margin: 0 0.25rem 0.25rem 0;
7555
- padding: 0.25rem 0.5rem;
7556
- border-radius: 0.25rem;
7557
- }
7554
+ const ChipsWrapper = styled(ContainerValue) `
7555
+ flex-wrap: wrap;
7556
+
7557
+ && > span {
7558
+ cursor: pointer;
7559
+ margin: 0 0.25rem 0.25rem 0;
7560
+ padding: 0.25rem 0.5rem;
7561
+ border-radius: 0.25rem;
7562
+ }
7558
7563
  `;
7559
7564
 
7560
7565
  const EditChipsContainer = ({ type, elementConfig, renderElement, }) => {
@@ -7579,9 +7584,9 @@ const EditDateContainer = ({ type, elementConfig, renderElement, }) => {
7579
7584
  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 }) })] }));
7580
7585
  };
7581
7586
 
7582
- const ContainerDivider = styled(Divider) `
7583
- width: 100%;
7584
- border-color: ${({ theme: { palette }, $bgColor }) => $bgColor || palette.elementDeep};
7587
+ const ContainerDivider = styled(Divider) `
7588
+ width: 100%;
7589
+ border-color: ${({ theme: { palette }, $bgColor }) => $bgColor || palette.elementDeep};
7585
7590
  `;
7586
7591
 
7587
7592
  const DividerContainer = memo(({ elementConfig, config }) => {
@@ -7631,235 +7636,234 @@ const getContainerComponent = (innerTemplateName) => innerTemplateName
7631
7636
  var img$3 = "data:image/png;base64,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";
7632
7637
 
7633
7638
  const getMaskColor = (isDark) => (isDark ? "0, 0, 0" : "255, 255, 255");
7634
- const DefaultHeaderContainer = styled(Flex) `
7635
- flex-direction: column;
7636
- position: relative;
7637
- flex-shrink: 0;
7638
- min-height: 8.175rem;
7639
- margin-bottom: -1.5rem;
7640
- padding: 1.5rem 1.5rem 0;
7641
- border-top-left-radius: 0.5rem;
7642
- border-top-right-radius: 0.5rem;
7643
- overflow: hidden;
7644
-
7645
- > * {
7646
- z-index: 1;
7647
- }
7648
-
7649
- &::before {
7650
- content: "";
7651
- position: absolute;
7652
- top: 0;
7653
- left: 0;
7654
- width: 100%;
7655
- height: 100%;
7656
-
7639
+ const DefaultHeaderContainer = styled(Flex) `
7640
+ flex-direction: column;
7641
+ position: relative;
7642
+ flex-shrink: 0;
7643
+ min-height: 8.175rem;
7644
+ margin-bottom: -1.5rem;
7645
+ padding: 1.5rem 1.5rem 0;
7646
+ border-top-left-radius: 0.5rem;
7647
+ border-top-right-radius: 0.5rem;
7648
+ overflow: hidden;
7649
+
7650
+ > * {
7651
+ z-index: 1;
7652
+ }
7653
+
7654
+ &::before {
7655
+ content: "";
7656
+ position: absolute;
7657
+ top: 0;
7658
+ left: 0;
7659
+ width: 100%;
7660
+ height: 100%;
7661
+
7657
7662
  ${({ image, isDark }) => image
7658
- ? css `
7659
- background: url(${image}) 0 0 no-repeat;
7660
- background-size: cover;
7663
+ ? css `
7664
+ background: url(${image}) 0 0 no-repeat;
7665
+ background-size: cover;
7661
7666
  `
7662
- : css `
7663
- background: url(${img$3}) 50% 0 no-repeat;
7664
- opacity: ${isDark ? 1 : 0.5};
7665
- `}
7666
- }
7667
-
7667
+ : css `
7668
+ background: url(${img$3}) 50% 0 no-repeat;
7669
+ opacity: ${isDark ? 1 : 0.5};
7670
+ `}
7671
+ }
7672
+
7668
7673
  ${({ image, isDark }) => image &&
7669
- css `
7670
- &::before {
7671
- -webkit-mask-image: linear-gradient(
7672
- to bottom,
7673
- rgba(${getMaskColor(isDark)}, 1),
7674
- rgba(${getMaskColor(isDark)}, 0)
7675
- );
7676
- mask-image: linear-gradient(to bottom, rgba(${getMaskColor(isDark)}, 1), rgba(${getMaskColor(isDark)}, 0));
7677
- }
7678
- `}
7679
- ${LinearProgress} {
7680
- position: absolute;
7681
- top: 0;
7682
- left: 0;
7683
- }
7674
+ css `
7675
+ &::before {
7676
+ -webkit-mask-image: linear-gradient(
7677
+ to bottom,
7678
+ rgba(${getMaskColor(isDark)}, 1),
7679
+ rgba(${getMaskColor(isDark)}, 0)
7680
+ );
7681
+ mask-image: linear-gradient(to bottom, rgba(${getMaskColor(isDark)}, 1), rgba(${getMaskColor(isDark)}, 0));
7682
+ }
7683
+ `}
7684
+ ${LinearProgress} {
7685
+ position: absolute;
7686
+ top: 0;
7687
+ left: 0;
7688
+ }
7684
7689
  `;
7685
- const TopContainer = styled(Flex) `
7686
- z-index: 1;
7687
- position: relative;
7688
- justify-content: space-between;
7689
- flex-wrap: nowrap;
7690
- width: 100%;
7691
- align-items: flex-start;
7692
- `;
7693
- const TopContainerButtons = styled(Flex) `
7694
- align-items: center;
7695
- width: auto;
7696
- margin-right: -0.5rem;
7697
-
7698
- button {
7699
- width: auto;
7700
- height: 1rem;
7701
- padding: 0 0.5rem;
7702
- }
7690
+ const TopContainer = styled(Flex) `
7691
+ z-index: 1;
7692
+ position: relative;
7693
+ justify-content: space-between;
7694
+ flex-wrap: nowrap;
7695
+ width: 100%;
7696
+ align-items: flex-start;
7697
+ `;
7698
+ const TopContainerButtons = styled(Flex) `
7699
+ align-items: center;
7700
+ width: auto;
7701
+ margin-right: -0.5rem;
7702
+
7703
+ button {
7704
+ width: auto;
7705
+ height: 1rem;
7706
+ padding: 0 0.5rem;
7707
+ }
7703
7708
  `;
7704
- const LogoContainer = styled(Flex) `
7705
- max-width: calc(100% - 1.4rem);
7706
- max-height: 1.875rem;
7707
- flex-grow: 1;
7708
- font-size: 0;
7709
-
7710
- & > span::after {
7711
- font-size: 2rem;
7712
- }
7713
-
7714
- img {
7715
- max-height: 1.875rem;
7716
- }
7709
+ const LogoContainer = styled(Flex) `
7710
+ max-width: calc(100% - 1.4rem);
7711
+ max-height: 1.875rem;
7712
+ flex-grow: 1;
7713
+ font-size: 0;
7714
+
7715
+ & > span::after {
7716
+ font-size: 2rem;
7717
+ }
7718
+
7719
+ img {
7720
+ max-height: 1.875rem;
7721
+ }
7717
7722
  `;
7718
- const PageTitle = styled(H2) `
7719
- cursor: pointer;
7720
- text-align: left;
7721
- flex: 1 1 auto;
7722
- min-width: 0;
7723
- margin: 0;
7724
- font-size: 1.25rem;
7725
- font-weight: 600;
7726
- pointer-events: initial;
7727
- font-family: "Nunito Sans", serif;
7728
-
7729
- > * {
7730
- white-space: nowrap;
7731
- overflow: hidden;
7732
- text-overflow: ellipsis;
7733
- }
7723
+ const PageTitle = styled(H2) `
7724
+ cursor: pointer;
7725
+ text-align: left;
7726
+ flex: 1 1 auto;
7727
+ min-width: 0;
7728
+ margin: 0;
7729
+ font-size: 1.25rem;
7730
+ font-weight: 600;
7731
+ pointer-events: initial;
7732
+ font-family: "Nunito Sans", serif;
7733
+
7734
+ > * {
7735
+ white-space: nowrap;
7736
+ overflow: hidden;
7737
+ text-overflow: ellipsis;
7738
+ }
7734
7739
  `;
7735
- const PageTitleContainer = styled(Flex) `
7736
- flex-grow: 1;
7737
- align-items: center;
7738
-
7739
- ${PageTitle} {
7740
- max-width: 15.75rem;
7741
- }
7742
-
7743
- &&& button {
7744
- width: 0;
7745
- overflow: hidden;
7746
-
7747
- span[kind] {
7748
- display: flex;
7749
- align-items: center;
7750
- justify-content: center;
7751
- width: 0.75rem;
7752
-
7753
- :after {
7754
- font-size: 0.75rem;
7755
- color: ${({ theme: { palette } }) => palette.textDisabled};
7756
- transition: color ${transition.hover};
7757
- }
7758
- }
7759
-
7760
- &:hover,
7761
- &:active {
7762
- span[kind]:after {
7763
- color: ${({ theme: { palette } }) => palette.textPrimary};
7764
- }
7765
- }
7766
- }
7767
-
7768
- :hover {
7769
- ${PageTitle} {
7770
- max-width: 14.25rem;
7771
- }
7772
-
7773
- &&& button {
7774
- width: 1.5rem;
7775
- }
7776
- }
7740
+ const PageTitleContainer = styled(Flex) `
7741
+ flex-grow: 1;
7742
+ align-items: center;
7743
+
7744
+ ${PageTitle} {
7745
+ max-width: 15.75rem;
7746
+ }
7747
+
7748
+ &&& button {
7749
+ width: 0;
7750
+ overflow: hidden;
7751
+
7752
+ span[kind] {
7753
+ display: flex;
7754
+ align-items: center;
7755
+ justify-content: center;
7756
+ width: 0.75rem;
7757
+
7758
+ :after {
7759
+ font-size: 0.75rem;
7760
+ color: ${({ theme: { palette } }) => palette.textDisabled};
7761
+ transition: color ${transition.hover};
7762
+ }
7763
+ }
7764
+
7765
+ &:hover,
7766
+ &:active {
7767
+ span[kind]:after {
7768
+ color: ${({ theme: { palette } }) => palette.textPrimary};
7769
+ }
7770
+ }
7771
+ }
7772
+
7773
+ :hover {
7774
+ ${PageTitle} {
7775
+ max-width: 14.25rem;
7776
+ }
7777
+
7778
+ &&& button {
7779
+ width: 1.5rem;
7780
+ }
7781
+ }
7777
7782
  `;
7778
7783
 
7779
7784
  const DashboardDefaultHeader = memo(() => {
7780
- const { title, pageId, image, icon, tooltip, themeName } = useDashboardHeader();
7785
+ const { title, pageId, image, icon, tooltip, themeName, onClickLogo } = useDashboardHeader();
7781
7786
  const { toggleLayersVisibility, components: { ProjectPanelMenu, ProjectPagesMenu }, } = useWidgetContext();
7782
- const backgroundImage = useFetchImageWithAuth(image ? getResourceUrl(image) : null);
7783
- return (jsxs(DefaultHeaderContainer, { image: backgroundImage ?? undefined, isDark: themeName === ThemeName.Dark, children: [!pageId && jsx(LinearProgress, {}), jsxs(Flex, { column: true, gap: "1rem", children: [jsx(FlexSpan, { children: jsxs(TopContainer, { children: [jsx(LogoContainer, { children: icon }), jsx(TopContainerButtons, { children: jsx(ProjectPanelMenu, {}) })] }) }), jsx(FlexSpan, { children: jsx(Flex, { column: true, gap: "0.25rem", children: jsx(FlexSpan, { children: jsxs(Flex, { alignItems: "center", children: [jsxs(PageTitleContainer, { children: [jsx(Tooltip$1, { arrow: true, content: tooltip, children: ref => (jsx(PageTitle, { ref: ref, onClick: toggleLayersVisibility, children: title })) }), jsx(ProjectPagesMenu, {})] }), jsx(FlexSpan, { children: jsx(Pagination, {}) })] }) }) }) })] })] }));
7787
+ return (jsxs(DefaultHeaderContainer, { image: image, isDark: themeName === ThemeName.Dark, children: [!pageId && jsx(LinearProgress, {}), jsxs(Flex, { column: true, gap: "1rem", children: [jsx(FlexSpan, { children: jsxs(TopContainer, { children: [jsx(LogoContainer, { onClick: onClickLogo, children: icon }), jsx(TopContainerButtons, { children: jsx(ProjectPanelMenu, {}) })] }) }), jsx(FlexSpan, { children: jsx(Flex, { column: true, gap: "0.25rem", children: jsx(FlexSpan, { children: jsxs(Flex, { alignItems: "center", children: [jsxs(PageTitleContainer, { children: [jsx(Tooltip$1, { arrow: true, content: tooltip, children: ref => (jsx(PageTitle, { ref: ref, onClick: toggleLayersVisibility, children: title })) }), jsx(ProjectPagesMenu, {})] }), jsx(FlexSpan, { children: jsx(Pagination, {}) })] }) }) }) })] })] }));
7784
7788
  });
7785
7789
 
7786
- const HeaderFrontView = styled(Flex) `
7787
- z-index: 10;
7788
- position: relative;
7789
- justify-content: space-between;
7790
- align-items: ${({ isDefault }) => (isDefault ? "center" : "flex-start")};
7791
- width: 100%;
7792
- font: ${({ theme: { fonts } }) => fonts.subtitle};
7793
- `;
7794
- const HeaderContainer = styled(FlexSpan) `
7795
- display: flex;
7796
- flex-grow: 1;
7797
- flex-wrap: nowrap;
7798
- width: calc(100% - 48px);
7799
- `;
7800
- const FeatureTitleContainer = styled.div `
7801
- display: -webkit-box;
7802
- max-width: 100%;
7803
- width: 100%;
7804
- margin: 0.5rem 0;
7805
- -webkit-line-clamp: 2;
7806
- -webkit-box-orient: vertical;
7807
- overflow: hidden;
7808
- text-overflow: ellipsis;
7809
- color: ${({ theme: { palette } }) => palette.textPrimary};
7810
-
7811
- & > ${FlexSpan} {
7812
- cursor: ${({ clickable }) => clickable && "pointer"};
7813
-
7814
- &:hover {
7815
- color: ${({ clickable, theme: { palette } }) => clickable && palette.primary};
7816
- }
7817
- }
7790
+ const HeaderFrontView = styled(Flex) `
7791
+ z-index: 10;
7792
+ position: relative;
7793
+ justify-content: space-between;
7794
+ align-items: ${({ isDefault }) => (isDefault ? "center" : "flex-start")};
7795
+ width: 100%;
7796
+ font: ${({ theme: { fonts } }) => fonts.subtitle};
7797
+ `;
7798
+ const HeaderContainer = styled(FlexSpan) `
7799
+ display: flex;
7800
+ flex-grow: 1;
7801
+ flex-wrap: nowrap;
7802
+ width: calc(100% - 48px);
7803
+ `;
7804
+ const FeatureTitleContainer = styled.div `
7805
+ display: -webkit-box;
7806
+ max-width: 100%;
7807
+ width: 100%;
7808
+ margin: 0.5rem 0;
7809
+ -webkit-line-clamp: 2;
7810
+ -webkit-box-orient: vertical;
7811
+ overflow: hidden;
7812
+ text-overflow: ellipsis;
7813
+ color: ${({ theme: { palette } }) => palette.textPrimary};
7814
+
7815
+ & > ${FlexSpan} {
7816
+ cursor: ${({ clickable }) => clickable && "pointer"};
7817
+
7818
+ &:hover {
7819
+ color: ${({ clickable, theme: { palette } }) => clickable && palette.primary};
7820
+ }
7821
+ }
7818
7822
  `;
7819
- const LayerDescription = styled(Description) `
7820
- width: calc(100% - 4rem);
7821
- display: -webkit-box;
7822
- -webkit-line-clamp: 2;
7823
- -webkit-box-orient: vertical;
7824
- overflow: hidden;
7825
- text-overflow: ellipsis;
7823
+ const LayerDescription = styled(Description) `
7824
+ width: calc(100% - 4rem);
7825
+ display: -webkit-box;
7826
+ -webkit-line-clamp: 2;
7827
+ -webkit-box-orient: vertical;
7828
+ overflow: hidden;
7829
+ text-overflow: ellipsis;
7826
7830
  `;
7827
- const HeaderTitleContainer = styled(Flex) `
7828
- flex-direction: column;
7829
- width: 100%;
7831
+ const HeaderTitleContainer = styled(Flex) `
7832
+ flex-direction: column;
7833
+ width: 100%;
7830
7834
  `;
7831
- const RowHeaderMixin = css `
7832
- &&& {
7833
- min-height: auto;
7834
-
7835
- ${FeatureTitleContainer}, ${LayerDescription} {
7836
- text-align: left;
7837
- }
7838
- }
7839
-
7840
- ${HeaderContainer} {
7841
- flex-direction: row;
7842
- }
7843
-
7844
- ${FeatureTitleContainer} {
7845
- max-width: calc(100% - 3.8rem);
7846
- }
7835
+ const RowHeaderMixin = css `
7836
+ &&& {
7837
+ min-height: auto;
7838
+
7839
+ ${FeatureTitleContainer}, ${LayerDescription} {
7840
+ text-align: left;
7841
+ }
7842
+ }
7843
+
7844
+ ${HeaderContainer} {
7845
+ flex-direction: row;
7846
+ }
7847
+
7848
+ ${FeatureTitleContainer} {
7849
+ max-width: calc(100% - 3.8rem);
7850
+ }
7847
7851
  `;
7848
- const Header = styled(Flex) `
7849
- z-index: 1;
7850
- position: relative;
7851
- top: 0;
7852
- flex-shrink: 0;
7853
- overflow: hidden;
7854
- width: 100%;
7855
- padding: 0.5rem;
7856
-
7857
- ${({ $isRow }) => $isRow && RowHeaderMixin};
7852
+ const Header = styled(Flex) `
7853
+ z-index: 1;
7854
+ position: relative;
7855
+ top: 0;
7856
+ flex-shrink: 0;
7857
+ overflow: hidden;
7858
+ width: 100%;
7859
+ padding: 0.5rem;
7860
+
7861
+ ${({ $isRow }) => $isRow && RowHeaderMixin};
7858
7862
  `;
7859
- const DefaultHeaderWrapper = styled.div `
7860
- ${Header} {
7861
- padding: 0 1.5rem 1.5rem 0;
7862
- }
7863
+ const DefaultHeaderWrapper = styled.div `
7864
+ ${Header} {
7865
+ padding: 0 1.5rem 1.5rem 0;
7866
+ }
7863
7867
  `;
7864
7868
 
7865
7869
  const HeaderTitle = ({ noFeature }) => {
@@ -7887,24 +7891,24 @@ const HeaderTitle = ({ noFeature }) => {
7887
7891
  return (jsxs(HeaderTitleContainer, { children: [noFeature ? (jsx(FeatureTitleContainer, { children: t("noObjectFound", { ns: "dashboard", defaultValue: "Объектов не найдено" }) })) : (jsx(FeatureTitleContainer, { clickable: true, children: jsx(Tooltip$1, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsx(FlexSpan, { ref: ref, onClick: () => zoomToFeatures([feature]), children: resultTitle })) }) })), jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
7888
7892
  };
7889
7893
 
7890
- const LayerIconContainer = styled.div `
7891
- display: flex;
7892
- align-items: center;
7893
- justify-content: center;
7894
- min-width: 2rem;
7895
- margin-right: 0.5rem;
7894
+ const LayerIconContainer = styled.div `
7895
+ display: flex;
7896
+ align-items: center;
7897
+ justify-content: center;
7898
+ min-width: 2rem;
7899
+ margin-right: 0.5rem;
7896
7900
  `;
7897
- const AlertIconContainer = styled(Flex) `
7898
- align-items: center;
7899
- justify-content: center;
7900
- width: 2rem;
7901
- height: 2rem;
7902
-
7903
- ${Icon} {
7904
- :after {
7905
- color: ${({ theme: { palette } }) => palette.error};
7906
- }
7907
- }
7901
+ const AlertIconContainer = styled(Flex) `
7902
+ align-items: center;
7903
+ justify-content: center;
7904
+ width: 2rem;
7905
+ height: 2rem;
7906
+
7907
+ ${Icon} {
7908
+ :after {
7909
+ color: ${({ theme: { palette } }) => palette.error};
7910
+ }
7911
+ }
7908
7912
  `;
7909
7913
 
7910
7914
  var img$2 = "data:image/svg+xml,%3csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3crect width='32' height='32' fill='transparent'/%3e %3cpath d='M20.248 9.67787C18.5318 8.04035 15.9473 7.54977 13.7024 8.43543C11.4576 9.32109 9.99566 11.4081 10 13.721C10 18.2894 16 24 16 24C16 24 22 18.2894 22 13.721C22.0028 12.2054 21.3726 10.7509 20.248 9.67787Z' fill='url(%23paint0_linear_6459_10338)'/%3e %3ccircle cx='16' cy='14' r='2' fill='white'/%3e %3cdefs%3e %3clinearGradient id='paint0_linear_6459_10338' x1='10' y1='8' x2='25.36' y2='19.52' gradientUnits='userSpaceOnUse'%3e %3cstop stop-color='%230084D6'/%3e %3cstop offset='0.489583' stop-color='%230084D6'/%3e %3cstop offset='0.489683' stop-color='%2305A9FF'/%3e %3cstop offset='0.921875' stop-color='%2305A9FF'/%3e %3c/linearGradient%3e %3c/defs%3e%3c/svg%3e";
@@ -7937,54 +7941,54 @@ const FeatureCardDefaultHeader = ({ noFeature }) => {
7937
7941
  return (jsx(DefaultHeaderWrapper, { children: jsx(Header, { "$isRow": true, children: jsxs(HeaderFrontView, { isDefault: true, children: [jsxs(HeaderContainer, { children: [!!layerInfo?.name && jsx(LayerIcon, { layerInfo: layerInfo }), jsx(HeaderTitle, { noFeature: noFeature })] }), jsx(FeatureCardButtons, {})] }) }) }));
7938
7942
  };
7939
7943
 
7940
- const HeaderFontColorMixin$1 = css `
7941
- ${HeaderTitleContainer}, ${LayerDescription} {
7942
- color: ${({ $fontColor }) => $fontColor};
7943
- }
7944
+ const HeaderFontColorMixin$1 = css `
7945
+ ${HeaderTitleContainer}, ${LayerDescription} {
7946
+ color: ${({ $fontColor }) => $fontColor};
7947
+ }
7944
7948
  `;
7945
- const HeaderWrapperMixin$1 = css `
7946
- ${Header} {
7947
- min-height: 5.25rem;
7948
- }
7949
-
7950
- ${HeaderContainer} {
7951
- max-width: 100%;
7952
- width: 100%;
7953
- }
7954
-
7955
- ${FeatureControls} {
7956
- max-width: calc(100% - 2rem);
7957
- width: calc(100% - 2rem);
7958
- margin-top: -0.5rem;
7959
- padding-top: 1rem;
7960
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
7961
- }
7962
-
7963
- ${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin$1};
7949
+ const HeaderWrapperMixin$1 = css `
7950
+ ${Header} {
7951
+ min-height: 5.25rem;
7952
+ }
7953
+
7954
+ ${HeaderContainer} {
7955
+ max-width: 100%;
7956
+ width: 100%;
7957
+ }
7958
+
7959
+ ${FeatureControls} {
7960
+ max-width: calc(100% - 2rem);
7961
+ width: calc(100% - 2rem);
7962
+ margin-top: -0.5rem;
7963
+ padding-top: 1rem;
7964
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
7965
+ }
7966
+
7967
+ ${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin$1};
7964
7968
  `;
7965
- const GradientHeaderWrapper = styled.div `
7966
- ${Header} {
7967
- background: ${({ $bgColor }) => $bgColor || "radial-gradient(129.21% 133.22% at 51.94% 0%, #e8fffe 9.48%, #5fcaff 100%)"};
7968
- }
7969
-
7970
- ${HeaderContainer} {
7971
- align-items: center;
7972
- }
7973
-
7974
- ${HeaderTitleContainer} {
7975
- margin-left: 0;
7976
- text-align: center;
7977
- }
7978
-
7979
- ${FeatureTitleContainer} {
7980
- text-align: center;
7981
- }
7982
-
7983
- ${LayerDescription} {
7984
- text-align: center;
7985
- }
7986
-
7987
- ${HeaderWrapperMixin$1};
7969
+ const GradientHeaderWrapper = styled.div `
7970
+ ${Header} {
7971
+ background: ${({ $bgColor }) => $bgColor || "radial-gradient(129.21% 133.22% at 51.94% 0%, #e8fffe 9.48%, #5fcaff 100%)"};
7972
+ }
7973
+
7974
+ ${HeaderContainer} {
7975
+ align-items: center;
7976
+ }
7977
+
7978
+ ${HeaderTitleContainer} {
7979
+ margin-left: 0;
7980
+ text-align: center;
7981
+ }
7982
+
7983
+ ${FeatureTitleContainer} {
7984
+ text-align: center;
7985
+ }
7986
+
7987
+ ${LayerDescription} {
7988
+ text-align: center;
7989
+ }
7990
+
7991
+ ${HeaderWrapperMixin$1};
7988
7992
  `;
7989
7993
 
7990
7994
  const FeatureCardGradientHeader = ({ isRow }) => {
@@ -8003,80 +8007,80 @@ const FeatureCardGradientHeader = ({ isRow }) => {
8003
8007
  }) })] }), jsx(FeatureCardButtons, {})] }) }) }) }));
8004
8008
  };
8005
8009
 
8006
- const HeaderFontColorMixin = css `
8007
- ${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
8008
- color: ${({ $fontColor }) => $fontColor};
8009
- }
8010
- `;
8011
- const HeaderWrapperMixin = css `
8012
- ${Header} {
8013
- min-height: 5.25rem;
8014
- }
8015
-
8016
- ${HeaderContainer} {
8017
- max-width: 100%;
8018
- width: 100%;
8019
- }
8020
-
8021
- ${FeatureControls} {
8022
- max-width: calc(100% - 2rem);
8023
- width: calc(100% - 2rem);
8024
- margin-top: -0.5rem;
8025
- padding-top: 1rem;
8026
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
8027
- }
8028
-
8029
- ${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin};
8010
+ const HeaderFontColorMixin = css `
8011
+ ${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
8012
+ color: ${({ $fontColor }) => $fontColor};
8013
+ }
8030
8014
  `;
8031
- const HeaderIcon = styled(Flex) `
8032
- position: absolute;
8033
- top: 0;
8034
- right: 0;
8035
- justify-content: flex-end;
8036
- align-items: center;
8037
- min-width: 7.5rem;
8038
- height: 100%;
8039
-
8040
- span[kind]:after {
8041
- font-size: 7.5rem;
8042
- }
8043
-
8044
- span[kind]:after,
8045
- path,
8046
- line,
8047
- circle {
8048
- fill: rgba(255, 255, 255, 0.36);
8049
- }
8050
-
8051
- && > * {
8052
- display: flex;
8053
- align-items: center;
8054
- height: 100%;
8055
- }
8015
+ const HeaderWrapperMixin = css `
8016
+ ${Header} {
8017
+ min-height: 5.25rem;
8018
+ }
8019
+
8020
+ ${HeaderContainer} {
8021
+ max-width: 100%;
8022
+ width: 100%;
8023
+ }
8024
+
8025
+ ${FeatureControls} {
8026
+ max-width: calc(100% - 2rem);
8027
+ width: calc(100% - 2rem);
8028
+ margin-top: -0.5rem;
8029
+ padding-top: 1rem;
8030
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
8031
+ }
8032
+
8033
+ ${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin};
8034
+ `;
8035
+ const HeaderIcon = styled(Flex) `
8036
+ position: absolute;
8037
+ top: 0;
8038
+ right: 0;
8039
+ justify-content: flex-end;
8040
+ align-items: center;
8041
+ min-width: 7.5rem;
8042
+ height: 100%;
8043
+
8044
+ span[kind]:after {
8045
+ font-size: 7.5rem;
8046
+ }
8047
+
8048
+ span[kind]:after,
8049
+ path,
8050
+ line,
8051
+ circle {
8052
+ fill: rgba(255, 255, 255, 0.36);
8053
+ }
8054
+
8055
+ && > * {
8056
+ display: flex;
8057
+ align-items: center;
8058
+ height: 100%;
8059
+ }
8056
8060
  `;
8057
- const BigIconHeaderMixin = css `
8058
- ${HeaderIcon} {
8059
- min-width: 14rem;
8060
- right: -3rem;
8061
-
8062
- span[kind]:after {
8063
- font-size: 14rem;
8064
- }
8065
- }
8061
+ const BigIconHeaderMixin = css `
8062
+ ${HeaderIcon} {
8063
+ min-width: 14rem;
8064
+ right: -3rem;
8065
+
8066
+ span[kind]:after {
8067
+ font-size: 14rem;
8068
+ }
8069
+ }
8066
8070
  `;
8067
- const IconHeaderWrapper = styled.div `
8068
- ${Header} {
8069
- width: calc(100% + 0.5rem);
8070
- margin: -1rem -1rem 0.5rem -1rem;
8071
- padding: 1.5rem;
8072
- border-top-left-radius: 0.5rem;
8073
- border-top-right-radius: 0.5rem;
8074
- background: ${({ $bgColor }) => $bgColor || "linear-gradient(96.55deg, #FFFCD3 0%, #B4DC47 100%)"};
8075
- }
8076
-
8077
- ${HeaderWrapperMixin};
8078
-
8079
- ${({ $bigIcon }) => $bigIcon && BigIconHeaderMixin};
8071
+ const IconHeaderWrapper = styled.div `
8072
+ ${Header} {
8073
+ width: calc(100% + 0.5rem);
8074
+ margin: -1rem -1rem 0.5rem -1rem;
8075
+ padding: 1.5rem;
8076
+ border-top-left-radius: 0.5rem;
8077
+ border-top-right-radius: 0.5rem;
8078
+ background: ${({ $bgColor }) => $bgColor || "linear-gradient(96.55deg, #FFFCD3 0%, #B4DC47 100%)"};
8079
+ }
8080
+
8081
+ ${HeaderWrapperMixin};
8082
+
8083
+ ${({ $bigIcon }) => $bigIcon && BigIconHeaderMixin};
8080
8084
  `;
8081
8085
 
8082
8086
  const FeatureCardIconHeader = ({ isRow }) => {
@@ -8098,15 +8102,15 @@ const FeatureCardIconHeader = ({ isRow }) => {
8098
8102
  }) })] }) }) }));
8099
8103
  };
8100
8104
 
8101
- const ImageContainerButton = styled(FlatButton) `
8102
- min-height: 1.5rem;
8103
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.large};
8104
- background-color: ${({ theme: { palette } }) => palette.primary};
8105
- text-transform: none;
8106
-
8107
- :hover {
8108
- background-color: ${({ theme: { palette } }) => palette.primaryDeep};
8109
- }
8105
+ const ImageContainerButton = styled(FlatButton) `
8106
+ min-height: 1.5rem;
8107
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.large};
8108
+ background-color: ${({ theme: { palette } }) => palette.primary};
8109
+ text-transform: none;
8110
+
8111
+ :hover {
8112
+ background-color: ${({ theme: { palette } }) => palette.primaryDeep};
8113
+ }
8110
8114
  `;
8111
8115
 
8112
8116
  const ElementButton = memo(({ type, elementConfig }) => {
@@ -8118,157 +8122,157 @@ const ElementButton = memo(({ type, elementConfig }) => {
8118
8122
  return (jsx(ImageContainerButton, { onClick: () => window.open(attribute?.value), children: elementConfig.value || "" }));
8119
8123
  });
8120
8124
 
8121
- const AttributeGalleryContainer = styled.div `
8122
- && {
8123
- width: calc(100% + 3rem);
8124
- }
8125
-
8126
- min-height: 12.625rem;
8127
- background-color: ${({ theme: { palette } }) => palette.element};
8128
-
8129
- img {
8130
- width: 100%;
8131
- }
8132
- `;
8133
- const LinearProgressContainer = styled(Flex) `
8134
- align-items: center;
8135
- justify-content: center;
8136
- min-height: inherit;
8137
-
8138
- ${LinearProgress} {
8139
- max-width: 4rem;
8140
- }
8125
+ const AttributeGalleryContainer = styled.div `
8126
+ && {
8127
+ width: calc(100% + 3rem);
8128
+ }
8129
+
8130
+ min-height: 12.625rem;
8131
+ background-color: ${({ theme: { palette } }) => palette.element};
8132
+
8133
+ img {
8134
+ width: 100%;
8135
+ }
8141
8136
  `;
8142
- const NoLiveSnapshotContainer = styled(Flex) `
8143
- flex-direction: column;
8144
- align-items: center;
8145
-
8146
- span[kind="alert"] {
8147
- width: 2rem;
8148
- height: 2rem;
8149
-
8150
- &:after {
8151
- font-size: 2rem;
8152
- color: ${({ theme: { palette } }) => palette.elementDeep};
8153
- }
8154
- }
8155
-
8156
- ${Description} {
8157
- font-size: 0.75rem;
8158
- color: ${({ theme: { palette } }) => palette.textDisabled};
8159
- }
8137
+ const LinearProgressContainer = styled(Flex) `
8138
+ align-items: center;
8139
+ justify-content: center;
8140
+ min-height: inherit;
8141
+
8142
+ ${LinearProgress} {
8143
+ max-width: 4rem;
8144
+ }
8160
8145
  `;
8161
- const SmallPreviewControl = styled(IconButton) `
8162
- cursor: ${({ $isDisabled }) => ($isDisabled ? "default" : "pointer")};
8163
- z-index: 3;
8164
- position: absolute;
8165
- top: 50%;
8166
- width: 2.5rem;
8167
- height: 2.5rem;
8168
- margin-top: -1.25rem;
8169
- background-color: rgba(61, 61, 61, 0.8);
8170
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.smallest};
8171
-
8172
- span:after {
8173
- color: ${({ $isDisabled }) => ($isDisabled ? "rgba(255, 255, 255, 0.28)" : "rgba(255, 255, 255, 1)")};
8174
- transition: color ${transition.hover};
8175
- }
8146
+ const NoLiveSnapshotContainer = styled(Flex) `
8147
+ flex-direction: column;
8148
+ align-items: center;
8149
+
8150
+ span[kind="alert"] {
8151
+ width: 2rem;
8152
+ height: 2rem;
8153
+
8154
+ &:after {
8155
+ font-size: 2rem;
8156
+ color: ${({ theme: { palette } }) => palette.elementDeep};
8157
+ }
8158
+ }
8159
+
8160
+ ${Description} {
8161
+ font-size: 0.75rem;
8162
+ color: ${({ theme: { palette } }) => palette.textDisabled};
8163
+ }
8176
8164
  `;
8177
- const SmallPreviewCounter = styled(Flex) `
8178
- z-index: 3;
8179
- position: absolute;
8180
- bottom: 0.625rem;
8181
- left: 0;
8182
- width: 100%;
8183
- height: 1rem;
8184
- justify-content: center;
8185
-
8186
- > div {
8187
- background-color: rgba(61, 61, 61, 0.8);
8188
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
8189
- padding: 0 0.5rem;
8190
- font-size: 0.625rem;
8191
- line-height: 1rem;
8192
- color: #fff;
8193
- }
8165
+ const SmallPreviewControl = styled(IconButton) `
8166
+ cursor: ${({ $isDisabled }) => ($isDisabled ? "default" : "pointer")};
8167
+ z-index: 3;
8168
+ position: absolute;
8169
+ top: 50%;
8170
+ width: 2.5rem;
8171
+ height: 2.5rem;
8172
+ margin-top: -1.25rem;
8173
+ background-color: rgba(61, 61, 61, 0.8);
8174
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.smallest};
8175
+
8176
+ span:after {
8177
+ color: ${({ $isDisabled }) => ($isDisabled ? "rgba(255, 255, 255, 0.28)" : "rgba(255, 255, 255, 1)")};
8178
+ transition: color ${transition.hover};
8179
+ }
8180
+ `;
8181
+ const SmallPreviewCounter = styled(Flex) `
8182
+ z-index: 3;
8183
+ position: absolute;
8184
+ bottom: 0.625rem;
8185
+ left: 0;
8186
+ width: 100%;
8187
+ height: 1rem;
8188
+ justify-content: center;
8189
+
8190
+ > div {
8191
+ background-color: rgba(61, 61, 61, 0.8);
8192
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
8193
+ padding: 0 0.5rem;
8194
+ font-size: 0.625rem;
8195
+ line-height: 1rem;
8196
+ color: #fff;
8197
+ }
8194
8198
  `;
8195
8199
  const SmallPreviewLeft = styled(SmallPreviewControl).attrs(() => ({
8196
8200
  kind: "prev",
8197
- })) `
8198
- left: 1.5rem;
8201
+ })) `
8202
+ left: 1.5rem;
8199
8203
  `;
8200
8204
  const SmallPreviewRight = styled(SmallPreviewControl).attrs(() => ({
8201
8205
  kind: "next",
8202
- })) `
8203
- right: 1.5rem;
8204
- `;
8205
- const imgSlideShowMixin = css `
8206
- &:nth-child(${({ prevIndex }) => prevIndex}) {
8207
- z-index: 2;
8208
- position: absolute;
8209
- top: 0;
8210
- left: 0;
8211
- right: 0;
8212
- bottom: 0;
8213
- opacity: 0;
8214
-
8215
- animation-duration: 0.25s;
8216
- animation-name: fadeOut;
8217
- animation-timing-function: linear;
8218
-
8219
- @keyframes fadeOut {
8220
- from {
8221
- opacity: 1;
8222
- }
8223
-
8224
- to {
8225
- opacity: 0;
8226
- }
8227
- }
8228
- }
8206
+ })) `
8207
+ right: 1.5rem;
8208
+ `;
8209
+ const imgSlideShowMixin = css `
8210
+ &:nth-child(${({ prevIndex }) => prevIndex}) {
8211
+ z-index: 2;
8212
+ position: absolute;
8213
+ top: 0;
8214
+ left: 0;
8215
+ right: 0;
8216
+ bottom: 0;
8217
+ opacity: 0;
8218
+
8219
+ animation-duration: 0.25s;
8220
+ animation-name: fadeOut;
8221
+ animation-timing-function: linear;
8222
+
8223
+ @keyframes fadeOut {
8224
+ from {
8225
+ opacity: 1;
8226
+ }
8227
+
8228
+ to {
8229
+ opacity: 0;
8230
+ }
8231
+ }
8232
+ }
8229
8233
  `;
8230
- const SmallPreviewContainer$1 = styled.div `
8231
- cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
8232
- position: relative;
8233
- width: 100%;
8234
- height: 100%;
8235
- min-height: inherit;
8236
- line-height: 0;
8237
-
8238
- ${LinearProgress} {
8239
- z-index: 3;
8240
- position: absolute;
8241
- }
8242
-
8243
- ${SmallPreviewControl}, ${SmallPreviewCounter} {
8244
- opacity: 0;
8245
- transition: opacity ${transition.hover};
8246
- }
8247
-
8248
- &:hover {
8249
- ${SmallPreviewControl}, ${SmallPreviewCounter} {
8250
- opacity: 1;
8251
- }
8252
- }
8253
-
8254
- img {
8255
- z-index: 0;
8256
- cursor: pointer;
8257
- position: absolute;
8258
- top: 0;
8259
- left: 0;
8260
- width: 100%;
8261
- height: 100%;
8262
- min-height: inherit;
8263
- object-position: center;
8264
- object-fit: cover;
8265
-
8266
- &:nth-child(${({ currentIndex }) => currentIndex}) {
8267
- z-index: 1;
8268
- }
8269
-
8270
- ${({ prevIndex, currentIndex }) => prevIndex !== currentIndex && imgSlideShowMixin}
8271
- }
8234
+ const SmallPreviewContainer$1 = styled.div `
8235
+ cursor: ${({ onClick }) => (onClick ? "pointer" : "default")};
8236
+ position: relative;
8237
+ width: 100%;
8238
+ height: 100%;
8239
+ min-height: inherit;
8240
+ line-height: 0;
8241
+
8242
+ ${LinearProgress} {
8243
+ z-index: 3;
8244
+ position: absolute;
8245
+ }
8246
+
8247
+ ${SmallPreviewControl}, ${SmallPreviewCounter} {
8248
+ opacity: 0;
8249
+ transition: opacity ${transition.hover};
8250
+ }
8251
+
8252
+ &:hover {
8253
+ ${SmallPreviewControl}, ${SmallPreviewCounter} {
8254
+ opacity: 1;
8255
+ }
8256
+ }
8257
+
8258
+ img {
8259
+ z-index: 0;
8260
+ cursor: pointer;
8261
+ position: absolute;
8262
+ top: 0;
8263
+ left: 0;
8264
+ width: 100%;
8265
+ height: 100%;
8266
+ min-height: inherit;
8267
+ object-position: center;
8268
+ object-fit: cover;
8269
+
8270
+ &:nth-child(${({ currentIndex }) => currentIndex}) {
8271
+ z-index: 1;
8272
+ }
8273
+
8274
+ ${({ prevIndex, currentIndex }) => prevIndex !== currentIndex && imgSlideShowMixin}
8275
+ }
8272
8276
  `;
8273
8277
  const SmallPreviewImages = styled.div ``;
8274
8278
 
@@ -8495,29 +8499,31 @@ const ElementControl = ({ elementConfig }) => {
8495
8499
  defaultValue, placeholder: placeholder, disabled: isDisabled, onChange: handleChange }));
8496
8500
  };
8497
8501
 
8498
- const StyledIconFontSizeMixin = css `
8499
- height: ${({ fontSize }) => `${fontSize}px`};
8500
-
8501
- &&:after {
8502
- font-size: ${({ fontSize }) => `${fontSize}px`};
8503
- }
8502
+ const StyledIconFontSizeMixin = css `
8503
+ height: ${({ fontSize }) => `${fontSize}px`};
8504
+
8505
+ &&:after {
8506
+ font-size: ${({ fontSize }) => `${fontSize}px`};
8507
+ }
8504
8508
  `;
8505
- const StyledIconFontColorMixin = css `
8506
- &&:after {
8507
- color: ${({ fontColor }) => fontColor};
8508
- }
8509
+ const StyledIconFontColorMixin = css `
8510
+ &&:after {
8511
+ color: ${({ fontColor }) => fontColor};
8512
+ }
8509
8513
  `;
8510
- const StyledIcon = styled(Icon) `
8511
- ${({ fontSize }) => !!fontSize && StyledIconFontSizeMixin};
8512
- ${({ fontColor }) => !!fontColor && StyledIconFontColorMixin};
8514
+ const StyledIcon = styled(Icon) `
8515
+ ${({ fontSize }) => !!fontSize && StyledIconFontSizeMixin};
8516
+ ${({ fontColor }) => !!fontColor && StyledIconFontColorMixin};
8513
8517
  `;
8514
8518
 
8515
8519
  const ElementIcon = memo(({ type, elementConfig }) => {
8516
8520
  const { attributes } = useWidgetContext(type);
8517
8521
  const { value, attributeName, options, style } = elementConfig || {};
8518
8522
  const { fontSize, fontColor } = options || {};
8519
- const iconValue = useMemo(() => (attributeName ? attributes?.find(item => item.name === attributeName)?.value : value), [attributeName, attributes, value]);
8520
- return jsx(StyledIcon, { kind: iconValue, fontSize: fontSize, fontColor: fontColor, style: style });
8523
+ const iconValue = useMemo(() => attributeName
8524
+ ? attributes?.find(item => item.name === attributeName)?.value
8525
+ : value, [attributeName, attributes, value]);
8526
+ return (jsx(StyledIcon, { kind: iconValue, fontSize: fontSize, fontColor: fontColor, style: style }));
8521
8527
  });
8522
8528
 
8523
8529
  const ElementImage = memo(({ type, elementConfig }) => {
@@ -8578,55 +8584,55 @@ const ElementLegend = memo(({ type, element, elementConfig }) => {
8578
8584
 
8579
8585
  const ExternalLink = styled(IconButton).attrs(() => ({
8580
8586
  kind: "external_link",
8581
- })) `
8582
- ${Icon} {
8583
- color: ${({ theme: { palette } }) => palette.primary};
8584
- }
8585
-
8586
- &:hover ${Icon} {
8587
- color: ${({ theme: { palette } }) => palette.primaryDeep};
8588
- }
8587
+ })) `
8588
+ ${Icon} {
8589
+ color: ${({ theme: { palette } }) => palette.primary};
8590
+ }
8591
+
8592
+ &:hover ${Icon} {
8593
+ color: ${({ theme: { palette } }) => palette.primaryDeep};
8594
+ }
8589
8595
  `;
8590
- const Link = styled.a `
8591
- text-decoration: none;
8592
- font-size: 0.75rem;
8593
- color: ${({ theme: { palette } }) => palette.primary};
8596
+ const Link = styled.a `
8597
+ text-decoration: none;
8598
+ font-size: 0.75rem;
8599
+ color: ${({ theme: { palette } }) => palette.primary};
8594
8600
  `;
8595
- const LocalLinkBlank = styled(Blank) `
8596
- min-width: 13.5rem;
8597
- padding: 0.5rem 0.75rem 0;
8598
-
8599
- ${IconButtonButton} {
8600
- font-size: 0.75rem;
8601
- }
8601
+ const LocalLinkBlank = styled(Blank) `
8602
+ min-width: 13.5rem;
8603
+ padding: 0.5rem 0.75rem 0;
8604
+
8605
+ ${IconButtonButton} {
8606
+ font-size: 0.75rem;
8607
+ }
8602
8608
  `;
8603
8609
  const LocalLinkButton = styled(IconButton).attrs(() => ({
8604
8610
  kind: "link",
8605
- })) `
8606
- width: 1rem;
8607
- height: 1rem;
8608
- background-color: ${({ theme: { palette } }) => palette.primary};
8609
- padding: 0;
8610
- border-radius: 50%;
8611
-
8612
- :hover {
8613
- background-color: ${({ theme: { palette } }) => palette.primary};
8614
- }
8615
-
8616
- span[kind] {
8617
- display: flex;
8618
- justify-content: center;
8619
- align-items: center;
8620
-
8621
- :after {
8622
- position: relative;
8623
- font-size: 0.6rem;
8624
- color: white;
8625
- }
8626
- }
8611
+ })) `
8612
+ width: 1rem;
8613
+ height: 1rem;
8614
+ background-color: ${({ theme: { palette } }) => palette.primary};
8615
+ padding: 0;
8616
+ border-radius: 50%;
8617
+
8618
+ :hover {
8619
+ background-color: ${({ theme: { palette } }) => palette.primary};
8620
+ }
8621
+
8622
+ span[kind] {
8623
+ display: flex;
8624
+ justify-content: center;
8625
+ align-items: center;
8626
+
8627
+ :after {
8628
+ position: relative;
8629
+ font-size: 0.6rem;
8630
+ color: white;
8631
+ }
8632
+ }
8627
8633
  `;
8628
- const LocalLinkCopy = styled(Flex) `
8629
- justify-content: center;
8634
+ const LocalLinkCopy = styled(Flex) `
8635
+ justify-content: center;
8630
8636
  `;
8631
8637
 
8632
8638
  const LocalLink = memo(({ link, style }) => {
@@ -8655,104 +8661,104 @@ const ElementLink = memo(({ type, elementConfig }) => {
8655
8661
  : jsx(LocalLink, { style: style, link: link });
8656
8662
  });
8657
8663
 
8658
- const MarkdownWrapper = styled.div `
8659
- padding: 0;
8660
- background: transparent;
8661
- border-radius: 0.5rem;
8662
- font-family: 'Nunito Sans', sans-serif;
8663
- color: ${({ theme: { palette } }) => palette.textPrimary};
8664
-
8665
- /* Paragraphs */
8666
- p {
8667
- font-size: 0.875rem;
8668
- line-height: 1rem;
8669
- letter-spacing: 0.0052rem;
8670
- margin: 0 0 1rem 0;
8671
- font-weight: 400;
8672
-
8673
- &:last-child {
8674
- margin-bottom: 0;
8675
- }
8676
- }
8677
-
8678
- /* Headings */
8679
- h1, h2, h3, h4, h5, h6 {
8680
- margin: 0 0 0.75rem 0;
8681
- font-weight: 300;
8682
- }
8683
-
8684
- h1 {
8685
- font-size: 1.5rem;
8686
- line-height: 1.75rem;
8687
- }
8688
-
8689
- h2 {
8690
- font-size: 1.25rem;
8691
- line-height: 1.5rem;
8692
- }
8693
-
8694
- h3 {
8695
- font-size: 1rem;
8696
- line-height: 1.25rem;
8697
- }
8698
-
8699
- /* Images */
8700
- img {
8701
- max-width: 100%;
8702
- height: auto;
8703
- border-radius: 0.5rem;
8704
- object-fit: cover;
8705
- margin: 0.75rem 0;
8706
- }
8707
-
8708
- /* Links */
8709
- a {
8710
- color: ${({ theme: { palette } }) => palette.primary};
8711
- text-decoration: none;
8712
-
8713
- &:hover {
8714
- text-decoration: underline;
8715
- }
8716
- }
8717
-
8718
- /* Lists */
8719
- ul, ol {
8720
- margin: 0 0 1rem 0;
8721
- padding-left: 1.25rem;
8722
-
8723
- li {
8724
- font-size: 0.875rem;
8725
- line-height: 1rem;
8726
- margin-bottom: 0.5rem;
8727
- }
8728
- }
8729
-
8730
- /* Code */
8731
- code {
8732
- background: ${({ theme: { palette } }) => palette.element};
8733
- padding: 0.125rem 0.375rem;
8734
- border-radius: 0.25rem;
8735
- font-family: monospace;
8736
- font-size: 0.8125rem;
8737
- }
8738
-
8739
- pre {
8740
- background: ${({ theme: { palette } }) => palette.element};
8741
- padding: 0.75rem;
8742
- border-radius: 0.25rem;
8743
- overflow-x: auto;
8744
- margin: 0.75rem 0;
8745
-
8746
- code {
8747
- background: transparent;
8748
- padding: 0;
8749
- }
8750
- }
8751
-
8752
- /* Hide horizontal rules */
8753
- hr {
8754
- display: none;
8755
- }
8664
+ const MarkdownWrapper = styled.div `
8665
+ padding: 0;
8666
+ background: transparent;
8667
+ border-radius: 0.5rem;
8668
+ font-family: 'Nunito Sans', sans-serif;
8669
+ color: ${({ theme: { palette } }) => palette.textPrimary};
8670
+
8671
+ /* Paragraphs */
8672
+ p {
8673
+ font-size: 0.875rem;
8674
+ line-height: 1rem;
8675
+ letter-spacing: 0.0052rem;
8676
+ margin: 0 0 1rem 0;
8677
+ font-weight: 400;
8678
+
8679
+ &:last-child {
8680
+ margin-bottom: 0;
8681
+ }
8682
+ }
8683
+
8684
+ /* Headings */
8685
+ h1, h2, h3, h4, h5, h6 {
8686
+ margin: 0 0 0.75rem 0;
8687
+ font-weight: 300;
8688
+ }
8689
+
8690
+ h1 {
8691
+ font-size: 1.5rem;
8692
+ line-height: 1.75rem;
8693
+ }
8694
+
8695
+ h2 {
8696
+ font-size: 1.25rem;
8697
+ line-height: 1.5rem;
8698
+ }
8699
+
8700
+ h3 {
8701
+ font-size: 1rem;
8702
+ line-height: 1.25rem;
8703
+ }
8704
+
8705
+ /* Images */
8706
+ img {
8707
+ max-width: 100%;
8708
+ height: auto;
8709
+ border-radius: 0.5rem;
8710
+ object-fit: cover;
8711
+ margin: 0.75rem 0;
8712
+ }
8713
+
8714
+ /* Links */
8715
+ a {
8716
+ color: ${({ theme: { palette } }) => palette.primary};
8717
+ text-decoration: none;
8718
+
8719
+ &:hover {
8720
+ text-decoration: underline;
8721
+ }
8722
+ }
8723
+
8724
+ /* Lists */
8725
+ ul, ol {
8726
+ margin: 0 0 1rem 0;
8727
+ padding-left: 1.25rem;
8728
+
8729
+ li {
8730
+ font-size: 0.875rem;
8731
+ line-height: 1rem;
8732
+ margin-bottom: 0.5rem;
8733
+ }
8734
+ }
8735
+
8736
+ /* Code */
8737
+ code {
8738
+ background: ${({ theme: { palette } }) => palette.element};
8739
+ padding: 0.125rem 0.375rem;
8740
+ border-radius: 0.25rem;
8741
+ font-family: monospace;
8742
+ font-size: 0.8125rem;
8743
+ }
8744
+
8745
+ pre {
8746
+ background: ${({ theme: { palette } }) => palette.element};
8747
+ padding: 0.75rem;
8748
+ border-radius: 0.25rem;
8749
+ overflow-x: auto;
8750
+ margin: 0.75rem 0;
8751
+
8752
+ code {
8753
+ background: transparent;
8754
+ padding: 0;
8755
+ }
8756
+ }
8757
+
8758
+ /* Hide horizontal rules */
8759
+ hr {
8760
+ display: none;
8761
+ }
8756
8762
  `;
8757
8763
 
8758
8764
  const sanitizeSchema = {
@@ -8794,9 +8800,9 @@ const ElementMarkdown = memo(({ elementConfig, type }) => {
8794
8800
  return (jsxs(MarkdownWrapper, { children: [jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], rehypePlugins: [rehypeRaw, rehypeSanitize], children: markdownString }), jsx(LegendToggler, { toggled: true, onClick: () => setExpanded(false), children: t("hide", { ns: "dashboard", defaultValue: "Свернуть" }) })] }));
8795
8801
  });
8796
8802
 
8797
- const SmallPreviewContainer = styled.div `
8798
- width: 100%;
8799
- height: 100%;
8803
+ const SmallPreviewContainer = styled.div `
8804
+ width: 100%;
8805
+ height: 100%;
8800
8806
  `;
8801
8807
 
8802
8808
  const ElementSlideshow = ({ elementConfig, type, renderElement }) => {
@@ -8832,18 +8838,18 @@ const ElementSvg = memo(({ type, elementConfig }) => {
8832
8838
  return (jsx(SvgImage, { url: getSvgUrl({ elementConfig, layerInfo, attributes }), width: width, height: height, fontColor: fontColor }));
8833
8839
  });
8834
8840
 
8835
- const TooltipIcon = styled(Icon) `
8836
- &&& {
8837
- :after {
8838
- font-size: 0.75rem;
8839
- color: ${({ theme: { palette } }) => palette.iconDisabled};
8840
- transition: color ${transition.hover};
8841
- }
8842
-
8843
- :hover:after {
8844
- color: ${({ theme: { palette } }) => palette.icon};
8845
- }
8846
- }
8841
+ const TooltipIcon = styled(Icon) `
8842
+ &&& {
8843
+ :after {
8844
+ font-size: 0.75rem;
8845
+ color: ${({ theme: { palette } }) => palette.iconDisabled};
8846
+ transition: color ${transition.hover};
8847
+ }
8848
+
8849
+ :hover:after {
8850
+ color: ${({ theme: { palette } }) => palette.icon};
8851
+ }
8852
+ }
8847
8853
  `;
8848
8854
 
8849
8855
  const ElementTooltip = memo(({ type, elementConfig }) => {
@@ -8855,76 +8861,76 @@ const ElementTooltip = memo(({ type, elementConfig }) => {
8855
8861
  return text ? (jsx(Tooltip$1, { placement: "top", arrow: true, content: text, children: ref => jsx(TooltipIcon, { kind: icon || "question", ref: ref }) })) : null;
8856
8862
  });
8857
8863
 
8858
- const SlideshowHeaderWrapper = styled.div `
8859
- padding: ${({ withPadding }) => (withPadding ? "0.5rem 0.5rem 0" : 0)};
8860
-
8861
- ${Header} {
8862
- align-items: flex-start;
8863
- width: calc(100% + 2rem);
8864
- height: ${({ big }) => (big ? "15.5rem" : "auto")};
8865
- padding: 1.5rem;
8866
- margin: -1rem -1rem 0 -1rem;
8867
- border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
8868
-
8869
- ${SmallPreviewCounter} {
8870
- bottom: ${({ withPadding }) => (withPadding ? 0.625 : 1.125)}rem;
8871
- }
8872
-
8873
- :before,
8874
- :after {
8875
- content: "";
8876
- z-index: 2;
8877
- position: absolute;
8878
- top: 0;
8879
- left: 0;
8880
- width: 100%;
8881
- }
8882
-
8883
- :before {
8884
- height: 100%;
8885
- background: rgba(32, 46, 53, 0.25);
8886
- }
8887
-
8888
- :after {
8889
- height: 4.5rem;
8890
- background: linear-gradient(180deg, #000000 0%, rgba(0, 0, 0, 0) 100%);
8891
- }
8892
-
8893
- :hover {
8894
- ${SmallPreviewControl}, ${SmallPreviewCounter} {
8895
- opacity: 1;
8896
- }
8897
- }
8898
- }
8864
+ const SlideshowHeaderWrapper = styled.div `
8865
+ padding: ${({ withPadding }) => (withPadding ? "0.5rem 0.5rem 0" : 0)};
8866
+
8867
+ ${Header} {
8868
+ align-items: flex-start;
8869
+ width: calc(100% + 2rem);
8870
+ height: ${({ big }) => (big ? "15.5rem" : "auto")};
8871
+ padding: 1.5rem;
8872
+ margin: -1rem -1rem 0 -1rem;
8873
+ border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
8874
+
8875
+ ${SmallPreviewCounter} {
8876
+ bottom: ${({ withPadding }) => (withPadding ? 0.625 : 1.125)}rem;
8877
+ }
8878
+
8879
+ :before,
8880
+ :after {
8881
+ content: "";
8882
+ z-index: 2;
8883
+ position: absolute;
8884
+ top: 0;
8885
+ left: 0;
8886
+ width: 100%;
8887
+ }
8888
+
8889
+ :before {
8890
+ height: 100%;
8891
+ background: rgba(32, 46, 53, 0.25);
8892
+ }
8893
+
8894
+ :after {
8895
+ height: 4.5rem;
8896
+ background: linear-gradient(180deg, #000000 0%, rgba(0, 0, 0, 0) 100%);
8897
+ }
8898
+
8899
+ :hover {
8900
+ ${SmallPreviewControl}, ${SmallPreviewCounter} {
8901
+ opacity: 1;
8902
+ }
8903
+ }
8904
+ }
8899
8905
  `;
8900
- const ImageContainerBg = styled.div `
8901
- position: absolute;
8902
- top: 0;
8903
- bottom: 0;
8904
- left: 0;
8905
- right: 0;
8906
-
8907
- img {
8908
- width: 100%;
8909
- height: 100%;
8910
- object-position: center;
8911
- object-fit: cover;
8912
- }
8906
+ const ImageContainerBg = styled.div `
8907
+ position: absolute;
8908
+ top: 0;
8909
+ bottom: 0;
8910
+ left: 0;
8911
+ right: 0;
8912
+
8913
+ img {
8914
+ width: 100%;
8915
+ height: 100%;
8916
+ object-position: center;
8917
+ object-fit: cover;
8918
+ }
8913
8919
  `;
8914
- const HeaderSlideshow = styled.div `
8915
- position: absolute;
8916
- top: 0;
8917
- bottom: ${({ height }) => (height ? `${height}px` : 0)};
8918
- left: 0;
8919
- right: 0;
8920
-
8921
- img {
8922
- width: 100%;
8923
- height: 100%;
8924
- min-height: inherit;
8925
- object-position: center;
8926
- object-fit: cover;
8927
- }
8920
+ const HeaderSlideshow = styled.div `
8921
+ position: absolute;
8922
+ top: 0;
8923
+ bottom: ${({ height }) => (height ? `${height}px` : 0)};
8924
+ left: 0;
8925
+ right: 0;
8926
+
8927
+ img {
8928
+ width: 100%;
8929
+ height: 100%;
8930
+ min-height: inherit;
8931
+ object-position: center;
8932
+ object-fit: cover;
8933
+ }
8928
8934
  `;
8929
8935
 
8930
8936
  const FeatureCardSlideshowHeader = ({ isRow }) => {
@@ -9063,40 +9069,40 @@ const getDefaultConfig = ({ title, defaultTitle, items, baseMapName, position, r
9063
9069
  return dashboardConfiguration;
9064
9070
  };
9065
9071
 
9066
- const UploaderContainer = styled(Container) `
9067
- ${UploaderItemArea} {
9068
- overflow: visible;
9069
- padding-top: 1rem;
9070
- padding-bottom: 1rem;
9071
- }
9072
-
9073
- ${UploaderTitleWrapper} {
9074
- top: 0;
9075
- padding-top: 0;
9076
- border: 0;
9077
- }
9072
+ const UploaderContainer = styled(Container) `
9073
+ ${UploaderItemArea} {
9074
+ overflow: visible;
9075
+ padding-top: 1rem;
9076
+ padding-bottom: 1rem;
9077
+ }
9078
+
9079
+ ${UploaderTitleWrapper} {
9080
+ top: 0;
9081
+ padding-top: 0;
9082
+ border: 0;
9083
+ }
9078
9084
  `;
9079
9085
 
9080
- const UploaderTitle = styled(Flex) `
9081
- flex-direction: column;
9082
- align-items: center;
9083
- width: 11rem;
9084
- margin: 0 auto;
9085
- text-align: center;
9086
- font-size: 0.625rem;
9087
- color: ${({ theme: { palette } }) => palette.textSecondary};
9088
-
9089
- span[kind] {
9090
- width: 1.5rem;
9091
- height: 1.5rem;
9092
- margin-bottom: 0.75rem;
9093
-
9094
- :after {
9095
- font-size: 1.5rem;
9096
- color: ${({ theme: { palette } }) => palette.textSecondary};
9097
- opacity: 0.12;
9098
- }
9099
- }
9086
+ const UploaderTitle = styled(Flex) `
9087
+ flex-direction: column;
9088
+ align-items: center;
9089
+ width: 11rem;
9090
+ margin: 0 auto;
9091
+ text-align: center;
9092
+ font-size: 0.625rem;
9093
+ color: ${({ theme: { palette } }) => palette.textSecondary};
9094
+
9095
+ span[kind] {
9096
+ width: 1.5rem;
9097
+ height: 1.5rem;
9098
+ margin-bottom: 0.75rem;
9099
+
9100
+ :after {
9101
+ font-size: 1.5rem;
9102
+ color: ${({ theme: { palette } }) => palette.textSecondary};
9103
+ opacity: 0.12;
9104
+ }
9105
+ }
9100
9106
  `;
9101
9107
 
9102
9108
  const DEFAULT_FILE_EXTENSIONS = ".txt,.csv,.py";
@@ -9106,10 +9112,10 @@ const ElementUploader = memo(({ elementConfig, type }) => {
9106
9112
  const [files, setFiles] = useState([]);
9107
9113
  const refInput = useRef();
9108
9114
  const { id, style, options } = elementConfig || {};
9109
- const { fileExtensions = DEFAULT_FILE_EXTENSIONS, multiSelect, parentResourceId, icon, title, filterName } = options || {};
9115
+ const { fileExtensions = DEFAULT_FILE_EXTENSIONS, multiSelect, parentResourceId, icon, title, filterName, } = options || {};
9110
9116
  const onUpload = useCallback(async (input) => {
9111
- const files = Array.isArray(input) ? input : [input];
9112
- const response = await Promise.all(files.map(file => {
9117
+ const newFiles = Array.isArray(input) ? input : [input];
9118
+ const response = await Promise.all(newFiles.map(file => {
9113
9119
  return api.file.upload(file, true, parentResourceId || "", file.name);
9114
9120
  }));
9115
9121
  const uploadedFiles = response.map(item => ({
@@ -9117,46 +9123,47 @@ const ElementUploader = memo(({ elementConfig, type }) => {
9117
9123
  id: item.resourceId,
9118
9124
  done: true,
9119
9125
  }));
9120
- setFiles(currentFiles => ([...uploadedFiles, ...currentFiles]));
9121
- }, [parentResourceId]);
9122
- const onDelete = useCallback(async (id) => {
9123
- const index = files.findIndex(file => file.id === id);
9126
+ setFiles(currentFiles => [...uploadedFiles, ...currentFiles]);
9127
+ }, [api.file, parentResourceId]);
9128
+ const onDelete = useCallback(async (deleteId) => {
9129
+ const index = files.findIndex(file => file.id === deleteId);
9124
9130
  if (index === -1)
9125
9131
  return;
9126
9132
  const resourceId = files[index].id;
9127
9133
  await api.file.deleteResource({ resourceId });
9128
- setFiles(currentFiles => currentFiles.filter(({ id }) => id !== resourceId));
9129
- }, [files]);
9134
+ setFiles(currentFiles => currentFiles.filter(file => file.id !== resourceId));
9135
+ }, [api.file, files]);
9130
9136
  const renderTitle = useMemo(() => {
9131
9137
  if (files.length)
9132
9138
  return null;
9133
- return (jsxs(UploaderTitle, { children: [jsx(Icon, { kind: icon || "upload" }), jsx("div", { children: title ?? t("uploadTitle", {
9134
- ns: "dashboard",
9135
- defaultValue: "Перетащите файл сюда или нажмите, чтобы выбрать",
9136
- }) })] }));
9139
+ return (jsxs(UploaderTitle, { children: [jsx(Icon, { kind: icon || "upload" }), jsx("div", { children: title ??
9140
+ t("uploadTitle", {
9141
+ ns: "dashboard",
9142
+ defaultValue: "Перетащите файл сюда или нажмите, чтобы выбрать",
9143
+ }) })] }));
9137
9144
  }, [icon, t, title, files.length]);
9138
9145
  useEffect(() => {
9139
9146
  if (!filterName)
9140
9147
  return;
9141
- changeFilters({ [filterName]: { value: files.map(({ id }) => id) } });
9148
+ changeFilters({ [filterName]: { value: files.map(file => file.id) } });
9142
9149
  }, [files]);
9143
9150
  return (jsx(UploaderContainer, { id: id, style: style, children: jsx("div", { children: jsx(Uploader, { currentRef: refInput, title: renderTitle, accept: fileExtensions, width: "100%", fileItems: files, isMultiple: multiSelect, onUpload: onUpload, onDelete: onDelete }) }) }));
9144
9151
  });
9145
9152
 
9146
- const ModalIcon = styled(Icon) `
9147
- &&& {
9148
- cursor: pointer;
9149
-
9150
- :after {
9151
- font-size: 0.75rem;
9152
- color: ${({ theme: { palette } }) => palette.iconDisabled};
9153
- transition: color ${transition.hover};
9154
- }
9155
-
9156
- :hover:after {
9157
- color: ${({ theme: { palette } }) => palette.icon};
9158
- }
9159
- }
9153
+ const ModalIcon = styled(Icon) `
9154
+ &&& {
9155
+ cursor: pointer;
9156
+
9157
+ :after {
9158
+ font-size: 0.75rem;
9159
+ color: ${({ theme: { palette } }) => palette.iconDisabled};
9160
+ transition: color ${transition.hover};
9161
+ }
9162
+
9163
+ :hover:after {
9164
+ color: ${({ theme: { palette } }) => palette.icon};
9165
+ }
9166
+ }
9160
9167
  `;
9161
9168
 
9162
9169
  const isEmptyElementValue = (value) => value === "" || value === null || value === undefined;
@@ -9897,64 +9904,64 @@ const getJustifyContent = (align) => {
9897
9904
  return "flex-start";
9898
9905
  }
9899
9906
  };
9900
- const ChipsContainer = styled(Flex) `
9901
- flex-wrap: wrap;
9902
- gap: 0.25rem;
9903
- background: transparent;
9904
- justify-content: ${({ $align }) => getJustifyContent($align)};
9907
+ const ChipsContainer = styled(Flex) `
9908
+ flex-wrap: wrap;
9909
+ gap: 0.25rem;
9910
+ background: transparent;
9911
+ justify-content: ${({ $align }) => getJustifyContent($align)};
9905
9912
  `;
9906
9913
 
9907
- const FilterChip = styled.div `
9908
- display: inline-flex;
9909
- align-items: center;
9910
- gap: 0.25rem;
9911
- padding: 0.3125rem 0.5rem;
9912
- height: 1.5rem;
9913
- border-radius: 0.25rem;
9914
+ const FilterChip = styled.div `
9915
+ display: inline-flex;
9916
+ align-items: center;
9917
+ gap: 0.25rem;
9918
+ padding: 0.3125rem 0.5rem;
9919
+ height: 1.5rem;
9920
+ border-radius: 0.25rem;
9914
9921
  background-color: ${({ $isActive, $bgColor, theme }) => $bgColor
9915
9922
  ? $bgColor
9916
9923
  : $isActive
9917
9924
  ? theme.palette?.primary
9918
- : theme.palette?.elementLight};
9925
+ : theme.palette?.elementLight};
9919
9926
  color: ${({ $isActive, $textColor, theme }) => $textColor
9920
9927
  ? $textColor
9921
9928
  : $isActive
9922
9929
  ? theme.palette?.textContrast
9923
- : theme.palette?.textSecondary};
9924
- cursor: pointer;
9925
- font-size: 0.75rem;
9926
- line-height: 0.875rem;
9927
- white-space: nowrap;
9928
- flex-shrink: 0;
9929
- transition: all 0.2s ease-in-out;
9930
- margin: 0 0.25rem 0 0;
9931
- box-sizing: border-box;
9932
-
9933
- &:hover {
9930
+ : theme.palette?.textSecondary};
9931
+ cursor: pointer;
9932
+ font-size: 0.75rem;
9933
+ line-height: 0.875rem;
9934
+ white-space: nowrap;
9935
+ flex-shrink: 0;
9936
+ transition: all 0.2s ease-in-out;
9937
+ margin: 0 0.25rem 0 0;
9938
+ box-sizing: border-box;
9939
+
9940
+ &:hover {
9934
9941
  background-color: ${({ $isActive, $bgColor, theme }) => $isActive
9935
9942
  ? $bgColor || 'inherit'
9936
- : $bgColor || theme.palette?.elementDark};
9937
- }
9943
+ : $bgColor || theme.palette?.elementDark};
9944
+ }
9938
9945
  `;
9939
- const ChipIconWrapper = styled.span `
9940
- display: inline-flex;
9941
- align-items: center;
9942
- justify-content: center;
9943
- width: 0.875rem;
9944
- height: 0.875rem;
9945
- flex-shrink: 0;
9946
-
9947
- svg, img {
9948
- width: 100%;
9949
- height: 100%;
9950
- display: block;
9951
- }
9946
+ const ChipIconWrapper = styled.span `
9947
+ display: inline-flex;
9948
+ align-items: center;
9949
+ justify-content: center;
9950
+ width: 0.875rem;
9951
+ height: 0.875rem;
9952
+ flex-shrink: 0;
9953
+
9954
+ svg, img {
9955
+ width: 100%;
9956
+ height: 100%;
9957
+ display: block;
9958
+ }
9952
9959
  `;
9953
- const ChipText = styled.span `
9954
- overflow: hidden;
9955
- text-overflow: ellipsis;
9956
- white-space: nowrap;
9957
- ${({ $maxTextWidth }) => $maxTextWidth && `max-width: ${$maxTextWidth / 16}rem;`}
9960
+ const ChipText = styled.span `
9961
+ overflow: hidden;
9962
+ text-overflow: ellipsis;
9963
+ white-space: nowrap;
9964
+ ${({ $maxTextWidth }) => $maxTextWidth && `max-width: ${$maxTextWidth / 16}rem;`}
9958
9965
  `;
9959
9966
 
9960
9967
  const CustomChip = ({ text, icon, color, primary, secondary, error, disabled, isActive, maxTextWidth, fontColor: customFontColor, backgroundColor: customBackgroundColor, ...props }) => {
@@ -10580,7 +10587,7 @@ const useChartData = ({ element, type }) => {
10580
10587
  const dataSource = configDataSources.find(({ name }) => name === dataSourceName);
10581
10588
  const layerInfo = layerInfos?.find(item => item?.name === dataSource?.layerName);
10582
10589
  const featureDataSource = getDataSource(dataSourceName, dataSources);
10583
- const hasLayerInfo = !!layerInfo || !!featureDataSource?.attributeDefinition;
10590
+ const hasLayerInfo = !!layerInfo || !!featureDataSource?.attributeDefinition || !!featureDataSource?.features?.length;
10584
10591
  return {
10585
10592
  items: hasLayerInfo
10586
10593
  ? getDataFromRelatedFeatures({
@@ -10632,7 +10639,7 @@ const useChartData = ({ element, type }) => {
10632
10639
  };
10633
10640
 
10634
10641
  const useHeaderRender = (elementConfig, type = WidgetType.Dashboard) => {
10635
- const { layerInfo, attributes, expandedContainers, selectedTabId, setSelectedTabId } = useWidgetContext(type);
10642
+ const { layerInfo, attributes, expandedContainers, selectedTabId, setSelectedTabId, } = useWidgetContext(type);
10636
10643
  const { config } = useWidgetConfig(type);
10637
10644
  const { pageIndex } = useWidgetPage(type);
10638
10645
  return useMemo(() => getRenderElement({
@@ -10644,7 +10651,16 @@ const useHeaderRender = (elementConfig, type = WidgetType.Dashboard) => {
10644
10651
  selectedTabId,
10645
10652
  setSelectedTabId,
10646
10653
  pageIndex,
10647
- }), [config, elementConfig, attributes, layerInfo, expandedContainers, selectedTabId, setSelectedTabId, pageIndex]);
10654
+ }), [
10655
+ config,
10656
+ elementConfig,
10657
+ attributes,
10658
+ layerInfo,
10659
+ expandedContainers,
10660
+ selectedTabId,
10661
+ setSelectedTabId,
10662
+ pageIndex,
10663
+ ]);
10648
10664
  };
10649
10665
 
10650
10666
  const useDashboardHeader = () => {
@@ -10653,21 +10669,30 @@ const useDashboardHeader = () => {
10653
10669
  const { currentPage } = useWidgetPage();
10654
10670
  const { alias, name } = projectInfo || {};
10655
10671
  const { id: pageId, header } = currentPage || {};
10672
+ const { children, options } = header || {};
10673
+ const { url } = options || {};
10656
10674
  const renderElement = useHeaderRender(header);
10657
- const image = useMemo(() => (header?.children?.some(({ id }) => id === "image") ? renderElement({ id: "image", wrap: false }) : null), [header?.children, renderElement]);
10658
- const icon = useMemo(() => header?.children?.some(({ id }) => id === "icon") ? (renderElement({ id: "icon", wrap: false })) : (jsx(Icon, { kind: "logo", style: { width: "2rem", height: "2rem" } })), [header?.children, renderElement]);
10659
- const title = useMemo(() => header?.children?.some(({ id }) => id === "title") ? renderElement({ id: "title" }) : currentPage?.options?.title, [header?.children, renderElement, currentPage?.options?.title]);
10675
+ const image = useMemo(() => children?.some(({ id }) => id === "image")
10676
+ ? renderElement({ id: "image", wrap: false })
10677
+ : null, [children, renderElement]);
10678
+ const icon = useMemo(() => children?.some(({ id }) => id === "icon") ? (renderElement({ id: "icon", wrap: false })) : (jsx(Icon, { kind: "logo", style: { width: "2rem", height: "2rem" } })), [children, renderElement]);
10679
+ const title = useMemo(() => children?.some(({ id }) => id === "title")
10680
+ ? renderElement({ id: "title" })
10681
+ : currentPage?.options?.title, [children, renderElement, currentPage?.options?.title]);
10660
10682
  const tooltip = useMemo(() => (jsxs("div", { children: [jsx("span", { children: alias || name }), jsx("span", { style: { opacity: 0.54, marginLeft: "0.5rem" }, children: title })] })), [alias, name, title]);
10661
- const description = useMemo(() => (header?.children?.some(({ id }) => id === "description") ? renderElement({ id: "description" }) : ""), [header?.children, renderElement]);
10683
+ const onClickLogo = useCallback(() => {
10684
+ if (!url)
10685
+ return;
10686
+ window.open(url);
10687
+ }, [url]);
10662
10688
  return {
10663
10689
  pageId,
10664
10690
  image,
10665
10691
  icon,
10666
10692
  title,
10667
10693
  tooltip,
10668
- description,
10669
10694
  themeName,
10670
- renderElement,
10695
+ onClickLogo,
10671
10696
  };
10672
10697
  };
10673
10698
 
@@ -10676,7 +10701,7 @@ const useDataSources = ({ type: widgetType, config, attributes, filters, layerPa
10676
10701
  const { dataSources } = useWidgetContext(widgetType);
10677
10702
  const { filters: configFilters, dataSources: configDataSources } = config || {};
10678
10703
  const prevFilters = useRef({});
10679
- const getDataSourcePromises = useCallback(async ({ ds, query, parameters, layerName, limit, condition, url, resourceId }, newFilters, offset = 0) => {
10704
+ const getDataSourcePromises = useCallback(async ({ ds, query, parameters, layerName, limit, condition, url, resourceId, fileName, methodName }, newFilters, offset = 0) => {
10680
10705
  const selectedFilters = {
10681
10706
  ...(filters || {}),
10682
10707
  ...(newFilters || {}),
@@ -10689,12 +10714,14 @@ const useDataSources = ({ type: widgetType, config, attributes, filters, layerPa
10689
10714
  method: "get",
10690
10715
  resourceId,
10691
10716
  parameters,
10717
+ ...(fileName && { fileName }),
10718
+ ...(methodName && { methodName }),
10692
10719
  }
10693
10720
  });
10694
- return {
10695
- items: response.result.items,
10696
- attributeDefinition: null,
10697
- };
10721
+ if (response.error) {
10722
+ throw new Error(response.error.message);
10723
+ }
10724
+ return response.result;
10698
10725
  }
10699
10726
  const newParams = applyQueryFilters({
10700
10727
  parameters,
@@ -10774,10 +10801,12 @@ const useDataSources = ({ type: widgetType, config, attributes, filters, layerPa
10774
10801
  const newDataSources = JSON.parse(JSON.stringify([...currentDataSources, ...otherDataSources]));
10775
10802
  responses.forEach((response, index) => {
10776
10803
  const isQueryDataSource = !isNil(currentDataSources[index].query) ||
10777
- !!currentDataSources[index].url ||
10778
- !!currentDataSources[index].resourceId;
10804
+ !!currentDataSources[index].url;
10805
+ const isPythonDataSource = !!currentDataSources[index].resourceId;
10779
10806
  newDataSources[index].layerName = currentDataSources[index].layerName;
10780
- const items = response.status === "rejected" ? null : response.value?.features || response.items;
10807
+ const items = response.status === "rejected"
10808
+ ? null
10809
+ : response.value?.features || response.value?.items;
10781
10810
  newDataSources[index].features =
10782
10811
  response.status === "rejected"
10783
10812
  ? null
@@ -10785,10 +10814,11 @@ const useDataSources = ({ type: widgetType, config, attributes, filters, layerPa
10785
10814
  ? items?.map((item, itemIndex) => ({
10786
10815
  id: itemIndex + 1,
10787
10816
  attributes: item.attributes,
10817
+ properties: item.properties || item.attributes,
10788
10818
  }))
10789
10819
  : items;
10790
10820
  newDataSources[index].attributeDefinition =
10791
- response.status === "rejected" || !isQueryDataSource
10821
+ response.status === "rejected" || (!isQueryDataSource && !isPythonDataSource)
10792
10822
  ? null
10793
10823
  : response.value.attributeDefinition;
10794
10824
  });
@@ -11383,8 +11413,8 @@ const Dashboard = memo(({ type = WidgetType.Dashboard, noBorders }) => {
11383
11413
  return (jsx(PagesContainer, { type: type, noBorders: noBorders }));
11384
11414
  });
11385
11415
 
11386
- const CardCheckbox = styled(Checkbox) `
11387
- padding-left: 0.5rem;
11416
+ const CardCheckbox = styled(Checkbox) `
11417
+ padding-left: 0.5rem;
11388
11418
  `;
11389
11419
 
11390
11420
  const DashboardCheckbox = ({ title, checked, onChange, }) => {
@@ -11458,15 +11488,15 @@ const FeatureCardTitle = ({ title, description }) => {
11458
11488
  return (jsxs(HeaderTitleContainer, { children: [jsx(FeatureTitleContainer, { children: jsx(FlexSpan, { children: resultTitle }) }), jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
11459
11489
  };
11460
11490
 
11461
- const HiddenFilters = styled(Flex) `
11462
- flex-wrap: wrap;
11463
- margin-top: -1.25rem;
11464
-
11465
- ${DashboardChip$1} {
11466
- height: 1.5rem;
11467
- margin: 0 0.25rem 0.25rem 0;
11468
- padding: 0 0 0 0.5rem;
11469
- }
11491
+ const HiddenFilters = styled(Flex) `
11492
+ flex-wrap: wrap;
11493
+ margin-top: -1.25rem;
11494
+
11495
+ ${DashboardChip$1} {
11496
+ height: 1.5rem;
11497
+ margin: 0 0.25rem 0.25rem 0;
11498
+ padding: 0 0 0 0.5rem;
11499
+ }
11470
11500
  `;
11471
11501
 
11472
11502
  function spliceValue(filterValue, splicingValue) {
@@ -11652,24 +11682,24 @@ const LogTerminal = ({ log, terminalOptions, className, styles }) => {
11652
11682
  return jsx(TerminalWrapper, { ref: terminalRef, className: className, style: styles });
11653
11683
  };
11654
11684
 
11655
- const PageNavigator = styled(Flex) `
11656
- margin-right: -0.5rem;
11657
- align-items: center;
11658
-
11659
- button {
11660
- width: auto;
11661
- height: 2rem;
11662
- padding: 0 0.5rem;
11663
-
11664
- span[kind]:after {
11665
- color: ${({ theme: { palette } }) => palette.textDisabled};
11666
- transition: color ${transition.hover};
11667
- }
11668
-
11669
- :hover span[kind]:after {
11670
- color: ${({ theme: { palette } }) => palette.textSecondary};
11671
- }
11672
- }
11685
+ const PageNavigator = styled(Flex) `
11686
+ margin-right: -0.5rem;
11687
+ align-items: center;
11688
+
11689
+ button {
11690
+ width: auto;
11691
+ height: 2rem;
11692
+ padding: 0 0.5rem;
11693
+
11694
+ span[kind]:after {
11695
+ color: ${({ theme: { palette } }) => palette.textDisabled};
11696
+ transition: color ${transition.hover};
11697
+ }
11698
+
11699
+ :hover span[kind]:after {
11700
+ color: ${({ theme: { palette } }) => palette.textSecondary};
11701
+ }
11702
+ }
11673
11703
  `;
11674
11704
 
11675
11705
  const Pagination = memo(({ type = WidgetType.Dashboard }) => {
@@ -11678,34 +11708,34 @@ const Pagination = memo(({ type = WidgetType.Dashboard }) => {
11678
11708
  return (jsxs(PageNavigator, { children: [jsx(IconButton, { kind: "prev", onClick: () => prevPage(pages.length) }), jsx(IconButton, { kind: "next", onClick: () => nextPage(pages.length) })] }));
11679
11709
  });
11680
11710
 
11681
- const StyledSvgWidthMixin = css `
11682
- &&& {
11683
- svg {
11684
- width: ${({ $width }) => $width}px;
11685
- }
11686
- }
11711
+ const StyledSvgWidthMixin = css `
11712
+ &&& {
11713
+ svg {
11714
+ width: ${({ $width }) => $width}px;
11715
+ }
11716
+ }
11687
11717
  `;
11688
- const StyledSvgHeightMixin = css `
11689
- &&& {
11690
- svg {
11691
- height: ${({ $height }) => $height}px;
11692
- }
11693
- }
11718
+ const StyledSvgHeightMixin = css `
11719
+ &&& {
11720
+ svg {
11721
+ height: ${({ $height }) => $height}px;
11722
+ }
11723
+ }
11694
11724
  `;
11695
- const StyledSvgColorMixin = css `
11696
- svg {
11697
- path,
11698
- line,
11699
- circle {
11700
- fill: ${({ $fontColor }) => $fontColor} !important;
11701
- }
11702
- }
11725
+ const StyledSvgColorMixin = css `
11726
+ svg {
11727
+ path,
11728
+ line,
11729
+ circle {
11730
+ fill: ${({ $fontColor }) => $fontColor} !important;
11731
+ }
11732
+ }
11703
11733
  `;
11704
- const StyledSvg = styled(Flex) `
11705
- align-items: center;
11706
- ${({ $width }) => !!$width && StyledSvgWidthMixin};
11707
- ${({ $height }) => !!$height && StyledSvgHeightMixin};
11708
- ${({ $fontColor }) => !!$fontColor && StyledSvgColorMixin};
11734
+ const StyledSvg = styled(Flex) `
11735
+ align-items: center;
11736
+ ${({ $width }) => !!$width && StyledSvgWidthMixin};
11737
+ ${({ $height }) => !!$height && StyledSvgHeightMixin};
11738
+ ${({ $fontColor }) => !!$fontColor && StyledSvgColorMixin};
11709
11739
  `;
11710
11740
 
11711
11741
  const SvgImage = memo(({ url, width, height, fontColor }) => {
@@ -12003,28 +12033,28 @@ const Layer = ({ layer, layerType, visible, beforeId, tileUrl, getLayerTempStyle
12003
12033
  return (jsx(VectorLayer, { layer: layer, tileUrl: tileUrl, visible: visible, beforeId: beforeId, getLayerTempStyle: getLayerTempStyle, filterVersion: filterVersion }));
12004
12034
  };
12005
12035
 
12006
- const MapWrapper = styled.div `
12007
- position: relative;
12008
- width: 100%;
12009
- height: 100%;
12010
- box-sizing: border-box;
12011
- z-index: ${({ $zIndex }) => $zIndex ?? 1};
12012
-
12013
- .mapbox-gl-draw_trash {
12014
- display: none;
12015
- }
12016
-
12017
- .mapboxgl-ctrl-logo {
12018
- display: none;
12019
- }
12020
-
12021
- .mapboxgl-ctrl.mapboxgl-ctrl-attrib {
12022
- display: none;
12023
- }
12024
-
12025
- .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {
12026
- width: 350px;
12027
- }
12036
+ const MapWrapper = styled.div `
12037
+ position: relative;
12038
+ width: 100%;
12039
+ height: 100%;
12040
+ box-sizing: border-box;
12041
+ z-index: ${({ $zIndex }) => $zIndex ?? 1};
12042
+
12043
+ .mapbox-gl-draw_trash {
12044
+ display: none;
12045
+ }
12046
+
12047
+ .mapboxgl-ctrl-logo {
12048
+ display: none;
12049
+ }
12050
+
12051
+ .mapboxgl-ctrl.mapboxgl-ctrl-attrib {
12052
+ display: none;
12053
+ }
12054
+
12055
+ .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {
12056
+ width: 350px;
12057
+ }
12028
12058
  `;
12029
12059
 
12030
12060
  const Map$1 = ({ zIndex, lowerSiblings, upperSiblings, onError, children, ...rest }) => {