@parhelia/page-wizard 0.1.11455 → 0.1.11458
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/SplashScreen.d.ts +1 -0
- package/dist/SplashScreen.js +110 -0
- package/dist/SplashScreen.js.map +1 -0
- package/dist/dist/PageWizard.d.ts +78 -0
- package/dist/dist/PageWizard.js +57 -0
- package/dist/dist/PageWizard.js.map +1 -0
- package/dist/dist/SplashScreen.d.ts +1 -0
- package/dist/dist/SplashScreen.js +110 -0
- package/dist/dist/SplashScreen.js.map +1 -0
- package/dist/dist/WizardBoxConnector.d.ts +4 -0
- package/dist/dist/WizardBoxConnector.js +6 -0
- package/dist/dist/WizardBoxConnector.js.map +1 -0
- package/dist/dist/WizardSteps.d.ts +8 -0
- package/dist/dist/WizardSteps.js +174 -0
- package/dist/dist/WizardSteps.js.map +1 -0
- package/dist/dist/config.d.ts +2 -0
- package/dist/dist/config.js +86 -0
- package/dist/dist/config.js.map +1 -0
- package/dist/dist/index.d.ts +2 -0
- package/dist/dist/index.js +2 -0
- package/dist/dist/index.js.map +1 -0
- package/dist/dist/service.d.ts +15 -0
- package/dist/dist/service.js +29 -0
- package/dist/dist/service.js.map +1 -0
- package/dist/dist/startPageWizardCommand.d.ts +13 -0
- package/dist/dist/startPageWizardCommand.js +31 -0
- package/dist/dist/startPageWizardCommand.js.map +1 -0
- package/dist/dist/steps/BuildPageStep.d.ts +2 -0
- package/dist/dist/steps/BuildPageStep.js +138 -0
- package/dist/dist/steps/BuildPageStep.js.map +1 -0
- package/dist/dist/steps/CollectStep.d.ts +2 -0
- package/dist/dist/steps/CollectStep.js +115 -0
- package/dist/dist/steps/CollectStep.js.map +1 -0
- package/dist/dist/steps/ComponentTypesSelector.d.ts +13 -0
- package/dist/dist/steps/ComponentTypesSelector.js +155 -0
- package/dist/dist/steps/ComponentTypesSelector.js.map +1 -0
- package/dist/dist/steps/Components.d.ts +9 -0
- package/dist/dist/steps/Components.js +89 -0
- package/dist/dist/steps/Components.js.map +1 -0
- package/dist/dist/steps/ContentStep.d.ts +2 -0
- package/dist/dist/steps/ContentStep.js +808 -0
- package/dist/dist/steps/ContentStep.js.map +1 -0
- package/dist/dist/steps/EditButton.d.ts +8 -0
- package/dist/dist/steps/EditButton.js +5 -0
- package/dist/dist/steps/EditButton.js.map +1 -0
- package/dist/dist/steps/FieldEditor.d.ts +5 -0
- package/dist/dist/steps/FieldEditor.js +27 -0
- package/dist/dist/steps/FieldEditor.js.map +1 -0
- package/dist/dist/steps/FindItemsStep.d.ts +2 -0
- package/dist/dist/steps/FindItemsStep.js +294 -0
- package/dist/dist/steps/FindItemsStep.js.map +1 -0
- package/dist/dist/steps/Generate.d.ts +6 -0
- package/dist/dist/steps/Generate.js +31 -0
- package/dist/dist/steps/Generate.js.map +1 -0
- package/dist/dist/steps/ImagesStep.d.ts +2 -0
- package/dist/dist/steps/ImagesStep.js +178 -0
- package/dist/dist/steps/ImagesStep.js.map +1 -0
- package/dist/dist/steps/LayoutStep.d.ts +2 -0
- package/dist/dist/steps/LayoutStep.js +128 -0
- package/dist/dist/steps/LayoutStep.js.map +1 -0
- package/dist/dist/steps/MetaDataStep.d.ts +2 -0
- package/dist/dist/steps/MetaDataStep.js +112 -0
- package/dist/dist/steps/MetaDataStep.js.map +1 -0
- package/dist/dist/steps/SchottSelectImagesStep.d.ts +2 -0
- package/dist/dist/steps/SchottSelectImagesStep.js +55 -0
- package/dist/dist/steps/SchottSelectImagesStep.js.map +1 -0
- package/dist/dist/steps/SelectStep.d.ts +2 -0
- package/dist/dist/steps/SelectStep.js +151 -0
- package/dist/dist/steps/SelectStep.js.map +1 -0
- package/dist/dist/steps/StructureStep.d.ts +2 -0
- package/dist/dist/steps/StructureStep.js +205 -0
- package/dist/dist/steps/StructureStep.js.map +1 -0
- package/dist/dist/steps/TranslateStep.d.ts +2 -0
- package/dist/dist/steps/TranslateStep.js +613 -0
- package/dist/dist/steps/TranslateStep.js.map +1 -0
- package/dist/dist/steps/schema.d.ts +13 -0
- package/dist/dist/steps/schema.js +139 -0
- package/dist/dist/steps/schema.js.map +1 -0
- package/dist/dist/steps/usePageCreator.d.ts +7 -0
- package/dist/dist/steps/usePageCreator.js +285 -0
- package/dist/dist/steps/usePageCreator.js.map +1 -0
- package/dist/dist/types.d.ts +27 -0
- package/dist/dist/types.js +2 -0
- package/dist/dist/types.js.map +1 -0
- package/dist/dist/usePageWizard.d.ts +22 -0
- package/dist/dist/usePageWizard.js +69 -0
- package/dist/dist/usePageWizard.js.map +1 -0
- package/dist/dist/utils/dataAccessor.d.ts +57 -0
- package/dist/dist/utils/dataAccessor.js +323 -0
- package/dist/dist/utils/dataAccessor.js.map +1 -0
- package/dist/steps/Generate.js +24 -24
- package/dist/utils/dataAccessor.js +6 -6
- package/package.json +1 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PageWizard } from "./PageWizard";
|
|
3
|
+
import { CollectStep } from "./steps/CollectStep";
|
|
4
|
+
import { LayoutStep } from "./steps/LayoutStep";
|
|
5
|
+
import { BuildPageStep } from "./steps/BuildPageStep";
|
|
6
|
+
import { SelectStep } from "./steps/SelectStep";
|
|
7
|
+
import { ImagesStep } from "./steps/ImagesStep";
|
|
8
|
+
import { ContentStep } from "./steps/ContentStep";
|
|
9
|
+
import { MetaDataStep } from "./steps/MetaDataStep";
|
|
10
|
+
import { FindItemsStep } from "./steps/FindItemsStep";
|
|
11
|
+
import { StructureStep } from "./steps/StructureStep";
|
|
12
|
+
import { TranslateStep } from "./steps/TranslateStep";
|
|
13
|
+
import { getWizards } from "./service";
|
|
14
|
+
import { startPageWizardCommand } from "./startPageWizardCommand";
|
|
15
|
+
import { PageWizardIcon } from "@parhelia/core";
|
|
16
|
+
export function configurePageWizards(configuration) {
|
|
17
|
+
// Visible logs (not debug) so they appear without Verbose filtering
|
|
18
|
+
try {
|
|
19
|
+
console.log("[PageWizard] before merge - command keys:", Object.keys(configuration?.commands || {}));
|
|
20
|
+
}
|
|
21
|
+
catch { }
|
|
22
|
+
// Mutate in place for robustness (caller might ignore return value)
|
|
23
|
+
const cfg = configuration;
|
|
24
|
+
cfg.commands = {
|
|
25
|
+
...(cfg.commands || {}),
|
|
26
|
+
[startPageWizardCommand.id]: startPageWizardCommand,
|
|
27
|
+
};
|
|
28
|
+
try {
|
|
29
|
+
console.log("[PageWizard] after merge - command keys:", Object.keys(cfg.commands || {}));
|
|
30
|
+
}
|
|
31
|
+
catch { }
|
|
32
|
+
cfg.extensions = {
|
|
33
|
+
...(cfg.extensions || {}),
|
|
34
|
+
"page-wizard": {
|
|
35
|
+
getWizards,
|
|
36
|
+
startWizardCommand: startPageWizardCommand,
|
|
37
|
+
stepComponents: {
|
|
38
|
+
CollectStep,
|
|
39
|
+
LayoutStep,
|
|
40
|
+
BuildPageStep,
|
|
41
|
+
SelectStep,
|
|
42
|
+
ImagesStep,
|
|
43
|
+
ContentStep,
|
|
44
|
+
MetaDataStep,
|
|
45
|
+
FindItemsStep,
|
|
46
|
+
StructureStep,
|
|
47
|
+
TranslateStep,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
// Ensure the view is present; avoid duplicates
|
|
52
|
+
const views = cfg.editor?.views || [];
|
|
53
|
+
const hasWizardView = views.some((v) => v?.name === "page-wizard");
|
|
54
|
+
if (!hasWizardView) {
|
|
55
|
+
cfg.editor = {
|
|
56
|
+
...(cfg.editor || {}),
|
|
57
|
+
views: [
|
|
58
|
+
...views,
|
|
59
|
+
{
|
|
60
|
+
name: "page-wizard",
|
|
61
|
+
title: "Page Wizard",
|
|
62
|
+
icon: _jsx(PageWizardIcon, {}),
|
|
63
|
+
defaultCenterPanelView: _jsx(PageWizard, {}),
|
|
64
|
+
hideViewSelector: true,
|
|
65
|
+
visible: (editContext) => !!editContext.currentWizardId || editContext.viewName === "page-wizard",
|
|
66
|
+
headerTitle: () => "Page Wizard",
|
|
67
|
+
beforeClose: async (editContext) => {
|
|
68
|
+
return new Promise((resolve) => {
|
|
69
|
+
editContext.confirm({
|
|
70
|
+
showCancel: true,
|
|
71
|
+
showAccept: true,
|
|
72
|
+
header: "Close Page Wizard",
|
|
73
|
+
message: "Are you sure you want to close the page wizard?",
|
|
74
|
+
accept: () => resolve(true),
|
|
75
|
+
reject: () => resolve(false),
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
disableAgentsPanel: true,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return configuration;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ItemDescriptor, type EditContextType } from "@parhelia/core";
|
|
2
|
+
import { Wizard } from "./PageWizard";
|
|
3
|
+
export declare function getWizards(parentItem: ItemDescriptor): Promise<Wizard[]>;
|
|
4
|
+
export declare function getWizard(wizardId: string, parentItem: ItemDescriptor): Promise<Wizard>;
|
|
5
|
+
export declare function createWizardAiContext({ editContext, }: {
|
|
6
|
+
editContext: EditContextType;
|
|
7
|
+
}): {
|
|
8
|
+
endpoint: string;
|
|
9
|
+
promptData: {
|
|
10
|
+
itemid: string | undefined;
|
|
11
|
+
language: string | undefined;
|
|
12
|
+
version: number | undefined;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare function wipeComponents(pageItem: ItemDescriptor): Promise<import("@parhelia/core").ExecutionResult<unknown>>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { post } from "@parhelia/core";
|
|
2
|
+
export async function getWizards(parentItem) {
|
|
3
|
+
const result = await post("/parhelia/page-wizard/wizards", parentItem);
|
|
4
|
+
return result.data;
|
|
5
|
+
}
|
|
6
|
+
export async function getWizard(wizardId, parentItem) {
|
|
7
|
+
const result = await post("/parhelia/page-wizard/getWizard", {
|
|
8
|
+
wizardId,
|
|
9
|
+
parentItem,
|
|
10
|
+
});
|
|
11
|
+
return result.data;
|
|
12
|
+
}
|
|
13
|
+
export function createWizardAiContext({ editContext, }) {
|
|
14
|
+
const aiPromptUrl = "/parhelia/page-wizard/prompt";
|
|
15
|
+
return {
|
|
16
|
+
// configuration.services.editorService.baseUrl +
|
|
17
|
+
endpoint: aiPromptUrl,
|
|
18
|
+
promptData: {
|
|
19
|
+
itemid: editContext.currentItemDescriptor?.id,
|
|
20
|
+
language: editContext.currentItemDescriptor?.language,
|
|
21
|
+
version: editContext.currentItemDescriptor?.version,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export async function wipeComponents(pageItem) {
|
|
26
|
+
const result = await post("/parhelia/page-wizard/wipePage", pageItem);
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwC,MAAM,gBAAgB,CAAC;AAI5E,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,IAAqB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,UAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iCAAiC,EAAE;QAC3D,QAAQ;QACR,UAAU;KACX,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAc,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,WAAW,GAGZ;IACC,MAAM,WAAW,GAAG,8BAA8B,CAAC;IAEnD,OAAO;QACL,iDAAiD;QACjD,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE;YACV,MAAM,EAAE,WAAW,CAAC,qBAAqB,EAAE,EAAE;YAC7C,QAAQ,EAAE,WAAW,CAAC,qBAAqB,EAAE,QAAQ;YACrD,OAAO,EAAE,WAAW,CAAC,qBAAqB,EAAE,OAAO;SACpD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAwB;IAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CommandContext, ItemDescriptor } from "@parhelia/core";
|
|
2
|
+
import { Wizard } from "./PageWizard";
|
|
3
|
+
export declare const startPageWizardCommand: {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon: string;
|
|
7
|
+
execute: (context: CommandContext<{
|
|
8
|
+
wizard?: Wizard;
|
|
9
|
+
wizardId?: string;
|
|
10
|
+
item: ItemDescriptor;
|
|
11
|
+
}>) => Promise<void>;
|
|
12
|
+
disabled: () => boolean;
|
|
13
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const startPageWizardCommand = {
|
|
2
|
+
id: "startPageWizard",
|
|
3
|
+
label: "Start Wizard",
|
|
4
|
+
icon: "pi pi-magic",
|
|
5
|
+
execute: async (context) => {
|
|
6
|
+
console.log("startPageWizardCommand");
|
|
7
|
+
if (!context.data?.item)
|
|
8
|
+
return;
|
|
9
|
+
await context.editContext.loadItem(context.data.item);
|
|
10
|
+
// Prefer fast navigation: set wizard id immediately and let the view load details
|
|
11
|
+
const wizardId = context.data?.wizard?.id || context.data?.wizardId;
|
|
12
|
+
if (wizardId) {
|
|
13
|
+
context.editContext.setCurrentWizardId(wizardId);
|
|
14
|
+
context.editContext.switchView("page-wizard");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
// Backward compatibility: if neither provided, attempt to fetch via service (best effort)
|
|
18
|
+
try {
|
|
19
|
+
if (context.data?.wizard) {
|
|
20
|
+
context.editContext.setCurrentWizardId(context.data.wizard.id);
|
|
21
|
+
context.editContext.switchView("page-wizard");
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch { }
|
|
26
|
+
},
|
|
27
|
+
disabled: () => {
|
|
28
|
+
return false;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=startPageWizardCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startPageWizardCommand.js","sourceRoot":"","sources":["../src/startPageWizardCommand.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,KAAK,EACZ,OAAqF,EACrF,EAAE;QACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;YAAE,OAAO;QAEhC,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,kFAAkF;QAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Splitter, PageViewer, getChildren, ActionButton, useEditContext } from "@parhelia/core";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { useDebouncedCallback } from "use-debounce";
|
|
5
|
+
import Generate from "./Generate";
|
|
6
|
+
import { usePageCreator } from "./usePageCreator";
|
|
7
|
+
export function BuildPageStep({ data, setData, parentItem, wizard, setStepCompleted, }) {
|
|
8
|
+
const editContext = useEditContext();
|
|
9
|
+
const [createdPageDescriptor, setCreatedPageDescriptor] = useState();
|
|
10
|
+
const [pageLoaded, setPageLoaded] = useState(false);
|
|
11
|
+
const [fullParentItem, setFullParentItem] = useState();
|
|
12
|
+
const [isBuilding, setIsBuilding] = useState(false);
|
|
13
|
+
const [validationMessage, setValidationMessage] = useState();
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (createdPageDescriptor &&
|
|
16
|
+
createdPageDescriptor.id === editContext?.page?.item?.descriptor.id)
|
|
17
|
+
setPageLoaded(true);
|
|
18
|
+
}, [editContext?.page]);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const loadParentItem = async () => {
|
|
21
|
+
if (!parentItem)
|
|
22
|
+
return;
|
|
23
|
+
const item = await editContext?.itemsRepository.getItem(parentItem);
|
|
24
|
+
setFullParentItem(item);
|
|
25
|
+
};
|
|
26
|
+
loadParentItem();
|
|
27
|
+
}, [parentItem]);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
const buildComponents = async () => {
|
|
30
|
+
try {
|
|
31
|
+
console.log("Building components", createdPageDescriptor, editContext?.page);
|
|
32
|
+
// Recursively create components from page model
|
|
33
|
+
if (pageModel.components && pageModel.components.length > 0) {
|
|
34
|
+
await pageCreator.createComponentsRecursively(pageModel.components, "root");
|
|
35
|
+
}
|
|
36
|
+
editContext?.requestRefresh();
|
|
37
|
+
console.log("Components built", createdPageDescriptor, editContext?.page);
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
setIsBuilding(false);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
if (pageLoaded) {
|
|
44
|
+
buildComponents();
|
|
45
|
+
}
|
|
46
|
+
}, [pageLoaded]);
|
|
47
|
+
// Initialize pageModel if it doesn't exist
|
|
48
|
+
const pageModel = data.pageModel || {
|
|
49
|
+
components: [],
|
|
50
|
+
name: "",
|
|
51
|
+
metaDescription: "",
|
|
52
|
+
};
|
|
53
|
+
// Handle input changes
|
|
54
|
+
const handleInputChange = (field, value) => {
|
|
55
|
+
const updatedPageModel = {
|
|
56
|
+
...pageModel,
|
|
57
|
+
[field]: value,
|
|
58
|
+
};
|
|
59
|
+
setData({
|
|
60
|
+
...data,
|
|
61
|
+
pageModel: updatedPageModel,
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const checkName = async () => {
|
|
65
|
+
if (!parentItem)
|
|
66
|
+
return;
|
|
67
|
+
let valid = !!wizard.templateId && pageModel.name.trim().length >= 3;
|
|
68
|
+
if (valid) {
|
|
69
|
+
const children = await getChildren(parentItem.id, editContext?.sessionId ?? "", [], false, editContext?.contentEditorItem?.language || "en");
|
|
70
|
+
if (children.find((x) => x.name.toLocaleLowerCase() ===
|
|
71
|
+
pageModel.name.trim().toLocaleLowerCase())) {
|
|
72
|
+
valid = false;
|
|
73
|
+
setValidationMessage("A page with this name already exists.");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
if (pageModel.name.trim().length > 0 && pageModel.name.trim().length < 3)
|
|
78
|
+
setValidationMessage("Name is too short.");
|
|
79
|
+
else
|
|
80
|
+
setValidationMessage(undefined);
|
|
81
|
+
}
|
|
82
|
+
if (valid)
|
|
83
|
+
setValidationMessage(undefined);
|
|
84
|
+
return valid;
|
|
85
|
+
};
|
|
86
|
+
const checkNameValidDebounced = useDebouncedCallback(async () => checkName(), 500);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
checkNameValidDebounced();
|
|
89
|
+
}, [pageModel.name]);
|
|
90
|
+
const createPage = () => {
|
|
91
|
+
setTimeout(async () => {
|
|
92
|
+
if (!editContext || !parentItem)
|
|
93
|
+
return;
|
|
94
|
+
try {
|
|
95
|
+
if (!(await checkName()))
|
|
96
|
+
return;
|
|
97
|
+
setIsBuilding(true);
|
|
98
|
+
const result = await editContext.operations.createItem({
|
|
99
|
+
...parentItem,
|
|
100
|
+
language: data.language || parentItem.language || "en",
|
|
101
|
+
}, wizard.templateId, pageModel.name);
|
|
102
|
+
if (!result)
|
|
103
|
+
return;
|
|
104
|
+
// Ensure the result has the correct language
|
|
105
|
+
const resultWithLanguage = {
|
|
106
|
+
...result,
|
|
107
|
+
language: data.language || parentItem.language || "en",
|
|
108
|
+
version: 0,
|
|
109
|
+
};
|
|
110
|
+
editContext?.loadItem(resultWithLanguage, { addToBrowseHistory: true });
|
|
111
|
+
setCreatedPageDescriptor(resultWithLanguage);
|
|
112
|
+
console.log("Page created", result, "Page model", pageModel);
|
|
113
|
+
setStepCompleted(true);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error("Error creating page", error);
|
|
117
|
+
setIsBuilding(false);
|
|
118
|
+
}
|
|
119
|
+
}, 1);
|
|
120
|
+
};
|
|
121
|
+
const pageCreator = usePageCreator(createdPageDescriptor, wizard, (pageModel) => setData({ ...data, pageModel }));
|
|
122
|
+
const settingsPanel = {
|
|
123
|
+
name: "settings",
|
|
124
|
+
defaultSize: 450,
|
|
125
|
+
collapsible: false,
|
|
126
|
+
content: (_jsxs("div", { className: "pr-6", children: [_jsxs("div", { className: "mb-4", children: [_jsx("div", { className: "mb-1 text-sm font-medium", children: "Target Parent Item" }), _jsx("div", { className: "mb-4 break-after-all text-xs", children: fullParentItem?.path })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { htmlFor: "pageName", className: "mb-1 block text-sm font-medium", children: "Page Name" }), _jsx("input", { id: "pageName", type: "text", className: "w-full rounded border p-2 text-sm", value: pageModel.name, onChange: (e) => handleInputChange("name", e.target.value), placeholder: "Enter page name" }), validationMessage && (_jsx("div", { className: "mt-2 text-sm text-red-500", children: validationMessage }))] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { htmlFor: "metaDescription", className: "mb-1 block text-sm font-medium", children: "Meta Description" }), _jsx("textarea", { id: "metaDescription", className: "min-h-[100px] w-full rounded border p-2 text-sm", value: pageModel.metaDescription, onChange: (e) => handleInputChange("metaDescription", e.target.value), placeholder: "Enter meta description" })] }), _jsx(ActionButton, { disabled: isBuilding || !!validationMessage, className: "w-full flex-1", onClick: () => {
|
|
127
|
+
createPage();
|
|
128
|
+
}, isLoading: isBuilding, loadingText: "Working", children: "Create Page" })] })),
|
|
129
|
+
};
|
|
130
|
+
const contentPanel = {
|
|
131
|
+
name: "content",
|
|
132
|
+
defaultSize: "auto",
|
|
133
|
+
collapsible: false,
|
|
134
|
+
content: (_jsxs(_Fragment, { children: [_jsx("div", { className: pageLoaded ? "h-full" : "h-0", children: _jsx(PageViewer, { name: "single", compareView: false, showFormEditor: false, followEditsDefault: true, pageViewContext: editContext.pageView }) }), isBuilding && !pageLoaded && (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsx(Generate, { title: "Building page..." }) }))] })),
|
|
135
|
+
};
|
|
136
|
+
return _jsx(Splitter, { panels: [settingsPanel, contentPanel] });
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=BuildPageStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildPageStep.js","sourceRoot":"","sources":["../../src/steps/BuildPageStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Input } from "@parhelia/core";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { ActionButton, UploadIcon, DocumentIcon, Spinner, Card, Button, Textarea } from "@parhelia/core";
|
|
5
|
+
import { LinkIcon } from "lucide-react";
|
|
6
|
+
import { evaluateDataExpression, setDataProperty } from "../utils/dataAccessor";
|
|
7
|
+
export function CollectStep({ step, data, setData, setStepCompleted, }) {
|
|
8
|
+
const [isUploading, setIsUploading] = useState(false);
|
|
9
|
+
const [isScraping, setIsScraping] = useState(false);
|
|
10
|
+
const [error, setError] = useState(null);
|
|
11
|
+
const [scrapeError, setScrapeError] = useState(null);
|
|
12
|
+
const [scrapeUrl, setScrapeUrl] = useState(null);
|
|
13
|
+
const fileInputRef = useRef(null);
|
|
14
|
+
// Get the property name from the step configuration
|
|
15
|
+
const propertyName = step?.fields.propertyName || "htmlContent";
|
|
16
|
+
// Extract configuration from step
|
|
17
|
+
const enableUpload = step?.fields.enableUpload === "1";
|
|
18
|
+
const enableScrape = step?.fields.enableScrape === "1";
|
|
19
|
+
const enableText = step?.fields.enableText === "1";
|
|
20
|
+
const uploadTitle = step?.fields.uploadTitle || "Upload a file (optional)";
|
|
21
|
+
const uploadDescription = step?.fields.uploadDescription || "Upload a file to the page";
|
|
22
|
+
const scrapeTitle = step?.fields.scrapeTitle || "Scrape page from URL (optional)";
|
|
23
|
+
const scrapeDescription = step?.fields.scrapeDescription ||
|
|
24
|
+
"Only scrape websites you have permission to access. You are responsible for complying with the website's terms of service and all applicable laws.";
|
|
25
|
+
const textTitle = step?.fields.textTitle || "Text";
|
|
26
|
+
const textDescription = step?.fields.textDescription ||
|
|
27
|
+
"Provide the text you want to use for the page";
|
|
28
|
+
const handleDrop = (e) => {
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
e.stopPropagation();
|
|
31
|
+
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
32
|
+
uploadFile(e.dataTransfer.files[0]);
|
|
33
|
+
setError(null);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
const { value: currentContent } = evaluateDataExpression(propertyName, data);
|
|
38
|
+
if (currentContent) {
|
|
39
|
+
setStepCompleted(true);
|
|
40
|
+
}
|
|
41
|
+
}, [data, propertyName]);
|
|
42
|
+
const uploadFile = async (file) => {
|
|
43
|
+
if (!file) {
|
|
44
|
+
setError("Please select a file first");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
setIsUploading(true);
|
|
49
|
+
setError(null);
|
|
50
|
+
const formData = new FormData();
|
|
51
|
+
formData.append("uploadedFile", file);
|
|
52
|
+
const response = await fetch("/parhelia/page-wizard/convertFile", {
|
|
53
|
+
method: "POST",
|
|
54
|
+
body: formData,
|
|
55
|
+
});
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
|
|
58
|
+
}
|
|
59
|
+
const htmlContent = await response.text();
|
|
60
|
+
setData((prev) => setDataProperty(propertyName, htmlContent, prev));
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
setError(err instanceof Error ? err.message : "Unknown error occurred");
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
setIsUploading(false);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const triggerFileInput = () => {
|
|
70
|
+
fileInputRef.current ? (fileInputRef.current.value = "") : "";
|
|
71
|
+
fileInputRef.current?.click();
|
|
72
|
+
};
|
|
73
|
+
const handleScrape = async (e) => {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
try {
|
|
76
|
+
setScrapeError(null);
|
|
77
|
+
if (!scrapeUrl) {
|
|
78
|
+
setScrapeError("Please enter a URL first");
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
setIsScraping(true);
|
|
82
|
+
const response = await fetch("/parhelia/page-wizard/scrape", {
|
|
83
|
+
method: "POST",
|
|
84
|
+
body: JSON.stringify({ url: scrapeUrl }),
|
|
85
|
+
headers: {
|
|
86
|
+
"Content-Type": "application/json",
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
throw new Error(`Scraping failed: ${response.status} ${response.statusText}`);
|
|
91
|
+
}
|
|
92
|
+
const htmlContent = await response.text();
|
|
93
|
+
setData((prev) => setDataProperty(propertyName, htmlContent, prev));
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
setScrapeError(err instanceof Error ? err.message : "Unknown error occurred");
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
setIsScraping(false);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
// Get current content value
|
|
103
|
+
const { value: currentContent } = evaluateDataExpression(propertyName, data);
|
|
104
|
+
return (_jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [enableUpload && (_jsxs(Card, { icon: _jsx(UploadIcon, { className: "text-theme-secondary" }), title: uploadTitle, description: uploadDescription, children: [error && _jsx("div", { className: "mt-2 text-sm text-red-500", children: error }), _jsx("div", { className: `border-theme-secondary flex flex-col items-center justify-center border border-dashed p-8 ${isUploading ? "" : "bg-white"}`, onDrop: handleDrop, onDragOver: (e) => e.preventDefault(), children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-1 text-center text-sm", children: [!isUploading && (_jsxs("svg", { width: "49", height: "48", viewBox: "0 0 49 48", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("rect", { x: "0.666992", width: "48", height: "48", rx: "24", fill: "#F6EEFF" }), _jsx("path", { d: "M32.604 20.68C32.594 20.648 32.583 20.6167 32.571 20.586C32.5235 20.4775 32.4572 20.3783 32.375 20.293L26.375 14.293C26.2897 14.2108 26.1905 14.1445 26.082 14.097C26.052 14.083 26.02 14.075 25.988 14.064C25.9043 14.0356 25.8172 14.0185 25.729 14.013C25.707 14.011 25.688 14 25.667 14H18.667C17.564 14 16.667 14.897 16.667 16V32C16.667 33.103 17.564 34 18.667 34H30.667C31.77 34 32.667 33.103 32.667 32V21C32.667 20.979 32.656 20.96 32.654 20.938C32.6487 20.8502 32.6319 20.7634 32.604 20.68ZM29.253 20H26.667V17.414L29.253 20ZM18.667 32V16H24.667V21C24.667 21.2652 24.7723 21.5196 24.9599 21.7071C25.1474 21.8946 25.4018 22 25.667 22H30.667L30.669 32H18.667Z", fill: "#9650FB" })] })), isUploading && _jsx(Spinner, {}), !isUploading && (_jsxs(_Fragment, { children: [_jsx("input", { ref: fileInputRef, type: "file", multiple: true, accept: ".pdf,.doc,.docx", style: { display: "none" }, onChange: (e) => {
|
|
105
|
+
const file = e.target.files?.[0];
|
|
106
|
+
if (file) {
|
|
107
|
+
uploadFile(file);
|
|
108
|
+
}
|
|
109
|
+
}, onDrop: handleDrop, disabled: isUploading }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: `text-sm font-medium ${isUploading
|
|
110
|
+
? "text-gray-500"
|
|
111
|
+
: "text-theme-secondary cursor-pointer underline"} `, onClick: triggerFileInput, children: "Click" }), "or drag & drop to upload"] })] }))] }) })] })), enableScrape && (_jsx(Card, { icon: _jsx(LinkIcon, { className: "text-theme-secondary" }), title: scrapeTitle, description: scrapeDescription, collapsible: "mobileOnly", defaultCollapsed: "mobileOnly", children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Input, { type: "text", className: "rounded-md border border-gray-300 px-3 py-2", onChange: (e) => setScrapeUrl(e.target.value) }), scrapeError && (_jsx("div", { className: "mt-2 text-sm text-red-500", children: scrapeError })), _jsx("div", { className: "flex gap-2", children: _jsx(ActionButton, { type: "submit", isLoading: isScraping, onClick: handleScrape, loadingText: "Scraping...", children: "Scrape" }) })] }) })), enableText && (_jsxs(Card, { icon: _jsx(DocumentIcon, { className: "text-theme-secondary" }), title: textTitle, description: textDescription, className: `${!enableUpload && !enableScrape ? "md:col-span-2" : enableUpload && enableScrape ? "md:col-span-2" : ""}`, children: [_jsx(Textarea, { className: "border-theme-secondary max-h-full w-full text-sm", value: currentContent || "", rows: 20, onChange: (e) => setData((prev) => setDataProperty(propertyName, e.target.value || "", prev)) }), step.children && step.children.length > 0 && (_jsxs("div", { children: [_jsx("div", { className: "mt-2 mb-1 text-sm font-semibold", children: "Examples:" }), _jsx("div", { className: "flex flex-wrap gap-2", children: step.children.map((child) => (_jsx(Button, { variant: "outline", onClick: () => {
|
|
112
|
+
setData((prev) => setDataProperty(propertyName, child.fields.text, prev));
|
|
113
|
+
}, children: child.fields.title }, child.id))) })] }))] }))] }));
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=CollectStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectStep.js","sourceRoot":"","sources":["../../src/steps/CollectStep.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,gBAAgB,GACG;IACnB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEpD,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC;IAEhE,kCAAkC;IAClC,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,KAAK,GAAG,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,KAAK,GAAG,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC,UAAU,KAAK,GAAG,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,0BAA0B,CAAC;IAC3E,MAAM,iBAAiB,GACrB,IAAI,EAAE,MAAM,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;IAEhE,MAAM,WAAW,GACf,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,iCAAiC,CAAC;IAChE,MAAM,iBAAiB,GACrB,IAAI,EAAE,MAAM,CAAC,iBAAiB;QAC9B,oJAAoJ,CAAC;IAEvJ,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;IACnD,MAAM,eAAe,GACnB,IAAI,EAAE,MAAM,CAAC,eAAe;QAC5B,+CAA+C,CAAC;IAElD,MAAM,UAAU,GAAG,CAAC,CAAkC,EAAE,EAAE;QACxD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,sBAAsB,CACtD,YAAY,EACZ,IAAI,CACL,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAU,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAEtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mCAAmC,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,kBAAkB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,CAAkB,EAAE,EAAE;QAChD,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,CAAC;YAErB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,cAAc,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,8BAA8B,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBACxC,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,oBAAoB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC7D,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE1C,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CACZ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAC9D,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAE7E,OAAO,CACL,eAAK,SAAS,EAAC,uCAAuC,aACnD,YAAY,IAAI,CACf,MAAC,IAAI,IACH,IAAI,EAAE,KAAC,UAAU,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACrD,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,iBAAiB,aAE7B,KAAK,IAAI,cAAK,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAO,EAClE,cACE,SAAS,EAAE,6FACT,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UACrB,EAAE,EACF,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,YAErC,eAAK,SAAS,EAAC,qEAAqE,aACjF,CAAC,WAAW,IAAI,CACf,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,aAElC,eACE,CAAC,EAAC,UAAU,EACZ,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,EAAE,EAAC,IAAI,EACP,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,opBAAopB,EACtpB,IAAI,EAAC,SAAS,GACd,IACE,CACP,EACA,WAAW,IAAI,KAAC,OAAO,KAAG,EAC1B,CAAC,WAAW,IAAI,CACf,8BACE,gBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,QAAQ,QACR,MAAM,EAAC,iBAAiB,EACxB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gDACd,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gDACjC,IAAI,IAAI,EAAE,CAAC;oDACT,UAAU,CAAC,IAAI,CAAC,CAAC;gDACnB,CAAC;4CACH,CAAC,EACD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,WAAW,GACrB,EACF,eAAK,SAAS,EAAC,yBAAyB,aACtC,eACE,SAAS,EAAE,uBACT,WAAW;wDACT,CAAC,CAAC,eAAe;wDACjB,CAAC,CAAC,+CACN,GAAG,EACH,OAAO,EAAE,gBAAgB,sBAGpB,gCAEH,IACL,CACJ,IACG,GACF,IACD,CACR,EACA,YAAY,IAAI,CACf,KAAC,IAAI,IACH,IAAI,EAAE,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACnD,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAC,YAAY,EACxB,gBAAgB,EAAC,YAAY,YAE7B,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,KAAK,IACJ,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,6CAA6C,EACvD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC7C,EACD,WAAW,IAAI,CACd,cAAK,SAAS,EAAC,2BAA2B,YAAE,WAAW,GAAO,CAC/D,EACD,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,YAAY,IACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAC,aAAa,uBAGZ,GACX,IACF,GACD,CACR,EACA,UAAU,IAAI,CACb,MAAC,IAAI,IACH,IAAI,EAAE,KAAC,YAAY,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACvD,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,aAEtH,KAAC,QAAQ,IACP,SAAS,EAAC,kDAAkD,EAC5D,KAAK,EAAE,cAAc,IAAI,EAAE,EAC3B,IAAI,EAAE,EAAE,EACR,QAAQ,EAAE,CAAC,CAAyC,EAAE,EAAE,CACtD,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAC1D,GAEH,EACD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,0BACE,cAAK,SAAS,EAAC,iCAAiC,0BAAgB,EAChE,cAAK,SAAS,EAAC,sBAAsB,YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EAEjB,OAAO,EAAE,GAAG,EAAE;wCACZ,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CACvD,CAAC;oCACJ,CAAC,YAEA,KAAK,CAAC,MAAM,CAAC,KAAK,IAPd,KAAK,CAAC,EAAE,CAQN,CACV,CAAC,GACE,IACF,CACP,IACI,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import { WizardStep } from "../PageWizard";
|
|
3
|
+
import { PageSchema, WizardData } from "../PageWizard";
|
|
4
|
+
export declare function ComponentTypeSelector({ selectedComponentTypes, setSelectedComponentTypes, schema, data, setData, step, availableComponentTypes, }: {
|
|
5
|
+
selectedComponentTypes?: string[];
|
|
6
|
+
setSelectedComponentTypes: Dispatch<SetStateAction<string[]>>;
|
|
7
|
+
schema: PageSchema | string;
|
|
8
|
+
data: WizardData;
|
|
9
|
+
setData: (data: WizardData) => void;
|
|
10
|
+
step: WizardStep;
|
|
11
|
+
availableComponentTypes?: string[];
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function getComponentTypeSelectorSummary(selectedComponentTypes?: string[], availableComponentTypes?: string[]): string;
|