@evergis/react 4.0.54 → 4.0.56
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/AttachmentContainer/usePreviewImages.d.ts +8 -0
- package/dist/components/Dashboard/containers/styled.d.ts +6 -1
- package/dist/components/Dashboard/elements/registry.d.ts +0 -1
- package/dist/components/Dashboard/headers/FeatureCardDefaultHeader/styled.d.ts +1 -1
- package/dist/components/Dashboard/headers/FeatureCardGradientHeader/styled.d.ts +4 -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 +0 -1
- package/dist/components/Dashboard/hooks/useEditControl.d.ts +1 -1
- package/dist/components/Dashboard/types.d.ts +3 -3
- package/dist/components/Dashboard/utils/getThemeByName.d.ts +2 -0
- package/dist/components/Dashboard/utils/index.d.ts +1 -0
- package/dist/index.js +178 -137
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +179 -138
- package/dist/react.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/components/Dashboard/elements/ElementLayerName/index.d.ts +0 -3
- package/dist/components/Dashboard/headers/FeatureCardIconHeader/index.d.ts +0 -3
- package/dist/components/Dashboard/headers/FeatureCardIconHeader/styled.d.ts +0 -7
- /package/dist/components/Dashboard/headers/{FeatureCardDefaultHeader/components → components}/HeaderTitle.d.ts +0 -0
package/dist/react.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
-
import { IconButton, Flex, transition, Chip, Icon, Description, FlexSpan, IconToggle, Popup, Menu, DraggableTree, shadows, Divider, LegendToggler, Tooltip as Tooltip$1, DropdownField, MultiSelectContainer, IconButtonButton, FlatButton, DraggableTreeContainer, Dialog, DialogTitle, ThemeProvider, darkTheme, DialogContent, CircularProgress, Switch, AutoComplete, Input, Slider, Dropdown, Checkbox, DatePicker, getLocale, IconToggleButton, LinearProgress, ActionsGroup, DialogActions, RaisedButton, Preview, H2,
|
|
2
|
+
import { IconButton, Flex, transition, Chip, Icon, Description, FlexSpan, IconToggle, Popup, Menu, DraggableTree, shadows, Divider, LegendToggler, Tooltip as Tooltip$1, DropdownField, MultiSelectContainer, IconButtonButton, FlatButton, DraggableTreeContainer, Dialog, DialogTitle, ThemeProvider, darkTheme, DialogContent, CircularProgress, Switch, AutoComplete, Input, Slider, Dropdown, Checkbox, DatePicker, getLocale, IconToggleButton, LinearProgress, ActionsGroup, DialogActions, RaisedButton, Preview, H2, Blank, Popover, UploaderItemArea, UploaderTitleWrapper, Uploader, NumberRangeSlider, useAsyncAutocomplete, RangeNumberInput, defaultTheme, dateFormat } from '@evergis/uilib-gl';
|
|
3
3
|
import { useState, useMemo, useCallback, createContext, memo, useRef, useEffect, useContext, Fragment } from 'react';
|
|
4
4
|
import styled, { createGlobalStyle, css, useTheme } from 'styled-components';
|
|
5
5
|
import { lineChartClassNames, BarChart as BarChart$1, barChartClassNames, LineChart, PieChart } from '@evergis/charts';
|
|
@@ -3404,7 +3404,6 @@ var HeaderTemplate;
|
|
|
3404
3404
|
HeaderTemplate["Default"] = "Default";
|
|
3405
3405
|
HeaderTemplate["Slideshow"] = "Slideshow";
|
|
3406
3406
|
HeaderTemplate["Gradient"] = "Gradient";
|
|
3407
|
-
HeaderTemplate["Icon"] = "Icon";
|
|
3408
3407
|
})(HeaderTemplate || (HeaderTemplate = {}));
|
|
3409
3408
|
var WidgetType;
|
|
3410
3409
|
(function (WidgetType) {
|
|
@@ -6032,8 +6031,7 @@ const SvgContainer$1 = styled.div `
|
|
|
6032
6031
|
}
|
|
6033
6032
|
}
|
|
6034
6033
|
`;
|
|
6035
|
-
const TwoColumnContainerWrapper = styled(
|
|
6036
|
-
width: 100%;
|
|
6034
|
+
const TwoColumnContainerWrapper = styled(Container) `
|
|
6037
6035
|
flex-direction: row;
|
|
6038
6036
|
flex-wrap: nowrap;
|
|
6039
6037
|
align-items: center;
|
|
@@ -6107,7 +6105,6 @@ const useRenderContainer = ({ elementConfig, type, renderElement, renderBody, })
|
|
|
6107
6105
|
if (OverrideContainer) {
|
|
6108
6106
|
const itemConfig = {
|
|
6109
6107
|
...elementConfig,
|
|
6110
|
-
style: { ...BASE_CONTAINER_STYLE, ...elementConfig.style },
|
|
6111
6108
|
children: (elementConfig?.children ?? []).map(child => ({
|
|
6112
6109
|
...child,
|
|
6113
6110
|
attributeName: attribute,
|
|
@@ -6136,7 +6133,7 @@ const OneColumnContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
6136
6133
|
});
|
|
6137
6134
|
|
|
6138
6135
|
const TwoColumnContainer = memo(({ elementConfig, type, renderElement }) => {
|
|
6139
|
-
const renderBody = useCallback(({ id, value, style, hasIcon, hasUnits, render }
|
|
6136
|
+
const renderBody = useCallback(({ id, value, style, hasIcon, hasUnits, render }) => (jsxs(TwoColumnContainerWrapper, { id: id, style: style, children: [jsxs(ContainerAlias, { children: [hasIcon && (jsx(ContainerAliasIcon, { children: render({ id: "icon" }) })), render({ id: "alias" }), render({ id: "tooltip" }), render({ id: "modal" })] }), jsxs(ContainerValue, { big: true, children: [value, hasUnits && (jsx(ContainerUnits, { children: render({ id: "units" }) }))] })] })), []);
|
|
6140
6137
|
const { renderContainer, attributesToRender } = useRenderContainer({
|
|
6141
6138
|
type,
|
|
6142
6139
|
elementConfig,
|
|
@@ -8040,10 +8037,31 @@ const useGlobalContext = () => {
|
|
|
8040
8037
|
}), [language, translate, api, ewktGeometry, themeName]);
|
|
8041
8038
|
};
|
|
8042
8039
|
|
|
8040
|
+
const ImagePreviewError = styled.div `
|
|
8041
|
+
display: flex;
|
|
8042
|
+
align-items: center;
|
|
8043
|
+
justify-content: center;
|
|
8044
|
+
width: 100%;
|
|
8045
|
+
height: 100%;
|
|
8046
|
+
background-color: ${({ theme }) => theme.palette.elementDark};
|
|
8047
|
+
border-radius: ${({ theme: { borderRadius: themeBorder }, borderRadius }) => borderRadius || themeBorder.smallest};
|
|
8048
|
+
|
|
8049
|
+
${Icon} {
|
|
8050
|
+
width: 37.5%;
|
|
8051
|
+
height: 37.5%;
|
|
8052
|
+
}
|
|
8053
|
+
|
|
8054
|
+
${Icon}:after {
|
|
8055
|
+
font-size: 1.5rem;
|
|
8056
|
+
color: ${({ theme }) => theme.palette.textSecondary};
|
|
8057
|
+
}
|
|
8058
|
+
`;
|
|
8043
8059
|
const FileImagePreview = ({ link, isExternal, size, borderRadius, }) => {
|
|
8044
8060
|
const { api } = useGlobalContext();
|
|
8045
8061
|
const [imageSrc, setImageSrc] = useState();
|
|
8062
|
+
const [hasError, setHasError] = useState(false);
|
|
8046
8063
|
useEffect(() => {
|
|
8064
|
+
setHasError(false);
|
|
8047
8065
|
if (isExternal) {
|
|
8048
8066
|
setImageSrc(link);
|
|
8049
8067
|
return;
|
|
@@ -8061,14 +8079,18 @@ const FileImagePreview = ({ link, isExternal, size, borderRadius, }) => {
|
|
|
8061
8079
|
objectUrl = URL.createObjectURL(blob);
|
|
8062
8080
|
setImageSrc(objectUrl);
|
|
8063
8081
|
})
|
|
8064
|
-
.catch(() => {
|
|
8082
|
+
.catch(() => {
|
|
8083
|
+
if (cancelled)
|
|
8084
|
+
return;
|
|
8085
|
+
setHasError(true);
|
|
8086
|
+
});
|
|
8065
8087
|
return () => {
|
|
8066
8088
|
cancelled = true;
|
|
8067
8089
|
if (objectUrl)
|
|
8068
8090
|
URL.revokeObjectURL(objectUrl);
|
|
8069
8091
|
};
|
|
8070
8092
|
}, [api, link, isExternal]);
|
|
8071
|
-
return (jsxs(ImagePreviewContainer, { size: size, children: [!imageSrc && (jsx(ImagePreviewLoaderContainer, { children: jsx(LinearProgress, {}) })), imageSrc && (jsx(GridImagePreview, { borderRadius: borderRadius, size: size, src: imageSrc, alt: "" }))] }));
|
|
8093
|
+
return (jsxs(ImagePreviewContainer, { size: size, children: [hasError && (jsx(ImagePreviewError, { borderRadius: borderRadius, children: jsx(Icon, { kind: "alert" }) })), !hasError && !imageSrc && (jsx(ImagePreviewLoaderContainer, { children: jsx(LinearProgress, {}) })), !hasError && imageSrc && (jsx(GridImagePreview, { borderRadius: borderRadius, size: size, src: imageSrc, alt: "", onError: () => setHasError(true) }))] }));
|
|
8072
8094
|
};
|
|
8073
8095
|
|
|
8074
8096
|
const getFileType = (mimeType = "", name = "") => {
|
|
@@ -8221,6 +8243,60 @@ const useAttachmentContainer = ({ type, elementConfig, valueOverride, }) => {
|
|
|
8221
8243
|
};
|
|
8222
8244
|
};
|
|
8223
8245
|
|
|
8246
|
+
const usePreviewImages = ({ items, active }) => {
|
|
8247
|
+
const { api } = useGlobalContext();
|
|
8248
|
+
const [blobUrls, setBlobUrls] = useState({});
|
|
8249
|
+
const [failedLinks, setFailedLinks] = useState({});
|
|
8250
|
+
const inFlightRef = useRef(new Set());
|
|
8251
|
+
const blobUrlsRef = useRef(blobUrls);
|
|
8252
|
+
blobUrlsRef.current = blobUrls;
|
|
8253
|
+
useEffect(() => {
|
|
8254
|
+
if (!active || !api?.catalog?.getFile)
|
|
8255
|
+
return;
|
|
8256
|
+
items.forEach(item => {
|
|
8257
|
+
const fileType = getFileType(item.mimeType, item.name);
|
|
8258
|
+
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8259
|
+
if (!isImage || item.isExternal)
|
|
8260
|
+
return;
|
|
8261
|
+
if (blobUrlsRef.current[item.link] || inFlightRef.current.has(item.link))
|
|
8262
|
+
return;
|
|
8263
|
+
inFlightRef.current.add(item.link);
|
|
8264
|
+
api.catalog
|
|
8265
|
+
.getFile(item.link)
|
|
8266
|
+
.then(blob => {
|
|
8267
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
8268
|
+
setBlobUrls(prev => ({ ...prev, [item.link]: objectUrl }));
|
|
8269
|
+
})
|
|
8270
|
+
.catch(() => {
|
|
8271
|
+
setFailedLinks(prev => (prev[item.link] ? prev : { ...prev, [item.link]: true }));
|
|
8272
|
+
})
|
|
8273
|
+
.finally(() => {
|
|
8274
|
+
inFlightRef.current.delete(item.link);
|
|
8275
|
+
});
|
|
8276
|
+
});
|
|
8277
|
+
}, [active, api, items]);
|
|
8278
|
+
useEffect(() => () => {
|
|
8279
|
+
Object.values(blobUrlsRef.current).forEach(URL.revokeObjectURL);
|
|
8280
|
+
}, []);
|
|
8281
|
+
return useMemo(() => items.map(item => {
|
|
8282
|
+
const fileType = getFileType(item.mimeType, item.name);
|
|
8283
|
+
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8284
|
+
const fileName = item.name;
|
|
8285
|
+
if (!isImage)
|
|
8286
|
+
return { src: getFileTypeIcon(fileType), fileName };
|
|
8287
|
+
if (item.isExternal)
|
|
8288
|
+
return { src: item.link, fileName };
|
|
8289
|
+
const hasError = !!failedLinks[item.link];
|
|
8290
|
+
const blobUrl = blobUrls[item.link];
|
|
8291
|
+
return {
|
|
8292
|
+
src: blobUrl ?? "",
|
|
8293
|
+
fileName,
|
|
8294
|
+
hasError,
|
|
8295
|
+
isLoading: !hasError && !blobUrl,
|
|
8296
|
+
};
|
|
8297
|
+
}), [items, blobUrls, failedLinks]);
|
|
8298
|
+
};
|
|
8299
|
+
|
|
8224
8300
|
const EXTENSION_TO_MIME = {
|
|
8225
8301
|
apng: "image/apng",
|
|
8226
8302
|
avif: "image/avif",
|
|
@@ -8267,20 +8343,6 @@ const getFileNameFromUrl = (url) => {
|
|
|
8267
8343
|
}
|
|
8268
8344
|
};
|
|
8269
8345
|
|
|
8270
|
-
const getResourceUrl = (url) => {
|
|
8271
|
-
return url ? (url.startsWith("http") ? url : `/sp/resources/file/${url}`) : "";
|
|
8272
|
-
};
|
|
8273
|
-
|
|
8274
|
-
const buildPreviewImage$1 = (item) => {
|
|
8275
|
-
const fileType = getFileType(item.mimeType, item.name);
|
|
8276
|
-
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8277
|
-
const src = isImage
|
|
8278
|
-
? item.isExternal
|
|
8279
|
-
? item.link
|
|
8280
|
-
: getResourceUrl(item.link)
|
|
8281
|
-
: getFileTypeIcon(fileType);
|
|
8282
|
-
return { src, fileName: item.name };
|
|
8283
|
-
};
|
|
8284
8346
|
const EditAttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
8285
8347
|
const { api } = useGlobalContext();
|
|
8286
8348
|
const { selectAttachmentsFromCatalog } = useWidgetContext(type);
|
|
@@ -8291,7 +8353,7 @@ const EditAttachmentContainer = memo(({ type, elementConfig, renderElement }) =>
|
|
|
8291
8353
|
const [previewIndex, setPreviewIndex] = useState(null);
|
|
8292
8354
|
const [uploading, setUploading] = useState(false);
|
|
8293
8355
|
const [isLinkDialogOpen, , setLinkDialogOpen] = useToggle(false);
|
|
8294
|
-
const previewImages =
|
|
8356
|
+
const previewImages = usePreviewImages({ items, active: previewIndex !== null });
|
|
8295
8357
|
const orderedPreviewImages = useMemo(() => {
|
|
8296
8358
|
if (previewIndex === null)
|
|
8297
8359
|
return previewImages;
|
|
@@ -8300,7 +8362,7 @@ const EditAttachmentContainer = memo(({ type, elementConfig, renderElement }) =>
|
|
|
8300
8362
|
...previewImages.filter((_, idx) => idx !== previewIndex),
|
|
8301
8363
|
];
|
|
8302
8364
|
}, [previewImages, previewIndex]);
|
|
8303
|
-
const persist = useCallback((next) => onChange(
|
|
8365
|
+
const persist = useCallback((next) => onChange(next), [onChange]);
|
|
8304
8366
|
const handlePreview = useCallback((link) => {
|
|
8305
8367
|
const idx = items.findIndex(item => item.link === link);
|
|
8306
8368
|
if (idx >= 0)
|
|
@@ -8360,23 +8422,14 @@ const EditAttachmentContainer = memo(({ type, elementConfig, renderElement }) =>
|
|
|
8360
8422
|
return (jsxs(AttachmentsContainer, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: [jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsx(AttachmentsGrid, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) : (jsx(AttachmentsList, { items: visibleItems, isEdit: true, onPreview: handlePreview, onDelete: handleDelete })) }), hasMore && !showMore && (jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), jsx(AddButton, { accept: fileExtensions, onSelectFiles: uploading ? () => undefined : handleUpload, onSelectFromCatalog: handleSelectFromCatalog, onSelectFromLink: handleOpenLinkDialog }), jsx(AttachmentLinkDialog, { isOpen: isLinkDialogOpen, onClose: handleCloseLinkDialog, onSubmit: handleAddByLink }), previewIndex !== null && (jsx(Preview, { images: orderedPreviewImages, isOpen: previewIndex !== null, onClose: handleClosePreview }))] }));
|
|
8361
8423
|
});
|
|
8362
8424
|
|
|
8363
|
-
const buildPreviewImage = (item) => {
|
|
8364
|
-
const fileType = getFileType(item.mimeType, item.name);
|
|
8365
|
-
const isImage = IMAGE_FILE_TYPES.includes(fileType);
|
|
8366
|
-
const src = isImage
|
|
8367
|
-
? item.isExternal
|
|
8368
|
-
? item.link
|
|
8369
|
-
: getResourceUrl(item.link)
|
|
8370
|
-
: getFileTypeIcon(fileType);
|
|
8371
|
-
return { src, fileName: item.name };
|
|
8372
|
-
};
|
|
8373
8425
|
const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
8426
|
+
const { t } = useGlobalContext();
|
|
8374
8427
|
const { expandedContainers } = useWidgetContext(type);
|
|
8375
8428
|
const { items, visibleItems, viewMode, setViewMode, showMore, setShowMore, hasMore, hiddenCount } = useAttachmentContainer({ type, elementConfig });
|
|
8376
8429
|
const { id, style, options } = elementConfig || {};
|
|
8377
8430
|
const { expandable, expanded } = options || {};
|
|
8378
8431
|
const [previewIndex, setPreviewIndex] = useState(null);
|
|
8379
|
-
const previewImages =
|
|
8432
|
+
const previewImages = usePreviewImages({ items, active: previewIndex !== null });
|
|
8380
8433
|
const orderedPreviewImages = useMemo(() => {
|
|
8381
8434
|
if (previewIndex === null)
|
|
8382
8435
|
return previewImages;
|
|
@@ -8393,7 +8446,10 @@ const AttachmentContainer = memo(({ type, elementConfig, renderElement }) => {
|
|
|
8393
8446
|
const handleClosePreview = useCallback(() => setPreviewIndex(null), []);
|
|
8394
8447
|
const handleShowMore = useCallback(() => setShowMore(true), [setShowMore]);
|
|
8395
8448
|
const isVisible = isVisibleContainer(id, expandable, expanded, expandedContainers);
|
|
8396
|
-
return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (
|
|
8449
|
+
return (jsxs(Fragment$1, { children: [jsx(ExpandableTitle, { elementConfig: elementConfig, type: type, renderElement: renderElement }), isVisible && (jsx(Container, { id: id, style: { ...BASE_CONTAINER_STYLE, ...style }, children: jsxs(Flex, { column: true, children: [jsx(AttachmentsHeader, { alias: renderElement?.({ id: "alias" }), count: items.length, viewMode: viewMode, onChangeViewMode: setViewMode }), jsx(AttachmentsContent, { children: viewMode === "grid" ? (jsx(AttachmentsGrid, { items: visibleItems, isEdit: false, onPreview: handlePreview })) : (jsx(AttachmentsList, { items: visibleItems, isEdit: false, onPreview: handlePreview })) }), hasMore && !showMore && (jsx(ShowMoreButton, { hiddenCount: hiddenCount, onClick: handleShowMore })), previewIndex !== null && (jsx(Preview, { images: orderedPreviewImages, isOpen: previewIndex !== null, onClose: handleClosePreview, errorTitleText: t("attachments.resourceUnavailable", {
|
|
8450
|
+
ns: "common",
|
|
8451
|
+
defaultValue: "Ресурс недоступен",
|
|
8452
|
+
}) }))] }) }))] }));
|
|
8397
8453
|
});
|
|
8398
8454
|
|
|
8399
8455
|
const ContainerDivider = styled(Divider) `
|
|
@@ -8614,17 +8670,17 @@ const HeaderFrontView = styled(Flex) `
|
|
|
8614
8670
|
width: 100%;
|
|
8615
8671
|
font: ${({ theme: { fonts } }) => fonts.subtitle};
|
|
8616
8672
|
`;
|
|
8617
|
-
const HeaderContainer = styled(
|
|
8673
|
+
const HeaderContainer = styled(Flex) `
|
|
8618
8674
|
display: flex;
|
|
8619
8675
|
flex-grow: 1;
|
|
8620
8676
|
flex-wrap: nowrap;
|
|
8621
|
-
width: calc(100% -
|
|
8677
|
+
width: calc(100% - 3rem);
|
|
8622
8678
|
`;
|
|
8623
8679
|
const FeatureTitleContainer = styled.div `
|
|
8624
8680
|
display: -webkit-box;
|
|
8625
8681
|
max-width: 100%;
|
|
8626
8682
|
width: 100%;
|
|
8627
|
-
margin: 0.5rem
|
|
8683
|
+
margin-top: 0.5rem;
|
|
8628
8684
|
-webkit-line-clamp: 2;
|
|
8629
8685
|
-webkit-box-orient: vertical;
|
|
8630
8686
|
overflow: hidden;
|
|
@@ -8680,6 +8736,10 @@ const Header = styled(Flex) `
|
|
|
8680
8736
|
${({ $isRow }) => $isRow && RowHeaderMixin};
|
|
8681
8737
|
`;
|
|
8682
8738
|
const DefaultHeaderWrapper = styled.div `
|
|
8739
|
+
padding: 1rem 0 0 1rem;
|
|
8740
|
+
margin: -1rem 0 0 -1rem;
|
|
8741
|
+
background: url(${img$4}) 50% -2rem no-repeat;
|
|
8742
|
+
|
|
8683
8743
|
${Header} {
|
|
8684
8744
|
padding: 0 1.5rem 1.5rem 0;
|
|
8685
8745
|
}
|
|
@@ -8706,7 +8766,7 @@ const HeaderTitle = ({ noFeature }) => {
|
|
|
8706
8766
|
stringFormat: layerDefinitionAttribute.stringFormat,
|
|
8707
8767
|
})) ||
|
|
8708
8768
|
feature?.id);
|
|
8709
|
-
}, [attributes,
|
|
8769
|
+
}, [configuration, attributes, t, feature?.id]);
|
|
8710
8770
|
return (jsxs(HeaderTitleContainer, { children: [noFeature ? (jsx(FeatureTitleContainer, { children: t("noObjectFound", { ns: "dashboard", defaultValue: "Объектов не найдено" }) })) : (jsx(FeatureTitleContainer, { clickable: true, children: jsx(Tooltip$1, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsx(FlexSpan, { ref: ref, onClick: () => zoomToFeatures([feature]), children: resultTitle })) }) })), jsx(LayerDescription, { title: resultDescription, children: resultDescription })] }));
|
|
8711
8771
|
};
|
|
8712
8772
|
|
|
@@ -8765,81 +8825,14 @@ const LayerIcon = ({ layerInfo, error }) => {
|
|
|
8765
8825
|
};
|
|
8766
8826
|
|
|
8767
8827
|
const FeatureCardDefaultHeader = ({ noFeature }) => {
|
|
8768
|
-
const { layerInfo } = useWidgetContext(WidgetType.FeatureCard);
|
|
8769
|
-
return (jsx(DefaultHeaderWrapper, { children: jsx(Header, { "$isRow": true, children: jsxs(HeaderFrontView, { isDefault: true, children: [jsxs(HeaderContainer, { children: [!!layerInfo?.name && jsx(LayerIcon, { layerInfo: layerInfo }), jsx(HeaderTitle, { noFeature: noFeature })] }), jsx(FeatureCardButtons, {})] }) }) }));
|
|
8770
|
-
};
|
|
8771
|
-
|
|
8772
|
-
const HeaderFontColorMixin$1 = css `
|
|
8773
|
-
${HeaderTitleContainer}, ${LayerDescription} {
|
|
8774
|
-
color: ${({ $fontColor }) => $fontColor};
|
|
8775
|
-
}
|
|
8776
|
-
`;
|
|
8777
|
-
const HeaderWrapperMixin$1 = css `
|
|
8778
|
-
${Header} {
|
|
8779
|
-
min-height: 5.25rem;
|
|
8780
|
-
}
|
|
8781
|
-
|
|
8782
|
-
${HeaderContainer} {
|
|
8783
|
-
max-width: 100%;
|
|
8784
|
-
width: 100%;
|
|
8785
|
-
}
|
|
8786
|
-
|
|
8787
|
-
${FeatureControls} {
|
|
8788
|
-
max-width: calc(100% - 2rem);
|
|
8789
|
-
width: calc(100% - 2rem);
|
|
8790
|
-
margin-top: -0.5rem;
|
|
8791
|
-
padding-top: 1rem;
|
|
8792
|
-
border-radius: ${({ theme: { borderRadius } }) => borderRadius.medium};
|
|
8793
|
-
}
|
|
8794
|
-
|
|
8795
|
-
${({ $fontColor }) => !!$fontColor && HeaderFontColorMixin$1};
|
|
8796
|
-
`;
|
|
8797
|
-
const GradientHeaderWrapper = styled.div `
|
|
8798
|
-
${Header} {
|
|
8799
|
-
background: ${({ $bgColor }) => $bgColor || "radial-gradient(129.21% 133.22% at 51.94% 0%, #e8fffe 9.48%, #5fcaff 100%)"};
|
|
8800
|
-
}
|
|
8801
|
-
|
|
8802
|
-
${HeaderContainer} {
|
|
8803
|
-
align-items: center;
|
|
8804
|
-
}
|
|
8805
|
-
|
|
8806
|
-
${HeaderTitleContainer} {
|
|
8807
|
-
margin-left: 0;
|
|
8808
|
-
text-align: center;
|
|
8809
|
-
}
|
|
8810
|
-
|
|
8811
|
-
${FeatureTitleContainer} {
|
|
8812
|
-
text-align: center;
|
|
8813
|
-
}
|
|
8814
|
-
|
|
8815
|
-
${LayerDescription} {
|
|
8816
|
-
text-align: center;
|
|
8817
|
-
}
|
|
8818
|
-
|
|
8819
|
-
${HeaderWrapperMixin$1};
|
|
8820
|
-
`;
|
|
8821
|
-
|
|
8822
|
-
const FeatureCardGradientHeader = ({ isRow }) => {
|
|
8823
8828
|
const { layerInfo } = useWidgetContext(WidgetType.FeatureCard);
|
|
8824
8829
|
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
8825
8830
|
const { header } = config || {};
|
|
8826
8831
|
const { options } = header || {};
|
|
8827
|
-
const {
|
|
8828
|
-
|
|
8829
|
-
return (jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, children: jsx(ThemeProvider, { theme: defaultTheme, children: jsx(Header, { "$isRow": isRow, children: jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { children: [jsx(LayerIcon, { layerInfo: layerInfo }), jsx(FeatureCardTitle, { title: renderElement({
|
|
8830
|
-
id: "title",
|
|
8831
|
-
wrap: false,
|
|
8832
|
-
}), description: renderElement({
|
|
8833
|
-
id: "description",
|
|
8834
|
-
wrap: false,
|
|
8835
|
-
}) })] }), jsx(FeatureCardButtons, {})] }) }) }) }));
|
|
8832
|
+
const { themeName } = options || {};
|
|
8833
|
+
return (jsx(DefaultHeaderWrapper, { children: jsx(ThemeProvider, { theme: getThemeByName(themeName), children: jsx(Header, { "$isRow": true, children: jsxs(HeaderFrontView, { isDefault: true, children: [jsxs(HeaderContainer, { children: [!!layerInfo?.name && jsx(LayerIcon, { layerInfo: layerInfo }), jsx(HeaderTitle, { noFeature: noFeature })] }), jsx(FeatureCardButtons, {})] }) }) }) }));
|
|
8836
8834
|
};
|
|
8837
8835
|
|
|
8838
|
-
const LayerIconClickable = styled.div `
|
|
8839
|
-
display: flex;
|
|
8840
|
-
align-items: center;
|
|
8841
|
-
cursor: pointer;
|
|
8842
|
-
`;
|
|
8843
8836
|
const HeaderFontColorMixin = css `
|
|
8844
8837
|
${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
|
|
8845
8838
|
color: ${({ $fontColor }) => $fontColor};
|
|
@@ -8869,13 +8862,18 @@ const HeaderIcon = styled(Flex) `
|
|
|
8869
8862
|
position: absolute;
|
|
8870
8863
|
top: 0;
|
|
8871
8864
|
right: 0;
|
|
8872
|
-
justify-content: flex-end;
|
|
8873
8865
|
align-items: center;
|
|
8874
|
-
|
|
8866
|
+
justify-content: center;
|
|
8867
|
+
width: 7.625rem;
|
|
8875
8868
|
height: 100%;
|
|
8876
8869
|
|
|
8877
|
-
span[kind]
|
|
8878
|
-
|
|
8870
|
+
span[kind] {
|
|
8871
|
+
width: 4rem;
|
|
8872
|
+
|
|
8873
|
+
:after {
|
|
8874
|
+
font-size: 4rem;
|
|
8875
|
+
color: rgba(255, 255, 255, 0.36);
|
|
8876
|
+
}
|
|
8879
8877
|
}
|
|
8880
8878
|
|
|
8881
8879
|
span[kind]:after,
|
|
@@ -8901,34 +8899,77 @@ const BigIconHeaderMixin = css `
|
|
|
8901
8899
|
}
|
|
8902
8900
|
}
|
|
8903
8901
|
`;
|
|
8904
|
-
const
|
|
8902
|
+
const WithPaddingHeaderMixin = css `
|
|
8905
8903
|
${Header} {
|
|
8906
|
-
width: calc(100%
|
|
8907
|
-
margin: -
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8904
|
+
width: calc(100% - 1rem);
|
|
8905
|
+
margin: -0.5rem -0.5rem 0.5rem -0.5rem;
|
|
8906
|
+
}
|
|
8907
|
+
`;
|
|
8908
|
+
const BottomBlurHeaderMixin = css `
|
|
8909
|
+
${Header} {
|
|
8910
|
+
margin-bottom: 0;
|
|
8911
|
+
|
|
8912
|
+
&::after {
|
|
8913
|
+
content: "";
|
|
8914
|
+
position: absolute;
|
|
8915
|
+
left: 0;
|
|
8916
|
+
right: 0;
|
|
8917
|
+
bottom: 0;
|
|
8918
|
+
height: 1.5rem;
|
|
8919
|
+
z-index: 11;
|
|
8920
|
+
pointer-events: none;
|
|
8921
|
+
background: ${({ theme: { palette } }) => palette.background};
|
|
8922
|
+
mask-image: linear-gradient(to top, #000 0%, transparent 100%);
|
|
8923
|
+
-webkit-mask-image: linear-gradient(to top, #000 0%, transparent 100%);
|
|
8924
|
+
border-radius: 0 0 0.5rem 0.5rem;
|
|
8925
|
+
}
|
|
8926
|
+
}
|
|
8927
|
+
|
|
8928
|
+
${HeaderFrontView} {
|
|
8929
|
+
z-index: 12;
|
|
8930
|
+
}
|
|
8931
|
+
`;
|
|
8932
|
+
const GradientHeaderWrapper = styled.div `
|
|
8933
|
+
${Header} {
|
|
8934
|
+
margin: -1rem -1rem 1rem -1rem;
|
|
8935
|
+
padding: 1rem 1.5rem;
|
|
8936
|
+
border-radius: 0.5rem;
|
|
8911
8937
|
background: ${({ $bgColor }) => $bgColor || "linear-gradient(96.55deg, #FFFCD3 0%, #B4DC47 100%)"};
|
|
8938
|
+
overflow: hidden;
|
|
8912
8939
|
}
|
|
8913
8940
|
|
|
8914
8941
|
${HeaderWrapperMixin};
|
|
8915
8942
|
|
|
8916
8943
|
${({ $bigIcon }) => $bigIcon && BigIconHeaderMixin};
|
|
8944
|
+
|
|
8945
|
+
${({ $withPadding }) => $withPadding && WithPaddingHeaderMixin};
|
|
8946
|
+
|
|
8947
|
+
${({ $bottomBlur }) => $bottomBlur && BottomBlurHeaderMixin};
|
|
8948
|
+
`;
|
|
8949
|
+
|
|
8950
|
+
const LayerIconClickable = styled.div `
|
|
8951
|
+
display: flex;
|
|
8952
|
+
align-items: center;
|
|
8953
|
+
cursor: pointer;
|
|
8917
8954
|
`;
|
|
8918
8955
|
|
|
8919
|
-
const
|
|
8956
|
+
const HeaderLayerIcon = () => {
|
|
8920
8957
|
const { t } = useGlobalContext();
|
|
8921
8958
|
const { layerInfo, feature } = useWidgetContext(WidgetType.FeatureCard);
|
|
8922
|
-
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
8923
8959
|
const zoomToFeatures = useZoomToFeatures();
|
|
8924
8960
|
const getMaxZoomTo = useMaxZoomTo();
|
|
8925
8961
|
const [optionsMaxZoomTo, layerMaxZoomTo] = useMemo(() => getMaxZoomTo(layerInfo?.name), [layerInfo?.name, getMaxZoomTo]);
|
|
8962
|
+
const handleIconClick = useCallback(() => zoomToFeatures([feature], { maxZoom: layerMaxZoomTo ?? optionsMaxZoomTo }), [zoomToFeatures, feature, layerMaxZoomTo, optionsMaxZoomTo]);
|
|
8963
|
+
return (jsx(Tooltip$1, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsx(LayerIconClickable, { ref: ref, onClick: handleIconClick, children: jsx(LayerIcon, { layerInfo: layerInfo }) })) }));
|
|
8964
|
+
};
|
|
8965
|
+
|
|
8966
|
+
const FeatureCardGradientHeader = ({ isRow }) => {
|
|
8967
|
+
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
8926
8968
|
const { header } = config || {};
|
|
8927
8969
|
const { options } = header || {};
|
|
8928
|
-
const { fontColor, bgColor, bigIcon } = options || {};
|
|
8970
|
+
const { fontColor, bgColor, bigIcon, withPadding, bottomBlur, themeName } = options || {};
|
|
8929
8971
|
const renderElement = useHeaderRender(header);
|
|
8930
|
-
|
|
8931
|
-
return (jsx(IconHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$bigIcon": bigIcon, children: jsx(ThemeProvider, { theme: defaultTheme, children: jsxs(Header, { "$isRow": isRow, children: [jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { children: [jsx(Tooltip$1, { arrow: true, placement: "top", content: t("zoomToFeature", { ns: "dashboard", defaultValue: "Приблизить к объекту" }), delay: [600, 0], children: ref => (jsx(LayerIconClickable, { ref: ref, onClick: handleIconClick, children: jsx(LayerIcon, { layerInfo: layerInfo }) })) }), jsx(FeatureCardTitle, { title: renderElement({
|
|
8972
|
+
return (jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$bigIcon": bigIcon, "$withPadding": withPadding, "$bottomBlur": bottomBlur, children: jsx(ThemeProvider, { theme: getThemeByName(themeName), children: jsxs(Header, { "$isRow": isRow, children: [jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { column: true, children: [jsx(HeaderLayerIcon, {}), jsx(FeatureCardTitle, { title: renderElement({
|
|
8932
8973
|
id: "title",
|
|
8933
8974
|
wrap: false,
|
|
8934
8975
|
}), description: renderElement({
|
|
@@ -9799,13 +9840,12 @@ const HeaderSlideshow = styled.div `
|
|
|
9799
9840
|
`;
|
|
9800
9841
|
|
|
9801
9842
|
const FeatureCardSlideshowHeader = ({ isRow }) => {
|
|
9802
|
-
const { layerInfo } = useWidgetContext(WidgetType.FeatureCard);
|
|
9803
9843
|
const { config } = useWidgetConfig(WidgetType.FeatureCard);
|
|
9804
9844
|
const { header } = config || {};
|
|
9805
9845
|
const { options } = header || {};
|
|
9806
|
-
const { height, withPadding } = options || {};
|
|
9846
|
+
const { height, withPadding, themeName } = options || {};
|
|
9807
9847
|
const renderElement = useHeaderRender(header);
|
|
9808
|
-
return (jsx(SlideshowHeaderWrapper, { big: true, withPadding: withPadding, children: jsx(ThemeProvider, { theme:
|
|
9848
|
+
return (jsx(SlideshowHeaderWrapper, { big: true, withPadding: withPadding, children: jsx(ThemeProvider, { theme: getThemeByName(themeName), children: jsxs(Header, { "$isRow": isRow, children: [jsxs(HeaderFrontView, { children: [jsxs(HeaderContainer, { column: true, children: [jsx(HeaderLayerIcon, {}), jsx(FeatureCardTitle, { title: renderElement({
|
|
9809
9849
|
id: "title",
|
|
9810
9850
|
wrap: false,
|
|
9811
9851
|
}), description: renderElement({
|
|
@@ -10141,13 +10181,6 @@ const ElementModal = memo(({ type = WidgetType.Dashboard, elementConfig }) => {
|
|
|
10141
10181
|
return (jsxs(Fragment$1, { children: [jsx(ModalIcon, { kind: icon || "new_window", onClick: handleOpen, children: title }), jsxs(Dialog, { maxWidth: maxWidth, minWidth: minWidth, minHeight: minHeight, isOpen: isOpen, modal: true, onCloseRequest: handleClose, style: { paddingBottom: "2rem" }, children: [jsx(DialogTitle, { children: jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [!!title && jsx("span", { children: title }), jsx(IconButton, { kind: "close", onClick: handleClose })] }) }), jsx(DialogContent, { children: isLoading ? (jsx(DashboardLoading, {})) : (jsx(Container, { isColumn: true, noBorders: true, children: jsx(ContainerChildren, { type: type, items: modalContent, isMain: true, renderElement: renderElement }) })) })] })] }));
|
|
10142
10182
|
});
|
|
10143
10183
|
|
|
10144
|
-
const ElementLayerName = memo(({ type }) => {
|
|
10145
|
-
const { layerInfo } = useWidgetContext(type);
|
|
10146
|
-
if (!layerInfo?.name)
|
|
10147
|
-
return null;
|
|
10148
|
-
return jsx("span", { children: layerInfo.name });
|
|
10149
|
-
});
|
|
10150
|
-
|
|
10151
10184
|
const elementComponents = {
|
|
10152
10185
|
control: ElementControl,
|
|
10153
10186
|
image: ElementImage,
|
|
@@ -10164,7 +10197,6 @@ const elementComponents = {
|
|
|
10164
10197
|
markdown: ElementMarkdown,
|
|
10165
10198
|
uploader: ElementUploader,
|
|
10166
10199
|
modal: ElementModal,
|
|
10167
|
-
layerName: ElementLayerName,
|
|
10168
10200
|
};
|
|
10169
10201
|
|
|
10170
10202
|
const getElementValue = ({ getDefaultContainer, ...props }) => {
|
|
@@ -10198,6 +10230,9 @@ const getElementValue = ({ getDefaultContainer, ...props }) => {
|
|
|
10198
10230
|
null
|
|
10199
10231
|
: null;
|
|
10200
10232
|
}
|
|
10233
|
+
if (type === "layerName") {
|
|
10234
|
+
return layerInfo?.name || "";
|
|
10235
|
+
}
|
|
10201
10236
|
const ElementComponent = type ? elementComponents[type] : null;
|
|
10202
10237
|
return ElementComponent ? (jsx(ElementComponent, { ...props })) : (getDefaultContainer?.());
|
|
10203
10238
|
};
|
|
@@ -10254,8 +10289,6 @@ const getFeatureCardHeader = (templateName) => {
|
|
|
10254
10289
|
return FeatureCardSlideshowHeader;
|
|
10255
10290
|
case HeaderTemplate.Gradient:
|
|
10256
10291
|
return FeatureCardGradientHeader;
|
|
10257
|
-
case HeaderTemplate.Icon:
|
|
10258
|
-
return FeatureCardIconHeader;
|
|
10259
10292
|
case HeaderTemplate.Default:
|
|
10260
10293
|
default:
|
|
10261
10294
|
return FeatureCardDefaultHeader;
|
|
@@ -11172,6 +11205,10 @@ const getRelatedAttribute = (layerInfo, sourceAttributeName, relatedLayerName) =
|
|
|
11172
11205
|
return attributeConfig?.options?.relatedAttributes?.find(({ layerName }) => layerName === relatedLayerName);
|
|
11173
11206
|
};
|
|
11174
11207
|
|
|
11208
|
+
const getResourceUrl = (url) => {
|
|
11209
|
+
return url ? (url.startsWith("http") ? url : `/sp/resources/file/${url}`) : "";
|
|
11210
|
+
};
|
|
11211
|
+
|
|
11175
11212
|
const getSlideshowImages = ({ element, attribute, }) => {
|
|
11176
11213
|
const { defaultValue, options } = element;
|
|
11177
11214
|
const { separator } = options || {};
|
|
@@ -11221,6 +11258,10 @@ const getTemplateNameFromAttribute = (attribute) => {
|
|
|
11221
11258
|
}
|
|
11222
11259
|
};
|
|
11223
11260
|
|
|
11261
|
+
const getThemeByName = (themeName) => {
|
|
11262
|
+
return themeName === ThemeName.Dark ? darkTheme : defaultTheme;
|
|
11263
|
+
};
|
|
11264
|
+
|
|
11224
11265
|
const getDisplayTemplateNameFromAttribute = (attribute) => {
|
|
11225
11266
|
if (attribute?.subType === StringSubType.Attachments) {
|
|
11226
11267
|
return ContainerTemplate.Attachment;
|
|
@@ -13315,5 +13356,5 @@ const Map$1 = ({ zIndex, lowerSiblings, upperSiblings, onError, children, ...res
|
|
|
13315
13356
|
}, children: children }), upperSiblings] }));
|
|
13316
13357
|
};
|
|
13317
13358
|
|
|
13318
|
-
export { AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardGradientHeader, FeatureCardHeader,
|
|
13359
|
+
export { AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardGradientHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GlobalContext, GlobalProvider, Header, HeaderContainer, HeaderFrontView, HeaderTemplate, HeaderTitleContainer, HiddenTitleItems, IconContainer, ImageContainer, LEFT_PANEL_HEADER_HEIGHT, Layer, LayerDescription, LayerGroup, LayerGroupList, LayerIcon, LayerIconContainer, LayerListContainer, LayerTree, LayersContainer, LayersListWrapper, LinearProgressContainer, LogTerminal, LogoContainer, MAX_CHART_WIDTH, Map$1 as Map, MapContext, MapProvider, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, RoundedBackgroundContainer, SERVER_NOTIFICATION_EVENT, STACK_BAR_TOTAL_HEIGHT, ScalingFactor, ServerNotificationsContext, ServerNotificationsProvider, SlideshowContainer, SmallPreviewContainer$1 as SmallPreviewContainer, SmallPreviewControl, SmallPreviewCounter, SmallPreviewImages, SmallPreviewLeft, SmallPreviewRight, StackBar, SvgImage, TIME_ZONE_FORMAT, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, WidgetType, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyVarsToCondition, checkEqualOrIncludes, checkIsLoading, createConfigLayer, createConfigPage, createNewPageId, createTreeNode, dateOptions, debounce, decimalOpacityToHex, eqlParametersToPayload, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, getActualExtrusionHeight, getAttributeByName, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getLayerInfo, getLayerInfoFromDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, hexToRgba, isEmptyElementValue, isEmptyValue, isHiddenEmptyValue, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isVisibleContainer, metersPerPixel, numberOptions, parseClientStyle, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, rgbToHex, roundTotalSum, sliceShownOtherItems, timeOptions, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, treeNodesToProjectItems, updateDataSource, useAppHeight, useAutoCompleteControl, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useExpandableContainers, useExportPdf, useFetchImageWithAuth, useFetchWithAuth, useGetConfigLayer, useGlobalContext, useHeaderRender, useHideIfEmptyDataSource, useIconsFromLayers, useLayerHiddenAttributes, useLayerParams, useMapContext, useMapDraw, useMapImages, useMaxZoomTo, useProjectDashboardInit, usePythonSandbox, usePythonTask, useRedrawLayer, useRelatedDataSourceAttributes, useRenderElement, useServerNotificationsContext, useShownOtherItems, useToggle, useUpdateDataSource, useVisibleProjectItems, useWidgetConfig, useWidgetContext, useWidgetFilters, useWidgetPage, useWindowResize, useZoomToFeatures, useZoomToPoint };
|
|
13319
13360
|
//# sourceMappingURL=react.esm.js.map
|