@evergis/uilib-gl 1.0.134 → 1.0.136
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.
|
@@ -19,6 +19,12 @@ export declare type IPreviewProps = ControlText & {
|
|
|
19
19
|
isOpen?: boolean;
|
|
20
20
|
onClose?: VoidFunction;
|
|
21
21
|
root?: HTMLElement | null;
|
|
22
|
+
/**
|
|
23
|
+
* Обработчик скачивания текущего изображения. Если задан, кнопка «Скачать» вызывает его
|
|
24
|
+
* вместо перехода по `src` — это нужно, когда файл требуется получить в момент клика
|
|
25
|
+
* (например, `src` показывает иконку типа файла, а скачать надо сам документ).
|
|
26
|
+
*/
|
|
27
|
+
onDownload?: (image: IPreviewImage, index: number) => void;
|
|
22
28
|
};
|
|
23
29
|
export declare type ImageSlideShowType = [{
|
|
24
30
|
chosenImage: IPreviewImage;
|
|
@@ -35,6 +41,7 @@ export interface IPreviewButtonProps {
|
|
|
35
41
|
}
|
|
36
42
|
export declare type IPreviewControlsProps = ControlText & {
|
|
37
43
|
chosenImage?: IPreviewImage;
|
|
44
|
+
onDownload?: VoidFunction;
|
|
38
45
|
fullscreen?: boolean;
|
|
39
46
|
toggleFullscreen?: VoidFunction;
|
|
40
47
|
close?: VoidFunction;
|
package/dist/uilib-gl.esm.js
CHANGED
|
@@ -25283,12 +25283,13 @@ const RangeNumberInputComponent = _ref => {
|
|
|
25283
25283
|
|
|
25284
25284
|
}, [minNumber, maxNumber]);
|
|
25285
25285
|
useEffect(() => {
|
|
25286
|
-
|
|
25287
|
-
|
|
25288
|
-
|
|
25289
|
-
|
|
25290
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25286
|
+
setRangeDate(prevRangeDate => {
|
|
25287
|
+
if (Array.isArray(prevRangeDate)) {
|
|
25288
|
+
return !prevRangeDate[0] && !prevRangeDate[1] ? [minDate, maxDate] : prevRangeDate;
|
|
25289
|
+
}
|
|
25291
25290
|
|
|
25291
|
+
return prevRangeDate || minDate;
|
|
25292
|
+
});
|
|
25292
25293
|
}, [minDate, maxDate]);
|
|
25293
25294
|
useEffect(() => {
|
|
25294
25295
|
if (isDate) {
|
|
@@ -26426,11 +26427,16 @@ const PreviewControlsComponent = _ref => {
|
|
|
26426
26427
|
fullScreenTitleText,
|
|
26427
26428
|
closeTitleText,
|
|
26428
26429
|
prevImgTitleText,
|
|
26429
|
-
nextImgTitleText
|
|
26430
|
+
nextImgTitleText,
|
|
26431
|
+
onDownload
|
|
26430
26432
|
} = _ref;
|
|
26431
26433
|
return React.createElement(React.Fragment, null, React.createElement(ControlsContainer, null, React.createElement(ControlContainer$1, {
|
|
26432
26434
|
withPadding: true
|
|
26433
|
-
}, chosenImage && React.createElement(
|
|
26435
|
+
}, chosenImage && (onDownload ? React.createElement(IconButton, {
|
|
26436
|
+
title: downloadTitleText || "Скачать",
|
|
26437
|
+
kind: "download",
|
|
26438
|
+
onClick: onDownload
|
|
26439
|
+
}) : React.createElement("a", {
|
|
26434
26440
|
href: chosenImage.src,
|
|
26435
26441
|
download: chosenImage.fileName,
|
|
26436
26442
|
target: "_blank",
|
|
@@ -26438,7 +26444,7 @@ const PreviewControlsComponent = _ref => {
|
|
|
26438
26444
|
}, React.createElement(IconButton, {
|
|
26439
26445
|
title: downloadTitleText || "Скачать",
|
|
26440
26446
|
kind: "download"
|
|
26441
|
-
})), React.createElement(IconButton, {
|
|
26447
|
+
}))), React.createElement(IconButton, {
|
|
26442
26448
|
title: fullScreenTitleText || "На весь экран",
|
|
26443
26449
|
kind: fullscreen ? "minimize" : "maximize",
|
|
26444
26450
|
onClick: toggleFullscreen
|
|
@@ -26662,7 +26668,8 @@ const PreviewComponent = _ref => {
|
|
|
26662
26668
|
closeTitleText,
|
|
26663
26669
|
prevImgTitleText,
|
|
26664
26670
|
nextImgTitleText,
|
|
26665
|
-
errorTitleText
|
|
26671
|
+
errorTitleText,
|
|
26672
|
+
onDownload
|
|
26666
26673
|
} = _ref;
|
|
26667
26674
|
const [{
|
|
26668
26675
|
chosenImageIndex,
|
|
@@ -26685,6 +26692,7 @@ const PreviewComponent = _ref => {
|
|
|
26685
26692
|
hasError: true
|
|
26686
26693
|
} : image), [images, failedSrcs]);
|
|
26687
26694
|
const decoratedChosenImage = useMemo(() => chosenImage ? decoratedImages[chosenImageIndex] ?? chosenImage : undefined, [chosenImage, chosenImageIndex, decoratedImages]);
|
|
26695
|
+
const handleDownload = useMemo(() => onDownload && decoratedChosenImage ? () => onDownload(decoratedChosenImage, chosenImageIndex) : undefined, [onDownload, decoratedChosenImage, chosenImageIndex]);
|
|
26688
26696
|
const shouldOpenPreview = useMemo(() => images.length > 0 && isOpen, [images, isOpen]);
|
|
26689
26697
|
return !shouldOpenPreview ? null : React.createElement(Portal, {
|
|
26690
26698
|
root: root
|
|
@@ -26701,7 +26709,8 @@ const PreviewComponent = _ref => {
|
|
|
26701
26709
|
fullScreenTitleText: fullScreenTitleText,
|
|
26702
26710
|
closeTitleText: closeTitleText,
|
|
26703
26711
|
prevImgTitleText: prevImgTitleText,
|
|
26704
|
-
nextImgTitleText: nextImgTitleText
|
|
26712
|
+
nextImgTitleText: nextImgTitleText,
|
|
26713
|
+
onDownload: handleDownload
|
|
26705
26714
|
}), React.createElement(PreviewSlideShow, {
|
|
26706
26715
|
images: decoratedImages,
|
|
26707
26716
|
chosenImageIndex: chosenImageIndex,
|