@evergis/react 4.0.55 → 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.
@@ -18,4 +18,9 @@ export declare const SvgContainer: import('styled-components').StyledComponent<"
18
18
  $width?: number;
19
19
  $fontColor?: string;
20
20
  }, never>;
21
- export declare const TwoColumnContainerWrapper: import('styled-components').StyledComponent<"div", any, import('@evergis/uilib-gl').FlexProps, never>;
21
+ export declare const TwoColumnContainerWrapper: import('styled-components').StyledComponent<"div", any, import('@evergis/uilib-gl').FlexProps & {
22
+ isTitle?: boolean;
23
+ isColumn?: boolean;
24
+ isMain?: boolean;
25
+ noBorders?: boolean;
26
+ }, never>;
@@ -16,5 +16,4 @@ export declare const elementComponents: {
16
16
  readonly markdown: import('react').FC<import('..').ContainerProps>;
17
17
  readonly uploader: import('react').FC<import('..').ContainerProps>;
18
18
  readonly modal: import('react').FC<import('..').ContainerProps>;
19
- readonly layerName: import('react').FC<import('..').ContainerProps>;
20
19
  };
@@ -1,7 +1,7 @@
1
1
  export declare const HeaderFrontView: import('styled-components').StyledComponent<"div", any, import('@evergis/uilib-gl').FlexProps & {
2
2
  isDefault?: boolean;
3
3
  }, never>;
4
- export declare const HeaderContainer: import('styled-components').StyledComponent<"span", any, import('@evergis/uilib-gl').FlexSpanProps, never>;
4
+ export declare const HeaderContainer: import('styled-components').StyledComponent<"div", any, import('@evergis/uilib-gl').FlexProps, never>;
5
5
  export declare const FeatureTitleContainer: import('styled-components').StyledComponent<"div", any, {
6
6
  clickable?: boolean;
7
7
  }, never>;
@@ -1,4 +1,8 @@
1
+ export declare const HeaderIcon: import('styled-components').StyledComponent<"div", any, import('@evergis/uilib-gl').FlexProps, never>;
1
2
  export declare const GradientHeaderWrapper: import('styled-components').StyledComponent<"div", any, {
2
3
  $fontColor?: string;
3
4
  $bgColor?: string;
5
+ $bigIcon?: boolean;
6
+ $withPadding?: boolean;
7
+ $bottomBlur?: boolean;
4
8
  }, never>;
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const HeaderLayerIcon: FC;
@@ -0,0 +1 @@
1
+ export declare const LayerIconClickable: import('styled-components').StyledComponent<"div", any, {}, never>;
@@ -3,5 +3,4 @@ export * from './DashboardDefaultHeader/styled';
3
3
  export * from './FeatureCardDefaultHeader';
4
4
  export * from './FeatureCardDefaultHeader/styled';
5
5
  export * from './FeatureCardGradientHeader';
6
- export * from './FeatureCardIconHeader';
7
6
  export * from './FeatureCardSlideshowHeader';
@@ -84,6 +84,7 @@ export interface ConfigOptions {
84
84
  withPadding?: boolean;
85
85
  withDivider?: boolean;
86
86
  dotSnapping?: boolean;
87
+ bottomBlur?: boolean;
87
88
  tagView?: boolean;
88
89
  simple?: boolean;
89
90
  downloadById?: string;
@@ -345,8 +346,7 @@ export declare enum ContainerTemplate {
345
346
  export declare enum HeaderTemplate {
346
347
  Default = "Default",
347
348
  Slideshow = "Slideshow",
348
- Gradient = "Gradient",
349
- Icon = "Icon"
349
+ Gradient = "Gradient"
350
350
  }
351
351
  export interface GetRenderElementProps extends Omit<ContainerProps, "renderElement"> {
352
352
  expandedContainers?: Record<string, boolean>;
@@ -0,0 +1,2 @@
1
+ import { ThemeName } from '../../../types';
2
+ export declare const getThemeByName: (themeName: ThemeName) => import('@evergis/uilib-gl').ITheme;
@@ -43,6 +43,7 @@ export * from './getSelectedFilterValue';
43
43
  export * from './getSlideshowImages';
44
44
  export * from './getSvgUrl';
45
45
  export * from './getTemplateNameFromAttribute';
46
+ export * from './getThemeByName';
46
47
  export * from './getDisplayTemplateNameFromAttribute';
47
48
  export * from './getTotalFromAttributes';
48
49
  export * from './getTotalFromRelatedFeatures';
package/dist/index.js CHANGED
@@ -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) {
@@ -6034,8 +6033,7 @@ const SvgContainer$1 = styled.div `
6034
6033
  }
6035
6034
  }
6036
6035
  `;
6037
- const TwoColumnContainerWrapper = styled(uilibGl.Flex) `
6038
- width: 100%;
6036
+ const TwoColumnContainerWrapper = styled(Container) `
6039
6037
  flex-direction: row;
6040
6038
  flex-wrap: nowrap;
6041
6039
  align-items: center;
@@ -6109,7 +6107,6 @@ const useRenderContainer = ({ elementConfig, type, renderElement, renderBody, })
6109
6107
  if (OverrideContainer) {
6110
6108
  const itemConfig = {
6111
6109
  ...elementConfig,
6112
- style: { ...BASE_CONTAINER_STYLE, ...elementConfig.style },
6113
6110
  children: (elementConfig?.children ?? []).map(child => ({
6114
6111
  ...child,
6115
6112
  attributeName: attribute,
@@ -6138,7 +6135,7 @@ const OneColumnContainer = React.memo(({ type, elementConfig, renderElement }) =
6138
6135
  });
6139
6136
 
6140
6137
  const TwoColumnContainer = React.memo(({ elementConfig, type, renderElement }) => {
6141
- const renderBody = React.useCallback(({ id, value, style, hasIcon, hasUnits, render }, attribute) => (jsxRuntime.jsxs(TwoColumnContainerWrapper, { id: id, style: { ...BASE_CONTAINER_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" }) }))] })] }, attribute)), []);
6138
+ 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
6139
  const { renderContainer, attributesToRender } = useRenderContainer({
6143
6140
  type,
6144
6141
  elementConfig,
@@ -8451,10 +8448,10 @@ const AttachmentContainer = React.memo(({ type, elementConfig, renderElement })
8451
8448
  const handleClosePreview = React.useCallback(() => setPreviewIndex(null), []);
8452
8449
  const handleShowMore = React.useCallback(() => setShowMore(true), [setShowMore]);
8453
8450
  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.jsxs(Container, { id: id, isColumn: true, 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: 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: orderedPreviewImages, isOpen: previewIndex !== null, onClose: handleClosePreview, errorTitleText: t("attachments.resourceUnavailable", {
8455
- ns: "common",
8456
- defaultValue: "Ресурс недоступен",
8457
- }) }))] }))] }));
8451
+ 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: orderedPreviewImages, isOpen: previewIndex !== null, onClose: handleClosePreview, errorTitleText: t("attachments.resourceUnavailable", {
8452
+ ns: "common",
8453
+ defaultValue: "Ресурс недоступен",
8454
+ }) }))] }) }))] }));
8458
8455
  });
8459
8456
 
8460
8457
  const ContainerDivider = styled(uilibGl.Divider) `
@@ -8675,17 +8672,17 @@ const HeaderFrontView = styled(uilibGl.Flex) `
8675
8672
  width: 100%;
8676
8673
  font: ${({ theme: { fonts } }) => fonts.subtitle};
8677
8674
  `;
8678
- const HeaderContainer = styled(uilibGl.FlexSpan) `
8675
+ const HeaderContainer = styled(uilibGl.Flex) `
8679
8676
  display: flex;
8680
8677
  flex-grow: 1;
8681
8678
  flex-wrap: nowrap;
8682
- width: calc(100% - 48px);
8679
+ width: calc(100% - 3rem);
8683
8680
  `;
8684
8681
  const FeatureTitleContainer = styled.div `
8685
8682
  display: -webkit-box;
8686
8683
  max-width: 100%;
8687
8684
  width: 100%;
8688
- margin: 0.5rem 0;
8685
+ margin-top: 0.5rem;
8689
8686
  -webkit-line-clamp: 2;
8690
8687
  -webkit-box-orient: vertical;
8691
8688
  overflow: hidden;
@@ -8741,6 +8738,10 @@ const Header = styled(uilibGl.Flex) `
8741
8738
  ${({ $isRow }) => $isRow && RowHeaderMixin};
8742
8739
  `;
8743
8740
  const DefaultHeaderWrapper = styled.div `
8741
+ padding: 1rem 0 0 1rem;
8742
+ margin: -1rem 0 0 -1rem;
8743
+ background: url(${img$4}) 50% -2rem no-repeat;
8744
+
8744
8745
  ${Header} {
8745
8746
  padding: 0 1.5rem 1.5rem 0;
8746
8747
  }
@@ -8767,7 +8768,7 @@ const HeaderTitle = ({ noFeature }) => {
8767
8768
  stringFormat: layerDefinitionAttribute.stringFormat,
8768
8769
  })) ||
8769
8770
  feature?.id);
8770
- }, [attributes, feature, configuration]);
8771
+ }, [configuration, attributes, t, feature?.id]);
8771
8772
  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
8773
  };
8773
8774
 
@@ -8826,81 +8827,14 @@ const LayerIcon = ({ layerInfo, error }) => {
8826
8827
  };
8827
8828
 
8828
8829
  const FeatureCardDefaultHeader = ({ noFeature }) => {
8829
- const { layerInfo } = useWidgetContext(exports.WidgetType.FeatureCard);
8830
- return (jsxRuntime.jsx(DefaultHeaderWrapper, { children: jsxRuntime.jsx(Header, { "$isRow": true, children: jsxRuntime.jsxs(HeaderFrontView, { isDefault: true, children: [jsxRuntime.jsxs(HeaderContainer, { children: [!!layerInfo?.name && jsxRuntime.jsx(LayerIcon, { layerInfo: layerInfo }), jsxRuntime.jsx(HeaderTitle, { noFeature: noFeature })] }), jsxRuntime.jsx(FeatureCardButtons, {})] }) }) }));
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};
8881
- `;
8882
-
8883
- const FeatureCardGradientHeader = ({ isRow }) => {
8884
8830
  const { layerInfo } = useWidgetContext(exports.WidgetType.FeatureCard);
8885
8831
  const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
8886
8832
  const { header } = config || {};
8887
8833
  const { options } = header || {};
8888
- const { fontColor, bgColor } = options || {};
8889
- const renderElement = useHeaderRender(header);
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, {})] }) }) }) }));
8834
+ const { themeName } = options || {};
8835
+ return (jsxRuntime.jsx(DefaultHeaderWrapper, { children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: getThemeByName(themeName), children: jsxRuntime.jsx(Header, { "$isRow": true, children: jsxRuntime.jsxs(HeaderFrontView, { isDefault: true, children: [jsxRuntime.jsxs(HeaderContainer, { children: [!!layerInfo?.name && jsxRuntime.jsx(LayerIcon, { layerInfo: layerInfo }), jsxRuntime.jsx(HeaderTitle, { noFeature: noFeature })] }), jsxRuntime.jsx(FeatureCardButtons, {})] }) }) }) }));
8897
8836
  };
8898
8837
 
8899
- const LayerIconClickable = styled.div `
8900
- display: flex;
8901
- align-items: center;
8902
- cursor: pointer;
8903
- `;
8904
8838
  const HeaderFontColorMixin = styled.css `
8905
8839
  ${HeaderTitleContainer}, ${HeaderTitleContainer} *, ${LayerDescription} {
8906
8840
  color: ${({ $fontColor }) => $fontColor};
@@ -8930,13 +8864,18 @@ const HeaderIcon = styled(uilibGl.Flex) `
8930
8864
  position: absolute;
8931
8865
  top: 0;
8932
8866
  right: 0;
8933
- justify-content: flex-end;
8934
8867
  align-items: center;
8935
- min-width: 7.5rem;
8868
+ justify-content: center;
8869
+ width: 7.625rem;
8936
8870
  height: 100%;
8937
8871
 
8938
- span[kind]:after {
8939
- font-size: 7.5rem;
8872
+ span[kind] {
8873
+ width: 4rem;
8874
+
8875
+ :after {
8876
+ font-size: 4rem;
8877
+ color: rgba(255, 255, 255, 0.36);
8878
+ }
8940
8879
  }
8941
8880
 
8942
8881
  span[kind]:after,
@@ -8962,34 +8901,77 @@ const BigIconHeaderMixin = styled.css `
8962
8901
  }
8963
8902
  }
8964
8903
  `;
8965
- const IconHeaderWrapper = styled.div `
8904
+ const WithPaddingHeaderMixin = styled.css `
8966
8905
  ${Header} {
8967
- width: calc(100% + 0.5rem);
8968
- margin: -1rem -1rem 0.5rem -1rem;
8969
- padding: 1.5rem;
8970
- border-top-left-radius: 0.5rem;
8971
- border-top-right-radius: 0.5rem;
8906
+ width: calc(100% - 1rem);
8907
+ margin: -0.5rem -0.5rem 0.5rem -0.5rem;
8908
+ }
8909
+ `;
8910
+ const BottomBlurHeaderMixin = styled.css `
8911
+ ${Header} {
8912
+ margin-bottom: 0;
8913
+
8914
+ &::after {
8915
+ content: "";
8916
+ position: absolute;
8917
+ left: 0;
8918
+ right: 0;
8919
+ bottom: 0;
8920
+ height: 1.5rem;
8921
+ z-index: 11;
8922
+ pointer-events: none;
8923
+ background: ${({ theme: { palette } }) => palette.background};
8924
+ mask-image: linear-gradient(to top, #000 0%, transparent 100%);
8925
+ -webkit-mask-image: linear-gradient(to top, #000 0%, transparent 100%);
8926
+ border-radius: 0 0 0.5rem 0.5rem;
8927
+ }
8928
+ }
8929
+
8930
+ ${HeaderFrontView} {
8931
+ z-index: 12;
8932
+ }
8933
+ `;
8934
+ const GradientHeaderWrapper = styled.div `
8935
+ ${Header} {
8936
+ margin: -1rem -1rem 1rem -1rem;
8937
+ padding: 1rem 1.5rem;
8938
+ border-radius: 0.5rem;
8972
8939
  background: ${({ $bgColor }) => $bgColor || "linear-gradient(96.55deg, #FFFCD3 0%, #B4DC47 100%)"};
8940
+ overflow: hidden;
8973
8941
  }
8974
8942
 
8975
8943
  ${HeaderWrapperMixin};
8976
8944
 
8977
8945
  ${({ $bigIcon }) => $bigIcon && BigIconHeaderMixin};
8946
+
8947
+ ${({ $withPadding }) => $withPadding && WithPaddingHeaderMixin};
8948
+
8949
+ ${({ $bottomBlur }) => $bottomBlur && BottomBlurHeaderMixin};
8978
8950
  `;
8979
8951
 
8980
- const FeatureCardIconHeader = ({ isRow }) => {
8952
+ const LayerIconClickable = styled.div `
8953
+ display: flex;
8954
+ align-items: center;
8955
+ cursor: pointer;
8956
+ `;
8957
+
8958
+ const HeaderLayerIcon = () => {
8981
8959
  const { t } = useGlobalContext();
8982
8960
  const { layerInfo, feature } = useWidgetContext(exports.WidgetType.FeatureCard);
8983
- const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
8984
8961
  const zoomToFeatures = useZoomToFeatures();
8985
8962
  const getMaxZoomTo = useMaxZoomTo();
8986
8963
  const [optionsMaxZoomTo, layerMaxZoomTo] = React.useMemo(() => getMaxZoomTo(layerInfo?.name), [layerInfo?.name, getMaxZoomTo]);
8964
+ const handleIconClick = React.useCallback(() => zoomToFeatures([feature], { maxZoom: layerMaxZoomTo ?? optionsMaxZoomTo }), [zoomToFeatures, feature, layerMaxZoomTo, optionsMaxZoomTo]);
8965
+ return (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 }) })) }));
8966
+ };
8967
+
8968
+ const FeatureCardGradientHeader = ({ isRow }) => {
8969
+ const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
8987
8970
  const { header } = config || {};
8988
8971
  const { options } = header || {};
8989
- const { fontColor, bgColor, bigIcon } = options || {};
8972
+ const { fontColor, bgColor, bigIcon, withPadding, bottomBlur, themeName } = options || {};
8990
8973
  const renderElement = useHeaderRender(header);
8991
- const handleIconClick = React.useCallback(() => zoomToFeatures([feature], { maxZoom: layerMaxZoomTo ?? optionsMaxZoomTo }), [zoomToFeatures, feature, layerMaxZoomTo, optionsMaxZoomTo]);
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({
8974
+ return (jsxRuntime.jsx(GradientHeaderWrapper, { "$fontColor": fontColor, "$bgColor": bgColor, "$bigIcon": bigIcon, "$withPadding": withPadding, "$bottomBlur": bottomBlur, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: getThemeByName(themeName), children: jsxRuntime.jsxs(Header, { "$isRow": isRow, children: [jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { column: true, children: [jsxRuntime.jsx(HeaderLayerIcon, {}), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
8993
8975
  id: "title",
8994
8976
  wrap: false,
8995
8977
  }), description: renderElement({
@@ -9860,13 +9842,12 @@ const HeaderSlideshow = styled.div `
9860
9842
  `;
9861
9843
 
9862
9844
  const FeatureCardSlideshowHeader = ({ isRow }) => {
9863
- const { layerInfo } = useWidgetContext(exports.WidgetType.FeatureCard);
9864
9845
  const { config } = useWidgetConfig(exports.WidgetType.FeatureCard);
9865
9846
  const { header } = config || {};
9866
9847
  const { options } = header || {};
9867
- const { height, withPadding } = options || {};
9848
+ const { height, withPadding, themeName } = options || {};
9868
9849
  const renderElement = useHeaderRender(header);
9869
- return (jsxRuntime.jsx(SlideshowHeaderWrapper, { big: true, withPadding: withPadding, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: uilibGl.darkTheme, children: jsxRuntime.jsxs(Header, { "$isRow": isRow, children: [jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { children: [jsxRuntime.jsx(LayerIcon, { layerInfo: layerInfo }), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
9850
+ return (jsxRuntime.jsx(SlideshowHeaderWrapper, { big: true, withPadding: withPadding, children: jsxRuntime.jsx(uilibGl.ThemeProvider, { theme: getThemeByName(themeName), children: jsxRuntime.jsxs(Header, { "$isRow": isRow, children: [jsxRuntime.jsxs(HeaderFrontView, { children: [jsxRuntime.jsxs(HeaderContainer, { column: true, children: [jsxRuntime.jsx(HeaderLayerIcon, {}), jsxRuntime.jsx(FeatureCardTitle, { title: renderElement({
9870
9851
  id: "title",
9871
9852
  wrap: false,
9872
9853
  }), description: renderElement({
@@ -10202,13 +10183,6 @@ const ElementModal = React.memo(({ type = exports.WidgetType.Dashboard, elementC
10202
10183
  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
10184
  });
10204
10185
 
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
10186
  const elementComponents = {
10213
10187
  control: ElementControl,
10214
10188
  image: ElementImage,
@@ -10225,7 +10199,6 @@ const elementComponents = {
10225
10199
  markdown: ElementMarkdown,
10226
10200
  uploader: ElementUploader,
10227
10201
  modal: ElementModal,
10228
- layerName: ElementLayerName,
10229
10202
  };
10230
10203
 
10231
10204
  const getElementValue = ({ getDefaultContainer, ...props }) => {
@@ -10259,6 +10232,9 @@ const getElementValue = ({ getDefaultContainer, ...props }) => {
10259
10232
  null
10260
10233
  : null;
10261
10234
  }
10235
+ if (type === "layerName") {
10236
+ return layerInfo?.name || "";
10237
+ }
10262
10238
  const ElementComponent = type ? elementComponents[type] : null;
10263
10239
  return ElementComponent ? (jsxRuntime.jsx(ElementComponent, { ...props })) : (getDefaultContainer?.());
10264
10240
  };
@@ -10315,8 +10291,6 @@ const getFeatureCardHeader = (templateName) => {
10315
10291
  return FeatureCardSlideshowHeader;
10316
10292
  case exports.HeaderTemplate.Gradient:
10317
10293
  return FeatureCardGradientHeader;
10318
- case exports.HeaderTemplate.Icon:
10319
- return FeatureCardIconHeader;
10320
10294
  case exports.HeaderTemplate.Default:
10321
10295
  default:
10322
10296
  return FeatureCardDefaultHeader;
@@ -11286,6 +11260,10 @@ const getTemplateNameFromAttribute = (attribute) => {
11286
11260
  }
11287
11261
  };
11288
11262
 
11263
+ const getThemeByName = (themeName) => {
11264
+ return themeName === exports.ThemeName.Dark ? uilibGl.darkTheme : uilibGl.defaultTheme;
11265
+ };
11266
+
11289
11267
  const getDisplayTemplateNameFromAttribute = (attribute) => {
11290
11268
  if (attribute?.subType === api.StringSubType.Attachments) {
11291
11269
  return exports.ContainerTemplate.Attachment;
@@ -13464,7 +13442,6 @@ exports.FeatureCardContext = FeatureCardContext;
13464
13442
  exports.FeatureCardDefaultHeader = FeatureCardDefaultHeader;
13465
13443
  exports.FeatureCardGradientHeader = FeatureCardGradientHeader;
13466
13444
  exports.FeatureCardHeader = FeatureCardHeader;
13467
- exports.FeatureCardIconHeader = FeatureCardIconHeader;
13468
13445
  exports.FeatureCardProvider = FeatureCardProvider;
13469
13446
  exports.FeatureCardSlideshowHeader = FeatureCardSlideshowHeader;
13470
13447
  exports.FeatureCardTitle = FeatureCardTitle;
@@ -13605,6 +13582,7 @@ exports.getSelectedFilterValue = getSelectedFilterValue;
13605
13582
  exports.getSlideshowImages = getSlideshowImages;
13606
13583
  exports.getSvgUrl = getSvgUrl;
13607
13584
  exports.getTemplateNameFromAttribute = getTemplateNameFromAttribute;
13585
+ exports.getThemeByName = getThemeByName;
13608
13586
  exports.getTotalFromAttributes = getTotalFromAttributes;
13609
13587
  exports.getTotalFromRelatedFeatures = getTotalFromRelatedFeatures;
13610
13588
  exports.hexToRgba = hexToRgba;