@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/index.js
CHANGED
|
@@ -11,8 +11,8 @@ var color$1 = require('@evergis/color');
|
|
|
11
11
|
var dateFns = require('date-fns');
|
|
12
12
|
var lodash = require('lodash');
|
|
13
13
|
var locale = require('date-fns/locale');
|
|
14
|
-
var findAnd = require('find-and');
|
|
15
14
|
var signalr = require('@microsoft/signalr');
|
|
15
|
+
var findAnd = require('find-and');
|
|
16
16
|
var MapboxDraw = require('@mapbox/mapbox-gl-draw');
|
|
17
17
|
var turf = require('@turf/turf');
|
|
18
18
|
var MapGL = require('react-map-gl/maplibre');
|
|
@@ -3406,7 +3406,6 @@ exports.HeaderTemplate = void 0;
|
|
|
3406
3406
|
HeaderTemplate["Default"] = "Default";
|
|
3407
3407
|
HeaderTemplate["Slideshow"] = "Slideshow";
|
|
3408
3408
|
HeaderTemplate["Gradient"] = "Gradient";
|
|
3409
|
-
HeaderTemplate["Icon"] = "Icon";
|
|
3410
3409
|
})(exports.HeaderTemplate || (exports.HeaderTemplate = {}));
|
|
3411
3410
|
exports.WidgetType = void 0;
|
|
3412
3411
|
(function (WidgetType) {
|
|
@@ -3926,161 +3925,654 @@ const metersPerPixel = (zoom, lat) => {
|
|
|
3926
3925
|
return (156543.03 * Math.cos(lat * (Math.PI / 180))) / 2 ** zoom;
|
|
3927
3926
|
};
|
|
3928
3927
|
|
|
3929
|
-
const
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
.filter(Boolean)
|
|
3934
|
-
.map(item => ({ text: String(item), value: String(item) })), [items]);
|
|
3935
|
-
const onChange = React.useCallback((newValue) => setValue(newValue), []);
|
|
3936
|
-
return {
|
|
3937
|
-
value,
|
|
3938
|
-
setValue,
|
|
3939
|
-
onChange,
|
|
3940
|
-
options: staticOptions.length ? staticOptions : options,
|
|
3941
|
-
setOptions,
|
|
3942
|
-
};
|
|
3943
|
-
};
|
|
3944
|
-
|
|
3945
|
-
const eqlParametersToPayload = (parameters) => Object.keys(parameters).reduce((result, paramName) => ({
|
|
3946
|
-
...result,
|
|
3947
|
-
[paramName]: parameters[paramName].default,
|
|
3948
|
-
}), {});
|
|
3949
|
-
|
|
3950
|
-
const addDataSource = (dashboardConfiguration, pageIndex, query, additional) => {
|
|
3951
|
-
const newConfig = JSON.parse(JSON.stringify(dashboardConfiguration));
|
|
3952
|
-
if (!newConfig.children[0].children[pageIndex].dataSources) {
|
|
3953
|
-
newConfig.children[0].children[pageIndex].dataSources = [];
|
|
3954
|
-
}
|
|
3955
|
-
const freeId = newConfig.children[0].children[pageIndex].dataSources.length + 1;
|
|
3956
|
-
const parameters = eqlParametersToPayload(additional.parameters);
|
|
3957
|
-
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
3958
|
-
name: `datasource_${freeId}`,
|
|
3959
|
-
query,
|
|
3960
|
-
parameters,
|
|
3961
|
-
offset: 0,
|
|
3962
|
-
limit: DEFAULT_DATA_SOURCE_LIMIT,
|
|
3963
|
-
});
|
|
3964
|
-
return newConfig.children;
|
|
3965
|
-
};
|
|
3928
|
+
const DashboardContext = React.createContext({});
|
|
3929
|
+
const DashboardProvider = React.memo(({ children, ...props }) => {
|
|
3930
|
+
return jsxRuntime.jsx(DashboardContext.Provider, { value: props, children: children });
|
|
3931
|
+
});
|
|
3966
3932
|
|
|
3967
|
-
const
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
}
|
|
3972
|
-
layerNames.forEach(layerName => {
|
|
3973
|
-
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
3974
|
-
name: layerName.split(".")[1],
|
|
3975
|
-
layerName,
|
|
3976
|
-
query: "",
|
|
3977
|
-
parameters: {},
|
|
3978
|
-
});
|
|
3979
|
-
});
|
|
3980
|
-
return newConfig.children;
|
|
3981
|
-
};
|
|
3933
|
+
const FeatureCardContext = React.createContext({});
|
|
3934
|
+
const FeatureCardProvider = React.memo(({ children, ...props }) => {
|
|
3935
|
+
return jsxRuntime.jsx(FeatureCardContext.Provider, { value: props, children: children });
|
|
3936
|
+
});
|
|
3982
3937
|
|
|
3983
|
-
const
|
|
3938
|
+
const GlobalContext = React.createContext({});
|
|
3939
|
+
const GlobalProvider = React.memo(({ children, ...props }) => {
|
|
3940
|
+
return jsxRuntime.jsx(GlobalContext.Provider, { value: props, children: children });
|
|
3941
|
+
});
|
|
3984
3942
|
|
|
3985
|
-
const
|
|
3943
|
+
const MapContext = React.createContext({});
|
|
3986
3944
|
|
|
3987
|
-
const
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
const
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3945
|
+
const MapProvider = ({ basemapItems, defaultBasemap, children }) => {
|
|
3946
|
+
const map = React.useRef();
|
|
3947
|
+
const draw = React.useRef();
|
|
3948
|
+
const [loaded, setLoaded] = React.useState(false);
|
|
3949
|
+
const [basemapName, setBasemapName] = React.useState(defaultBasemap);
|
|
3950
|
+
return (jsxRuntime.jsx(MapContext.Provider, { value: {
|
|
3951
|
+
map,
|
|
3952
|
+
draw,
|
|
3953
|
+
loaded,
|
|
3954
|
+
setLoaded,
|
|
3955
|
+
basemapItems,
|
|
3956
|
+
basemapName,
|
|
3957
|
+
setBasemapName,
|
|
3958
|
+
defaultBasemap,
|
|
3959
|
+
}, children: children }));
|
|
3995
3960
|
};
|
|
3996
3961
|
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
: selectedFilters?.[filterName]?.value) ?? defaultValue);
|
|
4003
|
-
};
|
|
3962
|
+
exports.BaseMapTheme = void 0;
|
|
3963
|
+
(function (BaseMapTheme) {
|
|
3964
|
+
BaseMapTheme["Light"] = "light";
|
|
3965
|
+
BaseMapTheme["Dark"] = "dark";
|
|
3966
|
+
})(exports.BaseMapTheme || (exports.BaseMapTheme = {}));
|
|
4004
3967
|
|
|
4005
|
-
const
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
if (provider === exports.ProviderPrefix.Card && fieldName && layerInfo.name === layerName && attributes) {
|
|
4014
|
-
const attribute = attributes.find(({ attributeName }) => attributeName === fieldName);
|
|
4015
|
-
const cardValue = attribute?.value ?? null;
|
|
4016
|
-
if (lodash.isNil(cardValue))
|
|
4017
|
-
return result;
|
|
4018
|
-
return { ...result, [key]: cardValue };
|
|
4019
|
-
}
|
|
4020
|
-
if (provider === exports.ProviderPrefix.Left && layerName && fieldName && projectDataSources?.length) {
|
|
4021
|
-
const dataSource = projectDataSources.find(({ layerName: name }) => name === layerName);
|
|
4022
|
-
const leftValue = dataSource?.features?.[0]?.properties?.[fieldName] ?? null;
|
|
4023
|
-
if (lodash.isNil(leftValue))
|
|
4024
|
-
return result;
|
|
4025
|
-
return { ...result, [key]: leftValue };
|
|
4026
|
-
}
|
|
4027
|
-
return result;
|
|
3968
|
+
const ServerNotificationsContext = React.createContext({});
|
|
3969
|
+
|
|
3970
|
+
const useServerNotifications = (url, initialized, apiClient) => {
|
|
3971
|
+
const hubConnection = React.useRef(null);
|
|
3972
|
+
const [connection, setConnection] = React.useState(null);
|
|
3973
|
+
const subscribeNotifications = React.useCallback(() => {
|
|
3974
|
+
if (!connection || connection.state !== "Connected") {
|
|
3975
|
+
return;
|
|
4028
3976
|
}
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
});
|
|
4038
|
-
return { ...result, [key]: interpolated };
|
|
3977
|
+
connection
|
|
3978
|
+
.invoke("SubscribeNotifications", [])
|
|
3979
|
+
.then(() => console.info("Подписка `SubscribeNotifications` оформлена"))
|
|
3980
|
+
.catch(err => console.info("Ошибка подписки `SubscribeNotifications`:", err));
|
|
3981
|
+
}, [connection]);
|
|
3982
|
+
React.useEffect(() => {
|
|
3983
|
+
if (!initialized) {
|
|
3984
|
+
return;
|
|
4039
3985
|
}
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
3986
|
+
hubConnection.current = new signalr.HubConnectionBuilder()
|
|
3987
|
+
.withUrl(`${url}?clientId=${api.generateId()}`, {
|
|
3988
|
+
withCredentials: true,
|
|
3989
|
+
skipNegotiation: true,
|
|
3990
|
+
transport: signalr.HttpTransportType.WebSockets,
|
|
3991
|
+
accessTokenFactory: async () => {
|
|
3992
|
+
let accessToken = window.localStorage.getItem(api.STORAGE_TOKEN_KEY) || "";
|
|
3993
|
+
const { exp } = api.parseJwt(accessToken);
|
|
3994
|
+
const currentTime = new Date().getTime() / 1000;
|
|
3995
|
+
if (currentTime > exp) {
|
|
3996
|
+
const refreshToken = window.localStorage.getItem(api.STORAGE_REFRESH_TOKEN_KEY);
|
|
3997
|
+
if (refreshToken) {
|
|
3998
|
+
const refreshTokenResponse = await apiClient.account.refreshToken({
|
|
3999
|
+
refreshToken,
|
|
4000
|
+
});
|
|
4001
|
+
if (refreshTokenResponse) {
|
|
4002
|
+
accessToken = refreshTokenResponse.token;
|
|
4003
|
+
window.localStorage.setItem(api.STORAGE_TOKEN_KEY, refreshTokenResponse.token);
|
|
4004
|
+
window.localStorage.setItem(api.STORAGE_REFRESH_TOKEN_KEY, refreshTokenResponse.refreshToken);
|
|
4005
|
+
}
|
|
4006
|
+
}
|
|
4007
|
+
else {
|
|
4008
|
+
await apiClient.logout();
|
|
4009
|
+
}
|
|
4010
|
+
}
|
|
4011
|
+
return accessToken;
|
|
4012
|
+
},
|
|
4013
|
+
})
|
|
4014
|
+
.withAutomaticReconnect()
|
|
4015
|
+
.configureLogging(signalr.LogLevel.Information)
|
|
4016
|
+
.build();
|
|
4017
|
+
hubConnection.current
|
|
4018
|
+
.start()
|
|
4019
|
+
.then(() => console.info("Серверные нотификации подключены"))
|
|
4020
|
+
.catch(err => console.info("Ошибка:", err))
|
|
4021
|
+
.finally(() => setConnection(hubConnection.current));
|
|
4022
|
+
}, [initialized]); // eslint-disable-line
|
|
4023
|
+
React.useEffect(() => {
|
|
4024
|
+
if (!connection || connection.state !== "Connected") {
|
|
4025
|
+
return;
|
|
4045
4026
|
}
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4027
|
+
connection.onreconnecting(() => console.info("Переподключение к серверным нотификациям"));
|
|
4028
|
+
connection.onreconnected(subscribeNotifications);
|
|
4029
|
+
subscribeNotifications();
|
|
4030
|
+
}, [connection]);
|
|
4031
|
+
return connection;
|
|
4032
|
+
};
|
|
4033
|
+
|
|
4034
|
+
const ServerNotificationsProvider = ({ url, initialized, apiClient, children }) => {
|
|
4035
|
+
const connection = useServerNotifications(url, initialized, apiClient);
|
|
4036
|
+
const addSubscription = React.useCallback(async (payload) => {
|
|
4037
|
+
if (!connection || connection.state !== "Connected" || !payload) {
|
|
4038
|
+
return;
|
|
4054
4039
|
}
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
};
|
|
4040
|
+
try {
|
|
4041
|
+
const id = await connection.invoke("AddSubscription", payload);
|
|
4042
|
+
console.info("Подписка добавлена, id:", id);
|
|
4043
|
+
return id;
|
|
4060
4044
|
}
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
[key]: selectedFilters?.[filterName]?.min ?? (Array.isArray(defaultValue) ? defaultValue[0] : defaultValue),
|
|
4065
|
-
};
|
|
4045
|
+
catch (err) {
|
|
4046
|
+
console.info("Ошибка добавления подписки:", err);
|
|
4047
|
+
return Promise.resolve(null);
|
|
4066
4048
|
}
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
filterName,
|
|
4072
|
-
filterProp,
|
|
4073
|
-
selectedFilters,
|
|
4074
|
-
attributeAlias,
|
|
4075
|
-
dataSource: getDataSource(relatedDataSource, dataSources),
|
|
4076
|
-
}) ?? defaultValue,
|
|
4077
|
-
};
|
|
4049
|
+
}, [connection]);
|
|
4050
|
+
const updateSubscription = React.useCallback(async (id, payload) => {
|
|
4051
|
+
if (!connection || connection.state !== "Connected" || !id || !payload) {
|
|
4052
|
+
return;
|
|
4078
4053
|
}
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
return result;
|
|
4054
|
+
try {
|
|
4055
|
+
await connection.invoke("UpdateSubscription", id, payload);
|
|
4082
4056
|
}
|
|
4083
|
-
|
|
4057
|
+
catch (err) {
|
|
4058
|
+
console.info(`Ошибка обновления подписки ${id}:`, err);
|
|
4059
|
+
}
|
|
4060
|
+
}, [connection]);
|
|
4061
|
+
const unsubscribeById = React.useCallback(async (id) => {
|
|
4062
|
+
if (!connection || connection.state !== "Connected" || !id) {
|
|
4063
|
+
return;
|
|
4064
|
+
}
|
|
4065
|
+
try {
|
|
4066
|
+
await connection.invoke("Unsubscribe", [id]);
|
|
4067
|
+
}
|
|
4068
|
+
catch (err) {
|
|
4069
|
+
console.info(`Ошибка отписки по ${id}:`, err);
|
|
4070
|
+
}
|
|
4071
|
+
}, [connection]);
|
|
4072
|
+
return (jsxRuntime.jsx(ServerNotificationsContext.Provider, { value: {
|
|
4073
|
+
connection,
|
|
4074
|
+
addSubscription,
|
|
4075
|
+
updateSubscription,
|
|
4076
|
+
unsubscribeById,
|
|
4077
|
+
}, children: children }));
|
|
4078
|
+
};
|
|
4079
|
+
|
|
4080
|
+
const useWidgetContext = (type = exports.WidgetType.Dashboard) => {
|
|
4081
|
+
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, } = React.useContext(DashboardContext) || {};
|
|
4082
|
+
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, } = React.useContext(FeatureCardContext) || {};
|
|
4083
|
+
return {
|
|
4084
|
+
toggleLayersVisibility,
|
|
4085
|
+
visibleLayers,
|
|
4086
|
+
projectInfo,
|
|
4087
|
+
layerInfos,
|
|
4088
|
+
updateProject,
|
|
4089
|
+
dashboardLayers,
|
|
4090
|
+
setDashboardLayer,
|
|
4091
|
+
geometryFilter,
|
|
4092
|
+
layerInfo,
|
|
4093
|
+
attributes,
|
|
4094
|
+
feature,
|
|
4095
|
+
closeFeatureCard,
|
|
4096
|
+
containerIds,
|
|
4097
|
+
controls,
|
|
4098
|
+
changeControls,
|
|
4099
|
+
components: dashboardComponents,
|
|
4100
|
+
selectAttachmentsFromCatalog,
|
|
4101
|
+
config: type === exports.WidgetType.Dashboard ? dashboardConfig : featureConfig,
|
|
4102
|
+
isEditing: type === exports.WidgetType.Dashboard ? projectEditMode : featureEditMode,
|
|
4103
|
+
isLoading: type === exports.WidgetType.Dashboard ? projectLoading : featureLoading,
|
|
4104
|
+
pageIndex: type === exports.WidgetType.Dashboard ? projectPageIndex || 1 : featurePageIndex || 1,
|
|
4105
|
+
filters: type === exports.WidgetType.Dashboard ? projectFilters : featureFilters,
|
|
4106
|
+
changeFilters: type === exports.WidgetType.Dashboard ? projectChangeFilters : featureChangeFilters,
|
|
4107
|
+
dataSources: type === exports.WidgetType.Dashboard ? projectDataSources : featureDataSources,
|
|
4108
|
+
expandContainer: type === exports.WidgetType.Dashboard ? projectExpandContainer : featureExpandContainer,
|
|
4109
|
+
expandedContainers: type === exports.WidgetType.Dashboard ? projectExpandedContainers : featureExpandedContainers,
|
|
4110
|
+
selectedTabId: type === exports.WidgetType.Dashboard ? projectSelectedTabId : featureSelectedTabId,
|
|
4111
|
+
setSelectedTabId: type === exports.WidgetType.Dashboard ? setProjectSelectedTabId : setFeatureSelectedTabId,
|
|
4112
|
+
nextPage: type === exports.WidgetType.Dashboard ? projectNextPage : featureNextPage,
|
|
4113
|
+
prevPage: type === exports.WidgetType.Dashboard ? projectPrevPage : featurePrevPage,
|
|
4114
|
+
changePage: type === exports.WidgetType.Dashboard ? projectChangePage : featureChangePage,
|
|
4115
|
+
};
|
|
4116
|
+
};
|
|
4117
|
+
|
|
4118
|
+
const parseAttachments = (raw) => {
|
|
4119
|
+
if (!raw)
|
|
4120
|
+
return [];
|
|
4121
|
+
if (Array.isArray(raw))
|
|
4122
|
+
return raw;
|
|
4123
|
+
if (typeof raw !== "string")
|
|
4124
|
+
return [];
|
|
4125
|
+
try {
|
|
4126
|
+
const parsed = JSON.parse(raw);
|
|
4127
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
4128
|
+
}
|
|
4129
|
+
catch {
|
|
4130
|
+
return [];
|
|
4131
|
+
}
|
|
4132
|
+
};
|
|
4133
|
+
const attachmentsFromFeatures = (features, mapping = {}) => {
|
|
4134
|
+
if (!features?.length)
|
|
4135
|
+
return [];
|
|
4136
|
+
const { attributeLink = "link", attributeName = "name", attributeMime = "mimeType", attributeDate = "date", } = mapping;
|
|
4137
|
+
return features
|
|
4138
|
+
.map(feature => {
|
|
4139
|
+
const link = feature.properties?.[attributeLink];
|
|
4140
|
+
if (!link)
|
|
4141
|
+
return null;
|
|
4142
|
+
return {
|
|
4143
|
+
link,
|
|
4144
|
+
name: feature.properties?.[attributeName] ?? link,
|
|
4145
|
+
mimeType: feature.properties?.[attributeMime] ?? "",
|
|
4146
|
+
date: feature.properties?.[attributeDate],
|
|
4147
|
+
isExternal: /^https?:\/\//.test(link),
|
|
4148
|
+
};
|
|
4149
|
+
})
|
|
4150
|
+
.filter(Boolean);
|
|
4151
|
+
};
|
|
4152
|
+
|
|
4153
|
+
const useAttachmentItems = ({ type, elementConfig, valueOverride, }) => {
|
|
4154
|
+
const { attributes, dataSources } = useWidgetContext(type);
|
|
4155
|
+
const { children, options } = elementConfig || {};
|
|
4156
|
+
const { relatedDataSource, controls } = options || {};
|
|
4157
|
+
const valueElement = React.useMemo(() => children?.find(({ id }) => id === "value"), [children]);
|
|
4158
|
+
const attributeName = React.useMemo(() => {
|
|
4159
|
+
const candidate = valueElement?.attributeName ?? elementConfig?.attributeName;
|
|
4160
|
+
return Array.isArray(candidate) ? candidate[0] : candidate;
|
|
4161
|
+
}, [valueElement, elementConfig]);
|
|
4162
|
+
const rawValue = React.useMemo(() => {
|
|
4163
|
+
if (valueOverride !== undefined)
|
|
4164
|
+
return valueOverride;
|
|
4165
|
+
if (!attributeName)
|
|
4166
|
+
return undefined;
|
|
4167
|
+
return attributes?.find(item => item.attributeName === attributeName)?.value;
|
|
4168
|
+
}, [valueOverride, attributeName, attributes]);
|
|
4169
|
+
const items = React.useMemo(() => {
|
|
4170
|
+
if (relatedDataSource) {
|
|
4171
|
+
const dataSource = dataSources?.find(({ name }) => name === relatedDataSource);
|
|
4172
|
+
const mapping = controls?.[0];
|
|
4173
|
+
return attachmentsFromFeatures(dataSource?.features, mapping);
|
|
4174
|
+
}
|
|
4175
|
+
return parseAttachments(rawValue);
|
|
4176
|
+
}, [relatedDataSource, dataSources, controls, rawValue]);
|
|
4177
|
+
return {
|
|
4178
|
+
items,
|
|
4179
|
+
attributeName,
|
|
4180
|
+
rawValue,
|
|
4181
|
+
};
|
|
4182
|
+
};
|
|
4183
|
+
|
|
4184
|
+
const useGlobalContext = () => {
|
|
4185
|
+
const { t, language, themeName, api, ewktGeometry } = React.useContext(GlobalContext) || {};
|
|
4186
|
+
const translate = React.useCallback((value, options) => {
|
|
4187
|
+
if (t)
|
|
4188
|
+
return t(value, options);
|
|
4189
|
+
return options?.defaultValue ?? value;
|
|
4190
|
+
}, [t]);
|
|
4191
|
+
return React.useMemo(() => ({
|
|
4192
|
+
t: translate,
|
|
4193
|
+
language,
|
|
4194
|
+
themeName,
|
|
4195
|
+
api,
|
|
4196
|
+
ewktGeometry,
|
|
4197
|
+
}), [language, translate, api, ewktGeometry, themeName]);
|
|
4198
|
+
};
|
|
4199
|
+
|
|
4200
|
+
const GRID_TILE_SIZE = "4.5rem";
|
|
4201
|
+
const LIST_ICON_SIZE = "1.5rem";
|
|
4202
|
+
const JPG_MIME_TYPE = "image/jpeg";
|
|
4203
|
+
const PNG_MIME_TYPE = "image/png";
|
|
4204
|
+
const IMAGE_MIME_TYPES = [
|
|
4205
|
+
"image/apng",
|
|
4206
|
+
"image/avif",
|
|
4207
|
+
"image/gif",
|
|
4208
|
+
"image/jpeg",
|
|
4209
|
+
"image/png",
|
|
4210
|
+
"image/svg+xml",
|
|
4211
|
+
"image/webp",
|
|
4212
|
+
];
|
|
4213
|
+
const XLSX_MIME_TYPES = [
|
|
4214
|
+
"application/vnd.ms-excel",
|
|
4215
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
4216
|
+
];
|
|
4217
|
+
const PDF_MIME_TYPE = "application/pdf";
|
|
4218
|
+
const DOCX_MIME_TYPES = [
|
|
4219
|
+
"application/msword",
|
|
4220
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
4221
|
+
];
|
|
4222
|
+
const CSV_MIME_TYPE = "text/csv";
|
|
4223
|
+
const JSON_MIME_TYPE = "application/json";
|
|
4224
|
+
const TXT_MIME_TYPE = "text/plain";
|
|
4225
|
+
const PPTX_MIME_TYPES = [
|
|
4226
|
+
"application/vnd.ms-powerpoint",
|
|
4227
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
4228
|
+
];
|
|
4229
|
+
const SHP_MIME_TYPE = "application/octet-stream";
|
|
4230
|
+
const KML_MIME_TYPE = "application/octet-stream";
|
|
4231
|
+
const ZIP_MIME_TYPE = "application/zip";
|
|
4232
|
+
const PYTHON_MIME_TYPES = ["application/x-python-code", "text/x-python"];
|
|
4233
|
+
var AddAttachmentSource;
|
|
4234
|
+
(function (AddAttachmentSource) {
|
|
4235
|
+
AddAttachmentSource["Pc"] = "pc";
|
|
4236
|
+
AddAttachmentSource["Catalog"] = "catalog";
|
|
4237
|
+
AddAttachmentSource["Link"] = "link";
|
|
4238
|
+
})(AddAttachmentSource || (AddAttachmentSource = {}));
|
|
4239
|
+
|
|
4240
|
+
var FileType;
|
|
4241
|
+
(function (FileType) {
|
|
4242
|
+
FileType[FileType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
4243
|
+
FileType[FileType["XLSX"] = 1] = "XLSX";
|
|
4244
|
+
FileType[FileType["PDF"] = 2] = "PDF";
|
|
4245
|
+
FileType[FileType["CSV"] = 3] = "CSV";
|
|
4246
|
+
FileType[FileType["DOCX"] = 4] = "DOCX";
|
|
4247
|
+
FileType[FileType["IMAGE"] = 5] = "IMAGE";
|
|
4248
|
+
FileType[FileType["TXT"] = 6] = "TXT";
|
|
4249
|
+
FileType[FileType["JSON"] = 7] = "JSON";
|
|
4250
|
+
FileType[FileType["KML"] = 8] = "KML";
|
|
4251
|
+
FileType[FileType["PPTX"] = 9] = "PPTX";
|
|
4252
|
+
FileType[FileType["SHP"] = 10] = "SHP";
|
|
4253
|
+
FileType[FileType["ZIP"] = 11] = "ZIP";
|
|
4254
|
+
FileType[FileType["JPEG"] = 12] = "JPEG";
|
|
4255
|
+
FileType[FileType["JPG"] = 13] = "JPG";
|
|
4256
|
+
FileType[FileType["PNG"] = 14] = "PNG";
|
|
4257
|
+
FileType[FileType["PYTHON"] = 15] = "PYTHON";
|
|
4258
|
+
})(FileType || (FileType = {}));
|
|
4259
|
+
const IMAGE_FILE_TYPES = [
|
|
4260
|
+
FileType.IMAGE,
|
|
4261
|
+
FileType.JPEG,
|
|
4262
|
+
FileType.JPG,
|
|
4263
|
+
FileType.PNG,
|
|
4264
|
+
];
|
|
4265
|
+
|
|
4266
|
+
const getFileType = (mimeType = "", name = "") => {
|
|
4267
|
+
if (mimeType === PNG_MIME_TYPE)
|
|
4268
|
+
return FileType.PNG;
|
|
4269
|
+
if (mimeType === JPG_MIME_TYPE)
|
|
4270
|
+
return FileType.JPG;
|
|
4271
|
+
if (IMAGE_MIME_TYPES.includes(mimeType))
|
|
4272
|
+
return FileType.IMAGE;
|
|
4273
|
+
if (XLSX_MIME_TYPES.includes(mimeType))
|
|
4274
|
+
return FileType.XLSX;
|
|
4275
|
+
if (DOCX_MIME_TYPES.includes(mimeType))
|
|
4276
|
+
return FileType.DOCX;
|
|
4277
|
+
if (mimeType === CSV_MIME_TYPE)
|
|
4278
|
+
return FileType.CSV;
|
|
4279
|
+
if (mimeType === PDF_MIME_TYPE)
|
|
4280
|
+
return FileType.PDF;
|
|
4281
|
+
if (mimeType === JSON_MIME_TYPE)
|
|
4282
|
+
return FileType.JSON;
|
|
4283
|
+
if (mimeType === KML_MIME_TYPE && (name.endsWith(".kml") || name.endsWith(".kmz"))) {
|
|
4284
|
+
return FileType.KML;
|
|
4285
|
+
}
|
|
4286
|
+
if (PYTHON_MIME_TYPES.includes(mimeType))
|
|
4287
|
+
return FileType.PYTHON;
|
|
4288
|
+
if (mimeType === TXT_MIME_TYPE && name.endsWith(".py"))
|
|
4289
|
+
return FileType.PYTHON;
|
|
4290
|
+
if (mimeType === TXT_MIME_TYPE)
|
|
4291
|
+
return FileType.TXT;
|
|
4292
|
+
if (PPTX_MIME_TYPES.includes(mimeType))
|
|
4293
|
+
return FileType.PPTX;
|
|
4294
|
+
if (mimeType === SHP_MIME_TYPE && name.endsWith(".shp"))
|
|
4295
|
+
return FileType.SHP;
|
|
4296
|
+
if (mimeType === ZIP_MIME_TYPE)
|
|
4297
|
+
return FileType.ZIP;
|
|
4298
|
+
return name.endsWith(".py") ? FileType.PYTHON : FileType.UNKNOWN;
|
|
4299
|
+
};
|
|
4300
|
+
|
|
4301
|
+
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";
|
|
4302
|
+
|
|
4303
|
+
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";
|
|
4304
|
+
|
|
4305
|
+
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";
|
|
4306
|
+
|
|
4307
|
+
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";
|
|
4308
|
+
|
|
4309
|
+
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";
|
|
4310
|
+
|
|
4311
|
+
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";
|
|
4312
|
+
|
|
4313
|
+
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";
|
|
4314
|
+
|
|
4315
|
+
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";
|
|
4316
|
+
|
|
4317
|
+
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";
|
|
4318
|
+
|
|
4319
|
+
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";
|
|
4320
|
+
|
|
4321
|
+
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";
|
|
4322
|
+
|
|
4323
|
+
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";
|
|
4324
|
+
|
|
4325
|
+
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";
|
|
4326
|
+
|
|
4327
|
+
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";
|
|
4328
|
+
|
|
4329
|
+
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";
|
|
4330
|
+
|
|
4331
|
+
const getFileTypeIcon = (fileType) => {
|
|
4332
|
+
switch (fileType) {
|
|
4333
|
+
case FileType.CSV:
|
|
4334
|
+
return img$i;
|
|
4335
|
+
case FileType.XLSX:
|
|
4336
|
+
return img$6;
|
|
4337
|
+
case FileType.DOCX:
|
|
4338
|
+
return img$h;
|
|
4339
|
+
case FileType.PDF:
|
|
4340
|
+
return img$c;
|
|
4341
|
+
case FileType.JSON:
|
|
4342
|
+
return img$e;
|
|
4343
|
+
case FileType.KML:
|
|
4344
|
+
return img$d;
|
|
4345
|
+
case FileType.PPTX:
|
|
4346
|
+
return img$a;
|
|
4347
|
+
case FileType.SHP:
|
|
4348
|
+
return img$8;
|
|
4349
|
+
case FileType.TXT:
|
|
4350
|
+
return img$7;
|
|
4351
|
+
case FileType.ZIP:
|
|
4352
|
+
return img$5;
|
|
4353
|
+
case FileType.IMAGE:
|
|
4354
|
+
case FileType.JPEG:
|
|
4355
|
+
return img$g;
|
|
4356
|
+
case FileType.JPG:
|
|
4357
|
+
return img$f;
|
|
4358
|
+
case FileType.PNG:
|
|
4359
|
+
return img$b;
|
|
4360
|
+
case FileType.PYTHON:
|
|
4361
|
+
return img$9;
|
|
4362
|
+
default:
|
|
4363
|
+
return img$j;
|
|
4364
|
+
}
|
|
4365
|
+
};
|
|
4366
|
+
|
|
4367
|
+
const useAttachmentPreviewImages = ({ items, active, }) => {
|
|
4368
|
+
const { api } = useGlobalContext();
|
|
4369
|
+
const [blobUrls, setBlobUrls] = React.useState({});
|
|
4370
|
+
const [failedLinks, setFailedLinks] = React.useState({});
|
|
4371
|
+
const inFlightRef = React.useRef(new Set());
|
|
4372
|
+
const blobUrlsRef = React.useRef(blobUrls);
|
|
4373
|
+
blobUrlsRef.current = blobUrls;
|
|
4374
|
+
React.useEffect(() => {
|
|
4375
|
+
if (!active || !api?.catalog?.getFile)
|
|
4376
|
+
return;
|
|
4377
|
+
items.forEach(item => {
|
|
4378
|
+
const fileType = getFileType(item.mimeType, item.name);
|
|
4379
|
+
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
4380
|
+
if (!isImage || item.isExternal)
|
|
4381
|
+
return;
|
|
4382
|
+
if (blobUrlsRef.current[item.link] || inFlightRef.current.has(item.link))
|
|
4383
|
+
return;
|
|
4384
|
+
inFlightRef.current.add(item.link);
|
|
4385
|
+
api.catalog
|
|
4386
|
+
.getFile(item.link)
|
|
4387
|
+
.then(blob => {
|
|
4388
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
4389
|
+
setBlobUrls(prev => ({ ...prev, [item.link]: objectUrl }));
|
|
4390
|
+
})
|
|
4391
|
+
.catch(() => {
|
|
4392
|
+
setFailedLinks(prev => (prev[item.link] ? prev : { ...prev, [item.link]: true }));
|
|
4393
|
+
})
|
|
4394
|
+
.finally(() => {
|
|
4395
|
+
inFlightRef.current.delete(item.link);
|
|
4396
|
+
});
|
|
4397
|
+
});
|
|
4398
|
+
}, [active, api, items]);
|
|
4399
|
+
React.useEffect(() => () => {
|
|
4400
|
+
Object.values(blobUrlsRef.current).forEach(URL.revokeObjectURL);
|
|
4401
|
+
}, []);
|
|
4402
|
+
return React.useMemo(() => items.map(item => {
|
|
4403
|
+
const fileType = getFileType(item.mimeType, item.name);
|
|
4404
|
+
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
4405
|
+
const fileName = item.name;
|
|
4406
|
+
if (!isImage)
|
|
4407
|
+
return { src: getFileTypeIcon(fileType), fileName };
|
|
4408
|
+
if (item.isExternal)
|
|
4409
|
+
return { src: item.link, fileName };
|
|
4410
|
+
const hasError = !!failedLinks[item.link];
|
|
4411
|
+
const blobUrl = blobUrls[item.link];
|
|
4412
|
+
return {
|
|
4413
|
+
src: blobUrl ?? "",
|
|
4414
|
+
fileName,
|
|
4415
|
+
hasError,
|
|
4416
|
+
isLoading: !hasError && !blobUrl,
|
|
4417
|
+
};
|
|
4418
|
+
}), [items, blobUrls, failedLinks]);
|
|
4419
|
+
};
|
|
4420
|
+
|
|
4421
|
+
const useAutoCompleteControl = (items) => {
|
|
4422
|
+
const [value, setValue] = React.useState("");
|
|
4423
|
+
const [options, setOptions] = React.useState([]);
|
|
4424
|
+
const staticOptions = React.useMemo(() => (items ?? [])
|
|
4425
|
+
.filter(Boolean)
|
|
4426
|
+
.map(item => ({ text: String(item), value: String(item) })), [items]);
|
|
4427
|
+
const onChange = React.useCallback((newValue) => setValue(newValue), []);
|
|
4428
|
+
return {
|
|
4429
|
+
value,
|
|
4430
|
+
setValue,
|
|
4431
|
+
onChange,
|
|
4432
|
+
options: staticOptions.length ? staticOptions : options,
|
|
4433
|
+
setOptions,
|
|
4434
|
+
};
|
|
4435
|
+
};
|
|
4436
|
+
|
|
4437
|
+
const eqlParametersToPayload = (parameters) => Object.keys(parameters).reduce((result, paramName) => ({
|
|
4438
|
+
...result,
|
|
4439
|
+
[paramName]: parameters[paramName].default,
|
|
4440
|
+
}), {});
|
|
4441
|
+
|
|
4442
|
+
const addDataSource = (dashboardConfiguration, pageIndex, query, additional) => {
|
|
4443
|
+
const newConfig = JSON.parse(JSON.stringify(dashboardConfiguration));
|
|
4444
|
+
if (!newConfig.children[0].children[pageIndex].dataSources) {
|
|
4445
|
+
newConfig.children[0].children[pageIndex].dataSources = [];
|
|
4446
|
+
}
|
|
4447
|
+
const freeId = newConfig.children[0].children[pageIndex].dataSources.length + 1;
|
|
4448
|
+
const parameters = eqlParametersToPayload(additional.parameters);
|
|
4449
|
+
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
4450
|
+
name: `datasource_${freeId}`,
|
|
4451
|
+
query,
|
|
4452
|
+
parameters,
|
|
4453
|
+
offset: 0,
|
|
4454
|
+
limit: DEFAULT_DATA_SOURCE_LIMIT,
|
|
4455
|
+
});
|
|
4456
|
+
return newConfig.children;
|
|
4457
|
+
};
|
|
4458
|
+
|
|
4459
|
+
const addDataSources = (dashboardConfiguration, pageIndex, layerNames) => {
|
|
4460
|
+
const newConfig = JSON.parse(JSON.stringify(dashboardConfiguration));
|
|
4461
|
+
if (!newConfig.children[0].children[pageIndex].dataSources) {
|
|
4462
|
+
newConfig.children[0].children[pageIndex].dataSources = [];
|
|
4463
|
+
}
|
|
4464
|
+
layerNames.forEach(layerName => {
|
|
4465
|
+
newConfig.children[0].children[pageIndex].dataSources.push({
|
|
4466
|
+
name: layerName.split(".")[1],
|
|
4467
|
+
layerName,
|
|
4468
|
+
query: "",
|
|
4469
|
+
parameters: {},
|
|
4470
|
+
});
|
|
4471
|
+
});
|
|
4472
|
+
return newConfig.children;
|
|
4473
|
+
};
|
|
4474
|
+
|
|
4475
|
+
const getConfigFilter = (filterName, configFilters) => configFilters?.find(({ name }) => name === filterName);
|
|
4476
|
+
|
|
4477
|
+
const getDataSource = (dataSourceName, dataSources) => dataSources?.find(({ name }) => name === dataSourceName);
|
|
4478
|
+
|
|
4479
|
+
const getDataSourceFilterValue = ({ filterName, filterProp, attributeAlias, dataSource, selectedFilters, }) => {
|
|
4480
|
+
if (lodash.isNil(selectedFilters[filterName]))
|
|
4481
|
+
return null;
|
|
4482
|
+
const feature = dataSource?.features?.find(({ properties }) => properties[attributeAlias] ===
|
|
4483
|
+
(Array.isArray(selectedFilters[filterName].value)
|
|
4484
|
+
? selectedFilters[filterName].value[0]
|
|
4485
|
+
: selectedFilters[filterName].value));
|
|
4486
|
+
return feature?.properties?.[filterProp];
|
|
4487
|
+
};
|
|
4488
|
+
|
|
4489
|
+
const getSelectedFilterValue = (filterName, selectedFilters, defaultValue) => {
|
|
4490
|
+
return ((!lodash.isNil(selectedFilters?.[filterName]?.value) &&
|
|
4491
|
+
Array.isArray(defaultValue) &&
|
|
4492
|
+
!Array.isArray(selectedFilters[filterName].value)
|
|
4493
|
+
? [selectedFilters[filterName].value]
|
|
4494
|
+
: selectedFilters?.[filterName]?.value) ?? defaultValue);
|
|
4495
|
+
};
|
|
4496
|
+
|
|
4497
|
+
const applyQueryFilters = ({ parameters: configParameters, filters: configFilters, selectedFilters, geometry, attributes, layerInfo, dataSources, projectDataSources, }) => {
|
|
4498
|
+
if (!configParameters) {
|
|
4499
|
+
return {};
|
|
4500
|
+
}
|
|
4501
|
+
return Object.keys(configParameters).reduce((result, key) => {
|
|
4502
|
+
if (typeof configParameters[key] === "string" && configParameters[key].startsWith(PROVIDER_PREFIX)) {
|
|
4503
|
+
const raw = configParameters[key].slice(PROVIDER_PREFIX.length);
|
|
4504
|
+
const [provider, layerName, fieldName] = raw.split(":");
|
|
4505
|
+
if (provider === exports.ProviderPrefix.Card && fieldName && layerInfo.name === layerName && attributes) {
|
|
4506
|
+
const attribute = attributes.find(({ attributeName }) => attributeName === fieldName);
|
|
4507
|
+
const cardValue = attribute?.value ?? null;
|
|
4508
|
+
if (lodash.isNil(cardValue))
|
|
4509
|
+
return result;
|
|
4510
|
+
return { ...result, [key]: cardValue };
|
|
4511
|
+
}
|
|
4512
|
+
if (provider === exports.ProviderPrefix.Left && layerName && fieldName && projectDataSources?.length) {
|
|
4513
|
+
const dataSource = projectDataSources.find(({ layerName: name }) => name === layerName);
|
|
4514
|
+
const leftValue = dataSource?.features?.[0]?.properties?.[fieldName] ?? null;
|
|
4515
|
+
if (lodash.isNil(leftValue))
|
|
4516
|
+
return result;
|
|
4517
|
+
return { ...result, [key]: leftValue };
|
|
4518
|
+
}
|
|
4519
|
+
return result;
|
|
4520
|
+
}
|
|
4521
|
+
if (typeof configParameters[key] === "string" && configParameters[key].includes("{") && attributes?.length) {
|
|
4522
|
+
const exactAttr = attributes.find(({ attributeName }) => configParameters[key] === `{${attributeName}}`);
|
|
4523
|
+
if (exactAttr) {
|
|
4524
|
+
return { ...result, [key]: exactAttr.value ?? "" };
|
|
4525
|
+
}
|
|
4526
|
+
let interpolated = configParameters[key];
|
|
4527
|
+
attributes.forEach(({ attributeName, value: attrValue }) => {
|
|
4528
|
+
interpolated = interpolated.replace(new RegExp(`\\{${attributeName}\\}`, "g"), attrValue?.toString() ?? "");
|
|
4529
|
+
});
|
|
4530
|
+
return { ...result, [key]: interpolated };
|
|
4531
|
+
}
|
|
4532
|
+
if (typeof configParameters[key] !== "string" || !configParameters[key].startsWith("%")) {
|
|
4533
|
+
return {
|
|
4534
|
+
...result,
|
|
4535
|
+
[key]: configParameters[key],
|
|
4536
|
+
};
|
|
4537
|
+
}
|
|
4538
|
+
const filterFullName = configParameters[key].replace("%", "");
|
|
4539
|
+
const [filterName, filterProp] = filterFullName.includes(".") ? filterFullName.split(".") : [filterFullName, null];
|
|
4540
|
+
const { defaultValue, relatedDataSource, attributeAlias } = getConfigFilter(filterName, configFilters) || {};
|
|
4541
|
+
if (filterName === "geometry" && geometry && !geometry.includes("()") && geometry.endsWith(")")) {
|
|
4542
|
+
return {
|
|
4543
|
+
...result,
|
|
4544
|
+
[key]: geometry,
|
|
4545
|
+
};
|
|
4546
|
+
}
|
|
4547
|
+
if (configParameters[key].endsWith(".max")) {
|
|
4548
|
+
return {
|
|
4549
|
+
...result,
|
|
4550
|
+
[key]: selectedFilters?.[filterName]?.max ?? (Array.isArray(defaultValue) ? defaultValue[1] : defaultValue),
|
|
4551
|
+
};
|
|
4552
|
+
}
|
|
4553
|
+
if (configParameters[key].endsWith(".min")) {
|
|
4554
|
+
return {
|
|
4555
|
+
...result,
|
|
4556
|
+
[key]: selectedFilters?.[filterName]?.min ?? (Array.isArray(defaultValue) ? defaultValue[0] : defaultValue),
|
|
4557
|
+
};
|
|
4558
|
+
}
|
|
4559
|
+
if (configParameters[key].includes(".")) {
|
|
4560
|
+
return {
|
|
4561
|
+
...result,
|
|
4562
|
+
[key]: getDataSourceFilterValue({
|
|
4563
|
+
filterName,
|
|
4564
|
+
filterProp,
|
|
4565
|
+
selectedFilters,
|
|
4566
|
+
attributeAlias,
|
|
4567
|
+
dataSource: getDataSource(relatedDataSource, dataSources),
|
|
4568
|
+
}) ?? defaultValue,
|
|
4569
|
+
};
|
|
4570
|
+
}
|
|
4571
|
+
const value = getSelectedFilterValue(filterName, selectedFilters, defaultValue);
|
|
4572
|
+
if (lodash.isNil(value)) {
|
|
4573
|
+
return result;
|
|
4574
|
+
}
|
|
4575
|
+
return {
|
|
4084
4576
|
...result,
|
|
4085
4577
|
[key]: value,
|
|
4086
4578
|
};
|
|
@@ -4533,158 +5025,6 @@ const customStyles = [
|
|
|
4533
5025
|
},
|
|
4534
5026
|
];
|
|
4535
5027
|
|
|
4536
|
-
const DashboardContext = React.createContext({});
|
|
4537
|
-
const DashboardProvider = React.memo(({ children, ...props }) => {
|
|
4538
|
-
return jsxRuntime.jsx(DashboardContext.Provider, { value: props, children: children });
|
|
4539
|
-
});
|
|
4540
|
-
|
|
4541
|
-
const FeatureCardContext = React.createContext({});
|
|
4542
|
-
const FeatureCardProvider = React.memo(({ children, ...props }) => {
|
|
4543
|
-
return jsxRuntime.jsx(FeatureCardContext.Provider, { value: props, children: children });
|
|
4544
|
-
});
|
|
4545
|
-
|
|
4546
|
-
const GlobalContext = React.createContext({});
|
|
4547
|
-
const GlobalProvider = React.memo(({ children, ...props }) => {
|
|
4548
|
-
return jsxRuntime.jsx(GlobalContext.Provider, { value: props, children: children });
|
|
4549
|
-
});
|
|
4550
|
-
|
|
4551
|
-
const MapContext = React.createContext({});
|
|
4552
|
-
|
|
4553
|
-
const MapProvider = ({ basemapItems, defaultBasemap, children }) => {
|
|
4554
|
-
const map = React.useRef();
|
|
4555
|
-
const draw = React.useRef();
|
|
4556
|
-
const [loaded, setLoaded] = React.useState(false);
|
|
4557
|
-
const [basemapName, setBasemapName] = React.useState(defaultBasemap);
|
|
4558
|
-
return (jsxRuntime.jsx(MapContext.Provider, { value: {
|
|
4559
|
-
map,
|
|
4560
|
-
draw,
|
|
4561
|
-
loaded,
|
|
4562
|
-
setLoaded,
|
|
4563
|
-
basemapItems,
|
|
4564
|
-
basemapName,
|
|
4565
|
-
setBasemapName,
|
|
4566
|
-
defaultBasemap,
|
|
4567
|
-
}, children: children }));
|
|
4568
|
-
};
|
|
4569
|
-
|
|
4570
|
-
exports.BaseMapTheme = void 0;
|
|
4571
|
-
(function (BaseMapTheme) {
|
|
4572
|
-
BaseMapTheme["Light"] = "light";
|
|
4573
|
-
BaseMapTheme["Dark"] = "dark";
|
|
4574
|
-
})(exports.BaseMapTheme || (exports.BaseMapTheme = {}));
|
|
4575
|
-
|
|
4576
|
-
const ServerNotificationsContext = React.createContext({});
|
|
4577
|
-
|
|
4578
|
-
const useServerNotifications = (url, initialized, apiClient) => {
|
|
4579
|
-
const hubConnection = React.useRef(null);
|
|
4580
|
-
const [connection, setConnection] = React.useState(null);
|
|
4581
|
-
const subscribeNotifications = React.useCallback(() => {
|
|
4582
|
-
if (!connection || connection.state !== "Connected") {
|
|
4583
|
-
return;
|
|
4584
|
-
}
|
|
4585
|
-
connection
|
|
4586
|
-
.invoke("SubscribeNotifications", [])
|
|
4587
|
-
.then(() => console.info("Подписка `SubscribeNotifications` оформлена"))
|
|
4588
|
-
.catch(err => console.info("Ошибка подписки `SubscribeNotifications`:", err));
|
|
4589
|
-
}, [connection]);
|
|
4590
|
-
React.useEffect(() => {
|
|
4591
|
-
if (!initialized) {
|
|
4592
|
-
return;
|
|
4593
|
-
}
|
|
4594
|
-
hubConnection.current = new signalr.HubConnectionBuilder()
|
|
4595
|
-
.withUrl(`${url}?clientId=${api.generateId()}`, {
|
|
4596
|
-
withCredentials: true,
|
|
4597
|
-
skipNegotiation: true,
|
|
4598
|
-
transport: signalr.HttpTransportType.WebSockets,
|
|
4599
|
-
accessTokenFactory: async () => {
|
|
4600
|
-
let accessToken = window.localStorage.getItem(api.STORAGE_TOKEN_KEY) || "";
|
|
4601
|
-
const { exp } = api.parseJwt(accessToken);
|
|
4602
|
-
const currentTime = new Date().getTime() / 1000;
|
|
4603
|
-
if (currentTime > exp) {
|
|
4604
|
-
const refreshToken = window.localStorage.getItem(api.STORAGE_REFRESH_TOKEN_KEY);
|
|
4605
|
-
if (refreshToken) {
|
|
4606
|
-
const refreshTokenResponse = await apiClient.account.refreshToken({
|
|
4607
|
-
refreshToken,
|
|
4608
|
-
});
|
|
4609
|
-
if (refreshTokenResponse) {
|
|
4610
|
-
accessToken = refreshTokenResponse.token;
|
|
4611
|
-
window.localStorage.setItem(api.STORAGE_TOKEN_KEY, refreshTokenResponse.token);
|
|
4612
|
-
window.localStorage.setItem(api.STORAGE_REFRESH_TOKEN_KEY, refreshTokenResponse.refreshToken);
|
|
4613
|
-
}
|
|
4614
|
-
}
|
|
4615
|
-
else {
|
|
4616
|
-
await apiClient.logout();
|
|
4617
|
-
}
|
|
4618
|
-
}
|
|
4619
|
-
return accessToken;
|
|
4620
|
-
},
|
|
4621
|
-
})
|
|
4622
|
-
.withAutomaticReconnect()
|
|
4623
|
-
.configureLogging(signalr.LogLevel.Information)
|
|
4624
|
-
.build();
|
|
4625
|
-
hubConnection.current
|
|
4626
|
-
.start()
|
|
4627
|
-
.then(() => console.info("Серверные нотификации подключены"))
|
|
4628
|
-
.catch(err => console.info("Ошибка:", err))
|
|
4629
|
-
.finally(() => setConnection(hubConnection.current));
|
|
4630
|
-
}, [initialized]); // eslint-disable-line
|
|
4631
|
-
React.useEffect(() => {
|
|
4632
|
-
if (!connection || connection.state !== "Connected") {
|
|
4633
|
-
return;
|
|
4634
|
-
}
|
|
4635
|
-
connection.onreconnecting(() => console.info("Переподключение к серверным нотификациям"));
|
|
4636
|
-
connection.onreconnected(subscribeNotifications);
|
|
4637
|
-
subscribeNotifications();
|
|
4638
|
-
}, [connection]);
|
|
4639
|
-
return connection;
|
|
4640
|
-
};
|
|
4641
|
-
|
|
4642
|
-
const ServerNotificationsProvider = ({ url, initialized, apiClient, children }) => {
|
|
4643
|
-
const connection = useServerNotifications(url, initialized, apiClient);
|
|
4644
|
-
const addSubscription = React.useCallback(async (payload) => {
|
|
4645
|
-
if (!connection || connection.state !== "Connected" || !payload) {
|
|
4646
|
-
return;
|
|
4647
|
-
}
|
|
4648
|
-
try {
|
|
4649
|
-
const id = await connection.invoke("AddSubscription", payload);
|
|
4650
|
-
console.info("Подписка добавлена, id:", id);
|
|
4651
|
-
return id;
|
|
4652
|
-
}
|
|
4653
|
-
catch (err) {
|
|
4654
|
-
console.info("Ошибка добавления подписки:", err);
|
|
4655
|
-
return Promise.resolve(null);
|
|
4656
|
-
}
|
|
4657
|
-
}, [connection]);
|
|
4658
|
-
const updateSubscription = React.useCallback(async (id, payload) => {
|
|
4659
|
-
if (!connection || connection.state !== "Connected" || !id || !payload) {
|
|
4660
|
-
return;
|
|
4661
|
-
}
|
|
4662
|
-
try {
|
|
4663
|
-
await connection.invoke("UpdateSubscription", id, payload);
|
|
4664
|
-
}
|
|
4665
|
-
catch (err) {
|
|
4666
|
-
console.info(`Ошибка обновления подписки ${id}:`, err);
|
|
4667
|
-
}
|
|
4668
|
-
}, [connection]);
|
|
4669
|
-
const unsubscribeById = React.useCallback(async (id) => {
|
|
4670
|
-
if (!connection || connection.state !== "Connected" || !id) {
|
|
4671
|
-
return;
|
|
4672
|
-
}
|
|
4673
|
-
try {
|
|
4674
|
-
await connection.invoke("Unsubscribe", [id]);
|
|
4675
|
-
}
|
|
4676
|
-
catch (err) {
|
|
4677
|
-
console.info(`Ошибка отписки по ${id}:`, err);
|
|
4678
|
-
}
|
|
4679
|
-
}, [connection]);
|
|
4680
|
-
return (jsxRuntime.jsx(ServerNotificationsContext.Provider, { value: {
|
|
4681
|
-
connection,
|
|
4682
|
-
addSubscription,
|
|
4683
|
-
updateSubscription,
|
|
4684
|
-
unsubscribeById,
|
|
4685
|
-
}, children: children }));
|
|
4686
|
-
};
|
|
4687
|
-
|
|
4688
5028
|
const useMapContext = () => {
|
|
4689
5029
|
return React.useContext(MapContext);
|
|
4690
5030
|
};
|
|
@@ -5837,6 +6177,24 @@ const getAttributeByName = (name, attributes) => {
|
|
|
5837
6177
|
: null;
|
|
5838
6178
|
};
|
|
5839
6179
|
|
|
6180
|
+
/**
|
|
6181
|
+
* Returns a value safe to render as a React child.
|
|
6182
|
+
*
|
|
6183
|
+
* If the input is a non-primitive object (array or plain object) that is NOT
|
|
6184
|
+
* a React element, returns an empty string to prevent the runtime error
|
|
6185
|
+
* "Objects are not valid as a React child" that React throws on such values.
|
|
6186
|
+
*
|
|
6187
|
+
* Use in places where a rendered slot receives a raw attribute value that may
|
|
6188
|
+
* be a structured payload (e.g. an attribute with `subType: Attachments`
|
|
6189
|
+
* exposes its value as `Attachment[]`). React elements and primitives pass
|
|
6190
|
+
* through unchanged, preserving existing rendering behaviour for normal data.
|
|
6191
|
+
*/
|
|
6192
|
+
const toRenderableValue = (value) => {
|
|
6193
|
+
if (value && typeof value === "object" && !React.isValidElement(value))
|
|
6194
|
+
return "";
|
|
6195
|
+
return value;
|
|
6196
|
+
};
|
|
6197
|
+
|
|
5840
6198
|
const formatElementValue = ({ t, value, elementConfig, attributes, wrap, }) => {
|
|
5841
6199
|
const { id, type, defaultValue, options, style, attributeName, templateName, } = elementConfig || {};
|
|
5842
6200
|
const attribute = attributeName
|
|
@@ -5853,9 +6211,10 @@ const formatElementValue = ({ t, value, elementConfig, attributes, wrap, }) => {
|
|
|
5853
6211
|
noUnits,
|
|
5854
6212
|
})
|
|
5855
6213
|
: valueOrDefault;
|
|
6214
|
+
const renderableValue = toRenderableValue(resultValue);
|
|
5856
6215
|
if (!wrap)
|
|
5857
|
-
return
|
|
5858
|
-
return (jsxRuntime.jsxs(React.Fragment, { children: [tagView ? (jsxRuntime.jsx(DashboardChip$1, { "data-id": id, "data-templatename": templateName, style: style, text:
|
|
6216
|
+
return renderableValue;
|
|
6217
|
+
return (jsxRuntime.jsxs(React.Fragment, { children: [tagView ? (jsxRuntime.jsx(DashboardChip$1, { "data-id": id, "data-templatename": templateName, style: style, text: renderableValue, "$bgColor": bgColor, "$fontColor": fontColor, "$fontSize": fontSize, "$radius": radius })) : (jsxRuntime.jsx(ElementValueWrapper, { "data-id": id, "data-templatename": templateName, style: style, noMargin: noMargin, children: renderableValue })), withDivider && jsxRuntime.jsx(uilibGl.Divider, {})] }, id));
|
|
5859
6218
|
};
|
|
5860
6219
|
|
|
5861
6220
|
const getAttributeValue = (element, attributes) => {
|
|
@@ -5870,7 +6229,10 @@ const getAttributeValue = (element, attributes) => {
|
|
|
5870
6229
|
value = concatAttributes.join(separator || ", ");
|
|
5871
6230
|
}
|
|
5872
6231
|
else {
|
|
5873
|
-
|
|
6232
|
+
const rawValue = attribute?.value;
|
|
6233
|
+
value = rawValue && typeof rawValue === "object"
|
|
6234
|
+
? JSON.stringify(rawValue)
|
|
6235
|
+
: (rawValue || "");
|
|
5874
6236
|
}
|
|
5875
6237
|
return typeof value === "string" && maxLength && maxLength < value.length ? (jsxRuntime.jsx(TextTrim, { maxLength: maxLength, expandable: expandable, lineBreak: lineBreak, children: value })) : (value);
|
|
5876
6238
|
};
|
|
@@ -6034,8 +6396,7 @@ const SvgContainer$1 = styled.div `
|
|
|
6034
6396
|
}
|
|
6035
6397
|
}
|
|
6036
6398
|
`;
|
|
6037
|
-
const TwoColumnContainerWrapper = styled(
|
|
6038
|
-
width: 100%;
|
|
6399
|
+
const TwoColumnContainerWrapper = styled(Container) `
|
|
6039
6400
|
flex-direction: row;
|
|
6040
6401
|
flex-wrap: nowrap;
|
|
6041
6402
|
align-items: center;
|
|
@@ -6053,44 +6414,6 @@ const TwoColumnContainerWrapper = styled(uilibGl.Flex) `
|
|
|
6053
6414
|
}
|
|
6054
6415
|
`;
|
|
6055
6416
|
|
|
6056
|
-
const useWidgetContext = (type = exports.WidgetType.Dashboard) => {
|
|
6057
|
-
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, } = React.useContext(DashboardContext) || {};
|
|
6058
|
-
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, } = React.useContext(FeatureCardContext) || {};
|
|
6059
|
-
return {
|
|
6060
|
-
toggleLayersVisibility,
|
|
6061
|
-
visibleLayers,
|
|
6062
|
-
projectInfo,
|
|
6063
|
-
layerInfos,
|
|
6064
|
-
updateProject,
|
|
6065
|
-
dashboardLayers,
|
|
6066
|
-
setDashboardLayer,
|
|
6067
|
-
geometryFilter,
|
|
6068
|
-
layerInfo,
|
|
6069
|
-
attributes,
|
|
6070
|
-
feature,
|
|
6071
|
-
closeFeatureCard,
|
|
6072
|
-
containerIds,
|
|
6073
|
-
controls,
|
|
6074
|
-
changeControls,
|
|
6075
|
-
components: dashboardComponents,
|
|
6076
|
-
selectAttachmentsFromCatalog,
|
|
6077
|
-
config: type === exports.WidgetType.Dashboard ? dashboardConfig : featureConfig,
|
|
6078
|
-
isEditing: type === exports.WidgetType.Dashboard ? projectEditMode : featureEditMode,
|
|
6079
|
-
isLoading: type === exports.WidgetType.Dashboard ? projectLoading : featureLoading,
|
|
6080
|
-
pageIndex: type === exports.WidgetType.Dashboard ? projectPageIndex || 1 : featurePageIndex || 1,
|
|
6081
|
-
filters: type === exports.WidgetType.Dashboard ? projectFilters : featureFilters,
|
|
6082
|
-
changeFilters: type === exports.WidgetType.Dashboard ? projectChangeFilters : featureChangeFilters,
|
|
6083
|
-
dataSources: type === exports.WidgetType.Dashboard ? projectDataSources : featureDataSources,
|
|
6084
|
-
expandContainer: type === exports.WidgetType.Dashboard ? projectExpandContainer : featureExpandContainer,
|
|
6085
|
-
expandedContainers: type === exports.WidgetType.Dashboard ? projectExpandedContainers : featureExpandedContainers,
|
|
6086
|
-
selectedTabId: type === exports.WidgetType.Dashboard ? projectSelectedTabId : featureSelectedTabId,
|
|
6087
|
-
setSelectedTabId: type === exports.WidgetType.Dashboard ? setProjectSelectedTabId : setFeatureSelectedTabId,
|
|
6088
|
-
nextPage: type === exports.WidgetType.Dashboard ? projectNextPage : featureNextPage,
|
|
6089
|
-
prevPage: type === exports.WidgetType.Dashboard ? projectPrevPage : featurePrevPage,
|
|
6090
|
-
changePage: type === exports.WidgetType.Dashboard ? projectChangePage : featureChangePage,
|
|
6091
|
-
};
|
|
6092
|
-
};
|
|
6093
|
-
|
|
6094
6417
|
const useRenderContainer = ({ elementConfig, type, renderElement, renderBody, }) => {
|
|
6095
6418
|
const { attributes } = useWidgetContext(type);
|
|
6096
6419
|
const { getRenderContainerItem, attributesToRender } = useContainerAttributes({
|
|
@@ -6109,7 +6432,6 @@ const useRenderContainer = ({ elementConfig, type, renderElement, renderBody, })
|
|
|
6109
6432
|
if (OverrideContainer) {
|
|
6110
6433
|
const itemConfig = {
|
|
6111
6434
|
...elementConfig,
|
|
6112
|
-
style: { ...BASE_CONTAINER_STYLE, ...elementConfig.style },
|
|
6113
6435
|
children: (elementConfig?.children ?? []).map(child => ({
|
|
6114
6436
|
...child,
|
|
6115
6437
|
attributeName: attribute,
|
|
@@ -6138,7 +6460,7 @@ const OneColumnContainer = React.memo(({ type, elementConfig, renderElement }) =
|
|
|
6138
6460
|
});
|
|
6139
6461
|
|
|
6140
6462
|
const TwoColumnContainer = React.memo(({ elementConfig, type, renderElement }) => {
|
|
6141
|
-
const renderBody = React.useCallback(({ id, value, style, hasIcon, hasUnits, render }
|
|
6463
|
+
const renderBody = React.useCallback(({ id, value, style, hasIcon, hasUnits, render }) => (jsxRuntime.jsxs(TwoColumnContainerWrapper, { id: id, style: style, children: [jsxRuntime.jsxs(ContainerAlias, { children: [hasIcon && (jsxRuntime.jsx(ContainerAliasIcon, { children: render({ id: "icon" }) })), render({ id: "alias" }), render({ id: "tooltip" }), render({ id: "modal" })] }), jsxRuntime.jsxs(ContainerValue, { big: true, children: [value, hasUnits && (jsxRuntime.jsx(ContainerUnits, { children: render({ id: "units" }) }))] })] })), []);
|
|
6142
6464
|
const { renderContainer, attributesToRender } = useRenderContainer({
|
|
6143
6465
|
type,
|
|
6144
6466
|
elementConfig,
|
|
@@ -7407,17 +7729,10 @@ const getControlTemplateName = (type) => {
|
|
|
7407
7729
|
|
|
7408
7730
|
const EditGroupContainer = React.memo(({ type, elementConfig, renderElement }) => {
|
|
7409
7731
|
const { config, attributes, layerInfo, expandedContainers } = useWidgetContext(type);
|
|
7732
|
+
const { filteredAttributes, filteredControls } = useEditGroupAttributes({ elementConfig, type });
|
|
7410
7733
|
const getRenderContainerItem = useRenderContainerItem(type, renderElement);
|
|
7411
|
-
const { options } = elementConfig || {};
|
|
7412
|
-
const { controls } = options || {};
|
|
7413
|
-
const filteredAttributes = React.useMemo(() => {
|
|
7414
|
-
const { idAttribute } = layerInfo?.configuration?.attributesConfiguration || {};
|
|
7415
|
-
if (!idAttribute)
|
|
7416
|
-
return attributes;
|
|
7417
|
-
return attributes.filter(({ attributeName }) => attributeName !== idAttribute);
|
|
7418
|
-
}, [attributes, layerInfo?.configuration]);
|
|
7419
7734
|
const renderContainer = React.useCallback((attributeName) => {
|
|
7420
|
-
const control =
|
|
7735
|
+
const control = filteredControls?.find(({ targetAttributeName }) => targetAttributeName === attributeName);
|
|
7421
7736
|
const itemAttribute = attributes.find(item => item.attributeName === attributeName);
|
|
7422
7737
|
const templateName = control?.type
|
|
7423
7738
|
? getControlTemplateName(control.type)
|
|
@@ -7438,7 +7753,7 @@ const EditGroupContainer = React.memo(({ type, elementConfig, renderElement }) =
|
|
|
7438
7753
|
}
|
|
7439
7754
|
return (jsxRuntime.jsx(ContainerTemplateValue, { id: attributeName, type: type, config: config, elementConfig: itemConfig, layerInfo: layerInfo, attributes: attributes, isVisible: isVisibleContainer(id, expandable, expanded, expandedContainers), renderElement: render }, attributeName));
|
|
7440
7755
|
}, [
|
|
7441
|
-
|
|
7756
|
+
filteredControls,
|
|
7442
7757
|
attributes,
|
|
7443
7758
|
elementConfig,
|
|
7444
7759
|
getRenderContainerItem,
|
|
@@ -7447,10 +7762,10 @@ const EditGroupContainer = React.memo(({ type, elementConfig, renderElement }) =
|
|
|
7447
7762
|
layerInfo,
|
|
7448
7763
|
expandedContainers,
|
|
7449
7764
|
]);
|
|
7450
|
-
if (!
|
|
7765
|
+
if (!filteredControls?.length) {
|
|
7451
7766
|
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: filteredAttributes.map(({ attributeName }) => renderContainer(attributeName)) }));
|
|
7452
7767
|
}
|
|
7453
|
-
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children:
|
|
7768
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: filteredControls.map(({ targetAttributeName }) => renderContainer(targetAttributeName)) }));
|
|
7454
7769
|
});
|
|
7455
7770
|
|
|
7456
7771
|
const useEditControl = (type, elementConfig) => {
|
|
@@ -7567,138 +7882,6 @@ const EditDateContainer = ({ type, elementConfig, renderElement, }) => {
|
|
|
7567
7882
|
return (jsxRuntime.jsxs(Container, { id: id, isColumn: true, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxRuntime.jsxs(ContainerAlias, { hasBottomMargin: true, children: [renderElement({ id: "alias" }), renderElement({ id: "tooltip" })] }), jsxRuntime.jsx(ContainerValue, { column: true, children: jsxRuntime.jsx(uilibGl.DatePicker, { value: dateValue, locale: uilibGl.getLocale(language), withTime: withTime ?? false, withHeader: true, width: "100%", onChange: handleChange }) })] }));
|
|
7568
7883
|
};
|
|
7569
7884
|
|
|
7570
|
-
const GRID_TILE_SIZE = "4.5rem";
|
|
7571
|
-
const LIST_ICON_SIZE = "1.5rem";
|
|
7572
|
-
const JPG_MIME_TYPE = "image/jpeg";
|
|
7573
|
-
const PNG_MIME_TYPE = "image/png";
|
|
7574
|
-
const IMAGE_MIME_TYPES = [
|
|
7575
|
-
"image/apng",
|
|
7576
|
-
"image/avif",
|
|
7577
|
-
"image/gif",
|
|
7578
|
-
"image/jpeg",
|
|
7579
|
-
"image/png",
|
|
7580
|
-
"image/svg+xml",
|
|
7581
|
-
"image/webp",
|
|
7582
|
-
];
|
|
7583
|
-
const XLSX_MIME_TYPES = [
|
|
7584
|
-
"application/vnd.ms-excel",
|
|
7585
|
-
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
7586
|
-
];
|
|
7587
|
-
const PDF_MIME_TYPE = "application/pdf";
|
|
7588
|
-
const DOCX_MIME_TYPES = [
|
|
7589
|
-
"application/msword",
|
|
7590
|
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
7591
|
-
];
|
|
7592
|
-
const CSV_MIME_TYPE = "text/csv";
|
|
7593
|
-
const JSON_MIME_TYPE = "application/json";
|
|
7594
|
-
const TXT_MIME_TYPE = "text/plain";
|
|
7595
|
-
const PPTX_MIME_TYPES = [
|
|
7596
|
-
"application/vnd.ms-powerpoint",
|
|
7597
|
-
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
7598
|
-
];
|
|
7599
|
-
const SHP_MIME_TYPE = "application/octet-stream";
|
|
7600
|
-
const KML_MIME_TYPE = "application/octet-stream";
|
|
7601
|
-
const ZIP_MIME_TYPE = "application/zip";
|
|
7602
|
-
const PYTHON_MIME_TYPES = ["application/x-python-code", "text/x-python"];
|
|
7603
|
-
var AddAttachmentSource;
|
|
7604
|
-
(function (AddAttachmentSource) {
|
|
7605
|
-
AddAttachmentSource["Pc"] = "pc";
|
|
7606
|
-
AddAttachmentSource["Catalog"] = "catalog";
|
|
7607
|
-
AddAttachmentSource["Link"] = "link";
|
|
7608
|
-
})(AddAttachmentSource || (AddAttachmentSource = {}));
|
|
7609
|
-
|
|
7610
|
-
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";
|
|
7611
|
-
|
|
7612
|
-
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";
|
|
7613
|
-
|
|
7614
|
-
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";
|
|
7615
|
-
|
|
7616
|
-
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";
|
|
7617
|
-
|
|
7618
|
-
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";
|
|
7619
|
-
|
|
7620
|
-
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";
|
|
7621
|
-
|
|
7622
|
-
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";
|
|
7623
|
-
|
|
7624
|
-
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";
|
|
7625
|
-
|
|
7626
|
-
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";
|
|
7627
|
-
|
|
7628
|
-
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";
|
|
7629
|
-
|
|
7630
|
-
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";
|
|
7631
|
-
|
|
7632
|
-
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";
|
|
7633
|
-
|
|
7634
|
-
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";
|
|
7635
|
-
|
|
7636
|
-
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";
|
|
7637
|
-
|
|
7638
|
-
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";
|
|
7639
|
-
|
|
7640
|
-
var FileType;
|
|
7641
|
-
(function (FileType) {
|
|
7642
|
-
FileType[FileType["UNKNOWN"] = 0] = "UNKNOWN";
|
|
7643
|
-
FileType[FileType["XLSX"] = 1] = "XLSX";
|
|
7644
|
-
FileType[FileType["PDF"] = 2] = "PDF";
|
|
7645
|
-
FileType[FileType["CSV"] = 3] = "CSV";
|
|
7646
|
-
FileType[FileType["DOCX"] = 4] = "DOCX";
|
|
7647
|
-
FileType[FileType["IMAGE"] = 5] = "IMAGE";
|
|
7648
|
-
FileType[FileType["TXT"] = 6] = "TXT";
|
|
7649
|
-
FileType[FileType["JSON"] = 7] = "JSON";
|
|
7650
|
-
FileType[FileType["KML"] = 8] = "KML";
|
|
7651
|
-
FileType[FileType["PPTX"] = 9] = "PPTX";
|
|
7652
|
-
FileType[FileType["SHP"] = 10] = "SHP";
|
|
7653
|
-
FileType[FileType["ZIP"] = 11] = "ZIP";
|
|
7654
|
-
FileType[FileType["JPEG"] = 12] = "JPEG";
|
|
7655
|
-
FileType[FileType["JPG"] = 13] = "JPG";
|
|
7656
|
-
FileType[FileType["PNG"] = 14] = "PNG";
|
|
7657
|
-
FileType[FileType["PYTHON"] = 15] = "PYTHON";
|
|
7658
|
-
})(FileType || (FileType = {}));
|
|
7659
|
-
const IMAGE_FILE_TYPES = [
|
|
7660
|
-
FileType.IMAGE,
|
|
7661
|
-
FileType.JPEG,
|
|
7662
|
-
FileType.JPG,
|
|
7663
|
-
FileType.PNG,
|
|
7664
|
-
];
|
|
7665
|
-
|
|
7666
|
-
const getFileTypeIcon = (fileType) => {
|
|
7667
|
-
switch (fileType) {
|
|
7668
|
-
case FileType.CSV:
|
|
7669
|
-
return img$i;
|
|
7670
|
-
case FileType.XLSX:
|
|
7671
|
-
return img$6;
|
|
7672
|
-
case FileType.DOCX:
|
|
7673
|
-
return img$h;
|
|
7674
|
-
case FileType.PDF:
|
|
7675
|
-
return img$c;
|
|
7676
|
-
case FileType.JSON:
|
|
7677
|
-
return img$e;
|
|
7678
|
-
case FileType.KML:
|
|
7679
|
-
return img$d;
|
|
7680
|
-
case FileType.PPTX:
|
|
7681
|
-
return img$a;
|
|
7682
|
-
case FileType.SHP:
|
|
7683
|
-
return img$8;
|
|
7684
|
-
case FileType.TXT:
|
|
7685
|
-
return img$7;
|
|
7686
|
-
case FileType.ZIP:
|
|
7687
|
-
return img$5;
|
|
7688
|
-
case FileType.IMAGE:
|
|
7689
|
-
case FileType.JPEG:
|
|
7690
|
-
return img$g;
|
|
7691
|
-
case FileType.JPG:
|
|
7692
|
-
return img$f;
|
|
7693
|
-
case FileType.PNG:
|
|
7694
|
-
return img$b;
|
|
7695
|
-
case FileType.PYTHON:
|
|
7696
|
-
return img$9;
|
|
7697
|
-
default:
|
|
7698
|
-
return img$j;
|
|
7699
|
-
}
|
|
7700
|
-
};
|
|
7701
|
-
|
|
7702
7885
|
const AttachmentsContainer = styled.div `
|
|
7703
7886
|
display: flex;
|
|
7704
7887
|
flex-direction: column;
|
|
@@ -8026,22 +8209,6 @@ const AttachmentLinkDialog = ({ isOpen, onClose, onSubmit, }) => {
|
|
|
8026
8209
|
return (jsxRuntime.jsxs(uilibGl.Dialog, { isOpen: isOpen, onCloseRequest: handleClose, modal: true, maxWidth: "32rem", minHeight: "0", children: [jsxRuntime.jsxs(uilibGl.DialogTitle, { children: [jsxRuntime.jsx(uilibGl.ActionsGroup, { children: title }), jsxRuntime.jsx(uilibGl.ActionsGroup, { children: jsxRuntime.jsx(uilibGl.IconButton, { kind: "close", onClick: handleClose }) })] }), jsxRuntime.jsx(uilibGl.DialogContent, { children: jsxRuntime.jsx(LinkDialogContent, { children: jsxRuntime.jsx(uilibGl.Input, { label: urlLabel, placeholder: urlLabel, value: url, width: "100%", onChange: handleChange }) }) }), jsxRuntime.jsx(uilibGl.DialogActions, { children: jsxRuntime.jsxs(uilibGl.ActionsGroup, { children: [jsxRuntime.jsx(uilibGl.FlatButton, { onClick: handleClose, children: cancelLabel }), jsxRuntime.jsx(uilibGl.RaisedButton, { primary: true, disabled: !url.trim(), onClick: handleSubmit, children: attachLabel })] }) })] }));
|
|
8027
8210
|
};
|
|
8028
8211
|
|
|
8029
|
-
const useGlobalContext = () => {
|
|
8030
|
-
const { t, language, themeName, api, ewktGeometry } = React.useContext(GlobalContext) || {};
|
|
8031
|
-
const translate = React.useCallback((value, options) => {
|
|
8032
|
-
if (t)
|
|
8033
|
-
return t(value, options);
|
|
8034
|
-
return options?.defaultValue ?? value;
|
|
8035
|
-
}, [t]);
|
|
8036
|
-
return React.useMemo(() => ({
|
|
8037
|
-
t: translate,
|
|
8038
|
-
language,
|
|
8039
|
-
themeName,
|
|
8040
|
-
api,
|
|
8041
|
-
ewktGeometry,
|
|
8042
|
-
}), [language, translate, api, ewktGeometry, themeName]);
|
|
8043
|
-
};
|
|
8044
|
-
|
|
8045
8212
|
const ImagePreviewError = styled.div `
|
|
8046
8213
|
display: flex;
|
|
8047
8214
|
align-items: center;
|
|
@@ -8098,41 +8265,6 @@ const FileImagePreview = ({ link, isExternal, size, borderRadius, }) => {
|
|
|
8098
8265
|
return (jsxRuntime.jsxs(ImagePreviewContainer, { size: size, children: [hasError && (jsxRuntime.jsx(ImagePreviewError, { borderRadius: borderRadius, children: jsxRuntime.jsx(uilibGl.Icon, { kind: "alert" }) })), !hasError && !imageSrc && (jsxRuntime.jsx(ImagePreviewLoaderContainer, { children: jsxRuntime.jsx(uilibGl.LinearProgress, {}) })), !hasError && imageSrc && (jsxRuntime.jsx(GridImagePreview, { borderRadius: borderRadius, size: size, src: imageSrc, alt: "", onError: () => setHasError(true) }))] }));
|
|
8099
8266
|
};
|
|
8100
8267
|
|
|
8101
|
-
const getFileType = (mimeType = "", name = "") => {
|
|
8102
|
-
if (mimeType === PNG_MIME_TYPE)
|
|
8103
|
-
return FileType.PNG;
|
|
8104
|
-
if (mimeType === JPG_MIME_TYPE)
|
|
8105
|
-
return FileType.JPG;
|
|
8106
|
-
if (IMAGE_MIME_TYPES.includes(mimeType))
|
|
8107
|
-
return FileType.IMAGE;
|
|
8108
|
-
if (XLSX_MIME_TYPES.includes(mimeType))
|
|
8109
|
-
return FileType.XLSX;
|
|
8110
|
-
if (DOCX_MIME_TYPES.includes(mimeType))
|
|
8111
|
-
return FileType.DOCX;
|
|
8112
|
-
if (mimeType === CSV_MIME_TYPE)
|
|
8113
|
-
return FileType.CSV;
|
|
8114
|
-
if (mimeType === PDF_MIME_TYPE)
|
|
8115
|
-
return FileType.PDF;
|
|
8116
|
-
if (mimeType === JSON_MIME_TYPE)
|
|
8117
|
-
return FileType.JSON;
|
|
8118
|
-
if (mimeType === KML_MIME_TYPE && (name.endsWith(".kml") || name.endsWith(".kmz"))) {
|
|
8119
|
-
return FileType.KML;
|
|
8120
|
-
}
|
|
8121
|
-
if (PYTHON_MIME_TYPES.includes(mimeType))
|
|
8122
|
-
return FileType.PYTHON;
|
|
8123
|
-
if (mimeType === TXT_MIME_TYPE && name.endsWith(".py"))
|
|
8124
|
-
return FileType.PYTHON;
|
|
8125
|
-
if (mimeType === TXT_MIME_TYPE)
|
|
8126
|
-
return FileType.TXT;
|
|
8127
|
-
if (PPTX_MIME_TYPES.includes(mimeType))
|
|
8128
|
-
return FileType.PPTX;
|
|
8129
|
-
if (mimeType === SHP_MIME_TYPE && name.endsWith(".shp"))
|
|
8130
|
-
return FileType.SHP;
|
|
8131
|
-
if (mimeType === ZIP_MIME_TYPE)
|
|
8132
|
-
return FileType.ZIP;
|
|
8133
|
-
return name.endsWith(".py") ? FileType.PYTHON : FileType.UNKNOWN;
|
|
8134
|
-
};
|
|
8135
|
-
|
|
8136
8268
|
const AttachmentItem = ({ item, viewMode, isEdit, onPreview, onDelete, }) => {
|
|
8137
8269
|
const { mimeType, link, isExternal, name: fileName, date } = item;
|
|
8138
8270
|
const fileType = React.useMemo(() => getFileType(mimeType, fileName), [mimeType, fileName]);
|
|
@@ -8159,78 +8291,22 @@ const AttachmentsList = ({ items, isEdit, onPreview, onDelete, }) => {
|
|
|
8159
8291
|
};
|
|
8160
8292
|
|
|
8161
8293
|
const ShowMoreButton = ({ hiddenCount, onClick, }) => {
|
|
8162
|
-
const { t } = useGlobalContext();
|
|
8163
|
-
return (jsxRuntime.jsxs(ShowMoreButton$1, { onClick: onClick, children: [t("showMore", { ns: "dashboard", defaultValue: "Показать ещё" }), " ", hiddenCount, jsxRuntime.jsx(uilibGl.Icon, { kind: "arrow_down" })] }));
|
|
8164
|
-
};
|
|
8165
|
-
|
|
8166
|
-
const sliceShownOtherItems = (data, options = {}, showMore) => {
|
|
8167
|
-
const { shownItems, otherItems } = options || {};
|
|
8168
|
-
const limit = shownItems && otherItems ? Math.min(shownItems, otherItems) : shownItems || otherItems;
|
|
8169
|
-
return (shownItems || otherItems) && !showMore ? (data?.slice(0, limit) || []) : data;
|
|
8170
|
-
};
|
|
8171
|
-
|
|
8172
|
-
const
|
|
8173
|
-
|
|
8174
|
-
|
|
8175
|
-
|
|
8176
|
-
|
|
8177
|
-
|
|
8178
|
-
return [];
|
|
8179
|
-
try {
|
|
8180
|
-
const parsed = JSON.parse(raw);
|
|
8181
|
-
return Array.isArray(parsed) ? parsed : [];
|
|
8182
|
-
}
|
|
8183
|
-
catch {
|
|
8184
|
-
return [];
|
|
8185
|
-
}
|
|
8186
|
-
};
|
|
8187
|
-
const attachmentsFromFeatures = (features, mapping = {}) => {
|
|
8188
|
-
if (!features?.length)
|
|
8189
|
-
return [];
|
|
8190
|
-
const { attributeLink = "link", attributeName = "name", attributeMime = "mimeType", attributeDate = "date", } = mapping;
|
|
8191
|
-
return features
|
|
8192
|
-
.map(feature => {
|
|
8193
|
-
const link = feature.properties?.[attributeLink];
|
|
8194
|
-
if (!link)
|
|
8195
|
-
return null;
|
|
8196
|
-
return {
|
|
8197
|
-
link,
|
|
8198
|
-
name: feature.properties?.[attributeName] ?? link,
|
|
8199
|
-
mimeType: feature.properties?.[attributeMime] ?? "",
|
|
8200
|
-
date: feature.properties?.[attributeDate],
|
|
8201
|
-
isExternal: /^https?:\/\//.test(link),
|
|
8202
|
-
};
|
|
8203
|
-
})
|
|
8204
|
-
.filter(Boolean);
|
|
8205
|
-
};
|
|
8206
|
-
|
|
8207
|
-
const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
8208
|
-
const { attributes, dataSources } = useWidgetContext(type);
|
|
8209
|
-
const { children, options } = elementConfig || {};
|
|
8210
|
-
const { relatedDataSource, controls } = options || {};
|
|
8211
|
-
const initialViewMode = options?.viewMode === "list" ? "list" : "grid";
|
|
8212
|
-
const [viewMode, setViewMode] = React.useState(initialViewMode);
|
|
8213
|
-
const [showMore, setShowMore] = React.useState(false);
|
|
8214
|
-
const valueElement = React.useMemo(() => children?.find(({ id }) => id === "value"), [children]);
|
|
8215
|
-
const attributeName = React.useMemo(() => {
|
|
8216
|
-
const candidate = valueElement?.attributeName ?? elementConfig?.attributeName;
|
|
8217
|
-
return Array.isArray(candidate) ? candidate[0] : candidate;
|
|
8218
|
-
}, [valueElement, elementConfig]);
|
|
8219
|
-
const rawValue = React.useMemo(() => {
|
|
8220
|
-
if (valueOverride !== undefined)
|
|
8221
|
-
return valueOverride;
|
|
8222
|
-
if (!attributeName)
|
|
8223
|
-
return undefined;
|
|
8224
|
-
return attributes?.find(item => item.attributeName === attributeName)?.value;
|
|
8225
|
-
}, [valueOverride, attributeName, attributes]);
|
|
8226
|
-
const items = React.useMemo(() => {
|
|
8227
|
-
if (relatedDataSource) {
|
|
8228
|
-
const dataSource = dataSources?.find(({ name }) => name === relatedDataSource);
|
|
8229
|
-
const mapping = controls?.[0];
|
|
8230
|
-
return attachmentsFromFeatures(dataSource?.features, mapping);
|
|
8231
|
-
}
|
|
8232
|
-
return parseAttachments(rawValue);
|
|
8233
|
-
}, [relatedDataSource, dataSources, controls, rawValue]);
|
|
8294
|
+
const { t } = useGlobalContext();
|
|
8295
|
+
return (jsxRuntime.jsxs(ShowMoreButton$1, { onClick: onClick, children: [t("showMore", { ns: "dashboard", defaultValue: "Показать ещё" }), " ", hiddenCount, jsxRuntime.jsx(uilibGl.Icon, { kind: "arrow_down" })] }));
|
|
8296
|
+
};
|
|
8297
|
+
|
|
8298
|
+
const sliceShownOtherItems = (data, options = {}, showMore) => {
|
|
8299
|
+
const { shownItems, otherItems } = options || {};
|
|
8300
|
+
const limit = shownItems && otherItems ? Math.min(shownItems, otherItems) : shownItems || otherItems;
|
|
8301
|
+
return (shownItems || otherItems) && !showMore ? (data?.slice(0, limit) || []) : data;
|
|
8302
|
+
};
|
|
8303
|
+
|
|
8304
|
+
const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
8305
|
+
const { items, attributeName } = useAttachmentItems({ type, elementConfig, valueOverride });
|
|
8306
|
+
const { options } = elementConfig || {};
|
|
8307
|
+
const initialViewMode = options?.viewMode === "list" ? "list" : "grid";
|
|
8308
|
+
const [viewMode, setViewMode] = React.useState(initialViewMode);
|
|
8309
|
+
const [showMore, setShowMore] = React.useState(false);
|
|
8234
8310
|
const visibleItems = React.useMemo(() => sliceShownOtherItems(items, options, showMore), [items, options, showMore]);
|
|
8235
8311
|
const hiddenCount = items.length - visibleItems.length;
|
|
8236
8312
|
const hasMore = hiddenCount > 0;
|
|
@@ -8248,60 +8324,6 @@ const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
|
8248
8324
|
};
|
|
8249
8325
|
};
|
|
8250
8326
|
|
|
8251
|
-
const usePreviewImages = ({ items, active }) => {
|
|
8252
|
-
const { api } = useGlobalContext();
|
|
8253
|
-
const [blobUrls, setBlobUrls] = React.useState({});
|
|
8254
|
-
const [failedLinks, setFailedLinks] = React.useState({});
|
|
8255
|
-
const inFlightRef = React.useRef(new Set());
|
|
8256
|
-
const blobUrlsRef = React.useRef(blobUrls);
|
|
8257
|
-
blobUrlsRef.current = blobUrls;
|
|
8258
|
-
React.useEffect(() => {
|
|
8259
|
-
if (!active || !api?.catalog?.getFile)
|
|
8260
|
-
return;
|
|
8261
|
-
items.forEach(item => {
|
|
8262
|
-
const fileType = getFileType(item.mimeType, item.name);
|
|
8263
|
-
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8264
|
-
if (!isImage || item.isExternal)
|
|
8265
|
-
return;
|
|
8266
|
-
if (blobUrlsRef.current[item.link] || inFlightRef.current.has(item.link))
|
|
8267
|
-
return;
|
|
8268
|
-
inFlightRef.current.add(item.link);
|
|
8269
|
-
api.catalog
|
|
8270
|
-
.getFile(item.link)
|
|
8271
|
-
.then(blob => {
|
|
8272
|
-
const objectUrl = URL.createObjectURL(blob);
|
|
8273
|
-
setBlobUrls(prev => ({ ...prev, [item.link]: objectUrl }));
|
|
8274
|
-
})
|
|
8275
|
-
.catch(() => {
|
|
8276
|
-
setFailedLinks(prev => (prev[item.link] ? prev : { ...prev, [item.link]: true }));
|
|
8277
|
-
})
|
|
8278
|
-
.finally(() => {
|
|
8279
|
-
inFlightRef.current.delete(item.link);
|
|
8280
|
-
});
|
|
8281
|
-
});
|
|
8282
|
-
}, [active, api, items]);
|
|
8283
|
-
React.useEffect(() => () => {
|
|
8284
|
-
Object.values(blobUrlsRef.current).forEach(URL.revokeObjectURL);
|
|
8285
|
-
}, []);
|
|
8286
|
-
return React.useMemo(() => items.map(item => {
|
|
8287
|
-
const fileType = getFileType(item.mimeType, item.name);
|
|
8288
|
-
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8289
|
-
const fileName = item.name;
|
|
8290
|
-
if (!isImage)
|
|
8291
|
-
return { src: getFileTypeIcon(fileType), fileName };
|
|
8292
|
-
if (item.isExternal)
|
|
8293
|
-
return { src: item.link, fileName };
|
|
8294
|
-
const hasError = !!failedLinks[item.link];
|
|
8295
|
-
const blobUrl = blobUrls[item.link];
|
|
8296
|
-
return {
|
|
8297
|
-
src: blobUrl ?? "",
|
|
8298
|
-
fileName,
|
|
8299
|
-
hasError,
|
|
8300
|
-
isLoading: !hasError && !blobUrl,
|
|
8301
|
-
};
|
|
8302
|
-
}), [items, blobUrls, failedLinks]);
|
|
8303
|
-
};
|
|
8304
|
-
|
|
8305
8327
|
const EXTENSION_TO_MIME = {
|
|
8306
8328
|
apng: "image/apng",
|
|
8307
8329
|
avif: "image/avif",
|
|
@@ -8358,15 +8380,7 @@ const EditAttachmentContainer = React.memo(({ type, elementConfig, renderElement
|
|
|
8358
8380
|
const [previewIndex, setPreviewIndex] = React.useState(null);
|
|
8359
8381
|
const [uploading, setUploading] = React.useState(false);
|
|
8360
8382
|
const [isLinkDialogOpen, , setLinkDialogOpen] = useToggle(false);
|
|
8361
|
-
const previewImages =
|
|
8362
|
-
const orderedPreviewImages = React.useMemo(() => {
|
|
8363
|
-
if (previewIndex === null)
|
|
8364
|
-
return previewImages;
|
|
8365
|
-
return [
|
|
8366
|
-
previewImages[previewIndex],
|
|
8367
|
-
...previewImages.filter((_, idx) => idx !== previewIndex),
|
|
8368
|
-
];
|
|
8369
|
-
}, [previewImages, previewIndex]);
|
|
8383
|
+
const previewImages = useAttachmentPreviewImages({ items, active: previewIndex !== null });
|
|
8370
8384
|
const persist = React.useCallback((next) => onChange(next), [onChange]);
|
|
8371
8385
|
const handlePreview = React.useCallback((link) => {
|
|
8372
8386
|
const idx = items.findIndex(item => item.link === link);
|
|
@@ -8424,7 +8438,7 @@ const EditAttachmentContainer = React.memo(({ type, elementConfig, renderElement
|
|
|
8424
8438
|
setUploading(false);
|
|
8425
8439
|
}
|
|
8426
8440
|
}, [api, items, parentResourceId, persist]);
|
|
8427
|
-
return (jsxRuntime.jsxs(AttachmentsContainer, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxRuntime.jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsxRuntime.jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsxRuntime.jsx(AttachmentsGrid, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) : (jsxRuntime.jsx(AttachmentsList, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) }), hasMore && !showMore && (jsxRuntime.jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), jsxRuntime.jsx(AddButton, { accept: fileExtensions, onSelectFiles: uploading ? () => undefined : handleUpload, onSelectFromCatalog: handleSelectFromCatalog, onSelectFromLink: handleOpenLinkDialog }), jsxRuntime.jsx(AttachmentLinkDialog, { isOpen: isLinkDialogOpen, onClose: handleCloseLinkDialog, onSubmit: handleAddByLink }), previewIndex !== null && (jsxRuntime.jsx(uilibGl.Preview, { images:
|
|
8441
|
+
return (jsxRuntime.jsxs(AttachmentsContainer, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsxRuntime.jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsxRuntime.jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsxRuntime.jsx(AttachmentsGrid, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) : (jsxRuntime.jsx(AttachmentsList, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) }), hasMore && !showMore && (jsxRuntime.jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), jsxRuntime.jsx(AddButton, { accept: fileExtensions, onSelectFiles: uploading ? () => undefined : handleUpload, onSelectFromCatalog: handleSelectFromCatalog, onSelectFromLink: handleOpenLinkDialog }), jsxRuntime.jsx(AttachmentLinkDialog, { isOpen: isLinkDialogOpen, onClose: handleCloseLinkDialog, onSubmit: handleAddByLink }), previewIndex !== null && (jsxRuntime.jsx(uilibGl.Preview, { images: previewImages, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleClosePreview }, previewIndex))] }));
|
|
8428
8442
|
});
|
|
8429
8443
|
|
|
8430
8444
|
const AttachmentContainer = React.memo(({ type, elementConfig, renderElement }) => {
|
|
@@ -8434,15 +8448,7 @@ const AttachmentContainer = React.memo(({ type, elementConfig, renderElement })
|
|
|
8434
8448
|
const { id, style, options } = elementConfig || {};
|
|
8435
8449
|
const { expandable, expanded } = options || {};
|
|
8436
8450
|
const [previewIndex, setPreviewIndex] = React.useState(null);
|
|
8437
|
-
const previewImages =
|
|
8438
|
-
const orderedPreviewImages = React.useMemo(() => {
|
|
8439
|
-
if (previewIndex === null)
|
|
8440
|
-
return previewImages;
|
|
8441
|
-
return [
|
|
8442
|
-
previewImages[previewIndex],
|
|
8443
|
-
...previewImages.filter((_, idx) => idx !== previewIndex),
|
|
8444
|
-
];
|
|
8445
|
-
}, [previewImages, previewIndex]);
|
|
8451
|
+
const previewImages = useAttachmentPreviewImages({ items, active: previewIndex !== null });
|
|
8446
8452
|
const handlePreview = React.useCallback((link) => {
|
|
8447
8453
|
const idx = items.findIndex(item => item.link === link);
|
|
8448
8454
|
if (idx >= 0)
|
|
@@ -8451,10 +8457,10 @@ const AttachmentContainer = React.memo(({ type, elementConfig, renderElement })
|
|
|
8451
8457
|
const handleClosePreview = React.useCallback(() => setPreviewIndex(null), []);
|
|
8452
8458
|
const handleShowMore = React.useCallback(() => setShowMore(true), [setShowMore]);
|
|
8453
8459
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
8454
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxRuntime.
|
|
8455
|
-
|
|
8456
|
-
|
|
8457
|
-
|
|
8460
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxRuntime.jsx(Container, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: jsxRuntime.jsxs(uilibGl.Flex, { column: true, children: [jsxRuntime.jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsxRuntime.jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsxRuntime.jsx(AttachmentsGrid, { items: visibleItems, isEdit: false, onPreview: handlePreview })) : (jsxRuntime.jsx(AttachmentsList, { items: visibleItems, isEdit: false, onPreview: handlePreview })) }), hasMore && !showMore && (jsxRuntime.jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), previewIndex !== null && (jsxRuntime.jsx(uilibGl.Preview, { images: previewImages, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleClosePreview, errorTitleText: t("attachments.resourceUnavailable", {
|
|
8461
|
+
ns: "common",
|
|
8462
|
+
defaultValue: "Ресурс недоступен",
|
|
8463
|
+
}) }, previewIndex))] }) }))] }));
|
|
8458
8464
|
});
|
|
8459
8465
|
|
|
8460
8466
|
const ContainerDivider = styled(uilibGl.Divider) `
|
|
@@ -8508,6 +8514,24 @@ const getContainerComponent = (innerTemplateName) => innerTemplateName
|
|
|
8508
8514
|
? containerComponents[innerTemplateName] || containerComponents.default
|
|
8509
8515
|
: null;
|
|
8510
8516
|
|
|
8517
|
+
const HeaderTitleContainer = styled(uilibGl.Flex) `
|
|
8518
|
+
flex-direction: column;
|
|
8519
|
+
width: 100%;
|
|
8520
|
+
`;
|
|
8521
|
+
const LayerDescription = styled(uilibGl.Description) `
|
|
8522
|
+
width: calc(100% - 4rem);
|
|
8523
|
+
display: -webkit-box;
|
|
8524
|
+
-webkit-line-clamp: 2;
|
|
8525
|
+
-webkit-box-orient: vertical;
|
|
8526
|
+
overflow: hidden;
|
|
8527
|
+
text-overflow: ellipsis;
|
|
8528
|
+
`;
|
|
8529
|
+
const HeaderFontColorMixin = styled.css `
|
|
8530
|
+
${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
|
|
8531
|
+
color: ${({ $fontColor }) => $fontColor};
|
|
8532
|
+
}
|
|
8533
|
+
`;
|
|
8534
|
+
|
|
8511
8535
|
var img$4 = "data:image/png;base64,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";
|
|
8512
8536
|
|
|
8513
8537
|
const getMaskColor = (isDark) => isDark ? "0, 0, 0" : "255, 255, 255";
|
|
@@ -8675,17 +8699,18 @@ const HeaderFrontView = styled(uilibGl.Flex) `
|
|
|
8675
8699
|
width: 100%;
|
|
8676
8700
|
font: ${({ theme: { fonts } }) => fonts.subtitle};
|
|
8677
8701
|
`;
|
|
8678
|
-
const HeaderContainer = styled(uilibGl.
|
|
8702
|
+
const HeaderContainer = styled(uilibGl.Flex) `
|
|
8679
8703
|
display: flex;
|
|
8680
8704
|
flex-grow: 1;
|
|
8681
8705
|
flex-wrap: nowrap;
|
|
8682
|
-
|
|
8706
|
+
flex-direction: column;
|
|
8707
|
+
width: calc(100% - 3rem);
|
|
8683
8708
|
`;
|
|
8684
8709
|
const FeatureTitleContainer = styled.div `
|
|
8685
8710
|
display: -webkit-box;
|
|
8686
8711
|
max-width: 100%;
|
|
8687
8712
|
width: 100%;
|
|
8688
|
-
margin: 0.5rem
|
|
8713
|
+
margin-top: 0.5rem;
|
|
8689
8714
|
-webkit-line-clamp: 2;
|
|
8690
8715
|
-webkit-box-orient: vertical;
|
|
8691
8716
|
overflow: hidden;
|
|
@@ -8700,21 +8725,10 @@ const FeatureTitleContainer = styled.div `
|
|
|
8700
8725
|
}
|
|
8701
8726
|
}
|
|
8702
8727
|
`;
|
|
8703
|
-
const LayerDescription = styled(uilibGl.Description) `
|
|
8704
|
-
width: calc(100% - 4rem);
|
|
8705
|
-
display: -webkit-box;
|
|
8706
|
-
-webkit-line-clamp: 2;
|
|
8707
|
-
-webkit-box-orient: vertical;
|
|
8708
|
-
overflow: hidden;
|
|
8709
|
-
text-overflow: ellipsis;
|
|
8710
|
-
`;
|
|
8711
|
-
const HeaderTitleContainer = styled(uilibGl.Flex) `
|
|
8712
|
-
flex-direction: column;
|
|
8713
|
-
width: 100%;
|
|
8714
|
-
`;
|
|
8715
8728
|
const RowHeaderMixin = styled.css `
|
|
8716
8729
|
&&& {
|
|
8717
8730
|
min-height: auto;
|
|
8731
|
+
padding: 1rem 1.5rem 1rem 1rem;
|
|
8718
8732
|
|
|
8719
8733
|
${FeatureTitleContainer}, ${LayerDescription} {
|
|
8720
8734
|
text-align: left;
|
|
@@ -8734,16 +8748,20 @@ const Header = styled(uilibGl.Flex) `
|
|
|
8734
8748
|
position: relative;
|
|
8735
8749
|
top: 0;
|
|
8736
8750
|
flex-shrink: 0;
|
|
8737
|
-
overflow: hidden;
|
|
8738
8751
|
width: 100%;
|
|
8739
|
-
padding:
|
|
8752
|
+
padding: 1rem 1.5rem;
|
|
8753
|
+
overflow: hidden;
|
|
8740
8754
|
|
|
8741
8755
|
${({ $isRow }) => $isRow && RowHeaderMixin};
|
|
8742
8756
|
`;
|
|
8743
8757
|
const DefaultHeaderWrapper = styled.div `
|
|
8744
|
-
${
|
|
8745
|
-
|
|
8746
|
-
}
|
|
8758
|
+
width: ${({ withPadding }) => (withPadding ? "100%" : "calc(100% + 1rem)")};
|
|
8759
|
+
height: ${({ height }) => (height ? `${height}px` : "auto")};
|
|
8760
|
+
margin: ${({ withPadding }) => (withPadding ? "-0.5rem -0.5rem 0 -0.5rem" : "-1rem -1rem 0 -1rem")};
|
|
8761
|
+
background: url(${img$4}) 50% -2rem no-repeat;
|
|
8762
|
+
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
8763
|
+
|
|
8764
|
+
${({ fontColor }) => !!fontColor && HeaderFontColorMixin};
|
|
8747
8765
|
`;
|
|
8748
8766
|
|
|
8749
8767
|
const HeaderTitle = ({ noFeature }) => {
|
|
@@ -8767,7 +8785,7 @@ const HeaderTitle = ({ noFeature }) => {
|
|
|
8767
8785
|
stringFormat: layerDefinitionAttribute.stringFormat,
|
|
8768
8786
|
})) ||
|
|
8769
8787
|
feature?.id);
|
|
8770
|
-
}, [attributes,
|
|
8788
|
+
}, [configuration, attributes, t, feature?.id]);
|
|
8771
8789
|
return (jsxRuntime.jsxs(HeaderTitleContainer, { children: [noFeature ? (jsxRuntime.jsx(FeatureTitleContainer, { children: t("noObjectFound", { ns: "dashboard", defaultValue: "Объектов не найдено" }) })) : (jsxRuntime.jsx(FeatureTitleContainer, { clickable: true, children: jsxRuntime.jsx(uilibGl.Tooltip, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsxRuntime.jsx(uilibGl.FlexSpan, { ref: ref, onClick: () => zoomToFeatures([feature]), children: resultTitle })) }) })), jsxRuntime.jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
|
|
8772
8790
|
};
|
|
8773
8791
|
|
|
@@ -8799,7 +8817,7 @@ var img$1 = "data:image/svg+xml,%3csvg width='32' height='32' viewBox='0 0 32 32
|
|
|
8799
8817
|
|
|
8800
8818
|
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";
|
|
8801
8819
|
|
|
8802
|
-
const LayerIcon = ({ layerInfo, error }) => {
|
|
8820
|
+
const LayerIcon = ({ layerInfo, error, innerRef }) => {
|
|
8803
8821
|
const geometryType = layerInfo?.configuration?.geometryType;
|
|
8804
8822
|
const renderSymbol = React.useMemo(() => {
|
|
8805
8823
|
if (layerInfo?.configuration?.layerType === api.LayerServiceType.RemoteTileLayerService) {
|
|
@@ -8821,91 +8839,34 @@ const LayerIcon = ({ layerInfo, error }) => {
|
|
|
8821
8839
|
default:
|
|
8822
8840
|
return jsxRuntime.jsx("img", { src: img$3, alt: "" });
|
|
8823
8841
|
}
|
|
8824
|
-
}, [error, geometryType]);
|
|
8825
|
-
return jsxRuntime.jsx(LayerIconContainer, { children: renderSymbol });
|
|
8842
|
+
}, [error, geometryType, layerInfo?.configuration?.layerType]);
|
|
8843
|
+
return jsxRuntime.jsx(LayerIconContainer, { ref: innerRef, children: renderSymbol });
|
|
8826
8844
|
};
|
|
8827
8845
|
|
|
8828
|
-
const
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
|
|
8832
|
-
|
|
8833
|
-
const HeaderFontColorMixin$1 = styled.css `
|
|
8834
|
-
${HeaderTitleContainer}, ${LayerDescription} {
|
|
8835
|
-
color: ${({ $fontColor }) => $fontColor};
|
|
8836
|
-
}
|
|
8837
|
-
`;
|
|
8838
|
-
const HeaderWrapperMixin$1 = styled.css `
|
|
8839
|
-
${Header} {
|
|
8840
|
-
min-height: 5.25rem;
|
|
8841
|
-
}
|
|
8842
|
-
|
|
8843
|
-
${HeaderContainer} {
|
|
8844
|
-
max-width: 100%;
|
|
8845
|
-
width: 100%;
|
|
8846
|
-
}
|
|
8847
|
-
|
|
8848
|
-
${FeatureControls} {
|
|
8849
|
-
max-width: calc(100% - 2rem);
|
|
8850
|
-
width: calc(100% - 2rem);
|
|
8851
|
-
margin-top: -0.5rem;
|
|
8852
|
-
padding-top: 1rem;
|
|
8853
|
-
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
8854
|
-
}
|
|
8855
|
-
|
|
8856
|
-
${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin$1};
|
|
8857
|
-
`;
|
|
8858
|
-
const GradientHeaderWrapper = styled.div `
|
|
8859
|
-
${Header} {
|
|
8860
|
-
background: ${({ $bgColor }) => $bgColor || "radial-gradient(129.21% 133.22% at 51.94% 0%, #e8fffe 9.48%, #5fcaff 100%)"};
|
|
8861
|
-
}
|
|
8862
|
-
|
|
8863
|
-
${HeaderContainer} {
|
|
8864
|
-
align-items: center;
|
|
8865
|
-
}
|
|
8866
|
-
|
|
8867
|
-
${HeaderTitleContainer} {
|
|
8868
|
-
margin-left: 0;
|
|
8869
|
-
text-align: center;
|
|
8870
|
-
}
|
|
8871
|
-
|
|
8872
|
-
${FeatureTitleContainer} {
|
|
8873
|
-
text-align: center;
|
|
8874
|
-
}
|
|
8875
|
-
|
|
8876
|
-
${LayerDescription} {
|
|
8877
|
-
text-align: center;
|
|
8878
|
-
}
|
|
8879
|
-
|
|
8880
|
-
${HeaderWrapperMixin$1};
|
|
8846
|
+
const LayerIconClickable = styled.div `
|
|
8847
|
+
display: flex;
|
|
8848
|
+
align-items: center;
|
|
8849
|
+
cursor: pointer;
|
|
8881
8850
|
`;
|
|
8882
8851
|
|
|
8883
|
-
const
|
|
8884
|
-
const {
|
|
8852
|
+
const HeaderLayerIcon = () => {
|
|
8853
|
+
const { t } = useGlobalContext();
|
|
8854
|
+
const { layerInfo, feature } = useWidgetContext(exports.WidgetType.FeatureCard);
|
|
8855
|
+
const zoomToFeatures = useZoomToFeatures();
|
|
8856
|
+
const getMaxZoomTo = useMaxZoomTo();
|
|
8857
|
+
const [optionsMaxZoomTo, layerMaxZoomTo] = React.useMemo(() => getMaxZoomTo(layerInfo?.name), [layerInfo?.name, getMaxZoomTo]);
|
|
8858
|
+
const handleIconClick = React.useCallback(() => zoomToFeatures([feature], { maxZoom: layerMaxZoomTo ?? optionsMaxZoomTo }), [zoomToFeatures, feature, layerMaxZoomTo, optionsMaxZoomTo]);
|
|
8859
|
+
return (jsxRuntime.jsx(LayerIconClickable, { onClick: handleIconClick, children: jsxRuntime.jsx(uilibGl.Tooltip, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsxRuntime.jsx(LayerIcon, { innerRef: ref, layerInfo: layerInfo })) }) }));
|
|
8860
|
+
};
|
|
8861
|
+
|
|
8862
|
+
const FeatureCardDefaultHeader = ({ noFeature }) => {
|
|
8885
8863
|
const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
|
|
8886
8864
|
const { header } = config || {};
|
|
8887
8865
|
const { options } = header || {};
|
|
8888
|
-
const {
|
|
8889
|
-
|
|
8890
|
-
return (jsxRuntime.jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: uilibGl.defaultTheme, children: jsxRuntime.jsx(Header, { "$isRow": isRow, children: jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { children: [jsxRuntime.jsx(LayerIcon, { layerInfo: layerInfo }), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
|
|
8891
|
-
id: "title",
|
|
8892
|
-
wrap: false,
|
|
8893
|
-
}), description: renderElement({
|
|
8894
|
-
id: "description",
|
|
8895
|
-
wrap: false,
|
|
8896
|
-
}) })] }), jsxRuntime.jsx(FeatureCardButtons, {})] }) }) }) }));
|
|
8866
|
+
const { themeName, withPadding, column, height } = options || {};
|
|
8867
|
+
return (jsxRuntime.jsx(DefaultHeaderWrapper, { withPadding: withPadding, height: height, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: getThemeByName(themeName), children: jsxRuntime.jsx(Header, { "$isRow": !column, children: jsxRuntime.jsxs(HeaderFrontView, { isDefault: !column, children: [jsxRuntime.jsxs(HeaderContainer, { children: [jsxRuntime.jsx(HeaderLayerIcon, {}), jsxRuntime.jsx(HeaderTitle, { noFeature: noFeature })] }), jsxRuntime.jsx(FeatureCardButtons, {})] }) }) }) }));
|
|
8897
8868
|
};
|
|
8898
8869
|
|
|
8899
|
-
const LayerIconClickable = styled.div `
|
|
8900
|
-
display: flex;
|
|
8901
|
-
align-items: center;
|
|
8902
|
-
cursor: pointer;
|
|
8903
|
-
`;
|
|
8904
|
-
const HeaderFontColorMixin = styled.css `
|
|
8905
|
-
${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
|
|
8906
|
-
color: ${({ $fontColor }) => $fontColor};
|
|
8907
|
-
}
|
|
8908
|
-
`;
|
|
8909
8870
|
const HeaderWrapperMixin = styled.css `
|
|
8910
8871
|
${Header} {
|
|
8911
8872
|
min-height: 5.25rem;
|
|
@@ -8930,13 +8891,18 @@ const HeaderIcon = styled(uilibGl.Flex) `
|
|
|
8930
8891
|
position: absolute;
|
|
8931
8892
|
top: 0;
|
|
8932
8893
|
right: 0;
|
|
8933
|
-
justify-content: flex-end;
|
|
8934
8894
|
align-items: center;
|
|
8935
|
-
|
|
8895
|
+
justify-content: center;
|
|
8896
|
+
width: 7.625rem;
|
|
8936
8897
|
height: 100%;
|
|
8937
8898
|
|
|
8938
|
-
span[kind]
|
|
8939
|
-
|
|
8899
|
+
span[kind] {
|
|
8900
|
+
width: 4rem;
|
|
8901
|
+
|
|
8902
|
+
:after {
|
|
8903
|
+
font-size: 4rem;
|
|
8904
|
+
color: rgba(255, 255, 255, 0.36);
|
|
8905
|
+
}
|
|
8940
8906
|
}
|
|
8941
8907
|
|
|
8942
8908
|
span[kind]:after,
|
|
@@ -8962,34 +8928,61 @@ const BigIconHeaderMixin = styled.css `
|
|
|
8962
8928
|
}
|
|
8963
8929
|
}
|
|
8964
8930
|
`;
|
|
8965
|
-
const
|
|
8931
|
+
const WithPaddingHeaderMixin = styled.css `
|
|
8932
|
+
${Header} {
|
|
8933
|
+
width: 100%;
|
|
8934
|
+
margin: -0.5rem -0.5rem 0.5rem -0.5rem;
|
|
8935
|
+
}
|
|
8936
|
+
`;
|
|
8937
|
+
const BottomBlurHeaderMixin = styled.css `
|
|
8938
|
+
${Header} {
|
|
8939
|
+
margin-bottom: 0;
|
|
8940
|
+
|
|
8941
|
+
&::after {
|
|
8942
|
+
content: "";
|
|
8943
|
+
position: absolute;
|
|
8944
|
+
left: 0;
|
|
8945
|
+
right: 0;
|
|
8946
|
+
bottom: 0;
|
|
8947
|
+
height: 2rem;
|
|
8948
|
+
z-index: 11;
|
|
8949
|
+
pointer-events: none;
|
|
8950
|
+
background: ${({ theme: { palette } }) => palette.background};
|
|
8951
|
+
mask-image: linear-gradient(to top, #000 0%, transparent 100%);
|
|
8952
|
+
-webkit-mask-image: linear-gradient(to top, #000 0%, transparent 100%);
|
|
8953
|
+
}
|
|
8954
|
+
}
|
|
8955
|
+
|
|
8956
|
+
${HeaderFrontView} {
|
|
8957
|
+
z-index: 12;
|
|
8958
|
+
}
|
|
8959
|
+
`;
|
|
8960
|
+
const GradientHeaderWrapper = styled.div `
|
|
8966
8961
|
${Header} {
|
|
8967
|
-
width: calc(100% +
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
border-
|
|
8971
|
-
border-top-right-radius: 0.5rem;
|
|
8962
|
+
width: calc(100% + 1rem);
|
|
8963
|
+
height: ${({ $height }) => $height ? `${$height}px` : "auto"};
|
|
8964
|
+
margin: -1rem -1rem 1rem -1rem;
|
|
8965
|
+
border-radius: 0.5rem;
|
|
8972
8966
|
background: ${({ $bgColor }) => $bgColor || "linear-gradient(96.55deg, #FFFCD3 0%, #B4DC47 100%)"};
|
|
8967
|
+
overflow: hidden;
|
|
8973
8968
|
}
|
|
8974
8969
|
|
|
8975
8970
|
${HeaderWrapperMixin};
|
|
8976
8971
|
|
|
8977
8972
|
${({ $bigIcon }) => $bigIcon && BigIconHeaderMixin};
|
|
8973
|
+
|
|
8974
|
+
${({ $withPadding }) => $withPadding && WithPaddingHeaderMixin};
|
|
8975
|
+
|
|
8976
|
+
${({ $bottomBlur }) => $bottomBlur && BottomBlurHeaderMixin};
|
|
8978
8977
|
`;
|
|
8979
8978
|
|
|
8980
|
-
const
|
|
8981
|
-
const { t } = useGlobalContext();
|
|
8982
|
-
const { layerInfo, feature } = useWidgetContext(exports.WidgetType.FeatureCard);
|
|
8979
|
+
const FeatureCardGradientHeader = () => {
|
|
8983
8980
|
const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
|
|
8984
|
-
const zoomToFeatures = useZoomToFeatures();
|
|
8985
|
-
const getMaxZoomTo = useMaxZoomTo();
|
|
8986
|
-
const [optionsMaxZoomTo, layerMaxZoomTo] = React.useMemo(() => getMaxZoomTo(layerInfo?.name), [layerInfo?.name, getMaxZoomTo]);
|
|
8987
8981
|
const { header } = config || {};
|
|
8988
8982
|
const { options } = header || {};
|
|
8989
|
-
const { fontColor, bgColor, bigIcon } = options || {};
|
|
8983
|
+
const { fontColor, bgColor, height, bigIcon, withPadding, bottomBlur, themeName, column } = options || {};
|
|
8990
8984
|
const renderElement = useHeaderRender(header);
|
|
8991
|
-
|
|
8992
|
-
return (jsxRuntime.jsx(IconHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$bigIcon": bigIcon, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: uilibGl.defaultTheme, children: jsxRuntime.jsxs(Header, { "$isRow": isRow, children: [jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { children: [jsxRuntime.jsx(uilibGl.Tooltip, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsxRuntime.jsx(LayerIconClickable, { ref: ref, onClick: handleIconClick, children: jsxRuntime.jsx(LayerIcon, { layerInfo: layerInfo }) })) }), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
|
|
8985
|
+
return (jsxRuntime.jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$height": height, "$bigIcon": bigIcon, "$withPadding": withPadding, "$bottomBlur": bottomBlur, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: getThemeByName(themeName), children: jsxRuntime.jsxs(Header, { "$isRow": !column, children: [jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { column: column, children: [jsxRuntime.jsx(HeaderLayerIcon, {}), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
|
|
8993
8986
|
id: "title",
|
|
8994
8987
|
wrap: false,
|
|
8995
8988
|
}), description: renderElement({
|
|
@@ -9070,11 +9063,19 @@ const SmallPreviewControl = styled(uilibGl.IconButton) `
|
|
|
9070
9063
|
height: 2.5rem;
|
|
9071
9064
|
margin-top: -1.25rem;
|
|
9072
9065
|
background-color: rgba(61, 61, 61, 0.8);
|
|
9073
|
-
border-radius: ${({ theme: { borderRadius } }) => borderRadius.
|
|
9066
|
+
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
9074
9067
|
|
|
9075
|
-
|
|
9076
|
-
color:
|
|
9077
|
-
|
|
9068
|
+
:hover {
|
|
9069
|
+
background-color: rgba(61, 61, 61, 1);
|
|
9070
|
+
}
|
|
9071
|
+
|
|
9072
|
+
span {
|
|
9073
|
+
min-width: 1rem;
|
|
9074
|
+
|
|
9075
|
+
:after {
|
|
9076
|
+
color: ${({ $isDisabled }) => ($isDisabled ? "rgba(255, 255, 255, 0.28)" : "rgba(255, 255, 255, 1)")};
|
|
9077
|
+
transition: color ${uilibGl.transition.hover};
|
|
9078
|
+
}
|
|
9078
9079
|
}
|
|
9079
9080
|
`;
|
|
9080
9081
|
const SmallPreviewCounter = styled(uilibGl.Flex) `
|
|
@@ -9145,7 +9146,7 @@ const SmallPreviewContainer$1 = styled.div `
|
|
|
9145
9146
|
|
|
9146
9147
|
${SmallPreviewControl}, ${SmallPreviewCounter} {
|
|
9147
9148
|
opacity: 0;
|
|
9148
|
-
transition: opacity ${uilibGl.transition.hover};
|
|
9149
|
+
transition: opacity ${uilibGl.transition.hover}, background-color ${uilibGl.transition.hover};
|
|
9149
9150
|
}
|
|
9150
9151
|
|
|
9151
9152
|
&:hover {
|
|
@@ -9729,30 +9730,53 @@ const SmallPreviewContainer = styled.div `
|
|
|
9729
9730
|
height: 100%;
|
|
9730
9731
|
`;
|
|
9731
9732
|
|
|
9733
|
+
const useElementSlideshow = ({ type, elementConfig, }) => {
|
|
9734
|
+
const { attributes, dataSources } = useWidgetContext(type);
|
|
9735
|
+
const { options, attributeName } = elementConfig || {};
|
|
9736
|
+
const { relatedDataSource, controls } = options || {};
|
|
9737
|
+
const attribute = React.useMemo(() => attributes?.find(item => item.attributeName === attributeName), [attributes, attributeName]);
|
|
9738
|
+
const isAttachmentAttribute = React.useMemo(() => {
|
|
9739
|
+
if (attribute?.subType === api.StringSubType.Attachments)
|
|
9740
|
+
return true;
|
|
9741
|
+
const mapping = controls?.[0];
|
|
9742
|
+
return !!mapping?.attributeLink;
|
|
9743
|
+
}, [attribute, controls]);
|
|
9744
|
+
const { items } = useAttachmentItems({ type, elementConfig });
|
|
9745
|
+
const imageItems = React.useMemo(() => items.filter(item => IMAGE_FILE_TYPES.includes(getFileType(item.mimeType, item.name))), [items]);
|
|
9746
|
+
const attachmentImages = useAttachmentPreviewImages({
|
|
9747
|
+
items: imageItems,
|
|
9748
|
+
active: isAttachmentAttribute,
|
|
9749
|
+
});
|
|
9750
|
+
const stringImages = React.useMemo(() => {
|
|
9751
|
+
if (isAttachmentAttribute)
|
|
9752
|
+
return [];
|
|
9753
|
+
if (relatedDataSource) {
|
|
9754
|
+
const dataSource = dataSources?.find(({ name }) => name === relatedDataSource);
|
|
9755
|
+
const urls = dataSource?.features
|
|
9756
|
+
?.map(feature => feature.properties[attributeName])
|
|
9757
|
+
.filter(Boolean) ?? [];
|
|
9758
|
+
return urls.map(src => ({ src, fileName: src }));
|
|
9759
|
+
}
|
|
9760
|
+
if (!elementConfig)
|
|
9761
|
+
return [];
|
|
9762
|
+
const urls = getSlideshowImages({ element: elementConfig, attribute });
|
|
9763
|
+
return urls.map(src => ({ src, fileName: src }));
|
|
9764
|
+
}, [isAttachmentAttribute, relatedDataSource, dataSources, attributeName, elementConfig, attribute]);
|
|
9765
|
+
const images = isAttachmentAttribute ? attachmentImages : stringImages;
|
|
9766
|
+
return { images };
|
|
9767
|
+
};
|
|
9768
|
+
|
|
9732
9769
|
const ElementSlideshow = ({ elementConfig, type, renderElement }) => {
|
|
9733
|
-
const { expandedContainers
|
|
9770
|
+
const { expandedContainers } = useWidgetContext(type);
|
|
9734
9771
|
const [currentIndex, setCurrentIndex] = React.useState(0);
|
|
9735
|
-
const [
|
|
9736
|
-
const { id, options
|
|
9737
|
-
const { expandable, expanded
|
|
9772
|
+
const [previewIndex, setPreviewIndex] = React.useState(null);
|
|
9773
|
+
const { id, options } = elementConfig || {};
|
|
9774
|
+
const { expandable, expanded } = options || {};
|
|
9738
9775
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
9739
|
-
const images =
|
|
9740
|
-
|
|
9741
|
-
|
|
9742
|
-
|
|
9743
|
-
: getSlideshowImages({
|
|
9744
|
-
element: elementConfig,
|
|
9745
|
-
attribute: attributes?.find(item => item.attributeName === attributeName),
|
|
9746
|
-
});
|
|
9747
|
-
return (array?.map(image => ({
|
|
9748
|
-
src: image,
|
|
9749
|
-
fileName: image,
|
|
9750
|
-
})) || []);
|
|
9751
|
-
}, [attributeName, attributes, dataSources, elementConfig, relatedDataSource]);
|
|
9752
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxRuntime.jsxs(SmallPreviewContainer, { children: [jsxRuntime.jsx(SmallPreview, { images: images, currentIndex: currentIndex, setCurrentIndex: setCurrentIndex, onClick: toggleGallery }), isOpenGallery && (jsxRuntime.jsx(uilibGl.Preview, { images: images,
|
|
9753
|
-
// currentIndex={currentIndex}
|
|
9754
|
-
// totalCount={images.length}
|
|
9755
|
-
isOpen: isOpenGallery, onClose: toggleGallery }))] }))] }));
|
|
9776
|
+
const { images } = useElementSlideshow({ type, elementConfig });
|
|
9777
|
+
const handleOpenGallery = React.useCallback(() => setPreviewIndex(currentIndex), [currentIndex]);
|
|
9778
|
+
const handleCloseGallery = React.useCallback(() => setPreviewIndex(null), []);
|
|
9779
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsxRuntime.jsxs(SmallPreviewContainer, { children: [jsxRuntime.jsx(SmallPreview, { images: images, currentIndex: currentIndex, setCurrentIndex: setCurrentIndex, onClick: handleOpenGallery }), previewIndex !== null && (jsxRuntime.jsx(uilibGl.Preview, { images: images, initialIndex: previewIndex, isOpen: previewIndex !== null, onClose: handleCloseGallery }, previewIndex))] }))] }));
|
|
9756
9780
|
};
|
|
9757
9781
|
|
|
9758
9782
|
const ElementSvg = React.memo(({ type, elementConfig, ...rest }) => {
|
|
@@ -9788,14 +9812,11 @@ const ElementTooltip = React.memo(({ type, elementConfig }) => {
|
|
|
9788
9812
|
});
|
|
9789
9813
|
|
|
9790
9814
|
const SlideshowHeaderWrapper = styled.div `
|
|
9791
|
-
padding: ${({ withPadding }) => (withPadding ? "0.5rem 0.5rem 0" : 0)};
|
|
9792
|
-
|
|
9793
9815
|
${Header} {
|
|
9794
9816
|
align-items: flex-start;
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
margin: -1rem -1rem 0 -1rem;
|
|
9817
|
+
height: ${({ height, big }) => height ? `${height}px` : (big ? "15.5rem" : "auto")};
|
|
9818
|
+
width: ${({ withPadding }) => (withPadding ? "100%" : "calc(100% + 1rem)")};
|
|
9819
|
+
margin: ${({ withPadding }) => (withPadding ? "-0.5rem -0.5rem 0.5rem -0.5rem" : "-1rem -1rem 1rem -1rem")};
|
|
9799
9820
|
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
9800
9821
|
|
|
9801
9822
|
${SmallPreviewCounter} {
|
|
@@ -9828,6 +9849,8 @@ const SlideshowHeaderWrapper = styled.div `
|
|
|
9828
9849
|
}
|
|
9829
9850
|
}
|
|
9830
9851
|
}
|
|
9852
|
+
|
|
9853
|
+
${({ fontColor }) => !!fontColor && HeaderFontColorMixin};
|
|
9831
9854
|
`;
|
|
9832
9855
|
const ImageContainerBg = styled.div `
|
|
9833
9856
|
position: absolute;
|
|
@@ -9859,14 +9882,13 @@ const HeaderSlideshow = styled.div `
|
|
|
9859
9882
|
}
|
|
9860
9883
|
`;
|
|
9861
9884
|
|
|
9862
|
-
const FeatureCardSlideshowHeader = (
|
|
9863
|
-
const { layerInfo } = useWidgetContext(exports.WidgetType.FeatureCard);
|
|
9885
|
+
const FeatureCardSlideshowHeader = () => {
|
|
9864
9886
|
const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
|
|
9865
9887
|
const { header } = config || {};
|
|
9866
9888
|
const { options } = header || {};
|
|
9867
|
-
const { height, withPadding } = options || {};
|
|
9889
|
+
const { height, fontColor, withPadding, themeName, column } = options || {};
|
|
9868
9890
|
const renderElement = useHeaderRender(header);
|
|
9869
|
-
return (jsxRuntime.jsx(SlideshowHeaderWrapper, {
|
|
9891
|
+
return (jsxRuntime.jsx(SlideshowHeaderWrapper, { fontColor: fontColor, withPadding: withPadding, height: height, big: true, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: getThemeByName(themeName), children: jsxRuntime.jsxs(Header, { "$isRow": !column, children: [jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { column: column, children: [jsxRuntime.jsx(HeaderLayerIcon, {}), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
|
|
9870
9892
|
id: "title",
|
|
9871
9893
|
wrap: false,
|
|
9872
9894
|
}), description: renderElement({
|
|
@@ -10202,13 +10224,6 @@ const ElementModal = React.memo(({ type = exports.WidgetType.Dashboard, elementC
|
|
|
10202
10224
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ModalIcon, { kind: icon || "new_window", onClick: handleOpen, children: title }), jsxRuntime.jsxs(uilibGl.Dialog, { maxWidth: maxWidth, minWidth: minWidth, minHeight: minHeight, isOpen: isOpen, modal: true, onCloseRequest: handleClose, style: { paddingBottom: "2rem" }, children: [jsxRuntime.jsx(uilibGl.DialogTitle, { children: jsxRuntime.jsxs(uilibGl.Flex, { justifyContent: "space-between", alignItems: "center", children: [!!title && jsxRuntime.jsx("span", { children: title }), jsxRuntime.jsx(uilibGl.IconButton, { kind: "close", onClick: handleClose })] }) }), jsxRuntime.jsx(uilibGl.DialogContent, { children: isLoading ? (jsxRuntime.jsx(DashboardLoading, {})) : (jsxRuntime.jsx(Container, { isColumn: true, noBorders: true, children: jsxRuntime.jsx(ContainerChildren, { type: type, items: modalContent, isMain: true, renderElement: renderElement }) })) })] })] }));
|
|
10203
10225
|
});
|
|
10204
10226
|
|
|
10205
|
-
const ElementLayerName = React.memo(({ type }) => {
|
|
10206
|
-
const { layerInfo } = useWidgetContext(type);
|
|
10207
|
-
if (!layerInfo?.name)
|
|
10208
|
-
return null;
|
|
10209
|
-
return jsxRuntime.jsx("span", { children: layerInfo.name });
|
|
10210
|
-
});
|
|
10211
|
-
|
|
10212
10227
|
const elementComponents = {
|
|
10213
10228
|
control: ElementControl,
|
|
10214
10229
|
image: ElementImage,
|
|
@@ -10225,7 +10240,6 @@ const elementComponents = {
|
|
|
10225
10240
|
markdown: ElementMarkdown,
|
|
10226
10241
|
uploader: ElementUploader,
|
|
10227
10242
|
modal: ElementModal,
|
|
10228
|
-
layerName: ElementLayerName,
|
|
10229
10243
|
};
|
|
10230
10244
|
|
|
10231
10245
|
const getElementValue = ({ getDefaultContainer, ...props }) => {
|
|
@@ -10259,6 +10273,9 @@ const getElementValue = ({ getDefaultContainer, ...props }) => {
|
|
|
10259
10273
|
null
|
|
10260
10274
|
: null;
|
|
10261
10275
|
}
|
|
10276
|
+
if (type === "layerName") {
|
|
10277
|
+
return layerInfo?.name || "";
|
|
10278
|
+
}
|
|
10262
10279
|
const ElementComponent = type ? elementComponents[type] : null;
|
|
10263
10280
|
return ElementComponent ? (jsxRuntime.jsx(ElementComponent, { ...props })) : (getDefaultContainer?.());
|
|
10264
10281
|
};
|
|
@@ -10315,8 +10332,6 @@ const getFeatureCardHeader = (templateName) => {
|
|
|
10315
10332
|
return FeatureCardSlideshowHeader;
|
|
10316
10333
|
case exports.HeaderTemplate.Gradient:
|
|
10317
10334
|
return FeatureCardGradientHeader;
|
|
10318
|
-
case exports.HeaderTemplate.Icon:
|
|
10319
|
-
return FeatureCardIconHeader;
|
|
10320
10335
|
case exports.HeaderTemplate.Default:
|
|
10321
10336
|
default:
|
|
10322
10337
|
return FeatureCardDefaultHeader;
|
|
@@ -11286,6 +11301,10 @@ const getTemplateNameFromAttribute = (attribute) => {
|
|
|
11286
11301
|
}
|
|
11287
11302
|
};
|
|
11288
11303
|
|
|
11304
|
+
const getThemeByName = (themeName) => {
|
|
11305
|
+
return themeName === exports.ThemeName.Dark ? uilibGl.darkTheme : uilibGl.defaultTheme;
|
|
11306
|
+
};
|
|
11307
|
+
|
|
11289
11308
|
const getDisplayTemplateNameFromAttribute = (attribute) => {
|
|
11290
11309
|
if (attribute?.subType === api.StringSubType.Attachments) {
|
|
11291
11310
|
return exports.ContainerTemplate.Attachment;
|
|
@@ -11458,6 +11477,30 @@ const useContainerAttributes = ({ elementConfig, type, renderElement }) => {
|
|
|
11458
11477
|
return { getRenderContainerItem, attributesToRender };
|
|
11459
11478
|
};
|
|
11460
11479
|
|
|
11480
|
+
const useEditGroupAttributes = ({ elementConfig, type }) => {
|
|
11481
|
+
const { options } = elementConfig || {};
|
|
11482
|
+
const { controls, useProjectHiddenAttributes } = options || {};
|
|
11483
|
+
const { attributes, layerInfo } = useWidgetContext(type);
|
|
11484
|
+
const [hiddenAttributes] = useLayerHiddenAttributes(layerInfo?.name ?? "");
|
|
11485
|
+
const filteredAttributes = React.useMemo(() => {
|
|
11486
|
+
const { idAttribute } = layerInfo?.configuration?.attributesConfiguration || {};
|
|
11487
|
+
const withoutIdAttribute = idAttribute
|
|
11488
|
+
? attributes.filter(({ attributeName }) => attributeName !== idAttribute)
|
|
11489
|
+
: attributes;
|
|
11490
|
+
if (!useProjectHiddenAttributes)
|
|
11491
|
+
return withoutIdAttribute;
|
|
11492
|
+
return withoutIdAttribute.filter(({ attributeName }) => !hiddenAttributes.includes(attributeName));
|
|
11493
|
+
}, [attributes, layerInfo?.configuration, hiddenAttributes, useProjectHiddenAttributes]);
|
|
11494
|
+
const filteredControls = React.useMemo(() => {
|
|
11495
|
+
if (!controls)
|
|
11496
|
+
return controls;
|
|
11497
|
+
if (!useProjectHiddenAttributes)
|
|
11498
|
+
return controls;
|
|
11499
|
+
return controls.filter(({ targetAttributeName }) => targetAttributeName ? !hiddenAttributes.includes(targetAttributeName) : true);
|
|
11500
|
+
}, [controls, hiddenAttributes, useProjectHiddenAttributes]);
|
|
11501
|
+
return { filteredAttributes, filteredControls };
|
|
11502
|
+
};
|
|
11503
|
+
|
|
11461
11504
|
const useFetchWithAuth = (url, transform, cleanup) => {
|
|
11462
11505
|
const [data, setData] = React.useState(null);
|
|
11463
11506
|
const loadingRef = React.useRef(false);
|
|
@@ -12760,13 +12803,15 @@ const FeatureCardTitle = ({ title, description }) => {
|
|
|
12760
12803
|
const titleAttribute = configuration?.attributesConfiguration?.titleAttribute;
|
|
12761
12804
|
const resultDescription = description || configuration?.alias || configuration?.name || "";
|
|
12762
12805
|
const resultTitle = React.useMemo(() => {
|
|
12763
|
-
const
|
|
12806
|
+
const foundAttribute = titleAttribute && attributes?.length
|
|
12764
12807
|
? attributes.find(item => item.attributeName === titleAttribute)
|
|
12765
12808
|
: null;
|
|
12809
|
+
const isAttachmentTitle = foundAttribute?.subType === api.StringSubType.Attachments;
|
|
12810
|
+
const layerDefinitionAttribute = isAttachmentTitle ? null : foundAttribute;
|
|
12766
12811
|
const layerDefinitionTitle = titleAttribute && layerDefinitionAttribute?.value
|
|
12767
12812
|
? layerDefinitionAttribute.value
|
|
12768
12813
|
: null;
|
|
12769
|
-
const sourceTitleAttribute =
|
|
12814
|
+
const sourceTitleAttribute = isAttachmentTitle ? null : foundAttribute;
|
|
12770
12815
|
const sourceTitle = titleAttribute && sourceTitleAttribute?.value ? sourceTitleAttribute.value : null;
|
|
12771
12816
|
return (title ||
|
|
12772
12817
|
(!!sourceTitle &&
|
|
@@ -12780,7 +12825,7 @@ const FeatureCardTitle = ({ title, description }) => {
|
|
|
12780
12825
|
})) ||
|
|
12781
12826
|
feature?.id);
|
|
12782
12827
|
}, [attributes, feature?.id, titleAttribute, title, t]);
|
|
12783
|
-
return (jsxRuntime.jsxs(HeaderTitleContainer, { children: [jsxRuntime.jsx(FeatureTitleContainer, { children: jsxRuntime.jsx(uilibGl.FlexSpan, { children: resultTitle }) }), jsxRuntime.jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
|
|
12828
|
+
return (jsxRuntime.jsxs(HeaderTitleContainer, { children: [jsxRuntime.jsx(FeatureTitleContainer, { children: jsxRuntime.jsx(uilibGl.FlexSpan, { children: toRenderableValue(resultTitle) }) }), jsxRuntime.jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
|
|
12784
12829
|
};
|
|
12785
12830
|
|
|
12786
12831
|
const HiddenFilters = styled(uilibGl.Flex) `
|
|
@@ -13464,7 +13509,6 @@ exports.FeatureCardContext = FeatureCardContext;
|
|
|
13464
13509
|
exports.FeatureCardDefaultHeader = FeatureCardDefaultHeader;
|
|
13465
13510
|
exports.FeatureCardGradientHeader = FeatureCardGradientHeader;
|
|
13466
13511
|
exports.FeatureCardHeader = FeatureCardHeader;
|
|
13467
|
-
exports.FeatureCardIconHeader = FeatureCardIconHeader;
|
|
13468
13512
|
exports.FeatureCardProvider = FeatureCardProvider;
|
|
13469
13513
|
exports.FeatureCardSlideshowHeader = FeatureCardSlideshowHeader;
|
|
13470
13514
|
exports.FeatureCardTitle = FeatureCardTitle;
|
|
@@ -13476,6 +13520,7 @@ exports.GlobalContext = GlobalContext;
|
|
|
13476
13520
|
exports.GlobalProvider = GlobalProvider;
|
|
13477
13521
|
exports.Header = Header;
|
|
13478
13522
|
exports.HeaderContainer = HeaderContainer;
|
|
13523
|
+
exports.HeaderFontColorMixin = HeaderFontColorMixin;
|
|
13479
13524
|
exports.HeaderFrontView = HeaderFrontView;
|
|
13480
13525
|
exports.HeaderTitleContainer = HeaderTitleContainer;
|
|
13481
13526
|
exports.HiddenTitleItems = HiddenTitleItems;
|
|
@@ -13605,6 +13650,7 @@ exports.getSelectedFilterValue = getSelectedFilterValue;
|
|
|
13605
13650
|
exports.getSlideshowImages = getSlideshowImages;
|
|
13606
13651
|
exports.getSvgUrl = getSvgUrl;
|
|
13607
13652
|
exports.getTemplateNameFromAttribute = getTemplateNameFromAttribute;
|
|
13653
|
+
exports.getThemeByName = getThemeByName;
|
|
13608
13654
|
exports.getTotalFromAttributes = getTotalFromAttributes;
|
|
13609
13655
|
exports.getTotalFromRelatedFeatures = getTotalFromRelatedFeatures;
|
|
13610
13656
|
exports.hexToRgba = hexToRgba;
|
|
@@ -13630,6 +13676,7 @@ exports.rgbToHex = rgbToHex;
|
|
|
13630
13676
|
exports.roundTotalSum = roundTotalSum;
|
|
13631
13677
|
exports.sliceShownOtherItems = sliceShownOtherItems;
|
|
13632
13678
|
exports.timeOptions = timeOptions;
|
|
13679
|
+
exports.toRenderableValue = toRenderableValue;
|
|
13633
13680
|
exports.tooltipNameFromAttributes = tooltipNameFromAttributes;
|
|
13634
13681
|
exports.tooltipValueFromAttributes = tooltipValueFromAttributes;
|
|
13635
13682
|
exports.tooltipValueFromRelatedFeatures = tooltipValueFromRelatedFeatures;
|
|
@@ -13637,6 +13684,8 @@ exports.transparentizeColor = transparentizeColor;
|
|
|
13637
13684
|
exports.treeNodesToProjectItems = treeNodesToProjectItems;
|
|
13638
13685
|
exports.updateDataSource = updateDataSource;
|
|
13639
13686
|
exports.useAppHeight = useAppHeight;
|
|
13687
|
+
exports.useAttachmentItems = useAttachmentItems;
|
|
13688
|
+
exports.useAttachmentPreviewImages = useAttachmentPreviewImages;
|
|
13640
13689
|
exports.useAutoCompleteControl = useAutoCompleteControl;
|
|
13641
13690
|
exports.useChartChange = useChartChange;
|
|
13642
13691
|
exports.useChartData = useChartData;
|
|
@@ -13647,6 +13696,7 @@ exports.useDashboardHeader = useDashboardHeader;
|
|
|
13647
13696
|
exports.useDataSources = useDataSources;
|
|
13648
13697
|
exports.useDebouncedCallback = useDebouncedCallback;
|
|
13649
13698
|
exports.useDiffPage = useDiffPage;
|
|
13699
|
+
exports.useEditGroupAttributes = useEditGroupAttributes;
|
|
13650
13700
|
exports.useExpandableContainers = useExpandableContainers;
|
|
13651
13701
|
exports.useExportPdf = useExportPdf;
|
|
13652
13702
|
exports.useFetchImageWithAuth = useFetchImageWithAuth;
|