@expcat/tigercat-core 0.3.69 → 0.3.70
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/index.cjs +281 -2
- package/dist/index.d.cts +388 -1
- package/dist/index.d.ts +388 -1
- package/dist/index.js +239 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -104,6 +104,7 @@ __export(index_exports, {
|
|
|
104
104
|
ANIMATION_DURATION_FAST_MS: () => ANIMATION_DURATION_FAST_MS,
|
|
105
105
|
ANIMATION_DURATION_MS: () => ANIMATION_DURATION_MS,
|
|
106
106
|
ANIMATION_DURATION_SLOW_MS: () => ANIMATION_DURATION_SLOW_MS,
|
|
107
|
+
CROP_HANDLES: () => CROP_HANDLES,
|
|
107
108
|
CalendarIconPath: () => CalendarIconPath,
|
|
108
109
|
ChevronLeftIconPath: () => ChevronLeftIconPath,
|
|
109
110
|
ChevronRightIconPath: () => ChevronRightIconPath,
|
|
@@ -208,6 +209,7 @@ __export(index_exports, {
|
|
|
208
209
|
calculateCirclePath: () => calculateCirclePath,
|
|
209
210
|
calculatePagination: () => calculatePagination,
|
|
210
211
|
calculateStepStatus: () => calculateStepStatus,
|
|
212
|
+
calculateTransform: () => calculateTransform,
|
|
211
213
|
calendarSolidIcon20PathD: () => calendarSolidIcon20PathD,
|
|
212
214
|
captureActiveElement: () => captureActiveElement,
|
|
213
215
|
cardActionsClasses: () => cardActionsClasses,
|
|
@@ -249,6 +251,7 @@ __export(index_exports, {
|
|
|
249
251
|
chevronRightSolidIcon20PathD: () => chevronRightSolidIcon20PathD,
|
|
250
252
|
clampBarWidth: () => clampBarWidth,
|
|
251
253
|
clampPercentage: () => clampPercentage,
|
|
254
|
+
clampScale: () => clampScale,
|
|
252
255
|
clampSlideIndex: () => clampSlideIndex,
|
|
253
256
|
classNames: () => classNames,
|
|
254
257
|
clearFieldErrors: () => clearFieldErrors,
|
|
@@ -282,6 +285,7 @@ __export(index_exports, {
|
|
|
282
285
|
computeFloatingPosition: () => computeFloatingPosition,
|
|
283
286
|
computePieHoverOffset: () => computePieHoverOffset,
|
|
284
287
|
computePieLabelLine: () => computePieLabelLine,
|
|
288
|
+
constrainCropRect: () => constrainCropRect,
|
|
285
289
|
containerBaseClasses: () => containerBaseClasses,
|
|
286
290
|
containerCenteredClasses: () => containerCenteredClasses,
|
|
287
291
|
containerMaxWidthClasses: () => containerMaxWidthClasses,
|
|
@@ -297,6 +301,9 @@ __export(index_exports, {
|
|
|
297
301
|
createPieArcPath: () => createPieArcPath,
|
|
298
302
|
createPointScale: () => createPointScale,
|
|
299
303
|
createPolygonPath: () => createPolygonPath,
|
|
304
|
+
cropCanvas: () => cropCanvas,
|
|
305
|
+
cropUploadTriggerClasses: () => cropUploadTriggerClasses,
|
|
306
|
+
cropUploadTriggerDisabledClasses: () => cropUploadTriggerDisabledClasses,
|
|
300
307
|
datePickerBaseClasses: () => datePickerBaseClasses,
|
|
301
308
|
datePickerCalendarClasses: () => datePickerCalendarClasses,
|
|
302
309
|
datePickerCalendarGridClasses: () => datePickerCalendarGridClasses,
|
|
@@ -427,6 +434,7 @@ __export(index_exports, {
|
|
|
427
434
|
getContainerClasses: () => getContainerClasses,
|
|
428
435
|
getContainerHeight: () => getContainerHeight,
|
|
429
436
|
getContainerScrollTop: () => getContainerScrollTop,
|
|
437
|
+
getCropperHandleClasses: () => getCropperHandleClasses,
|
|
430
438
|
getCurrentTime: () => getCurrentTime,
|
|
431
439
|
getDatePickerDayCellClasses: () => getDatePickerDayCellClasses,
|
|
432
440
|
getDatePickerIconButtonClasses: () => getDatePickerIconButtonClasses,
|
|
@@ -474,6 +482,8 @@ __export(index_exports, {
|
|
|
474
482
|
getFormWizardLabels: () => getFormWizardLabels,
|
|
475
483
|
getGridColumnClasses: () => getGridColumnClasses,
|
|
476
484
|
getGutterStyles: () => getGutterStyles,
|
|
485
|
+
getImageImgClasses: () => getImageImgClasses,
|
|
486
|
+
getInitialCropRect: () => getInitialCropRect,
|
|
477
487
|
getInitials: () => getInitials,
|
|
478
488
|
getInputAffixClasses: () => getInputAffixClasses,
|
|
479
489
|
getInputClasses: () => getInputClasses,
|
|
@@ -545,6 +555,7 @@ __export(index_exports, {
|
|
|
545
555
|
getPopoverTitleClasses: () => getPopoverTitleClasses,
|
|
546
556
|
getPopoverTriggerClasses: () => getPopoverTriggerClasses,
|
|
547
557
|
getPrevSlideIndex: () => getPrevSlideIndex,
|
|
558
|
+
getPreviewNavState: () => getPreviewNavState,
|
|
548
559
|
getProgressTextColorClasses: () => getProgressTextColorClasses,
|
|
549
560
|
getProgressVariantClasses: () => getProgressVariantClasses,
|
|
550
561
|
getQuickJumperInputClasses: () => getQuickJumperInputClasses,
|
|
@@ -633,6 +644,7 @@ __export(index_exports, {
|
|
|
633
644
|
getTooltipTriggerClasses: () => getTooltipTriggerClasses,
|
|
634
645
|
getTotalPages: () => getTotalPages,
|
|
635
646
|
getTotalTextClasses: () => getTotalTextClasses,
|
|
647
|
+
getTouchDistance: () => getTouchDistance,
|
|
636
648
|
getTransformOrigin: () => getTransformOrigin,
|
|
637
649
|
getTreeNodeClasses: () => getTreeNodeClasses,
|
|
638
650
|
getTreeNodeExpandIconClasses: () => getTreeNodeExpandIconClasses,
|
|
@@ -656,6 +668,25 @@ __export(index_exports, {
|
|
|
656
668
|
iconSvgDefaultStrokeLinejoin: () => iconSvgDefaultStrokeLinejoin,
|
|
657
669
|
iconSvgDefaultStrokeWidth: () => iconSvgDefaultStrokeWidth,
|
|
658
670
|
iconWrapperClasses: () => iconWrapperClasses,
|
|
671
|
+
imageBaseClasses: () => imageBaseClasses,
|
|
672
|
+
imageCropperContainerClasses: () => imageCropperContainerClasses,
|
|
673
|
+
imageCropperDragAreaClasses: () => imageCropperDragAreaClasses,
|
|
674
|
+
imageCropperGuideClasses: () => imageCropperGuideClasses,
|
|
675
|
+
imageCropperImgClasses: () => imageCropperImgClasses,
|
|
676
|
+
imageCropperMaskClasses: () => imageCropperMaskClasses,
|
|
677
|
+
imageCropperSelectionClasses: () => imageCropperSelectionClasses,
|
|
678
|
+
imageErrorClasses: () => imageErrorClasses,
|
|
679
|
+
imageErrorIconPath: () => imageErrorIconPath,
|
|
680
|
+
imageLoadingClasses: () => imageLoadingClasses,
|
|
681
|
+
imagePreviewCloseBtnClasses: () => imagePreviewCloseBtnClasses,
|
|
682
|
+
imagePreviewCounterClasses: () => imagePreviewCounterClasses,
|
|
683
|
+
imagePreviewCursorClass: () => imagePreviewCursorClass,
|
|
684
|
+
imagePreviewImgClasses: () => imagePreviewImgClasses,
|
|
685
|
+
imagePreviewMaskClasses: () => imagePreviewMaskClasses,
|
|
686
|
+
imagePreviewNavBtnClasses: () => imagePreviewNavBtnClasses,
|
|
687
|
+
imagePreviewToolbarBtnClasses: () => imagePreviewToolbarBtnClasses,
|
|
688
|
+
imagePreviewToolbarClasses: () => imagePreviewToolbarClasses,
|
|
689
|
+
imagePreviewWrapperClasses: () => imagePreviewWrapperClasses,
|
|
659
690
|
initRovingTabIndex: () => initRovingTabIndex,
|
|
660
691
|
injectDropdownStyles: () => injectDropdownStyles,
|
|
661
692
|
injectLoadingAnimationStyles: () => injectLoadingAnimationStyles,
|
|
@@ -760,7 +791,9 @@ __export(index_exports, {
|
|
|
760
791
|
modalSizeClasses: () => modalSizeClasses,
|
|
761
792
|
modalTitleClasses: () => modalTitleClasses,
|
|
762
793
|
modalWrapperClasses: () => modalWrapperClasses,
|
|
794
|
+
moveCropRect: () => moveCropRect,
|
|
763
795
|
moveFocusInMenu: () => moveFocusInMenu,
|
|
796
|
+
nextIconPath: () => nextIconPath,
|
|
764
797
|
normalizeActiveKeys: () => normalizeActiveKeys,
|
|
765
798
|
normalizeChartPadding: () => normalizeChartPadding,
|
|
766
799
|
normalizeDate: () => normalizeDate,
|
|
@@ -793,6 +826,8 @@ __export(index_exports, {
|
|
|
793
826
|
popconfirmSuccessIconPath: () => popconfirmSuccessIconPath,
|
|
794
827
|
popconfirmWarningIconPath: () => popconfirmWarningIconPath,
|
|
795
828
|
prepareUploadFiles: () => prepareUploadFiles,
|
|
829
|
+
prevIconPath: () => prevIconPath,
|
|
830
|
+
previewCloseIconPath: () => previewCloseIconPath,
|
|
796
831
|
progressCircleBaseClasses: () => progressCircleBaseClasses,
|
|
797
832
|
progressCircleSizeClasses: () => progressCircleSizeClasses,
|
|
798
833
|
progressCircleTextClasses: () => progressCircleTextClasses,
|
|
@@ -817,8 +852,10 @@ __export(index_exports, {
|
|
|
817
852
|
replaceKeys: () => replaceKeys,
|
|
818
853
|
resetAreaGradientCounter: () => resetAreaGradientCounter,
|
|
819
854
|
resetBarGradientCounter: () => resetBarGradientCounter,
|
|
855
|
+
resetIconPath: () => resetIconPath,
|
|
820
856
|
resetLineGradientCounter: () => resetLineGradientCounter,
|
|
821
857
|
resetScatterGradientCounter: () => resetScatterGradientCounter,
|
|
858
|
+
resizeCropRect: () => resizeCropRect,
|
|
822
859
|
resolveChartPalette: () => resolveChartPalette,
|
|
823
860
|
resolveChartTooltipContent: () => resolveChartTooltipContent,
|
|
824
861
|
resolveLocaleText: () => resolveLocaleText,
|
|
@@ -940,6 +977,7 @@ __export(index_exports, {
|
|
|
940
977
|
to12HourFormat: () => to12HourFormat,
|
|
941
978
|
to24HourFormat: () => to24HourFormat,
|
|
942
979
|
toActivityTimelineItems: () => toActivityTimelineItems,
|
|
980
|
+
toCSSSize: () => toCSSSize,
|
|
943
981
|
toggleKey: () => toggleKey,
|
|
944
982
|
togglePanelKey: () => togglePanelKey,
|
|
945
983
|
treeBaseClasses: () => treeBaseClasses,
|
|
@@ -958,6 +996,7 @@ __export(index_exports, {
|
|
|
958
996
|
treeNodeLabelClasses: () => treeNodeLabelClasses,
|
|
959
997
|
treeNodeSelectedClasses: () => treeNodeSelectedClasses,
|
|
960
998
|
treeNodeWrapperClasses: () => treeNodeWrapperClasses,
|
|
999
|
+
uploadPlusIconPath: () => uploadPlusIconPath,
|
|
961
1000
|
uploadStatusIconColorClasses: () => uploadStatusIconColorClasses,
|
|
962
1001
|
uploadStatusIconSizeClasses: () => uploadStatusIconSizeClasses,
|
|
963
1002
|
validateCurrentPage: () => validateCurrentPage,
|
|
@@ -966,7 +1005,9 @@ __export(index_exports, {
|
|
|
966
1005
|
validateFileType: () => validateFileType,
|
|
967
1006
|
validateForm: () => validateForm,
|
|
968
1007
|
validateRule: () => validateRule,
|
|
969
|
-
version: () => version
|
|
1008
|
+
version: () => version,
|
|
1009
|
+
zoomInIconPath: () => zoomInIconPath,
|
|
1010
|
+
zoomOutIconPath: () => zoomOutIconPath
|
|
970
1011
|
});
|
|
971
1012
|
module.exports = __toCommonJS(index_exports);
|
|
972
1013
|
|
|
@@ -6028,6 +6069,203 @@ function getTextClasses(props) {
|
|
|
6028
6069
|
);
|
|
6029
6070
|
}
|
|
6030
6071
|
|
|
6072
|
+
// src/utils/image-utils.ts
|
|
6073
|
+
var imageBaseClasses = "relative inline-block overflow-hidden";
|
|
6074
|
+
function getImageImgClasses(fit) {
|
|
6075
|
+
const fitMap = {
|
|
6076
|
+
contain: "object-contain",
|
|
6077
|
+
cover: "object-cover",
|
|
6078
|
+
fill: "object-fill",
|
|
6079
|
+
none: "object-none",
|
|
6080
|
+
"scale-down": "object-scale-down"
|
|
6081
|
+
};
|
|
6082
|
+
return classNames("block w-full h-full", fitMap[fit]);
|
|
6083
|
+
}
|
|
6084
|
+
var imageErrorClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)]";
|
|
6085
|
+
var imageLoadingClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)] animate-pulse";
|
|
6086
|
+
var imagePreviewCursorClass = "cursor-pointer";
|
|
6087
|
+
var imageErrorIconPath = "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z";
|
|
6088
|
+
var zoomInIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7";
|
|
6089
|
+
var zoomOutIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7";
|
|
6090
|
+
var resetIconPath = "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15";
|
|
6091
|
+
var prevIconPath = "M15 19l-7-7 7-7";
|
|
6092
|
+
var nextIconPath = "M9 5l7 7-7 7";
|
|
6093
|
+
var previewCloseIconPath = "M6 18L18 6M6 6l12 12";
|
|
6094
|
+
var imagePreviewMaskClasses = "fixed inset-0 bg-[var(--tiger-image-mask,rgba(0,0,0,0.85))] transition-opacity";
|
|
6095
|
+
var imagePreviewWrapperClasses = "fixed inset-0 flex items-center justify-center select-none";
|
|
6096
|
+
var imagePreviewImgClasses = "max-w-none transition-transform duration-150 ease-out cursor-grab active:cursor-grabbing";
|
|
6097
|
+
var imagePreviewToolbarClasses = "absolute bottom-6 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white";
|
|
6098
|
+
var imagePreviewToolbarBtnClasses = "flex items-center justify-center w-8 h-8 rounded-full hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
6099
|
+
var imagePreviewNavBtnClasses = "absolute top-1/2 -translate-y-1/2 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
6100
|
+
var imagePreviewCloseBtnClasses = "absolute top-4 right-4 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50";
|
|
6101
|
+
var imagePreviewCounterClasses = "text-sm text-white/80 mx-2 tabular-nums";
|
|
6102
|
+
var imageCropperContainerClasses = "relative overflow-hidden bg-[var(--tiger-image-cropper-bg,#1a1a2e)] select-none touch-none";
|
|
6103
|
+
var imageCropperImgClasses = "absolute top-0 left-0 max-w-none pointer-events-none";
|
|
6104
|
+
var imageCropperMaskClasses = "absolute inset-0 pointer-events-none";
|
|
6105
|
+
var imageCropperSelectionClasses = "absolute border-2 border-[var(--tiger-image-cropper-border,#ffffff)] pointer-events-none";
|
|
6106
|
+
var imageCropperGuideClasses = "absolute border-[var(--tiger-image-cropper-border,rgba(255,255,255,0.4))] pointer-events-none";
|
|
6107
|
+
var imageCropperDragAreaClasses = "absolute cursor-move";
|
|
6108
|
+
function getCropperHandleClasses(handle) {
|
|
6109
|
+
const base = "absolute w-3 h-3 bg-[var(--tiger-image-cropper-border,#ffffff)] border border-[var(--tiger-image-cropper-handle-border,rgba(0,0,0,0.3))]";
|
|
6110
|
+
const positionMap = {
|
|
6111
|
+
nw: "-top-1.5 -left-1.5 cursor-nw-resize",
|
|
6112
|
+
n: "-top-1.5 left-1/2 -translate-x-1/2 cursor-n-resize",
|
|
6113
|
+
ne: "-top-1.5 -right-1.5 cursor-ne-resize",
|
|
6114
|
+
e: "top-1/2 -right-1.5 -translate-y-1/2 cursor-e-resize",
|
|
6115
|
+
se: "-bottom-1.5 -right-1.5 cursor-se-resize",
|
|
6116
|
+
s: "-bottom-1.5 left-1/2 -translate-x-1/2 cursor-s-resize",
|
|
6117
|
+
sw: "-bottom-1.5 -left-1.5 cursor-sw-resize",
|
|
6118
|
+
w: "top-1/2 -left-1.5 -translate-y-1/2 cursor-w-resize"
|
|
6119
|
+
};
|
|
6120
|
+
return classNames(base, positionMap[handle]);
|
|
6121
|
+
}
|
|
6122
|
+
var CROP_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w"];
|
|
6123
|
+
var cropUploadTriggerClasses = "inline-flex items-center justify-center gap-2 px-4 py-2 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-lg text-[var(--tiger-text-muted,#6b7280)] hover:border-[var(--tiger-primary,#2563eb)] hover:text-[var(--tiger-primary,#2563eb)] transition-colors cursor-pointer focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-2";
|
|
6124
|
+
var cropUploadTriggerDisabledClasses = "inline-flex items-center justify-center gap-2 px-4 py-2 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-lg text-[var(--tiger-text-muted,#9ca3af)] cursor-not-allowed opacity-50";
|
|
6125
|
+
var uploadPlusIconPath = "M12 4v16m8-8H4";
|
|
6126
|
+
function clampScale(scale, min, max) {
|
|
6127
|
+
return Math.min(Math.max(scale, min), max);
|
|
6128
|
+
}
|
|
6129
|
+
function calculateTransform(scale, offsetX, offsetY) {
|
|
6130
|
+
return `translate(${offsetX}px, ${offsetY}px) scale(${scale})`;
|
|
6131
|
+
}
|
|
6132
|
+
function getPreviewNavState(currentIndex, total) {
|
|
6133
|
+
return {
|
|
6134
|
+
hasPrev: currentIndex > 0,
|
|
6135
|
+
hasNext: currentIndex < total - 1,
|
|
6136
|
+
counter: total > 1 ? `${currentIndex + 1} / ${total}` : ""
|
|
6137
|
+
};
|
|
6138
|
+
}
|
|
6139
|
+
function constrainCropRect(rect, imageWidth, imageHeight, aspectRatio) {
|
|
6140
|
+
let { x, y, width, height } = rect;
|
|
6141
|
+
if (aspectRatio && aspectRatio > 0) {
|
|
6142
|
+
const currentRatio = width / height;
|
|
6143
|
+
if (currentRatio > aspectRatio) {
|
|
6144
|
+
width = height * aspectRatio;
|
|
6145
|
+
} else {
|
|
6146
|
+
height = width / aspectRatio;
|
|
6147
|
+
}
|
|
6148
|
+
}
|
|
6149
|
+
width = Math.min(width, imageWidth);
|
|
6150
|
+
height = Math.min(height, imageHeight);
|
|
6151
|
+
x = Math.max(0, Math.min(x, imageWidth - width));
|
|
6152
|
+
y = Math.max(0, Math.min(y, imageHeight - height));
|
|
6153
|
+
return { x, y, width, height };
|
|
6154
|
+
}
|
|
6155
|
+
function resizeCropRect(rect, handle, dx, dy, imageWidth, imageHeight, aspectRatio, minW = 20, minH = 20) {
|
|
6156
|
+
let { x, y, width, height } = rect;
|
|
6157
|
+
switch (handle) {
|
|
6158
|
+
case "nw":
|
|
6159
|
+
x += dx;
|
|
6160
|
+
y += dy;
|
|
6161
|
+
width -= dx;
|
|
6162
|
+
height -= dy;
|
|
6163
|
+
break;
|
|
6164
|
+
case "n":
|
|
6165
|
+
y += dy;
|
|
6166
|
+
height -= dy;
|
|
6167
|
+
break;
|
|
6168
|
+
case "ne":
|
|
6169
|
+
width += dx;
|
|
6170
|
+
y += dy;
|
|
6171
|
+
height -= dy;
|
|
6172
|
+
break;
|
|
6173
|
+
case "e":
|
|
6174
|
+
width += dx;
|
|
6175
|
+
break;
|
|
6176
|
+
case "se":
|
|
6177
|
+
width += dx;
|
|
6178
|
+
height += dy;
|
|
6179
|
+
break;
|
|
6180
|
+
case "s":
|
|
6181
|
+
height += dy;
|
|
6182
|
+
break;
|
|
6183
|
+
case "sw":
|
|
6184
|
+
x += dx;
|
|
6185
|
+
width -= dx;
|
|
6186
|
+
height += dy;
|
|
6187
|
+
break;
|
|
6188
|
+
case "w":
|
|
6189
|
+
x += dx;
|
|
6190
|
+
width -= dx;
|
|
6191
|
+
break;
|
|
6192
|
+
}
|
|
6193
|
+
if (width < minW) {
|
|
6194
|
+
if (handle.includes("w")) {
|
|
6195
|
+
x = rect.x + rect.width - minW;
|
|
6196
|
+
}
|
|
6197
|
+
width = minW;
|
|
6198
|
+
}
|
|
6199
|
+
if (height < minH) {
|
|
6200
|
+
if (handle.includes("n")) {
|
|
6201
|
+
y = rect.y + rect.height - minH;
|
|
6202
|
+
}
|
|
6203
|
+
height = minH;
|
|
6204
|
+
}
|
|
6205
|
+
if (aspectRatio && aspectRatio > 0) {
|
|
6206
|
+
const newRatio = width / height;
|
|
6207
|
+
if (handle === "n" || handle === "s" || handle === "nw" || handle === "sw" || handle === "ne" || handle === "se") {
|
|
6208
|
+
width = height * aspectRatio;
|
|
6209
|
+
}
|
|
6210
|
+
if (handle === "e" || handle === "w") {
|
|
6211
|
+
height = width / aspectRatio;
|
|
6212
|
+
}
|
|
6213
|
+
if (newRatio !== aspectRatio && (handle === "nw" || handle === "ne" || handle === "sw" || handle === "se")) {
|
|
6214
|
+
width = height * aspectRatio;
|
|
6215
|
+
}
|
|
6216
|
+
}
|
|
6217
|
+
return constrainCropRect({ x, y, width, height }, imageWidth, imageHeight, aspectRatio);
|
|
6218
|
+
}
|
|
6219
|
+
function moveCropRect(rect, dx, dy, boundW, boundH) {
|
|
6220
|
+
const x = Math.max(0, Math.min(rect.x + dx, boundW - rect.width));
|
|
6221
|
+
const y = Math.max(0, Math.min(rect.y + dy, boundH - rect.height));
|
|
6222
|
+
return { x, y, width: rect.width, height: rect.height };
|
|
6223
|
+
}
|
|
6224
|
+
function getInitialCropRect(imageWidth, imageHeight, aspectRatio) {
|
|
6225
|
+
const padding = 0.1;
|
|
6226
|
+
let cropW = imageWidth * (1 - padding * 2);
|
|
6227
|
+
let cropH = imageHeight * (1 - padding * 2);
|
|
6228
|
+
if (aspectRatio && aspectRatio > 0) {
|
|
6229
|
+
if (cropW / cropH > aspectRatio) {
|
|
6230
|
+
cropW = cropH * aspectRatio;
|
|
6231
|
+
} else {
|
|
6232
|
+
cropH = cropW / aspectRatio;
|
|
6233
|
+
}
|
|
6234
|
+
}
|
|
6235
|
+
return {
|
|
6236
|
+
x: (imageWidth - cropW) / 2,
|
|
6237
|
+
y: (imageHeight - cropH) / 2,
|
|
6238
|
+
width: cropW,
|
|
6239
|
+
height: cropH
|
|
6240
|
+
};
|
|
6241
|
+
}
|
|
6242
|
+
function cropCanvas(image, cropRect, displayWidth, displayHeight, outputType = "image/png", quality = 0.92) {
|
|
6243
|
+
const scaleX = image.naturalWidth / displayWidth;
|
|
6244
|
+
const scaleY = image.naturalHeight / displayHeight;
|
|
6245
|
+
const sx = cropRect.x * scaleX;
|
|
6246
|
+
const sy = cropRect.y * scaleY;
|
|
6247
|
+
const sw = cropRect.width * scaleX;
|
|
6248
|
+
const sh = cropRect.height * scaleY;
|
|
6249
|
+
const canvas = document.createElement("canvas");
|
|
6250
|
+
canvas.width = Math.round(sw);
|
|
6251
|
+
canvas.height = Math.round(sh);
|
|
6252
|
+
const ctx = canvas.getContext("2d");
|
|
6253
|
+
if (ctx) {
|
|
6254
|
+
ctx.drawImage(image, sx, sy, sw, sh, 0, 0, canvas.width, canvas.height);
|
|
6255
|
+
}
|
|
6256
|
+
const dataUrl = canvas.toDataURL(outputType, quality);
|
|
6257
|
+
return { canvas, dataUrl };
|
|
6258
|
+
}
|
|
6259
|
+
function getTouchDistance(touch1, touch2) {
|
|
6260
|
+
const dx = touch1.clientX - touch2.clientX;
|
|
6261
|
+
const dy = touch1.clientY - touch2.clientY;
|
|
6262
|
+
return Math.sqrt(dx * dx + dy * dy);
|
|
6263
|
+
}
|
|
6264
|
+
function toCSSSize(value) {
|
|
6265
|
+
if (value === void 0) return void 0;
|
|
6266
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
6267
|
+
}
|
|
6268
|
+
|
|
6031
6269
|
// src/utils/carousel-utils.ts
|
|
6032
6270
|
var carouselBaseClasses = "relative overflow-hidden w-full";
|
|
6033
6271
|
var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
|
|
@@ -7325,6 +7563,7 @@ var version = "0.2.0";
|
|
|
7325
7563
|
ANIMATION_DURATION_FAST_MS,
|
|
7326
7564
|
ANIMATION_DURATION_MS,
|
|
7327
7565
|
ANIMATION_DURATION_SLOW_MS,
|
|
7566
|
+
CROP_HANDLES,
|
|
7328
7567
|
CalendarIconPath,
|
|
7329
7568
|
ChevronLeftIconPath,
|
|
7330
7569
|
ChevronRightIconPath,
|
|
@@ -7429,6 +7668,7 @@ var version = "0.2.0";
|
|
|
7429
7668
|
calculateCirclePath,
|
|
7430
7669
|
calculatePagination,
|
|
7431
7670
|
calculateStepStatus,
|
|
7671
|
+
calculateTransform,
|
|
7432
7672
|
calendarSolidIcon20PathD,
|
|
7433
7673
|
captureActiveElement,
|
|
7434
7674
|
cardActionsClasses,
|
|
@@ -7470,6 +7710,7 @@ var version = "0.2.0";
|
|
|
7470
7710
|
chevronRightSolidIcon20PathD,
|
|
7471
7711
|
clampBarWidth,
|
|
7472
7712
|
clampPercentage,
|
|
7713
|
+
clampScale,
|
|
7473
7714
|
clampSlideIndex,
|
|
7474
7715
|
classNames,
|
|
7475
7716
|
clearFieldErrors,
|
|
@@ -7503,6 +7744,7 @@ var version = "0.2.0";
|
|
|
7503
7744
|
computeFloatingPosition,
|
|
7504
7745
|
computePieHoverOffset,
|
|
7505
7746
|
computePieLabelLine,
|
|
7747
|
+
constrainCropRect,
|
|
7506
7748
|
containerBaseClasses,
|
|
7507
7749
|
containerCenteredClasses,
|
|
7508
7750
|
containerMaxWidthClasses,
|
|
@@ -7518,6 +7760,9 @@ var version = "0.2.0";
|
|
|
7518
7760
|
createPieArcPath,
|
|
7519
7761
|
createPointScale,
|
|
7520
7762
|
createPolygonPath,
|
|
7763
|
+
cropCanvas,
|
|
7764
|
+
cropUploadTriggerClasses,
|
|
7765
|
+
cropUploadTriggerDisabledClasses,
|
|
7521
7766
|
datePickerBaseClasses,
|
|
7522
7767
|
datePickerCalendarClasses,
|
|
7523
7768
|
datePickerCalendarGridClasses,
|
|
@@ -7648,6 +7893,7 @@ var version = "0.2.0";
|
|
|
7648
7893
|
getContainerClasses,
|
|
7649
7894
|
getContainerHeight,
|
|
7650
7895
|
getContainerScrollTop,
|
|
7896
|
+
getCropperHandleClasses,
|
|
7651
7897
|
getCurrentTime,
|
|
7652
7898
|
getDatePickerDayCellClasses,
|
|
7653
7899
|
getDatePickerIconButtonClasses,
|
|
@@ -7695,6 +7941,8 @@ var version = "0.2.0";
|
|
|
7695
7941
|
getFormWizardLabels,
|
|
7696
7942
|
getGridColumnClasses,
|
|
7697
7943
|
getGutterStyles,
|
|
7944
|
+
getImageImgClasses,
|
|
7945
|
+
getInitialCropRect,
|
|
7698
7946
|
getInitials,
|
|
7699
7947
|
getInputAffixClasses,
|
|
7700
7948
|
getInputClasses,
|
|
@@ -7766,6 +8014,7 @@ var version = "0.2.0";
|
|
|
7766
8014
|
getPopoverTitleClasses,
|
|
7767
8015
|
getPopoverTriggerClasses,
|
|
7768
8016
|
getPrevSlideIndex,
|
|
8017
|
+
getPreviewNavState,
|
|
7769
8018
|
getProgressTextColorClasses,
|
|
7770
8019
|
getProgressVariantClasses,
|
|
7771
8020
|
getQuickJumperInputClasses,
|
|
@@ -7854,6 +8103,7 @@ var version = "0.2.0";
|
|
|
7854
8103
|
getTooltipTriggerClasses,
|
|
7855
8104
|
getTotalPages,
|
|
7856
8105
|
getTotalTextClasses,
|
|
8106
|
+
getTouchDistance,
|
|
7857
8107
|
getTransformOrigin,
|
|
7858
8108
|
getTreeNodeClasses,
|
|
7859
8109
|
getTreeNodeExpandIconClasses,
|
|
@@ -7877,6 +8127,25 @@ var version = "0.2.0";
|
|
|
7877
8127
|
iconSvgDefaultStrokeLinejoin,
|
|
7878
8128
|
iconSvgDefaultStrokeWidth,
|
|
7879
8129
|
iconWrapperClasses,
|
|
8130
|
+
imageBaseClasses,
|
|
8131
|
+
imageCropperContainerClasses,
|
|
8132
|
+
imageCropperDragAreaClasses,
|
|
8133
|
+
imageCropperGuideClasses,
|
|
8134
|
+
imageCropperImgClasses,
|
|
8135
|
+
imageCropperMaskClasses,
|
|
8136
|
+
imageCropperSelectionClasses,
|
|
8137
|
+
imageErrorClasses,
|
|
8138
|
+
imageErrorIconPath,
|
|
8139
|
+
imageLoadingClasses,
|
|
8140
|
+
imagePreviewCloseBtnClasses,
|
|
8141
|
+
imagePreviewCounterClasses,
|
|
8142
|
+
imagePreviewCursorClass,
|
|
8143
|
+
imagePreviewImgClasses,
|
|
8144
|
+
imagePreviewMaskClasses,
|
|
8145
|
+
imagePreviewNavBtnClasses,
|
|
8146
|
+
imagePreviewToolbarBtnClasses,
|
|
8147
|
+
imagePreviewToolbarClasses,
|
|
8148
|
+
imagePreviewWrapperClasses,
|
|
7880
8149
|
initRovingTabIndex,
|
|
7881
8150
|
injectDropdownStyles,
|
|
7882
8151
|
injectLoadingAnimationStyles,
|
|
@@ -7981,7 +8250,9 @@ var version = "0.2.0";
|
|
|
7981
8250
|
modalSizeClasses,
|
|
7982
8251
|
modalTitleClasses,
|
|
7983
8252
|
modalWrapperClasses,
|
|
8253
|
+
moveCropRect,
|
|
7984
8254
|
moveFocusInMenu,
|
|
8255
|
+
nextIconPath,
|
|
7985
8256
|
normalizeActiveKeys,
|
|
7986
8257
|
normalizeChartPadding,
|
|
7987
8258
|
normalizeDate,
|
|
@@ -8014,6 +8285,8 @@ var version = "0.2.0";
|
|
|
8014
8285
|
popconfirmSuccessIconPath,
|
|
8015
8286
|
popconfirmWarningIconPath,
|
|
8016
8287
|
prepareUploadFiles,
|
|
8288
|
+
prevIconPath,
|
|
8289
|
+
previewCloseIconPath,
|
|
8017
8290
|
progressCircleBaseClasses,
|
|
8018
8291
|
progressCircleSizeClasses,
|
|
8019
8292
|
progressCircleTextClasses,
|
|
@@ -8038,8 +8311,10 @@ var version = "0.2.0";
|
|
|
8038
8311
|
replaceKeys,
|
|
8039
8312
|
resetAreaGradientCounter,
|
|
8040
8313
|
resetBarGradientCounter,
|
|
8314
|
+
resetIconPath,
|
|
8041
8315
|
resetLineGradientCounter,
|
|
8042
8316
|
resetScatterGradientCounter,
|
|
8317
|
+
resizeCropRect,
|
|
8043
8318
|
resolveChartPalette,
|
|
8044
8319
|
resolveChartTooltipContent,
|
|
8045
8320
|
resolveLocaleText,
|
|
@@ -8161,6 +8436,7 @@ var version = "0.2.0";
|
|
|
8161
8436
|
to12HourFormat,
|
|
8162
8437
|
to24HourFormat,
|
|
8163
8438
|
toActivityTimelineItems,
|
|
8439
|
+
toCSSSize,
|
|
8164
8440
|
toggleKey,
|
|
8165
8441
|
togglePanelKey,
|
|
8166
8442
|
treeBaseClasses,
|
|
@@ -8179,6 +8455,7 @@ var version = "0.2.0";
|
|
|
8179
8455
|
treeNodeLabelClasses,
|
|
8180
8456
|
treeNodeSelectedClasses,
|
|
8181
8457
|
treeNodeWrapperClasses,
|
|
8458
|
+
uploadPlusIconPath,
|
|
8182
8459
|
uploadStatusIconColorClasses,
|
|
8183
8460
|
uploadStatusIconSizeClasses,
|
|
8184
8461
|
validateCurrentPage,
|
|
@@ -8187,5 +8464,7 @@ var version = "0.2.0";
|
|
|
8187
8464
|
validateFileType,
|
|
8188
8465
|
validateForm,
|
|
8189
8466
|
validateRule,
|
|
8190
|
-
version
|
|
8467
|
+
version,
|
|
8468
|
+
zoomInIconPath,
|
|
8469
|
+
zoomOutIconPath
|
|
8191
8470
|
});
|