@parhelia/localization 0.1.12789 → 0.1.12790
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/LocalizeItemDialog.d.ts.map +1 -1
- package/dist/LocalizeItemDialog.js +92 -34
- package/dist/LocalizeItemUtils.d.ts +1 -2
- package/dist/LocalizeItemUtils.d.ts.map +1 -1
- package/dist/LocalizeItemUtils.js +44 -12
- package/dist/api/discovery.d.ts +25 -0
- package/dist/api/discovery.d.ts.map +1 -1
- package/dist/api/discovery.js +87 -0
- package/dist/index.d.ts +8 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -30
- package/dist/services/translationService.d.ts +40 -9
- package/dist/services/translationService.d.ts.map +1 -1
- package/dist/services/translationService.js +30 -4
- package/dist/settings/TranslationServicesPanel.d.ts.map +1 -1
- package/dist/settings/TranslationServicesPanel.js +18 -36
- package/dist/sidebar/TranslationSidebar.d.ts.map +1 -1
- package/dist/sidebar/TranslationSidebar.js +4 -1
- package/dist/steps/ItemSelectionStep.d.ts +3 -0
- package/dist/steps/ItemSelectionStep.d.ts.map +1 -0
- package/dist/steps/ItemSelectionStep.js +23 -0
- package/dist/steps/ItemSelectionTree.d.ts +13 -0
- package/dist/steps/ItemSelectionTree.d.ts.map +1 -0
- package/dist/steps/ItemSelectionTree.js +326 -0
- package/dist/steps/MetadataInputStep.d.ts.map +1 -1
- package/dist/steps/MetadataInputStep.js +8 -1
- package/dist/steps/PromptCustomizationStep.d.ts +1 -1
- package/dist/steps/PromptCustomizationStep.d.ts.map +1 -1
- package/dist/steps/PromptCustomizationStep.js +161 -56
- package/dist/steps/ServiceLanguageSelectionStep.d.ts +6 -1
- package/dist/steps/ServiceLanguageSelectionStep.d.ts.map +1 -1
- package/dist/steps/ServiceLanguageSelectionStep.js +53 -163
- package/dist/steps/WizardStepShell.d.ts +17 -0
- package/dist/steps/WizardStepShell.d.ts.map +1 -0
- package/dist/steps/WizardStepShell.js +11 -0
- package/dist/steps/index.d.ts +1 -0
- package/dist/steps/index.d.ts.map +1 -1
- package/dist/steps/index.js +1 -0
- package/dist/steps/types.d.ts +17 -1
- package/dist/steps/types.d.ts.map +1 -1
- package/dist/translation-center/TranslationBatches.d.ts +2 -0
- package/dist/translation-center/TranslationBatches.d.ts.map +1 -0
- package/dist/translation-center/TranslationBatches.js +995 -0
- package/dist/translation-center/TranslationManagement.d.ts.map +1 -1
- package/dist/translation-center/TranslationManagement.js +6 -23
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/translation-center/BatchTranslationView.d.ts +0 -8
- package/dist/translation-center/BatchTranslationView.d.ts.map +0 -1
- package/dist/translation-center/BatchTranslationView.js +0 -890
- package/dist/translation-center/RecentTranslations.d.ts +0 -2
- package/dist/translation-center/RecentTranslations.d.ts.map +0 -1
- package/dist/translation-center/RecentTranslations.js +0 -309
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { ItemCollectionEditor, } from "@parhelia/core";
|
|
4
|
+
import { streamSubitemCount } from "../api/discovery";
|
|
5
|
+
const SITECORE_ROOT = "11111111-1111-1111-1111-111111111111";
|
|
6
|
+
function fullItemFromDescriptor(descriptor) {
|
|
7
|
+
return {
|
|
8
|
+
id: descriptor.id,
|
|
9
|
+
language: descriptor.language,
|
|
10
|
+
version: descriptor.version,
|
|
11
|
+
descriptor: {
|
|
12
|
+
id: descriptor.id,
|
|
13
|
+
language: descriptor.language,
|
|
14
|
+
version: descriptor.version,
|
|
15
|
+
name: descriptor.name,
|
|
16
|
+
displayName: descriptor.displayName,
|
|
17
|
+
path: descriptor.path,
|
|
18
|
+
},
|
|
19
|
+
name: descriptor.name ?? "",
|
|
20
|
+
templateId: descriptor.templateId ?? "",
|
|
21
|
+
templateName: "",
|
|
22
|
+
icon: descriptor.icon ?? "",
|
|
23
|
+
largeIcon: descriptor.icon ?? "",
|
|
24
|
+
thumbnail: "",
|
|
25
|
+
path: descriptor.path ?? "",
|
|
26
|
+
fields: [],
|
|
27
|
+
canWriteItem: false,
|
|
28
|
+
canWriteLanguage: false,
|
|
29
|
+
canWriteWorkflow: false,
|
|
30
|
+
canRename: false,
|
|
31
|
+
canDelete: false,
|
|
32
|
+
canCreate: false,
|
|
33
|
+
workflowState: "",
|
|
34
|
+
hasLock: false,
|
|
35
|
+
hasLayout: true,
|
|
36
|
+
idPath: descriptor.idPath ?? "",
|
|
37
|
+
canLock: false,
|
|
38
|
+
lockedBy: "",
|
|
39
|
+
isInheritedFromMasterLanguage: false,
|
|
40
|
+
hasChildren: descriptor.hasChildren ?? false,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function fullItemToWithSubtree(item, includeSubitems) {
|
|
44
|
+
return {
|
|
45
|
+
descriptor: {
|
|
46
|
+
id: item.descriptor?.id ?? item.id,
|
|
47
|
+
language: item.descriptor?.language ?? item.language,
|
|
48
|
+
version: item.descriptor?.version ?? item.version,
|
|
49
|
+
name: item.descriptor?.name ?? item.name,
|
|
50
|
+
displayName: item.descriptor?.displayName ?? item.displayName,
|
|
51
|
+
path: item.descriptor?.path ?? item.path,
|
|
52
|
+
},
|
|
53
|
+
includeSubitems,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function ItemSelectionTree({ data, setData, editContext, isActive = true, onSelectionValidChange, height = 360, }) {
|
|
57
|
+
const language = useMemo(() => editContext?.item?.language ??
|
|
58
|
+
editContext?.currentItemDescriptor?.language ??
|
|
59
|
+
"en", [editContext?.item?.language, editContext?.currentItemDescriptor?.language]);
|
|
60
|
+
// Seed selection: prefer previously saved tree items, then discoveredItems,
|
|
61
|
+
// then the wizard's initial `items`. Default includeSubitems = legacy flag.
|
|
62
|
+
const initialItems = useMemo(() => {
|
|
63
|
+
if (data.selectionTreeItems && data.selectionTreeItems.length > 0) {
|
|
64
|
+
return data.selectionTreeItems;
|
|
65
|
+
}
|
|
66
|
+
const seed = data.discoveredItems && data.discoveredItems.length > 0
|
|
67
|
+
? data.discoveredItems
|
|
68
|
+
: data.items;
|
|
69
|
+
return seed.map((item) => fullItemToWithSubtree(item, !!data.includeSubitems));
|
|
70
|
+
// First mount only — once the user edits, wizard data is downstream.
|
|
71
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
|
+
}, []);
|
|
73
|
+
const [items, setItems] = useState(initialItems);
|
|
74
|
+
const [selectedInTree, setSelectedInTree] = useState([]);
|
|
75
|
+
const [selectedFromList, setSelectedFromList] = useState([]);
|
|
76
|
+
// Async subitem counts keyed by item id. Filtered server-side via
|
|
77
|
+
// IItemExportFilter (see TranslationController.DiscoverItemsTree). The
|
|
78
|
+
// running count climbs as chunks arrive; `complete` flips true on the
|
|
79
|
+
// final chunk so consumers know when to drop the "still counting" hint.
|
|
80
|
+
const [subitemCounts, setSubitemCounts] = useState(() => data.subitemCounts ?? {});
|
|
81
|
+
// Mirror local subitemCounts into wizardData so later steps (e.g. the
|
|
82
|
+
// Start Translation button) can show a live total.
|
|
83
|
+
const dataRef = useRef(data);
|
|
84
|
+
dataRef.current = data;
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
setData({ ...dataRef.current, subitemCounts });
|
|
87
|
+
}, [subitemCounts, setData]);
|
|
88
|
+
// Keep a cache of the richest FullItem we've ever seen for each id so we
|
|
89
|
+
// can rebuild discoveredItems without re-fetching.
|
|
90
|
+
const itemCacheRef = useRef(new Map());
|
|
91
|
+
if (itemCacheRef.current.size === 0) {
|
|
92
|
+
for (const it of data.items)
|
|
93
|
+
itemCacheRef.current.set(it.id, it);
|
|
94
|
+
for (const it of data.discoveredItems || [])
|
|
95
|
+
itemCacheRef.current.set(it.id, it);
|
|
96
|
+
}
|
|
97
|
+
// Build a combined idPath that expands every parent of the current
|
|
98
|
+
// selection (but not the items themselves). ContentTree's parser
|
|
99
|
+
// extracts each {guid} segment, so concatenating multiple paths works.
|
|
100
|
+
const expandIdPath = useMemo(() => {
|
|
101
|
+
const segments = [];
|
|
102
|
+
for (const entry of items) {
|
|
103
|
+
const cached = itemCacheRef.current.get(entry.descriptor.id);
|
|
104
|
+
const idPath = cached?.idPath;
|
|
105
|
+
if (!idPath)
|
|
106
|
+
continue;
|
|
107
|
+
const parts = idPath.split("/").filter((s) => s.length > 0);
|
|
108
|
+
// Drop the last segment (the item itself) — we only want parents.
|
|
109
|
+
parts.pop();
|
|
110
|
+
for (const part of parts)
|
|
111
|
+
segments.push(part);
|
|
112
|
+
}
|
|
113
|
+
if (segments.length === 0)
|
|
114
|
+
return undefined;
|
|
115
|
+
return "/" + segments.join("/");
|
|
116
|
+
}, [items]);
|
|
117
|
+
const commitToWizard = useCallback((nextItems) => {
|
|
118
|
+
const cache = itemCacheRef.current;
|
|
119
|
+
const discovered = nextItems.map((entry) => cache.get(entry.descriptor.id) ?? fullItemFromDescriptor(entry.descriptor));
|
|
120
|
+
setData({
|
|
121
|
+
...data,
|
|
122
|
+
selectionTreeItems: nextItems,
|
|
123
|
+
discoveredItems: discovered,
|
|
124
|
+
includeSubitems: nextItems.some((i) => i.includeSubitems),
|
|
125
|
+
});
|
|
126
|
+
}, [data, setData]);
|
|
127
|
+
// Commit current state on first mount so wizard data reflects the seed.
|
|
128
|
+
const didInitialCommitRef = useRef(false);
|
|
129
|
+
useEffect(() => {
|
|
130
|
+
if (didInitialCommitRef.current)
|
|
131
|
+
return;
|
|
132
|
+
didInitialCommitRef.current = true;
|
|
133
|
+
commitToWizard(items);
|
|
134
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
135
|
+
}, []);
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (isActive)
|
|
138
|
+
onSelectionValidChange?.(items.length > 0);
|
|
139
|
+
}, [isActive, onSelectionValidChange, items.length]);
|
|
140
|
+
// Stream subitem counts in the background for items whose
|
|
141
|
+
// includeSubitems flag is on. Filtering happens server-side (see
|
|
142
|
+
// TranslationController.DiscoverSubitemCountStream). The count grows in
|
|
143
|
+
// real time as the backend walks the subtree. Cached results survive
|
|
144
|
+
// toggle-off/on; in-flight requests are aborted if the user turns the
|
|
145
|
+
// flag back off.
|
|
146
|
+
const sessionId = editContext?.sessionId;
|
|
147
|
+
const inFlightRef = useRef(new Map());
|
|
148
|
+
useEffect(() => {
|
|
149
|
+
const inFlight = inFlightRef.current;
|
|
150
|
+
const enabledIds = new Set(items.filter((it) => it.includeSubitems).map((it) => it.descriptor.id));
|
|
151
|
+
// Cancel any streams whose items no longer have the flag on.
|
|
152
|
+
for (const [id, ctrl] of inFlight) {
|
|
153
|
+
if (!enabledIds.has(id)) {
|
|
154
|
+
ctrl.abort();
|
|
155
|
+
inFlight.delete(id);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Start a stream for every newly-enabled item that doesn't already
|
|
159
|
+
// have a count or an active stream. Cached complete results survive;
|
|
160
|
+
// a partial (non-complete) object means a previous stream was aborted
|
|
161
|
+
// mid-flight — restart it.
|
|
162
|
+
const toStart = items
|
|
163
|
+
.filter((it) => it.includeSubitems)
|
|
164
|
+
.map((it) => it.descriptor)
|
|
165
|
+
.filter((d) => {
|
|
166
|
+
if (inFlight.has(d.id))
|
|
167
|
+
return false;
|
|
168
|
+
const c = subitemCounts[d.id];
|
|
169
|
+
if (c === undefined || c === "error")
|
|
170
|
+
return true;
|
|
171
|
+
if (c === "loading")
|
|
172
|
+
return false;
|
|
173
|
+
return !c.complete;
|
|
174
|
+
});
|
|
175
|
+
if (toStart.length === 0)
|
|
176
|
+
return;
|
|
177
|
+
setSubitemCounts((prev) => {
|
|
178
|
+
const next = { ...prev };
|
|
179
|
+
for (const d of toStart)
|
|
180
|
+
next[d.id] = "loading";
|
|
181
|
+
return next;
|
|
182
|
+
});
|
|
183
|
+
for (const descriptor of toStart) {
|
|
184
|
+
const controller = new AbortController();
|
|
185
|
+
inFlight.set(descriptor.id, controller);
|
|
186
|
+
void (async () => {
|
|
187
|
+
try {
|
|
188
|
+
const finalCount = await streamSubitemCount({ itemId: descriptor.id, language: descriptor.language }, ({ count, complete }) => {
|
|
189
|
+
setSubitemCounts((prev) => ({
|
|
190
|
+
...prev,
|
|
191
|
+
[descriptor.id]: { count, complete },
|
|
192
|
+
}));
|
|
193
|
+
}, { sessionId, signal: controller.signal });
|
|
194
|
+
// Backend may close the stream without explicitly sending
|
|
195
|
+
// complete=true on the last line — mark complete on a clean exit.
|
|
196
|
+
setSubitemCounts((prev) => {
|
|
197
|
+
const existing = prev[descriptor.id];
|
|
198
|
+
const count = existing && typeof existing === "object"
|
|
199
|
+
? existing.count
|
|
200
|
+
: finalCount;
|
|
201
|
+
return {
|
|
202
|
+
...prev,
|
|
203
|
+
[descriptor.id]: { count, complete: true },
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
if (err?.name === "AbortError")
|
|
209
|
+
return;
|
|
210
|
+
setSubitemCounts((prev) => {
|
|
211
|
+
// Don't overwrite a partial count with "error" — keep what we have.
|
|
212
|
+
const existing = prev[descriptor.id];
|
|
213
|
+
if (existing && typeof existing === "object")
|
|
214
|
+
return prev;
|
|
215
|
+
return { ...prev, [descriptor.id]: "error" };
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
finally {
|
|
219
|
+
if (inFlight.get(descriptor.id) === controller) {
|
|
220
|
+
inFlight.delete(descriptor.id);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
})();
|
|
224
|
+
}
|
|
225
|
+
}, [items, subitemCounts, sessionId]);
|
|
226
|
+
// Abort any in-flight streams on unmount.
|
|
227
|
+
useEffect(() => {
|
|
228
|
+
const inFlight = inFlightRef.current;
|
|
229
|
+
return () => {
|
|
230
|
+
for (const ctrl of inFlight.values())
|
|
231
|
+
ctrl.abort();
|
|
232
|
+
inFlight.clear();
|
|
233
|
+
};
|
|
234
|
+
}, []);
|
|
235
|
+
const cacheTreeNode = useCallback((node) => {
|
|
236
|
+
const id = node.id;
|
|
237
|
+
if (!id)
|
|
238
|
+
return;
|
|
239
|
+
const cache = itemCacheRef.current;
|
|
240
|
+
if (cache.has(id))
|
|
241
|
+
return;
|
|
242
|
+
const anyNode = node;
|
|
243
|
+
cache.set(id, fullItemFromDescriptor({
|
|
244
|
+
id,
|
|
245
|
+
language: node.language ?? language,
|
|
246
|
+
version: node.version ?? 1,
|
|
247
|
+
name: node.name,
|
|
248
|
+
displayName: node.displayName,
|
|
249
|
+
path: node.path,
|
|
250
|
+
idPath: anyNode.idPath,
|
|
251
|
+
icon: anyNode.icon,
|
|
252
|
+
templateId: anyNode.templateId,
|
|
253
|
+
hasChildren: anyNode.hasChildren,
|
|
254
|
+
}));
|
|
255
|
+
}, [language]);
|
|
256
|
+
const handleAddToList = useCallback(async (itemsToAdd) => {
|
|
257
|
+
const source = itemsToAdd ?? selectedInTree;
|
|
258
|
+
if (!source || source.length === 0)
|
|
259
|
+
return;
|
|
260
|
+
const existing = new Set(items.map((i) => i.descriptor.id));
|
|
261
|
+
const next = [...items];
|
|
262
|
+
for (const node of source) {
|
|
263
|
+
if (!node.id || existing.has(node.id))
|
|
264
|
+
continue;
|
|
265
|
+
cacheTreeNode(node);
|
|
266
|
+
next.push({
|
|
267
|
+
descriptor: {
|
|
268
|
+
id: node.id,
|
|
269
|
+
language: node.language ?? language,
|
|
270
|
+
version: node.version ?? 1,
|
|
271
|
+
name: node.name,
|
|
272
|
+
displayName: node.displayName,
|
|
273
|
+
path: node.path,
|
|
274
|
+
},
|
|
275
|
+
includeSubitems: false,
|
|
276
|
+
});
|
|
277
|
+
existing.add(node.id);
|
|
278
|
+
}
|
|
279
|
+
setItems(next);
|
|
280
|
+
commitToWizard(next);
|
|
281
|
+
setSelectedInTree([]);
|
|
282
|
+
setSelectedFromList([]);
|
|
283
|
+
}, [items, selectedInTree, language, cacheTreeNode, commitToWizard]);
|
|
284
|
+
const handleAddItem = useCallback(async (item) => {
|
|
285
|
+
const id = item.id;
|
|
286
|
+
if (!id || items.some((i) => i.descriptor.id === id))
|
|
287
|
+
return;
|
|
288
|
+
cacheTreeNode(item);
|
|
289
|
+
const next = [
|
|
290
|
+
...items,
|
|
291
|
+
{
|
|
292
|
+
descriptor: {
|
|
293
|
+
id,
|
|
294
|
+
language: item.language ?? language,
|
|
295
|
+
version: item.version ?? 1,
|
|
296
|
+
name: item.name,
|
|
297
|
+
displayName: item.displayName,
|
|
298
|
+
path: item.path,
|
|
299
|
+
},
|
|
300
|
+
includeSubitems: false,
|
|
301
|
+
},
|
|
302
|
+
];
|
|
303
|
+
setItems(next);
|
|
304
|
+
commitToWizard(next);
|
|
305
|
+
setSelectedFromList([]);
|
|
306
|
+
}, [items, language, cacheTreeNode, commitToWizard]);
|
|
307
|
+
const handleRemoveFromList = useCallback(() => {
|
|
308
|
+
const ids = new Set(selectedFromList.map((i) => i.descriptor.id));
|
|
309
|
+
const next = items.filter((i) => !ids.has(i.descriptor.id));
|
|
310
|
+
setItems(next);
|
|
311
|
+
commitToWizard(next);
|
|
312
|
+
setSelectedFromList([]);
|
|
313
|
+
}, [items, selectedFromList, commitToWizard]);
|
|
314
|
+
const handleRemoveItem = useCallback((index) => {
|
|
315
|
+
const next = items.filter((_, i) => i !== index);
|
|
316
|
+
setItems(next);
|
|
317
|
+
commitToWizard(next);
|
|
318
|
+
setSelectedFromList([]);
|
|
319
|
+
}, [items, commitToWizard]);
|
|
320
|
+
const handleToggleSubitems = useCallback((index) => {
|
|
321
|
+
const next = items.map((it, i) => i === index ? { ...it, includeSubitems: !it.includeSubitems } : it);
|
|
322
|
+
setItems(next);
|
|
323
|
+
commitToWizard(next);
|
|
324
|
+
}, [items, commitToWizard]);
|
|
325
|
+
return (_jsx(ItemCollectionEditor, { items: items, selectedInTree: selectedInTree, onSelectedInTreeChange: setSelectedInTree, selectedFromList: selectedFromList, onSelectedFromListChange: setSelectedFromList, onAddToList: handleAddToList, onRemoveFromList: handleRemoveFromList, onAddItem: handleAddItem, onRemoveItem: handleRemoveItem, onToggleSubitems: handleToggleSubitems, language: language, rootItemIds: [SITECORE_ROOT], selectedItemsLabel: "Items to Translate", emptyMessage: "No items selected", emptyHint: "Browse or search to add items", height: height, subitemCounts: subitemCounts, expandIdPath: expandIdPath, localStorageKey: "translation-wizard.itemCollectionSplitter" }));
|
|
326
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataInputStep.d.ts","sourceRoot":"","sources":["../../src/steps/MetadataInputStep.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,QAAe,EACf,IAAI,EACJ,OAAO,EACP,eAAe,GAChB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"MetadataInputStep.d.ts","sourceRoot":"","sources":["../../src/steps/MetadataInputStep.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,QAAe,EACf,IAAI,EACJ,OAAO,EACP,eAAe,GAChB,EAAE,oBAAoB,2CAsFtB"}
|
|
@@ -10,7 +10,14 @@ export function MetadataInputStep({ stepIndex, isActive = true, data, setData, o
|
|
|
10
10
|
});
|
|
11
11
|
return result;
|
|
12
12
|
});
|
|
13
|
-
|
|
13
|
+
// Prefer the user's tree selection (per-item subitem flags) when present,
|
|
14
|
+
// otherwise the legacy expanded list, otherwise the initial wizard items.
|
|
15
|
+
const allItems = (data.selectionTreeItems && data.selectionTreeItems.length > 0
|
|
16
|
+
? data.selectionTreeItems.map((entry) => entry.descriptor)
|
|
17
|
+
: null) ??
|
|
18
|
+
(data.discoveredItems && data.discoveredItems.length > 0
|
|
19
|
+
? data.discoveredItems
|
|
20
|
+
: data.items);
|
|
14
21
|
const handleMetadataChange = (itemId, language, metadata) => {
|
|
15
22
|
const updated = {
|
|
16
23
|
...itemMetadata,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { TranslationStepProps } from "./types";
|
|
2
|
-
export declare function PromptCustomizationStep({
|
|
2
|
+
export declare function PromptCustomizationStep({ isActive, data, setData, onStepCompleted, editContext, }: TranslationStepProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=PromptCustomizationStep.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptCustomizationStep.d.ts","sourceRoot":"","sources":["../../src/steps/PromptCustomizationStep.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PromptCustomizationStep.d.ts","sourceRoot":"","sources":["../../src/steps/PromptCustomizationStep.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAyB,MAAM,SAAS,CAAC;AAItE,wBAAgB,uBAAuB,CAAC,EACtC,QAAe,EACf,IAAI,EACJ,OAAO,EACP,eAAe,EACf,WAAW,GACZ,EAAE,oBAAoB,2CAqctB"}
|