@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.
- 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/types.d.ts +2 -2
- package/dist/components/Dashboard/utils/getThemeByName.d.ts +2 -0
- package/dist/components/Dashboard/utils/index.d.ts +1 -0
- package/dist/index.js +89 -111
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +90 -112
- package/dist/react.esm.js.map +1 -1
- package/package.json +2 -2
- 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
|
@@ -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
|
|
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<"
|
|
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 @@
|
|
|
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>;
|
|
@@ -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(
|
|
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 }
|
|
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.
|
|
8455
|
-
|
|
8456
|
-
|
|
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.
|
|
8675
|
+
const HeaderContainer = styled(uilibGl.Flex) `
|
|
8679
8676
|
display: flex;
|
|
8680
8677
|
flex-grow: 1;
|
|
8681
8678
|
flex-wrap: nowrap;
|
|
8682
|
-
width: calc(100% -
|
|
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
|
|
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,
|
|
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 {
|
|
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, {})] }) }) }) }));
|
|
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
|
-
|
|
8868
|
+
justify-content: center;
|
|
8869
|
+
width: 7.625rem;
|
|
8936
8870
|
height: 100%;
|
|
8937
8871
|
|
|
8938
|
-
span[kind]
|
|
8939
|
-
|
|
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
|
|
8904
|
+
const WithPaddingHeaderMixin = styled.css `
|
|
8966
8905
|
${Header} {
|
|
8967
|
-
width: calc(100%
|
|
8968
|
-
margin: -
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
|
|
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
|
|
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
|
-
|
|
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:
|
|
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;
|