@yogiswara/honcho-editor-ui 2.8.8 → 2.8.10
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.d.mts +1474 -0
- package/dist/index.d.ts +1474 -39
- package/dist/index.js +10960 -44
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +10939 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +11 -5
- package/dist/color.d.ts +0 -9
- package/dist/color.js +0 -9
- package/dist/components/editor/GalleryAlbum/AlbumImageGallery.d.ts +0 -8
- package/dist/components/editor/GalleryAlbum/AlbumImageGallery.js +0 -28
- package/dist/components/editor/GalleryAlbum/ImageItem.d.ts +0 -10
- package/dist/components/editor/GalleryAlbum/ImageItem.js +0 -81
- package/dist/components/editor/HAccordionAspectRatio.d.ts +0 -14
- package/dist/components/editor/HAccordionAspectRatio.js +0 -102
- package/dist/components/editor/HAccordionColor.d.ts +0 -16
- package/dist/components/editor/HAccordionColor.js +0 -282
- package/dist/components/editor/HAccordionColorAdjustment.d.ts +0 -35
- package/dist/components/editor/HAccordionColorAdjustment.js +0 -31
- package/dist/components/editor/HAccordionDetails.d.ts +0 -12
- package/dist/components/editor/HAccordionDetails.js +0 -183
- package/dist/components/editor/HAccordionLight.d.ts +0 -20
- package/dist/components/editor/HAccordionLight.js +0 -414
- package/dist/components/editor/HAccordionPreset.d.ts +0 -23
- package/dist/components/editor/HAccordionPreset.js +0 -52
- package/dist/components/editor/HAlertBox.d.ts +0 -8
- package/dist/components/editor/HAlertBox.js +0 -55
- package/dist/components/editor/HAspectRatioMobile.d.ts +0 -0
- package/dist/components/editor/HAspectRatioMobile.js +0 -1
- package/dist/components/editor/HBulkAccordionColorAdjustment.d.ts +0 -55
- package/dist/components/editor/HBulkAccordionColorAdjustment.js +0 -31
- package/dist/components/editor/HBulkAccordionColorAdjustmentColors.d.ts +0 -20
- package/dist/components/editor/HBulkAccordionColorAdjustmentColors.js +0 -121
- package/dist/components/editor/HBulkAccordionColorAdjustmentDetails.d.ts +0 -12
- package/dist/components/editor/HBulkAccordionColorAdjustmentDetails.js +0 -65
- package/dist/components/editor/HBulkAccordionColorAdjustmentLight.d.ts +0 -28
- package/dist/components/editor/HBulkAccordionColorAdjustmentLight.js +0 -177
- package/dist/components/editor/HBulkColorAdjustmentMobile.d.ts +0 -53
- package/dist/components/editor/HBulkColorAdjustmentMobile.js +0 -16
- package/dist/components/editor/HBulkColorMobile.d.ts +0 -20
- package/dist/components/editor/HBulkColorMobile.js +0 -121
- package/dist/components/editor/HBulkDetailsMobile.d.ts +0 -12
- package/dist/components/editor/HBulkDetailsMobile.js +0 -65
- package/dist/components/editor/HBulkLightMobile.d.ts +0 -28
- package/dist/components/editor/HBulkLightMobile.js +0 -192
- package/dist/components/editor/HBulkPreset.d.ts +0 -24
- package/dist/components/editor/HBulkPreset.js +0 -43
- package/dist/components/editor/HBulkPresetMobile.d.ts +0 -15
- package/dist/components/editor/HBulkPresetMobile.js +0 -26
- package/dist/components/editor/HDialogBox.d.ts +0 -18
- package/dist/components/editor/HDialogBox.js +0 -51
- package/dist/components/editor/HDialogCopy.d.ts +0 -41
- package/dist/components/editor/HDialogCopy.js +0 -80
- package/dist/components/editor/HFooter.d.ts +0 -12
- package/dist/components/editor/HFooter.js +0 -24
- package/dist/components/editor/HHeaderEditor.d.ts +0 -19
- package/dist/components/editor/HHeaderEditor.js +0 -36
- package/dist/components/editor/HImageEditorBulkDekstop.d.ts +0 -15
- package/dist/components/editor/HImageEditorBulkDekstop.js +0 -29
- package/dist/components/editor/HImageEditorBulkMobile.d.ts +0 -72
- package/dist/components/editor/HImageEditorBulkMobile.js +0 -81
- package/dist/components/editor/HImageEditorDekstop.d.ts +0 -15
- package/dist/components/editor/HImageEditorDekstop.js +0 -29
- package/dist/components/editor/HImageEditorMobile.d.ts +0 -53
- package/dist/components/editor/HImageEditorMobile.js +0 -92
- package/dist/components/editor/HImageEditorMobileLayout.d.ts +0 -14
- package/dist/components/editor/HImageEditorMobileLayout.js +0 -58
- package/dist/components/editor/HModalEditorDekstop.d.ts +0 -13
- package/dist/components/editor/HModalEditorDekstop.js +0 -22
- package/dist/components/editor/HModalMobile.d.ts +0 -13
- package/dist/components/editor/HModalMobile.js +0 -9
- package/dist/components/editor/HPresetDelete.d.ts +0 -7
- package/dist/components/editor/HPresetDelete.js +0 -7
- package/dist/components/editor/HPresetOptionMenu.d.ts +0 -9
- package/dist/components/editor/HPresetOptionMenu.js +0 -20
- package/dist/components/editor/HSliderColorMobile.d.ts +0 -16
- package/dist/components/editor/HSliderColorMobile.js +0 -270
- package/dist/components/editor/HSliderDetailsMobile.d.ts +0 -12
- package/dist/components/editor/HSliderDetailsMobile.js +0 -154
- package/dist/components/editor/HSliderLightMobile.d.ts +0 -20
- package/dist/components/editor/HSliderLightMobile.js +0 -420
- package/dist/components/editor/HTabAspectRatioMobile.d.ts +0 -0
- package/dist/components/editor/HTabAspectRatioMobile.js +0 -1
- package/dist/components/editor/HTabColorAdjustmentMobile.d.ts +0 -35
- package/dist/components/editor/HTabColorAdjustmentMobile.js +0 -8
- package/dist/components/editor/HTabPresetMobile.d.ts +0 -14
- package/dist/components/editor/HTabPresetMobile.js +0 -10
- package/dist/components/editor/HTextField.d.ts +0 -14
- package/dist/components/editor/HTextField.js +0 -51
- package/dist/components/editor/HWatermarkView.d.ts +0 -6
- package/dist/components/editor/HWatermarkView.js +0 -16
- package/dist/components/editor/svg/Tick.d.ts +0 -2
- package/dist/components/editor/svg/Tick.js +0 -6
- package/dist/components/modal/HModalDialog.d.ts +0 -12
- package/dist/components/modal/HModalDialog.js +0 -18
- package/dist/components/modal/HModalRename.d.ts +0 -14
- package/dist/components/modal/HModalRename.js +0 -35
- package/dist/hooks/demo/HonchoEditorBulkDemo.d.ts +0 -3
- package/dist/hooks/demo/HonchoEditorBulkDemo.js +0 -410
- package/dist/hooks/demo/HonchoEditorSingleCleanDemo.d.ts +0 -3
- package/dist/hooks/demo/HonchoEditorSingleCleanDemo.js +0 -354
- package/dist/hooks/demo/index.d.ts +0 -2
- package/dist/hooks/demo/index.js +0 -2
- package/dist/hooks/editor/type.d.ts +0 -174
- package/dist/hooks/editor/type.js +0 -1
- package/dist/hooks/editor/useHonchoEditorBulk.d.ts +0 -96
- package/dist/hooks/editor/useHonchoEditorBulk.js +0 -427
- package/dist/hooks/editor/useHonchoEditorSingle.d.ts +0 -44
- package/dist/hooks/editor/useHonchoEditorSingle.js +0 -163
- package/dist/hooks/useAdjustmentHistory.d.ts +0 -95
- package/dist/hooks/useAdjustmentHistory.js +0 -578
- package/dist/hooks/useAdjustmentHistoryBatch.d.ts +0 -177
- package/dist/hooks/useAdjustmentHistoryBatch.js +0 -1189
- package/dist/hooks/useGallerySwipe.d.ts +0 -36
- package/dist/hooks/useGallerySwipe.js +0 -344
- package/dist/hooks/usePaging.d.ts +0 -89
- package/dist/hooks/usePaging.js +0 -211
- package/dist/hooks/usePreset.d.ts +0 -82
- package/dist/hooks/usePreset.js +0 -344
- package/dist/lib/context/EditorContext.d.ts +0 -28
- package/dist/lib/context/EditorContext.js +0 -60
- package/dist/lib/context/EditorProcessingService.d.ts +0 -36
- package/dist/lib/context/EditorProcessingService.js +0 -249
- package/dist/lib/editor/honcho-editor.d.ts +0 -324
- package/dist/lib/editor/honcho-editor.js +0 -825
- package/dist/lib/hooks/useEditor.d.ts +0 -22
- package/dist/lib/hooks/useEditor.js +0 -35
- package/dist/lib/hooks/useEditorHeadless.d.ts +0 -34
- package/dist/lib/hooks/useEditorHeadless.js +0 -207
- package/dist/lib/hooks/useImageProcessor.d.ts +0 -18
- package/dist/lib/hooks/useImageProcessor.js +0 -113
- package/dist/setupTests.d.ts +0 -1
- package/dist/setupTests.js +0 -1
- package/dist/themes/colors.d.ts +0 -12
- package/dist/themes/colors.js +0 -12
- package/dist/themes/honchoTheme.d.ts +0 -25
- package/dist/themes/honchoTheme.js +0 -94
- package/dist/utils/adjustment.d.ts +0 -6
- package/dist/utils/adjustment.js +0 -48
- package/dist/utils/imageLoader.d.ts +0 -11
- package/dist/utils/imageLoader.js +0 -48
- package/dist/utils/isMobile.d.ts +0 -1
- package/dist/utils/isMobile.js +0 -5
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,1474 @@
|
|
|
1
|
+
import { SelectChangeEvent } from '@mui/material';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import React$1, { ReactElement } from 'react';
|
|
4
|
+
|
|
5
|
+
interface Log {
|
|
6
|
+
created_at: string;
|
|
7
|
+
updated_at: string;
|
|
8
|
+
}
|
|
9
|
+
interface ColorAdjustment {
|
|
10
|
+
temperature: number;
|
|
11
|
+
tint: number;
|
|
12
|
+
saturation: number;
|
|
13
|
+
vibrance: number;
|
|
14
|
+
exposure: number;
|
|
15
|
+
contrast: number;
|
|
16
|
+
highlights: number;
|
|
17
|
+
shadows: number;
|
|
18
|
+
whites: number;
|
|
19
|
+
blacks: number;
|
|
20
|
+
clarity: number;
|
|
21
|
+
sharpness: number;
|
|
22
|
+
}
|
|
23
|
+
interface TransformationAdjustment {
|
|
24
|
+
angle_score?: number;
|
|
25
|
+
direction?: "cw" | "ccw";
|
|
26
|
+
scale_score?: number;
|
|
27
|
+
keep_dimension?: boolean;
|
|
28
|
+
flip_mode?: "horizontal" | "vertical" | "mix";
|
|
29
|
+
aspect_ratio?: string;
|
|
30
|
+
width?: number;
|
|
31
|
+
height?: number;
|
|
32
|
+
}
|
|
33
|
+
interface Watermark {
|
|
34
|
+
path: string;
|
|
35
|
+
max_pct: [number, number];
|
|
36
|
+
anchor: [string, number | null, number[] | null];
|
|
37
|
+
rotate_deg: [number, "cw" | "ccw"];
|
|
38
|
+
}
|
|
39
|
+
interface EditorConfig {
|
|
40
|
+
color_adjustment: ColorAdjustment;
|
|
41
|
+
transformation_adjustment?: TransformationAdjustment[];
|
|
42
|
+
watermarks?: Watermark[];
|
|
43
|
+
}
|
|
44
|
+
interface Content {
|
|
45
|
+
key: string;
|
|
46
|
+
path: string;
|
|
47
|
+
size: number;
|
|
48
|
+
width: number;
|
|
49
|
+
height: number;
|
|
50
|
+
}
|
|
51
|
+
interface Content {
|
|
52
|
+
key: string;
|
|
53
|
+
path: string;
|
|
54
|
+
size: number;
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
}
|
|
58
|
+
interface Gallery {
|
|
59
|
+
id: string;
|
|
60
|
+
uid: string;
|
|
61
|
+
event_id: string;
|
|
62
|
+
download: Content;
|
|
63
|
+
download_edited: Content;
|
|
64
|
+
raw?: Content;
|
|
65
|
+
raw_edited?: Content;
|
|
66
|
+
raw_preview?: Content;
|
|
67
|
+
raw_thumbnail?: Content;
|
|
68
|
+
original?: Content;
|
|
69
|
+
original_edited?: Content;
|
|
70
|
+
large?: Content;
|
|
71
|
+
large_edited?: Content;
|
|
72
|
+
medium?: Content;
|
|
73
|
+
medium_edited?: Content;
|
|
74
|
+
small?: Content;
|
|
75
|
+
small_edited?: Content;
|
|
76
|
+
mini?: Content;
|
|
77
|
+
mini_edited?: Content;
|
|
78
|
+
create_from?: string[];
|
|
79
|
+
thumbnail: Content;
|
|
80
|
+
thumbnail_edited: Content;
|
|
81
|
+
is_original: boolean;
|
|
82
|
+
available: boolean;
|
|
83
|
+
show_gallery: boolean;
|
|
84
|
+
editor_config?: EditorConfig;
|
|
85
|
+
log: Log;
|
|
86
|
+
}
|
|
87
|
+
interface ResponseGalleryPaging {
|
|
88
|
+
gallery: Gallery[];
|
|
89
|
+
limit: number;
|
|
90
|
+
current_page: number;
|
|
91
|
+
prev_page: number;
|
|
92
|
+
next_page: number;
|
|
93
|
+
sum_of_image?: number;
|
|
94
|
+
}
|
|
95
|
+
interface EditorHistoryEntry {
|
|
96
|
+
id: string;
|
|
97
|
+
gallery_id: string;
|
|
98
|
+
event_id: string;
|
|
99
|
+
task_id: string;
|
|
100
|
+
editor_config: EditorConfig;
|
|
101
|
+
log: Log;
|
|
102
|
+
}
|
|
103
|
+
interface CreateEditorTaskRequest {
|
|
104
|
+
gallery_id: string;
|
|
105
|
+
task_id: string;
|
|
106
|
+
color_adjustment: ColorAdjustment;
|
|
107
|
+
replace_from?: string;
|
|
108
|
+
}
|
|
109
|
+
interface GetHistoryResponse {
|
|
110
|
+
current_task_id: string;
|
|
111
|
+
history: EditorHistoryEntry[];
|
|
112
|
+
}
|
|
113
|
+
interface GetGalleryUpdateTimestampResponse {
|
|
114
|
+
gallery: string[];
|
|
115
|
+
}
|
|
116
|
+
interface AdjustmentState {
|
|
117
|
+
tempScore: number;
|
|
118
|
+
tintScore: number;
|
|
119
|
+
vibranceScore: number;
|
|
120
|
+
saturationScore: number;
|
|
121
|
+
exposureScore: number;
|
|
122
|
+
highlightsScore: number;
|
|
123
|
+
shadowsScore: number;
|
|
124
|
+
whitesScore: number;
|
|
125
|
+
blacksScore: number;
|
|
126
|
+
contrastScore: number;
|
|
127
|
+
clarityScore: number;
|
|
128
|
+
sharpnessScore: number;
|
|
129
|
+
}
|
|
130
|
+
interface Preset$4 {
|
|
131
|
+
id: string;
|
|
132
|
+
name: string;
|
|
133
|
+
is_default: boolean;
|
|
134
|
+
temperature: number;
|
|
135
|
+
tint: number;
|
|
136
|
+
saturation: number;
|
|
137
|
+
vibrance: number;
|
|
138
|
+
exposure: number;
|
|
139
|
+
contrast: number;
|
|
140
|
+
highlights: number;
|
|
141
|
+
shadows: number;
|
|
142
|
+
whites: number;
|
|
143
|
+
blacks: number;
|
|
144
|
+
clarity: number;
|
|
145
|
+
sharpness: number;
|
|
146
|
+
}
|
|
147
|
+
interface Controller {
|
|
148
|
+
onGetImage(firebaseUid: string, imageID: string): Promise<Gallery>;
|
|
149
|
+
getImageList(firebaseUid: string, eventId: string, page: number): Promise<ResponseGalleryPaging>;
|
|
150
|
+
syncConfig(firebaseUid: string): Promise<void>;
|
|
151
|
+
handleBack(firebaseUid: string, imageID: string): void;
|
|
152
|
+
getPresets(firebaseUid: string): Promise<Preset$4[]>;
|
|
153
|
+
createPreset(firebaseUid: string, name: string, settings: AdjustmentState): Promise<void>;
|
|
154
|
+
deletePreset(firebaseUid: string, presetId: string): Promise<void>;
|
|
155
|
+
updatePreset(firebaseUid: string, data: Preset$4): Promise<void>;
|
|
156
|
+
createEditorConfig(firebaseUid: string, payload: CreateEditorTaskRequest): Promise<void>;
|
|
157
|
+
getEditorHistory(firebaseUid: string, imageID: string): Promise<GetHistoryResponse>;
|
|
158
|
+
getGalleryUpdateTimestamp(firebaseUid: string, eventID: string, timestamp: number): Promise<GetGalleryUpdateTimestampResponse>;
|
|
159
|
+
setHistoryIndex(firebaseUid: string, imageID: string, taskID: string): Promise<void>;
|
|
160
|
+
}
|
|
161
|
+
interface ImageItem {
|
|
162
|
+
id: string;
|
|
163
|
+
url: string;
|
|
164
|
+
file: File;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* temperature?: number; // -100 to 100
|
|
169
|
+
tint?: number; // -100 to 100
|
|
170
|
+
saturation?: number; // -100 to 100
|
|
171
|
+
vibrance?: number; // -100 to 100
|
|
172
|
+
exposure?: number; // -100 to 100
|
|
173
|
+
contrast?: number; // -100 to 100
|
|
174
|
+
highlights?: number; // -100 to 100
|
|
175
|
+
shadows?: number; // -100 to 100
|
|
176
|
+
whites?: number; // -100 to 100
|
|
177
|
+
blacks?: number; // -100 to 100
|
|
178
|
+
clarity?: number; // -100 to 100
|
|
179
|
+
sharpness?: number; // -100 to 100 Editor - TypeScript Definitions
|
|
180
|
+
*
|
|
181
|
+
* Type definitions for the Honcho Photo Editor JavaScript library.
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
interface AdjustmentValues {
|
|
185
|
+
temperature?: number; // -100 to 100
|
|
186
|
+
tint?: number; // -100 to 100
|
|
187
|
+
saturation?: number; // -1 to 1
|
|
188
|
+
vibrance?: number; // -1 to 1
|
|
189
|
+
exposure?: number; // -3 to 3
|
|
190
|
+
contrast?: number; // -1 to 1
|
|
191
|
+
highlights?: number; // -1 to 1
|
|
192
|
+
shadows?: number; // -1 to 1
|
|
193
|
+
whites?: number; // -1 to 1
|
|
194
|
+
blacks?: number; // -1 to 1
|
|
195
|
+
clarity?: number; // -1 to 1
|
|
196
|
+
sharpness?: number; // -1 to 1
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
interface ImageSize {
|
|
200
|
+
width: number;
|
|
201
|
+
height: number;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
interface AdjustmentRange {
|
|
205
|
+
min: number;
|
|
206
|
+
max: number;
|
|
207
|
+
default: number;
|
|
208
|
+
step: number;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
interface AdjustmentRanges {
|
|
212
|
+
temperature: AdjustmentRange;
|
|
213
|
+
tint: AdjustmentRange;
|
|
214
|
+
saturation: AdjustmentRange;
|
|
215
|
+
vibrance: AdjustmentRange;
|
|
216
|
+
exposure: AdjustmentRange;
|
|
217
|
+
contrast: AdjustmentRange;
|
|
218
|
+
highlights: AdjustmentRange;
|
|
219
|
+
shadows: AdjustmentRange;
|
|
220
|
+
whites: AdjustmentRange;
|
|
221
|
+
blacks: AdjustmentRange;
|
|
222
|
+
clarity: AdjustmentRange;
|
|
223
|
+
sharpness: AdjustmentRange;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
declare class HonchoEditor {
|
|
227
|
+
constructor();
|
|
228
|
+
|
|
229
|
+
// Initialization - must be called before any other methods
|
|
230
|
+
initialize(verbose?: boolean): Promise<boolean>;
|
|
231
|
+
|
|
232
|
+
// Image Loading
|
|
233
|
+
loadImageFromFile(file: File): Promise<ImageSize>;
|
|
234
|
+
loadImageFromUrl(url: string): Promise<ImageSize>;
|
|
235
|
+
loadImageFromImageElement(img: HTMLImageElement): ImageSize;
|
|
236
|
+
loadImageFromImageData(imageData: ImageData): ImageSize;
|
|
237
|
+
|
|
238
|
+
// Adjustments (all auto-trigger re-render)
|
|
239
|
+
setTemperature(value: number): void;
|
|
240
|
+
setTint(value: number): void;
|
|
241
|
+
setSaturation(value: number): void;
|
|
242
|
+
setVibrance(value: number): void;
|
|
243
|
+
setExposure(value: number): void;
|
|
244
|
+
setContrast(value: number): void;
|
|
245
|
+
setHighlights(value: number): void;
|
|
246
|
+
setShadows(value: number): void;
|
|
247
|
+
setWhites(value: number): void;
|
|
248
|
+
setBlacks(value: number): void;
|
|
249
|
+
setClarity(value: number): void;
|
|
250
|
+
setSharpness(value: number): void;
|
|
251
|
+
|
|
252
|
+
// Batch adjustments
|
|
253
|
+
setAdjustments(adjustments: AdjustmentValues): void;
|
|
254
|
+
|
|
255
|
+
// Reset all adjustments to default values
|
|
256
|
+
resetAdjustments(): void;
|
|
257
|
+
|
|
258
|
+
// Manual processing trigger - call this after setting adjustments
|
|
259
|
+
processImage(): void;
|
|
260
|
+
|
|
261
|
+
// Frame functionality
|
|
262
|
+
setFrame(frameData: Uint8Array, frameWidth: number, frameHeight: number, frameChannels: number): boolean;
|
|
263
|
+
setFrameFromImageData(frameImageData: ImageData): boolean;
|
|
264
|
+
setFrameFromCanvas(frameCanvas: HTMLCanvasElement): boolean;
|
|
265
|
+
clearFrame(): void;
|
|
266
|
+
hasFrame(): boolean;
|
|
267
|
+
|
|
268
|
+
// Convenience methods
|
|
269
|
+
processImageOneShot(
|
|
270
|
+
imageSource: File | ImageData | HTMLImageElement,
|
|
271
|
+
adjustments?: Partial<AdjustmentValues>,
|
|
272
|
+
frameSource?: File | ImageData | HTMLImageElement | null
|
|
273
|
+
): Promise<ImageData>;
|
|
274
|
+
|
|
275
|
+
// Rendering
|
|
276
|
+
renderToCanvas(canvas: HTMLCanvasElement): void; // GPU path <1ms
|
|
277
|
+
getProcessedImageData(): ImageData; // CPU path 50-100ms
|
|
278
|
+
|
|
279
|
+
// Utilities
|
|
280
|
+
getImageSize(): ImageSize;
|
|
281
|
+
getInitialized(): boolean;
|
|
282
|
+
getRawModule(): any;
|
|
283
|
+
|
|
284
|
+
// Cleanup
|
|
285
|
+
cleanup(): void;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
interface UseHonchoEditorSingleOptions {
|
|
289
|
+
controller: Controller;
|
|
290
|
+
initImageId: string;
|
|
291
|
+
firebaseUid: string;
|
|
292
|
+
}
|
|
293
|
+
interface UseHonchoEditorSingleState {
|
|
294
|
+
currentImageData: Gallery | null;
|
|
295
|
+
isGalleryLoading: boolean;
|
|
296
|
+
galleryError: string | null;
|
|
297
|
+
currentAdjustments: AdjustmentState;
|
|
298
|
+
isBatchMode: boolean;
|
|
299
|
+
canUndo: boolean;
|
|
300
|
+
canRedo: boolean;
|
|
301
|
+
isNextAvailable: boolean;
|
|
302
|
+
isPrevAvailable: boolean;
|
|
303
|
+
presets: Preset$4[];
|
|
304
|
+
activePreset: Preset$4 | null;
|
|
305
|
+
presetsLoading: boolean;
|
|
306
|
+
presetsError: string | null;
|
|
307
|
+
}
|
|
308
|
+
interface UseHonchoEditorSingleActions {
|
|
309
|
+
navigateNext: () => void;
|
|
310
|
+
navigatePrev: () => void;
|
|
311
|
+
updateAdjustment: (field: keyof AdjustmentState, value: number) => void;
|
|
312
|
+
setBatchMode: (enabled: boolean) => void;
|
|
313
|
+
startBatchMode: () => void;
|
|
314
|
+
endBatchMode: () => void;
|
|
315
|
+
undo: () => void;
|
|
316
|
+
redo: () => void;
|
|
317
|
+
reset: () => void;
|
|
318
|
+
loadPresets: () => Promise<void>;
|
|
319
|
+
applyPreset: (preset: Preset$4) => void;
|
|
320
|
+
createPreset: (name: string, adjustments: AdjustmentState) => Promise<Preset$4 | null>;
|
|
321
|
+
renamePreset: (presetId: string, newName: string) => Promise<boolean>;
|
|
322
|
+
deletePreset: (presetId: string) => Promise<void>;
|
|
323
|
+
getEditorAdjustments: () => AdjustmentValues;
|
|
324
|
+
}
|
|
325
|
+
declare function useHonchoEditorSingle({ controller, initImageId, firebaseUid }: UseHonchoEditorSingleOptions): {
|
|
326
|
+
state: UseHonchoEditorSingleState;
|
|
327
|
+
actions: UseHonchoEditorSingleActions;
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Configuration for image with adjustment state
|
|
332
|
+
*/
|
|
333
|
+
interface ImageAdjustmentConfig {
|
|
334
|
+
imageId: string;
|
|
335
|
+
/** Adjustment state for this image. If not provided, uses default (all zeros) */
|
|
336
|
+
adjustment?: AdjustmentState;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Batch adjustment state - maps image IDs to their adjustment states
|
|
340
|
+
*/
|
|
341
|
+
interface BatchAdjustmentState {
|
|
342
|
+
/** Currently selected images that are being actively adjusted */
|
|
343
|
+
currentSelection: {
|
|
344
|
+
[imageId: string]: AdjustmentState;
|
|
345
|
+
};
|
|
346
|
+
/** All images that have been selected/adjusted before (persistent state) */
|
|
347
|
+
allImages: {
|
|
348
|
+
[imageId: string]: AdjustmentState;
|
|
349
|
+
};
|
|
350
|
+
/** Track initial/baseline state for each image */
|
|
351
|
+
initialStates: {
|
|
352
|
+
[imageId: string]: AdjustmentState;
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Configuration options for the batch adjustment history hook
|
|
357
|
+
*/
|
|
358
|
+
interface BatchHistoryOptions {
|
|
359
|
+
/** Maximum number of history entries to keep. Use 'unlimited' for no limit */
|
|
360
|
+
maxSize?: number | 'unlimited';
|
|
361
|
+
/** Enable development warnings for performance issues */
|
|
362
|
+
devWarnings?: boolean;
|
|
363
|
+
/** Default adjustment state for new images */
|
|
364
|
+
defaultAdjustmentState?: Partial<AdjustmentState>;
|
|
365
|
+
/** Controller for backend operations */
|
|
366
|
+
controller?: Controller;
|
|
367
|
+
/** Firebase UID for backend operations */
|
|
368
|
+
firebaseUid?: string;
|
|
369
|
+
/** Event ID for backend operations */
|
|
370
|
+
eventId?: string;
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Information about the current batch history state
|
|
374
|
+
*/
|
|
375
|
+
interface BatchHistoryInfo {
|
|
376
|
+
/** Whether undo operation is available for selected images */
|
|
377
|
+
canUndo: boolean;
|
|
378
|
+
/** Whether redo operation is available for selected images */
|
|
379
|
+
canRedo: boolean;
|
|
380
|
+
/** Current position in history (0-based index) */
|
|
381
|
+
currentIndex: number;
|
|
382
|
+
/** Total number of states in history */
|
|
383
|
+
totalStates: number;
|
|
384
|
+
/** Number of currently selected images */
|
|
385
|
+
selectedCount: number;
|
|
386
|
+
/** Total number of images being managed */
|
|
387
|
+
totalImages: number;
|
|
388
|
+
/** Current size of history in memory */
|
|
389
|
+
historySize: number;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Actions available for batch history management
|
|
393
|
+
*/
|
|
394
|
+
interface BatchHistoryActions {
|
|
395
|
+
/** Apply adjustment deltas to selected images */
|
|
396
|
+
adjustSelected: (delta: Partial<AdjustmentState>) => void;
|
|
397
|
+
/** Apply preset values directly to selected images (preserves history) */
|
|
398
|
+
adjustSelectedWithPreset: (presetAdjustments: AdjustmentState) => void;
|
|
399
|
+
/** Undo last changes to selected images */
|
|
400
|
+
undo: () => void;
|
|
401
|
+
/** Redo next changes to selected images */
|
|
402
|
+
redo: () => void;
|
|
403
|
+
/** Reset selected images to default state */
|
|
404
|
+
reset: (imageIds?: string[]) => void;
|
|
405
|
+
/** Set selection with optional initial adjustments per image */
|
|
406
|
+
setSelection: (configs: ImageAdjustmentConfig[]) => void;
|
|
407
|
+
/** Sync/replace adjustment for images (clears their history) */
|
|
408
|
+
syncAdjustment: (configs: ImageAdjustmentConfig[]) => void;
|
|
409
|
+
/** Check for gallery updates and sync history for updated images */
|
|
410
|
+
syncGalleryUpdates: () => Promise<void>;
|
|
411
|
+
/** Add or remove image from selection */
|
|
412
|
+
toggleSelection: (imageId: string) => void;
|
|
413
|
+
/** Select all images */
|
|
414
|
+
selectAll: () => void;
|
|
415
|
+
/** Clear selection */
|
|
416
|
+
clearSelection: () => void;
|
|
417
|
+
/** Jump to specific index in history */
|
|
418
|
+
jumpToIndex: (index: number) => void;
|
|
419
|
+
/** Clear all history and start fresh */
|
|
420
|
+
clearHistory: () => void;
|
|
421
|
+
/** Get copy of current batch state */
|
|
422
|
+
getCurrentBatch: () => BatchAdjustmentState;
|
|
423
|
+
/** Sync entire batch state */
|
|
424
|
+
syncBatch: (newBatch: BatchAdjustmentState, targetIndex?: number) => void;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Configuration actions for runtime adjustment
|
|
428
|
+
*/
|
|
429
|
+
interface BatchHistoryConfig {
|
|
430
|
+
/** Set maximum history size */
|
|
431
|
+
setMaxSize: (size: number | 'unlimited') => void;
|
|
432
|
+
/** Get current memory usage estimate */
|
|
433
|
+
getMemoryUsage: () => number;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Return type for the useAdjustmentHistoryBatch hook
|
|
437
|
+
*/
|
|
438
|
+
interface UseAdjustmentHistoryBatchReturn {
|
|
439
|
+
/** Current batch adjustment state */
|
|
440
|
+
currentBatch: BatchAdjustmentState;
|
|
441
|
+
/** Currently selected image IDs */
|
|
442
|
+
selectedIds: string[];
|
|
443
|
+
/** All image IDs being managed */
|
|
444
|
+
allImageIds: string[];
|
|
445
|
+
/** Information about history state */
|
|
446
|
+
historyInfo: BatchHistoryInfo;
|
|
447
|
+
/** Available history actions */
|
|
448
|
+
actions: BatchHistoryActions;
|
|
449
|
+
/** Configuration options */
|
|
450
|
+
config: BatchHistoryConfig;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Advanced hook for managing batch AdjustmentState history with selective undo/redo functionality.
|
|
454
|
+
*
|
|
455
|
+
* **Pure State Management Design:**
|
|
456
|
+
* - Starts empty, no image loading functionality
|
|
457
|
+
* - Focus on state management and history tracking only
|
|
458
|
+
* - Selection-based operations with persistent state
|
|
459
|
+
* - Manual selection via `actions.setSelection()`
|
|
460
|
+
*
|
|
461
|
+
* **Key Features:**
|
|
462
|
+
* - **Current Selection**: Images actively being adjusted
|
|
463
|
+
* - **All Images**: Persistent state for every image touched
|
|
464
|
+
* - **Selective Operations**: Undo/redo only affects selected images
|
|
465
|
+
* - **Automatic State Persistence**: Images remain in allImages even when deselected
|
|
466
|
+
*
|
|
467
|
+
* **Typical Usage Flow:**
|
|
468
|
+
* ```typescript
|
|
469
|
+
* const { actions, currentBatch, selectedIds } = useAdjustmentHistoryBatch();
|
|
470
|
+
*
|
|
471
|
+
* // Select images (new images get default state automatically)
|
|
472
|
+
* actions.setSelection(['img1', 'img2', 'img3']);
|
|
473
|
+
*
|
|
474
|
+
* // Apply adjustments to selected images
|
|
475
|
+
* actions.adjustSelected({ exposureScore: 10 });
|
|
476
|
+
*
|
|
477
|
+
* // Change selection (img1, img2 state persists in allImages)
|
|
478
|
+
* actions.setSelection(['img3']);
|
|
479
|
+
*
|
|
480
|
+
* // Adjust only img3
|
|
481
|
+
* actions.adjustSelected({ contrastScore: 5 });
|
|
482
|
+
*
|
|
483
|
+
* // Undo affects only currently selected (img3)
|
|
484
|
+
* actions.undo();
|
|
485
|
+
* ```
|
|
486
|
+
*
|
|
487
|
+
* **State Structure:**
|
|
488
|
+
* - `currentBatch.currentSelection`: Currently selected images and their states
|
|
489
|
+
* - `currentBatch.allImages`: All images that have been selected/adjusted (persistent)
|
|
490
|
+
* - `selectedIds`: Array of currently selected image IDs
|
|
491
|
+
*
|
|
492
|
+
* @param options - Configuration options for history behavior
|
|
493
|
+
* @returns Object with current batch, selection, history info, actions, and config
|
|
494
|
+
*/
|
|
495
|
+
declare function useAdjustmentHistoryBatch(options?: BatchHistoryOptions): UseAdjustmentHistoryBatchReturn;
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Configuration options for the preset hook
|
|
499
|
+
*/
|
|
500
|
+
interface PresetOptions {
|
|
501
|
+
/** Enable development warnings for debugging */
|
|
502
|
+
devWarnings?: boolean;
|
|
503
|
+
/** Auto-load presets on hook initialization */
|
|
504
|
+
autoLoad?: boolean;
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Information about the current preset state
|
|
508
|
+
*/
|
|
509
|
+
interface PresetInfo {
|
|
510
|
+
/** Whether presets are currently being loaded */
|
|
511
|
+
isLoading: boolean;
|
|
512
|
+
/** Error message if any operation failed */
|
|
513
|
+
error: string | null;
|
|
514
|
+
/** Number of presets currently managed */
|
|
515
|
+
count: number;
|
|
516
|
+
/** Whether the hook has been initialized */
|
|
517
|
+
isInitialized: boolean;
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Actions available for preset management
|
|
521
|
+
*/
|
|
522
|
+
interface PresetActions {
|
|
523
|
+
/** Create a new preset */
|
|
524
|
+
create: (name: string, settings: AdjustmentState) => Promise<Preset$4 | null>;
|
|
525
|
+
/** Rename an existing preset */
|
|
526
|
+
rename: (presetId: string, newName: string) => Promise<boolean>;
|
|
527
|
+
/** Delete a preset */
|
|
528
|
+
delete: (presetId: string) => Promise<boolean>;
|
|
529
|
+
/** Load/refresh presets from backend */
|
|
530
|
+
load: () => Promise<void>;
|
|
531
|
+
/** Find preset that matches the given adjustment state */
|
|
532
|
+
findByAdjustments: (adjustments: AdjustmentState) => Preset$4 | null;
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Return type for the usePreset hook
|
|
536
|
+
*/
|
|
537
|
+
interface UsePresetReturn {
|
|
538
|
+
/** Current list of presets */
|
|
539
|
+
presets: Preset$4[];
|
|
540
|
+
/** Information about preset state */
|
|
541
|
+
info: PresetInfo;
|
|
542
|
+
/** Available preset actions */
|
|
543
|
+
actions: PresetActions;
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Hook for managing presets with backend communication through Controller.
|
|
547
|
+
*
|
|
548
|
+
* **Key Features:**
|
|
549
|
+
* - **Backend Communication**: All operations go through the provided Controller
|
|
550
|
+
* - **Local State Management**: Maintains local preset list for UI performance
|
|
551
|
+
* - **CRUD Operations**: Create, rename, delete, and list presets
|
|
552
|
+
* - **Error Handling**: Provides error states for failed operations
|
|
553
|
+
* - **Auto-loading**: Optional automatic preset loading on initialization
|
|
554
|
+
*
|
|
555
|
+
* **Typical Usage:**
|
|
556
|
+
* ```typescript
|
|
557
|
+
* const { presets, actions, info } = usePreset(controller, firebaseUid, { autoLoad: true });
|
|
558
|
+
*
|
|
559
|
+
* // Create preset
|
|
560
|
+
* const newPreset = await actions.create('My Preset', adjustmentState);
|
|
561
|
+
*
|
|
562
|
+
* // Rename preset
|
|
563
|
+
* const success = await actions.rename(presetId, 'New Name');
|
|
564
|
+
*
|
|
565
|
+
* // Delete preset
|
|
566
|
+
* const deleted = await actions.delete(presetId);
|
|
567
|
+
*
|
|
568
|
+
* // Manual reload
|
|
569
|
+
* await actions.load();
|
|
570
|
+
* ```
|
|
571
|
+
*
|
|
572
|
+
* @param controller - Backend controller for API communication
|
|
573
|
+
* @param firebaseUid - User identifier for backend operations
|
|
574
|
+
* @param options - Configuration options
|
|
575
|
+
* @returns Object with presets, info, and actions
|
|
576
|
+
*/
|
|
577
|
+
declare function usePreset(controller: Controller | null, firebaseUid: string, options?: PresetOptions): UsePresetReturn;
|
|
578
|
+
|
|
579
|
+
interface PhotoData {
|
|
580
|
+
key: string;
|
|
581
|
+
src: string;
|
|
582
|
+
original: string;
|
|
583
|
+
width: number;
|
|
584
|
+
height: number;
|
|
585
|
+
alt: string;
|
|
586
|
+
isSelected: boolean;
|
|
587
|
+
adjustments?: Partial<AdjustmentValues>;
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* Hook for bulk photo editing with multi-image backend synchronization.
|
|
591
|
+
*
|
|
592
|
+
* **Multi-Image Backend Sync:**
|
|
593
|
+
* - Each selected image maintains its own history and backend state
|
|
594
|
+
* - History operations (undo/redo) trigger separate controller.setHistoryIndex() calls for each selected image
|
|
595
|
+
* - Preset application triggers separate controller.createEditorConfig() calls for each selected image
|
|
596
|
+
* - Adjustment changes trigger separate controller.createEditorConfig() calls for each selected image
|
|
597
|
+
*
|
|
598
|
+
* **Key Features:**
|
|
599
|
+
* - Individual history tracking per image with backend persistence
|
|
600
|
+
* - Bulk operations that respect per-image differences
|
|
601
|
+
* - Automatic backend synchronization for all state changes
|
|
602
|
+
* - Comprehensive logging of multi-image operations
|
|
603
|
+
*/
|
|
604
|
+
declare function useHonchoEditorBulk(controller: Controller, eventID: string, firebaseUid: string): {
|
|
605
|
+
imageData: PhotoData[];
|
|
606
|
+
isLoading: boolean;
|
|
607
|
+
error: string | null;
|
|
608
|
+
selectedIds: string[];
|
|
609
|
+
hasMore: boolean;
|
|
610
|
+
handleBackCallbackBulk: () => void;
|
|
611
|
+
presets: Preset$4[];
|
|
612
|
+
selectedBulkPreset: string;
|
|
613
|
+
activePreset: Preset$4 | null;
|
|
614
|
+
handleSelectBulkPreset: (event: SelectChangeEvent<string>) => void;
|
|
615
|
+
presetActions: PresetActions;
|
|
616
|
+
handleToggleImageSelection: (imageId: string) => void;
|
|
617
|
+
handleLoadMore: () => Promise<void>;
|
|
618
|
+
handleRefresh: () => Promise<void>;
|
|
619
|
+
handleBulkTempDecreaseMax: () => void;
|
|
620
|
+
handleBulkTempDecrease: () => void;
|
|
621
|
+
handleBulkTempIncrease: () => void;
|
|
622
|
+
handleBulkTempIncreaseMax: () => void;
|
|
623
|
+
handleBulkTintDecreaseMax: () => void;
|
|
624
|
+
handleBulkTintDecrease: () => void;
|
|
625
|
+
handleBulkTintIncrease: () => void;
|
|
626
|
+
handleBulkTintIncreaseMax: () => void;
|
|
627
|
+
handleBulkVibranceDecreaseMax: () => void;
|
|
628
|
+
handleBulkVibranceDecrease: () => void;
|
|
629
|
+
handleBulkVibranceIncrease: () => void;
|
|
630
|
+
handleBulkVibranceIncreaseMax: () => void;
|
|
631
|
+
handleBulkSaturationDecreaseMax: () => void;
|
|
632
|
+
handleBulkSaturationDecrease: () => void;
|
|
633
|
+
handleBulkSaturationIncrease: () => void;
|
|
634
|
+
handleBulkSaturationIncreaseMax: () => void;
|
|
635
|
+
handleBulkExposureDecreaseMax: () => void;
|
|
636
|
+
handleBulkExposureDecrease: () => void;
|
|
637
|
+
handleBulkExposureIncrease: () => void;
|
|
638
|
+
handleBulkExposureIncreaseMax: () => void;
|
|
639
|
+
handleBulkContrastDecreaseMax: () => void;
|
|
640
|
+
handleBulkContrastDecrease: () => void;
|
|
641
|
+
handleBulkContrastIncrease: () => void;
|
|
642
|
+
handleBulkContrastIncreaseMax: () => void;
|
|
643
|
+
handleBulkHighlightsDecreaseMax: () => void;
|
|
644
|
+
handleBulkHighlightsDecrease: () => void;
|
|
645
|
+
handleBulkHighlightsIncrease: () => void;
|
|
646
|
+
handleBulkHighlightsIncreaseMax: () => void;
|
|
647
|
+
handleBulkShadowsDecreaseMax: () => void;
|
|
648
|
+
handleBulkShadowsDecrease: () => void;
|
|
649
|
+
handleBulkShadowsIncrease: () => void;
|
|
650
|
+
handleBulkShadowsIncreaseMax: () => void;
|
|
651
|
+
handleBulkWhitesDecreaseMax: () => void;
|
|
652
|
+
handleBulkWhitesDecrease: () => void;
|
|
653
|
+
handleBulkWhitesIncrease: () => void;
|
|
654
|
+
handleBulkWhitesIncreaseMax: () => void;
|
|
655
|
+
handleBulkBlacksDecreaseMax: () => void;
|
|
656
|
+
handleBulkBlacksDecrease: () => void;
|
|
657
|
+
handleBulkBlacksIncrease: () => void;
|
|
658
|
+
handleBulkBlacksIncreaseMax: () => void;
|
|
659
|
+
handleBulkClarityDecreaseMax: () => void;
|
|
660
|
+
handleBulkClarityDecrease: () => void;
|
|
661
|
+
handleBulkClarityIncrease: () => void;
|
|
662
|
+
handleBulkClarityIncreaseMax: () => void;
|
|
663
|
+
handleBulkSharpnessDecreaseMax: () => void;
|
|
664
|
+
handleBulkSharpnessDecrease: () => void;
|
|
665
|
+
handleBulkSharpnessIncrease: () => void;
|
|
666
|
+
handleBulkSharpnessIncreaseMax: () => void;
|
|
667
|
+
handleUndo: () => void;
|
|
668
|
+
handleRedo: () => void;
|
|
669
|
+
handleReset: (imageIds?: string[]) => void;
|
|
670
|
+
historyInfo: BatchHistoryInfo;
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
interface Props$i {
|
|
674
|
+
anchorEl?: null | HTMLElement;
|
|
675
|
+
valueSelect?: string;
|
|
676
|
+
isPasteEnabled?: boolean;
|
|
677
|
+
canUndo: boolean;
|
|
678
|
+
canRedo: boolean;
|
|
679
|
+
onBack?: () => void;
|
|
680
|
+
onUndo?: () => void;
|
|
681
|
+
onRedo?: () => void;
|
|
682
|
+
onRevert?: () => void;
|
|
683
|
+
onCopyEdit?: () => void;
|
|
684
|
+
onPasteEdit?: () => void;
|
|
685
|
+
onMenuClick?: (event: React$1.MouseEvent<HTMLElement>) => void;
|
|
686
|
+
onMenuClose?: () => void;
|
|
687
|
+
onSelectButton?: () => void;
|
|
688
|
+
}
|
|
689
|
+
declare function HHeaderEditor(props: Props$i): react_jsx_runtime.JSX.Element;
|
|
690
|
+
|
|
691
|
+
interface Props$h {
|
|
692
|
+
anchorElZoom: null | HTMLElement;
|
|
693
|
+
onScale: (event: React$1.MouseEvent<HTMLElement>) => void;
|
|
694
|
+
onZoomMenuClose: () => void;
|
|
695
|
+
zoomLevelText: string;
|
|
696
|
+
onZoomAction: (zoomLevel: string) => void;
|
|
697
|
+
onShowOriginal?: () => void;
|
|
698
|
+
onShowEdited?: () => void;
|
|
699
|
+
}
|
|
700
|
+
declare function HFooter(props: Props$h): react_jsx_runtime.JSX.Element;
|
|
701
|
+
|
|
702
|
+
interface Props$g {
|
|
703
|
+
tempScore: number;
|
|
704
|
+
tintScore: number;
|
|
705
|
+
vibranceScore: number;
|
|
706
|
+
saturationScore: number;
|
|
707
|
+
exposureScore: number;
|
|
708
|
+
HighlightsScore: number;
|
|
709
|
+
shadowsScore: number;
|
|
710
|
+
whitesScore: number;
|
|
711
|
+
blacksScore: number;
|
|
712
|
+
contrastScore: number;
|
|
713
|
+
clarityScore: number;
|
|
714
|
+
sharpnessScore: number;
|
|
715
|
+
expandedPanels: string[];
|
|
716
|
+
setTempScore: (field: keyof AdjustmentState, value: number) => void;
|
|
717
|
+
setTintScore: (field: keyof AdjustmentState, value: number) => void;
|
|
718
|
+
setExposureScore: (field: keyof AdjustmentState, value: number) => void;
|
|
719
|
+
setVibranceScore: (field: keyof AdjustmentState, value: number) => void;
|
|
720
|
+
setSaturationScore: (field: keyof AdjustmentState, value: number) => void;
|
|
721
|
+
setHighlightsScore: (field: keyof AdjustmentState, value: number) => void;
|
|
722
|
+
setShadowsScore: (field: keyof AdjustmentState, value: number) => void;
|
|
723
|
+
setWhitesScore: (field: keyof AdjustmentState, value: number) => void;
|
|
724
|
+
setBlacksScore: (field: keyof AdjustmentState, value: number) => void;
|
|
725
|
+
setContrastScore: (field: keyof AdjustmentState, value: number) => void;
|
|
726
|
+
setClarityScore: (field: keyof AdjustmentState, value: number) => void;
|
|
727
|
+
setSharpnessScore: (field: keyof AdjustmentState, value: number) => void;
|
|
728
|
+
onPanelChange: (panel: string) => (event: React$1.SyntheticEvent, isExpanded: boolean) => void;
|
|
729
|
+
isBatchMode: boolean;
|
|
730
|
+
onDragStart: () => void;
|
|
731
|
+
onDragEnd: () => void;
|
|
732
|
+
}
|
|
733
|
+
declare function HAccordionColorAdjustment(props: Props$g): react_jsx_runtime.JSX.Element;
|
|
734
|
+
|
|
735
|
+
type Preset$3 = {
|
|
736
|
+
id: string;
|
|
737
|
+
name: string;
|
|
738
|
+
};
|
|
739
|
+
interface Props$f {
|
|
740
|
+
presets: Preset$3[];
|
|
741
|
+
expandedPanels: string[];
|
|
742
|
+
selectedPreset: string | null;
|
|
743
|
+
presetMenuAnchorEl: null | HTMLElement;
|
|
744
|
+
activePresetMenuId: string | null;
|
|
745
|
+
onChange: (panel: string) => (event: React$1.SyntheticEvent, isExpanded: boolean) => void;
|
|
746
|
+
onOpenPresetModal: () => void;
|
|
747
|
+
onOpenWatermarkView: () => void;
|
|
748
|
+
onSelectPreset: (id: string) => void;
|
|
749
|
+
onPresetMenuClick: (event: React$1.MouseEvent<HTMLElement>, presetId: string) => void;
|
|
750
|
+
onPresetMenuClose: () => void;
|
|
751
|
+
onRemovePreset: () => void;
|
|
752
|
+
onRenamePreset: () => void;
|
|
753
|
+
onDeletePreset: () => void;
|
|
754
|
+
}
|
|
755
|
+
declare function HAccordionPreset(props: Props$f): react_jsx_runtime.JSX.Element;
|
|
756
|
+
|
|
757
|
+
interface Props$e {
|
|
758
|
+
open: boolean;
|
|
759
|
+
title: React$1.ReactNode;
|
|
760
|
+
description?: React$1.ReactNode | ReactElement;
|
|
761
|
+
onClose?: () => void;
|
|
762
|
+
action?: React$1.ReactNode;
|
|
763
|
+
actionAdjust?: React$1.ReactNode;
|
|
764
|
+
}
|
|
765
|
+
declare function HBaseDialog(props: Props$e): react_jsx_runtime.JSX.Element;
|
|
766
|
+
declare function HDialogForPreset(props: Props$e): react_jsx_runtime.JSX.Element;
|
|
767
|
+
|
|
768
|
+
type CheckState = {
|
|
769
|
+
[key: string]: boolean;
|
|
770
|
+
};
|
|
771
|
+
interface Props$d {
|
|
772
|
+
colorChecks: CheckState;
|
|
773
|
+
lightChecks: CheckState;
|
|
774
|
+
detailsChecks: CheckState;
|
|
775
|
+
expanded: {
|
|
776
|
+
color: boolean;
|
|
777
|
+
light: boolean;
|
|
778
|
+
details: boolean;
|
|
779
|
+
};
|
|
780
|
+
onCopyEdit: () => void;
|
|
781
|
+
onParentChange: (event: React$1.ChangeEvent<HTMLInputElement>, setter: React$1.Dispatch<React$1.SetStateAction<any>>) => void;
|
|
782
|
+
onChildChange: (event: React$1.ChangeEvent<HTMLInputElement>, setter: React$1.Dispatch<React$1.SetStateAction<any>>) => void;
|
|
783
|
+
onToggleExpand: (section: 'color' | 'light' | 'details') => void;
|
|
784
|
+
setColorChecks: React$1.Dispatch<React$1.SetStateAction<any>>;
|
|
785
|
+
setLightChecks: React$1.Dispatch<React$1.SetStateAction<any>>;
|
|
786
|
+
setDetailsChecks: React$1.Dispatch<React$1.SetStateAction<any>>;
|
|
787
|
+
}
|
|
788
|
+
declare function HDialogCopy(props: Props$d): react_jsx_runtime.JSX.Element;
|
|
789
|
+
interface PropsPreset {
|
|
790
|
+
colorChecks: CheckState;
|
|
791
|
+
lightChecks: CheckState;
|
|
792
|
+
detailsChecks: CheckState;
|
|
793
|
+
expanded: {
|
|
794
|
+
color: boolean;
|
|
795
|
+
light: boolean;
|
|
796
|
+
details: boolean;
|
|
797
|
+
};
|
|
798
|
+
onParentChange: (event: React$1.ChangeEvent<HTMLInputElement>, setter: React$1.Dispatch<React$1.SetStateAction<any>>) => void;
|
|
799
|
+
onChildChange: (event: React$1.ChangeEvent<HTMLInputElement>, setter: React$1.Dispatch<React$1.SetStateAction<any>>) => void;
|
|
800
|
+
onToggleExpand: (section: 'color' | 'light' | 'details') => void;
|
|
801
|
+
setColorChecks: React$1.Dispatch<React$1.SetStateAction<any>>;
|
|
802
|
+
setLightChecks: React$1.Dispatch<React$1.SetStateAction<any>>;
|
|
803
|
+
setDetailsChecks: React$1.Dispatch<React$1.SetStateAction<any>>;
|
|
804
|
+
descriptionOnCopy?: string;
|
|
805
|
+
}
|
|
806
|
+
declare function HDialogPreset(propsPreset: PropsPreset): react_jsx_runtime.JSX.Element;
|
|
807
|
+
|
|
808
|
+
type Preset$2 = {
|
|
809
|
+
id: string;
|
|
810
|
+
name: string;
|
|
811
|
+
};
|
|
812
|
+
interface Props$c {
|
|
813
|
+
presets: Preset$2[];
|
|
814
|
+
activePanel: string;
|
|
815
|
+
activeSubPanel: string;
|
|
816
|
+
setActivePanel: (tab: string) => void;
|
|
817
|
+
setActiveSubPanel: (subTab: string) => void;
|
|
818
|
+
activeTab: string;
|
|
819
|
+
innerRef?: React$1.Ref<HTMLDivElement>;
|
|
820
|
+
panelRef: React$1.RefObject<HTMLDivElement>;
|
|
821
|
+
contentRef: React$1.RefObject<HTMLDivElement | null>;
|
|
822
|
+
panelHeight: number;
|
|
823
|
+
handleDragStart: (e: React$1.MouseEvent | React$1.TouchEvent) => void;
|
|
824
|
+
onContentHeightChange: (height: number) => void;
|
|
825
|
+
tempScore: number;
|
|
826
|
+
tintScore: number;
|
|
827
|
+
vibranceScore: number;
|
|
828
|
+
saturationScore: number;
|
|
829
|
+
exposureScore: number;
|
|
830
|
+
highlightsScore: number;
|
|
831
|
+
shadowScore: number;
|
|
832
|
+
whiteScore: number;
|
|
833
|
+
blackScore: number;
|
|
834
|
+
contrastScore: number;
|
|
835
|
+
clarityScore: number;
|
|
836
|
+
sharpnessScore: number;
|
|
837
|
+
onTempChange: (field: keyof AdjustmentState, value: number) => void;
|
|
838
|
+
onTintChange: (field: keyof AdjustmentState, value: number) => void;
|
|
839
|
+
onVibranceChange: (field: keyof AdjustmentState, value: number) => void;
|
|
840
|
+
onSaturationChange: (field: keyof AdjustmentState, value: number) => void;
|
|
841
|
+
onExposureChange: (field: keyof AdjustmentState, value: number) => void;
|
|
842
|
+
onHighlightsChange: (field: keyof AdjustmentState, value: number) => void;
|
|
843
|
+
onShadowsChange: (field: keyof AdjustmentState, value: number) => void;
|
|
844
|
+
onWhitesChange: (field: keyof AdjustmentState, value: number) => void;
|
|
845
|
+
onBlacksChange: (field: keyof AdjustmentState, value: number) => void;
|
|
846
|
+
onContrastChange: (field: keyof AdjustmentState, value: number) => void;
|
|
847
|
+
onClarityChange: (field: keyof AdjustmentState, value: number) => void;
|
|
848
|
+
onSharpnessChange: (field: keyof AdjustmentState, value: number) => void;
|
|
849
|
+
isBatchMode: boolean;
|
|
850
|
+
onDragStart: () => void;
|
|
851
|
+
onDragEnd: () => void;
|
|
852
|
+
selectedPreset: string | null;
|
|
853
|
+
onSelectPreset: (id: string) => void;
|
|
854
|
+
onOpenPresetModal: () => void;
|
|
855
|
+
presetOptionModal: (event: React$1.MouseEvent<HTMLElement>, presetId: string) => void;
|
|
856
|
+
}
|
|
857
|
+
declare function HImageEditorMobile(props: Props$c): react_jsx_runtime.JSX.Element;
|
|
858
|
+
|
|
859
|
+
interface Props$b {
|
|
860
|
+
activePanel: string;
|
|
861
|
+
isPanelOpen: boolean;
|
|
862
|
+
anchorElZoom: null | HTMLElement;
|
|
863
|
+
children: React$1.ReactNode;
|
|
864
|
+
footer: React$1.ReactNode;
|
|
865
|
+
setActivePanel: (accordion: string) => void;
|
|
866
|
+
onScale: (event: React$1.MouseEvent<HTMLElement>) => void;
|
|
867
|
+
onBeforeAfter: () => void;
|
|
868
|
+
onZoomMenuClose: () => void;
|
|
869
|
+
onZoomAction: (zoomLevel: string) => void;
|
|
870
|
+
}
|
|
871
|
+
declare function HImageEditorDesktop(props: Props$b): react_jsx_runtime.JSX.Element;
|
|
872
|
+
|
|
873
|
+
interface Props$a {
|
|
874
|
+
activePanel: string;
|
|
875
|
+
isPanelOpen: boolean;
|
|
876
|
+
anchorElZoom: null | HTMLElement;
|
|
877
|
+
children: React$1.ReactNode;
|
|
878
|
+
footer: React$1.ReactNode;
|
|
879
|
+
setActivePanel: (accordion: string) => void;
|
|
880
|
+
onScale: (event: React$1.MouseEvent<HTMLElement>) => void;
|
|
881
|
+
onBeforeAfter: () => void;
|
|
882
|
+
onZoomMenuClose: () => void;
|
|
883
|
+
onZoomAction: (zoomLevel: string) => void;
|
|
884
|
+
}
|
|
885
|
+
declare function HImageEditorBulkDekstop(props: Props$a): react_jsx_runtime.JSX.Element;
|
|
886
|
+
|
|
887
|
+
type Preset$1 = {
|
|
888
|
+
id: string;
|
|
889
|
+
name: string;
|
|
890
|
+
};
|
|
891
|
+
interface Props$9 {
|
|
892
|
+
presets: Preset$1[];
|
|
893
|
+
activePanel: string;
|
|
894
|
+
activeSubPanel: string;
|
|
895
|
+
setActivePanel: (tab: string) => void;
|
|
896
|
+
setActiveSubPanel: (subTab: string) => void;
|
|
897
|
+
panelRef: React$1.RefObject<HTMLDivElement>;
|
|
898
|
+
contentRef: React$1.RefObject<HTMLDivElement | null>;
|
|
899
|
+
panelHeight: number;
|
|
900
|
+
handleDragStart: (e: React$1.MouseEvent | React$1.TouchEvent) => void;
|
|
901
|
+
onContentHeightChange: (height: number) => void;
|
|
902
|
+
onTempDecreaseMax: () => void;
|
|
903
|
+
onTempDecrease: () => void;
|
|
904
|
+
onTempIncrease: () => void;
|
|
905
|
+
onTempIncreaseMax: () => void;
|
|
906
|
+
onTintDecreaseMax: () => void;
|
|
907
|
+
onTintDecrease: () => void;
|
|
908
|
+
onTintIncrease: () => void;
|
|
909
|
+
onTintIncreaseMax: () => void;
|
|
910
|
+
onVibranceDecreaseMax: () => void;
|
|
911
|
+
onVibranceDecrease: () => void;
|
|
912
|
+
onVibranceIncrease: () => void;
|
|
913
|
+
onVibranceIncreaseMax: () => void;
|
|
914
|
+
onSaturationDecreaseMax: () => void;
|
|
915
|
+
onSaturationDecrease: () => void;
|
|
916
|
+
onSaturationIncrease: () => void;
|
|
917
|
+
onSaturationIncreaseMax: () => void;
|
|
918
|
+
onExposureDecreaseMax: () => void;
|
|
919
|
+
onExposureDecrease: () => void;
|
|
920
|
+
onExposureIncrease: () => void;
|
|
921
|
+
onExposureIncreaseMax: () => void;
|
|
922
|
+
onContrastDecreaseMax: () => void;
|
|
923
|
+
onContrastDecrease: () => void;
|
|
924
|
+
onContrastIncrease: () => void;
|
|
925
|
+
onContrastIncreaseMax: () => void;
|
|
926
|
+
onHighlightsDecreaseMax: () => void;
|
|
927
|
+
onHighlightsDecrease: () => void;
|
|
928
|
+
onHighlightsIncrease: () => void;
|
|
929
|
+
onHighlightsIncreaseMax: () => void;
|
|
930
|
+
onShadowsDecreaseMax: () => void;
|
|
931
|
+
onShadowsDecrease: () => void;
|
|
932
|
+
onShadowsIncrease: () => void;
|
|
933
|
+
onShadowsIncreaseMax: () => void;
|
|
934
|
+
onWhitesDecreaseMax: () => void;
|
|
935
|
+
onWhitesDecrease: () => void;
|
|
936
|
+
onWhitesIncrease: () => void;
|
|
937
|
+
onWhitesIncreaseMax: () => void;
|
|
938
|
+
onBlacksDecreaseMax: () => void;
|
|
939
|
+
onBlacksDecrease: () => void;
|
|
940
|
+
onBlacksIncrease: () => void;
|
|
941
|
+
onBlacksIncreaseMax: () => void;
|
|
942
|
+
onClarityDecreaseMax: () => void;
|
|
943
|
+
onClarityDecrease: () => void;
|
|
944
|
+
onClarityIncrease: () => void;
|
|
945
|
+
onClarityIncreaseMax: () => void;
|
|
946
|
+
onSharpnessDecreaseMax: () => void;
|
|
947
|
+
onSharpnessDecrease: () => void;
|
|
948
|
+
onSharpnessIncrease: () => void;
|
|
949
|
+
onSharpnessIncreaseMax: () => void;
|
|
950
|
+
selectedPresetBulk: string;
|
|
951
|
+
onSelectPresetBulk: (event: SelectChangeEvent<string>) => void;
|
|
952
|
+
onPresetMenuClickBulk: (event: React$1.MouseEvent<HTMLElement>, presetId: string) => void;
|
|
953
|
+
onOpenPresetModalBulk: () => void;
|
|
954
|
+
}
|
|
955
|
+
declare function HImageEditorBulkMobile(props: Props$9): react_jsx_runtime.JSX.Element;
|
|
956
|
+
|
|
957
|
+
interface Props$8 {
|
|
958
|
+
onTempDecreaseMax: () => void;
|
|
959
|
+
onTempDecrease: () => void;
|
|
960
|
+
onTempIncrease: () => void;
|
|
961
|
+
onTempIncreaseMax: () => void;
|
|
962
|
+
onTintDecreaseMax: () => void;
|
|
963
|
+
onTintDecrease: () => void;
|
|
964
|
+
onTintIncrease: () => void;
|
|
965
|
+
onTintIncreaseMax: () => void;
|
|
966
|
+
onVibranceDecreaseMax: () => void;
|
|
967
|
+
onVibranceDecrease: () => void;
|
|
968
|
+
onVibranceIncrease: () => void;
|
|
969
|
+
onVibranceIncreaseMax: () => void;
|
|
970
|
+
onSaturationDecreaseMax: () => void;
|
|
971
|
+
onSaturationDecrease: () => void;
|
|
972
|
+
onSaturationIncrease: () => void;
|
|
973
|
+
onSaturationIncreaseMax: () => void;
|
|
974
|
+
onExposureDecreaseMax: () => void;
|
|
975
|
+
onExposureDecrease: () => void;
|
|
976
|
+
onExposureIncrease: () => void;
|
|
977
|
+
onExposureIncreaseMax: () => void;
|
|
978
|
+
onContrastDecreaseMax: () => void;
|
|
979
|
+
onContrastDecrease: () => void;
|
|
980
|
+
onContrastIncrease: () => void;
|
|
981
|
+
onContrastIncreaseMax: () => void;
|
|
982
|
+
onHighlightsDecreaseMax: () => void;
|
|
983
|
+
onHighlightsDecrease: () => void;
|
|
984
|
+
onHighlightsIncrease: () => void;
|
|
985
|
+
onHighlightsIncreaseMax: () => void;
|
|
986
|
+
onShadowsDecreaseMax: () => void;
|
|
987
|
+
onShadowsDecrease: () => void;
|
|
988
|
+
onShadowsIncrease: () => void;
|
|
989
|
+
onShadowsIncreaseMax: () => void;
|
|
990
|
+
onWhitesDecreaseMax: () => void;
|
|
991
|
+
onWhitesDecrease: () => void;
|
|
992
|
+
onWhitesIncrease: () => void;
|
|
993
|
+
onWhitesIncreaseMax: () => void;
|
|
994
|
+
onBlacksDecreaseMax: () => void;
|
|
995
|
+
onBlacksDecrease: () => void;
|
|
996
|
+
onBlacksIncrease: () => void;
|
|
997
|
+
onBlacksIncreaseMax: () => void;
|
|
998
|
+
onClarityDecreaseMax: () => void;
|
|
999
|
+
onClarityDecrease: () => void;
|
|
1000
|
+
onClarityIncrease: () => void;
|
|
1001
|
+
onClarityIncreaseMax: () => void;
|
|
1002
|
+
onSharpnessDecreaseMax: () => void;
|
|
1003
|
+
onSharpnessDecrease: () => void;
|
|
1004
|
+
onSharpnessIncrease: () => void;
|
|
1005
|
+
onSharpnessIncreaseMax: () => void;
|
|
1006
|
+
expandedPanels: string[];
|
|
1007
|
+
onPanelChange: (panel: string) => (event: React$1.SyntheticEvent, isExpanded: boolean) => void;
|
|
1008
|
+
}
|
|
1009
|
+
declare function HBulkAccordionColorAdjustment(props: Props$8): react_jsx_runtime.JSX.Element;
|
|
1010
|
+
|
|
1011
|
+
type Preset = {
|
|
1012
|
+
id: string;
|
|
1013
|
+
name: string;
|
|
1014
|
+
};
|
|
1015
|
+
interface Props$7 {
|
|
1016
|
+
presets: Preset[];
|
|
1017
|
+
selectedPreset: string;
|
|
1018
|
+
expandedPanels: string[];
|
|
1019
|
+
presetMenuAnchorEl: null | HTMLElement;
|
|
1020
|
+
activePresetMenuId: string | null;
|
|
1021
|
+
isMenuOpen: boolean;
|
|
1022
|
+
onPanelChange: (panel: string) => (event: React$1.SyntheticEvent, isExpanded: boolean) => void;
|
|
1023
|
+
onSelectPreset: (event: SelectChangeEvent<string>) => void;
|
|
1024
|
+
onPresetMenuClick: (event: React$1.MouseEvent<HTMLElement>, presetId: string) => void;
|
|
1025
|
+
onPresetMenuClose: () => void;
|
|
1026
|
+
onRemovePreset: () => void;
|
|
1027
|
+
onRenamePreset: () => void;
|
|
1028
|
+
onDeletePreset: () => void;
|
|
1029
|
+
onOpenPresetModal: () => void;
|
|
1030
|
+
}
|
|
1031
|
+
declare function HBulkPreset(props: Props$7): react_jsx_runtime.JSX.Element;
|
|
1032
|
+
|
|
1033
|
+
interface Props$6 {
|
|
1034
|
+
modalName: string;
|
|
1035
|
+
modalOpen: boolean;
|
|
1036
|
+
modalTitle: string;
|
|
1037
|
+
modalInformation: string;
|
|
1038
|
+
children: React$1.ReactNode;
|
|
1039
|
+
action?: React$1.ReactNode;
|
|
1040
|
+
modalClose: () => void;
|
|
1041
|
+
onConfirm: () => void;
|
|
1042
|
+
}
|
|
1043
|
+
declare function HModalEditorDekstop(props: Props$6): react_jsx_runtime.JSX.Element;
|
|
1044
|
+
|
|
1045
|
+
interface Props$5 {
|
|
1046
|
+
valueName: string;
|
|
1047
|
+
setName: (event: React$1.ChangeEvent<HTMLInputElement>) => void;
|
|
1048
|
+
}
|
|
1049
|
+
declare function HTextField(props: Props$5): react_jsx_runtime.JSX.Element;
|
|
1050
|
+
interface PropsRename {
|
|
1051
|
+
valueName: string;
|
|
1052
|
+
setName: (event: React$1.ChangeEvent<HTMLInputElement>) => void;
|
|
1053
|
+
onSaveRenamePreset: () => void;
|
|
1054
|
+
onCancel: () => void;
|
|
1055
|
+
}
|
|
1056
|
+
declare function HTextFieldRename(props: PropsRename): react_jsx_runtime.JSX.Element;
|
|
1057
|
+
|
|
1058
|
+
interface Props$4 {
|
|
1059
|
+
onSaveWatermark: () => void;
|
|
1060
|
+
onCancelWatermark: () => void;
|
|
1061
|
+
}
|
|
1062
|
+
declare function HWatermarkView(props: Props$4): react_jsx_runtime.JSX.Element;
|
|
1063
|
+
|
|
1064
|
+
interface Props$3 {
|
|
1065
|
+
modalName: string;
|
|
1066
|
+
modalOpen: boolean;
|
|
1067
|
+
modalTitle: string;
|
|
1068
|
+
modalInformation?: string;
|
|
1069
|
+
children: React$1.ReactNode;
|
|
1070
|
+
action?: React$1.ReactNode;
|
|
1071
|
+
modalClose: () => void;
|
|
1072
|
+
onConfirm: () => void;
|
|
1073
|
+
}
|
|
1074
|
+
declare function HModalMobile(props: Props$3): react_jsx_runtime.JSX.Element;
|
|
1075
|
+
|
|
1076
|
+
interface Props$2 {
|
|
1077
|
+
anchorEl: null | HTMLElement;
|
|
1078
|
+
isOpen: boolean;
|
|
1079
|
+
onClose: () => void;
|
|
1080
|
+
onRename: () => void;
|
|
1081
|
+
onDelete: () => void;
|
|
1082
|
+
}
|
|
1083
|
+
declare function HPresetOptionsMenu(props: Props$2): react_jsx_runtime.JSX.Element;
|
|
1084
|
+
|
|
1085
|
+
declare function HAlertInternetBox(): react_jsx_runtime.JSX.Element;
|
|
1086
|
+
declare function HAlertCopyBox(): react_jsx_runtime.JSX.Element;
|
|
1087
|
+
interface InternetConProps {
|
|
1088
|
+
onClose: () => void;
|
|
1089
|
+
}
|
|
1090
|
+
declare function HAlertInternetConnectionBox(props: InternetConProps): react_jsx_runtime.JSX.Element;
|
|
1091
|
+
declare function HAlertPresetSave(): react_jsx_runtime.JSX.Element;
|
|
1092
|
+
|
|
1093
|
+
interface ImageGalleryProps {
|
|
1094
|
+
imageCollection: PhotoData[];
|
|
1095
|
+
onToggleSelect: (photo: PhotoData) => void;
|
|
1096
|
+
}
|
|
1097
|
+
declare const AlbumImageGallery: React$1.FC<ImageGalleryProps>;
|
|
1098
|
+
|
|
1099
|
+
interface Props$1 {
|
|
1100
|
+
margin?: any;
|
|
1101
|
+
index: number;
|
|
1102
|
+
data: PhotoData;
|
|
1103
|
+
direction: "row" | "column";
|
|
1104
|
+
onToggleSelect: () => void;
|
|
1105
|
+
}
|
|
1106
|
+
declare const GalleryImageItem: (props: Props$1) => react_jsx_runtime.JSX.Element;
|
|
1107
|
+
|
|
1108
|
+
interface EditorTask$1 {
|
|
1109
|
+
id: string;
|
|
1110
|
+
path: string;
|
|
1111
|
+
frame: string | null;
|
|
1112
|
+
adjustments?: Partial<AdjustmentValues>;
|
|
1113
|
+
priority?: number;
|
|
1114
|
+
abortSignal?: AbortSignal;
|
|
1115
|
+
}
|
|
1116
|
+
interface EditorResponse$1 {
|
|
1117
|
+
id: string;
|
|
1118
|
+
path: string;
|
|
1119
|
+
}
|
|
1120
|
+
declare class EditorProcessingService {
|
|
1121
|
+
private processingQueue;
|
|
1122
|
+
private isProcessing;
|
|
1123
|
+
private processImage?;
|
|
1124
|
+
private pendingProcessingTimeout?;
|
|
1125
|
+
private statusChangeListeners;
|
|
1126
|
+
constructor();
|
|
1127
|
+
setProcessor(processImage: (task: EditorTask$1) => Promise<EditorResponse$1>): void;
|
|
1128
|
+
addStatusChangeListener(listener: () => void): void;
|
|
1129
|
+
removeStatusChangeListener(listener: () => void): void;
|
|
1130
|
+
private notifyStatusChange;
|
|
1131
|
+
requestProcessing(task: EditorTask$1): Promise<EditorResponse$1>;
|
|
1132
|
+
private scheduleProcessing;
|
|
1133
|
+
private processQueue;
|
|
1134
|
+
private removeFromQueue;
|
|
1135
|
+
getQueueStatus(): {
|
|
1136
|
+
queueLength: number;
|
|
1137
|
+
isProcessing: boolean;
|
|
1138
|
+
hasProcessor: boolean;
|
|
1139
|
+
};
|
|
1140
|
+
clearQueue(): void;
|
|
1141
|
+
cleanup(): void;
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
interface EditorContextValue {
|
|
1145
|
+
isReady: boolean;
|
|
1146
|
+
error: Error | null;
|
|
1147
|
+
processingService: EditorProcessingService;
|
|
1148
|
+
queueStatus: {
|
|
1149
|
+
queueLength: number;
|
|
1150
|
+
isProcessing: boolean;
|
|
1151
|
+
hasProcessor: boolean;
|
|
1152
|
+
};
|
|
1153
|
+
editor: HonchoEditor | null;
|
|
1154
|
+
loadImageFromUrl: ((url: string) => Promise<{
|
|
1155
|
+
width: number;
|
|
1156
|
+
height: number;
|
|
1157
|
+
}>) | null;
|
|
1158
|
+
}
|
|
1159
|
+
interface EditorProviderProps {
|
|
1160
|
+
children: React$1.ReactNode;
|
|
1161
|
+
/** URL to the honcho-photo-editor.js script (defaults to '/honcho-photo-editor.js') */
|
|
1162
|
+
scriptUrl?: string;
|
|
1163
|
+
/** URL to the honcho-photo-editor.wasm file (defaults to '/honcho-photo-editor.wasm') */
|
|
1164
|
+
wasmUrl?: string;
|
|
1165
|
+
}
|
|
1166
|
+
declare const EditorProvider: React$1.FC<EditorProviderProps>;
|
|
1167
|
+
declare const useEditorContext: () => EditorContextValue;
|
|
1168
|
+
|
|
1169
|
+
interface UseImageProcessorProps {
|
|
1170
|
+
photoId: string;
|
|
1171
|
+
photoSrc: string;
|
|
1172
|
+
enableEditor?: boolean;
|
|
1173
|
+
adjustments?: Partial<AdjustmentValues>;
|
|
1174
|
+
frame?: string | null;
|
|
1175
|
+
priority?: 'high' | 'low';
|
|
1176
|
+
abortSignal?: AbortSignal;
|
|
1177
|
+
}
|
|
1178
|
+
interface UseImageProcessorReturn {
|
|
1179
|
+
processedImageSrc: string;
|
|
1180
|
+
isProcessingComplete: boolean;
|
|
1181
|
+
cancelProcessing: () => void;
|
|
1182
|
+
isProcessing: boolean;
|
|
1183
|
+
}
|
|
1184
|
+
declare function useImageProcessor({ photoId, photoSrc, enableEditor, adjustments, frame, priority, abortSignal, }: UseImageProcessorProps): UseImageProcessorReturn;
|
|
1185
|
+
|
|
1186
|
+
declare global {
|
|
1187
|
+
interface Window {
|
|
1188
|
+
HonchoEditor: new () => any;
|
|
1189
|
+
HonchoEditorUtils: {
|
|
1190
|
+
imageDataToBlob: (imageData: ImageData, format?: string, quality?: number) => Promise<Blob>;
|
|
1191
|
+
};
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
interface EditorTask {
|
|
1195
|
+
id: string;
|
|
1196
|
+
path: string;
|
|
1197
|
+
frame: string | null;
|
|
1198
|
+
adjustments?: Partial<AdjustmentValues>;
|
|
1199
|
+
}
|
|
1200
|
+
interface EditorResponse {
|
|
1201
|
+
id: string;
|
|
1202
|
+
path: string;
|
|
1203
|
+
}
|
|
1204
|
+
interface UseEditorHeadlessOptions {
|
|
1205
|
+
scriptUrl?: string;
|
|
1206
|
+
wasmUrl?: string;
|
|
1207
|
+
}
|
|
1208
|
+
declare function useEditorHeadless(options?: UseEditorHeadlessOptions): {
|
|
1209
|
+
editor: HonchoEditor | null;
|
|
1210
|
+
isReady: boolean;
|
|
1211
|
+
error: Error | null;
|
|
1212
|
+
processImage: (task: EditorTask) => Promise<EditorResponse>;
|
|
1213
|
+
loadImageFromUrl: (url: string) => Promise<{
|
|
1214
|
+
width: number;
|
|
1215
|
+
height: number;
|
|
1216
|
+
}>;
|
|
1217
|
+
};
|
|
1218
|
+
|
|
1219
|
+
interface Props {
|
|
1220
|
+
isLoading: boolean;
|
|
1221
|
+
onCancel: () => void;
|
|
1222
|
+
onSubmit: () => void;
|
|
1223
|
+
}
|
|
1224
|
+
declare function HPresetDeleteDialog(props: Props): react_jsx_runtime.JSX.Element;
|
|
1225
|
+
|
|
1226
|
+
interface ModalDialogProps {
|
|
1227
|
+
isOpen: boolean;
|
|
1228
|
+
isLoading?: boolean;
|
|
1229
|
+
title?: string;
|
|
1230
|
+
description?: string;
|
|
1231
|
+
onCancel: () => void;
|
|
1232
|
+
onSubmit: () => void;
|
|
1233
|
+
cancelLabel?: string;
|
|
1234
|
+
submitLabel?: string;
|
|
1235
|
+
}
|
|
1236
|
+
declare function ModalDialog(props: ModalDialogProps): react_jsx_runtime.JSX.Element;
|
|
1237
|
+
|
|
1238
|
+
interface ModalRenameProps {
|
|
1239
|
+
isOpen: boolean;
|
|
1240
|
+
title?: string;
|
|
1241
|
+
description?: string;
|
|
1242
|
+
action?: React.ReactNode;
|
|
1243
|
+
onCancel: () => void;
|
|
1244
|
+
onSubmit: () => void;
|
|
1245
|
+
cancelLabel?: string;
|
|
1246
|
+
submitLabel?: string;
|
|
1247
|
+
valueName: string;
|
|
1248
|
+
setName: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
1249
|
+
}
|
|
1250
|
+
declare function ModalRename(props: ModalRenameProps): react_jsx_runtime.JSX.Element;
|
|
1251
|
+
|
|
1252
|
+
/**
|
|
1253
|
+
* Configuration options for the adjustment history hook
|
|
1254
|
+
*/
|
|
1255
|
+
interface HistoryOptions {
|
|
1256
|
+
/** Maximum number of history entries to keep. Use 'unlimited' for no limit */
|
|
1257
|
+
maxSize?: number | 'unlimited';
|
|
1258
|
+
/** Whether to enable batch mode for grouping multiple changes */
|
|
1259
|
+
enableBatching?: boolean;
|
|
1260
|
+
/** Enable development warnings for performance issues */
|
|
1261
|
+
devWarnings?: boolean;
|
|
1262
|
+
}
|
|
1263
|
+
/**
|
|
1264
|
+
* Information about the current history state
|
|
1265
|
+
*/
|
|
1266
|
+
interface HistoryInfo {
|
|
1267
|
+
/** Whether undo operation is available */
|
|
1268
|
+
canUndo: boolean;
|
|
1269
|
+
/** Whether redo operation is available */
|
|
1270
|
+
canRedo: boolean;
|
|
1271
|
+
/** Current position in history (0-based index) */
|
|
1272
|
+
currentIndex: number;
|
|
1273
|
+
/** Total number of states in history */
|
|
1274
|
+
totalStates: number;
|
|
1275
|
+
/** Current size of history in memory */
|
|
1276
|
+
historySize: number;
|
|
1277
|
+
/** Whether batch mode is currently active */
|
|
1278
|
+
isBatchMode: boolean;
|
|
1279
|
+
}
|
|
1280
|
+
/**
|
|
1281
|
+
* Actions available for history management
|
|
1282
|
+
*/
|
|
1283
|
+
interface HistoryActions {
|
|
1284
|
+
/** Add a new adjustment state to history */
|
|
1285
|
+
pushState: (state: AdjustmentState) => void;
|
|
1286
|
+
/** Undo to previous adjustment state */
|
|
1287
|
+
undo: () => void;
|
|
1288
|
+
/** Redo to next adjustment state */
|
|
1289
|
+
redo: () => void;
|
|
1290
|
+
/** Jump to specific index in history */
|
|
1291
|
+
jumpToIndex: (index: number) => void;
|
|
1292
|
+
/** Clear all history and start fresh */
|
|
1293
|
+
clearHistory: () => void;
|
|
1294
|
+
/** Get a copy of the entire history array */
|
|
1295
|
+
getHistory: () => AdjustmentState[];
|
|
1296
|
+
/** Trim history to specified size, keeping most recent entries */
|
|
1297
|
+
trimHistory: (keepLast: number) => void;
|
|
1298
|
+
/** Sync history from backend using getEditorHistory */
|
|
1299
|
+
syncFromBackend: () => Promise<void>;
|
|
1300
|
+
}
|
|
1301
|
+
/**
|
|
1302
|
+
* Configuration actions for runtime adjustment
|
|
1303
|
+
*/
|
|
1304
|
+
interface HistoryConfig {
|
|
1305
|
+
/** Set maximum history size */
|
|
1306
|
+
setMaxSize: (size: number | 'unlimited') => void;
|
|
1307
|
+
/** Enable or disable batch mode */
|
|
1308
|
+
setBatchMode: (enabled: boolean, forceHistory?: boolean) => Promise<void>;
|
|
1309
|
+
/** Get current memory usage estimate */
|
|
1310
|
+
getMemoryUsage: () => number;
|
|
1311
|
+
}
|
|
1312
|
+
/**
|
|
1313
|
+
* Return type for the useAdjustmentHistory hook
|
|
1314
|
+
*/
|
|
1315
|
+
interface UseAdjustmentHistoryReturn {
|
|
1316
|
+
/** Current adjustment state value */
|
|
1317
|
+
currentState: AdjustmentState;
|
|
1318
|
+
/** Current index in history */
|
|
1319
|
+
currentIndex: number;
|
|
1320
|
+
/** Information about history state */
|
|
1321
|
+
historyInfo: HistoryInfo;
|
|
1322
|
+
/** Available history actions */
|
|
1323
|
+
actions: HistoryActions;
|
|
1324
|
+
/** Configuration options */
|
|
1325
|
+
config: HistoryConfig;
|
|
1326
|
+
}
|
|
1327
|
+
/**
|
|
1328
|
+
* Advanced hook for managing AdjustmentState history with undo/redo functionality.
|
|
1329
|
+
*
|
|
1330
|
+
* Features:
|
|
1331
|
+
* - Unlimited or configurable history size
|
|
1332
|
+
* - Batch mode for grouping multiple changes into single undo operations
|
|
1333
|
+
* - Memory usage monitoring and optimization
|
|
1334
|
+
* - Internal stabilization to prevent re-render issues
|
|
1335
|
+
* - Jump to any point in history
|
|
1336
|
+
* - Automatic AdjustmentState comparison
|
|
1337
|
+
*
|
|
1338
|
+
* @param initialState - The initial AdjustmentState value
|
|
1339
|
+
* @param controller - Controller for backend operations (optional)
|
|
1340
|
+
* @param firebaseUid - Firebase UID for backend operations (optional)
|
|
1341
|
+
* @param currentImageId - Current image ID for backend operations (optional)
|
|
1342
|
+
* @param options - Configuration options for history behavior
|
|
1343
|
+
* @returns Object with current state, history info, actions, and config
|
|
1344
|
+
*/
|
|
1345
|
+
declare function useAdjustmentHistory(initialState: AdjustmentState, controller?: Controller, firebaseUid?: string, currentImageId?: string, options?: HistoryOptions): UseAdjustmentHistoryReturn;
|
|
1346
|
+
|
|
1347
|
+
/**
|
|
1348
|
+
* Configuration options for the paging hook
|
|
1349
|
+
*/
|
|
1350
|
+
interface PagingOptions {
|
|
1351
|
+
/** Enable development warnings for debugging */
|
|
1352
|
+
devWarnings?: boolean;
|
|
1353
|
+
/** Auto-load first page on hook initialization */
|
|
1354
|
+
autoLoad?: boolean;
|
|
1355
|
+
/** Reset pagination when dependencies change */
|
|
1356
|
+
autoReset?: boolean;
|
|
1357
|
+
}
|
|
1358
|
+
/**
|
|
1359
|
+
* Information about the current paging state
|
|
1360
|
+
*/
|
|
1361
|
+
interface PagingInfo {
|
|
1362
|
+
/** Whether images are currently being loaded */
|
|
1363
|
+
isLoading: boolean;
|
|
1364
|
+
/** Whether more pages are being loaded */
|
|
1365
|
+
isLoadingMore: boolean;
|
|
1366
|
+
/** Error message if any operation failed */
|
|
1367
|
+
error: string | null;
|
|
1368
|
+
/** Current page number */
|
|
1369
|
+
currentPage: number;
|
|
1370
|
+
/** Whether there are more pages to load */
|
|
1371
|
+
hasMore: boolean;
|
|
1372
|
+
/** Total number of images loaded */
|
|
1373
|
+
totalImages: number;
|
|
1374
|
+
/** Whether the hook has been initialized */
|
|
1375
|
+
isInitialized: boolean;
|
|
1376
|
+
}
|
|
1377
|
+
/**
|
|
1378
|
+
* Actions available for paging management
|
|
1379
|
+
*/
|
|
1380
|
+
interface PagingActions {
|
|
1381
|
+
/** Load more images (next page) - only one instance can run at a time */
|
|
1382
|
+
loadMore: () => Promise<void>;
|
|
1383
|
+
/** Refresh/reload from first page */
|
|
1384
|
+
refresh: () => Promise<void>;
|
|
1385
|
+
/** Reset pagination state */
|
|
1386
|
+
reset: () => void;
|
|
1387
|
+
}
|
|
1388
|
+
/**
|
|
1389
|
+
* Return type for the usePaging hook
|
|
1390
|
+
*/
|
|
1391
|
+
interface UsePagingReturn {
|
|
1392
|
+
/** Current list of images */
|
|
1393
|
+
images: Gallery[];
|
|
1394
|
+
/** Information about paging state */
|
|
1395
|
+
info: PagingInfo;
|
|
1396
|
+
/** Available paging actions */
|
|
1397
|
+
actions: PagingActions;
|
|
1398
|
+
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Hook for managing paginated image loading with ControllerBulk.
|
|
1401
|
+
*
|
|
1402
|
+
* **Key Features:**
|
|
1403
|
+
* - **Paginated Loading**: Handles page-by-page image loading
|
|
1404
|
+
* - **State Management**: Maintains image list and pagination state
|
|
1405
|
+
* - **Load More**: Seamlessly loads and appends next pages
|
|
1406
|
+
* - **Mutation**: Update specific images without full reload
|
|
1407
|
+
* - **Error Handling**: Provides error states for failed operations
|
|
1408
|
+
* - **Auto-loading**: Optional automatic first page loading
|
|
1409
|
+
*
|
|
1410
|
+
* **Typical Usage:**
|
|
1411
|
+
* ```typescript
|
|
1412
|
+
* const { images, info, actions } = usePaging(controller, firebaseUid, eventId, {
|
|
1413
|
+
* autoLoad: true,
|
|
1414
|
+
* autoReset: true
|
|
1415
|
+
* });
|
|
1416
|
+
*
|
|
1417
|
+
* // Load more images
|
|
1418
|
+
* await actions.loadMore();
|
|
1419
|
+
*
|
|
1420
|
+
* // Refresh from beginning
|
|
1421
|
+
* await actions.refresh();
|
|
1422
|
+
*
|
|
1423
|
+
* // Update specific image
|
|
1424
|
+
* actions.mutateImage(imageId, (img) => ({ ...img, isSelected: true }));
|
|
1425
|
+
* ```
|
|
1426
|
+
*
|
|
1427
|
+
* @param controller - Backend controller for API communication
|
|
1428
|
+
* @param firebaseUid - User identifier for backend operations
|
|
1429
|
+
* @param eventId - Event identifier for image list
|
|
1430
|
+
* @param options - Configuration options
|
|
1431
|
+
* @returns Object with images, info, and actions
|
|
1432
|
+
*/
|
|
1433
|
+
declare function usePaging(controller: Controller | null, firebaseUid: string, eventId: string, options?: PagingOptions): UsePagingReturn;
|
|
1434
|
+
|
|
1435
|
+
interface Colors {
|
|
1436
|
+
onSurface: string;
|
|
1437
|
+
surface: string;
|
|
1438
|
+
onSurfaceVariant: string;
|
|
1439
|
+
onSurfaceVariant1: string;
|
|
1440
|
+
outlineVariant: string;
|
|
1441
|
+
error: string;
|
|
1442
|
+
onBackground: string;
|
|
1443
|
+
background: string;
|
|
1444
|
+
}
|
|
1445
|
+
declare function useColors(): Colors;
|
|
1446
|
+
|
|
1447
|
+
interface HonchoTypography {
|
|
1448
|
+
displayLarge: FontStyle;
|
|
1449
|
+
displayMedium: FontStyle;
|
|
1450
|
+
displaySmall: FontStyle;
|
|
1451
|
+
headlineLarge: FontStyle;
|
|
1452
|
+
headlineMedium: FontStyle;
|
|
1453
|
+
headlineSmall: FontStyle;
|
|
1454
|
+
titleLarge: FontStyle;
|
|
1455
|
+
titleMedium: FontStyle;
|
|
1456
|
+
titleSmall: FontStyle;
|
|
1457
|
+
bodyLarge: FontStyle;
|
|
1458
|
+
bodyMedium: FontStyle;
|
|
1459
|
+
bodySmall: FontStyle;
|
|
1460
|
+
labelLarge: FontStyle;
|
|
1461
|
+
labelMedium: FontStyle;
|
|
1462
|
+
labelSmall: FontStyle;
|
|
1463
|
+
}
|
|
1464
|
+
interface FontStyle {
|
|
1465
|
+
fontSize: number;
|
|
1466
|
+
lineHeight: string;
|
|
1467
|
+
fontWeight: number;
|
|
1468
|
+
letterSpacing: string;
|
|
1469
|
+
}
|
|
1470
|
+
declare function useHonchoTypography(): HonchoTypography;
|
|
1471
|
+
|
|
1472
|
+
declare function useIsMobile(): boolean;
|
|
1473
|
+
|
|
1474
|
+
export { type AdjustmentRange, type AdjustmentRanges, type AdjustmentState, type AdjustmentValues, AlbumImageGallery, type BatchAdjustmentState, type BatchHistoryActions, type BatchHistoryConfig, type BatchHistoryInfo, type ColorAdjustment, type Content, type Controller, type CreateEditorTaskRequest, type EditorHistoryEntry, EditorProvider, type Gallery, GalleryImageItem, type GetGalleryUpdateTimestampResponse, type GetHistoryResponse, HAccordionColorAdjustment, HAccordionPreset, HAlertCopyBox, HAlertInternetBox, HAlertInternetConnectionBox, HAlertPresetSave, HBaseDialog, HBulkAccordionColorAdjustment, HBulkPreset, HDialogCopy, HDialogForPreset, HDialogPreset, HFooter, HHeaderEditor, HImageEditorBulkDekstop, HImageEditorBulkMobile, HImageEditorDesktop, HImageEditorMobile, ModalDialog as HModalDialog, HModalEditorDekstop, HModalMobile, ModalRename as HModalRename, HPresetDeleteDialog, HPresetOptionsMenu, HTextField, HTextFieldRename, HWatermarkView, type HistoryActions, type HistoryConfig, type HistoryInfo, HonchoEditor, type ImageAdjustmentConfig, type ImageItem, type ImageSize, type PagingActions, type PagingInfo, type PagingOptions, type PhotoData, type Preset$4 as Preset, type PresetActions, type PresetInfo, type PresetOptions, type UseAdjustmentHistoryBatchReturn, type UseAdjustmentHistoryReturn, type UsePagingReturn, type UsePresetReturn, useAdjustmentHistory, useAdjustmentHistoryBatch, useColors, useEditorContext, useEditorHeadless, useHonchoEditorBulk, useHonchoEditorSingle, useHonchoTypography, useImageProcessor, useIsMobile, usePaging, usePreset };
|