@evergis/react 4.0.55 → 4.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Dashboard/containers/styled.d.ts +6 -1
- package/dist/components/Dashboard/elements/ElementSlideshow/useElementSlideshow.d.ts +11 -0
- package/dist/components/Dashboard/elements/registry.d.ts +0 -1
- package/dist/components/Dashboard/headers/FeatureCardDefaultHeader/styled.d.ts +6 -4
- package/dist/components/Dashboard/headers/FeatureCardGradientHeader/styled.d.ts +5 -0
- package/dist/components/Dashboard/headers/FeatureCardSlideshowHeader/styled.d.ts +2 -0
- package/dist/components/Dashboard/headers/components/HeaderLayerIcon.d.ts +2 -0
- package/dist/components/Dashboard/headers/components/styled.d.ts +1 -0
- package/dist/components/Dashboard/headers/index.d.ts +1 -1
- package/dist/components/Dashboard/headers/styled.d.ts +5 -0
- package/dist/components/Dashboard/hooks/index.d.ts +3 -0
- package/dist/components/Dashboard/hooks/useAttachmentItems.d.ts +13 -0
- package/dist/components/Dashboard/hooks/useAttachmentPreviewImages.d.ts +8 -0
- package/dist/components/Dashboard/hooks/useEditGroupAttributes.d.ts +7 -0
- package/dist/components/Dashboard/types.d.ts +2 -3
- package/dist/components/Dashboard/utils/getSlideshowImages.d.ts +1 -1
- package/dist/components/Dashboard/utils/getThemeByName.d.ts +2 -0
- package/dist/components/Dashboard/utils/index.d.ts +2 -0
- package/dist/components/Dashboard/utils/toRenderableValue.d.ts +14 -0
- package/dist/components/LayerIcon/index.d.ts +1 -0
- package/dist/index.js +900 -850
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +898 -853
- package/dist/react.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/components/Dashboard/containers/AttachmentContainer/usePreviewImages.d.ts +0 -8
- package/dist/components/Dashboard/elements/ElementLayerName/index.d.ts +0 -3
- package/dist/components/Dashboard/headers/FeatureCardIconHeader/index.d.ts +0 -3
- package/dist/components/Dashboard/headers/FeatureCardIconHeader/styled.d.ts +0 -7
- /package/dist/components/Dashboard/headers/{FeatureCardDefaultHeader/components → components}/HeaderTitle.d.ts +0 -0
package/dist/react.esm.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
-
import { IconButton, Flex, transition, Chip, Icon, Description, FlexSpan, IconToggle, Popup, Menu, DraggableTree, shadows, Divider, LegendToggler, Tooltip as Tooltip$1, DropdownField, MultiSelectContainer, IconButtonButton, FlatButton, DraggableTreeContainer, Dialog, DialogTitle, ThemeProvider, darkTheme, DialogContent, CircularProgress, Switch, AutoComplete, Input, Slider, Dropdown, Checkbox, DatePicker, getLocale, IconToggleButton, LinearProgress, ActionsGroup, DialogActions, RaisedButton, Preview, H2,
|
|
3
|
-
import {
|
|
2
|
+
import { IconButton, Flex, transition, Chip, Icon, Description, FlexSpan, IconToggle, Popup, Menu, DraggableTree, shadows, Divider, LegendToggler, Tooltip as Tooltip$1, DropdownField, MultiSelectContainer, IconButtonButton, FlatButton, DraggableTreeContainer, Dialog, DialogTitle, ThemeProvider, darkTheme, DialogContent, CircularProgress, Switch, AutoComplete, Input, Slider, Dropdown, Checkbox, DatePicker, getLocale, IconToggleButton, LinearProgress, ActionsGroup, DialogActions, RaisedButton, Preview, H2, Blank, Popover, UploaderItemArea, UploaderTitleWrapper, Uploader, NumberRangeSlider, useAsyncAutocomplete, RangeNumberInput, defaultTheme, dateFormat } from '@evergis/uilib-gl';
|
|
3
|
+
import { createContext, memo, useRef, useState, useCallback, useEffect, useContext, useMemo, isValidElement, Fragment } from 'react';
|
|
4
4
|
import styled, { createGlobalStyle, css, useTheme } from 'styled-components';
|
|
5
5
|
import { lineChartClassNames, BarChart as BarChart$1, barChartClassNames, LineChart, PieChart } from '@evergis/charts';
|
|
6
|
-
import { AttributeType, generateId, STORAGE_TOKEN_KEY, parseJwt, STORAGE_REFRESH_TOKEN_KEY, RemoteTaskStatus, LayerServiceType, OgcGeometryType,
|
|
6
|
+
import { AttributeType, generateId, STORAGE_TOKEN_KEY, parseJwt, STORAGE_REFRESH_TOKEN_KEY, RemoteTaskStatus, LayerServiceType, OgcGeometryType, StringSubType, AttributeConfigurationType } from '@evergis/api';
|
|
7
7
|
import Gradient from 'javascript-color-gradient';
|
|
8
8
|
import { Color as Color$1 } from '@evergis/color';
|
|
9
9
|
import { isValid, format, parseJSON, parseISO, toDate } from 'date-fns';
|
|
10
10
|
import { isNil, isEmpty, isEqual, uniqueId, unescape } from 'lodash';
|
|
11
11
|
import { ru, enUS } from 'date-fns/locale';
|
|
12
|
-
import { changeProps, returnFound } from 'find-and';
|
|
13
12
|
import { HubConnectionBuilder, HttpTransportType, LogLevel } from '@microsoft/signalr';
|
|
13
|
+
import { changeProps, returnFound } from 'find-and';
|
|
14
14
|
import MapboxDraw from '@mapbox/mapbox-gl-draw';
|
|
15
15
|
import { bbox } from '@turf/turf';
|
|
16
16
|
import MapGL, { Source, Layer as Layer$1 } from 'react-map-gl/maplibre';
|
|
@@ -3404,7 +3404,6 @@ var HeaderTemplate;
|
|
|
3404
3404
|
HeaderTemplate["Default"] = "Default";
|
|
3405
3405
|
HeaderTemplate["Slideshow"] = "Slideshow";
|
|
3406
3406
|
HeaderTemplate["Gradient"] = "Gradient";
|
|
3407
|
-
HeaderTemplate["Icon"] = "Icon";
|
|
3408
3407
|
})(HeaderTemplate || (HeaderTemplate = {}));
|
|
3409
3408
|
var WidgetType;
|
|
3410
3409
|
(function (WidgetType) {
|
|
@@ -3924,161 +3923,654 @@ const metersPerPixel = (zoom, lat) => {
|
|
|
3924
3923
|
return (156543.03 * Math.cos(lat * (Math.PI / 180))) / 2 ** zoom;
|
|
3925
3924
|
};
|
|
3926
3925
|
|
|
3927
|
-
const
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
.filter(Boolean)
|
|
3932
|
-
.map(item => ({ text: String(item), value: String(item) })), [items]);
|
|
3933
|
-
const onChange = useCallback((newValue) => setValue(newValue), []);
|
|
3934
|
-
return {
|
|
3935
|
-
value,
|
|
3936
|
-
setValue,
|
|
3937
|
-
onChange,
|
|
3938
|
-
options: staticOptions.length ? staticOptions : options,
|
|
3939
|
-
setOptions,
|
|
3940
|
-
};
|
|
3941
|
-
};
|
|
3942
|
-
|
|
3943
|
-
const eqlParametersToPayload = (parameters) => Object.keys(parameters).reduce((result, paramName) => ({
|
|
3944
|
-
...result,
|
|
3945
|
-
[paramName]: parameters[paramName].default,
|
|
3946
|
-
}), {});
|
|
3947
|
-
|
|
3948
|
-
const addDataSource = (dashboardConfiguration, pageIndex, query, additional) => {
|
|
3949
|
-
const newConfig = JSON.parse(JSON.stringify(dashboardConfiguration));
|
|
3950
|
-
if (!newConfig.children[0].children[pageIndex].dataSources) {
|
|
3951
|
-
newConfig.children[0].children[pageIndex].dataSources = [];
|
|
3952
|
-
}
|
|
3953
|
-
const freeId = newConfig.children[0].children[pageIndex].dataSources.length + 1;
|
|
3954
|
-
const parameters = eqlParametersToPayload(additional.parameters);
|
|
3955
|
-
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
3956
|
-
name: `datasource_${freeId}`,
|
|
3957
|
-
query,
|
|
3958
|
-
parameters,
|
|
3959
|
-
offset: 0,
|
|
3960
|
-
limit: DEFAULT_DATA_SOURCE_LIMIT,
|
|
3961
|
-
});
|
|
3962
|
-
return newConfig.children;
|
|
3963
|
-
};
|
|
3926
|
+
const DashboardContext = createContext({});
|
|
3927
|
+
const DashboardProvider = memo(({ children, ...props }) => {
|
|
3928
|
+
return jsx(DashboardContext.Provider, { value: props, children: children });
|
|
3929
|
+
});
|
|
3964
3930
|
|
|
3965
|
-
const
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
}
|
|
3970
|
-
layerNames.forEach(layerName => {
|
|
3971
|
-
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
3972
|
-
name: layerName.split(".")[1],
|
|
3973
|
-
layerName,
|
|
3974
|
-
query: "",
|
|
3975
|
-
parameters: {},
|
|
3976
|
-
});
|
|
3977
|
-
});
|
|
3978
|
-
return newConfig.children;
|
|
3979
|
-
};
|
|
3931
|
+
const FeatureCardContext = createContext({});
|
|
3932
|
+
const FeatureCardProvider = memo(({ children, ...props }) => {
|
|
3933
|
+
return jsx(FeatureCardContext.Provider, { value: props, children: children });
|
|
3934
|
+
});
|
|
3980
3935
|
|
|
3981
|
-
const
|
|
3936
|
+
const GlobalContext = createContext({});
|
|
3937
|
+
const GlobalProvider = memo(({ children, ...props }) => {
|
|
3938
|
+
return jsx(GlobalContext.Provider, { value: props, children: children });
|
|
3939
|
+
});
|
|
3982
3940
|
|
|
3983
|
-
const
|
|
3941
|
+
const MapContext = createContext({});
|
|
3984
3942
|
|
|
3985
|
-
const
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
const
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3943
|
+
const MapProvider = ({ basemapItems, defaultBasemap, children }) => {
|
|
3944
|
+
const map = useRef();
|
|
3945
|
+
const draw = useRef();
|
|
3946
|
+
const [loaded, setLoaded] = useState(false);
|
|
3947
|
+
const [basemapName, setBasemapName] = useState(defaultBasemap);
|
|
3948
|
+
return (jsx(MapContext.Provider, { value: {
|
|
3949
|
+
map,
|
|
3950
|
+
draw,
|
|
3951
|
+
loaded,
|
|
3952
|
+
setLoaded,
|
|
3953
|
+
basemapItems,
|
|
3954
|
+
basemapName,
|
|
3955
|
+
setBasemapName,
|
|
3956
|
+
defaultBasemap,
|
|
3957
|
+
}, children: children }));
|
|
3993
3958
|
};
|
|
3994
3959
|
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
: selectedFilters?.[filterName]?.value) ?? defaultValue);
|
|
4001
|
-
};
|
|
3960
|
+
var BaseMapTheme;
|
|
3961
|
+
(function (BaseMapTheme) {
|
|
3962
|
+
BaseMapTheme["Light"] = "light";
|
|
3963
|
+
BaseMapTheme["Dark"] = "dark";
|
|
3964
|
+
})(BaseMapTheme || (BaseMapTheme = {}));
|
|
4002
3965
|
|
|
4003
|
-
const
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
if (provider === ProviderPrefix.Card && fieldName && layerInfo.name === layerName && attributes) {
|
|
4012
|
-
const attribute = attributes.find(({ attributeName }) => attributeName === fieldName);
|
|
4013
|
-
const cardValue = attribute?.value ?? null;
|
|
4014
|
-
if (isNil(cardValue))
|
|
4015
|
-
return result;
|
|
4016
|
-
return { ...result, [key]: cardValue };
|
|
4017
|
-
}
|
|
4018
|
-
if (provider === ProviderPrefix.Left && layerName && fieldName && projectDataSources?.length) {
|
|
4019
|
-
const dataSource = projectDataSources.find(({ layerName: name }) => name === layerName);
|
|
4020
|
-
const leftValue = dataSource?.features?.[0]?.properties?.[fieldName] ?? null;
|
|
4021
|
-
if (isNil(leftValue))
|
|
4022
|
-
return result;
|
|
4023
|
-
return { ...result, [key]: leftValue };
|
|
4024
|
-
}
|
|
4025
|
-
return result;
|
|
3966
|
+
const ServerNotificationsContext = createContext({});
|
|
3967
|
+
|
|
3968
|
+
const useServerNotifications = (url, initialized, apiClient) => {
|
|
3969
|
+
const hubConnection = useRef(null);
|
|
3970
|
+
const [connection, setConnection] = useState(null);
|
|
3971
|
+
const subscribeNotifications = useCallback(() => {
|
|
3972
|
+
if (!connection || connection.state !== "Connected") {
|
|
3973
|
+
return;
|
|
4026
3974
|
}
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
});
|
|
4036
|
-
return { ...result, [key]: interpolated };
|
|
3975
|
+
connection
|
|
3976
|
+
.invoke("SubscribeNotifications", [])
|
|
3977
|
+
.then(() => console.info("Подписка `SubscribeNotifications` оформлена"))
|
|
3978
|
+
.catch(err => console.info("Ошибка подписки `SubscribeNotifications`:", err));
|
|
3979
|
+
}, [connection]);
|
|
3980
|
+
useEffect(() => {
|
|
3981
|
+
if (!initialized) {
|
|
3982
|
+
return;
|
|
4037
3983
|
}
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
3984
|
+
hubConnection.current = new HubConnectionBuilder()
|
|
3985
|
+
.withUrl(`${url}?clientId=${generateId()}`, {
|
|
3986
|
+
withCredentials: true,
|
|
3987
|
+
skipNegotiation: true,
|
|
3988
|
+
transport: HttpTransportType.WebSockets,
|
|
3989
|
+
accessTokenFactory: async () => {
|
|
3990
|
+
let accessToken = window.localStorage.getItem(STORAGE_TOKEN_KEY) || "";
|
|
3991
|
+
const { exp } = parseJwt(accessToken);
|
|
3992
|
+
const currentTime = new Date().getTime() / 1000;
|
|
3993
|
+
if (currentTime > exp) {
|
|
3994
|
+
const refreshToken = window.localStorage.getItem(STORAGE_REFRESH_TOKEN_KEY);
|
|
3995
|
+
if (refreshToken) {
|
|
3996
|
+
const refreshTokenResponse = await apiClient.account.refreshToken({
|
|
3997
|
+
refreshToken,
|
|
3998
|
+
});
|
|
3999
|
+
if (refreshTokenResponse) {
|
|
4000
|
+
accessToken = refreshTokenResponse.token;
|
|
4001
|
+
window.localStorage.setItem(STORAGE_TOKEN_KEY, refreshTokenResponse.token);
|
|
4002
|
+
window.localStorage.setItem(STORAGE_REFRESH_TOKEN_KEY, refreshTokenResponse.refreshToken);
|
|
4003
|
+
}
|
|
4004
|
+
}
|
|
4005
|
+
else {
|
|
4006
|
+
await apiClient.logout();
|
|
4007
|
+
}
|
|
4008
|
+
}
|
|
4009
|
+
return accessToken;
|
|
4010
|
+
},
|
|
4011
|
+
})
|
|
4012
|
+
.withAutomaticReconnect()
|
|
4013
|
+
.configureLogging(LogLevel.Information)
|
|
4014
|
+
.build();
|
|
4015
|
+
hubConnection.current
|
|
4016
|
+
.start()
|
|
4017
|
+
.then(() => console.info("Серверные нотификации подключены"))
|
|
4018
|
+
.catch(err => console.info("Ошибка:", err))
|
|
4019
|
+
.finally(() => setConnection(hubConnection.current));
|
|
4020
|
+
}, [initialized]); // eslint-disable-line
|
|
4021
|
+
useEffect(() => {
|
|
4022
|
+
if (!connection || connection.state !== "Connected") {
|
|
4023
|
+
return;
|
|
4043
4024
|
}
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4025
|
+
connection.onreconnecting(() => console.info("Переподключение к серверным нотификациям"));
|
|
4026
|
+
connection.onreconnected(subscribeNotifications);
|
|
4027
|
+
subscribeNotifications();
|
|
4028
|
+
}, [connection]);
|
|
4029
|
+
return connection;
|
|
4030
|
+
};
|
|
4031
|
+
|
|
4032
|
+
const ServerNotificationsProvider = ({ url, initialized, apiClient, children }) => {
|
|
4033
|
+
const connection = useServerNotifications(url, initialized, apiClient);
|
|
4034
|
+
const addSubscription = useCallback(async (payload) => {
|
|
4035
|
+
if (!connection || connection.state !== "Connected" || !payload) {
|
|
4036
|
+
return;
|
|
4052
4037
|
}
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
};
|
|
4038
|
+
try {
|
|
4039
|
+
const id = await connection.invoke("AddSubscription", payload);
|
|
4040
|
+
console.info("Подписка добавлена, id:", id);
|
|
4041
|
+
return id;
|
|
4058
4042
|
}
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
[key]: selectedFilters?.[filterName]?.min ?? (Array.isArray(defaultValue) ? defaultValue[0] : defaultValue),
|
|
4063
|
-
};
|
|
4043
|
+
catch (err) {
|
|
4044
|
+
console.info("Ошибка добавления подписки:", err);
|
|
4045
|
+
return Promise.resolve(null);
|
|
4064
4046
|
}
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
filterName,
|
|
4070
|
-
filterProp,
|
|
4071
|
-
selectedFilters,
|
|
4072
|
-
attributeAlias,
|
|
4073
|
-
dataSource: getDataSource(relatedDataSource, dataSources),
|
|
4074
|
-
}) ?? defaultValue,
|
|
4075
|
-
};
|
|
4047
|
+
}, [connection]);
|
|
4048
|
+
const updateSubscription = useCallback(async (id, payload) => {
|
|
4049
|
+
if (!connection || connection.state !== "Connected" || !id || !payload) {
|
|
4050
|
+
return;
|
|
4076
4051
|
}
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
return result;
|
|
4052
|
+
try {
|
|
4053
|
+
await connection.invoke("UpdateSubscription", id, payload);
|
|
4080
4054
|
}
|
|
4081
|
-
|
|
4055
|
+
catch (err) {
|
|
4056
|
+
console.info(`Ошибка обновления подписки ${id}:`, err);
|
|
4057
|
+
}
|
|
4058
|
+
}, [connection]);
|
|
4059
|
+
const unsubscribeById = useCallback(async (id) => {
|
|
4060
|
+
if (!connection || connection.state !== "Connected" || !id) {
|
|
4061
|
+
return;
|
|
4062
|
+
}
|
|
4063
|
+
try {
|
|
4064
|
+
await connection.invoke("Unsubscribe", [id]);
|
|
4065
|
+
}
|
|
4066
|
+
catch (err) {
|
|
4067
|
+
console.info(`Ошибка отписки по ${id}:`, err);
|
|
4068
|
+
}
|
|
4069
|
+
}, [connection]);
|
|
4070
|
+
return (jsx(ServerNotificationsContext.Provider, { value: {
|
|
4071
|
+
connection,
|
|
4072
|
+
addSubscription,
|
|
4073
|
+
updateSubscription,
|
|
4074
|
+
unsubscribeById,
|
|
4075
|
+
}, children: children }));
|
|
4076
|
+
};
|
|
4077
|
+
|
|
4078
|
+
const useWidgetContext = (type = WidgetType.Dashboard) => {
|
|
4079
|
+
const { toggleLayersVisibility, visibleLayers, projectInfo, updateProject, layerInfos, geometryFilter, dashboardLayers, setDashboardLayer, components: dashboardComponents, selectAttachmentsFromCatalog, config: dashboardConfig, containerIds, pageIndex: projectPageIndex, selectedTabId: projectSelectedTabId, setSelectedTabId: setProjectSelectedTabId, dataSources: projectDataSources, loading: projectLoading, editMode: projectEditMode, filters: projectFilters, changeFilters: projectChangeFilters, expandContainer: projectExpandContainer, expandedContainers: projectExpandedContainers, nextPage: projectNextPage, prevPage: projectPrevPage, changePage: projectChangePage, } = useContext(DashboardContext) || {};
|
|
4080
|
+
const { layerInfo, attributes, feature, controls, changeControls, closeFeatureCard, config: featureConfig, pageIndex: featurePageIndex, selectedTabId: featureSelectedTabId, setSelectedTabId: setFeatureSelectedTabId, dataSources: featureDataSources, loading: featureLoading, editMode: featureEditMode, filters: featureFilters, changeFilters: featureChangeFilters, expandContainer: featureExpandContainer, expandedContainers: featureExpandedContainers, nextPage: featureNextPage, prevPage: featurePrevPage, changePage: featureChangePage, } = useContext(FeatureCardContext) || {};
|
|
4081
|
+
return {
|
|
4082
|
+
toggleLayersVisibility,
|
|
4083
|
+
visibleLayers,
|
|
4084
|
+
projectInfo,
|
|
4085
|
+
layerInfos,
|
|
4086
|
+
updateProject,
|
|
4087
|
+
dashboardLayers,
|
|
4088
|
+
setDashboardLayer,
|
|
4089
|
+
geometryFilter,
|
|
4090
|
+
layerInfo,
|
|
4091
|
+
attributes,
|
|
4092
|
+
feature,
|
|
4093
|
+
closeFeatureCard,
|
|
4094
|
+
containerIds,
|
|
4095
|
+
controls,
|
|
4096
|
+
changeControls,
|
|
4097
|
+
components: dashboardComponents,
|
|
4098
|
+
selectAttachmentsFromCatalog,
|
|
4099
|
+
config: type === WidgetType.Dashboard ? dashboardConfig : featureConfig,
|
|
4100
|
+
isEditing: type === WidgetType.Dashboard ? projectEditMode : featureEditMode,
|
|
4101
|
+
isLoading: type === WidgetType.Dashboard ? projectLoading : featureLoading,
|
|
4102
|
+
pageIndex: type === WidgetType.Dashboard ? projectPageIndex || 1 : featurePageIndex || 1,
|
|
4103
|
+
filters: type === WidgetType.Dashboard ? projectFilters : featureFilters,
|
|
4104
|
+
changeFilters: type === WidgetType.Dashboard ? projectChangeFilters : featureChangeFilters,
|
|
4105
|
+
dataSources: type === WidgetType.Dashboard ? projectDataSources : featureDataSources,
|
|
4106
|
+
expandContainer: type === WidgetType.Dashboard ? projectExpandContainer : featureExpandContainer,
|
|
4107
|
+
expandedContainers: type === WidgetType.Dashboard ? projectExpandedContainers : featureExpandedContainers,
|
|
4108
|
+
selectedTabId: type === WidgetType.Dashboard ? projectSelectedTabId : featureSelectedTabId,
|
|
4109
|
+
setSelectedTabId: type === WidgetType.Dashboard ? setProjectSelectedTabId : setFeatureSelectedTabId,
|
|
4110
|
+
nextPage: type === WidgetType.Dashboard ? projectNextPage : featureNextPage,
|
|
4111
|
+
prevPage: type === WidgetType.Dashboard ? projectPrevPage : featurePrevPage,
|
|
4112
|
+
changePage: type === WidgetType.Dashboard ? projectChangePage : featureChangePage,
|
|
4113
|
+
};
|
|
4114
|
+
};
|
|
4115
|
+
|
|
4116
|
+
const parseAttachments = (raw) => {
|
|
4117
|
+
if (!raw)
|
|
4118
|
+
return [];
|
|
4119
|
+
if (Array.isArray(raw))
|
|
4120
|
+
return raw;
|
|
4121
|
+
if (typeof raw !== "string")
|
|
4122
|
+
return [];
|
|
4123
|
+
try {
|
|
4124
|
+
const parsed = JSON.parse(raw);
|
|
4125
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
4126
|
+
}
|
|
4127
|
+
catch {
|
|
4128
|
+
return [];
|
|
4129
|
+
}
|
|
4130
|
+
};
|
|
4131
|
+
const attachmentsFromFeatures = (features, mapping = {}) => {
|
|
4132
|
+
if (!features?.length)
|
|
4133
|
+
return [];
|
|
4134
|
+
const { attributeLink = "link", attributeName = "name", attributeMime = "mimeType", attributeDate = "date", } = mapping;
|
|
4135
|
+
return features
|
|
4136
|
+
.map(feature => {
|
|
4137
|
+
const link = feature.properties?.[attributeLink];
|
|
4138
|
+
if (!link)
|
|
4139
|
+
return null;
|
|
4140
|
+
return {
|
|
4141
|
+
link,
|
|
4142
|
+
name: feature.properties?.[attributeName] ?? link,
|
|
4143
|
+
mimeType: feature.properties?.[attributeMime] ?? "",
|
|
4144
|
+
date: feature.properties?.[attributeDate],
|
|
4145
|
+
isExternal: /^https?:\/\//.test(link),
|
|
4146
|
+
};
|
|
4147
|
+
})
|
|
4148
|
+
.filter(Boolean);
|
|
4149
|
+
};
|
|
4150
|
+
|
|
4151
|
+
const useAttachmentItems = ({ type, elementConfig, valueOverride, }) => {
|
|
4152
|
+
const { attributes, dataSources } = useWidgetContext(type);
|
|
4153
|
+
const { children, options } = elementConfig || {};
|
|
4154
|
+
const { relatedDataSource, controls } = options || {};
|
|
4155
|
+
const valueElement = useMemo(() => children?.find(({ id }) => id === "value"), [children]);
|
|
4156
|
+
const attributeName = useMemo(() => {
|
|
4157
|
+
const candidate = valueElement?.attributeName ?? elementConfig?.attributeName;
|
|
4158
|
+
return Array.isArray(candidate) ? candidate[0] : candidate;
|
|
4159
|
+
}, [valueElement, elementConfig]);
|
|
4160
|
+
const rawValue = useMemo(() => {
|
|
4161
|
+
if (valueOverride !== undefined)
|
|
4162
|
+
return valueOverride;
|
|
4163
|
+
if (!attributeName)
|
|
4164
|
+
return undefined;
|
|
4165
|
+
return attributes?.find(item => item.attributeName === attributeName)?.value;
|
|
4166
|
+
}, [valueOverride, attributeName, attributes]);
|
|
4167
|
+
const items = useMemo(() => {
|
|
4168
|
+
if (relatedDataSource) {
|
|
4169
|
+
const dataSource = dataSources?.find(({ name }) => name === relatedDataSource);
|
|
4170
|
+
const mapping = controls?.[0];
|
|
4171
|
+
return attachmentsFromFeatures(dataSource?.features, mapping);
|
|
4172
|
+
}
|
|
4173
|
+
return parseAttachments(rawValue);
|
|
4174
|
+
}, [relatedDataSource, dataSources, controls, rawValue]);
|
|
4175
|
+
return {
|
|
4176
|
+
items,
|
|
4177
|
+
attributeName,
|
|
4178
|
+
rawValue,
|
|
4179
|
+
};
|
|
4180
|
+
};
|
|
4181
|
+
|
|
4182
|
+
const useGlobalContext = () => {
|
|
4183
|
+
const { t, language, themeName, api, ewktGeometry } = useContext(GlobalContext) || {};
|
|
4184
|
+
const translate = useCallback((value, options) => {
|
|
4185
|
+
if (t)
|
|
4186
|
+
return t(value, options);
|
|
4187
|
+
return options?.defaultValue ?? value;
|
|
4188
|
+
}, [t]);
|
|
4189
|
+
return useMemo(() => ({
|
|
4190
|
+
t: translate,
|
|
4191
|
+
language,
|
|
4192
|
+
themeName,
|
|
4193
|
+
api,
|
|
4194
|
+
ewktGeometry,
|
|
4195
|
+
}), [language, translate, api, ewktGeometry, themeName]);
|
|
4196
|
+
};
|
|
4197
|
+
|
|
4198
|
+
const GRID_TILE_SIZE = "4.5rem";
|
|
4199
|
+
const LIST_ICON_SIZE = "1.5rem";
|
|
4200
|
+
const JPG_MIME_TYPE = "image/jpeg";
|
|
4201
|
+
const PNG_MIME_TYPE = "image/png";
|
|
4202
|
+
const IMAGE_MIME_TYPES = [
|
|
4203
|
+
"image/apng",
|
|
4204
|
+
"image/avif",
|
|
4205
|
+
"image/gif",
|
|
4206
|
+
"image/jpeg",
|
|
4207
|
+
"image/png",
|
|
4208
|
+
"image/svg+xml",
|
|
4209
|
+
"image/webp",
|
|
4210
|
+
];
|
|
4211
|
+
const XLSX_MIME_TYPES = [
|
|
4212
|
+
"application/vnd.ms-excel",
|
|
4213
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
4214
|
+
];
|
|
4215
|
+
const PDF_MIME_TYPE = "application/pdf";
|
|
4216
|
+
const DOCX_MIME_TYPES = [
|
|
4217
|
+
"application/msword",
|
|
4218
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
4219
|
+
];
|
|
4220
|
+
const CSV_MIME_TYPE = "text/csv";
|
|
4221
|
+
const JSON_MIME_TYPE = "application/json";
|
|
4222
|
+
const TXT_MIME_TYPE = "text/plain";
|
|
4223
|
+
const PPTX_MIME_TYPES = [
|
|
4224
|
+
"application/vnd.ms-powerpoint",
|
|
4225
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
4226
|
+
];
|
|
4227
|
+
const SHP_MIME_TYPE = "application/octet-stream";
|
|
4228
|
+
const KML_MIME_TYPE = "application/octet-stream";
|
|
4229
|
+
const ZIP_MIME_TYPE = "application/zip";
|
|
4230
|
+
const PYTHON_MIME_TYPES = ["application/x-python-code", "text/x-python"];
|
|
4231
|
+
var AddAttachmentSource;
|
|
4232
|
+
(function (AddAttachmentSource) {
|
|
4233
|
+
AddAttachmentSource["Pc"] = "pc";
|
|
4234
|
+
AddAttachmentSource["Catalog"] = "catalog";
|
|
4235
|
+
AddAttachmentSource["Link"] = "link";
|
|
4236
|
+
})(AddAttachmentSource || (AddAttachmentSource = {}));
|
|
4237
|
+
|
|
4238
|
+
var FileType;
|
|
4239
|
+
(function (FileType) {
|
|
4240
|
+
FileType[FileType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
4241
|
+
FileType[FileType["XLSX"] = 1] = "XLSX";
|
|
4242
|
+
FileType[FileType["PDF"] = 2] = "PDF";
|
|
4243
|
+
FileType[FileType["CSV"] = 3] = "CSV";
|
|
4244
|
+
FileType[FileType["DOCX"] = 4] = "DOCX";
|
|
4245
|
+
FileType[FileType["IMAGE"] = 5] = "IMAGE";
|
|
4246
|
+
FileType[FileType["TXT"] = 6] = "TXT";
|
|
4247
|
+
FileType[FileType["JSON"] = 7] = "JSON";
|
|
4248
|
+
FileType[FileType["KML"] = 8] = "KML";
|
|
4249
|
+
FileType[FileType["PPTX"] = 9] = "PPTX";
|
|
4250
|
+
FileType[FileType["SHP"] = 10] = "SHP";
|
|
4251
|
+
FileType[FileType["ZIP"] = 11] = "ZIP";
|
|
4252
|
+
FileType[FileType["JPEG"] = 12] = "JPEG";
|
|
4253
|
+
FileType[FileType["JPG"] = 13] = "JPG";
|
|
4254
|
+
FileType[FileType["PNG"] = 14] = "PNG";
|
|
4255
|
+
FileType[FileType["PYTHON"] = 15] = "PYTHON";
|
|
4256
|
+
})(FileType || (FileType = {}));
|
|
4257
|
+
const IMAGE_FILE_TYPES = [
|
|
4258
|
+
FileType.IMAGE,
|
|
4259
|
+
FileType.JPEG,
|
|
4260
|
+
FileType.JPG,
|
|
4261
|
+
FileType.PNG,
|
|
4262
|
+
];
|
|
4263
|
+
|
|
4264
|
+
const getFileType = (mimeType = "", name = "") => {
|
|
4265
|
+
if (mimeType === PNG_MIME_TYPE)
|
|
4266
|
+
return FileType.PNG;
|
|
4267
|
+
if (mimeType === JPG_MIME_TYPE)
|
|
4268
|
+
return FileType.JPG;
|
|
4269
|
+
if (IMAGE_MIME_TYPES.includes(mimeType))
|
|
4270
|
+
return FileType.IMAGE;
|
|
4271
|
+
if (XLSX_MIME_TYPES.includes(mimeType))
|
|
4272
|
+
return FileType.XLSX;
|
|
4273
|
+
if (DOCX_MIME_TYPES.includes(mimeType))
|
|
4274
|
+
return FileType.DOCX;
|
|
4275
|
+
if (mimeType === CSV_MIME_TYPE)
|
|
4276
|
+
return FileType.CSV;
|
|
4277
|
+
if (mimeType === PDF_MIME_TYPE)
|
|
4278
|
+
return FileType.PDF;
|
|
4279
|
+
if (mimeType === JSON_MIME_TYPE)
|
|
4280
|
+
return FileType.JSON;
|
|
4281
|
+
if (mimeType === KML_MIME_TYPE && (name.endsWith(".kml") || name.endsWith(".kmz"))) {
|
|
4282
|
+
return FileType.KML;
|
|
4283
|
+
}
|
|
4284
|
+
if (PYTHON_MIME_TYPES.includes(mimeType))
|
|
4285
|
+
return FileType.PYTHON;
|
|
4286
|
+
if (mimeType === TXT_MIME_TYPE && name.endsWith(".py"))
|
|
4287
|
+
return FileType.PYTHON;
|
|
4288
|
+
if (mimeType === TXT_MIME_TYPE)
|
|
4289
|
+
return FileType.TXT;
|
|
4290
|
+
if (PPTX_MIME_TYPES.includes(mimeType))
|
|
4291
|
+
return FileType.PPTX;
|
|
4292
|
+
if (mimeType === SHP_MIME_TYPE && name.endsWith(".shp"))
|
|
4293
|
+
return FileType.SHP;
|
|
4294
|
+
if (mimeType === ZIP_MIME_TYPE)
|
|
4295
|
+
return FileType.ZIP;
|
|
4296
|
+
return name.endsWith(".py") ? FileType.PYTHON : FileType.UNKNOWN;
|
|
4297
|
+
};
|
|
4298
|
+
|
|
4299
|
+
var img$j = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%2300AAFF'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cpath id='Vector_3' d='M9.84902 10.0353C9.69434 10.0353 9.55605 10.0112 9.43418 9.96318C9.3123 9.91396 9.20918 9.84658 9.1248 9.76104C9.0416 9.67549 8.97773 9.57705 8.9332 9.46572C8.88984 9.35439 8.86816 9.23662 8.86816 9.1124V9.04561C8.86816 8.90615 8.8875 8.77725 8.92617 8.65889C8.96484 8.53936 9.02227 8.43506 9.09844 8.346C9.17461 8.25693 9.27012 8.18779 9.38496 8.13857C9.4998 8.08818 9.6334 8.06299 9.78574 8.06299C9.92051 8.06299 10.0412 8.08467 10.1479 8.12803C10.2545 8.17139 10.3447 8.2335 10.4186 8.31436C10.4936 8.39521 10.5504 8.49307 10.5891 8.60791C10.6289 8.72275 10.6488 8.85166 10.6488 8.99463V9.23545H9.09492V8.86455H10.0705V8.81885C10.0717 8.75557 10.0605 8.70166 10.0371 8.65713C10.0148 8.6126 9.98203 8.57861 9.93867 8.55518C9.89531 8.53174 9.84258 8.52002 9.78047 8.52002C9.71602 8.52002 9.6627 8.53408 9.62051 8.56221C9.57949 8.59033 9.54727 8.629 9.52383 8.67822C9.50156 8.72627 9.48574 8.78193 9.47637 8.84521C9.46699 8.9085 9.46231 8.97529 9.46231 9.04561V9.1124C9.46231 9.18271 9.47168 9.24658 9.49043 9.304C9.51035 9.36143 9.53848 9.41064 9.5748 9.45166C9.6123 9.4915 9.65684 9.52256 9.7084 9.54482C9.76113 9.56709 9.8209 9.57822 9.8877 9.57822C9.96855 9.57822 10.0482 9.56299 10.1268 9.53252C10.2053 9.50205 10.2727 9.45166 10.3289 9.38135L10.5979 9.70127C10.5592 9.75635 10.5041 9.80967 10.4326 9.86123C10.3623 9.91279 10.2779 9.95498 10.1795 9.98779C10.0811 10.0194 9.9709 10.0353 9.84902 10.0353Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.4623 7.2998V9.9998H7.86816V7.2998H8.4623Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.17773 10.0001H5.58184V8.04893C5.58184 7.879 5.61699 7.73604 5.6873 7.62002C5.75879 7.50283 5.86133 7.41436 5.99492 7.35459C6.12852 7.29365 6.29023 7.26318 6.48008 7.26318C6.58789 7.26318 6.6916 7.27256 6.79121 7.29131C6.89082 7.31006 6.99395 7.33467 7.10059 7.36514L7.01797 7.83271C6.94883 7.81396 6.87617 7.79639 6.8 7.77998C6.725 7.76357 6.63066 7.75537 6.51699 7.75537C6.41035 7.75537 6.32715 7.78057 6.26738 7.83096C6.20762 7.88135 6.17773 7.954 6.17773 8.04893V10.0001ZM6.55039 8.09814V8.50947H5.30762V8.09814H6.55039ZM7.37129 8.09814V10.0001H6.77715V8.09814H7.37129Z' fill='white'/%3e%3c/g%3e%3c/svg%3e";
|
|
4300
|
+
|
|
4301
|
+
var img$i = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%2347C782'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='CSV'%3e%3cpath id='Vector_3' d='M10.3816 9.39736L10.9143 7.44092H11.6051L10.742 10.0003H10.2955L10.3816 9.39736ZM9.89824 7.44092L10.4309 9.39736L10.5205 10.0003H10.0687L9.21094 7.44092H9.89824Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.37852 9.32002C8.37852 9.28018 8.37266 9.24443 8.36094 9.21279C8.34922 9.17998 8.32754 9.14951 8.2959 9.12139C8.26426 9.09326 8.21855 9.06514 8.15879 9.03701C8.10019 9.00771 8.02285 8.97725 7.92676 8.94561C7.81426 8.90811 7.70586 8.86592 7.60156 8.81904C7.49727 8.771 7.4041 8.71533 7.32207 8.65205C7.24004 8.5876 7.175 8.5126 7.12695 8.42705C7.07891 8.34033 7.05488 8.23955 7.05488 8.12471C7.05488 8.01455 7.07949 7.91553 7.12871 7.82764C7.17793 7.73857 7.24648 7.66299 7.33437 7.60088C7.42344 7.5376 7.52773 7.48955 7.64727 7.45674C7.7668 7.42275 7.89746 7.40576 8.03926 7.40576C8.22676 7.40576 8.39199 7.43857 8.53496 7.5042C8.6791 7.56865 8.7916 7.66064 8.87246 7.78018C8.95449 7.89854 8.99551 8.03857 8.99551 8.20029H8.38203C8.38203 8.13584 8.36855 8.079 8.3416 8.02979C8.31582 7.98057 8.27656 7.94189 8.22383 7.91377C8.17109 7.88564 8.10488 7.87158 8.0252 7.87158C7.94785 7.87158 7.88281 7.8833 7.83008 7.90674C7.77734 7.93018 7.7375 7.96182 7.71055 8.00166C7.68359 8.04033 7.67012 8.08311 7.67012 8.12998C7.67012 8.16865 7.68066 8.20381 7.70176 8.23545C7.72402 8.26592 7.75508 8.29463 7.79492 8.32158C7.83594 8.34854 7.88516 8.37432 7.94258 8.39893C8.00117 8.42354 8.0668 8.44756 8.13945 8.471C8.27539 8.51436 8.39609 8.56299 8.50156 8.61689C8.6082 8.66963 8.69785 8.72998 8.77051 8.79795C8.84434 8.86475 8.9 8.94092 8.9375 9.02646C8.97617 9.11201 8.99551 9.20869 8.99551 9.3165C8.99551 9.43135 8.97324 9.5333 8.92871 9.62236C8.88418 9.71143 8.82031 9.78701 8.73711 9.84912C8.65391 9.91006 8.5543 9.95635 8.43828 9.98799C8.32227 10.0196 8.19277 10.0354 8.0498 10.0354C7.91855 10.0354 7.78906 10.019 7.66133 9.98623C7.53477 9.95225 7.41992 9.90068 7.3168 9.83154C7.21367 9.76123 7.13105 9.67158 7.06894 9.5626C7.00801 9.45244 6.97754 9.32178 6.97754 9.17061H7.59629C7.59629 9.24561 7.60625 9.30889 7.62617 9.36045C7.64609 9.41201 7.67539 9.45361 7.71406 9.48525C7.75273 9.51572 7.8002 9.53799 7.85645 9.55205C7.9127 9.56494 7.97715 9.57139 8.0498 9.57139C8.12832 9.57139 8.1916 9.56025 8.23965 9.53799C8.2877 9.51455 8.32285 9.48408 8.34512 9.44658C8.36738 9.40791 8.37852 9.36572 8.37852 9.32002Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.05293 9.1335H6.66816C6.65996 9.31162 6.61191 9.46865 6.52402 9.60459C6.43613 9.74053 6.31426 9.84658 6.1584 9.92275C6.00371 9.99775 5.8209 10.0353 5.60996 10.0353C5.43887 10.0353 5.28594 10.0065 5.15117 9.94912C5.01758 9.8917 4.90391 9.80908 4.81016 9.70127C4.71758 9.59346 4.64668 9.46279 4.59746 9.30928C4.54941 9.15576 4.52539 8.98291 4.52539 8.79072V8.65186C4.52539 8.45967 4.55059 8.28682 4.60098 8.1333C4.65254 7.97861 4.7252 7.84736 4.81895 7.73955C4.91387 7.63057 5.02754 7.54736 5.15996 7.48994C5.29238 7.43252 5.43945 7.40381 5.60117 7.40381C5.82383 7.40381 6.01191 7.44365 6.16543 7.52334C6.31895 7.60303 6.43789 7.7126 6.52227 7.85205C6.60664 7.99033 6.65645 8.14795 6.67168 8.3249H6.05645C6.0541 8.22881 6.0377 8.14854 6.00723 8.08408C5.97676 8.01846 5.92871 7.96924 5.86309 7.93643C5.79746 7.90361 5.71016 7.88721 5.60117 7.88721C5.525 7.88721 5.45879 7.90127 5.40254 7.92939C5.34629 7.95752 5.29941 8.00205 5.26191 8.06299C5.22441 8.12393 5.19629 8.20303 5.17754 8.30029C5.15996 8.39639 5.15117 8.5124 5.15117 8.64834V8.79072C5.15117 8.92666 5.15938 9.04268 5.17578 9.13877C5.19219 9.23486 5.21855 9.31338 5.25488 9.37432C5.29121 9.43525 5.33809 9.48037 5.39551 9.50967C5.4541 9.53779 5.52559 9.55186 5.60996 9.55186C5.70371 9.55186 5.78281 9.53721 5.84727 9.50791C5.91172 9.47744 5.96152 9.43174 5.99668 9.3708C6.03184 9.30869 6.05059 9.22959 6.05293 9.1335Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4302
|
+
|
|
4303
|
+
var img$h = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%232B7CD3'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='DOCX'%3e%3cpath id='Vector_3' d='M11.3209 7.44092L11.7393 8.2917L12.1576 7.44092H12.8607L12.1471 8.71006L12.8801 10.0003H12.1699L11.7393 9.13369L11.3086 10.0003H10.5967L11.3314 8.71006L10.616 7.44092H11.3209Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.77754 9.1335H10.3928C10.3846 9.31162 10.3365 9.46865 10.2486 9.60459C10.1607 9.74053 10.0389 9.84658 9.88301 9.92275C9.72832 9.99775 9.54551 10.0353 9.33457 10.0353C9.16348 10.0353 9.01055 10.0065 8.87578 9.94912C8.74219 9.8917 8.62852 9.80908 8.53477 9.70127C8.44219 9.59346 8.37129 9.46279 8.32207 9.30928C8.27402 9.15576 8.25 8.98291 8.25 8.79072V8.65186C8.25 8.45967 8.2752 8.28682 8.32559 8.1333C8.37715 7.97861 8.4498 7.84736 8.54355 7.73955C8.63848 7.63057 8.75215 7.54736 8.88457 7.48994C9.01699 7.43252 9.16406 7.40381 9.32578 7.40381C9.54844 7.40381 9.73652 7.44365 9.89004 7.52334C10.0436 7.60303 10.1625 7.7126 10.2469 7.85205C10.3313 7.99033 10.3811 8.14795 10.3963 8.3249H9.78105C9.77871 8.22881 9.7623 8.14854 9.73184 8.08408C9.70137 8.01846 9.65332 7.96924 9.5877 7.93643C9.52207 7.90361 9.43477 7.88721 9.32578 7.88721C9.24961 7.88721 9.1834 7.90127 9.12715 7.92939C9.0709 7.95752 9.02402 8.00205 8.98652 8.06299C8.94902 8.12393 8.9209 8.20303 8.90215 8.30029C8.88457 8.39639 8.87578 8.5124 8.87578 8.64834V8.79072C8.87578 8.92666 8.88398 9.04268 8.90039 9.13877C8.9168 9.23486 8.94316 9.31338 8.97949 9.37432C9.01582 9.43525 9.0627 9.48037 9.12012 9.50967C9.17871 9.53779 9.2502 9.55186 9.33457 9.55186C9.42832 9.55186 9.50742 9.53721 9.57188 9.50791C9.63633 9.47744 9.68613 9.43174 9.72129 9.3708C9.75645 9.30869 9.7752 9.22959 9.77754 9.1335Z' fill='white'/%3e%3cpath id='Vector_5' d='M7.90176 8.66963V8.77334C7.90176 8.96904 7.87422 9.14482 7.81914 9.30068C7.76523 9.45537 7.68848 9.58779 7.58887 9.69795C7.48926 9.80693 7.37148 9.89072 7.23555 9.94932C7.09961 10.0067 6.94961 10.0354 6.78555 10.0354C6.62031 10.0354 6.46914 10.0067 6.33203 9.94932C6.19609 9.89072 6.07773 9.80693 5.97695 9.69795C5.87734 9.58779 5.8 9.45537 5.74492 9.30068C5.69102 9.14482 5.66406 8.96904 5.66406 8.77334V8.66963C5.66406 8.47393 5.69102 8.29814 5.74492 8.14229C5.8 7.98643 5.87676 7.854 5.9752 7.74502C6.0748 7.63486 6.19258 7.55107 6.32852 7.49365C6.46563 7.43506 6.6168 7.40576 6.78203 7.40576C6.94609 7.40576 7.09609 7.43506 7.23203 7.49365C7.36914 7.55107 7.4875 7.63486 7.58711 7.74502C7.68672 7.854 7.76406 7.98643 7.81914 8.14229C7.87422 8.29814 7.90176 8.47393 7.90176 8.66963ZM7.27598 8.77334V8.66611C7.27598 8.53955 7.26484 8.42822 7.24258 8.33213C7.22148 8.23486 7.18984 8.15342 7.14766 8.08779C7.10547 8.02217 7.05332 7.97295 6.99121 7.94014C6.93027 7.90615 6.86055 7.88916 6.78203 7.88916C6.7 7.88916 6.62852 7.90615 6.56758 7.94014C6.50664 7.97295 6.45566 8.02217 6.41465 8.08779C6.37363 8.15342 6.34258 8.23486 6.32148 8.33213C6.30156 8.42822 6.2916 8.53955 6.2916 8.66611V8.77334C6.2916 8.89873 6.30156 9.01006 6.32148 9.10732C6.34258 9.20342 6.37363 9.28486 6.41465 9.35166C6.45684 9.41846 6.5084 9.46885 6.56934 9.50283C6.63145 9.53682 6.70352 9.55381 6.78555 9.55381C6.86406 9.55381 6.93379 9.53682 6.99473 9.50283C7.05566 9.46885 7.10664 9.41846 7.14766 9.35166C7.18984 9.28486 7.22148 9.20342 7.24258 9.10732C7.26484 9.01006 7.27598 8.89873 7.27598 8.77334Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.13711 10.0003H3.56934L3.57285 9.52568H4.13711C4.2543 9.52568 4.35332 9.49756 4.43418 9.44131C4.51621 9.38506 4.57832 9.30127 4.62051 9.18994C4.66387 9.07744 4.68555 8.93916 4.68555 8.7751V8.66436C4.68555 8.54131 4.67324 8.4335 4.64863 8.34092C4.6252 8.24717 4.59004 8.16924 4.54316 8.10713C4.49629 8.04385 4.4377 7.99639 4.36738 7.96475C4.29824 7.93311 4.21855 7.91729 4.12832 7.91729H3.55879V7.44092H4.12832C4.30176 7.44092 4.46055 7.4708 4.60469 7.53057C4.75 7.58916 4.87539 7.67354 4.98086 7.78369C5.0875 7.89268 5.16953 8.02217 5.22695 8.17217C5.28555 8.321 5.31484 8.48623 5.31484 8.66787V8.7751C5.31484 8.95557 5.28555 9.1208 5.22695 9.2708C5.16953 9.4208 5.08809 9.55029 4.98262 9.65928C4.87715 9.76826 4.75234 9.85264 4.6082 9.9124C4.46523 9.971 4.3082 10.0003 4.13711 10.0003ZM3.92266 7.44092V10.0003H3.30566V7.44092H3.92266Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4304
|
+
|
|
4305
|
+
var img$g = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23FF9C54'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='JPEG'%3e%3cpath id='Vector_3' d='M12.4043 8.63301V9.68418C12.3609 9.73223 12.2941 9.78379 12.2039 9.83887C12.1148 9.89277 12.0023 9.93906 11.8664 9.97773C11.7305 10.0164 11.5705 10.0357 11.3865 10.0357C11.2166 10.0357 11.0625 10.0088 10.9242 9.95488C10.7859 9.8998 10.667 9.81953 10.5674 9.71406C10.4689 9.60742 10.3928 9.47734 10.3389 9.32383C10.2861 9.16914 10.2598 8.99219 10.2598 8.79297V8.65059C10.2598 8.45137 10.2867 8.27441 10.3406 8.11973C10.3945 7.96504 10.4701 7.83496 10.5674 7.72949C10.6658 7.62285 10.7813 7.54199 10.9137 7.48691C11.0473 7.43184 11.1938 7.4043 11.3531 7.4043C11.5887 7.4043 11.7803 7.4418 11.9279 7.5168C12.0756 7.59063 12.1875 7.69316 12.2637 7.82441C12.3398 7.95449 12.3861 8.10508 12.4025 8.27617H11.8102C11.7984 8.1918 11.7762 8.12031 11.7434 8.06172C11.7117 8.00195 11.666 7.95684 11.6063 7.92637C11.5465 7.89473 11.4691 7.87891 11.3742 7.87891C11.3004 7.87891 11.233 7.89473 11.1721 7.92637C11.1123 7.95801 11.0613 8.00605 11.0191 8.07051C10.977 8.13379 10.9441 8.21348 10.9207 8.30957C10.8984 8.40566 10.8873 8.51816 10.8873 8.64707V8.79297C10.8873 8.9207 10.8979 9.03262 10.9189 9.12871C10.9412 9.2248 10.974 9.30508 11.0174 9.36953C11.0619 9.43281 11.1182 9.48086 11.1861 9.51367C11.2553 9.54531 11.3367 9.56113 11.4305 9.56113C11.4961 9.56113 11.5523 9.55586 11.5992 9.54531C11.6461 9.53359 11.6848 9.51953 11.7152 9.50312C11.7469 9.48555 11.7709 9.46914 11.7873 9.45391V9.05664H11.3584V8.63301H12.4043Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.95762 9.52617V10.0008H8.59355V9.52617H9.95762ZM8.81328 7.44141V10.0008H8.19629V7.44141H8.81328ZM9.78184 8.45742V8.91621H8.59355V8.45742H9.78184ZM9.96289 7.44141V7.91777H8.59355V7.44141H9.96289Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.77227 9.13242H6.13594V8.65605H6.77227C6.85898 8.65605 6.9293 8.64141 6.9832 8.61211C7.03711 8.58281 7.07637 8.54238 7.10098 8.49082C7.12676 8.43809 7.13965 8.37891 7.13965 8.31328C7.13965 8.24297 7.12676 8.17793 7.10098 8.11816C7.07637 8.0584 7.03711 8.01035 6.9832 7.97402C6.9293 7.93652 6.85898 7.91777 6.77227 7.91777H6.36797V10.0008H5.75098V7.44141H6.77227C6.97734 7.44141 7.15371 7.47891 7.30137 7.55391C7.4502 7.62891 7.56445 7.73203 7.64414 7.86328C7.72383 7.99336 7.76367 8.14219 7.76367 8.30977C7.76367 8.475 7.72383 8.61914 7.64414 8.74219C7.56445 8.86523 7.4502 8.96133 7.30137 9.03047C7.15371 9.09844 6.97734 9.13242 6.77227 9.13242Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.64395 9.19746V7.44141H5.25918V9.19746C5.25918 9.36855 5.21992 9.5168 5.14141 9.64219C5.06406 9.76758 4.95859 9.86484 4.825 9.93398C4.69258 10.002 4.54375 10.0359 4.37852 10.0359C4.20742 10.0359 4.05508 10.0072 3.92148 9.9498C3.78906 9.89238 3.68477 9.80391 3.60859 9.68437C3.53359 9.56484 3.49609 9.4125 3.49609 9.22734H4.11484C4.11484 9.31406 4.1248 9.38203 4.14473 9.43125C4.16465 9.4793 4.19395 9.51328 4.23262 9.5332C4.27246 9.55195 4.32109 9.56133 4.37852 9.56133C4.43477 9.56133 4.48223 9.54727 4.5209 9.51914C4.56074 9.48984 4.59121 9.44824 4.6123 9.39434C4.6334 9.33926 4.64395 9.27363 4.64395 9.19746Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4306
|
+
|
|
4307
|
+
var img$f = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23FF9C54'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='JPG'%3e%3cpath id='Vector_3' d='M11.3467 8.63301V9.68418C11.3033 9.73223 11.2365 9.78379 11.1463 9.83887C11.0572 9.89277 10.9447 9.93906 10.8088 9.97773C10.6729 10.0164 10.5129 10.0357 10.3289 10.0357C10.159 10.0357 10.0049 10.0088 9.8666 9.95488C9.72832 9.8998 9.60938 9.81953 9.50977 9.71406C9.41133 9.60742 9.33516 9.47734 9.28125 9.32383C9.22852 9.16914 9.20215 8.99219 9.20215 8.79297V8.65059C9.20215 8.45137 9.2291 8.27441 9.28301 8.11973C9.33691 7.96504 9.4125 7.83496 9.50977 7.72949C9.6082 7.62285 9.72363 7.54199 9.85605 7.48691C9.98965 7.43184 10.1361 7.4043 10.2955 7.4043C10.5311 7.4043 10.7227 7.4418 10.8703 7.5168C11.018 7.59063 11.1299 7.69316 11.2061 7.82441C11.2822 7.95449 11.3285 8.10508 11.3449 8.27617H10.7525C10.7408 8.1918 10.7186 8.12031 10.6857 8.06172C10.6541 8.00195 10.6084 7.95684 10.5486 7.92637C10.4889 7.89473 10.4115 7.87891 10.3166 7.87891C10.2428 7.87891 10.1754 7.89473 10.1145 7.92637C10.0547 7.95801 10.0037 8.00605 9.96152 8.07051C9.91934 8.13379 9.88652 8.21348 9.86309 8.30957C9.84082 8.40566 9.82969 8.51816 9.82969 8.64707V8.79297C9.82969 8.9207 9.84023 9.03262 9.86133 9.12871C9.88359 9.2248 9.91641 9.30508 9.95977 9.36953C10.0043 9.43281 10.0605 9.48086 10.1285 9.51367C10.1977 9.54531 10.2791 9.56113 10.3729 9.56113C10.4385 9.56113 10.4947 9.55586 10.5416 9.54531C10.5885 9.53359 10.6271 9.51953 10.6576 9.50312C10.6893 9.48555 10.7133 9.46914 10.7297 9.45391V9.05664H10.3008V8.63301H11.3467Z' fill='white'/%3e%3cpath id='Vector_4' d='M7.82891 9.13242H7.19258V8.65605H7.82891C7.91563 8.65605 7.98594 8.64141 8.03984 8.61211C8.09375 8.58281 8.13301 8.54238 8.15762 8.49082C8.1834 8.43809 8.19629 8.37891 8.19629 8.31328C8.19629 8.24297 8.1834 8.17793 8.15762 8.11816C8.13301 8.0584 8.09375 8.01035 8.03984 7.97402C7.98594 7.93652 7.91563 7.91777 7.82891 7.91777H7.42461V10.0008H6.80762V7.44141H7.82891C8.03398 7.44141 8.21035 7.47891 8.35801 7.55391C8.50684 7.62891 8.62109 7.73203 8.70078 7.86328C8.78047 7.99336 8.82031 8.14219 8.82031 8.30977C8.82031 8.475 8.78047 8.61914 8.70078 8.74219C8.62109 8.86523 8.50684 8.96133 8.35801 9.03047C8.21035 9.09844 8.03398 9.13242 7.82891 9.13242Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.70059 9.19746V7.44141H6.31582V9.19746C6.31582 9.36855 6.27656 9.5168 6.19805 9.64219C6.1207 9.76758 6.01523 9.86484 5.88164 9.93398C5.74922 10.002 5.60039 10.0359 5.43516 10.0359C5.26406 10.0359 5.11172 10.0072 4.97812 9.9498C4.8457 9.89238 4.74141 9.80391 4.66523 9.68437C4.59023 9.56484 4.55273 9.4125 4.55273 9.22734H5.17148C5.17148 9.31406 5.18145 9.38203 5.20137 9.43125C5.22129 9.4793 5.25059 9.51328 5.28926 9.5332C5.3291 9.55195 5.37773 9.56133 5.43516 9.56133C5.49141 9.56133 5.53887 9.54727 5.57754 9.51914C5.61738 9.48984 5.64785 9.44824 5.66895 9.39434C5.69004 9.33926 5.70059 9.27363 5.70059 9.19746Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4308
|
+
|
|
4309
|
+
var img$e = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23AE6BF1'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='JSON'%3e%3cpath id='Vector_3' d='M12.6014 7.44043V9.9998H11.9861L11.0809 8.40723V9.9998H10.4639V7.44043H11.0809L11.9861 9.03301V7.44043H12.6014Z' fill='white'/%3e%3cpath id='Vector_4' d='M10.0434 8.66914V8.77285C10.0434 8.96855 10.0158 9.14434 9.96074 9.3002C9.90684 9.45488 9.83008 9.5873 9.73047 9.69746C9.63086 9.80645 9.51309 9.89023 9.37715 9.94883C9.24121 10.0063 9.09121 10.035 8.92715 10.035C8.76191 10.035 8.61074 10.0063 8.47363 9.94883C8.3377 9.89023 8.21934 9.80645 8.11855 9.69746C8.01895 9.5873 7.9416 9.45488 7.88652 9.3002C7.83262 9.14434 7.80566 8.96855 7.80566 8.77285V8.66914C7.80566 8.47344 7.83262 8.29766 7.88652 8.1418C7.9416 7.98594 8.01836 7.85352 8.1168 7.74453C8.21641 7.63437 8.33418 7.55059 8.47012 7.49316C8.60723 7.43457 8.7584 7.40527 8.92363 7.40527C9.0877 7.40527 9.2377 7.43457 9.37363 7.49316C9.51074 7.55059 9.6291 7.63437 9.72871 7.74453C9.82832 7.85352 9.90566 7.98594 9.96074 8.1418C10.0158 8.29766 10.0434 8.47344 10.0434 8.66914ZM9.41758 8.77285V8.66562C9.41758 8.53906 9.40645 8.42773 9.38418 8.33164C9.36309 8.23438 9.33145 8.15293 9.28926 8.0873C9.24707 8.02168 9.19492 7.97246 9.13281 7.93965C9.07187 7.90566 9.00215 7.88867 8.92363 7.88867C8.8416 7.88867 8.77012 7.90566 8.70918 7.93965C8.64824 7.97246 8.59727 8.02168 8.55625 8.0873C8.51523 8.15293 8.48418 8.23438 8.46309 8.33164C8.44316 8.42773 8.4332 8.53906 8.4332 8.66562V8.77285C8.4332 8.89824 8.44316 9.00957 8.46309 9.10684C8.48418 9.20293 8.51523 9.28437 8.55625 9.35117C8.59844 9.41797 8.65 9.46836 8.71094 9.50234C8.77305 9.53633 8.84512 9.55332 8.92715 9.55332C9.00566 9.55332 9.07539 9.53633 9.13633 9.50234C9.19727 9.46836 9.24824 9.41797 9.28926 9.35117C9.33145 9.28437 9.36309 9.20293 9.38418 9.10684C9.40645 9.00957 9.41758 8.89824 9.41758 8.77285Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.84336 9.31953C6.84336 9.27969 6.8375 9.24395 6.82578 9.2123C6.81406 9.17949 6.79238 9.14902 6.76074 9.1209C6.7291 9.09277 6.6834 9.06465 6.62363 9.03652C6.56504 9.00723 6.4877 8.97676 6.3916 8.94512C6.2791 8.90762 6.1707 8.86543 6.06641 8.81855C5.96211 8.77051 5.86895 8.71484 5.78691 8.65156C5.70488 8.58711 5.63984 8.51211 5.5918 8.42656C5.54375 8.33984 5.51973 8.23906 5.51973 8.12422C5.51973 8.01406 5.54434 7.91504 5.59355 7.82715C5.64277 7.73809 5.71133 7.6625 5.79922 7.60039C5.88828 7.53711 5.99258 7.48906 6.11211 7.45625C6.23164 7.42227 6.3623 7.40527 6.5041 7.40527C6.6916 7.40527 6.85684 7.43809 6.9998 7.50371C7.14395 7.56816 7.25645 7.66016 7.3373 7.77969C7.41934 7.89805 7.46035 8.03809 7.46035 8.1998H6.84688C6.84688 8.13535 6.8334 8.07852 6.80645 8.0293C6.78066 7.98008 6.74141 7.94141 6.68867 7.91328C6.63594 7.88516 6.56973 7.87109 6.49004 7.87109C6.4127 7.87109 6.34766 7.88281 6.29492 7.90625C6.24219 7.92969 6.20234 7.96133 6.17539 8.00117C6.14844 8.03984 6.13496 8.08262 6.13496 8.12949C6.13496 8.16816 6.14551 8.20332 6.1666 8.23496C6.18887 8.26543 6.21992 8.29414 6.25977 8.32109C6.30078 8.34805 6.35 8.37383 6.40742 8.39844C6.46602 8.42305 6.53164 8.44707 6.6043 8.47051C6.74023 8.51387 6.86094 8.5625 6.96641 8.61641C7.07305 8.66914 7.1627 8.72949 7.23535 8.79746C7.30918 8.86426 7.36484 8.94043 7.40234 9.02598C7.44102 9.11152 7.46035 9.2082 7.46035 9.31602C7.46035 9.43086 7.43809 9.53281 7.39355 9.62187C7.34902 9.71094 7.28516 9.78652 7.20195 9.84863C7.11875 9.90957 7.01914 9.95586 6.90312 9.9875C6.78711 10.0191 6.65762 10.035 6.51465 10.035C6.3834 10.035 6.25391 10.0186 6.12617 9.98574C5.99961 9.95176 5.88477 9.9002 5.78164 9.83105C5.67852 9.76074 5.5959 9.67109 5.53379 9.56211C5.47285 9.45195 5.44238 9.32129 5.44238 9.17012H6.06113C6.06113 9.24512 6.07109 9.3084 6.09102 9.35996C6.11094 9.41152 6.14023 9.45312 6.17891 9.48477C6.21758 9.51523 6.26504 9.5375 6.32129 9.55156C6.37754 9.56445 6.44199 9.5709 6.51465 9.5709C6.59316 9.5709 6.65645 9.55977 6.70449 9.5375C6.75254 9.51406 6.7877 9.48359 6.80996 9.44609C6.83223 9.40742 6.84336 9.36523 6.84336 9.31953Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.41738 9.19648V7.44043H5.03262V9.19648C5.03262 9.36758 4.99336 9.51582 4.91484 9.64121C4.8375 9.7666 4.73203 9.86387 4.59844 9.93301C4.46602 10.001 4.31719 10.035 4.15195 10.035C3.98086 10.035 3.82852 10.0063 3.69492 9.94883C3.5625 9.89141 3.4582 9.80293 3.38203 9.6834C3.30703 9.56387 3.26953 9.41152 3.26953 9.22637H3.88828C3.88828 9.31309 3.89824 9.38105 3.91816 9.43027C3.93809 9.47832 3.96738 9.5123 4.00605 9.53223C4.0459 9.55098 4.09453 9.56035 4.15195 9.56035C4.2082 9.56035 4.25566 9.54629 4.29434 9.51816C4.33418 9.48887 4.36465 9.44727 4.38574 9.39336C4.40684 9.33828 4.41738 9.27266 4.41738 9.19648Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4310
|
+
|
|
4311
|
+
var img$d = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%236155E9'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='KML'%3e%3cpath id='Vector_3' d='M11.7408 9.5252V9.9998H10.4471V9.5252H11.7408ZM10.6668 7.44043V9.9998H10.0498V7.44043H10.6668Z' fill='white'/%3e%3cpath id='Vector_4' d='M7.09785 7.44043H7.60059L8.17188 9.22109L8.74316 7.44043H9.2459L8.37578 9.9998H7.96797L7.09785 7.44043ZM6.79199 7.44043H7.3123L7.40898 9.40215V9.9998H6.79199V7.44043ZM9.03145 7.44043H9.55352V9.9998H8.93477V9.40215L9.03145 7.44043Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.00664 7.44043V9.9998H4.38965V7.44043H5.00664ZM6.53418 7.44043L5.54277 8.7377L4.9627 9.37227L4.8502 8.80625L5.22109 8.24375L5.77305 7.44043H6.53418ZM5.80469 9.9998L5.14375 8.84668L5.62363 8.49336L6.53418 9.9998H5.80469Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4312
|
+
|
|
4313
|
+
var img$c = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23EC473F'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PDF'%3e%3cpath id='Vector_3' d='M10.2654 7.44043V9.9998H9.64844V7.44043H10.2654ZM11.2604 8.50566V8.98027H10.0896V8.50566H11.2604ZM11.3605 7.44043V7.9168H10.0896V7.44043H11.3605Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.04922 9.9998H7.48145L7.48496 9.5252H8.04922C8.16641 9.5252 8.26543 9.49707 8.34629 9.44082C8.42832 9.38457 8.49043 9.30078 8.53262 9.18945C8.57598 9.07695 8.59766 8.93867 8.59766 8.77461V8.66387C8.59766 8.54082 8.58535 8.43301 8.56074 8.34043C8.5373 8.24668 8.50215 8.16875 8.45527 8.10664C8.4084 8.04336 8.3498 7.9959 8.27949 7.96426C8.21035 7.93262 8.13066 7.9168 8.04043 7.9168H7.4709V7.44043H8.04043C8.21387 7.44043 8.37266 7.47031 8.5168 7.53008C8.66211 7.58867 8.7875 7.67305 8.89297 7.7832C8.99961 7.89219 9.08164 8.02168 9.13906 8.17168C9.19766 8.32051 9.22695 8.48574 9.22695 8.66738V8.77461C9.22695 8.95508 9.19766 9.12031 9.13906 9.27031C9.08164 9.42031 9.0002 9.5498 8.89473 9.65879C8.78926 9.76777 8.66445 9.85215 8.52031 9.91191C8.37734 9.97051 8.22031 9.9998 8.04922 9.9998ZM7.83477 7.44043V9.9998H7.21777V7.44043H7.83477Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.79375 9.13145H5.15742V8.65508H5.79375C5.88047 8.65508 5.95078 8.64043 6.00469 8.61113C6.05859 8.58184 6.09785 8.54141 6.12246 8.48984C6.14824 8.43711 6.16113 8.37793 6.16113 8.3123C6.16113 8.24199 6.14824 8.17695 6.12246 8.11719C6.09785 8.05742 6.05859 8.00937 6.00469 7.97305C5.95078 7.93555 5.88047 7.9168 5.79375 7.9168H5.38945V9.9998H4.77246V7.44043H5.79375C5.99883 7.44043 6.1752 7.47793 6.32285 7.55293C6.47168 7.62793 6.58594 7.73105 6.66562 7.8623C6.74531 7.99238 6.78516 8.14121 6.78516 8.30879C6.78516 8.47402 6.74531 8.61816 6.66562 8.74121C6.58594 8.86426 6.47168 8.96035 6.32285 9.02949C6.1752 9.09746 5.99883 9.13145 5.79375 9.13145Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4314
|
+
|
|
4315
|
+
var img$b = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%239381FF'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PNG'%3e%3cpath id='Vector_3' d='M11.5977 8.63301V9.68418C11.5543 9.73223 11.4875 9.78379 11.3973 9.83887C11.3082 9.89277 11.1957 9.93906 11.0598 9.97773C10.9238 10.0164 10.7639 10.0357 10.5799 10.0357C10.41 10.0357 10.2559 10.0088 10.1176 9.95488C9.9793 9.8998 9.86035 9.81953 9.76074 9.71406C9.6623 9.60742 9.58613 9.47734 9.53223 9.32383C9.47949 9.16914 9.45312 8.99219 9.45312 8.79297V8.65059C9.45312 8.45137 9.48008 8.27441 9.53398 8.11973C9.58789 7.96504 9.66348 7.83496 9.76074 7.72949C9.85918 7.62285 9.97461 7.54199 10.107 7.48691C10.2406 7.43184 10.3871 7.4043 10.5465 7.4043C10.782 7.4043 10.9736 7.4418 11.1213 7.5168C11.2689 7.59063 11.3809 7.69316 11.457 7.82441C11.5332 7.95449 11.5795 8.10508 11.5959 8.27617H11.0035C10.9918 8.1918 10.9695 8.12031 10.9367 8.06172C10.9051 8.00195 10.8594 7.95684 10.7996 7.92637C10.7398 7.89473 10.6625 7.87891 10.5676 7.87891C10.4937 7.87891 10.4264 7.89473 10.3654 7.92637C10.3057 7.95801 10.2547 8.00605 10.2125 8.07051C10.1703 8.13379 10.1375 8.21348 10.1141 8.30957C10.0918 8.40566 10.0807 8.51816 10.0807 8.64707V8.79297C10.0807 8.9207 10.0912 9.03262 10.1123 9.12871C10.1346 9.2248 10.1674 9.30508 10.2107 9.36953C10.2553 9.43281 10.3115 9.48086 10.3795 9.51367C10.4486 9.54531 10.5301 9.56113 10.6238 9.56113C10.6895 9.56113 10.7457 9.55586 10.7926 9.54531C10.8395 9.53359 10.8781 9.51953 10.9086 9.50312C10.9402 9.48555 10.9643 9.46914 10.9807 9.45391V9.05664H10.5518V8.63301H11.5977Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.01445 7.44141V10.0008H8.39922L7.49395 8.4082V10.0008H6.87695V7.44141H7.49395L8.39922 9.03398V7.44141H9.01445Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.45293 9.13242H4.8166V8.65605H5.45293C5.53965 8.65605 5.60996 8.64141 5.66387 8.61211C5.71777 8.58281 5.75703 8.54238 5.78164 8.49082C5.80742 8.43809 5.82031 8.37891 5.82031 8.31328C5.82031 8.24297 5.80742 8.17793 5.78164 8.11816C5.75703 8.0584 5.71777 8.01035 5.66387 7.97402C5.60996 7.93652 5.53965 7.91777 5.45293 7.91777H5.04863V10.0008H4.43164V7.44141H5.45293C5.65801 7.44141 5.83437 7.47891 5.98203 7.55391C6.13086 7.62891 6.24512 7.73203 6.3248 7.86328C6.40449 7.99336 6.44434 8.14219 6.44434 8.30977C6.44434 8.475 6.40449 8.61914 6.3248 8.74219C6.24512 8.86523 6.13086 8.96133 5.98203 9.03047C5.83437 9.09844 5.65801 9.13242 5.45293 9.13242Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4316
|
+
|
|
4317
|
+
var img$a = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23CA4424'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PPTX'%3e%3cpath id='Vector_3' d='M11.2125 7.44043L11.6309 8.29121L12.0492 7.44043H12.7523L12.0387 8.70957L12.7717 9.9998H12.0615L11.6309 9.1332L11.2002 9.9998H10.4883L11.223 8.70957L10.5076 7.44043H11.2125Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.54414 7.44043V9.9998H8.92715V7.44043H9.54414ZM10.3141 7.44043V7.9168H8.1748V7.44043H10.3141Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.88164 9.13145H6.24531V8.65508H6.88164C6.96836 8.65508 7.03867 8.64043 7.09258 8.61113C7.14648 8.58184 7.18574 8.54141 7.21035 8.48984C7.23613 8.43711 7.24902 8.37793 7.24902 8.3123C7.24902 8.24199 7.23613 8.17695 7.21035 8.11719C7.18574 8.05742 7.14648 8.00937 7.09258 7.97305C7.03867 7.93555 6.96836 7.9168 6.88164 7.9168H6.47734V9.9998H5.86035V7.44043H6.88164C7.08672 7.44043 7.26309 7.47793 7.41074 7.55293C7.55957 7.62793 7.67383 7.73105 7.75352 7.8623C7.8332 7.99238 7.87305 8.14121 7.87305 8.30879C7.87305 8.47402 7.8332 8.61816 7.75352 8.74121C7.67383 8.86426 7.55957 8.96035 7.41074 9.02949C7.26309 9.09746 7.08672 9.13145 6.88164 9.13145Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.43633 9.13145H3.8V8.65508H4.43633C4.52305 8.65508 4.59336 8.64043 4.64727 8.61113C4.70117 8.58184 4.74043 8.54141 4.76504 8.48984C4.79082 8.43711 4.80371 8.37793 4.80371 8.3123C4.80371 8.24199 4.79082 8.17695 4.76504 8.11719C4.74043 8.05742 4.70117 8.00937 4.64727 7.97305C4.59336 7.93555 4.52305 7.9168 4.43633 7.9168H4.03203V9.9998H3.41504V7.44043H4.43633C4.64141 7.44043 4.81777 7.47793 4.96543 7.55293C5.11426 7.62793 5.22852 7.73105 5.3082 7.8623C5.38789 7.99238 5.42773 8.14121 5.42773 8.30879C5.42773 8.47402 5.38789 8.61816 5.3082 8.74121C5.22852 8.86426 5.11426 8.96035 4.96543 9.02949C4.81777 9.09746 4.64141 9.13145 4.43633 9.13145Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4318
|
+
|
|
4319
|
+
var img$9 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%233674A5'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PY'%3e%3cpath id='Vector_3' d='M8.75215 7.44141L9.22324 8.55234L9.69609 7.44141H10.3605L9.53789 9.08145V10.0008H8.91035V9.08145L8.08594 7.44141H8.75215Z' fill='%23FED341'/%3e%3cpath id='Vector_4' d='M6.86406 9.13242H6.22773V8.65605H6.86406C6.95078 8.65605 7.02109 8.64141 7.075 8.61211C7.12891 8.58281 7.16816 8.54238 7.19277 8.49082C7.21855 8.43809 7.23145 8.37891 7.23145 8.31328C7.23145 8.24297 7.21855 8.17793 7.19277 8.11816C7.16816 8.0584 7.12891 8.01035 7.075 7.97402C7.02109 7.93652 6.95078 7.91777 6.86406 7.91777H6.45977V10.0008H5.84277V7.44141H6.86406C7.06914 7.44141 7.24551 7.47891 7.39316 7.55391C7.54199 7.62891 7.65625 7.73203 7.73594 7.86328C7.81563 7.99336 7.85547 8.14219 7.85547 8.30977C7.85547 8.475 7.81563 8.61914 7.73594 8.74219C7.65625 8.86523 7.54199 8.96133 7.39316 9.03047C7.24551 9.09844 7.06914 9.13242 6.86406 9.13242Z' fill='%23FED341'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4320
|
+
|
|
4321
|
+
var img$8 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23C0D155'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='SHP'%3e%3cpath id='Vector_3' d='M10.5359 9.13145H9.89961V8.65508H10.5359C10.6227 8.65508 10.693 8.64043 10.7469 8.61113C10.8008 8.58184 10.84 8.54141 10.8646 8.48984C10.8904 8.43711 10.9033 8.37793 10.9033 8.3123C10.9033 8.24199 10.8904 8.17695 10.8646 8.11719C10.84 8.05742 10.8008 8.00937 10.7469 7.97305C10.693 7.93555 10.6227 7.9168 10.5359 7.9168H10.1316V9.9998H9.51465V7.44043H10.5359C10.741 7.44043 10.9174 7.47793 11.065 7.55293C11.2139 7.62793 11.3281 7.73105 11.4078 7.8623C11.4875 7.99238 11.5273 8.14121 11.5273 8.30879C11.5273 8.47402 11.4875 8.61816 11.4078 8.74121C11.3281 8.86426 11.2139 8.96035 11.065 9.02949C10.9174 9.09746 10.741 9.13145 10.5359 9.13145Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.6082 8.45645V8.93105H7.29512V8.45645H8.6082ZM7.50078 7.44043V9.9998H6.88379V7.44043H7.50078ZM9.02305 7.44043V9.9998H8.40781V7.44043H9.02305Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.84824 9.31953C5.84824 9.27969 5.84238 9.24395 5.83066 9.2123C5.81895 9.17949 5.79727 9.14902 5.76562 9.1209C5.73398 9.09277 5.68828 9.06465 5.62852 9.03652C5.56992 9.00723 5.49258 8.97676 5.39648 8.94512C5.28398 8.90762 5.17559 8.86543 5.07129 8.81855C4.96699 8.77051 4.87383 8.71484 4.7918 8.65156C4.70977 8.58711 4.64473 8.51211 4.59668 8.42656C4.54863 8.33984 4.52461 8.23906 4.52461 8.12422C4.52461 8.01406 4.54922 7.91504 4.59844 7.82715C4.64766 7.73809 4.71621 7.6625 4.8041 7.60039C4.89316 7.53711 4.99746 7.48906 5.11699 7.45625C5.23652 7.42227 5.36719 7.40527 5.50898 7.40527C5.69648 7.40527 5.86172 7.43809 6.00469 7.50371C6.14883 7.56816 6.26133 7.66016 6.34219 7.77969C6.42422 7.89805 6.46523 8.03809 6.46523 8.1998H5.85176C5.85176 8.13535 5.83828 8.07852 5.81133 8.0293C5.78555 7.98008 5.74629 7.94141 5.69355 7.91328C5.64082 7.88516 5.57461 7.87109 5.49492 7.87109C5.41758 7.87109 5.35254 7.88281 5.2998 7.90625C5.24707 7.92969 5.20723 7.96133 5.18027 8.00117C5.15332 8.03984 5.13984 8.08262 5.13984 8.12949C5.13984 8.16816 5.15039 8.20332 5.17148 8.23496C5.19375 8.26543 5.2248 8.29414 5.26465 8.32109C5.30566 8.34805 5.35488 8.37383 5.4123 8.39844C5.4709 8.42305 5.53652 8.44707 5.60918 8.47051C5.74512 8.51387 5.86582 8.5625 5.97129 8.61641C6.07793 8.66914 6.16758 8.72949 6.24023 8.79746C6.31406 8.86426 6.36973 8.94043 6.40723 9.02598C6.4459 9.11152 6.46523 9.2082 6.46523 9.31602C6.46523 9.43086 6.44297 9.53281 6.39844 9.62187C6.35391 9.71094 6.29004 9.78652 6.20684 9.84863C6.12363 9.90957 6.02402 9.95586 5.90801 9.9875C5.79199 10.0191 5.6625 10.035 5.51953 10.035C5.38828 10.035 5.25879 10.0186 5.13105 9.98574C5.00449 9.95176 4.88965 9.9002 4.78652 9.83105C4.6834 9.76074 4.60078 9.67109 4.53867 9.56211C4.47773 9.45195 4.44727 9.32129 4.44727 9.17012H5.06602C5.06602 9.24512 5.07598 9.3084 5.0959 9.35996C5.11582 9.41152 5.14512 9.45312 5.18379 9.48477C5.22246 9.51523 5.26992 9.5375 5.32617 9.55156C5.38242 9.56445 5.44687 9.5709 5.51953 9.5709C5.59805 9.5709 5.66133 9.55977 5.70937 9.5375C5.75742 9.51406 5.79258 9.48359 5.81484 9.44609C5.83711 9.40742 5.84824 9.36523 5.84824 9.31953Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4322
|
+
|
|
4323
|
+
var img$7 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23DDE3EA'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='TXT'%3e%3cpath id='Vector_3' d='M10.6838 7.44043V9.9998H10.0668V7.44043H10.6838ZM11.4537 7.44043V7.9168H9.31445V7.44043H11.4537Z' fill='black'/%3e%3cpath id='Vector_4' d='M7.58164 7.44043L8 8.29121L8.41836 7.44043H9.12148L8.40781 8.70957L9.14082 9.9998H8.43066L8 9.1332L7.56934 9.9998H6.85742L7.59219 8.70957L6.87676 7.44043H7.58164Z' fill='black'/%3e%3cpath id='Vector_5' d='M5.91328 7.44043V9.9998H5.29629V7.44043H5.91328ZM6.6832 7.44043V7.9168H4.54395V7.44043H6.6832Z' fill='black'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4324
|
+
|
|
4325
|
+
var img$6 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%2341A246'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='XLSX'%3e%3cpath id='Vector_3' d='M10.983 7.44043L11.4014 8.29121L11.8197 7.44043H12.5229L11.8092 8.70957L12.5422 9.9998H11.832L11.4014 9.1332L10.9707 9.9998H10.2588L10.9936 8.70957L10.2781 7.44043H10.983Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.41172 9.31953C9.41172 9.27969 9.40586 9.24395 9.39414 9.2123C9.38242 9.17949 9.36074 9.14902 9.3291 9.1209C9.29746 9.09277 9.25176 9.06465 9.19199 9.03652C9.1334 9.00723 9.05605 8.97676 8.95996 8.94512C8.84746 8.90762 8.73906 8.86543 8.63477 8.81855C8.53047 8.77051 8.4373 8.71484 8.35527 8.65156C8.27324 8.58711 8.2082 8.51211 8.16016 8.42656C8.11211 8.33984 8.08809 8.23906 8.08809 8.12422C8.08809 8.01406 8.1127 7.91504 8.16191 7.82715C8.21113 7.73809 8.27969 7.6625 8.36758 7.60039C8.45664 7.53711 8.56094 7.48906 8.68047 7.45625C8.8 7.42227 8.93066 7.40527 9.07246 7.40527C9.25996 7.40527 9.4252 7.43809 9.56816 7.50371C9.7123 7.56816 9.8248 7.66016 9.90566 7.77969C9.9877 7.89805 10.0287 8.03809 10.0287 8.1998H9.41523C9.41523 8.13535 9.40176 8.07852 9.3748 8.0293C9.34902 7.98008 9.30977 7.94141 9.25703 7.91328C9.2043 7.88516 9.13809 7.87109 9.0584 7.87109C8.98105 7.87109 8.91602 7.88281 8.86328 7.90625C8.81055 7.92969 8.7707 7.96133 8.74375 8.00117C8.7168 8.03984 8.70332 8.08262 8.70332 8.12949C8.70332 8.16816 8.71387 8.20332 8.73496 8.23496C8.75723 8.26543 8.78828 8.29414 8.82812 8.32109C8.86914 8.34805 8.91836 8.37383 8.97578 8.39844C9.03437 8.42305 9.1 8.44707 9.17266 8.47051C9.30859 8.51387 9.4293 8.5625 9.53477 8.61641C9.64141 8.66914 9.73105 8.72949 9.80371 8.79746C9.87754 8.86426 9.9332 8.94043 9.9707 9.02598C10.0094 9.11152 10.0287 9.2082 10.0287 9.31602C10.0287 9.43086 10.0064 9.53281 9.96191 9.62187C9.91738 9.71094 9.85352 9.78652 9.77031 9.84863C9.68711 9.90957 9.5875 9.95586 9.47148 9.9875C9.35547 10.0191 9.22598 10.035 9.08301 10.035C8.95176 10.035 8.82227 10.0186 8.69453 9.98574C8.56797 9.95176 8.45312 9.9002 8.35 9.83105C8.24687 9.76074 8.16426 9.67109 8.10215 9.56211C8.04121 9.45195 8.01074 9.32129 8.01074 9.17012H8.62949C8.62949 9.24512 8.63945 9.3084 8.65937 9.35996C8.6793 9.41152 8.70859 9.45312 8.74727 9.48477C8.78594 9.51523 8.8334 9.5375 8.88965 9.55156C8.9459 9.56445 9.01035 9.5709 9.08301 9.5709C9.16152 9.5709 9.2248 9.55977 9.27285 9.5375C9.3209 9.51406 9.35605 9.48359 9.37832 9.44609C9.40059 9.40742 9.41172 9.36523 9.41172 9.31953Z' fill='white'/%3e%3cpath id='Vector_5' d='M7.73301 9.5252V9.9998H6.43926V9.5252H7.73301ZM6.65898 7.44043V9.9998H6.04199V7.44043H6.65898Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.1793 7.44043L4.59766 8.29121L5.01602 7.44043H5.71914L5.00547 8.70957L5.73848 9.9998H5.02832L4.59766 9.1332L4.16699 9.9998H3.45508L4.18984 8.70957L3.47441 7.44043H4.1793Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4326
|
+
|
|
4327
|
+
var img$5 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23F4BB0A'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='ZIP'%3e%3cpath id='Vector_3' d='M9.78789 9.13145H9.15156V8.65508H9.78789C9.87461 8.65508 9.94492 8.64043 9.99883 8.61113C10.0527 8.58184 10.092 8.54141 10.1166 8.48984C10.1424 8.43711 10.1553 8.37793 10.1553 8.3123C10.1553 8.24199 10.1424 8.17695 10.1166 8.11719C10.092 8.05742 10.0527 8.00937 9.99883 7.97305C9.94492 7.93555 9.87461 7.9168 9.78789 7.9168H9.38359V9.9998H8.7666V7.44043H9.78789C9.99297 7.44043 10.1693 7.47793 10.317 7.55293C10.4658 7.62793 10.5801 7.73105 10.6598 7.8623C10.7395 7.99238 10.7793 8.14121 10.7793 8.30879C10.7793 8.47402 10.7395 8.61816 10.6598 8.74121C10.5801 8.86426 10.4658 8.96035 10.317 9.02949C10.1693 9.09746 9.99297 9.13145 9.78789 9.13145Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.23242 7.44043V9.9998H7.61719V7.44043H8.23242Z' fill='white'/%3e%3cpath id='Vector_5' d='M7.19551 9.5252V9.9998H5.34277V9.5252H7.19551ZM7.1832 7.75684L5.64863 9.9998H5.20215V9.67461L6.7543 7.44043H7.1832V7.75684ZM6.98457 7.44043V7.9168H5.19336V7.44043H6.98457Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
4328
|
+
|
|
4329
|
+
const getFileTypeIcon = (fileType) => {
|
|
4330
|
+
switch (fileType) {
|
|
4331
|
+
case FileType.CSV:
|
|
4332
|
+
return img$i;
|
|
4333
|
+
case FileType.XLSX:
|
|
4334
|
+
return img$6;
|
|
4335
|
+
case FileType.DOCX:
|
|
4336
|
+
return img$h;
|
|
4337
|
+
case FileType.PDF:
|
|
4338
|
+
return img$c;
|
|
4339
|
+
case FileType.JSON:
|
|
4340
|
+
return img$e;
|
|
4341
|
+
case FileType.KML:
|
|
4342
|
+
return img$d;
|
|
4343
|
+
case FileType.PPTX:
|
|
4344
|
+
return img$a;
|
|
4345
|
+
case FileType.SHP:
|
|
4346
|
+
return img$8;
|
|
4347
|
+
case FileType.TXT:
|
|
4348
|
+
return img$7;
|
|
4349
|
+
case FileType.ZIP:
|
|
4350
|
+
return img$5;
|
|
4351
|
+
case FileType.IMAGE:
|
|
4352
|
+
case FileType.JPEG:
|
|
4353
|
+
return img$g;
|
|
4354
|
+
case FileType.JPG:
|
|
4355
|
+
return img$f;
|
|
4356
|
+
case FileType.PNG:
|
|
4357
|
+
return img$b;
|
|
4358
|
+
case FileType.PYTHON:
|
|
4359
|
+
return img$9;
|
|
4360
|
+
default:
|
|
4361
|
+
return img$j;
|
|
4362
|
+
}
|
|
4363
|
+
};
|
|
4364
|
+
|
|
4365
|
+
const useAttachmentPreviewImages = ({ items, active, }) => {
|
|
4366
|
+
const { api } = useGlobalContext();
|
|
4367
|
+
const [blobUrls, setBlobUrls] = useState({});
|
|
4368
|
+
const [failedLinks, setFailedLinks] = useState({});
|
|
4369
|
+
const inFlightRef = useRef(new Set());
|
|
4370
|
+
const blobUrlsRef = useRef(blobUrls);
|
|
4371
|
+
blobUrlsRef.current = blobUrls;
|
|
4372
|
+
useEffect(() => {
|
|
4373
|
+
if (!active || !api?.catalog?.getFile)
|
|
4374
|
+
return;
|
|
4375
|
+
items.forEach(item => {
|
|
4376
|
+
const fileType = getFileType(item.mimeType, item.name);
|
|
4377
|
+
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
4378
|
+
if (!isImage || item.isExternal)
|
|
4379
|
+
return;
|
|
4380
|
+
if (blobUrlsRef.current[item.link] || inFlightRef.current.has(item.link))
|
|
4381
|
+
return;
|
|
4382
|
+
inFlightRef.current.add(item.link);
|
|
4383
|
+
api.catalog
|
|
4384
|
+
.getFile(item.link)
|
|
4385
|
+
.then(blob => {
|
|
4386
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
4387
|
+
setBlobUrls(prev => ({ ...prev, [item.link]: objectUrl }));
|
|
4388
|
+
})
|
|
4389
|
+
.catch(() => {
|
|
4390
|
+
setFailedLinks(prev => (prev[item.link] ? prev : { ...prev, [item.link]: true }));
|
|
4391
|
+
})
|
|
4392
|
+
.finally(() => {
|
|
4393
|
+
inFlightRef.current.delete(item.link);
|
|
4394
|
+
});
|
|
4395
|
+
});
|
|
4396
|
+
}, [active, api, items]);
|
|
4397
|
+
useEffect(() => () => {
|
|
4398
|
+
Object.values(blobUrlsRef.current).forEach(URL.revokeObjectURL);
|
|
4399
|
+
}, []);
|
|
4400
|
+
return useMemo(() => items.map(item => {
|
|
4401
|
+
const fileType = getFileType(item.mimeType, item.name);
|
|
4402
|
+
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
4403
|
+
const fileName = item.name;
|
|
4404
|
+
if (!isImage)
|
|
4405
|
+
return { src: getFileTypeIcon(fileType), fileName };
|
|
4406
|
+
if (item.isExternal)
|
|
4407
|
+
return { src: item.link, fileName };
|
|
4408
|
+
const hasError = !!failedLinks[item.link];
|
|
4409
|
+
const blobUrl = blobUrls[item.link];
|
|
4410
|
+
return {
|
|
4411
|
+
src: blobUrl ?? "",
|
|
4412
|
+
fileName,
|
|
4413
|
+
hasError,
|
|
4414
|
+
isLoading: !hasError && !blobUrl,
|
|
4415
|
+
};
|
|
4416
|
+
}), [items, blobUrls, failedLinks]);
|
|
4417
|
+
};
|
|
4418
|
+
|
|
4419
|
+
const useAutoCompleteControl = (items) => {
|
|
4420
|
+
const [value, setValue] = useState("");
|
|
4421
|
+
const [options, setOptions] = useState([]);
|
|
4422
|
+
const staticOptions = useMemo(() => (items ?? [])
|
|
4423
|
+
.filter(Boolean)
|
|
4424
|
+
.map(item => ({ text: String(item), value: String(item) })), [items]);
|
|
4425
|
+
const onChange = useCallback((newValue) => setValue(newValue), []);
|
|
4426
|
+
return {
|
|
4427
|
+
value,
|
|
4428
|
+
setValue,
|
|
4429
|
+
onChange,
|
|
4430
|
+
options: staticOptions.length ? staticOptions : options,
|
|
4431
|
+
setOptions,
|
|
4432
|
+
};
|
|
4433
|
+
};
|
|
4434
|
+
|
|
4435
|
+
const eqlParametersToPayload = (parameters) => Object.keys(parameters).reduce((result, paramName) => ({
|
|
4436
|
+
...result,
|
|
4437
|
+
[paramName]: parameters[paramName].default,
|
|
4438
|
+
}), {});
|
|
4439
|
+
|
|
4440
|
+
const addDataSource = (dashboardConfiguration, pageIndex, query, additional) => {
|
|
4441
|
+
const newConfig = JSON.parse(JSON.stringify(dashboardConfiguration));
|
|
4442
|
+
if (!newConfig.children[0].children[pageIndex].dataSources) {
|
|
4443
|
+
newConfig.children[0].children[pageIndex].dataSources = [];
|
|
4444
|
+
}
|
|
4445
|
+
const freeId = newConfig.children[0].children[pageIndex].dataSources.length + 1;
|
|
4446
|
+
const parameters = eqlParametersToPayload(additional.parameters);
|
|
4447
|
+
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
4448
|
+
name: `datasource_${freeId}`,
|
|
4449
|
+
query,
|
|
4450
|
+
parameters,
|
|
4451
|
+
offset: 0,
|
|
4452
|
+
limit: DEFAULT_DATA_SOURCE_LIMIT,
|
|
4453
|
+
});
|
|
4454
|
+
return newConfig.children;
|
|
4455
|
+
};
|
|
4456
|
+
|
|
4457
|
+
const addDataSources = (dashboardConfiguration, pageIndex, layerNames) => {
|
|
4458
|
+
const newConfig = JSON.parse(JSON.stringify(dashboardConfiguration));
|
|
4459
|
+
if (!newConfig.children[0].children[pageIndex].dataSources) {
|
|
4460
|
+
newConfig.children[0].children[pageIndex].dataSources = [];
|
|
4461
|
+
}
|
|
4462
|
+
layerNames.forEach(layerName => {
|
|
4463
|
+
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
4464
|
+
name: layerName.split(".")[1],
|
|
4465
|
+
layerName,
|
|
4466
|
+
query: "",
|
|
4467
|
+
parameters: {},
|
|
4468
|
+
});
|
|
4469
|
+
});
|
|
4470
|
+
return newConfig.children;
|
|
4471
|
+
};
|
|
4472
|
+
|
|
4473
|
+
const getConfigFilter = (filterName, configFilters) => configFilters?.find(({ name }) => name === filterName);
|
|
4474
|
+
|
|
4475
|
+
const getDataSource = (dataSourceName, dataSources) => dataSources?.find(({ name }) => name === dataSourceName);
|
|
4476
|
+
|
|
4477
|
+
const getDataSourceFilterValue = ({ filterName, filterProp, attributeAlias, dataSource, selectedFilters, }) => {
|
|
4478
|
+
if (isNil(selectedFilters[filterName]))
|
|
4479
|
+
return null;
|
|
4480
|
+
const feature = dataSource?.features?.find(({ properties }) => properties[attributeAlias] ===
|
|
4481
|
+
(Array.isArray(selectedFilters[filterName].value)
|
|
4482
|
+
? selectedFilters[filterName].value[0]
|
|
4483
|
+
: selectedFilters[filterName].value));
|
|
4484
|
+
return feature?.properties?.[filterProp];
|
|
4485
|
+
};
|
|
4486
|
+
|
|
4487
|
+
const getSelectedFilterValue = (filterName, selectedFilters, defaultValue) => {
|
|
4488
|
+
return ((!isNil(selectedFilters?.[filterName]?.value) &&
|
|
4489
|
+
Array.isArray(defaultValue) &&
|
|
4490
|
+
!Array.isArray(selectedFilters[filterName].value)
|
|
4491
|
+
? [selectedFilters[filterName].value]
|
|
4492
|
+
: selectedFilters?.[filterName]?.value) ?? defaultValue);
|
|
4493
|
+
};
|
|
4494
|
+
|
|
4495
|
+
const applyQueryFilters = ({ parameters: configParameters, filters: configFilters, selectedFilters, geometry, attributes, layerInfo, dataSources, projectDataSources, }) => {
|
|
4496
|
+
if (!configParameters) {
|
|
4497
|
+
return {};
|
|
4498
|
+
}
|
|
4499
|
+
return Object.keys(configParameters).reduce((result, key) => {
|
|
4500
|
+
if (typeof configParameters[key] === "string" && configParameters[key].startsWith(PROVIDER_PREFIX)) {
|
|
4501
|
+
const raw = configParameters[key].slice(PROVIDER_PREFIX.length);
|
|
4502
|
+
const [provider, layerName, fieldName] = raw.split(":");
|
|
4503
|
+
if (provider === ProviderPrefix.Card && fieldName && layerInfo.name === layerName && attributes) {
|
|
4504
|
+
const attribute = attributes.find(({ attributeName }) => attributeName === fieldName);
|
|
4505
|
+
const cardValue = attribute?.value ?? null;
|
|
4506
|
+
if (isNil(cardValue))
|
|
4507
|
+
return result;
|
|
4508
|
+
return { ...result, [key]: cardValue };
|
|
4509
|
+
}
|
|
4510
|
+
if (provider === ProviderPrefix.Left && layerName && fieldName && projectDataSources?.length) {
|
|
4511
|
+
const dataSource = projectDataSources.find(({ layerName: name }) => name === layerName);
|
|
4512
|
+
const leftValue = dataSource?.features?.[0]?.properties?.[fieldName] ?? null;
|
|
4513
|
+
if (isNil(leftValue))
|
|
4514
|
+
return result;
|
|
4515
|
+
return { ...result, [key]: leftValue };
|
|
4516
|
+
}
|
|
4517
|
+
return result;
|
|
4518
|
+
}
|
|
4519
|
+
if (typeof configParameters[key] === "string" && configParameters[key].includes("{") && attributes?.length) {
|
|
4520
|
+
const exactAttr = attributes.find(({ attributeName }) => configParameters[key] === `{${attributeName}}`);
|
|
4521
|
+
if (exactAttr) {
|
|
4522
|
+
return { ...result, [key]: exactAttr.value ?? "" };
|
|
4523
|
+
}
|
|
4524
|
+
let interpolated = configParameters[key];
|
|
4525
|
+
attributes.forEach(({ attributeName, value: attrValue }) => {
|
|
4526
|
+
interpolated = interpolated.replace(new RegExp(`\\{${attributeName}\\}`, "g"), attrValue?.toString() ?? "");
|
|
4527
|
+
});
|
|
4528
|
+
return { ...result, [key]: interpolated };
|
|
4529
|
+
}
|
|
4530
|
+
if (typeof configParameters[key] !== "string" || !configParameters[key].startsWith("%")) {
|
|
4531
|
+
return {
|
|
4532
|
+
...result,
|
|
4533
|
+
[key]: configParameters[key],
|
|
4534
|
+
};
|
|
4535
|
+
}
|
|
4536
|
+
const filterFullName = configParameters[key].replace("%", "");
|
|
4537
|
+
const [filterName, filterProp] = filterFullName.includes(".") ? filterFullName.split(".") : [filterFullName, null];
|
|
4538
|
+
const { defaultValue, relatedDataSource, attributeAlias } = getConfigFilter(filterName, configFilters) || {};
|
|
4539
|
+
if (filterName === "geometry" && geometry && !geometry.includes("()") && geometry.endsWith(")")) {
|
|
4540
|
+
return {
|
|
4541
|
+
...result,
|
|
4542
|
+
[key]: geometry,
|
|
4543
|
+
};
|
|
4544
|
+
}
|
|
4545
|
+
if (configParameters[key].endsWith(".max")) {
|
|
4546
|
+
return {
|
|
4547
|
+
...result,
|
|
4548
|
+
[key]: selectedFilters?.[filterName]?.max ?? (Array.isArray(defaultValue) ? defaultValue[1] : defaultValue),
|
|
4549
|
+
};
|
|
4550
|
+
}
|
|
4551
|
+
if (configParameters[key].endsWith(".min")) {
|
|
4552
|
+
return {
|
|
4553
|
+
...result,
|
|
4554
|
+
[key]: selectedFilters?.[filterName]?.min ?? (Array.isArray(defaultValue) ? defaultValue[0] : defaultValue),
|
|
4555
|
+
};
|
|
4556
|
+
}
|
|
4557
|
+
if (configParameters[key].includes(".")) {
|
|
4558
|
+
return {
|
|
4559
|
+
...result,
|
|
4560
|
+
[key]: getDataSourceFilterValue({
|
|
4561
|
+
filterName,
|
|
4562
|
+
filterProp,
|
|
4563
|
+
selectedFilters,
|
|
4564
|
+
attributeAlias,
|
|
4565
|
+
dataSource: getDataSource(relatedDataSource, dataSources),
|
|
4566
|
+
}) ?? defaultValue,
|
|
4567
|
+
};
|
|
4568
|
+
}
|
|
4569
|
+
const value = getSelectedFilterValue(filterName, selectedFilters, defaultValue);
|
|
4570
|
+
if (isNil(value)) {
|
|
4571
|
+
return result;
|
|
4572
|
+
}
|
|
4573
|
+
return {
|
|
4082
4574
|
...result,
|
|
4083
4575
|
[key]: value,
|
|
4084
4576
|
};
|
|
@@ -4531,158 +5023,6 @@ const customStyles = [
|
|
|
4531
5023
|
},
|
|
4532
5024
|
];
|
|
4533
5025
|
|
|
4534
|
-
const DashboardContext = createContext({});
|
|
4535
|
-
const DashboardProvider = memo(({ children, ...props }) => {
|
|
4536
|
-
return jsx(DashboardContext.Provider, { value: props, children: children });
|
|
4537
|
-
});
|
|
4538
|
-
|
|
4539
|
-
const FeatureCardContext = createContext({});
|
|
4540
|
-
const FeatureCardProvider = memo(({ children, ...props }) => {
|
|
4541
|
-
return jsx(FeatureCardContext.Provider, { value: props, children: children });
|
|
4542
|
-
});
|
|
4543
|
-
|
|
4544
|
-
const GlobalContext = createContext({});
|
|
4545
|
-
const GlobalProvider = memo(({ children, ...props }) => {
|
|
4546
|
-
return jsx(GlobalContext.Provider, { value: props, children: children });
|
|
4547
|
-
});
|
|
4548
|
-
|
|
4549
|
-
const MapContext = createContext({});
|
|
4550
|
-
|
|
4551
|
-
const MapProvider = ({ basemapItems, defaultBasemap, children }) => {
|
|
4552
|
-
const map = useRef();
|
|
4553
|
-
const draw = useRef();
|
|
4554
|
-
const [loaded, setLoaded] = useState(false);
|
|
4555
|
-
const [basemapName, setBasemapName] = useState(defaultBasemap);
|
|
4556
|
-
return (jsx(MapContext.Provider, { value: {
|
|
4557
|
-
map,
|
|
4558
|
-
draw,
|
|
4559
|
-
loaded,
|
|
4560
|
-
setLoaded,
|
|
4561
|
-
basemapItems,
|
|
4562
|
-
basemapName,
|
|
4563
|
-
setBasemapName,
|
|
4564
|
-
defaultBasemap,
|
|
4565
|
-
}, children: children }));
|
|
4566
|
-
};
|
|
4567
|
-
|
|
4568
|
-
var BaseMapTheme;
|
|
4569
|
-
(function (BaseMapTheme) {
|
|
4570
|
-
BaseMapTheme["Light"] = "light";
|
|
4571
|
-
BaseMapTheme["Dark"] = "dark";
|
|
4572
|
-
})(BaseMapTheme || (BaseMapTheme = {}));
|
|
4573
|
-
|
|
4574
|
-
const ServerNotificationsContext = createContext({});
|
|
4575
|
-
|
|
4576
|
-
const useServerNotifications = (url, initialized, apiClient) => {
|
|
4577
|
-
const hubConnection = useRef(null);
|
|
4578
|
-
const [connection, setConnection] = useState(null);
|
|
4579
|
-
const subscribeNotifications = useCallback(() => {
|
|
4580
|
-
if (!connection || connection.state !== "Connected") {
|
|
4581
|
-
return;
|
|
4582
|
-
}
|
|
4583
|
-
connection
|
|
4584
|
-
.invoke("SubscribeNotifications", [])
|
|
4585
|
-
.then(() => console.info("Подписка `SubscribeNotifications` оформлена"))
|
|
4586
|
-
.catch(err => console.info("Ошибка подписки `SubscribeNotifications`:", err));
|
|
4587
|
-
}, [connection]);
|
|
4588
|
-
useEffect(() => {
|
|
4589
|
-
if (!initialized) {
|
|
4590
|
-
return;
|
|
4591
|
-
}
|
|
4592
|
-
hubConnection.current = new HubConnectionBuilder()
|
|
4593
|
-
.withUrl(`${url}?clientId=${generateId()}`, {
|
|
4594
|
-
withCredentials: true,
|
|
4595
|
-
skipNegotiation: true,
|
|
4596
|
-
transport: HttpTransportType.WebSockets,
|
|
4597
|
-
accessTokenFactory: async () => {
|
|
4598
|
-
let accessToken = window.localStorage.getItem(STORAGE_TOKEN_KEY) || "";
|
|
4599
|
-
const { exp } = parseJwt(accessToken);
|
|
4600
|
-
const currentTime = new Date().getTime() / 1000;
|
|
4601
|
-
if (currentTime > exp) {
|
|
4602
|
-
const refreshToken = window.localStorage.getItem(STORAGE_REFRESH_TOKEN_KEY);
|
|
4603
|
-
if (refreshToken) {
|
|
4604
|
-
const refreshTokenResponse = await apiClient.account.refreshToken({
|
|
4605
|
-
refreshToken,
|
|
4606
|
-
});
|
|
4607
|
-
if (refreshTokenResponse) {
|
|
4608
|
-
accessToken = refreshTokenResponse.token;
|
|
4609
|
-
window.localStorage.setItem(STORAGE_TOKEN_KEY, refreshTokenResponse.token);
|
|
4610
|
-
window.localStorage.setItem(STORAGE_REFRESH_TOKEN_KEY, refreshTokenResponse.refreshToken);
|
|
4611
|
-
}
|
|
4612
|
-
}
|
|
4613
|
-
else {
|
|
4614
|
-
await apiClient.logout();
|
|
4615
|
-
}
|
|
4616
|
-
}
|
|
4617
|
-
return accessToken;
|
|
4618
|
-
},
|
|
4619
|
-
})
|
|
4620
|
-
.withAutomaticReconnect()
|
|
4621
|
-
.configureLogging(LogLevel.Information)
|
|
4622
|
-
.build();
|
|
4623
|
-
hubConnection.current
|
|
4624
|
-
.start()
|
|
4625
|
-
.then(() => console.info("Серверные нотификации подключены"))
|
|
4626
|
-
.catch(err => console.info("Ошибка:", err))
|
|
4627
|
-
.finally(() => setConnection(hubConnection.current));
|
|
4628
|
-
}, [initialized]); // eslint-disable-line
|
|
4629
|
-
useEffect(() => {
|
|
4630
|
-
if (!connection || connection.state !== "Connected") {
|
|
4631
|
-
return;
|
|
4632
|
-
}
|
|
4633
|
-
connection.onreconnecting(() => console.info("Переподключение к серверным нотификациям"));
|
|
4634
|
-
connection.onreconnected(subscribeNotifications);
|
|
4635
|
-
subscribeNotifications();
|
|
4636
|
-
}, [connection]);
|
|
4637
|
-
return connection;
|
|
4638
|
-
};
|
|
4639
|
-
|
|
4640
|
-
const ServerNotificationsProvider = ({ url, initialized, apiClient, children }) => {
|
|
4641
|
-
const connection = useServerNotifications(url, initialized, apiClient);
|
|
4642
|
-
const addSubscription = useCallback(async (payload) => {
|
|
4643
|
-
if (!connection || connection.state !== "Connected" || !payload) {
|
|
4644
|
-
return;
|
|
4645
|
-
}
|
|
4646
|
-
try {
|
|
4647
|
-
const id = await connection.invoke("AddSubscription", payload);
|
|
4648
|
-
console.info("Подписка добавлена, id:", id);
|
|
4649
|
-
return id;
|
|
4650
|
-
}
|
|
4651
|
-
catch (err) {
|
|
4652
|
-
console.info("Ошибка добавления подписки:", err);
|
|
4653
|
-
return Promise.resolve(null);
|
|
4654
|
-
}
|
|
4655
|
-
}, [connection]);
|
|
4656
|
-
const updateSubscription = useCallback(async (id, payload) => {
|
|
4657
|
-
if (!connection || connection.state !== "Connected" || !id || !payload) {
|
|
4658
|
-
return;
|
|
4659
|
-
}
|
|
4660
|
-
try {
|
|
4661
|
-
await connection.invoke("UpdateSubscription", id, payload);
|
|
4662
|
-
}
|
|
4663
|
-
catch (err) {
|
|
4664
|
-
console.info(`Ошибка обновления подписки ${id}:`, err);
|
|
4665
|
-
}
|
|
4666
|
-
}, [connection]);
|
|
4667
|
-
const unsubscribeById = useCallback(async (id) => {
|
|
4668
|
-
if (!connection || connection.state !== "Connected" || !id) {
|
|
4669
|
-
return;
|
|
4670
|
-
}
|
|
4671
|
-
try {
|
|
4672
|
-
await connection.invoke("Unsubscribe", [id]);
|
|
4673
|
-
}
|
|
4674
|
-
catch (err) {
|
|
4675
|
-
console.info(`Ошибка отписки по ${id}:`, err);
|
|
4676
|
-
}
|
|
4677
|
-
}, [connection]);
|
|
4678
|
-
return (jsx(ServerNotificationsContext.Provider, { value: {
|
|
4679
|
-
connection,
|
|
4680
|
-
addSubscription,
|
|
4681
|
-
updateSubscription,
|
|
4682
|
-
unsubscribeById,
|
|
4683
|
-
}, children: children }));
|
|
4684
|
-
};
|
|
4685
|
-
|
|
4686
5026
|
const useMapContext = () => {
|
|
4687
5027
|
return useContext(MapContext);
|
|
4688
5028
|
};
|
|
@@ -5835,6 +6175,24 @@ const getAttributeByName = (name, attributes) => {
|
|
|
5835
6175
|
: null;
|
|
5836
6176
|
};
|
|
5837
6177
|
|
|
6178
|
+
/**
|
|
6179
|
+
* Returns a value safe to render as a React child.
|
|
6180
|
+
*
|
|
6181
|
+
* If the input is a non-primitive object (array or plain object) that is NOT
|
|
6182
|
+
* a React element, returns an empty string to prevent the runtime error
|
|
6183
|
+
* "Objects are not valid as a React child" that React throws on such values.
|
|
6184
|
+
*
|
|
6185
|
+
* Use in places where a rendered slot receives a raw attribute value that may
|
|
6186
|
+
* be a structured payload (e.g. an attribute with `subType: Attachments`
|
|
6187
|
+
* exposes its value as `Attachment[]`). React elements and primitives pass
|
|
6188
|
+
* through unchanged, preserving existing rendering behaviour for normal data.
|
|
6189
|
+
*/
|
|
6190
|
+
const toRenderableValue = (value) => {
|
|
6191
|
+
if (value && typeof value === "object" && !isValidElement(value))
|
|
6192
|
+
return "";
|
|
6193
|
+
return value;
|
|
6194
|
+
};
|
|
6195
|
+
|
|
5838
6196
|
const formatElementValue = ({ t, value, elementConfig, attributes, wrap, }) => {
|
|
5839
6197
|
const { id, type, defaultValue, options, style, attributeName, templateName, } = elementConfig || {};
|
|
5840
6198
|
const attribute = attributeName
|
|
@@ -5851,9 +6209,10 @@ const formatElementValue = ({ t, value, elementConfig, attributes, wrap, }) => {
|
|
|
5851
6209
|
noUnits,
|
|
5852
6210
|
})
|
|
5853
6211
|
: valueOrDefault;
|
|
6212
|
+
const renderableValue = toRenderableValue(resultValue);
|
|
5854
6213
|
if (!wrap)
|
|
5855
|
-
return
|
|
5856
|
-
return (jsxs(Fragment, { children: [tagView ? (jsx(DashboardChip$1, { "data-id": id, "data-templatename": templateName, style: style, text:
|
|
6214
|
+
return renderableValue;
|
|
6215
|
+
return (jsxs(Fragment, { children: [tagView ? (jsx(DashboardChip$1, { "data-id": id, "data-templatename": templateName, style: style, text: renderableValue, "$bgColor": bgColor, "$fontColor": fontColor, "$fontSize": fontSize, "$radius": radius })) : (jsx(ElementValueWrapper, { "data-id": id, "data-templatename": templateName, style: style, noMargin: noMargin, children: renderableValue })), withDivider && jsx(Divider, {})] }, id));
|
|
5857
6216
|
};
|
|
5858
6217
|
|
|
5859
6218
|
const getAttributeValue = (element, attributes) => {
|
|
@@ -5868,7 +6227,10 @@ const getAttributeValue = (element, attributes) => {
|
|
|
5868
6227
|
value = concatAttributes.join(separator || ", ");
|
|
5869
6228
|
}
|
|
5870
6229
|
else {
|
|
5871
|
-
|
|
6230
|
+
const rawValue = attribute?.value;
|
|
6231
|
+
value = rawValue && typeof rawValue === "object"
|
|
6232
|
+
? JSON.stringify(rawValue)
|
|
6233
|
+
: (rawValue || "");
|
|
5872
6234
|
}
|
|
5873
6235
|
return typeof value === "string" && maxLength && maxLength < value.length ? (jsx(TextTrim, { maxLength: maxLength, expandable: expandable, lineBreak: lineBreak, children: value })) : (value);
|
|
5874
6236
|
};
|
|
@@ -6032,8 +6394,7 @@ const SvgContainer$1 = styled.div `
|
|
|
6032
6394
|
}
|
|
6033
6395
|
}
|
|
6034
6396
|
`;
|
|
6035
|
-
const TwoColumnContainerWrapper = styled(
|
|
6036
|
-
width: 100%;
|
|
6397
|
+
const TwoColumnContainerWrapper = styled(Container) `
|
|
6037
6398
|
flex-direction: row;
|
|
6038
6399
|
flex-wrap: nowrap;
|
|
6039
6400
|
align-items: center;
|
|
@@ -6051,44 +6412,6 @@ const TwoColumnContainerWrapper = styled(Flex) `
|
|
|
6051
6412
|
}
|
|
6052
6413
|
`;
|
|
6053
6414
|
|
|
6054
|
-
const useWidgetContext = (type = WidgetType.Dashboard) => {
|
|
6055
|
-
const { toggleLayersVisibility, visibleLayers, projectInfo, updateProject, layerInfos, geometryFilter, dashboardLayers, setDashboardLayer, components: dashboardComponents, selectAttachmentsFromCatalog, config: dashboardConfig, containerIds, pageIndex: projectPageIndex, selectedTabId: projectSelectedTabId, setSelectedTabId: setProjectSelectedTabId, dataSources: projectDataSources, loading: projectLoading, editMode: projectEditMode, filters: projectFilters, changeFilters: projectChangeFilters, expandContainer: projectExpandContainer, expandedContainers: projectExpandedContainers, nextPage: projectNextPage, prevPage: projectPrevPage, changePage: projectChangePage, } = useContext(DashboardContext) || {};
|
|
6056
|
-
const { layerInfo, attributes, feature, controls, changeControls, closeFeatureCard, config: featureConfig, pageIndex: featurePageIndex, selectedTabId: featureSelectedTabId, setSelectedTabId: setFeatureSelectedTabId, dataSources: featureDataSources, loading: featureLoading, editMode: featureEditMode, filters: featureFilters, changeFilters: featureChangeFilters, expandContainer: featureExpandContainer, expandedContainers: featureExpandedContainers, nextPage: featureNextPage, prevPage: featurePrevPage, changePage: featureChangePage, } = useContext(FeatureCardContext) || {};
|
|
6057
|
-
return {
|
|
6058
|
-
toggleLayersVisibility,
|
|
6059
|
-
visibleLayers,
|
|
6060
|
-
projectInfo,
|
|
6061
|
-
layerInfos,
|
|
6062
|
-
updateProject,
|
|
6063
|
-
dashboardLayers,
|
|
6064
|
-
setDashboardLayer,
|
|
6065
|
-
geometryFilter,
|
|
6066
|
-
layerInfo,
|
|
6067
|
-
attributes,
|
|
6068
|
-
feature,
|
|
6069
|
-
closeFeatureCard,
|
|
6070
|
-
containerIds,
|
|
6071
|
-
controls,
|
|
6072
|
-
changeControls,
|
|
6073
|
-
components: dashboardComponents,
|
|
6074
|
-
selectAttachmentsFromCatalog,
|
|
6075
|
-
config: type === WidgetType.Dashboard ? dashboardConfig : featureConfig,
|
|
6076
|
-
isEditing: type === WidgetType.Dashboard ? projectEditMode : featureEditMode,
|
|
6077
|
-
isLoading: type === WidgetType.Dashboard ? projectLoading : featureLoading,
|
|
6078
|
-
pageIndex: type === WidgetType.Dashboard ? projectPageIndex || 1 : featurePageIndex || 1,
|
|
6079
|
-
filters: type === WidgetType.Dashboard ? projectFilters : featureFilters,
|
|
6080
|
-
changeFilters: type === WidgetType.Dashboard ? projectChangeFilters : featureChangeFilters,
|
|
6081
|
-
dataSources: type === WidgetType.Dashboard ? projectDataSources : featureDataSources,
|
|
6082
|
-
expandContainer: type === WidgetType.Dashboard ? projectExpandContainer : featureExpandContainer,
|
|
6083
|
-
expandedContainers: type === WidgetType.Dashboard ? projectExpandedContainers : featureExpandedContainers,
|
|
6084
|
-
selectedTabId: type === WidgetType.Dashboard ? projectSelectedTabId : featureSelectedTabId,
|
|
6085
|
-
setSelectedTabId: type === WidgetType.Dashboard ? setProjectSelectedTabId : setFeatureSelectedTabId,
|
|
6086
|
-
nextPage: type === WidgetType.Dashboard ? projectNextPage : featureNextPage,
|
|
6087
|
-
prevPage: type === WidgetType.Dashboard ? projectPrevPage : featurePrevPage,
|
|
6088
|
-
changePage: type === WidgetType.Dashboard ? projectChangePage : featureChangePage,
|
|
6089
|
-
};
|
|
6090
|
-
};
|
|
6091
|
-
|
|
6092
6415
|
const useRenderContainer = ({ elementConfig, type, renderElement, renderBody, }) => {
|
|
6093
6416
|
const { attributes } = useWidgetContext(type);
|
|
6094
6417
|
const { getRenderContainerItem, attributesToRender } = useContainerAttributes({
|
|
@@ -6107,7 +6430,6 @@ const useRenderContainer = ({ elementConfig, type, renderElement, renderBody, })
|
|
|
6107
6430
|
if (OverrideContainer) {
|
|
6108
6431
|
const itemConfig = {
|
|
6109
6432
|
...elementConfig,
|
|
6110
|
-
style: { ...BASE_CONTAINER_STYLE, ...elementConfig.style },
|
|
6111
6433
|
children: (elementConfig?.children ?? []).map(child => ({
|
|
6112
6434
|
...child,
|
|
6113
6435
|
attributeName: attribute,
|
|
@@ -6136,7 +6458,7 @@ const OneColumnContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
6136
6458
|
});
|
|
6137
6459
|
|
|
6138
6460
|
const TwoColumnContainer = memo(({ elementConfig, type, renderElement }) => {
|
|
6139
|
-
const renderBody = useCallback(({ id, value, style, hasIcon, hasUnits, render }
|
|
6461
|
+
const renderBody = useCallback(({ id, value, style, hasIcon, hasUnits, render }) => (jsxs(TwoColumnContainerWrapper, { id: id, style: style, children: [jsxs(ContainerAlias, { children: [hasIcon && (jsx(ContainerAliasIcon, { children: render({ id: "icon" }) })), render({ id: "alias" }), render({ id: "tooltip" }), render({ id: "modal" })] }), jsxs(ContainerValue, { big: true, children: [value, hasUnits && (jsx(ContainerUnits, { children: render({ id: "units" }) }))] })] })), []);
|
|
6140
6462
|
const { renderContainer, attributesToRender } = useRenderContainer({
|
|
6141
6463
|
type,
|
|
6142
6464
|
elementConfig,
|
|
@@ -7405,17 +7727,10 @@ const getControlTemplateName = (type) => {
|
|
|
7405
7727
|
|
|
7406
7728
|
const EditGroupContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
7407
7729
|
const { config, attributes, layerInfo, expandedContainers } = useWidgetContext(type);
|
|
7730
|
+
const { filteredAttributes, filteredControls } = useEditGroupAttributes({ elementConfig, type });
|
|
7408
7731
|
const getRenderContainerItem = useRenderContainerItem(type, renderElement);
|
|
7409
|
-
const { options } = elementConfig || {};
|
|
7410
|
-
const { controls } = options || {};
|
|
7411
|
-
const filteredAttributes = useMemo(() => {
|
|
7412
|
-
const { idAttribute } = layerInfo?.configuration?.attributesConfiguration || {};
|
|
7413
|
-
if (!idAttribute)
|
|
7414
|
-
return attributes;
|
|
7415
|
-
return attributes.filter(({ attributeName }) => attributeName !== idAttribute);
|
|
7416
|
-
}, [attributes, layerInfo?.configuration]);
|
|
7417
7732
|
const renderContainer = useCallback((attributeName) => {
|
|
7418
|
-
const control =
|
|
7733
|
+
const control = filteredControls?.find(({ targetAttributeName }) => targetAttributeName === attributeName);
|
|
7419
7734
|
const itemAttribute = attributes.find(item => item.attributeName === attributeName);
|
|
7420
7735
|
const templateName = control?.type
|
|
7421
7736
|
? getControlTemplateName(control.type)
|
|
@@ -7436,7 +7751,7 @@ const EditGroupContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
7436
7751
|
}
|
|
7437
7752
|
return (jsx(ContainerTemplateValue, { id: attributeName, type: type, config: config, elementConfig: itemConfig, layerInfo: layerInfo, attributes: attributes, isVisible: isVisibleContainer(id, expandable, expanded, expandedContainers), renderElement: render }, attributeName));
|
|
7438
7753
|
}, [
|
|
7439
|
-
|
|
7754
|
+
filteredControls,
|
|
7440
7755
|
attributes,
|
|
7441
7756
|
elementConfig,
|
|
7442
7757
|
getRenderContainerItem,
|
|
@@ -7445,10 +7760,10 @@ const EditGroupContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
7445
7760
|
layerInfo,
|
|
7446
7761
|
expandedContainers,
|
|
7447
7762
|
]);
|
|
7448
|
-
if (!
|
|
7763
|
+
if (!filteredControls?.length) {
|
|
7449
7764
|
return (jsx(Fragment$1, { children: filteredAttributes.map(({ attributeName }) => renderContainer(attributeName)) }));
|
|
7450
7765
|
}
|
|
7451
|
-
return (jsx(Fragment$1, { children:
|
|
7766
|
+
return (jsx(Fragment$1, { children: filteredControls.map(({ targetAttributeName }) => renderContainer(targetAttributeName)) }));
|
|
7452
7767
|
});
|
|
7453
7768
|
|
|
7454
7769
|
const useEditControl = (type, elementConfig) => {
|
|
@@ -7565,138 +7880,6 @@ const EditDateContainer = ({ type, elementConfig, renderElement, }) => {
|
|
|
7565
7880
|
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 }) })] }));
|
|
7566
7881
|
};
|
|
7567
7882
|
|
|
7568
|
-
const GRID_TILE_SIZE = "4.5rem";
|
|
7569
|
-
const LIST_ICON_SIZE = "1.5rem";
|
|
7570
|
-
const JPG_MIME_TYPE = "image/jpeg";
|
|
7571
|
-
const PNG_MIME_TYPE = "image/png";
|
|
7572
|
-
const IMAGE_MIME_TYPES = [
|
|
7573
|
-
"image/apng",
|
|
7574
|
-
"image/avif",
|
|
7575
|
-
"image/gif",
|
|
7576
|
-
"image/jpeg",
|
|
7577
|
-
"image/png",
|
|
7578
|
-
"image/svg+xml",
|
|
7579
|
-
"image/webp",
|
|
7580
|
-
];
|
|
7581
|
-
const XLSX_MIME_TYPES = [
|
|
7582
|
-
"application/vnd.ms-excel",
|
|
7583
|
-
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
7584
|
-
];
|
|
7585
|
-
const PDF_MIME_TYPE = "application/pdf";
|
|
7586
|
-
const DOCX_MIME_TYPES = [
|
|
7587
|
-
"application/msword",
|
|
7588
|
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
7589
|
-
];
|
|
7590
|
-
const CSV_MIME_TYPE = "text/csv";
|
|
7591
|
-
const JSON_MIME_TYPE = "application/json";
|
|
7592
|
-
const TXT_MIME_TYPE = "text/plain";
|
|
7593
|
-
const PPTX_MIME_TYPES = [
|
|
7594
|
-
"application/vnd.ms-powerpoint",
|
|
7595
|
-
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
7596
|
-
];
|
|
7597
|
-
const SHP_MIME_TYPE = "application/octet-stream";
|
|
7598
|
-
const KML_MIME_TYPE = "application/octet-stream";
|
|
7599
|
-
const ZIP_MIME_TYPE = "application/zip";
|
|
7600
|
-
const PYTHON_MIME_TYPES = ["application/x-python-code", "text/x-python"];
|
|
7601
|
-
var AddAttachmentSource;
|
|
7602
|
-
(function (AddAttachmentSource) {
|
|
7603
|
-
AddAttachmentSource["Pc"] = "pc";
|
|
7604
|
-
AddAttachmentSource["Catalog"] = "catalog";
|
|
7605
|
-
AddAttachmentSource["Link"] = "link";
|
|
7606
|
-
})(AddAttachmentSource || (AddAttachmentSource = {}));
|
|
7607
|
-
|
|
7608
|
-
var img$j = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%2300AAFF'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cpath id='Vector_3' d='M9.84902 10.0353C9.69434 10.0353 9.55605 10.0112 9.43418 9.96318C9.3123 9.91396 9.20918 9.84658 9.1248 9.76104C9.0416 9.67549 8.97773 9.57705 8.9332 9.46572C8.88984 9.35439 8.86816 9.23662 8.86816 9.1124V9.04561C8.86816 8.90615 8.8875 8.77725 8.92617 8.65889C8.96484 8.53936 9.02227 8.43506 9.09844 8.346C9.17461 8.25693 9.27012 8.18779 9.38496 8.13857C9.4998 8.08818 9.6334 8.06299 9.78574 8.06299C9.92051 8.06299 10.0412 8.08467 10.1479 8.12803C10.2545 8.17139 10.3447 8.2335 10.4186 8.31436C10.4936 8.39521 10.5504 8.49307 10.5891 8.60791C10.6289 8.72275 10.6488 8.85166 10.6488 8.99463V9.23545H9.09492V8.86455H10.0705V8.81885C10.0717 8.75557 10.0605 8.70166 10.0371 8.65713C10.0148 8.6126 9.98203 8.57861 9.93867 8.55518C9.89531 8.53174 9.84258 8.52002 9.78047 8.52002C9.71602 8.52002 9.6627 8.53408 9.62051 8.56221C9.57949 8.59033 9.54727 8.629 9.52383 8.67822C9.50156 8.72627 9.48574 8.78193 9.47637 8.84521C9.46699 8.9085 9.46231 8.97529 9.46231 9.04561V9.1124C9.46231 9.18271 9.47168 9.24658 9.49043 9.304C9.51035 9.36143 9.53848 9.41064 9.5748 9.45166C9.6123 9.4915 9.65684 9.52256 9.7084 9.54482C9.76113 9.56709 9.8209 9.57822 9.8877 9.57822C9.96855 9.57822 10.0482 9.56299 10.1268 9.53252C10.2053 9.50205 10.2727 9.45166 10.3289 9.38135L10.5979 9.70127C10.5592 9.75635 10.5041 9.80967 10.4326 9.86123C10.3623 9.91279 10.2779 9.95498 10.1795 9.98779C10.0811 10.0194 9.9709 10.0353 9.84902 10.0353Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.4623 7.2998V9.9998H7.86816V7.2998H8.4623Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.17773 10.0001H5.58184V8.04893C5.58184 7.879 5.61699 7.73604 5.6873 7.62002C5.75879 7.50283 5.86133 7.41436 5.99492 7.35459C6.12852 7.29365 6.29023 7.26318 6.48008 7.26318C6.58789 7.26318 6.6916 7.27256 6.79121 7.29131C6.89082 7.31006 6.99395 7.33467 7.10059 7.36514L7.01797 7.83271C6.94883 7.81396 6.87617 7.79639 6.8 7.77998C6.725 7.76357 6.63066 7.75537 6.51699 7.75537C6.41035 7.75537 6.32715 7.78057 6.26738 7.83096C6.20762 7.88135 6.17773 7.954 6.17773 8.04893V10.0001ZM6.55039 8.09814V8.50947H5.30762V8.09814H6.55039ZM7.37129 8.09814V10.0001H6.77715V8.09814H7.37129Z' fill='white'/%3e%3c/g%3e%3c/svg%3e";
|
|
7609
|
-
|
|
7610
|
-
var img$i = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%2347C782'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='CSV'%3e%3cpath id='Vector_3' d='M10.3816 9.39736L10.9143 7.44092H11.6051L10.742 10.0003H10.2955L10.3816 9.39736ZM9.89824 7.44092L10.4309 9.39736L10.5205 10.0003H10.0687L9.21094 7.44092H9.89824Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.37852 9.32002C8.37852 9.28018 8.37266 9.24443 8.36094 9.21279C8.34922 9.17998 8.32754 9.14951 8.2959 9.12139C8.26426 9.09326 8.21855 9.06514 8.15879 9.03701C8.10019 9.00771 8.02285 8.97725 7.92676 8.94561C7.81426 8.90811 7.70586 8.86592 7.60156 8.81904C7.49727 8.771 7.4041 8.71533 7.32207 8.65205C7.24004 8.5876 7.175 8.5126 7.12695 8.42705C7.07891 8.34033 7.05488 8.23955 7.05488 8.12471C7.05488 8.01455 7.07949 7.91553 7.12871 7.82764C7.17793 7.73857 7.24648 7.66299 7.33437 7.60088C7.42344 7.5376 7.52773 7.48955 7.64727 7.45674C7.7668 7.42275 7.89746 7.40576 8.03926 7.40576C8.22676 7.40576 8.39199 7.43857 8.53496 7.5042C8.6791 7.56865 8.7916 7.66064 8.87246 7.78018C8.95449 7.89854 8.99551 8.03857 8.99551 8.20029H8.38203C8.38203 8.13584 8.36855 8.079 8.3416 8.02979C8.31582 7.98057 8.27656 7.94189 8.22383 7.91377C8.17109 7.88564 8.10488 7.87158 8.0252 7.87158C7.94785 7.87158 7.88281 7.8833 7.83008 7.90674C7.77734 7.93018 7.7375 7.96182 7.71055 8.00166C7.68359 8.04033 7.67012 8.08311 7.67012 8.12998C7.67012 8.16865 7.68066 8.20381 7.70176 8.23545C7.72402 8.26592 7.75508 8.29463 7.79492 8.32158C7.83594 8.34854 7.88516 8.37432 7.94258 8.39893C8.00117 8.42354 8.0668 8.44756 8.13945 8.471C8.27539 8.51436 8.39609 8.56299 8.50156 8.61689C8.6082 8.66963 8.69785 8.72998 8.77051 8.79795C8.84434 8.86475 8.9 8.94092 8.9375 9.02646C8.97617 9.11201 8.99551 9.20869 8.99551 9.3165C8.99551 9.43135 8.97324 9.5333 8.92871 9.62236C8.88418 9.71143 8.82031 9.78701 8.73711 9.84912C8.65391 9.91006 8.5543 9.95635 8.43828 9.98799C8.32227 10.0196 8.19277 10.0354 8.0498 10.0354C7.91855 10.0354 7.78906 10.019 7.66133 9.98623C7.53477 9.95225 7.41992 9.90068 7.3168 9.83154C7.21367 9.76123 7.13105 9.67158 7.06894 9.5626C7.00801 9.45244 6.97754 9.32178 6.97754 9.17061H7.59629C7.59629 9.24561 7.60625 9.30889 7.62617 9.36045C7.64609 9.41201 7.67539 9.45361 7.71406 9.48525C7.75273 9.51572 7.8002 9.53799 7.85645 9.55205C7.9127 9.56494 7.97715 9.57139 8.0498 9.57139C8.12832 9.57139 8.1916 9.56025 8.23965 9.53799C8.2877 9.51455 8.32285 9.48408 8.34512 9.44658C8.36738 9.40791 8.37852 9.36572 8.37852 9.32002Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.05293 9.1335H6.66816C6.65996 9.31162 6.61191 9.46865 6.52402 9.60459C6.43613 9.74053 6.31426 9.84658 6.1584 9.92275C6.00371 9.99775 5.8209 10.0353 5.60996 10.0353C5.43887 10.0353 5.28594 10.0065 5.15117 9.94912C5.01758 9.8917 4.90391 9.80908 4.81016 9.70127C4.71758 9.59346 4.64668 9.46279 4.59746 9.30928C4.54941 9.15576 4.52539 8.98291 4.52539 8.79072V8.65186C4.52539 8.45967 4.55059 8.28682 4.60098 8.1333C4.65254 7.97861 4.7252 7.84736 4.81895 7.73955C4.91387 7.63057 5.02754 7.54736 5.15996 7.48994C5.29238 7.43252 5.43945 7.40381 5.60117 7.40381C5.82383 7.40381 6.01191 7.44365 6.16543 7.52334C6.31895 7.60303 6.43789 7.7126 6.52227 7.85205C6.60664 7.99033 6.65645 8.14795 6.67168 8.3249H6.05645C6.0541 8.22881 6.0377 8.14854 6.00723 8.08408C5.97676 8.01846 5.92871 7.96924 5.86309 7.93643C5.79746 7.90361 5.71016 7.88721 5.60117 7.88721C5.525 7.88721 5.45879 7.90127 5.40254 7.92939C5.34629 7.95752 5.29941 8.00205 5.26191 8.06299C5.22441 8.12393 5.19629 8.20303 5.17754 8.30029C5.15996 8.39639 5.15117 8.5124 5.15117 8.64834V8.79072C5.15117 8.92666 5.15938 9.04268 5.17578 9.13877C5.19219 9.23486 5.21855 9.31338 5.25488 9.37432C5.29121 9.43525 5.33809 9.48037 5.39551 9.50967C5.4541 9.53779 5.52559 9.55186 5.60996 9.55186C5.70371 9.55186 5.78281 9.53721 5.84727 9.50791C5.91172 9.47744 5.96152 9.43174 5.99668 9.3708C6.03184 9.30869 6.05059 9.22959 6.05293 9.1335Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7611
|
-
|
|
7612
|
-
var img$h = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%232B7CD3'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='DOCX'%3e%3cpath id='Vector_3' d='M11.3209 7.44092L11.7393 8.2917L12.1576 7.44092H12.8607L12.1471 8.71006L12.8801 10.0003H12.1699L11.7393 9.13369L11.3086 10.0003H10.5967L11.3314 8.71006L10.616 7.44092H11.3209Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.77754 9.1335H10.3928C10.3846 9.31162 10.3365 9.46865 10.2486 9.60459C10.1607 9.74053 10.0389 9.84658 9.88301 9.92275C9.72832 9.99775 9.54551 10.0353 9.33457 10.0353C9.16348 10.0353 9.01055 10.0065 8.87578 9.94912C8.74219 9.8917 8.62852 9.80908 8.53477 9.70127C8.44219 9.59346 8.37129 9.46279 8.32207 9.30928C8.27402 9.15576 8.25 8.98291 8.25 8.79072V8.65186C8.25 8.45967 8.2752 8.28682 8.32559 8.1333C8.37715 7.97861 8.4498 7.84736 8.54355 7.73955C8.63848 7.63057 8.75215 7.54736 8.88457 7.48994C9.01699 7.43252 9.16406 7.40381 9.32578 7.40381C9.54844 7.40381 9.73652 7.44365 9.89004 7.52334C10.0436 7.60303 10.1625 7.7126 10.2469 7.85205C10.3313 7.99033 10.3811 8.14795 10.3963 8.3249H9.78105C9.77871 8.22881 9.7623 8.14854 9.73184 8.08408C9.70137 8.01846 9.65332 7.96924 9.5877 7.93643C9.52207 7.90361 9.43477 7.88721 9.32578 7.88721C9.24961 7.88721 9.1834 7.90127 9.12715 7.92939C9.0709 7.95752 9.02402 8.00205 8.98652 8.06299C8.94902 8.12393 8.9209 8.20303 8.90215 8.30029C8.88457 8.39639 8.87578 8.5124 8.87578 8.64834V8.79072C8.87578 8.92666 8.88398 9.04268 8.90039 9.13877C8.9168 9.23486 8.94316 9.31338 8.97949 9.37432C9.01582 9.43525 9.0627 9.48037 9.12012 9.50967C9.17871 9.53779 9.2502 9.55186 9.33457 9.55186C9.42832 9.55186 9.50742 9.53721 9.57188 9.50791C9.63633 9.47744 9.68613 9.43174 9.72129 9.3708C9.75645 9.30869 9.7752 9.22959 9.77754 9.1335Z' fill='white'/%3e%3cpath id='Vector_5' d='M7.90176 8.66963V8.77334C7.90176 8.96904 7.87422 9.14482 7.81914 9.30068C7.76523 9.45537 7.68848 9.58779 7.58887 9.69795C7.48926 9.80693 7.37148 9.89072 7.23555 9.94932C7.09961 10.0067 6.94961 10.0354 6.78555 10.0354C6.62031 10.0354 6.46914 10.0067 6.33203 9.94932C6.19609 9.89072 6.07773 9.80693 5.97695 9.69795C5.87734 9.58779 5.8 9.45537 5.74492 9.30068C5.69102 9.14482 5.66406 8.96904 5.66406 8.77334V8.66963C5.66406 8.47393 5.69102 8.29814 5.74492 8.14229C5.8 7.98643 5.87676 7.854 5.9752 7.74502C6.0748 7.63486 6.19258 7.55107 6.32852 7.49365C6.46563 7.43506 6.6168 7.40576 6.78203 7.40576C6.94609 7.40576 7.09609 7.43506 7.23203 7.49365C7.36914 7.55107 7.4875 7.63486 7.58711 7.74502C7.68672 7.854 7.76406 7.98643 7.81914 8.14229C7.87422 8.29814 7.90176 8.47393 7.90176 8.66963ZM7.27598 8.77334V8.66611C7.27598 8.53955 7.26484 8.42822 7.24258 8.33213C7.22148 8.23486 7.18984 8.15342 7.14766 8.08779C7.10547 8.02217 7.05332 7.97295 6.99121 7.94014C6.93027 7.90615 6.86055 7.88916 6.78203 7.88916C6.7 7.88916 6.62852 7.90615 6.56758 7.94014C6.50664 7.97295 6.45566 8.02217 6.41465 8.08779C6.37363 8.15342 6.34258 8.23486 6.32148 8.33213C6.30156 8.42822 6.2916 8.53955 6.2916 8.66611V8.77334C6.2916 8.89873 6.30156 9.01006 6.32148 9.10732C6.34258 9.20342 6.37363 9.28486 6.41465 9.35166C6.45684 9.41846 6.5084 9.46885 6.56934 9.50283C6.63145 9.53682 6.70352 9.55381 6.78555 9.55381C6.86406 9.55381 6.93379 9.53682 6.99473 9.50283C7.05566 9.46885 7.10664 9.41846 7.14766 9.35166C7.18984 9.28486 7.22148 9.20342 7.24258 9.10732C7.26484 9.01006 7.27598 8.89873 7.27598 8.77334Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.13711 10.0003H3.56934L3.57285 9.52568H4.13711C4.2543 9.52568 4.35332 9.49756 4.43418 9.44131C4.51621 9.38506 4.57832 9.30127 4.62051 9.18994C4.66387 9.07744 4.68555 8.93916 4.68555 8.7751V8.66436C4.68555 8.54131 4.67324 8.4335 4.64863 8.34092C4.6252 8.24717 4.59004 8.16924 4.54316 8.10713C4.49629 8.04385 4.4377 7.99639 4.36738 7.96475C4.29824 7.93311 4.21855 7.91729 4.12832 7.91729H3.55879V7.44092H4.12832C4.30176 7.44092 4.46055 7.4708 4.60469 7.53057C4.75 7.58916 4.87539 7.67354 4.98086 7.78369C5.0875 7.89268 5.16953 8.02217 5.22695 8.17217C5.28555 8.321 5.31484 8.48623 5.31484 8.66787V8.7751C5.31484 8.95557 5.28555 9.1208 5.22695 9.2708C5.16953 9.4208 5.08809 9.55029 4.98262 9.65928C4.87715 9.76826 4.75234 9.85264 4.6082 9.9124C4.46523 9.971 4.3082 10.0003 4.13711 10.0003ZM3.92266 7.44092V10.0003H3.30566V7.44092H3.92266Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7613
|
-
|
|
7614
|
-
var img$g = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23FF9C54'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='JPEG'%3e%3cpath id='Vector_3' d='M12.4043 8.63301V9.68418C12.3609 9.73223 12.2941 9.78379 12.2039 9.83887C12.1148 9.89277 12.0023 9.93906 11.8664 9.97773C11.7305 10.0164 11.5705 10.0357 11.3865 10.0357C11.2166 10.0357 11.0625 10.0088 10.9242 9.95488C10.7859 9.8998 10.667 9.81953 10.5674 9.71406C10.4689 9.60742 10.3928 9.47734 10.3389 9.32383C10.2861 9.16914 10.2598 8.99219 10.2598 8.79297V8.65059C10.2598 8.45137 10.2867 8.27441 10.3406 8.11973C10.3945 7.96504 10.4701 7.83496 10.5674 7.72949C10.6658 7.62285 10.7813 7.54199 10.9137 7.48691C11.0473 7.43184 11.1938 7.4043 11.3531 7.4043C11.5887 7.4043 11.7803 7.4418 11.9279 7.5168C12.0756 7.59063 12.1875 7.69316 12.2637 7.82441C12.3398 7.95449 12.3861 8.10508 12.4025 8.27617H11.8102C11.7984 8.1918 11.7762 8.12031 11.7434 8.06172C11.7117 8.00195 11.666 7.95684 11.6063 7.92637C11.5465 7.89473 11.4691 7.87891 11.3742 7.87891C11.3004 7.87891 11.233 7.89473 11.1721 7.92637C11.1123 7.95801 11.0613 8.00605 11.0191 8.07051C10.977 8.13379 10.9441 8.21348 10.9207 8.30957C10.8984 8.40566 10.8873 8.51816 10.8873 8.64707V8.79297C10.8873 8.9207 10.8979 9.03262 10.9189 9.12871C10.9412 9.2248 10.974 9.30508 11.0174 9.36953C11.0619 9.43281 11.1182 9.48086 11.1861 9.51367C11.2553 9.54531 11.3367 9.56113 11.4305 9.56113C11.4961 9.56113 11.5523 9.55586 11.5992 9.54531C11.6461 9.53359 11.6848 9.51953 11.7152 9.50312C11.7469 9.48555 11.7709 9.46914 11.7873 9.45391V9.05664H11.3584V8.63301H12.4043Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.95762 9.52617V10.0008H8.59355V9.52617H9.95762ZM8.81328 7.44141V10.0008H8.19629V7.44141H8.81328ZM9.78184 8.45742V8.91621H8.59355V8.45742H9.78184ZM9.96289 7.44141V7.91777H8.59355V7.44141H9.96289Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.77227 9.13242H6.13594V8.65605H6.77227C6.85898 8.65605 6.9293 8.64141 6.9832 8.61211C7.03711 8.58281 7.07637 8.54238 7.10098 8.49082C7.12676 8.43809 7.13965 8.37891 7.13965 8.31328C7.13965 8.24297 7.12676 8.17793 7.10098 8.11816C7.07637 8.0584 7.03711 8.01035 6.9832 7.97402C6.9293 7.93652 6.85898 7.91777 6.77227 7.91777H6.36797V10.0008H5.75098V7.44141H6.77227C6.97734 7.44141 7.15371 7.47891 7.30137 7.55391C7.4502 7.62891 7.56445 7.73203 7.64414 7.86328C7.72383 7.99336 7.76367 8.14219 7.76367 8.30977C7.76367 8.475 7.72383 8.61914 7.64414 8.74219C7.56445 8.86523 7.4502 8.96133 7.30137 9.03047C7.15371 9.09844 6.97734 9.13242 6.77227 9.13242Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.64395 9.19746V7.44141H5.25918V9.19746C5.25918 9.36855 5.21992 9.5168 5.14141 9.64219C5.06406 9.76758 4.95859 9.86484 4.825 9.93398C4.69258 10.002 4.54375 10.0359 4.37852 10.0359C4.20742 10.0359 4.05508 10.0072 3.92148 9.9498C3.78906 9.89238 3.68477 9.80391 3.60859 9.68437C3.53359 9.56484 3.49609 9.4125 3.49609 9.22734H4.11484C4.11484 9.31406 4.1248 9.38203 4.14473 9.43125C4.16465 9.4793 4.19395 9.51328 4.23262 9.5332C4.27246 9.55195 4.32109 9.56133 4.37852 9.56133C4.43477 9.56133 4.48223 9.54727 4.5209 9.51914C4.56074 9.48984 4.59121 9.44824 4.6123 9.39434C4.6334 9.33926 4.64395 9.27363 4.64395 9.19746Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7615
|
-
|
|
7616
|
-
var img$f = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23FF9C54'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='JPG'%3e%3cpath id='Vector_3' d='M11.3467 8.63301V9.68418C11.3033 9.73223 11.2365 9.78379 11.1463 9.83887C11.0572 9.89277 10.9447 9.93906 10.8088 9.97773C10.6729 10.0164 10.5129 10.0357 10.3289 10.0357C10.159 10.0357 10.0049 10.0088 9.8666 9.95488C9.72832 9.8998 9.60938 9.81953 9.50977 9.71406C9.41133 9.60742 9.33516 9.47734 9.28125 9.32383C9.22852 9.16914 9.20215 8.99219 9.20215 8.79297V8.65059C9.20215 8.45137 9.2291 8.27441 9.28301 8.11973C9.33691 7.96504 9.4125 7.83496 9.50977 7.72949C9.6082 7.62285 9.72363 7.54199 9.85605 7.48691C9.98965 7.43184 10.1361 7.4043 10.2955 7.4043C10.5311 7.4043 10.7227 7.4418 10.8703 7.5168C11.018 7.59063 11.1299 7.69316 11.2061 7.82441C11.2822 7.95449 11.3285 8.10508 11.3449 8.27617H10.7525C10.7408 8.1918 10.7186 8.12031 10.6857 8.06172C10.6541 8.00195 10.6084 7.95684 10.5486 7.92637C10.4889 7.89473 10.4115 7.87891 10.3166 7.87891C10.2428 7.87891 10.1754 7.89473 10.1145 7.92637C10.0547 7.95801 10.0037 8.00605 9.96152 8.07051C9.91934 8.13379 9.88652 8.21348 9.86309 8.30957C9.84082 8.40566 9.82969 8.51816 9.82969 8.64707V8.79297C9.82969 8.9207 9.84023 9.03262 9.86133 9.12871C9.88359 9.2248 9.91641 9.30508 9.95977 9.36953C10.0043 9.43281 10.0605 9.48086 10.1285 9.51367C10.1977 9.54531 10.2791 9.56113 10.3729 9.56113C10.4385 9.56113 10.4947 9.55586 10.5416 9.54531C10.5885 9.53359 10.6271 9.51953 10.6576 9.50312C10.6893 9.48555 10.7133 9.46914 10.7297 9.45391V9.05664H10.3008V8.63301H11.3467Z' fill='white'/%3e%3cpath id='Vector_4' d='M7.82891 9.13242H7.19258V8.65605H7.82891C7.91563 8.65605 7.98594 8.64141 8.03984 8.61211C8.09375 8.58281 8.13301 8.54238 8.15762 8.49082C8.1834 8.43809 8.19629 8.37891 8.19629 8.31328C8.19629 8.24297 8.1834 8.17793 8.15762 8.11816C8.13301 8.0584 8.09375 8.01035 8.03984 7.97402C7.98594 7.93652 7.91563 7.91777 7.82891 7.91777H7.42461V10.0008H6.80762V7.44141H7.82891C8.03398 7.44141 8.21035 7.47891 8.35801 7.55391C8.50684 7.62891 8.62109 7.73203 8.70078 7.86328C8.78047 7.99336 8.82031 8.14219 8.82031 8.30977C8.82031 8.475 8.78047 8.61914 8.70078 8.74219C8.62109 8.86523 8.50684 8.96133 8.35801 9.03047C8.21035 9.09844 8.03398 9.13242 7.82891 9.13242Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.70059 9.19746V7.44141H6.31582V9.19746C6.31582 9.36855 6.27656 9.5168 6.19805 9.64219C6.1207 9.76758 6.01523 9.86484 5.88164 9.93398C5.74922 10.002 5.60039 10.0359 5.43516 10.0359C5.26406 10.0359 5.11172 10.0072 4.97812 9.9498C4.8457 9.89238 4.74141 9.80391 4.66523 9.68437C4.59023 9.56484 4.55273 9.4125 4.55273 9.22734H5.17148C5.17148 9.31406 5.18145 9.38203 5.20137 9.43125C5.22129 9.4793 5.25059 9.51328 5.28926 9.5332C5.3291 9.55195 5.37773 9.56133 5.43516 9.56133C5.49141 9.56133 5.53887 9.54727 5.57754 9.51914C5.61738 9.48984 5.64785 9.44824 5.66895 9.39434C5.69004 9.33926 5.70059 9.27363 5.70059 9.19746Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7617
|
-
|
|
7618
|
-
var img$e = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23AE6BF1'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='JSON'%3e%3cpath id='Vector_3' d='M12.6014 7.44043V9.9998H11.9861L11.0809 8.40723V9.9998H10.4639V7.44043H11.0809L11.9861 9.03301V7.44043H12.6014Z' fill='white'/%3e%3cpath id='Vector_4' d='M10.0434 8.66914V8.77285C10.0434 8.96855 10.0158 9.14434 9.96074 9.3002C9.90684 9.45488 9.83008 9.5873 9.73047 9.69746C9.63086 9.80645 9.51309 9.89023 9.37715 9.94883C9.24121 10.0063 9.09121 10.035 8.92715 10.035C8.76191 10.035 8.61074 10.0063 8.47363 9.94883C8.3377 9.89023 8.21934 9.80645 8.11855 9.69746C8.01895 9.5873 7.9416 9.45488 7.88652 9.3002C7.83262 9.14434 7.80566 8.96855 7.80566 8.77285V8.66914C7.80566 8.47344 7.83262 8.29766 7.88652 8.1418C7.9416 7.98594 8.01836 7.85352 8.1168 7.74453C8.21641 7.63437 8.33418 7.55059 8.47012 7.49316C8.60723 7.43457 8.7584 7.40527 8.92363 7.40527C9.0877 7.40527 9.2377 7.43457 9.37363 7.49316C9.51074 7.55059 9.6291 7.63437 9.72871 7.74453C9.82832 7.85352 9.90566 7.98594 9.96074 8.1418C10.0158 8.29766 10.0434 8.47344 10.0434 8.66914ZM9.41758 8.77285V8.66562C9.41758 8.53906 9.40645 8.42773 9.38418 8.33164C9.36309 8.23438 9.33145 8.15293 9.28926 8.0873C9.24707 8.02168 9.19492 7.97246 9.13281 7.93965C9.07187 7.90566 9.00215 7.88867 8.92363 7.88867C8.8416 7.88867 8.77012 7.90566 8.70918 7.93965C8.64824 7.97246 8.59727 8.02168 8.55625 8.0873C8.51523 8.15293 8.48418 8.23438 8.46309 8.33164C8.44316 8.42773 8.4332 8.53906 8.4332 8.66562V8.77285C8.4332 8.89824 8.44316 9.00957 8.46309 9.10684C8.48418 9.20293 8.51523 9.28437 8.55625 9.35117C8.59844 9.41797 8.65 9.46836 8.71094 9.50234C8.77305 9.53633 8.84512 9.55332 8.92715 9.55332C9.00566 9.55332 9.07539 9.53633 9.13633 9.50234C9.19727 9.46836 9.24824 9.41797 9.28926 9.35117C9.33145 9.28437 9.36309 9.20293 9.38418 9.10684C9.40645 9.00957 9.41758 8.89824 9.41758 8.77285Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.84336 9.31953C6.84336 9.27969 6.8375 9.24395 6.82578 9.2123C6.81406 9.17949 6.79238 9.14902 6.76074 9.1209C6.7291 9.09277 6.6834 9.06465 6.62363 9.03652C6.56504 9.00723 6.4877 8.97676 6.3916 8.94512C6.2791 8.90762 6.1707 8.86543 6.06641 8.81855C5.96211 8.77051 5.86895 8.71484 5.78691 8.65156C5.70488 8.58711 5.63984 8.51211 5.5918 8.42656C5.54375 8.33984 5.51973 8.23906 5.51973 8.12422C5.51973 8.01406 5.54434 7.91504 5.59355 7.82715C5.64277 7.73809 5.71133 7.6625 5.79922 7.60039C5.88828 7.53711 5.99258 7.48906 6.11211 7.45625C6.23164 7.42227 6.3623 7.40527 6.5041 7.40527C6.6916 7.40527 6.85684 7.43809 6.9998 7.50371C7.14395 7.56816 7.25645 7.66016 7.3373 7.77969C7.41934 7.89805 7.46035 8.03809 7.46035 8.1998H6.84688C6.84688 8.13535 6.8334 8.07852 6.80645 8.0293C6.78066 7.98008 6.74141 7.94141 6.68867 7.91328C6.63594 7.88516 6.56973 7.87109 6.49004 7.87109C6.4127 7.87109 6.34766 7.88281 6.29492 7.90625C6.24219 7.92969 6.20234 7.96133 6.17539 8.00117C6.14844 8.03984 6.13496 8.08262 6.13496 8.12949C6.13496 8.16816 6.14551 8.20332 6.1666 8.23496C6.18887 8.26543 6.21992 8.29414 6.25977 8.32109C6.30078 8.34805 6.35 8.37383 6.40742 8.39844C6.46602 8.42305 6.53164 8.44707 6.6043 8.47051C6.74023 8.51387 6.86094 8.5625 6.96641 8.61641C7.07305 8.66914 7.1627 8.72949 7.23535 8.79746C7.30918 8.86426 7.36484 8.94043 7.40234 9.02598C7.44102 9.11152 7.46035 9.2082 7.46035 9.31602C7.46035 9.43086 7.43809 9.53281 7.39355 9.62187C7.34902 9.71094 7.28516 9.78652 7.20195 9.84863C7.11875 9.90957 7.01914 9.95586 6.90312 9.9875C6.78711 10.0191 6.65762 10.035 6.51465 10.035C6.3834 10.035 6.25391 10.0186 6.12617 9.98574C5.99961 9.95176 5.88477 9.9002 5.78164 9.83105C5.67852 9.76074 5.5959 9.67109 5.53379 9.56211C5.47285 9.45195 5.44238 9.32129 5.44238 9.17012H6.06113C6.06113 9.24512 6.07109 9.3084 6.09102 9.35996C6.11094 9.41152 6.14023 9.45312 6.17891 9.48477C6.21758 9.51523 6.26504 9.5375 6.32129 9.55156C6.37754 9.56445 6.44199 9.5709 6.51465 9.5709C6.59316 9.5709 6.65645 9.55977 6.70449 9.5375C6.75254 9.51406 6.7877 9.48359 6.80996 9.44609C6.83223 9.40742 6.84336 9.36523 6.84336 9.31953Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.41738 9.19648V7.44043H5.03262V9.19648C5.03262 9.36758 4.99336 9.51582 4.91484 9.64121C4.8375 9.7666 4.73203 9.86387 4.59844 9.93301C4.46602 10.001 4.31719 10.035 4.15195 10.035C3.98086 10.035 3.82852 10.0063 3.69492 9.94883C3.5625 9.89141 3.4582 9.80293 3.38203 9.6834C3.30703 9.56387 3.26953 9.41152 3.26953 9.22637H3.88828C3.88828 9.31309 3.89824 9.38105 3.91816 9.43027C3.93809 9.47832 3.96738 9.5123 4.00605 9.53223C4.0459 9.55098 4.09453 9.56035 4.15195 9.56035C4.2082 9.56035 4.25566 9.54629 4.29434 9.51816C4.33418 9.48887 4.36465 9.44727 4.38574 9.39336C4.40684 9.33828 4.41738 9.27266 4.41738 9.19648Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7619
|
-
|
|
7620
|
-
var img$d = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%236155E9'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='KML'%3e%3cpath id='Vector_3' d='M11.7408 9.5252V9.9998H10.4471V9.5252H11.7408ZM10.6668 7.44043V9.9998H10.0498V7.44043H10.6668Z' fill='white'/%3e%3cpath id='Vector_4' d='M7.09785 7.44043H7.60059L8.17188 9.22109L8.74316 7.44043H9.2459L8.37578 9.9998H7.96797L7.09785 7.44043ZM6.79199 7.44043H7.3123L7.40898 9.40215V9.9998H6.79199V7.44043ZM9.03145 7.44043H9.55352V9.9998H8.93477V9.40215L9.03145 7.44043Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.00664 7.44043V9.9998H4.38965V7.44043H5.00664ZM6.53418 7.44043L5.54277 8.7377L4.9627 9.37227L4.8502 8.80625L5.22109 8.24375L5.77305 7.44043H6.53418ZM5.80469 9.9998L5.14375 8.84668L5.62363 8.49336L6.53418 9.9998H5.80469Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7621
|
-
|
|
7622
|
-
var img$c = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23EC473F'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PDF'%3e%3cpath id='Vector_3' d='M10.2654 7.44043V9.9998H9.64844V7.44043H10.2654ZM11.2604 8.50566V8.98027H10.0896V8.50566H11.2604ZM11.3605 7.44043V7.9168H10.0896V7.44043H11.3605Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.04922 9.9998H7.48145L7.48496 9.5252H8.04922C8.16641 9.5252 8.26543 9.49707 8.34629 9.44082C8.42832 9.38457 8.49043 9.30078 8.53262 9.18945C8.57598 9.07695 8.59766 8.93867 8.59766 8.77461V8.66387C8.59766 8.54082 8.58535 8.43301 8.56074 8.34043C8.5373 8.24668 8.50215 8.16875 8.45527 8.10664C8.4084 8.04336 8.3498 7.9959 8.27949 7.96426C8.21035 7.93262 8.13066 7.9168 8.04043 7.9168H7.4709V7.44043H8.04043C8.21387 7.44043 8.37266 7.47031 8.5168 7.53008C8.66211 7.58867 8.7875 7.67305 8.89297 7.7832C8.99961 7.89219 9.08164 8.02168 9.13906 8.17168C9.19766 8.32051 9.22695 8.48574 9.22695 8.66738V8.77461C9.22695 8.95508 9.19766 9.12031 9.13906 9.27031C9.08164 9.42031 9.0002 9.5498 8.89473 9.65879C8.78926 9.76777 8.66445 9.85215 8.52031 9.91191C8.37734 9.97051 8.22031 9.9998 8.04922 9.9998ZM7.83477 7.44043V9.9998H7.21777V7.44043H7.83477Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.79375 9.13145H5.15742V8.65508H5.79375C5.88047 8.65508 5.95078 8.64043 6.00469 8.61113C6.05859 8.58184 6.09785 8.54141 6.12246 8.48984C6.14824 8.43711 6.16113 8.37793 6.16113 8.3123C6.16113 8.24199 6.14824 8.17695 6.12246 8.11719C6.09785 8.05742 6.05859 8.00937 6.00469 7.97305C5.95078 7.93555 5.88047 7.9168 5.79375 7.9168H5.38945V9.9998H4.77246V7.44043H5.79375C5.99883 7.44043 6.1752 7.47793 6.32285 7.55293C6.47168 7.62793 6.58594 7.73105 6.66562 7.8623C6.74531 7.99238 6.78516 8.14121 6.78516 8.30879C6.78516 8.47402 6.74531 8.61816 6.66562 8.74121C6.58594 8.86426 6.47168 8.96035 6.32285 9.02949C6.1752 9.09746 5.99883 9.13145 5.79375 9.13145Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7623
|
-
|
|
7624
|
-
var img$b = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%239381FF'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PNG'%3e%3cpath id='Vector_3' d='M11.5977 8.63301V9.68418C11.5543 9.73223 11.4875 9.78379 11.3973 9.83887C11.3082 9.89277 11.1957 9.93906 11.0598 9.97773C10.9238 10.0164 10.7639 10.0357 10.5799 10.0357C10.41 10.0357 10.2559 10.0088 10.1176 9.95488C9.9793 9.8998 9.86035 9.81953 9.76074 9.71406C9.6623 9.60742 9.58613 9.47734 9.53223 9.32383C9.47949 9.16914 9.45312 8.99219 9.45312 8.79297V8.65059C9.45312 8.45137 9.48008 8.27441 9.53398 8.11973C9.58789 7.96504 9.66348 7.83496 9.76074 7.72949C9.85918 7.62285 9.97461 7.54199 10.107 7.48691C10.2406 7.43184 10.3871 7.4043 10.5465 7.4043C10.782 7.4043 10.9736 7.4418 11.1213 7.5168C11.2689 7.59063 11.3809 7.69316 11.457 7.82441C11.5332 7.95449 11.5795 8.10508 11.5959 8.27617H11.0035C10.9918 8.1918 10.9695 8.12031 10.9367 8.06172C10.9051 8.00195 10.8594 7.95684 10.7996 7.92637C10.7398 7.89473 10.6625 7.87891 10.5676 7.87891C10.4937 7.87891 10.4264 7.89473 10.3654 7.92637C10.3057 7.95801 10.2547 8.00605 10.2125 8.07051C10.1703 8.13379 10.1375 8.21348 10.1141 8.30957C10.0918 8.40566 10.0807 8.51816 10.0807 8.64707V8.79297C10.0807 8.9207 10.0912 9.03262 10.1123 9.12871C10.1346 9.2248 10.1674 9.30508 10.2107 9.36953C10.2553 9.43281 10.3115 9.48086 10.3795 9.51367C10.4486 9.54531 10.5301 9.56113 10.6238 9.56113C10.6895 9.56113 10.7457 9.55586 10.7926 9.54531C10.8395 9.53359 10.8781 9.51953 10.9086 9.50312C10.9402 9.48555 10.9643 9.46914 10.9807 9.45391V9.05664H10.5518V8.63301H11.5977Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.01445 7.44141V10.0008H8.39922L7.49395 8.4082V10.0008H6.87695V7.44141H7.49395L8.39922 9.03398V7.44141H9.01445Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.45293 9.13242H4.8166V8.65605H5.45293C5.53965 8.65605 5.60996 8.64141 5.66387 8.61211C5.71777 8.58281 5.75703 8.54238 5.78164 8.49082C5.80742 8.43809 5.82031 8.37891 5.82031 8.31328C5.82031 8.24297 5.80742 8.17793 5.78164 8.11816C5.75703 8.0584 5.71777 8.01035 5.66387 7.97402C5.60996 7.93652 5.53965 7.91777 5.45293 7.91777H5.04863V10.0008H4.43164V7.44141H5.45293C5.65801 7.44141 5.83437 7.47891 5.98203 7.55391C6.13086 7.62891 6.24512 7.73203 6.3248 7.86328C6.40449 7.99336 6.44434 8.14219 6.44434 8.30977C6.44434 8.475 6.40449 8.61914 6.3248 8.74219C6.24512 8.86523 6.13086 8.96133 5.98203 9.03047C5.83437 9.09844 5.65801 9.13242 5.45293 9.13242Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7625
|
-
|
|
7626
|
-
var img$a = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23CA4424'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PPTX'%3e%3cpath id='Vector_3' d='M11.2125 7.44043L11.6309 8.29121L12.0492 7.44043H12.7523L12.0387 8.70957L12.7717 9.9998H12.0615L11.6309 9.1332L11.2002 9.9998H10.4883L11.223 8.70957L10.5076 7.44043H11.2125Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.54414 7.44043V9.9998H8.92715V7.44043H9.54414ZM10.3141 7.44043V7.9168H8.1748V7.44043H10.3141Z' fill='white'/%3e%3cpath id='Vector_5' d='M6.88164 9.13145H6.24531V8.65508H6.88164C6.96836 8.65508 7.03867 8.64043 7.09258 8.61113C7.14648 8.58184 7.18574 8.54141 7.21035 8.48984C7.23613 8.43711 7.24902 8.37793 7.24902 8.3123C7.24902 8.24199 7.23613 8.17695 7.21035 8.11719C7.18574 8.05742 7.14648 8.00937 7.09258 7.97305C7.03867 7.93555 6.96836 7.9168 6.88164 7.9168H6.47734V9.9998H5.86035V7.44043H6.88164C7.08672 7.44043 7.26309 7.47793 7.41074 7.55293C7.55957 7.62793 7.67383 7.73105 7.75352 7.8623C7.8332 7.99238 7.87305 8.14121 7.87305 8.30879C7.87305 8.47402 7.8332 8.61816 7.75352 8.74121C7.67383 8.86426 7.55957 8.96035 7.41074 9.02949C7.26309 9.09746 7.08672 9.13145 6.88164 9.13145Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.43633 9.13145H3.8V8.65508H4.43633C4.52305 8.65508 4.59336 8.64043 4.64727 8.61113C4.70117 8.58184 4.74043 8.54141 4.76504 8.48984C4.79082 8.43711 4.80371 8.37793 4.80371 8.3123C4.80371 8.24199 4.79082 8.17695 4.76504 8.11719C4.74043 8.05742 4.70117 8.00937 4.64727 7.97305C4.59336 7.93555 4.52305 7.9168 4.43633 7.9168H4.03203V9.9998H3.41504V7.44043H4.43633C4.64141 7.44043 4.81777 7.47793 4.96543 7.55293C5.11426 7.62793 5.22852 7.73105 5.3082 7.8623C5.38789 7.99238 5.42773 8.14121 5.42773 8.30879C5.42773 8.47402 5.38789 8.61816 5.3082 8.74121C5.22852 8.86426 5.11426 8.96035 4.96543 9.02949C4.81777 9.09746 4.64141 9.13145 4.43633 9.13145Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7627
|
-
|
|
7628
|
-
var img$9 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%233674A5'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='PY'%3e%3cpath id='Vector_3' d='M8.75215 7.44141L9.22324 8.55234L9.69609 7.44141H10.3605L9.53789 9.08145V10.0008H8.91035V9.08145L8.08594 7.44141H8.75215Z' fill='%23FED341'/%3e%3cpath id='Vector_4' d='M6.86406 9.13242H6.22773V8.65605H6.86406C6.95078 8.65605 7.02109 8.64141 7.075 8.61211C7.12891 8.58281 7.16816 8.54238 7.19277 8.49082C7.21855 8.43809 7.23145 8.37891 7.23145 8.31328C7.23145 8.24297 7.21855 8.17793 7.19277 8.11816C7.16816 8.0584 7.12891 8.01035 7.075 7.97402C7.02109 7.93652 6.95078 7.91777 6.86406 7.91777H6.45977V10.0008H5.84277V7.44141H6.86406C7.06914 7.44141 7.24551 7.47891 7.39316 7.55391C7.54199 7.62891 7.65625 7.73203 7.73594 7.86328C7.81563 7.99336 7.85547 8.14219 7.85547 8.30977C7.85547 8.475 7.81563 8.61914 7.73594 8.74219C7.65625 8.86523 7.54199 8.96133 7.39316 9.03047C7.24551 9.09844 7.06914 9.13242 6.86406 9.13242Z' fill='%23FED341'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7629
|
-
|
|
7630
|
-
var img$8 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23C0D155'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='SHP'%3e%3cpath id='Vector_3' d='M10.5359 9.13145H9.89961V8.65508H10.5359C10.6227 8.65508 10.693 8.64043 10.7469 8.61113C10.8008 8.58184 10.84 8.54141 10.8646 8.48984C10.8904 8.43711 10.9033 8.37793 10.9033 8.3123C10.9033 8.24199 10.8904 8.17695 10.8646 8.11719C10.84 8.05742 10.8008 8.00937 10.7469 7.97305C10.693 7.93555 10.6227 7.9168 10.5359 7.9168H10.1316V9.9998H9.51465V7.44043H10.5359C10.741 7.44043 10.9174 7.47793 11.065 7.55293C11.2139 7.62793 11.3281 7.73105 11.4078 7.8623C11.4875 7.99238 11.5273 8.14121 11.5273 8.30879C11.5273 8.47402 11.4875 8.61816 11.4078 8.74121C11.3281 8.86426 11.2139 8.96035 11.065 9.02949C10.9174 9.09746 10.741 9.13145 10.5359 9.13145Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.6082 8.45645V8.93105H7.29512V8.45645H8.6082ZM7.50078 7.44043V9.9998H6.88379V7.44043H7.50078ZM9.02305 7.44043V9.9998H8.40781V7.44043H9.02305Z' fill='white'/%3e%3cpath id='Vector_5' d='M5.84824 9.31953C5.84824 9.27969 5.84238 9.24395 5.83066 9.2123C5.81895 9.17949 5.79727 9.14902 5.76562 9.1209C5.73398 9.09277 5.68828 9.06465 5.62852 9.03652C5.56992 9.00723 5.49258 8.97676 5.39648 8.94512C5.28398 8.90762 5.17559 8.86543 5.07129 8.81855C4.96699 8.77051 4.87383 8.71484 4.7918 8.65156C4.70977 8.58711 4.64473 8.51211 4.59668 8.42656C4.54863 8.33984 4.52461 8.23906 4.52461 8.12422C4.52461 8.01406 4.54922 7.91504 4.59844 7.82715C4.64766 7.73809 4.71621 7.6625 4.8041 7.60039C4.89316 7.53711 4.99746 7.48906 5.11699 7.45625C5.23652 7.42227 5.36719 7.40527 5.50898 7.40527C5.69648 7.40527 5.86172 7.43809 6.00469 7.50371C6.14883 7.56816 6.26133 7.66016 6.34219 7.77969C6.42422 7.89805 6.46523 8.03809 6.46523 8.1998H5.85176C5.85176 8.13535 5.83828 8.07852 5.81133 8.0293C5.78555 7.98008 5.74629 7.94141 5.69355 7.91328C5.64082 7.88516 5.57461 7.87109 5.49492 7.87109C5.41758 7.87109 5.35254 7.88281 5.2998 7.90625C5.24707 7.92969 5.20723 7.96133 5.18027 8.00117C5.15332 8.03984 5.13984 8.08262 5.13984 8.12949C5.13984 8.16816 5.15039 8.20332 5.17148 8.23496C5.19375 8.26543 5.2248 8.29414 5.26465 8.32109C5.30566 8.34805 5.35488 8.37383 5.4123 8.39844C5.4709 8.42305 5.53652 8.44707 5.60918 8.47051C5.74512 8.51387 5.86582 8.5625 5.97129 8.61641C6.07793 8.66914 6.16758 8.72949 6.24023 8.79746C6.31406 8.86426 6.36973 8.94043 6.40723 9.02598C6.4459 9.11152 6.46523 9.2082 6.46523 9.31602C6.46523 9.43086 6.44297 9.53281 6.39844 9.62187C6.35391 9.71094 6.29004 9.78652 6.20684 9.84863C6.12363 9.90957 6.02402 9.95586 5.90801 9.9875C5.79199 10.0191 5.6625 10.035 5.51953 10.035C5.38828 10.035 5.25879 10.0186 5.13105 9.98574C5.00449 9.95176 4.88965 9.9002 4.78652 9.83105C4.6834 9.76074 4.60078 9.67109 4.53867 9.56211C4.47773 9.45195 4.44727 9.32129 4.44727 9.17012H5.06602C5.06602 9.24512 5.07598 9.3084 5.0959 9.35996C5.11582 9.41152 5.14512 9.45312 5.18379 9.48477C5.22246 9.51523 5.26992 9.5375 5.32617 9.55156C5.38242 9.56445 5.44687 9.5709 5.51953 9.5709C5.59805 9.5709 5.66133 9.55977 5.70937 9.5375C5.75742 9.51406 5.79258 9.48359 5.81484 9.44609C5.83711 9.40742 5.84824 9.36523 5.84824 9.31953Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7631
|
-
|
|
7632
|
-
var img$7 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23DDE3EA'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='TXT'%3e%3cpath id='Vector_3' d='M10.6838 7.44043V9.9998H10.0668V7.44043H10.6838ZM11.4537 7.44043V7.9168H9.31445V7.44043H11.4537Z' fill='black'/%3e%3cpath id='Vector_4' d='M7.58164 7.44043L8 8.29121L8.41836 7.44043H9.12148L8.40781 8.70957L9.14082 9.9998H8.43066L8 9.1332L7.56934 9.9998H6.85742L7.59219 8.70957L6.87676 7.44043H7.58164Z' fill='black'/%3e%3cpath id='Vector_5' d='M5.91328 7.44043V9.9998H5.29629V7.44043H5.91328ZM6.6832 7.44043V7.9168H4.54395V7.44043H6.6832Z' fill='black'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7633
|
-
|
|
7634
|
-
var img$6 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%2341A246'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='XLSX'%3e%3cpath id='Vector_3' d='M10.983 7.44043L11.4014 8.29121L11.8197 7.44043H12.5229L11.8092 8.70957L12.5422 9.9998H11.832L11.4014 9.1332L10.9707 9.9998H10.2588L10.9936 8.70957L10.2781 7.44043H10.983Z' fill='white'/%3e%3cpath id='Vector_4' d='M9.41172 9.31953C9.41172 9.27969 9.40586 9.24395 9.39414 9.2123C9.38242 9.17949 9.36074 9.14902 9.3291 9.1209C9.29746 9.09277 9.25176 9.06465 9.19199 9.03652C9.1334 9.00723 9.05605 8.97676 8.95996 8.94512C8.84746 8.90762 8.73906 8.86543 8.63477 8.81855C8.53047 8.77051 8.4373 8.71484 8.35527 8.65156C8.27324 8.58711 8.2082 8.51211 8.16016 8.42656C8.11211 8.33984 8.08809 8.23906 8.08809 8.12422C8.08809 8.01406 8.1127 7.91504 8.16191 7.82715C8.21113 7.73809 8.27969 7.6625 8.36758 7.60039C8.45664 7.53711 8.56094 7.48906 8.68047 7.45625C8.8 7.42227 8.93066 7.40527 9.07246 7.40527C9.25996 7.40527 9.4252 7.43809 9.56816 7.50371C9.7123 7.56816 9.8248 7.66016 9.90566 7.77969C9.9877 7.89805 10.0287 8.03809 10.0287 8.1998H9.41523C9.41523 8.13535 9.40176 8.07852 9.3748 8.0293C9.34902 7.98008 9.30977 7.94141 9.25703 7.91328C9.2043 7.88516 9.13809 7.87109 9.0584 7.87109C8.98105 7.87109 8.91602 7.88281 8.86328 7.90625C8.81055 7.92969 8.7707 7.96133 8.74375 8.00117C8.7168 8.03984 8.70332 8.08262 8.70332 8.12949C8.70332 8.16816 8.71387 8.20332 8.73496 8.23496C8.75723 8.26543 8.78828 8.29414 8.82812 8.32109C8.86914 8.34805 8.91836 8.37383 8.97578 8.39844C9.03437 8.42305 9.1 8.44707 9.17266 8.47051C9.30859 8.51387 9.4293 8.5625 9.53477 8.61641C9.64141 8.66914 9.73105 8.72949 9.80371 8.79746C9.87754 8.86426 9.9332 8.94043 9.9707 9.02598C10.0094 9.11152 10.0287 9.2082 10.0287 9.31602C10.0287 9.43086 10.0064 9.53281 9.96191 9.62187C9.91738 9.71094 9.85352 9.78652 9.77031 9.84863C9.68711 9.90957 9.5875 9.95586 9.47148 9.9875C9.35547 10.0191 9.22598 10.035 9.08301 10.035C8.95176 10.035 8.82227 10.0186 8.69453 9.98574C8.56797 9.95176 8.45312 9.9002 8.35 9.83105C8.24687 9.76074 8.16426 9.67109 8.10215 9.56211C8.04121 9.45195 8.01074 9.32129 8.01074 9.17012H8.62949C8.62949 9.24512 8.63945 9.3084 8.65937 9.35996C8.6793 9.41152 8.70859 9.45312 8.74727 9.48477C8.78594 9.51523 8.8334 9.5375 8.88965 9.55156C8.9459 9.56445 9.01035 9.5709 9.08301 9.5709C9.16152 9.5709 9.2248 9.55977 9.27285 9.5375C9.3209 9.51406 9.35605 9.48359 9.37832 9.44609C9.40059 9.40742 9.41172 9.36523 9.41172 9.31953Z' fill='white'/%3e%3cpath id='Vector_5' d='M7.73301 9.5252V9.9998H6.43926V9.5252H7.73301ZM6.65898 7.44043V9.9998H6.04199V7.44043H6.65898Z' fill='white'/%3e%3cpath id='Vector_6' d='M4.1793 7.44043L4.59766 8.29121L5.01602 7.44043H5.71914L5.00547 8.70957L5.73848 9.9998H5.02832L4.59766 9.1332L4.16699 9.9998H3.45508L4.18984 8.70957L3.47441 7.44043H4.1793Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7635
|
-
|
|
7636
|
-
var img$5 = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg id='Frame'%3e%3cpath id='Vector' d='M13 16H3C2.4 16 2 15.6 2 15V1C2 0.4 2.4 0 3 0H10L14 4V15C14 15.6 13.6 16 13 16Z' fill='%23F4BB0A'/%3e%3cpath id='Vector_2' opacity='0.36' d='M14 4L10 0V3C10 3.6 10.4 4 11 4H14Z' fill='white'/%3e%3cg id='ZIP'%3e%3cpath id='Vector_3' d='M9.78789 9.13145H9.15156V8.65508H9.78789C9.87461 8.65508 9.94492 8.64043 9.99883 8.61113C10.0527 8.58184 10.092 8.54141 10.1166 8.48984C10.1424 8.43711 10.1553 8.37793 10.1553 8.3123C10.1553 8.24199 10.1424 8.17695 10.1166 8.11719C10.092 8.05742 10.0527 8.00937 9.99883 7.97305C9.94492 7.93555 9.87461 7.9168 9.78789 7.9168H9.38359V9.9998H8.7666V7.44043H9.78789C9.99297 7.44043 10.1693 7.47793 10.317 7.55293C10.4658 7.62793 10.5801 7.73105 10.6598 7.8623C10.7395 7.99238 10.7793 8.14121 10.7793 8.30879C10.7793 8.47402 10.7395 8.61816 10.6598 8.74121C10.5801 8.86426 10.4658 8.96035 10.317 9.02949C10.1693 9.09746 9.99297 9.13145 9.78789 9.13145Z' fill='white'/%3e%3cpath id='Vector_4' d='M8.23242 7.44043V9.9998H7.61719V7.44043H8.23242Z' fill='white'/%3e%3cpath id='Vector_5' d='M7.19551 9.5252V9.9998H5.34277V9.5252H7.19551ZM7.1832 7.75684L5.64863 9.9998H5.20215V9.67461L6.7543 7.44043H7.1832V7.75684ZM6.98457 7.44043V7.9168H5.19336V7.44043H6.98457Z' fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
7637
|
-
|
|
7638
|
-
var FileType;
|
|
7639
|
-
(function (FileType) {
|
|
7640
|
-
FileType[FileType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
7641
|
-
FileType[FileType["XLSX"] = 1] = "XLSX";
|
|
7642
|
-
FileType[FileType["PDF"] = 2] = "PDF";
|
|
7643
|
-
FileType[FileType["CSV"] = 3] = "CSV";
|
|
7644
|
-
FileType[FileType["DOCX"] = 4] = "DOCX";
|
|
7645
|
-
FileType[FileType["IMAGE"] = 5] = "IMAGE";
|
|
7646
|
-
FileType[FileType["TXT"] = 6] = "TXT";
|
|
7647
|
-
FileType[FileType["JSON"] = 7] = "JSON";
|
|
7648
|
-
FileType[FileType["KML"] = 8] = "KML";
|
|
7649
|
-
FileType[FileType["PPTX"] = 9] = "PPTX";
|
|
7650
|
-
FileType[FileType["SHP"] = 10] = "SHP";
|
|
7651
|
-
FileType[FileType["ZIP"] = 11] = "ZIP";
|
|
7652
|
-
FileType[FileType["JPEG"] = 12] = "JPEG";
|
|
7653
|
-
FileType[FileType["JPG"] = 13] = "JPG";
|
|
7654
|
-
FileType[FileType["PNG"] = 14] = "PNG";
|
|
7655
|
-
FileType[FileType["PYTHON"] = 15] = "PYTHON";
|
|
7656
|
-
})(FileType || (FileType = {}));
|
|
7657
|
-
const IMAGE_FILE_TYPES = [
|
|
7658
|
-
FileType.IMAGE,
|
|
7659
|
-
FileType.JPEG,
|
|
7660
|
-
FileType.JPG,
|
|
7661
|
-
FileType.PNG,
|
|
7662
|
-
];
|
|
7663
|
-
|
|
7664
|
-
const getFileTypeIcon = (fileType) => {
|
|
7665
|
-
switch (fileType) {
|
|
7666
|
-
case FileType.CSV:
|
|
7667
|
-
return img$i;
|
|
7668
|
-
case FileType.XLSX:
|
|
7669
|
-
return img$6;
|
|
7670
|
-
case FileType.DOCX:
|
|
7671
|
-
return img$h;
|
|
7672
|
-
case FileType.PDF:
|
|
7673
|
-
return img$c;
|
|
7674
|
-
case FileType.JSON:
|
|
7675
|
-
return img$e;
|
|
7676
|
-
case FileType.KML:
|
|
7677
|
-
return img$d;
|
|
7678
|
-
case FileType.PPTX:
|
|
7679
|
-
return img$a;
|
|
7680
|
-
case FileType.SHP:
|
|
7681
|
-
return img$8;
|
|
7682
|
-
case FileType.TXT:
|
|
7683
|
-
return img$7;
|
|
7684
|
-
case FileType.ZIP:
|
|
7685
|
-
return img$5;
|
|
7686
|
-
case FileType.IMAGE:
|
|
7687
|
-
case FileType.JPEG:
|
|
7688
|
-
return img$g;
|
|
7689
|
-
case FileType.JPG:
|
|
7690
|
-
return img$f;
|
|
7691
|
-
case FileType.PNG:
|
|
7692
|
-
return img$b;
|
|
7693
|
-
case FileType.PYTHON:
|
|
7694
|
-
return img$9;
|
|
7695
|
-
default:
|
|
7696
|
-
return img$j;
|
|
7697
|
-
}
|
|
7698
|
-
};
|
|
7699
|
-
|
|
7700
7883
|
const AttachmentsContainer = styled.div `
|
|
7701
7884
|
display: flex;
|
|
7702
7885
|
flex-direction: column;
|
|
@@ -8024,22 +8207,6 @@ const AttachmentLinkDialog = ({ isOpen, onClose, onSubmit, }) => {
|
|
|
8024
8207
|
return (jsxs(Dialog, { isOpen: isOpen, onCloseRequest: handleClose, modal: true, maxWidth: "32rem", minHeight: "0", children: [jsxs(DialogTitle, { children: [jsx(ActionsGroup, { children: title }), jsx(ActionsGroup, { children: jsx(IconButton, { kind: "close", onClick: handleClose }) })] }), jsx(DialogContent, { children: jsx(LinkDialogContent, { children: jsx(Input, { label: urlLabel, placeholder: urlLabel, value: url, width: "100%", onChange: handleChange }) }) }), jsx(DialogActions, { children: jsxs(ActionsGroup, { children: [jsx(FlatButton, { onClick: handleClose, children: cancelLabel }), jsx(RaisedButton, { primary: true, disabled: !url.trim(), onClick: handleSubmit, children: attachLabel })] }) })] }));
|
|
8025
8208
|
};
|
|
8026
8209
|
|
|
8027
|
-
const useGlobalContext = () => {
|
|
8028
|
-
const { t, language, themeName, api, ewktGeometry } = useContext(GlobalContext) || {};
|
|
8029
|
-
const translate = useCallback((value, options) => {
|
|
8030
|
-
if (t)
|
|
8031
|
-
return t(value, options);
|
|
8032
|
-
return options?.defaultValue ?? value;
|
|
8033
|
-
}, [t]);
|
|
8034
|
-
return useMemo(() => ({
|
|
8035
|
-
t: translate,
|
|
8036
|
-
language,
|
|
8037
|
-
themeName,
|
|
8038
|
-
api,
|
|
8039
|
-
ewktGeometry,
|
|
8040
|
-
}), [language, translate, api, ewktGeometry, themeName]);
|
|
8041
|
-
};
|
|
8042
|
-
|
|
8043
8210
|
const ImagePreviewError = styled.div `
|
|
8044
8211
|
display: flex;
|
|
8045
8212
|
align-items: center;
|
|
@@ -8096,41 +8263,6 @@ const FileImagePreview = ({ link, isExternal, size, borderRadius, }) => {
|
|
|
8096
8263
|
return (jsxs(ImagePreviewContainer, { size: size, children: [hasError && (jsx(ImagePreviewError, { borderRadius: borderRadius, children: jsx(Icon, { kind: "alert" }) })), !hasError && !imageSrc && (jsx(ImagePreviewLoaderContainer, { children: jsx(LinearProgress, {}) })), !hasError && imageSrc && (jsx(GridImagePreview, { borderRadius: borderRadius, size: size, src: imageSrc, alt: "", onError: () => setHasError(true) }))] }));
|
|
8097
8264
|
};
|
|
8098
8265
|
|
|
8099
|
-
const getFileType = (mimeType = "", name = "") => {
|
|
8100
|
-
if (mimeType === PNG_MIME_TYPE)
|
|
8101
|
-
return FileType.PNG;
|
|
8102
|
-
if (mimeType === JPG_MIME_TYPE)
|
|
8103
|
-
return FileType.JPG;
|
|
8104
|
-
if (IMAGE_MIME_TYPES.includes(mimeType))
|
|
8105
|
-
return FileType.IMAGE;
|
|
8106
|
-
if (XLSX_MIME_TYPES.includes(mimeType))
|
|
8107
|
-
return FileType.XLSX;
|
|
8108
|
-
if (DOCX_MIME_TYPES.includes(mimeType))
|
|
8109
|
-
return FileType.DOCX;
|
|
8110
|
-
if (mimeType === CSV_MIME_TYPE)
|
|
8111
|
-
return FileType.CSV;
|
|
8112
|
-
if (mimeType === PDF_MIME_TYPE)
|
|
8113
|
-
return FileType.PDF;
|
|
8114
|
-
if (mimeType === JSON_MIME_TYPE)
|
|
8115
|
-
return FileType.JSON;
|
|
8116
|
-
if (mimeType === KML_MIME_TYPE && (name.endsWith(".kml") || name.endsWith(".kmz"))) {
|
|
8117
|
-
return FileType.KML;
|
|
8118
|
-
}
|
|
8119
|
-
if (PYTHON_MIME_TYPES.includes(mimeType))
|
|
8120
|
-
return FileType.PYTHON;
|
|
8121
|
-
if (mimeType === TXT_MIME_TYPE && name.endsWith(".py"))
|
|
8122
|
-
return FileType.PYTHON;
|
|
8123
|
-
if (mimeType === TXT_MIME_TYPE)
|
|
8124
|
-
return FileType.TXT;
|
|
8125
|
-
if (PPTX_MIME_TYPES.includes(mimeType))
|
|
8126
|
-
return FileType.PPTX;
|
|
8127
|
-
if (mimeType === SHP_MIME_TYPE && name.endsWith(".shp"))
|
|
8128
|
-
return FileType.SHP;
|
|
8129
|
-
if (mimeType === ZIP_MIME_TYPE)
|
|
8130
|
-
return FileType.ZIP;
|
|
8131
|
-
return name.endsWith(".py") ? FileType.PYTHON : FileType.UNKNOWN;
|
|
8132
|
-
};
|
|
8133
|
-
|
|
8134
8266
|
const AttachmentItem = ({ item, viewMode, isEdit, onPreview, onDelete, }) => {
|
|
8135
8267
|
const { mimeType, link, isExternal, name: fileName, date } = item;
|
|
8136
8268
|
const fileType = useMemo(() => getFileType(mimeType, fileName), [mimeType, fileName]);
|
|
@@ -8157,78 +8289,22 @@ const AttachmentsList = ({ items, isEdit, onPreview, onDelete, }) => {
|
|
|
8157
8289
|
};
|
|
8158
8290
|
|
|
8159
8291
|
const ShowMoreButton = ({ hiddenCount, onClick, }) => {
|
|
8160
|
-
const { t } = useGlobalContext();
|
|
8161
|
-
return (jsxs(ShowMoreButton$1, { onClick: onClick, children: [t("showMore", { ns: "dashboard", defaultValue: "Показать ещё" }), " ", hiddenCount, jsx(Icon, { kind: "arrow_down" })] }));
|
|
8162
|
-
};
|
|
8163
|
-
|
|
8164
|
-
const sliceShownOtherItems = (data, options = {}, showMore) => {
|
|
8165
|
-
const { shownItems, otherItems } = options || {};
|
|
8166
|
-
const limit = shownItems && otherItems ? Math.min(shownItems, otherItems) : shownItems || otherItems;
|
|
8167
|
-
return (shownItems || otherItems) && !showMore ? (data?.slice(0, limit) || []) : data;
|
|
8168
|
-
};
|
|
8169
|
-
|
|
8170
|
-
const
|
|
8171
|
-
|
|
8172
|
-
|
|
8173
|
-
|
|
8174
|
-
|
|
8175
|
-
|
|
8176
|
-
return [];
|
|
8177
|
-
try {
|
|
8178
|
-
const parsed = JSON.parse(raw);
|
|
8179
|
-
return Array.isArray(parsed) ? parsed : [];
|
|
8180
|
-
}
|
|
8181
|
-
catch {
|
|
8182
|
-
return [];
|
|
8183
|
-
}
|
|
8184
|
-
};
|
|
8185
|
-
const attachmentsFromFeatures = (features, mapping = {}) => {
|
|
8186
|
-
if (!features?.length)
|
|
8187
|
-
return [];
|
|
8188
|
-
const { attributeLink = "link", attributeName = "name", attributeMime = "mimeType", attributeDate = "date", } = mapping;
|
|
8189
|
-
return features
|
|
8190
|
-
.map(feature => {
|
|
8191
|
-
const link = feature.properties?.[attributeLink];
|
|
8192
|
-
if (!link)
|
|
8193
|
-
return null;
|
|
8194
|
-
return {
|
|
8195
|
-
link,
|
|
8196
|
-
name: feature.properties?.[attributeName] ?? link,
|
|
8197
|
-
mimeType: feature.properties?.[attributeMime] ?? "",
|
|
8198
|
-
date: feature.properties?.[attributeDate],
|
|
8199
|
-
isExternal: /^https?:\/\//.test(link),
|
|
8200
|
-
};
|
|
8201
|
-
})
|
|
8202
|
-
.filter(Boolean);
|
|
8203
|
-
};
|
|
8204
|
-
|
|
8205
|
-
const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
8206
|
-
const { attributes, dataSources } = useWidgetContext(type);
|
|
8207
|
-
const { children, options } = elementConfig || {};
|
|
8208
|
-
const { relatedDataSource, controls } = options || {};
|
|
8209
|
-
const initialViewMode = options?.viewMode === "list" ? "list" : "grid";
|
|
8210
|
-
const [viewMode, setViewMode] = useState(initialViewMode);
|
|
8211
|
-
const [showMore, setShowMore] = useState(false);
|
|
8212
|
-
const valueElement = useMemo(() => children?.find(({ id }) => id === "value"), [children]);
|
|
8213
|
-
const attributeName = useMemo(() => {
|
|
8214
|
-
const candidate = valueElement?.attributeName ?? elementConfig?.attributeName;
|
|
8215
|
-
return Array.isArray(candidate) ? candidate[0] : candidate;
|
|
8216
|
-
}, [valueElement, elementConfig]);
|
|
8217
|
-
const rawValue = useMemo(() => {
|
|
8218
|
-
if (valueOverride !== undefined)
|
|
8219
|
-
return valueOverride;
|
|
8220
|
-
if (!attributeName)
|
|
8221
|
-
return undefined;
|
|
8222
|
-
return attributes?.find(item => item.attributeName === attributeName)?.value;
|
|
8223
|
-
}, [valueOverride, attributeName, attributes]);
|
|
8224
|
-
const items = useMemo(() => {
|
|
8225
|
-
if (relatedDataSource) {
|
|
8226
|
-
const dataSource = dataSources?.find(({ name }) => name === relatedDataSource);
|
|
8227
|
-
const mapping = controls?.[0];
|
|
8228
|
-
return attachmentsFromFeatures(dataSource?.features, mapping);
|
|
8229
|
-
}
|
|
8230
|
-
return parseAttachments(rawValue);
|
|
8231
|
-
}, [relatedDataSource, dataSources, controls, rawValue]);
|
|
8292
|
+
const { t } = useGlobalContext();
|
|
8293
|
+
return (jsxs(ShowMoreButton$1, { onClick: onClick, children: [t("showMore", { ns: "dashboard", defaultValue: "Показать ещё" }), " ", hiddenCount, jsx(Icon, { kind: "arrow_down" })] }));
|
|
8294
|
+
};
|
|
8295
|
+
|
|
8296
|
+
const sliceShownOtherItems = (data, options = {}, showMore) => {
|
|
8297
|
+
const { shownItems, otherItems } = options || {};
|
|
8298
|
+
const limit = shownItems && otherItems ? Math.min(shownItems, otherItems) : shownItems || otherItems;
|
|
8299
|
+
return (shownItems || otherItems) && !showMore ? (data?.slice(0, limit) || []) : data;
|
|
8300
|
+
};
|
|
8301
|
+
|
|
8302
|
+
const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
8303
|
+
const { items, attributeName } = useAttachmentItems({ type, elementConfig, valueOverride });
|
|
8304
|
+
const { options } = elementConfig || {};
|
|
8305
|
+
const initialViewMode = options?.viewMode === "list" ? "list" : "grid";
|
|
8306
|
+
const [viewMode, setViewMode] = useState(initialViewMode);
|
|
8307
|
+
const [showMore, setShowMore] = useState(false);
|
|
8232
8308
|
const visibleItems = useMemo(() => sliceShownOtherItems(items, options, showMore), [items, options, showMore]);
|
|
8233
8309
|
const hiddenCount = items.length - visibleItems.length;
|
|
8234
8310
|
const hasMore = hiddenCount > 0;
|
|
@@ -8246,60 +8322,6 @@ const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
|
8246
8322
|
};
|
|
8247
8323
|
};
|
|
8248
8324
|
|
|
8249
|
-
const usePreviewImages = ({ items, active }) => {
|
|
8250
|
-
const { api } = useGlobalContext();
|
|
8251
|
-
const [blobUrls, setBlobUrls] = useState({});
|
|
8252
|
-
const [failedLinks, setFailedLinks] = useState({});
|
|
8253
|
-
const inFlightRef = useRef(new Set());
|
|
8254
|
-
const blobUrlsRef = useRef(blobUrls);
|
|
8255
|
-
blobUrlsRef.current = blobUrls;
|
|
8256
|
-
useEffect(() => {
|
|
8257
|
-
if (!active || !api?.catalog?.getFile)
|
|
8258
|
-
return;
|
|
8259
|
-
items.forEach(item => {
|
|
8260
|
-
const fileType = getFileType(item.mimeType, item.name);
|
|
8261
|
-
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8262
|
-
if (!isImage || item.isExternal)
|
|
8263
|
-
return;
|
|
8264
|
-
if (blobUrlsRef.current[item.link] || inFlightRef.current.has(item.link))
|
|
8265
|
-
return;
|
|
8266
|
-
inFlightRef.current.add(item.link);
|
|
8267
|
-
api.catalog
|
|
8268
|
-
.getFile(item.link)
|
|
8269
|
-
.then(blob => {
|
|
8270
|
-
const objectUrl = URL.createObjectURL(blob);
|
|
8271
|
-
setBlobUrls(prev => ({ ...prev, [item.link]: objectUrl }));
|
|
8272
|
-
})
|
|
8273
|
-
.catch(() => {
|
|
8274
|
-
setFailedLinks(prev => (prev[item.link] ? prev : { ...prev, [item.link]: true }));
|
|
8275
|
-
})
|
|
8276
|
-
.finally(() => {
|
|
8277
|
-
inFlightRef.current.delete(item.link);
|
|
8278
|
-
});
|
|
8279
|
-
});
|
|
8280
|
-
}, [active, api, items]);
|
|
8281
|
-
useEffect(() => () => {
|
|
8282
|
-
Object.values(blobUrlsRef.current).forEach(URL.revokeObjectURL);
|
|
8283
|
-
}, []);
|
|
8284
|
-
return useMemo(() => items.map(item => {
|
|
8285
|
-
const fileType = getFileType(item.mimeType, item.name);
|
|
8286
|
-
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8287
|
-
const fileName = item.name;
|
|
8288
|
-
if (!isImage)
|
|
8289
|
-
return { src: getFileTypeIcon(fileType), fileName };
|
|
8290
|
-
if (item.isExternal)
|
|
8291
|
-
return { src: item.link, fileName };
|
|
8292
|
-
const hasError = !!failedLinks[item.link];
|
|
8293
|
-
const blobUrl = blobUrls[item.link];
|
|
8294
|
-
return {
|
|
8295
|
-
src: blobUrl ?? "",
|
|
8296
|
-
fileName,
|
|
8297
|
-
hasError,
|
|
8298
|
-
isLoading: !hasError && !blobUrl,
|
|
8299
|
-
};
|
|
8300
|
-
}), [items, blobUrls, failedLinks]);
|
|
8301
|
-
};
|
|
8302
|
-
|
|
8303
8325
|
const EXTENSION_TO_MIME = {
|
|
8304
8326
|
apng: "image/apng",
|
|
8305
8327
|
avif: "image/avif",
|
|
@@ -8356,15 +8378,7 @@ const EditAttachmentContainer = memo(({ type, elementConfig, renderElement }) =>
|
|
|
8356
8378
|
const [previewIndex, setPreviewIndex] = useState(null);
|
|
8357
8379
|
const [uploading, setUploading] = useState(false);
|
|
8358
8380
|
const [isLinkDialogOpen, , setLinkDialogOpen] = useToggle(false);
|
|
8359
|
-
const previewImages =
|
|
8360
|
-
const orderedPreviewImages = useMemo(() => {
|
|
8361
|
-
if (previewIndex === null)
|
|
8362
|
-
return previewImages;
|
|
8363
|
-
return [
|
|
8364
|
-
previewImages[previewIndex],
|
|
8365
|
-
...previewImages.filter((_, idx) => idx !== previewIndex),
|
|
8366
|
-
];
|
|
8367
|
-
}, [previewImages, previewIndex]);
|
|
8381
|
+
const previewImages = useAttachmentPreviewImages({ items, active: previewIndex !== null });
|
|
8368
8382
|
const persist = useCallback((next) => onChange(next), [onChange]);
|
|
8369
8383
|
const handlePreview = useCallback((link) => {
|
|
8370
8384
|
const idx = items.findIndex(item => item.link === link);
|
|
@@ -8422,7 +8436,7 @@ const EditAttachmentContainer = memo(({ type, elementConfig, renderElement }) =>
|
|
|
8422
8436
|
setUploading(false);
|
|
8423
8437
|
}
|
|
8424
8438
|
}, [api, items, parentResourceId, persist]);
|
|
8425
|
-
return (jsxs(AttachmentsContainer, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsx(AttachmentsGrid, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) : (jsx(AttachmentsList, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) }), hasMore && !showMore && (jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), jsx(AddButton, { accept: fileExtensions, onSelectFiles: uploading ? () => undefined : handleUpload, onSelectFromCatalog: handleSelectFromCatalog, onSelectFromLink: handleOpenLinkDialog }), jsx(AttachmentLinkDialog, { isOpen: isLinkDialogOpen, onClose: handleCloseLinkDialog, onSubmit: handleAddByLink }), previewIndex !== null && (jsx(Preview, { images:
|
|
8439
|
+
return (jsxs(AttachmentsContainer, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsx(AttachmentsGrid, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) : (jsx(AttachmentsList, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) }), hasMore && !showMore && (jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), jsx(AddButton, { accept: fileExtensions, onSelectFiles: uploading ? () => undefined : handleUpload, onSelectFromCatalog: handleSelectFromCatalog, onSelectFromLink: handleOpenLinkDialog }), jsx(AttachmentLinkDialog, { isOpen: isLinkDialogOpen, onClose: handleCloseLinkDialog, onSubmit: handleAddByLink }), previewIndex !== null && (jsx(Preview, { images: previewImages, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleClosePreview }, previewIndex))] }));
|
|
8426
8440
|
});
|
|
8427
8441
|
|
|
8428
8442
|
const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
@@ -8432,15 +8446,7 @@ const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
8432
8446
|
const { id, style, options } = elementConfig || {};
|
|
8433
8447
|
const { expandable, expanded } = options || {};
|
|
8434
8448
|
const [previewIndex, setPreviewIndex] = useState(null);
|
|
8435
|
-
const previewImages =
|
|
8436
|
-
const orderedPreviewImages = useMemo(() => {
|
|
8437
|
-
if (previewIndex === null)
|
|
8438
|
-
return previewImages;
|
|
8439
|
-
return [
|
|
8440
|
-
previewImages[previewIndex],
|
|
8441
|
-
...previewImages.filter((_, idx) => idx !== previewIndex),
|
|
8442
|
-
];
|
|
8443
|
-
}, [previewImages, previewIndex]);
|
|
8449
|
+
const previewImages = useAttachmentPreviewImages({ items, active: previewIndex !== null });
|
|
8444
8450
|
const handlePreview = useCallback((link) => {
|
|
8445
8451
|
const idx = items.findIndex(item => item.link === link);
|
|
8446
8452
|
if (idx >= 0)
|
|
@@ -8449,10 +8455,10 @@ const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
8449
8455
|
const handleClosePreview = useCallback(() => setPreviewIndex(null), []);
|
|
8450
8456
|
const handleShowMore = useCallback(() => setShowMore(true), [setShowMore]);
|
|
8451
8457
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
8452
|
-
return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (
|
|
8453
|
-
|
|
8454
|
-
|
|
8455
|
-
|
|
8458
|
+
return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(Container, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: jsxs(Flex, { column: true, children: [jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsx(AttachmentsGrid, { items: visibleItems, isEdit: false, onPreview: handlePreview })) : (jsx(AttachmentsList, { items: visibleItems, isEdit: false, onPreview: handlePreview })) }), hasMore && !showMore && (jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), previewIndex !== null && (jsx(Preview, { images: previewImages, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleClosePreview, errorTitleText: t("attachments.resourceUnavailable", {
|
|
8459
|
+
ns: "common",
|
|
8460
|
+
defaultValue: "Ресурс недоступен",
|
|
8461
|
+
}) }, previewIndex))] }) }))] }));
|
|
8456
8462
|
});
|
|
8457
8463
|
|
|
8458
8464
|
const ContainerDivider = styled(Divider) `
|
|
@@ -8506,6 +8512,24 @@ const getContainerComponent = (innerTemplateName) => innerTemplateName
|
|
|
8506
8512
|
? containerComponents[innerTemplateName] || containerComponents.default
|
|
8507
8513
|
: null;
|
|
8508
8514
|
|
|
8515
|
+
const HeaderTitleContainer = styled(Flex) `
|
|
8516
|
+
flex-direction: column;
|
|
8517
|
+
width: 100%;
|
|
8518
|
+
`;
|
|
8519
|
+
const LayerDescription = styled(Description) `
|
|
8520
|
+
width: calc(100% - 4rem);
|
|
8521
|
+
display: -webkit-box;
|
|
8522
|
+
-webkit-line-clamp: 2;
|
|
8523
|
+
-webkit-box-orient: vertical;
|
|
8524
|
+
overflow: hidden;
|
|
8525
|
+
text-overflow: ellipsis;
|
|
8526
|
+
`;
|
|
8527
|
+
const HeaderFontColorMixin = css `
|
|
8528
|
+
${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
|
|
8529
|
+
color: ${({ $fontColor }) => $fontColor};
|
|
8530
|
+
}
|
|
8531
|
+
`;
|
|
8532
|
+
|
|
8509
8533
|
var img$4 = "data:image/png;base64,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";
|
|
8510
8534
|
|
|
8511
8535
|
const getMaskColor = (isDark) => isDark ? "0, 0, 0" : "255, 255, 255";
|
|
@@ -8673,17 +8697,18 @@ const HeaderFrontView = styled(Flex) `
|
|
|
8673
8697
|
width: 100%;
|
|
8674
8698
|
font: ${({ theme: { fonts } }) => fonts.subtitle};
|
|
8675
8699
|
`;
|
|
8676
|
-
const HeaderContainer = styled(
|
|
8700
|
+
const HeaderContainer = styled(Flex) `
|
|
8677
8701
|
display: flex;
|
|
8678
8702
|
flex-grow: 1;
|
|
8679
8703
|
flex-wrap: nowrap;
|
|
8680
|
-
|
|
8704
|
+
flex-direction: column;
|
|
8705
|
+
width: calc(100% - 3rem);
|
|
8681
8706
|
`;
|
|
8682
8707
|
const FeatureTitleContainer = styled.div `
|
|
8683
8708
|
display: -webkit-box;
|
|
8684
8709
|
max-width: 100%;
|
|
8685
8710
|
width: 100%;
|
|
8686
|
-
margin: 0.5rem
|
|
8711
|
+
margin-top: 0.5rem;
|
|
8687
8712
|
-webkit-line-clamp: 2;
|
|
8688
8713
|
-webkit-box-orient: vertical;
|
|
8689
8714
|
overflow: hidden;
|
|
@@ -8698,21 +8723,10 @@ const FeatureTitleContainer = styled.div `
|
|
|
8698
8723
|
}
|
|
8699
8724
|
}
|
|
8700
8725
|
`;
|
|
8701
|
-
const LayerDescription = styled(Description) `
|
|
8702
|
-
width: calc(100% - 4rem);
|
|
8703
|
-
display: -webkit-box;
|
|
8704
|
-
-webkit-line-clamp: 2;
|
|
8705
|
-
-webkit-box-orient: vertical;
|
|
8706
|
-
overflow: hidden;
|
|
8707
|
-
text-overflow: ellipsis;
|
|
8708
|
-
`;
|
|
8709
|
-
const HeaderTitleContainer = styled(Flex) `
|
|
8710
|
-
flex-direction: column;
|
|
8711
|
-
width: 100%;
|
|
8712
|
-
`;
|
|
8713
8726
|
const RowHeaderMixin = css `
|
|
8714
8727
|
&&& {
|
|
8715
8728
|
min-height: auto;
|
|
8729
|
+
padding: 1rem 1.5rem 1rem 1rem;
|
|
8716
8730
|
|
|
8717
8731
|
${FeatureTitleContainer}, ${LayerDescription} {
|
|
8718
8732
|
text-align: left;
|
|
@@ -8732,16 +8746,20 @@ const Header = styled(Flex) `
|
|
|
8732
8746
|
position: relative;
|
|
8733
8747
|
top: 0;
|
|
8734
8748
|
flex-shrink: 0;
|
|
8735
|
-
overflow: hidden;
|
|
8736
8749
|
width: 100%;
|
|
8737
|
-
padding:
|
|
8750
|
+
padding: 1rem 1.5rem;
|
|
8751
|
+
overflow: hidden;
|
|
8738
8752
|
|
|
8739
8753
|
${({ $isRow }) => $isRow && RowHeaderMixin};
|
|
8740
8754
|
`;
|
|
8741
8755
|
const DefaultHeaderWrapper = styled.div `
|
|
8742
|
-
${
|
|
8743
|
-
|
|
8744
|
-
}
|
|
8756
|
+
width: ${({ withPadding }) => (withPadding ? "100%" : "calc(100% + 1rem)")};
|
|
8757
|
+
height: ${({ height }) => (height ? `${height}px` : "auto")};
|
|
8758
|
+
margin: ${({ withPadding }) => (withPadding ? "-0.5rem -0.5rem 0 -0.5rem" : "-1rem -1rem 0 -1rem")};
|
|
8759
|
+
background: url(${img$4}) 50% -2rem no-repeat;
|
|
8760
|
+
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
8761
|
+
|
|
8762
|
+
${({ fontColor }) => !!fontColor && HeaderFontColorMixin};
|
|
8745
8763
|
`;
|
|
8746
8764
|
|
|
8747
8765
|
const HeaderTitle = ({ noFeature }) => {
|
|
@@ -8765,7 +8783,7 @@ const HeaderTitle = ({ noFeature }) => {
|
|
|
8765
8783
|
stringFormat: layerDefinitionAttribute.stringFormat,
|
|
8766
8784
|
})) ||
|
|
8767
8785
|
feature?.id);
|
|
8768
|
-
}, [attributes,
|
|
8786
|
+
}, [configuration, attributes, t, feature?.id]);
|
|
8769
8787
|
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 })] }));
|
|
8770
8788
|
};
|
|
8771
8789
|
|
|
@@ -8797,7 +8815,7 @@ var img$1 = "data:image/svg+xml,%3csvg width='32' height='32' viewBox='0 0 32 32
|
|
|
8797
8815
|
|
|
8798
8816
|
var img = "data:image/svg+xml,%3csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 24 24' style='enable-background:new 0 0 24 24%3b' xml:space='preserve'%3e %3cstyle type='text/css'%3e .st0%7bfill:%23AEC46F%3b%7d %3c/style%3e %3cg%3e %3cpath class='st0' d='M19%2c4H5C4.4%2c4%2c4%2c4.4%2c4%2c5v14c0%2c0.6%2c0.4%2c1%2c1%2c1h14c0.6%2c0%2c1-0.4%2c1-1V5C20%2c4.4%2c19.6%2c4%2c19%2c4z M6%2c7.5h2.8l-0.7%2c2H6 V7.5z M6%2c13h5v5h-0.4c-0.3-2.4-2.2-4.3-4.6-4.6V13z M18%2c11h-4.3L18%2c6.7V11z M13%2c10.3V6h4.3L13%2c10.3z M17.9%2c13c-0.5%2c1-1.6%2c1.7-3%2c1.7 H13V13H17.9z M13%2c15.7h1.7c0.1%2c0.9%2c0.5%2c1.7%2c1%2c2.3H13V15.7z M15.7%2c15.6c0.9-0.2%2c1.7-0.6%2c2.3-1.2V18h-0.7 C16.5%2c17.6%2c15.9%2c16.7%2c15.7%2c15.6z M11%2c6v5H6v-0.5h2.5c0.2%2c0%2c0.4-0.1%2c0.5-0.3l1-3c0-0.2%2c0-0.4-0.1-0.5C9.8%2c6.6%2c9.7%2c6.5%2c9.5%2c6.5H6V6 H11z M6%2c14.4c1.8%2c0.3%2c3.3%2c1.8%2c3.6%2c3.6H6V14.4z'/%3e %3c/g%3e%3c/svg%3e";
|
|
8799
8817
|
|
|
8800
|
-
const LayerIcon = ({ layerInfo, error }) => {
|
|
8818
|
+
const LayerIcon = ({ layerInfo, error, innerRef }) => {
|
|
8801
8819
|
const geometryType = layerInfo?.configuration?.geometryType;
|
|
8802
8820
|
const renderSymbol = useMemo(() => {
|
|
8803
8821
|
if (layerInfo?.configuration?.layerType === LayerServiceType.RemoteTileLayerService) {
|
|
@@ -8819,91 +8837,34 @@ const LayerIcon = ({ layerInfo, error }) => {
|
|
|
8819
8837
|
default:
|
|
8820
8838
|
return jsx("img", { src: img$3, alt: "" });
|
|
8821
8839
|
}
|
|
8822
|
-
}, [error, geometryType]);
|
|
8823
|
-
return jsx(LayerIconContainer, { children: renderSymbol });
|
|
8840
|
+
}, [error, geometryType, layerInfo?.configuration?.layerType]);
|
|
8841
|
+
return jsx(LayerIconContainer, { ref: innerRef, children: renderSymbol });
|
|
8824
8842
|
};
|
|
8825
8843
|
|
|
8826
|
-
const
|
|
8827
|
-
|
|
8828
|
-
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
const HeaderFontColorMixin$1 = css `
|
|
8832
|
-
${HeaderTitleContainer}, ${LayerDescription} {
|
|
8833
|
-
color: ${({ $fontColor }) => $fontColor};
|
|
8834
|
-
}
|
|
8835
|
-
`;
|
|
8836
|
-
const HeaderWrapperMixin$1 = css `
|
|
8837
|
-
${Header} {
|
|
8838
|
-
min-height: 5.25rem;
|
|
8839
|
-
}
|
|
8840
|
-
|
|
8841
|
-
${HeaderContainer} {
|
|
8842
|
-
max-width: 100%;
|
|
8843
|
-
width: 100%;
|
|
8844
|
-
}
|
|
8845
|
-
|
|
8846
|
-
${FeatureControls} {
|
|
8847
|
-
max-width: calc(100% - 2rem);
|
|
8848
|
-
width: calc(100% - 2rem);
|
|
8849
|
-
margin-top: -0.5rem;
|
|
8850
|
-
padding-top: 1rem;
|
|
8851
|
-
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
8852
|
-
}
|
|
8853
|
-
|
|
8854
|
-
${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin$1};
|
|
8855
|
-
`;
|
|
8856
|
-
const GradientHeaderWrapper = styled.div `
|
|
8857
|
-
${Header} {
|
|
8858
|
-
background: ${({ $bgColor }) => $bgColor || "radial-gradient(129.21% 133.22% at 51.94% 0%, #e8fffe 9.48%, #5fcaff 100%)"};
|
|
8859
|
-
}
|
|
8860
|
-
|
|
8861
|
-
${HeaderContainer} {
|
|
8862
|
-
align-items: center;
|
|
8863
|
-
}
|
|
8864
|
-
|
|
8865
|
-
${HeaderTitleContainer} {
|
|
8866
|
-
margin-left: 0;
|
|
8867
|
-
text-align: center;
|
|
8868
|
-
}
|
|
8869
|
-
|
|
8870
|
-
${FeatureTitleContainer} {
|
|
8871
|
-
text-align: center;
|
|
8872
|
-
}
|
|
8873
|
-
|
|
8874
|
-
${LayerDescription} {
|
|
8875
|
-
text-align: center;
|
|
8876
|
-
}
|
|
8877
|
-
|
|
8878
|
-
${HeaderWrapperMixin$1};
|
|
8844
|
+
const LayerIconClickable = styled.div `
|
|
8845
|
+
display: flex;
|
|
8846
|
+
align-items: center;
|
|
8847
|
+
cursor: pointer;
|
|
8879
8848
|
`;
|
|
8880
8849
|
|
|
8881
|
-
const
|
|
8882
|
-
const {
|
|
8850
|
+
const HeaderLayerIcon = () => {
|
|
8851
|
+
const { t } = useGlobalContext();
|
|
8852
|
+
const { layerInfo, feature } = useWidgetContext(WidgetType.FeatureCard);
|
|
8853
|
+
const zoomToFeatures = useZoomToFeatures();
|
|
8854
|
+
const getMaxZoomTo = useMaxZoomTo();
|
|
8855
|
+
const [optionsMaxZoomTo, layerMaxZoomTo] = useMemo(() => getMaxZoomTo(layerInfo?.name), [layerInfo?.name, getMaxZoomTo]);
|
|
8856
|
+
const handleIconClick = useCallback(() => zoomToFeatures([feature], { maxZoom: layerMaxZoomTo ?? optionsMaxZoomTo }), [zoomToFeatures, feature, layerMaxZoomTo, optionsMaxZoomTo]);
|
|
8857
|
+
return (jsx(LayerIconClickable, { onClick: handleIconClick, children: jsx(Tooltip$1, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsx(LayerIcon, { innerRef: ref, layerInfo: layerInfo })) }) }));
|
|
8858
|
+
};
|
|
8859
|
+
|
|
8860
|
+
const FeatureCardDefaultHeader = ({ noFeature }) => {
|
|
8883
8861
|
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
8884
8862
|
const { header } = config || {};
|
|
8885
8863
|
const { options } = header || {};
|
|
8886
|
-
const {
|
|
8887
|
-
|
|
8888
|
-
return (jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, children: jsx(ThemeProvider, { theme: defaultTheme, children: jsx(Header, { "$isRow": isRow, children: jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { children: [jsx(LayerIcon, { layerInfo: layerInfo }), jsx(FeatureCardTitle, { title: renderElement({
|
|
8889
|
-
id: "title",
|
|
8890
|
-
wrap: false,
|
|
8891
|
-
}), description: renderElement({
|
|
8892
|
-
id: "description",
|
|
8893
|
-
wrap: false,
|
|
8894
|
-
}) })] }), jsx(FeatureCardButtons, {})] }) }) }) }));
|
|
8864
|
+
const { themeName, withPadding, column, height } = options || {};
|
|
8865
|
+
return (jsx(DefaultHeaderWrapper, { withPadding: withPadding, height: height, children: jsx(ThemeProvider, { theme: getThemeByName(themeName), children: jsx(Header, { "$isRow": !column, children: jsxs(HeaderFrontView, { isDefault: !column, children: [jsxs(HeaderContainer, { children: [jsx(HeaderLayerIcon, {}), jsx(HeaderTitle, { noFeature: noFeature })] }), jsx(FeatureCardButtons, {})] }) }) }) }));
|
|
8895
8866
|
};
|
|
8896
8867
|
|
|
8897
|
-
const LayerIconClickable = styled.div `
|
|
8898
|
-
display: flex;
|
|
8899
|
-
align-items: center;
|
|
8900
|
-
cursor: pointer;
|
|
8901
|
-
`;
|
|
8902
|
-
const HeaderFontColorMixin = css `
|
|
8903
|
-
${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
|
|
8904
|
-
color: ${({ $fontColor }) => $fontColor};
|
|
8905
|
-
}
|
|
8906
|
-
`;
|
|
8907
8868
|
const HeaderWrapperMixin = css `
|
|
8908
8869
|
${Header} {
|
|
8909
8870
|
min-height: 5.25rem;
|
|
@@ -8928,13 +8889,18 @@ const HeaderIcon = styled(Flex) `
|
|
|
8928
8889
|
position: absolute;
|
|
8929
8890
|
top: 0;
|
|
8930
8891
|
right: 0;
|
|
8931
|
-
justify-content: flex-end;
|
|
8932
8892
|
align-items: center;
|
|
8933
|
-
|
|
8893
|
+
justify-content: center;
|
|
8894
|
+
width: 7.625rem;
|
|
8934
8895
|
height: 100%;
|
|
8935
8896
|
|
|
8936
|
-
span[kind]
|
|
8937
|
-
|
|
8897
|
+
span[kind] {
|
|
8898
|
+
width: 4rem;
|
|
8899
|
+
|
|
8900
|
+
:after {
|
|
8901
|
+
font-size: 4rem;
|
|
8902
|
+
color: rgba(255, 255, 255, 0.36);
|
|
8903
|
+
}
|
|
8938
8904
|
}
|
|
8939
8905
|
|
|
8940
8906
|
span[kind]:after,
|
|
@@ -8960,34 +8926,61 @@ const BigIconHeaderMixin = css `
|
|
|
8960
8926
|
}
|
|
8961
8927
|
}
|
|
8962
8928
|
`;
|
|
8963
|
-
const
|
|
8929
|
+
const WithPaddingHeaderMixin = css `
|
|
8930
|
+
${Header} {
|
|
8931
|
+
width: 100%;
|
|
8932
|
+
margin: -0.5rem -0.5rem 0.5rem -0.5rem;
|
|
8933
|
+
}
|
|
8934
|
+
`;
|
|
8935
|
+
const BottomBlurHeaderMixin = css `
|
|
8936
|
+
${Header} {
|
|
8937
|
+
margin-bottom: 0;
|
|
8938
|
+
|
|
8939
|
+
&::after {
|
|
8940
|
+
content: "";
|
|
8941
|
+
position: absolute;
|
|
8942
|
+
left: 0;
|
|
8943
|
+
right: 0;
|
|
8944
|
+
bottom: 0;
|
|
8945
|
+
height: 2rem;
|
|
8946
|
+
z-index: 11;
|
|
8947
|
+
pointer-events: none;
|
|
8948
|
+
background: ${({ theme: { palette } }) => palette.background};
|
|
8949
|
+
mask-image: linear-gradient(to top, #000 0%, transparent 100%);
|
|
8950
|
+
-webkit-mask-image: linear-gradient(to top, #000 0%, transparent 100%);
|
|
8951
|
+
}
|
|
8952
|
+
}
|
|
8953
|
+
|
|
8954
|
+
${HeaderFrontView} {
|
|
8955
|
+
z-index: 12;
|
|
8956
|
+
}
|
|
8957
|
+
`;
|
|
8958
|
+
const GradientHeaderWrapper = styled.div `
|
|
8964
8959
|
${Header} {
|
|
8965
|
-
width: calc(100% +
|
|
8966
|
-
|
|
8967
|
-
|
|
8968
|
-
border-
|
|
8969
|
-
border-top-right-radius: 0.5rem;
|
|
8960
|
+
width: calc(100% + 1rem);
|
|
8961
|
+
height: ${({ $height }) => $height ? `${$height}px` : "auto"};
|
|
8962
|
+
margin: -1rem -1rem 1rem -1rem;
|
|
8963
|
+
border-radius: 0.5rem;
|
|
8970
8964
|
background: ${({ $bgColor }) => $bgColor || "linear-gradient(96.55deg, #FFFCD3 0%, #B4DC47 100%)"};
|
|
8965
|
+
overflow: hidden;
|
|
8971
8966
|
}
|
|
8972
8967
|
|
|
8973
8968
|
${HeaderWrapperMixin};
|
|
8974
8969
|
|
|
8975
8970
|
${({ $bigIcon }) => $bigIcon && BigIconHeaderMixin};
|
|
8971
|
+
|
|
8972
|
+
${({ $withPadding }) => $withPadding && WithPaddingHeaderMixin};
|
|
8973
|
+
|
|
8974
|
+
${({ $bottomBlur }) => $bottomBlur && BottomBlurHeaderMixin};
|
|
8976
8975
|
`;
|
|
8977
8976
|
|
|
8978
|
-
const
|
|
8979
|
-
const { t } = useGlobalContext();
|
|
8980
|
-
const { layerInfo, feature } = useWidgetContext(WidgetType.FeatureCard);
|
|
8977
|
+
const FeatureCardGradientHeader = () => {
|
|
8981
8978
|
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
8982
|
-
const zoomToFeatures = useZoomToFeatures();
|
|
8983
|
-
const getMaxZoomTo = useMaxZoomTo();
|
|
8984
|
-
const [optionsMaxZoomTo, layerMaxZoomTo] = useMemo(() => getMaxZoomTo(layerInfo?.name), [layerInfo?.name, getMaxZoomTo]);
|
|
8985
8979
|
const { header } = config || {};
|
|
8986
8980
|
const { options } = header || {};
|
|
8987
|
-
const { fontColor, bgColor, bigIcon } = options || {};
|
|
8981
|
+
const { fontColor, bgColor, height, bigIcon, withPadding, bottomBlur, themeName, column } = options || {};
|
|
8988
8982
|
const renderElement = useHeaderRender(header);
|
|
8989
|
-
|
|
8990
|
-
return (jsx(IconHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$bigIcon": bigIcon, children: jsx(ThemeProvider, { theme: defaultTheme, children: jsxs(Header, { "$isRow": isRow, children: [jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { children: [jsx(Tooltip$1, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsx(LayerIconClickable, { ref: ref, onClick: handleIconClick, children: jsx(LayerIcon, { layerInfo: layerInfo }) })) }), jsx(FeatureCardTitle, { title: renderElement({
|
|
8983
|
+
return (jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$height": height, "$bigIcon": bigIcon, "$withPadding": withPadding, "$bottomBlur": bottomBlur, children: jsx(ThemeProvider, { theme: getThemeByName(themeName), children: jsxs(Header, { "$isRow": !column, children: [jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { column: column, children: [jsx(HeaderLayerIcon, {}), jsx(FeatureCardTitle, { title: renderElement({
|
|
8991
8984
|
id: "title",
|
|
8992
8985
|
wrap: false,
|
|
8993
8986
|
}), description: renderElement({
|
|
@@ -9068,11 +9061,19 @@ const SmallPreviewControl = styled(IconButton) `
|
|
|
9068
9061
|
height: 2.5rem;
|
|
9069
9062
|
margin-top: -1.25rem;
|
|
9070
9063
|
background-color: rgba(61, 61, 61, 0.8);
|
|
9071
|
-
border-radius: ${({ theme: { borderRadius } }) => borderRadius.
|
|
9064
|
+
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
9072
9065
|
|
|
9073
|
-
|
|
9074
|
-
color:
|
|
9075
|
-
|
|
9066
|
+
:hover {
|
|
9067
|
+
background-color: rgba(61, 61, 61, 1);
|
|
9068
|
+
}
|
|
9069
|
+
|
|
9070
|
+
span {
|
|
9071
|
+
min-width: 1rem;
|
|
9072
|
+
|
|
9073
|
+
:after {
|
|
9074
|
+
color: ${({ $isDisabled }) => ($isDisabled ? "rgba(255, 255, 255, 0.28)" : "rgba(255, 255, 255, 1)")};
|
|
9075
|
+
transition: color ${transition.hover};
|
|
9076
|
+
}
|
|
9076
9077
|
}
|
|
9077
9078
|
`;
|
|
9078
9079
|
const SmallPreviewCounter = styled(Flex) `
|
|
@@ -9143,7 +9144,7 @@ const SmallPreviewContainer$1 = styled.div `
|
|
|
9143
9144
|
|
|
9144
9145
|
${SmallPreviewControl}, ${SmallPreviewCounter} {
|
|
9145
9146
|
opacity: 0;
|
|
9146
|
-
transition: opacity ${transition.hover};
|
|
9147
|
+
transition: opacity ${transition.hover}, background-color ${transition.hover};
|
|
9147
9148
|
}
|
|
9148
9149
|
|
|
9149
9150
|
&:hover {
|
|
@@ -9727,30 +9728,53 @@ const SmallPreviewContainer = styled.div `
|
|
|
9727
9728
|
height: 100%;
|
|
9728
9729
|
`;
|
|
9729
9730
|
|
|
9731
|
+
const useElementSlideshow = ({ type, elementConfig, }) => {
|
|
9732
|
+
const { attributes, dataSources } = useWidgetContext(type);
|
|
9733
|
+
const { options, attributeName } = elementConfig || {};
|
|
9734
|
+
const { relatedDataSource, controls } = options || {};
|
|
9735
|
+
const attribute = useMemo(() => attributes?.find(item => item.attributeName === attributeName), [attributes, attributeName]);
|
|
9736
|
+
const isAttachmentAttribute = useMemo(() => {
|
|
9737
|
+
if (attribute?.subType === StringSubType.Attachments)
|
|
9738
|
+
return true;
|
|
9739
|
+
const mapping = controls?.[0];
|
|
9740
|
+
return !!mapping?.attributeLink;
|
|
9741
|
+
}, [attribute, controls]);
|
|
9742
|
+
const { items } = useAttachmentItems({ type, elementConfig });
|
|
9743
|
+
const imageItems = useMemo(() => items.filter(item => IMAGE_FILE_TYPES.includes(getFileType(item.mimeType, item.name))), [items]);
|
|
9744
|
+
const attachmentImages = useAttachmentPreviewImages({
|
|
9745
|
+
items: imageItems,
|
|
9746
|
+
active: isAttachmentAttribute,
|
|
9747
|
+
});
|
|
9748
|
+
const stringImages = useMemo(() => {
|
|
9749
|
+
if (isAttachmentAttribute)
|
|
9750
|
+
return [];
|
|
9751
|
+
if (relatedDataSource) {
|
|
9752
|
+
const dataSource = dataSources?.find(({ name }) => name === relatedDataSource);
|
|
9753
|
+
const urls = dataSource?.features
|
|
9754
|
+
?.map(feature => feature.properties[attributeName])
|
|
9755
|
+
.filter(Boolean) ?? [];
|
|
9756
|
+
return urls.map(src => ({ src, fileName: src }));
|
|
9757
|
+
}
|
|
9758
|
+
if (!elementConfig)
|
|
9759
|
+
return [];
|
|
9760
|
+
const urls = getSlideshowImages({ element: elementConfig, attribute });
|
|
9761
|
+
return urls.map(src => ({ src, fileName: src }));
|
|
9762
|
+
}, [isAttachmentAttribute, relatedDataSource, dataSources, attributeName, elementConfig, attribute]);
|
|
9763
|
+
const images = isAttachmentAttribute ? attachmentImages : stringImages;
|
|
9764
|
+
return { images };
|
|
9765
|
+
};
|
|
9766
|
+
|
|
9730
9767
|
const ElementSlideshow = ({ elementConfig, type, renderElement }) => {
|
|
9731
|
-
const { expandedContainers
|
|
9768
|
+
const { expandedContainers } = useWidgetContext(type);
|
|
9732
9769
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
9733
|
-
const [
|
|
9734
|
-
const { id, options
|
|
9735
|
-
const { expandable, expanded
|
|
9770
|
+
const [previewIndex, setPreviewIndex] = useState(null);
|
|
9771
|
+
const { id, options } = elementConfig || {};
|
|
9772
|
+
const { expandable, expanded } = options || {};
|
|
9736
9773
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
9737
|
-
const images =
|
|
9738
|
-
|
|
9739
|
-
|
|
9740
|
-
|
|
9741
|
-
: getSlideshowImages({
|
|
9742
|
-
element: elementConfig,
|
|
9743
|
-
attribute: attributes?.find(item => item.attributeName === attributeName),
|
|
9744
|
-
});
|
|
9745
|
-
return (array?.map(image => ({
|
|
9746
|
-
src: image,
|
|
9747
|
-
fileName: image,
|
|
9748
|
-
})) || []);
|
|
9749
|
-
}, [attributeName, attributes, dataSources, elementConfig, relatedDataSource]);
|
|
9750
|
-
return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(SmallPreviewContainer, { children: [jsx(SmallPreview, { images: images, currentIndex: currentIndex, setCurrentIndex: setCurrentIndex, onClick: toggleGallery }), isOpenGallery && (jsx(Preview, { images: images,
|
|
9751
|
-
// currentIndex={currentIndex}
|
|
9752
|
-
// totalCount={images.length}
|
|
9753
|
-
isOpen: isOpenGallery, onClose: toggleGallery }))] }))] }));
|
|
9774
|
+
const { images } = useElementSlideshow({ type, elementConfig });
|
|
9775
|
+
const handleOpenGallery = useCallback(() => setPreviewIndex(currentIndex), [currentIndex]);
|
|
9776
|
+
const handleCloseGallery = useCallback(() => setPreviewIndex(null), []);
|
|
9777
|
+
return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxs(SmallPreviewContainer, { children: [jsx(SmallPreview, { images: images, currentIndex: currentIndex, setCurrentIndex: setCurrentIndex, onClick: handleOpenGallery }), previewIndex !== null && (jsx(Preview, { images: images, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleCloseGallery }, previewIndex))] }))] }));
|
|
9754
9778
|
};
|
|
9755
9779
|
|
|
9756
9780
|
const ElementSvg = memo(({ type, elementConfig, ...rest }) => {
|
|
@@ -9786,14 +9810,11 @@ const ElementTooltip = memo(({ type, elementConfig }) => {
|
|
|
9786
9810
|
});
|
|
9787
9811
|
|
|
9788
9812
|
const SlideshowHeaderWrapper = styled.div `
|
|
9789
|
-
padding: ${({ withPadding }) => (withPadding ? "0.5rem 0.5rem 0" : 0)};
|
|
9790
|
-
|
|
9791
9813
|
${Header} {
|
|
9792
9814
|
align-items: flex-start;
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
margin: -1rem -1rem 0 -1rem;
|
|
9815
|
+
height: ${({ height, big }) => height ? `${height}px` : (big ? "15.5rem" : "auto")};
|
|
9816
|
+
width: ${({ withPadding }) => (withPadding ? "100%" : "calc(100% + 1rem)")};
|
|
9817
|
+
margin: ${({ withPadding }) => (withPadding ? "-0.5rem -0.5rem 0.5rem -0.5rem" : "-1rem -1rem 1rem -1rem")};
|
|
9797
9818
|
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
9798
9819
|
|
|
9799
9820
|
${SmallPreviewCounter} {
|
|
@@ -9826,6 +9847,8 @@ const SlideshowHeaderWrapper = styled.div `
|
|
|
9826
9847
|
}
|
|
9827
9848
|
}
|
|
9828
9849
|
}
|
|
9850
|
+
|
|
9851
|
+
${({ fontColor }) => !!fontColor && HeaderFontColorMixin};
|
|
9829
9852
|
`;
|
|
9830
9853
|
const ImageContainerBg = styled.div `
|
|
9831
9854
|
position: absolute;
|
|
@@ -9857,14 +9880,13 @@ const HeaderSlideshow = styled.div `
|
|
|
9857
9880
|
}
|
|
9858
9881
|
`;
|
|
9859
9882
|
|
|
9860
|
-
const FeatureCardSlideshowHeader = (
|
|
9861
|
-
const { layerInfo } = useWidgetContext(WidgetType.FeatureCard);
|
|
9883
|
+
const FeatureCardSlideshowHeader = () => {
|
|
9862
9884
|
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
9863
9885
|
const { header } = config || {};
|
|
9864
9886
|
const { options } = header || {};
|
|
9865
|
-
const { height, withPadding } = options || {};
|
|
9887
|
+
const { height, fontColor, withPadding, themeName, column } = options || {};
|
|
9866
9888
|
const renderElement = useHeaderRender(header);
|
|
9867
|
-
return (jsx(SlideshowHeaderWrapper, {
|
|
9889
|
+
return (jsx(SlideshowHeaderWrapper, { fontColor: fontColor, withPadding: withPadding, height: height, big: true, children: jsx(ThemeProvider, { theme: getThemeByName(themeName), children: jsxs(Header, { "$isRow": !column, children: [jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { column: column, children: [jsx(HeaderLayerIcon, {}), jsx(FeatureCardTitle, { title: renderElement({
|
|
9868
9890
|
id: "title",
|
|
9869
9891
|
wrap: false,
|
|
9870
9892
|
}), description: renderElement({
|
|
@@ -10200,13 +10222,6 @@ const ElementModal = memo(({ type = WidgetType.Dashboard, elementConfig }) => {
|
|
|
10200
10222
|
return (jsxs(Fragment$1, { children: [jsx(ModalIcon, { kind: icon || "new_window", onClick: handleOpen, children: title }), jsxs(Dialog, { maxWidth: maxWidth, minWidth: minWidth, minHeight: minHeight, isOpen: isOpen, modal: true, onCloseRequest: handleClose, style: { paddingBottom: "2rem" }, children: [jsx(DialogTitle, { children: jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [!!title && jsx("span", { children: title }), jsx(IconButton, { kind: "close", onClick: handleClose })] }) }), jsx(DialogContent, { children: isLoading ? (jsx(DashboardLoading, {})) : (jsx(Container, { isColumn: true, noBorders: true, children: jsx(ContainerChildren, { type: type, items: modalContent, isMain: true, renderElement: renderElement }) })) })] })] }));
|
|
10201
10223
|
});
|
|
10202
10224
|
|
|
10203
|
-
const ElementLayerName = memo(({ type }) => {
|
|
10204
|
-
const { layerInfo } = useWidgetContext(type);
|
|
10205
|
-
if (!layerInfo?.name)
|
|
10206
|
-
return null;
|
|
10207
|
-
return jsx("span", { children: layerInfo.name });
|
|
10208
|
-
});
|
|
10209
|
-
|
|
10210
10225
|
const elementComponents = {
|
|
10211
10226
|
control: ElementControl,
|
|
10212
10227
|
image: ElementImage,
|
|
@@ -10223,7 +10238,6 @@ const elementComponents = {
|
|
|
10223
10238
|
markdown: ElementMarkdown,
|
|
10224
10239
|
uploader: ElementUploader,
|
|
10225
10240
|
modal: ElementModal,
|
|
10226
|
-
layerName: ElementLayerName,
|
|
10227
10241
|
};
|
|
10228
10242
|
|
|
10229
10243
|
const getElementValue = ({ getDefaultContainer, ...props }) => {
|
|
@@ -10257,6 +10271,9 @@ const getElementValue = ({ getDefaultContainer, ...props }) => {
|
|
|
10257
10271
|
null
|
|
10258
10272
|
: null;
|
|
10259
10273
|
}
|
|
10274
|
+
if (type === "layerName") {
|
|
10275
|
+
return layerInfo?.name || "";
|
|
10276
|
+
}
|
|
10260
10277
|
const ElementComponent = type ? elementComponents[type] : null;
|
|
10261
10278
|
return ElementComponent ? (jsx(ElementComponent, { ...props })) : (getDefaultContainer?.());
|
|
10262
10279
|
};
|
|
@@ -10313,8 +10330,6 @@ const getFeatureCardHeader = (templateName) => {
|
|
|
10313
10330
|
return FeatureCardSlideshowHeader;
|
|
10314
10331
|
case HeaderTemplate.Gradient:
|
|
10315
10332
|
return FeatureCardGradientHeader;
|
|
10316
|
-
case HeaderTemplate.Icon:
|
|
10317
|
-
return FeatureCardIconHeader;
|
|
10318
10333
|
case HeaderTemplate.Default:
|
|
10319
10334
|
default:
|
|
10320
10335
|
return FeatureCardDefaultHeader;
|
|
@@ -11284,6 +11299,10 @@ const getTemplateNameFromAttribute = (attribute) => {
|
|
|
11284
11299
|
}
|
|
11285
11300
|
};
|
|
11286
11301
|
|
|
11302
|
+
const getThemeByName = (themeName) => {
|
|
11303
|
+
return themeName === ThemeName.Dark ? darkTheme : defaultTheme;
|
|
11304
|
+
};
|
|
11305
|
+
|
|
11287
11306
|
const getDisplayTemplateNameFromAttribute = (attribute) => {
|
|
11288
11307
|
if (attribute?.subType === StringSubType.Attachments) {
|
|
11289
11308
|
return ContainerTemplate.Attachment;
|
|
@@ -11456,6 +11475,30 @@ const useContainerAttributes = ({ elementConfig, type, renderElement }) => {
|
|
|
11456
11475
|
return { getRenderContainerItem, attributesToRender };
|
|
11457
11476
|
};
|
|
11458
11477
|
|
|
11478
|
+
const useEditGroupAttributes = ({ elementConfig, type }) => {
|
|
11479
|
+
const { options } = elementConfig || {};
|
|
11480
|
+
const { controls, useProjectHiddenAttributes } = options || {};
|
|
11481
|
+
const { attributes, layerInfo } = useWidgetContext(type);
|
|
11482
|
+
const [hiddenAttributes] = useLayerHiddenAttributes(layerInfo?.name ?? "");
|
|
11483
|
+
const filteredAttributes = useMemo(() => {
|
|
11484
|
+
const { idAttribute } = layerInfo?.configuration?.attributesConfiguration || {};
|
|
11485
|
+
const withoutIdAttribute = idAttribute
|
|
11486
|
+
? attributes.filter(({ attributeName }) => attributeName !== idAttribute)
|
|
11487
|
+
: attributes;
|
|
11488
|
+
if (!useProjectHiddenAttributes)
|
|
11489
|
+
return withoutIdAttribute;
|
|
11490
|
+
return withoutIdAttribute.filter(({ attributeName }) => !hiddenAttributes.includes(attributeName));
|
|
11491
|
+
}, [attributes, layerInfo?.configuration, hiddenAttributes, useProjectHiddenAttributes]);
|
|
11492
|
+
const filteredControls = useMemo(() => {
|
|
11493
|
+
if (!controls)
|
|
11494
|
+
return controls;
|
|
11495
|
+
if (!useProjectHiddenAttributes)
|
|
11496
|
+
return controls;
|
|
11497
|
+
return controls.filter(({ targetAttributeName }) => targetAttributeName ? !hiddenAttributes.includes(targetAttributeName) : true);
|
|
11498
|
+
}, [controls, hiddenAttributes, useProjectHiddenAttributes]);
|
|
11499
|
+
return { filteredAttributes, filteredControls };
|
|
11500
|
+
};
|
|
11501
|
+
|
|
11459
11502
|
const useFetchWithAuth = (url, transform, cleanup) => {
|
|
11460
11503
|
const [data, setData] = useState(null);
|
|
11461
11504
|
const loadingRef = useRef(false);
|
|
@@ -12758,13 +12801,15 @@ const FeatureCardTitle = ({ title, description }) => {
|
|
|
12758
12801
|
const titleAttribute = configuration?.attributesConfiguration?.titleAttribute;
|
|
12759
12802
|
const resultDescription = description || configuration?.alias || configuration?.name || "";
|
|
12760
12803
|
const resultTitle = useMemo(() => {
|
|
12761
|
-
const
|
|
12804
|
+
const foundAttribute = titleAttribute && attributes?.length
|
|
12762
12805
|
? attributes.find(item => item.attributeName === titleAttribute)
|
|
12763
12806
|
: null;
|
|
12807
|
+
const isAttachmentTitle = foundAttribute?.subType === StringSubType.Attachments;
|
|
12808
|
+
const layerDefinitionAttribute = isAttachmentTitle ? null : foundAttribute;
|
|
12764
12809
|
const layerDefinitionTitle = titleAttribute && layerDefinitionAttribute?.value
|
|
12765
12810
|
? layerDefinitionAttribute.value
|
|
12766
12811
|
: null;
|
|
12767
|
-
const sourceTitleAttribute =
|
|
12812
|
+
const sourceTitleAttribute = isAttachmentTitle ? null : foundAttribute;
|
|
12768
12813
|
const sourceTitle = titleAttribute && sourceTitleAttribute?.value ? sourceTitleAttribute.value : null;
|
|
12769
12814
|
return (title ||
|
|
12770
12815
|
(!!sourceTitle &&
|
|
@@ -12778,7 +12823,7 @@ const FeatureCardTitle = ({ title, description }) => {
|
|
|
12778
12823
|
})) ||
|
|
12779
12824
|
feature?.id);
|
|
12780
12825
|
}, [attributes, feature?.id, titleAttribute, title, t]);
|
|
12781
|
-
return (jsxs(HeaderTitleContainer, { children: [jsx(FeatureTitleContainer, { children: jsx(FlexSpan, { children: resultTitle }) }), jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
|
|
12826
|
+
return (jsxs(HeaderTitleContainer, { children: [jsx(FeatureTitleContainer, { children: jsx(FlexSpan, { children: toRenderableValue(resultTitle) }) }), jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
|
|
12782
12827
|
};
|
|
12783
12828
|
|
|
12784
12829
|
const HiddenFilters = styled(Flex) `
|
|
@@ -13378,5 +13423,5 @@ const Map$1 = ({ zIndex, lowerSiblings, upperSiblings, onError, children, ...res
|
|
|
13378
13423
|
}, children: children }), upperSiblings] }));
|
|
13379
13424
|
};
|
|
13380
13425
|
|
|
13381
|
-
export { AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardGradientHeader, FeatureCardHeader,
|
|
13426
|
+
export { AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardGradientHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GlobalContext, GlobalProvider, Header, HeaderContainer, HeaderFontColorMixin, HeaderFrontView, HeaderTemplate, HeaderTitleContainer, HiddenTitleItems, IconContainer, ImageContainer, LEFT_PANEL_HEADER_HEIGHT, Layer, LayerDescription, LayerGroup, LayerGroupList, LayerIcon, LayerIconContainer, LayerListContainer, LayerTree, LayersContainer, LayersListWrapper, LinearProgressContainer, LogTerminal, LogoContainer, MAX_CHART_WIDTH, Map$1 as Map, MapContext, MapProvider, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, RoundedBackgroundContainer, SERVER_NOTIFICATION_EVENT, STACK_BAR_TOTAL_HEIGHT, ScalingFactor, ServerNotificationsContext, ServerNotificationsProvider, SlideshowContainer, SmallPreviewContainer$1 as SmallPreviewContainer, SmallPreviewControl, SmallPreviewCounter, SmallPreviewImages, SmallPreviewLeft, SmallPreviewRight, StackBar, SvgImage, TIME_ZONE_FORMAT, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, WidgetType, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyVarsToCondition, checkEqualOrIncludes, checkIsLoading, createConfigLayer, createConfigPage, createNewPageId, createTreeNode, dateOptions, debounce, decimalOpacityToHex, eqlParametersToPayload, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, getActualExtrusionHeight, getAttributeByName, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getLayerInfo, getLayerInfoFromDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, hexToRgba, isEmptyElementValue, isEmptyValue, isHiddenEmptyValue, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isVisibleContainer, metersPerPixel, numberOptions, parseClientStyle, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, rgbToHex, roundTotalSum, sliceShownOtherItems, timeOptions, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, treeNodesToProjectItems, updateDataSource, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useExpandableContainers, useExportPdf, useFetchImageWithAuth, useFetchWithAuth, useGetConfigLayer, useGlobalContext, useHeaderRender, useHideIfEmptyDataSource, useIconsFromLayers, useLayerHiddenAttributes, useLayerParams, useMapContext, useMapDraw, useMapImages, useMaxZoomTo, useProjectDashboardInit, usePythonSandbox, usePythonTask, useRedrawLayer, useRelatedDataSourceAttributes, useRenderElement, useServerNotificationsContext, useShownOtherItems, useToggle, useUpdateDataSource, useVisibleProjectItems, useWidgetConfig, useWidgetContext, useWidgetFilters, useWidgetPage, useWindowResize, useZoomToFeatures, useZoomToPoint };
|
|
13382
13427
|
//# sourceMappingURL=react.esm.js.map
|