@alpaca-headless/alpaca-headless-nextjs 1.0.27 → 1.0.128
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/cjs/client-components/ClientLink.js +36 -0
- package/dist/cjs/client-components/MultiComponentEditor.js +26 -0
- package/dist/cjs/client-components/index.js +19 -0
- package/dist/cjs/components/Link.js +1 -1
- package/dist/cjs/components/LinkEditor.js +47 -1
- package/dist/cjs/components/Picture.js +14 -12
- package/dist/cjs/components/PictureEditor.js +20 -39
- package/dist/cjs/components/Placeholder.js +51 -9
- package/dist/cjs/components/RichText.js +1 -1
- package/dist/cjs/components/RichTextEditor.js +17 -2
- package/dist/cjs/components/TextEditor.js +15 -3
- package/dist/cjs/components/Translate.js +1 -1
- package/dist/cjs/{editor → components}/TranslateEditor.js +5 -2
- package/dist/cjs/editor/AiPopup.js +33 -0
- package/dist/cjs/editor/AiTerminal.js +42 -18
- package/dist/cjs/editor/ComponentInfo.js +4 -3
- package/dist/cjs/editor/ComponentPalette.js +12 -68
- package/dist/cjs/editor/ComponentTree.js +76 -59
- package/dist/cjs/editor/ConfirmationDialog.js +31 -0
- package/dist/cjs/editor/ContentTree.js +144 -49
- package/dist/cjs/editor/Debug.js +12 -2
- package/dist/cjs/editor/DialogButtons.js +7 -0
- package/dist/cjs/editor/DictionaryEditor.js +14 -8
- package/dist/cjs/editor/EditFrame.js +88 -20
- package/dist/cjs/editor/EditHistory.js +17 -4
- package/dist/cjs/editor/Editor.js +1 -1
- package/dist/cjs/editor/EditorClient.js +506 -237
- package/dist/cjs/editor/EditorClientHost.js +2 -2
- package/dist/cjs/editor/FieldList.js +30 -43
- package/dist/cjs/editor/FieldListField.js +75 -0
- package/dist/cjs/editor/FloatingToolbar.js +92 -0
- package/dist/cjs/editor/GraphQL.js +4 -6
- package/dist/cjs/editor/ItemEditor.js +9 -0
- package/dist/cjs/editor/ItemInfo.js +17 -0
- package/dist/cjs/editor/ItemNameDialog.js +37 -0
- package/dist/cjs/editor/LanguageSelector.js +1 -1
- package/dist/cjs/editor/LinkEditorDialog.js +67 -0
- package/dist/cjs/editor/MainLayout.js +24 -0
- package/dist/cjs/editor/MediaSelector.js +35 -10
- package/dist/cjs/editor/PictureEditorDialog.js +93 -0
- package/dist/cjs/editor/PlaceholderDropZone.js +48 -9
- package/dist/cjs/editor/SidebarTabs.js +47 -0
- package/dist/cjs/editor/Terminal.js +21 -11
- package/dist/cjs/editor/Utils.js +43 -0
- package/dist/cjs/editor/VersionSelector.js +1 -1
- package/dist/cjs/editor/Workbox.js +41 -0
- package/dist/cjs/editor/componentCommands.js +141 -0
- package/dist/cjs/editor/contentService.js +45 -3
- package/dist/cjs/editor/editContext.js +9 -4
- package/dist/cjs/editor/editService.js +187 -3
- package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +21 -0
- package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +46 -0
- package/dist/cjs/editor/fieldTypes/LinkFieldEditor.js +55 -0
- package/dist/cjs/editor/fieldTypes/MultiLineText.js +25 -0
- package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +19 -0
- package/dist/cjs/editor/fieldTypes/RichTextEditor.js +9 -4
- package/dist/cjs/editor/fieldTypes/SingleLineText.js +12 -4
- package/dist/cjs/editor/fieldTypes/TreeListEditor.js +59 -0
- package/dist/cjs/editor/ui/Section.js +8 -0
- package/dist/cjs/loadRouteData.js +24 -14
- package/dist/cjs/middleware/authorization.js +52 -0
- package/dist/cjs/middleware/index.js +17 -0
- package/dist/editor.css +530 -72
- package/dist/primereact/resources/themes/arya-blue/theme.css +103 -91
- package/dist/primereact/resources/themes/arya-green/theme.css +103 -91
- package/dist/primereact/resources/themes/arya-orange/theme.css +103 -91
- package/dist/primereact/resources/themes/arya-purple/theme.css +103 -91
- package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +103 -91
- package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +103 -91
- package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +102 -90
- package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +102 -90
- package/dist/primereact/resources/themes/fluent-light/theme.css +103 -91
- package/dist/primereact/resources/themes/lara-dark-amber/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-amber/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-amber/theme.css +6049 -0
- package/dist/primereact/resources/themes/lara-dark-blue/theme.css +1006 -955
- package/dist/primereact/resources/themes/lara-dark-cyan/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-cyan/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +6049 -0
- package/dist/primereact/resources/themes/lara-dark-green/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-green/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-green/theme.css +6049 -0
- package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +1006 -955
- package/dist/primereact/resources/themes/lara-dark-pink/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-pink/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-dark-pink/theme.css +6049 -0
- package/dist/primereact/resources/themes/lara-dark-purple/theme.css +1006 -955
- package/dist/primereact/resources/themes/lara-dark-teal/theme.css +1006 -955
- package/dist/primereact/resources/themes/lara-light-amber/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-amber/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-amber/theme.css +6041 -0
- package/dist/primereact/resources/themes/lara-light-blue/theme.css +842 -799
- package/dist/primereact/resources/themes/lara-light-cyan/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-cyan/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-cyan/theme.css +6041 -0
- package/dist/primereact/resources/themes/lara-light-green/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-green/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-green/theme.css +6041 -0
- package/dist/primereact/resources/themes/lara-light-indigo/theme.css +842 -799
- package/dist/primereact/resources/themes/lara-light-pink/fonts/Inter-italic.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-pink/fonts/Inter-roman.var.woff2 +0 -0
- package/dist/primereact/resources/themes/lara-light-pink/theme.css +6041 -0
- package/dist/primereact/resources/themes/lara-light-purple/theme.css +842 -799
- package/dist/primereact/resources/themes/lara-light-teal/theme.css +1115 -1072
- package/dist/primereact/resources/themes/luna-amber/theme.css +103 -91
- package/dist/primereact/resources/themes/luna-blue/theme.css +103 -91
- package/dist/primereact/resources/themes/luna-green/theme.css +103 -91
- package/dist/primereact/resources/themes/luna-pink/theme.css +103 -91
- package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +147 -135
- package/dist/primereact/resources/themes/md-dark-indigo/theme.css +147 -135
- package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +147 -135
- package/dist/primereact/resources/themes/md-light-indigo/theme.css +147 -135
- package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +147 -135
- package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +147 -135
- package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +147 -135
- package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +147 -135
- package/dist/primereact/resources/themes/mira/theme.css +108 -91
- package/dist/primereact/resources/themes/nano/theme.css +107 -91
- package/dist/primereact/resources/themes/nova/theme.css +103 -91
- package/dist/primereact/resources/themes/nova-accent/theme.css +103 -91
- package/dist/primereact/resources/themes/nova-alt/theme.css +103 -91
- package/dist/primereact/resources/themes/rhea/theme.css +103 -91
- package/dist/primereact/resources/themes/saga-blue/theme.css +103 -91
- package/dist/primereact/resources/themes/saga-green/theme.css +103 -91
- package/dist/primereact/resources/themes/saga-orange/theme.css +103 -91
- package/dist/primereact/resources/themes/saga-purple/theme.css +103 -91
- package/dist/primereact/resources/themes/soho-dark/theme.css +108 -91
- package/dist/primereact/resources/themes/soho-light/theme.css +108 -91
- package/dist/primereact/resources/themes/vela-blue/theme.css +103 -91
- package/dist/primereact/resources/themes/vela-green/theme.css +103 -91
- package/dist/primereact/resources/themes/vela-orange/theme.css +103 -91
- package/dist/primereact/resources/themes/vela-purple/theme.css +103 -91
- package/dist/primereact/resources/themes/viva-dark/theme.css +103 -91
- package/dist/primereact/resources/themes/viva-light/theme.css +103 -91
- package/package.json +29 -16
- package/tailwind.config.js +9 -2
- package/types/client-components/ClientLink.d.ts +6 -0
- package/types/client-components/MultiComponentEditor.d.ts +10 -0
- package/types/client-components/index.d.ts +2 -0
- package/types/components/Picture.d.ts +1 -0
- package/types/components/Placeholder.d.ts +16 -2
- package/types/components/RichTextEditor.d.ts +55 -55
- package/types/components/TextEditor.d.ts +54 -54
- package/types/editor/AiPopup.d.ts +10 -0
- package/types/editor/AiTerminal.d.ts +4 -3
- package/types/editor/ComponentPalette.d.ts +3 -4
- package/types/editor/ComponentTree.d.ts +1 -1
- package/types/editor/ConfirmationDialog.d.ts +19 -0
- package/types/editor/ContentTree.d.ts +7 -3
- package/types/editor/Debug.d.ts +1 -1
- package/types/editor/DialogButtons.d.ts +4 -0
- package/types/editor/DictionaryEditor.d.ts +3 -2
- package/types/editor/EditFrame.d.ts +4 -3
- package/types/editor/EditorClient.d.ts +4 -4
- package/types/editor/EditorClientHost.d.ts +4 -3
- package/types/editor/FieldListField.d.ts +4 -0
- package/types/editor/FloatingToolbar.d.ts +7 -0
- package/types/editor/ItemEditor.d.ts +4 -0
- package/types/editor/ItemInfo.d.ts +4 -0
- package/types/editor/ItemNameDialog.d.ts +10 -0
- package/types/editor/LinkEditorDialog.d.ts +15 -0
- package/types/editor/MainLayout.d.ts +6 -0
- package/types/editor/MediaSelector.d.ts +2 -1
- package/types/editor/PictureEditorDialog.d.ts +6 -0
- package/types/editor/SidebarTabs.d.ts +8 -0
- package/types/editor/Terminal.d.ts +3 -1
- package/types/editor/Utils.d.ts +3 -0
- package/types/editor/Workbox.d.ts +6 -0
- package/types/editor/componentCommands.d.ts +4 -0
- package/types/editor/contentService.d.ts +7 -1
- package/types/editor/editContext.d.ts +90 -19
- package/types/editor/editService.d.ts +9 -1
- package/types/editor/fieldTypes/CheckboxEditor.d.ts +4 -0
- package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +4 -0
- package/types/editor/fieldTypes/LinkFieldEditor.d.ts +4 -0
- package/types/editor/fieldTypes/MultiLineText.d.ts +4 -0
- package/types/editor/fieldTypes/PictureFieldEditor.d.ts +4 -0
- package/types/editor/fieldTypes/TreeListEditor.d.ts +4 -0
- package/types/editor/ui/Section.d.ts +5 -0
- package/types/fieldTypes.d.ts +30 -15
- package/types/layoutData.d.ts +34 -9
- package/types/loadRouteData.d.ts +34 -5
- package/types/mediaProtection.d.ts +1 -0
- package/types/middleware/authorization.d.ts +2 -0
- package/types/middleware/index.d.ts +1 -0
- package/dist/cjs/editor/PageInfo.js +0 -12
- package/dist/esm/alpacaContext.js +0 -8
- package/dist/esm/components/Error.js +0 -10
- package/dist/esm/components/Image.js +0 -32
- package/dist/esm/components/Link.js +0 -29
- package/dist/esm/components/LinkEditor.js +0 -19
- package/dist/esm/components/Picture.js +0 -118
- package/dist/esm/components/PictureEditor.js +0 -64
- package/dist/esm/components/Placeholder.js +0 -69
- package/dist/esm/components/RichText.js +0 -40
- package/dist/esm/components/RichTextEditor.js +0 -52
- package/dist/esm/components/Slot.js +0 -5
- package/dist/esm/components/Text.js +0 -39
- package/dist/esm/components/TextEditor.js +0 -38
- package/dist/esm/components/Translate.js +0 -10
- package/dist/esm/components/index.js +0 -7
- package/dist/esm/editor/AiTerminal.js +0 -157
- package/dist/esm/editor/ComponentInfo.js +0 -10
- package/dist/esm/editor/ComponentPalette.js +0 -72
- package/dist/esm/editor/ComponentTree.js +0 -196
- package/dist/esm/editor/ContentTree.js +0 -117
- package/dist/esm/editor/Debug.js +0 -9
- package/dist/esm/editor/DictionaryEditor.js +0 -31
- package/dist/esm/editor/EditFrame.js +0 -57
- package/dist/esm/editor/EditHistory.js +0 -26
- package/dist/esm/editor/Editor.js +0 -23
- package/dist/esm/editor/EditorClient.js +0 -477
- package/dist/esm/editor/EditorClientHost.js +0 -7
- package/dist/esm/editor/FieldList.js +0 -60
- package/dist/esm/editor/GraphQL.js +0 -82
- package/dist/esm/editor/LanguageSelector.js +0 -17
- package/dist/esm/editor/MediaSelector.js +0 -60
- package/dist/esm/editor/PageInfo.js +0 -8
- package/dist/esm/editor/PlaceholderDropZone.js +0 -50
- package/dist/esm/editor/PlaceholderDropZoneHost.js +0 -7
- package/dist/esm/editor/Terminal.js +0 -47
- package/dist/esm/editor/TranslateEditor.js +0 -21
- package/dist/esm/editor/VersionSelector.js +0 -17
- package/dist/esm/editor/componentTreeHelper.js +0 -14
- package/dist/esm/editor/contentService.js +0 -31
- package/dist/esm/editor/editContext.js +0 -5
- package/dist/esm/editor/editService.js +0 -139
- package/dist/esm/editor/fieldTypes/RichTextEditor.js +0 -15
- package/dist/esm/editor/fieldTypes/SingleLineText.js +0 -13
- package/dist/esm/editor/index.js +0 -2
- package/dist/esm/fieldTypes.js +0 -1
- package/dist/esm/graphQLTypes.js +0 -1
- package/dist/esm/index.js +0 -7
- package/dist/esm/layoutData.js +0 -1
- package/dist/esm/loadRouteData.js +0 -123
- package/dist/esm/mediaProtection.js +0 -49
- package/types/editor/PageInfo.d.ts +0 -4
- /package/types/{editor → components}/TranslateEditor.d.ts +0 -0
|
@@ -9,6 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
10
|
});
|
|
11
11
|
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
14
17
|
const progressspinner_1 = require("primereact/progressspinner");
|
|
@@ -16,52 +19,65 @@ const __1 = require("..");
|
|
|
16
19
|
const tree_1 = require("primereact/tree");
|
|
17
20
|
const react_1 = require("react");
|
|
18
21
|
const contentService_1 = require("./contentService");
|
|
19
|
-
|
|
22
|
+
const contextmenu_1 = require("primereact/contextmenu");
|
|
23
|
+
const editService_1 = require("./editService");
|
|
24
|
+
const ItemNameDialog_1 = __importDefault(require("./ItemNameDialog"));
|
|
25
|
+
function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionMode, selectedItemIds, rootItemId, onSelectionChange, filter, templateIds, className, includeEmbeddedItems, onDoubleClick, secondarySelectedItemId, }) {
|
|
20
26
|
const [treeNodes, setTreeNodes] = (0, react_1.useState)([]);
|
|
27
|
+
const [selectedKeys, setSelectedKeys] = (0, react_1.useState)();
|
|
21
28
|
const [expandedKeys, setExpandedKeys] = (0, react_1.useState)();
|
|
29
|
+
const treeContainerRef = (0, react_1.useRef)(null);
|
|
22
30
|
const editContext = (0, __1.useEditContext)();
|
|
31
|
+
const [selectedNodeScrolledIntoView, setSelectedNodeScrolledIntoView] = (0, react_1.useState)(false);
|
|
32
|
+
const cm = (0, react_1.useRef)(null);
|
|
33
|
+
const [menu, setMenu] = (0, react_1.useState)([]);
|
|
34
|
+
const itemNameDialogRef = (0, react_1.useRef)(null);
|
|
23
35
|
const loadOnExpand = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
24
36
|
const node = event.node;
|
|
25
|
-
node
|
|
26
|
-
yield loadNodeChildren(node);
|
|
27
|
-
let value = [...treeNodes];
|
|
28
|
-
setTreeNodes(value);
|
|
29
|
-
node.loading = false;
|
|
37
|
+
yield loadChildren(node);
|
|
30
38
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (!node.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
function loadChildren(node) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
if (!node.children) {
|
|
42
|
+
node.loading = true;
|
|
43
|
+
const nodes = yield loadNodeChildren(node.key);
|
|
44
|
+
node.children = nodes;
|
|
45
|
+
let value = [...treeNodes];
|
|
46
|
+
setTreeNodes(value);
|
|
47
|
+
node.loading = false;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function refreshNode(node) {
|
|
52
|
+
node.children = undefined;
|
|
53
|
+
loadChildren(node);
|
|
54
|
+
}
|
|
55
|
+
const loadNodeChildren = (id) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
if (!editContext)
|
|
57
|
+
return [];
|
|
58
|
+
let children = yield (0, contentService_1.getChildren)(id, editContext.sessionId, templateIds, includeEmbeddedItems !== null && includeEmbeddedItems !== void 0 ? includeEmbeddedItems : false);
|
|
59
|
+
if (filter)
|
|
60
|
+
children = filter(children);
|
|
61
|
+
return children.map((x) => ({
|
|
62
|
+
key: x.id,
|
|
63
|
+
label: x.name,
|
|
64
|
+
iconUrl: x.icon,
|
|
65
|
+
isDraggable: isDraggable && isDraggable(x),
|
|
66
|
+
data: x,
|
|
67
|
+
leaf: !x.hasChildren,
|
|
68
|
+
}));
|
|
48
69
|
});
|
|
49
70
|
(0, react_1.useEffect)(() => {
|
|
50
|
-
const treeNodes = [
|
|
51
|
-
{
|
|
52
|
-
key: rootItemId.toLowerCase(),
|
|
53
|
-
label: "content",
|
|
54
|
-
leaf: false,
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
71
|
const newExpandedKeys = getExpandedKeys();
|
|
58
72
|
setExpandedKeys(newExpandedKeys);
|
|
59
|
-
preLoadNodes(newExpandedKeys
|
|
73
|
+
preLoadNodes(newExpandedKeys);
|
|
60
74
|
setTreeNodes(treeNodes);
|
|
61
75
|
}, []);
|
|
62
76
|
function getExpandedKeys() {
|
|
63
77
|
const newExpandedKeys = {};
|
|
64
78
|
newExpandedKeys[rootItemId.toLocaleLowerCase()] = true;
|
|
79
|
+
if (!expandIdPath)
|
|
80
|
+
return newExpandedKeys;
|
|
65
81
|
const idPathArray = expandIdPath.split("/");
|
|
66
82
|
idPathArray.forEach((x) => {
|
|
67
83
|
if (x !== "")
|
|
@@ -69,31 +85,43 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
|
|
|
69
85
|
});
|
|
70
86
|
return newExpandedKeys;
|
|
71
87
|
}
|
|
72
|
-
function preLoadNodes(expandedKeys
|
|
88
|
+
function preLoadNodes(expandedKeys) {
|
|
73
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
yield
|
|
90
|
+
const rootNodes = yield loadNodeChildren(rootItemId);
|
|
91
|
+
yield doPreloadNodes(expandedKeys, rootNodes);
|
|
75
92
|
setExpandedKeys(Object.assign({}, expandedKeys));
|
|
76
|
-
setTreeNodes([...
|
|
93
|
+
setTreeNodes([...rootNodes]);
|
|
77
94
|
});
|
|
78
95
|
}
|
|
79
96
|
function doPreloadNodes(expandedKeys, treeNodes) {
|
|
80
97
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
98
|
for (let i = 0; i < treeNodes.length; i++) {
|
|
82
99
|
if (expandedKeys[treeNodes[i].key]) {
|
|
83
|
-
const children = yield loadNodeChildren(treeNodes[i]);
|
|
100
|
+
const children = yield loadNodeChildren(treeNodes[i].key);
|
|
101
|
+
treeNodes[i].children = children;
|
|
84
102
|
yield doPreloadNodes(expandedKeys, children);
|
|
85
103
|
}
|
|
86
104
|
}
|
|
87
105
|
});
|
|
88
106
|
}
|
|
107
|
+
const nodeDictionary = {};
|
|
108
|
+
createMap(treeNodes, nodeDictionary);
|
|
109
|
+
function createMap(treeNodes, nodeDictionary) {
|
|
110
|
+
treeNodes.forEach((n) => {
|
|
111
|
+
if (n.key)
|
|
112
|
+
nodeDictionary[n.key] = n;
|
|
113
|
+
if (n.children)
|
|
114
|
+
createMap(n.children, nodeDictionary);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
89
117
|
const nodeTemplate = (node, options) => {
|
|
90
|
-
let label = (0, jsx_runtime_1.jsx)("
|
|
118
|
+
let label = (0, jsx_runtime_1.jsx)("span", { children: node.label });
|
|
91
119
|
if (node.url) {
|
|
92
120
|
label = ((0, jsx_runtime_1.jsx)("a", { onDragStart: (e) => e.preventDefault(), href: node.url, className: "a-text-primary hover:a-underline a-font-semibold", children: node.label }));
|
|
93
121
|
}
|
|
94
122
|
return ((0, jsx_runtime_1.jsxs)("span", { onDragStart: (event) => {
|
|
95
123
|
handleDragStart(event, node.data);
|
|
96
|
-
}, onDragEnd: handleDragEnd, draggable: node.isDraggable, className: `a-flex a-gap-2 ${node.isDraggable ? "a-cursor-grab" : ""} ${options.className}`, children: [(0, jsx_runtime_1.jsx)("img", { src: node.iconUrl, style: { height: "20px" }, width: "20", height: "20", onDragStart: (e) => e.preventDefault() }), label, node.loading && ((0, jsx_runtime_1.jsx)(progressspinner_1.ProgressSpinner, { style: { width: "20px", height: "20px" } }))] }));
|
|
124
|
+
}, onDragEnd: handleDragEnd, draggable: node.isDraggable, className: `a-flex a-items-center a-gap-2 ${node.isDraggable ? "a-cursor-grab" : ""} ${options.className} ${node.data.id == secondarySelectedItemId ? "a-selected-secondary" : ""}`, children: [(0, jsx_runtime_1.jsx)("img", { src: node.iconUrl, style: { height: "20px" }, width: "20", height: "20", onDragStart: (e) => e.preventDefault() }), label, node.loading && ((0, jsx_runtime_1.jsx)(progressspinner_1.ProgressSpinner, { style: { width: "20px", height: "20px" } }))] }));
|
|
97
125
|
};
|
|
98
126
|
function handleDragStart(event, item) {
|
|
99
127
|
if (dragStart)
|
|
@@ -104,17 +132,84 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
|
|
|
104
132
|
if (dragEnd)
|
|
105
133
|
dragEnd();
|
|
106
134
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
135
|
+
(0, react_1.useEffect)(() => {
|
|
136
|
+
const newSelectedKeys = {};
|
|
137
|
+
selectedItemIds === null || selectedItemIds === void 0 ? void 0 : selectedItemIds.forEach((x) => {
|
|
138
|
+
if (x.startsWith("{") && x.endsWith("}") && x.length > 2)
|
|
139
|
+
x = x.substring(1, x.length - 1);
|
|
140
|
+
newSelectedKeys[x.toLowerCase()] = true;
|
|
141
|
+
});
|
|
142
|
+
if (selectionMode == "single" &&
|
|
143
|
+
selectedItemIds &&
|
|
144
|
+
selectedItemIds.length > 0)
|
|
145
|
+
setSelectedKeys(Object.keys(newSelectedKeys)[0]);
|
|
146
|
+
else
|
|
147
|
+
setSelectedKeys(newSelectedKeys);
|
|
148
|
+
}, [selectedItemIds]);
|
|
149
|
+
(0, react_1.useEffect)(() => {
|
|
150
|
+
const scrollNodeIntoView = () => {
|
|
151
|
+
if (!treeContainerRef.current)
|
|
152
|
+
return;
|
|
153
|
+
const selectedNodeElement = treeContainerRef.current.querySelector(`li[aria-selected="true"]`);
|
|
154
|
+
if (selectedNodeElement) {
|
|
155
|
+
setSelectedNodeScrolledIntoView(true);
|
|
156
|
+
selectedNodeElement.scrollIntoView({
|
|
157
|
+
behavior: "smooth",
|
|
158
|
+
block: "center",
|
|
159
|
+
inline: "center",
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
if (!selectedNodeScrolledIntoView)
|
|
164
|
+
scrollNodeIntoView();
|
|
165
|
+
}, [treeNodes]);
|
|
166
|
+
function insertItem(node, parent, templateId) {
|
|
167
|
+
var _a;
|
|
168
|
+
(_a = itemNameDialogRef.current) === null || _a === void 0 ? void 0 : _a.show({
|
|
169
|
+
accept: (name) => __awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
yield (0, editService_1.createItem)(parent, templateId, name);
|
|
171
|
+
editContext === null || editContext === void 0 ? void 0 : editContext.requestRefresh("immediate");
|
|
172
|
+
node.expanded = true;
|
|
173
|
+
refreshNode(node);
|
|
174
|
+
}),
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ItemNameDialog_1.default, { ref: itemNameDialogRef }), (0, jsx_runtime_1.jsx)(contextmenu_1.ContextMenu, { model: menu, ref: cm, className: "a-text-sm" }), (0, jsx_runtime_1.jsx)("div", { className: className, onDragEnterCapture: (ev) => ev.stopPropagation(), onDragOverCapture: (ev) => ev.stopPropagation(), onDragLeaveCapture: (ev) => ev.stopPropagation(), ref: treeContainerRef, children: (0, jsx_runtime_1.jsx)(tree_1.Tree, { value: treeNodes, expandedKeys: expandedKeys, onToggle: (e) => setExpandedKeys(e.value), nodeTemplate: nodeTemplate,
|
|
178
|
+
//dragdropScope={isDraggable ? "alpaca" : undefined}
|
|
179
|
+
className: "a-w-full a-h-full alpaca-no-border a-p-0 a-text-xs", onExpand: loadOnExpand, selectionMode: selectionMode, pt: { container: { className: "a-h-full" } }, onNodeDoubleClick: (e) => {
|
|
180
|
+
onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e.node.data);
|
|
181
|
+
}, onSelectionChange: (ev) => {
|
|
182
|
+
if (onSelectionChange && selectionMode == "multiple") {
|
|
183
|
+
const selectedKeys = Object.keys(ev.value);
|
|
184
|
+
const selectedNodes = selectedKeys
|
|
185
|
+
.filter((key) => nodeDictionary[key])
|
|
186
|
+
.map((key) => nodeDictionary[key]);
|
|
187
|
+
onSelectionChange(selectedNodes.map((x) => x.data));
|
|
188
|
+
}
|
|
189
|
+
if (onSelectionChange && selectionMode == "single") {
|
|
190
|
+
onSelectionChange(nodeDictionary[ev.value].data);
|
|
191
|
+
}
|
|
192
|
+
}, selectionKeys: selectedKeys, onContextMenu: (e) => __awaiter(this, void 0, void 0, function* () {
|
|
193
|
+
var _a;
|
|
194
|
+
e.originalEvent.preventDefault();
|
|
195
|
+
const item = e.node.data;
|
|
196
|
+
var insertOptions = yield (0, editService_1.loadInsertOptions)(item);
|
|
197
|
+
setMenu([
|
|
198
|
+
{
|
|
199
|
+
label: "Insert",
|
|
200
|
+
disabled: insertOptions.length == 0,
|
|
201
|
+
items: insertOptions.length === 0
|
|
202
|
+
? undefined
|
|
203
|
+
: insertOptions.map((x) => ({
|
|
204
|
+
label: x.name,
|
|
205
|
+
icon: ((0, jsx_runtime_1.jsx)("img", { className: "p-menuitem-icon", src: x.icon, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() })),
|
|
206
|
+
command: () => {
|
|
207
|
+
insertItem(e.node, item, x.id);
|
|
208
|
+
},
|
|
209
|
+
})),
|
|
210
|
+
},
|
|
211
|
+
]);
|
|
212
|
+
(_a = cm.current) === null || _a === void 0 ? void 0 : _a.show(e.originalEvent);
|
|
213
|
+
}) }) })] }));
|
|
119
214
|
}
|
|
120
215
|
exports.default = ContentTree;
|
package/dist/cjs/editor/Debug.js
CHANGED
|
@@ -8,9 +8,19 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const react_json_pretty_1 = __importDefault(require("react-json-pretty"));
|
|
9
9
|
require("react-json-pretty/themes/monikai.css");
|
|
10
10
|
const tabview_1 = require("primereact/tabview");
|
|
11
|
-
function Debug({ component, page }) {
|
|
11
|
+
function Debug({ component, page, }) {
|
|
12
12
|
if (!component && !page)
|
|
13
13
|
return;
|
|
14
|
-
return ((0, jsx_runtime_1.jsxs)(tabview_1.TabView, { children: [component && (0, jsx_runtime_1.jsx)(tabview_1.TabPanel, { header: "Component",
|
|
14
|
+
return ((0, jsx_runtime_1.jsxs)(tabview_1.TabView, { className: "a-h-full", children: [component && ((0, jsx_runtime_1.jsx)(tabview_1.TabPanel, { header: "Component", className: "a-relative a-h-full", children: (0, jsx_runtime_1.jsx)("div", { className: "a-inset-0 a-absolute a-overflow-auto", children: (0, jsx_runtime_1.jsx)(react_json_pretty_1.default, { data: component, replacer: function (key, value) {
|
|
15
|
+
if (key === "parentComponent") {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
} }) }) })), (0, jsx_runtime_1.jsx)(tabview_1.TabPanel, { header: "Page", className: "a-relative a-h-full", children: (0, jsx_runtime_1.jsx)("div", { className: "a-inset-0 a-absolute a-overflow-auto", children: (0, jsx_runtime_1.jsx)(react_json_pretty_1.default, { data: page, replacer: function (key, value) {
|
|
20
|
+
if (key === "parentComponent") {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return value;
|
|
24
|
+
} }) }) })] }));
|
|
15
25
|
}
|
|
16
26
|
exports.Debug = Debug;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
function DialogButtons({ children, }) {
|
|
5
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "a-flex a-justify-end a-gap-3 a-pt-6 a-border-t", children: children }));
|
|
6
|
+
}
|
|
7
|
+
exports.default = DialogButtons;
|
|
@@ -5,9 +5,9 @@ exports.DictionaryEditor = void 0;
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const datatable_1 = require("primereact/datatable");
|
|
7
7
|
const column_1 = require("primereact/column");
|
|
8
|
-
const inputtext_1 = require("primereact/inputtext");
|
|
9
8
|
const __1 = require("..");
|
|
10
|
-
|
|
9
|
+
const SingleLineText_1 = require("./fieldTypes/SingleLineText");
|
|
10
|
+
function DictionaryEditor({ dictionary, }) {
|
|
11
11
|
if (!dictionary)
|
|
12
12
|
return;
|
|
13
13
|
const context = (0, __1.useEditContext)();
|
|
@@ -17,16 +17,22 @@ function DictionaryEditor({ dictionary }) {
|
|
|
17
17
|
}
|
|
18
18
|
let entries = Object.keys(dictionary).map((k) => ({
|
|
19
19
|
key: k,
|
|
20
|
-
|
|
20
|
+
field: dictionary[k],
|
|
21
|
+
translation: dictionary[k].value,
|
|
21
22
|
}));
|
|
22
|
-
entries = [
|
|
23
|
+
entries = [
|
|
24
|
+
...entries,
|
|
25
|
+
...context === null || context === void 0 ? void 0 : context.unresolvedDictionaryKeys.map((x) => ({
|
|
23
26
|
key: x,
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
field: null,
|
|
28
|
+
translation: "[undefined]",
|
|
29
|
+
})),
|
|
30
|
+
];
|
|
26
31
|
entries.sort((a, b) => (a.key > b.key ? -1 : 1));
|
|
27
32
|
const textEditor = (options) => {
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
var _a;
|
|
34
|
+
if ((_a = options.rowData) === null || _a === void 0 ? void 0 : _a.field)
|
|
35
|
+
return (0, jsx_runtime_1.jsx)(SingleLineText_1.SingleLineText, { field: options.rowData.field });
|
|
30
36
|
else
|
|
31
37
|
return null;
|
|
32
38
|
};
|
|
@@ -1,33 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
7
|
exports.EditFrame = void 0;
|
|
5
8
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
9
|
const react_1 = require("react");
|
|
7
10
|
const __1 = require("..");
|
|
8
|
-
|
|
11
|
+
const react_2 = __importDefault(require("react"));
|
|
12
|
+
const AiPopup_1 = require("./AiPopup");
|
|
13
|
+
function EditFrame({ componentId, children, index, }) {
|
|
9
14
|
var _a, _b;
|
|
10
15
|
const editContext = (0, __1.useEditContext)();
|
|
16
|
+
const [customButtons, setCustomButtons] = (0, react_1.useState)([]);
|
|
17
|
+
const ref = react_2.default.useRef(null);
|
|
11
18
|
if (!editContext)
|
|
12
19
|
return children;
|
|
13
20
|
const { getComponentById, selection, setSelection } = editContext;
|
|
14
|
-
const
|
|
21
|
+
const isSelected = selection && selection.indexOf(componentId) >= 0;
|
|
22
|
+
const aiPopup = react_2.default.useRef(null);
|
|
23
|
+
(0, react_1.useEffect)(() => {
|
|
24
|
+
if (ref.current && editContext.scrollIntoView == componentId) {
|
|
25
|
+
ref.current.scrollIntoView({
|
|
26
|
+
behavior: "smooth",
|
|
27
|
+
block: "center",
|
|
28
|
+
inline: "center",
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}, [editContext.scrollIntoView]);
|
|
15
32
|
const clientComponent = getComponentById(componentId);
|
|
16
33
|
if (!clientComponent) {
|
|
17
34
|
return children;
|
|
18
35
|
}
|
|
19
36
|
function select(e) {
|
|
20
37
|
e.stopPropagation();
|
|
21
|
-
|
|
22
|
-
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
if (clientComponent) {
|
|
40
|
+
const s = e.ctrlKey ? [...selection] : [];
|
|
41
|
+
if (s.indexOf(clientComponent.id) < 0)
|
|
42
|
+
s.push(clientComponent.id);
|
|
43
|
+
setSelection(s);
|
|
44
|
+
}
|
|
23
45
|
}
|
|
24
|
-
let classNames = "
|
|
46
|
+
let classNames = "a-editframe";
|
|
25
47
|
let color = clientComponent.linkItemId ? "orange-400" : "sky-400";
|
|
26
48
|
if (clientComponent.hostingPageItem)
|
|
27
49
|
color = "purple-400";
|
|
28
|
-
const isSelected = selection && selection.indexOf(clientComponent.id) >= 0;
|
|
29
50
|
if (isSelected)
|
|
30
|
-
classNames = `
|
|
51
|
+
classNames = `a-editframe a-selected a-relative`;
|
|
52
|
+
(0, react_1.useEffect)(() => {
|
|
53
|
+
var _a;
|
|
54
|
+
if (!isSelected)
|
|
55
|
+
(_a = aiPopup.current) === null || _a === void 0 ? void 0 : _a.close();
|
|
56
|
+
}, [isSelected]);
|
|
31
57
|
function handleDragStart(event) {
|
|
32
58
|
if (!clientComponent)
|
|
33
59
|
return;
|
|
@@ -37,7 +63,12 @@ function EditFrame({ componentId, children, }) {
|
|
|
37
63
|
editContext.dragStart({
|
|
38
64
|
type: "component",
|
|
39
65
|
templateId: clientComponent.templateId,
|
|
40
|
-
|
|
66
|
+
component: {
|
|
67
|
+
id: clientComponent.id,
|
|
68
|
+
language: editContext.page.language,
|
|
69
|
+
version: editContext.page.version,
|
|
70
|
+
name: clientComponent.name,
|
|
71
|
+
},
|
|
41
72
|
});
|
|
42
73
|
}, 50);
|
|
43
74
|
event.stopPropagation();
|
|
@@ -45,17 +76,54 @@ function EditFrame({ componentId, children, }) {
|
|
|
45
76
|
const isDraggable = isSelected && !clientComponent.hostingPageItem;
|
|
46
77
|
if ((_a = children.props) === null || _a === void 0 ? void 0 : _a.className)
|
|
47
78
|
classNames += " " + ((_b = children === null || children === void 0 ? void 0 : children.props) === null || _b === void 0 ? void 0 : _b.className);
|
|
48
|
-
if (isRemoved)
|
|
49
|
-
classNames += "
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
79
|
+
if (clientComponent.isRemoved)
|
|
80
|
+
classNames += " a-removed";
|
|
81
|
+
const commands = editContext.getComponentCommands([clientComponent]);
|
|
82
|
+
const commandButtons = commands
|
|
83
|
+
.filter((x) => !x.disabled && x.visibilityScopes.indexOf("editFrame") >= 0)
|
|
84
|
+
.map((x) => ({
|
|
85
|
+
icon: x.icon,
|
|
86
|
+
tooltip: x.label,
|
|
87
|
+
onClick: (ev) => {
|
|
88
|
+
ev.preventDefault();
|
|
89
|
+
ev.stopPropagation();
|
|
90
|
+
x.execute();
|
|
91
|
+
},
|
|
92
|
+
}));
|
|
93
|
+
const aiButton = {
|
|
94
|
+
icon: "pi pi-comments",
|
|
95
|
+
tooltip: "AI",
|
|
96
|
+
onClick: (ev) => {
|
|
97
|
+
aiPopup.current.show(ev);
|
|
98
|
+
ev.preventDefault();
|
|
99
|
+
ev.stopPropagation();
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
const buttons = [...customButtons, aiButton, ...commandButtons];
|
|
103
|
+
if (clientComponent.placeholders.length > 0) {
|
|
104
|
+
buttons.push({
|
|
105
|
+
icon: "pi pi-plus",
|
|
106
|
+
tooltip: "Insert component",
|
|
107
|
+
onClick: (ev) => {
|
|
108
|
+
editContext.setSelectedForInsertion(clientComponent.id);
|
|
109
|
+
ev.stopPropagation();
|
|
110
|
+
ev.preventDefault();
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
var filterContext = (0, __1.useEditFilterChildrenContext)();
|
|
115
|
+
if (filterContext &&
|
|
116
|
+
filterContext.filterChildCallback &&
|
|
117
|
+
filterContext.filterChildCallback({
|
|
118
|
+
component: clientComponent,
|
|
119
|
+
index: index,
|
|
120
|
+
}))
|
|
121
|
+
return null;
|
|
122
|
+
return ((0, jsx_runtime_1.jsxs)(__1.EditFrameContextProvider, { value: {
|
|
123
|
+
customButtons,
|
|
124
|
+
setCustomButtons,
|
|
125
|
+
componentId: clientComponent.id,
|
|
126
|
+
isSelected: isSelected,
|
|
127
|
+
}, children: [(0, jsx_runtime_1.jsx)(AiPopup_1.AiPopup, { componentId: clientComponent.id, ref: aiPopup }), (0, jsx_runtime_1.jsxs)("div", { ref: ref, className: classNames, onClick: select, draggable: isDraggable, onDragStart: handleDragStart, children: [children, isSelected && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `a-pointer-events-none a-absolute a-inset-0 a-border-2 a-border-${color} ` }), (0, jsx_runtime_1.jsxs)("div", { className: `a-editframe-menu a-absolute a-top-px a-right-px a-z-1000 a-text-sm a-text-white a-opacity-50 hover:a-opacity-100 a-whitespace-nowrap a-px-3 a-pt-3px a-bg-${color} ${isDraggable ? "a-cursor-move" : "a-cursor-default"} `, style: { zoom: 1 / editContext.zoom }, children: [clientComponent.name, buttons.map((b, i) => ((0, jsx_runtime_1.jsx)("button", { className: "a-ml-3", onClick: b.onClick, title: b.tooltip, children: (0, jsx_runtime_1.jsx)("i", { className: b.icon }) }, i)))] })] }))] })] }));
|
|
60
128
|
}
|
|
61
129
|
exports.EditFrame = EditFrame;
|
|
@@ -7,24 +7,37 @@ function EditHistory({ operations }) {
|
|
|
7
7
|
if (!operations)
|
|
8
8
|
return;
|
|
9
9
|
const description = (op) => {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
if (op.type === "move-component") {
|
|
12
|
+
const move = op;
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Move ", (_a = move.component) === null || _a === void 0 ? void 0 : _a.name, " to ", (_b = move.parent) === null || _b === void 0 ? void 0 : _b.name, "/", move.placeholderName, " (", move.placeholderIndex, ")", " "] }));
|
|
14
|
+
}
|
|
10
15
|
if (op.type === "add-component")
|
|
11
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Add ", op.
|
|
16
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Add ", (_c = op.component) === null || _c === void 0 ? void 0 : _c.name] });
|
|
12
17
|
if (op.type === "link-component")
|
|
13
18
|
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Insert ", op.itemName] });
|
|
19
|
+
if (op.type === "synchronize-components") {
|
|
20
|
+
const syncOp = op;
|
|
21
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Synchronize components", " ", syncOp.itemsCreated && ((0, jsx_runtime_1.jsxs)("span", { className: "a-text-gray-400 a-ml-1", children: ["(", syncOp.itemsCreated.length, " item", syncOp.itemsCreated.length !== 1 ? "s" : "", " created)"] }))] }));
|
|
22
|
+
}
|
|
14
23
|
if (op.type === "remove-component")
|
|
15
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Remove ", op.
|
|
24
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Remove", " ", op.components
|
|
25
|
+
.map((x) => x.name)
|
|
26
|
+
.join(", ")] }));
|
|
16
27
|
if (op.type === "edit-field") {
|
|
17
28
|
const editFieldOp = op;
|
|
18
29
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Edit ", editFieldOp.fieldName, (0, jsx_runtime_1.jsxs)("span", { className: "a-text-gray-400 a-ml-1", children: ["(", editFieldOp.itemName, ", ", editFieldOp.language, ",", " ", editFieldOp.version, ")"] })] }));
|
|
19
30
|
}
|
|
20
31
|
return (0, jsx_runtime_1.jsx)("div", { children: op.type });
|
|
21
32
|
};
|
|
22
|
-
|
|
33
|
+
const reversedOps = [...operations].reverse();
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "a-inset-0 a-absolute", children: [(0, jsx_runtime_1.jsx)("div", { className: "a-p-3 a-bg-gray-50 a-border-b-2 a-text-gray-600 a-text-sm", children: "History" }), (0, jsx_runtime_1.jsx)("div", { className: "a-flex a-flex-col a-overflow-y-auto a-overflow-x-hidden", style: { height: "calc(100% - 45px)" }, children: reversedOps.map((o, i) => singleOperation(i, o)) })] }));
|
|
23
35
|
function singleOperation(i, o) {
|
|
36
|
+
var _a;
|
|
24
37
|
let className = "a-border-b a-p-2 a-flex a-justify-between";
|
|
25
38
|
if (o.undone)
|
|
26
39
|
className = className + " a-text-gray-300";
|
|
27
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: className, children: [(0, jsx_runtime_1.
|
|
40
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: className, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("small", { className: "a-text-color-secondary", children: description(o) }), " ", o.isCommitted && ((0, jsx_runtime_1.jsx)("i", { className: "pi pi-check a-text-green-500 a-ml-1" }))] }), (0, jsx_runtime_1.jsx)("div", { className: "a-text-xs", children: (_a = o.user) === null || _a === void 0 ? void 0 : _a.name })] }, i));
|
|
28
41
|
}
|
|
29
42
|
}
|
|
30
43
|
exports.EditHistory = EditHistory;
|
|
@@ -21,7 +21,7 @@ function Editor({ children, content, }) {
|
|
|
21
21
|
if (!data.editing)
|
|
22
22
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
23
23
|
var alpacaContext = (0, __1.useAlpacaContext)();
|
|
24
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(EditorClientHost_1.EditorClientHost, { content: data, dictionaryObject: alpacaContext.dictionary, edit: alpacaContext.edit, children: children }) }));
|
|
24
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(EditorClientHost_1.EditorClientHost, { content: data, dictionaryObject: alpacaContext.dictionary, edit: alpacaContext.edit, site: alpacaContext.pageContext.site.name, children: children }) }));
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
exports.Editor = Editor;
|