@endora-commerce/mod-megamenu 0.100.0
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/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/admin/api/megamenu-client.d.ts +28 -0
- package/dist/admin/api/megamenu-client.d.ts.map +1 -0
- package/dist/admin/api/megamenu-client.js +43 -0
- package/dist/admin/api/megamenu-client.js.map +1 -0
- package/dist/admin/components/BindingsPanel.d.ts +10 -0
- package/dist/admin/components/BindingsPanel.d.ts.map +1 -0
- package/dist/admin/components/BindingsPanel.js +120 -0
- package/dist/admin/components/BindingsPanel.js.map +1 -0
- package/dist/admin/components/MenuItemConfigPanel.d.ts +22 -0
- package/dist/admin/components/MenuItemConfigPanel.d.ts.map +1 -0
- package/dist/admin/components/MenuItemConfigPanel.js +77 -0
- package/dist/admin/components/MenuItemConfigPanel.js.map +1 -0
- package/dist/admin/components/MenuItemTree.d.ts +13 -0
- package/dist/admin/components/MenuItemTree.d.ts.map +1 -0
- package/dist/admin/components/MenuItemTree.js +46 -0
- package/dist/admin/components/MenuItemTree.js.map +1 -0
- package/dist/admin/index.d.ts +31 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +47 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/pages/MegamenuEditor.d.ts +4 -0
- package/dist/admin/pages/MegamenuEditor.d.ts.map +1 -0
- package/dist/admin/pages/MegamenuEditor.js +151 -0
- package/dist/admin/pages/MegamenuEditor.js.map +1 -0
- package/dist/admin/pages/MegamenuListPage.d.ts +4 -0
- package/dist/admin/pages/MegamenuListPage.d.ts.map +1 -0
- package/dist/admin/pages/MegamenuListPage.js +51 -0
- package/dist/admin/pages/MegamenuListPage.js.map +1 -0
- package/dist/backend/entities/megamenu-binding.entity.d.ts +18 -0
- package/dist/backend/entities/megamenu-binding.entity.d.ts.map +1 -0
- package/dist/backend/entities/megamenu-binding.entity.js +61 -0
- package/dist/backend/entities/megamenu-binding.entity.js.map +1 -0
- package/dist/backend/entities/megamenu-item.entity.d.ts +27 -0
- package/dist/backend/entities/megamenu-item.entity.d.ts.map +1 -0
- package/dist/backend/entities/megamenu-item.entity.js +83 -0
- package/dist/backend/entities/megamenu-item.entity.js.map +1 -0
- package/dist/backend/entities/megamenu.entity.d.ts +17 -0
- package/dist/backend/entities/megamenu.entity.d.ts.map +1 -0
- package/dist/backend/entities/megamenu.entity.js +57 -0
- package/dist/backend/entities/megamenu.entity.js.map +1 -0
- package/dist/backend/index.d.ts +116 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +147 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +10 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +50 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.storefront.d.ts +6 -0
- package/dist/backend/routes.storefront.d.ts.map +1 -0
- package/dist/backend/routes.storefront.js +26 -0
- package/dist/backend/routes.storefront.js.map +1 -0
- package/dist/backend/services/asset-references.d.ts +4 -0
- package/dist/backend/services/asset-references.d.ts.map +1 -0
- package/dist/backend/services/asset-references.js +36 -0
- package/dist/backend/services/asset-references.js.map +1 -0
- package/dist/backend/services/cms-references.d.ts +6 -0
- package/dist/backend/services/cms-references.d.ts.map +1 -0
- package/dist/backend/services/cms-references.js +39 -0
- package/dist/backend/services/cms-references.js.map +1 -0
- package/dist/backend/services/cross-module-ports.d.ts +112 -0
- package/dist/backend/services/cross-module-ports.d.ts.map +1 -0
- package/dist/backend/services/cross-module-ports.js +88 -0
- package/dist/backend/services/cross-module-ports.js.map +1 -0
- package/dist/backend/services/megamenu-cache.d.ts +36 -0
- package/dist/backend/services/megamenu-cache.d.ts.map +1 -0
- package/dist/backend/services/megamenu-cache.js +70 -0
- package/dist/backend/services/megamenu-cache.js.map +1 -0
- package/dist/backend/services/megamenu-item-service.d.ts +39 -0
- package/dist/backend/services/megamenu-item-service.d.ts.map +1 -0
- package/dist/backend/services/megamenu-item-service.js +151 -0
- package/dist/backend/services/megamenu-item-service.js.map +1 -0
- package/dist/backend/services/megamenu-language-reference.d.ts +12 -0
- package/dist/backend/services/megamenu-language-reference.d.ts.map +1 -0
- package/dist/backend/services/megamenu-language-reference.js +24 -0
- package/dist/backend/services/megamenu-language-reference.js.map +1 -0
- package/dist/backend/services/megamenu-reference-registry.d.ts +24 -0
- package/dist/backend/services/megamenu-reference-registry.d.ts.map +1 -0
- package/dist/backend/services/megamenu-reference-registry.js +69 -0
- package/dist/backend/services/megamenu-reference-registry.js.map +1 -0
- package/dist/backend/services/megamenu-service.d.ts +70 -0
- package/dist/backend/services/megamenu-service.d.ts.map +1 -0
- package/dist/backend/services/megamenu-service.js +299 -0
- package/dist/backend/services/megamenu-service.js.map +1 -0
- package/dist/backend/services/storefront-resolver.d.ts +46 -0
- package/dist/backend/services/storefront-resolver.d.ts.map +1 -0
- package/dist/backend/services/storefront-resolver.js +162 -0
- package/dist/backend/services/storefront-resolver.js.map +1 -0
- package/dist/backend/services/target-validator.d.ts +24 -0
- package/dist/backend/services/target-validator.d.ts.map +1 -0
- package/dist/backend/services/target-validator.js +105 -0
- package/dist/backend/services/target-validator.js.map +1 -0
- package/dist/manifest.d.ts +167 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +170 -0
- package/dist/manifest.js.map +1 -0
- package/dist/migrations/20260505T193836_megamenu_init.d.ts +23 -0
- package/dist/migrations/20260505T193836_megamenu_init.d.ts.map +1 -0
- package/dist/migrations/20260505T193836_megamenu_init.js +91 -0
- package/dist/migrations/20260505T193836_megamenu_init.js.map +1 -0
- package/dist/migrations/index.d.ts +27 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +29 -0
- package/dist/migrations/index.js.map +1 -0
- package/docs/megamenu/index.md +159 -0
- package/i18n/en.json +96 -0
- package/i18n/pl.json +96 -0
- package/package.json +99 -0
- package/tailwind.css +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MegamenuEditor.d.ts","sourceRoot":"","sources":["../../../src/admin/pages/MegamenuEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAqDlF,wBAAgB,cAAc,IAAI,SAAS,CAwM1C;AACD,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { Link, useParams } from 'react-router-dom';
|
|
4
|
+
import { randomUUID } from '@endora-commerce/admin-kit/lib';
|
|
5
|
+
import { Alert, AlertDescription, Button, Card, CardContent, CardHeader, CardTitle, Input, Label, PageHeader, Textarea } from '@endora-commerce/admin-kit/ui';
|
|
6
|
+
import { useTranslation } from '@endora-commerce/admin-kit/i18n';
|
|
7
|
+
import { BindingsPanel } from '../components/BindingsPanel.js';
|
|
8
|
+
import { defaultTargetFor, MenuItemConfigPanel, } from '../components/MenuItemConfigPanel.js';
|
|
9
|
+
import { MenuItemTree } from '../components/MenuItemTree.js';
|
|
10
|
+
import { megamenuClient } from '../api/megamenu-client.js';
|
|
11
|
+
function indexItems(items) {
|
|
12
|
+
return items
|
|
13
|
+
.filter((item) => typeof item.id === 'string')
|
|
14
|
+
.map((item) => ({ ...item, parentId: item.parentId ?? null }));
|
|
15
|
+
}
|
|
16
|
+
function move(items, itemId, direction) {
|
|
17
|
+
const target = items.find((i) => i.id === itemId);
|
|
18
|
+
if (!target)
|
|
19
|
+
return items;
|
|
20
|
+
const siblings = items
|
|
21
|
+
.filter((i) => i.parentId === target.parentId)
|
|
22
|
+
.sort((a, b) => a.position - b.position);
|
|
23
|
+
const index = siblings.findIndex((i) => i.id === itemId);
|
|
24
|
+
const swapWith = direction === 'up' ? index - 1 : index + 1;
|
|
25
|
+
if (swapWith < 0 || swapWith >= siblings.length)
|
|
26
|
+
return items;
|
|
27
|
+
const a = siblings[index];
|
|
28
|
+
const b = siblings[swapWith];
|
|
29
|
+
return items.map((i) => {
|
|
30
|
+
if (i.id === a.id)
|
|
31
|
+
return { ...i, position: b.position };
|
|
32
|
+
if (i.id === b.id)
|
|
33
|
+
return { ...i, position: a.position };
|
|
34
|
+
return i;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function deleteSubtree(items, itemId) {
|
|
38
|
+
const toDelete = new Set();
|
|
39
|
+
const queue = [itemId];
|
|
40
|
+
while (queue.length > 0) {
|
|
41
|
+
const next = queue.shift();
|
|
42
|
+
toDelete.add(next);
|
|
43
|
+
for (const child of items.filter((i) => i.parentId === next)) {
|
|
44
|
+
queue.push(child.id);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return items.filter((i) => !toDelete.has(i.id));
|
|
48
|
+
}
|
|
49
|
+
export function MegamenuEditor() {
|
|
50
|
+
const t = useTranslation('megamenu');
|
|
51
|
+
const { id } = useParams();
|
|
52
|
+
const [menu, setMenu] = useState(null);
|
|
53
|
+
const [name, setName] = useState('');
|
|
54
|
+
const [description, setDescription] = useState('');
|
|
55
|
+
const [items, setItems] = useState([]);
|
|
56
|
+
const [selectedItemId, setSelectedItemId] = useState(null);
|
|
57
|
+
const [error, setError] = useState(null);
|
|
58
|
+
const [warnings, setWarnings] = useState([]);
|
|
59
|
+
const [saving, setSaving] = useState(false);
|
|
60
|
+
const load = useCallback(async () => {
|
|
61
|
+
if (!id)
|
|
62
|
+
return;
|
|
63
|
+
setError(null);
|
|
64
|
+
try {
|
|
65
|
+
const loaded = await megamenuClient.getMenu(id);
|
|
66
|
+
setMenu(loaded);
|
|
67
|
+
setName(loaded.name);
|
|
68
|
+
setDescription(loaded.description ?? '');
|
|
69
|
+
setItems(indexItems(loaded.items));
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
73
|
+
}
|
|
74
|
+
}, [id]);
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
void load();
|
|
77
|
+
}, [load]);
|
|
78
|
+
const languages = useMemo(() => {
|
|
79
|
+
const set = new Set();
|
|
80
|
+
for (const binding of menu?.bindings ?? [])
|
|
81
|
+
set.add(binding.language);
|
|
82
|
+
return Array.from(set).sort();
|
|
83
|
+
}, [menu?.bindings]);
|
|
84
|
+
const selectedItem = useMemo(() => items.find((i) => i.id === selectedItemId) ?? null, [items, selectedItemId]);
|
|
85
|
+
const addChild = (parentId) => {
|
|
86
|
+
const id = randomUUID();
|
|
87
|
+
const kind = 'external-link';
|
|
88
|
+
const next = {
|
|
89
|
+
id,
|
|
90
|
+
parentId,
|
|
91
|
+
position: items.filter((i) => i.parentId === parentId).length,
|
|
92
|
+
kind,
|
|
93
|
+
labels: { 'en-US': t('editor.newItemLabel') },
|
|
94
|
+
target: defaultTargetFor(kind),
|
|
95
|
+
};
|
|
96
|
+
setItems([...items, next]);
|
|
97
|
+
setSelectedItemId(id);
|
|
98
|
+
};
|
|
99
|
+
const updateItem = (next) => {
|
|
100
|
+
setItems((prev) => prev.map((i) => (i.id === next.id ? next : i)));
|
|
101
|
+
};
|
|
102
|
+
const saveMetadata = async () => {
|
|
103
|
+
if (!menu)
|
|
104
|
+
return;
|
|
105
|
+
setSaving(true);
|
|
106
|
+
setError(null);
|
|
107
|
+
try {
|
|
108
|
+
const updated = await megamenuClient.patchMenu(menu.id, {
|
|
109
|
+
name,
|
|
110
|
+
description: description || null,
|
|
111
|
+
version: menu.version,
|
|
112
|
+
});
|
|
113
|
+
setMenu(updated);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
setSaving(false);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
const saveTree = async () => {
|
|
123
|
+
if (!menu)
|
|
124
|
+
return;
|
|
125
|
+
setSaving(true);
|
|
126
|
+
setError(null);
|
|
127
|
+
setWarnings([]);
|
|
128
|
+
try {
|
|
129
|
+
const out = await megamenuClient.putItems(menu.id, {
|
|
130
|
+
items: items.map((i) => ({ ...i })),
|
|
131
|
+
version: menu.version,
|
|
132
|
+
});
|
|
133
|
+
setMenu(out.data);
|
|
134
|
+
setItems(indexItems(out.data.items));
|
|
135
|
+
if (out.meta?.warnings)
|
|
136
|
+
setWarnings(out.meta.warnings);
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
setSaving(false);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
if (!menu) {
|
|
146
|
+
return _jsx("p", { className: "px-2 py-6 text-sm text-muted-foreground", children: t('common.loading') });
|
|
147
|
+
}
|
|
148
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx(PageHeader, { title: menu.name || t('editor.fallbackTitle'), description: t('editor.description'), actions: _jsx(Button, { asChild: true, variant: "outline", children: _jsx(Link, { to: "/megamenu", children: t('common.back') }) }) }), error ? (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) })) : null, warnings.map((warning) => (_jsx(Alert, { variant: "default", children: _jsx(AlertDescription, { children: warning.message }) }, warning.code))), _jsxs("div", { className: "grid grid-cols-12 gap-4", children: [_jsxs("div", { className: "col-span-4 space-y-4", children: [_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-base", children: t('sections.metadata') }) }), _jsxs(CardContent, { className: "space-y-3", children: [_jsxs("div", { className: "space-y-1", children: [_jsx(Label, { children: t('fields.name') }), _jsx(Input, { value: name, onChange: (event) => setName(event.target.value) })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { children: t('fields.description') }), _jsx(Textarea, { value: description, onChange: (event) => setDescription(event.target.value) })] }), _jsx("div", { className: "text-right", children: _jsx(Button, { onClick: () => void saveMetadata(), disabled: saving, children: t('common.saveMetadata') }) })] })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-base", children: t('sections.bindings') }) }), _jsx(CardContent, { children: _jsx(BindingsPanel, { menuId: menu.id, bindings: menu.bindings, onChanged: () => void load() }) })] })] }), _jsx("div", { className: "col-span-4", children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-base", children: t('sections.items') }) }), _jsxs(CardContent, { className: "space-y-3", children: [_jsx(MenuItemTree, { items: items, selectedItemId: selectedItemId, onSelect: setSelectedItemId, onMove: (itemId, direction) => setItems((prev) => move(prev, itemId, direction)), onDelete: (itemId) => setItems((prev) => deleteSubtree(prev, itemId)), onAddChild: addChild }), _jsx("div", { className: "text-right", children: _jsx(Button, { onClick: () => void saveTree(), disabled: saving, children: t('common.saveTree') }) })] })] }) }), _jsx("div", { className: "col-span-4", children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-base", children: t('sections.item') }) }), _jsx(CardContent, { children: _jsx(MenuItemConfigPanel, { item: selectedItem, languages: languages, onChange: updateItem }) })] }) })] })] }));
|
|
149
|
+
}
|
|
150
|
+
export default MegamenuEditor;
|
|
151
|
+
//# sourceMappingURL=MegamenuEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MegamenuEditor.js","sourceRoot":"","sources":["../../../src/admin/pages/MegamenuEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MegamenuListPage.d.ts","sourceRoot":"","sources":["../../../src/admin/pages/MegamenuListPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQzE,wBAAgB,gBAAgB,IAAI,SAAS,CA+G5C;AACD,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
3
|
+
import { Link, useNavigate } from 'react-router-dom';
|
|
4
|
+
import { Alert, AlertDescription, Badge, Button, Card, CardContent, CardHeader, CardTitle, Input, PageHeader, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@endora-commerce/admin-kit/ui';
|
|
5
|
+
import { useTranslation } from '@endora-commerce/admin-kit/i18n';
|
|
6
|
+
import { megamenuClient } from '../api/megamenu-client.js';
|
|
7
|
+
export function MegamenuListPage() {
|
|
8
|
+
const t = useTranslation('megamenu');
|
|
9
|
+
const navigate = useNavigate();
|
|
10
|
+
const [rows, setRows] = useState([]);
|
|
11
|
+
const [loading, setLoading] = useState(true);
|
|
12
|
+
const [error, setError] = useState(null);
|
|
13
|
+
const [creating, setCreating] = useState(false);
|
|
14
|
+
const [name, setName] = useState('');
|
|
15
|
+
const load = useCallback(async () => {
|
|
16
|
+
setLoading(true);
|
|
17
|
+
setError(null);
|
|
18
|
+
try {
|
|
19
|
+
const out = await megamenuClient.listMenus();
|
|
20
|
+
setRows(out.data);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
setLoading(false);
|
|
27
|
+
}
|
|
28
|
+
}, []);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
void load();
|
|
31
|
+
}, [load]);
|
|
32
|
+
const create = async () => {
|
|
33
|
+
if (!name.trim())
|
|
34
|
+
return;
|
|
35
|
+
setCreating(true);
|
|
36
|
+
setError(null);
|
|
37
|
+
try {
|
|
38
|
+
const created = await megamenuClient.createMenu({ name: name.trim() });
|
|
39
|
+
navigate(`/megamenu/${created.id}`);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
setCreating(false);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx(PageHeader, { title: t('list.title'), description: t('list.description'), actions: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Input, { value: name, onChange: (event) => setName(event.target.value), placeholder: t('list.newNamePlaceholder'), className: "w-72" }), _jsx(Button, { onClick: () => void create(), disabled: creating || !name.trim(), children: t('common.create') })] }) }), error ? (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) })) : null, _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { className: "text-base", children: t('list.cardTitle') }) }), _jsx(CardContent, { children: loading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: t('common.loading') })) : rows.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: t('list.empty') })) : (_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: t('columns.name') }), _jsx(TableHead, { children: t('columns.bindings') }), _jsx(TableHead, { children: t('columns.active') }), _jsx(TableHead, { className: "text-right", children: t('columns.version') })] }) }), _jsx(TableBody, { children: rows.map((row) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsx(Link, { to: `/megamenu/${row.id}`, className: "font-medium text-primary hover:underline", children: row.name }) }), _jsx(TableCell, { className: "text-xs text-muted-foreground", children: row.bindings.length }), _jsx(TableCell, { children: row.activeIn > 0 ? (_jsx(Badge, { children: t('list.activeScopes', { count: row.activeIn }) })) : (_jsx(Badge, { variant: "outline", children: t('state.staged') })) }), _jsxs(TableCell, { className: "text-right text-xs text-muted-foreground", children: ["v", row.version] })] }, row.id))) })] })) })] })] }));
|
|
49
|
+
}
|
|
50
|
+
export default MegamenuListPage;
|
|
51
|
+
//# sourceMappingURL=MegamenuListPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MegamenuListPage.js","sourceRoot":"","sources":["../../../src/admin/pages/MegamenuListPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { OptionalProps } from '@mikro-orm/core';
|
|
2
|
+
/**
|
|
3
|
+
* MegamenuBinding — composite-key entity (megamenuId, salesChannelId,
|
|
4
|
+
* language). `active` is the flag the partial unique index
|
|
5
|
+
* `idx_megamenu_bindings_active_uniq` enforces — exactly one active
|
|
6
|
+
* binding per (sales_channel_id, language) pair (FR-008 / R3).
|
|
7
|
+
*/
|
|
8
|
+
export declare class MegamenuBinding {
|
|
9
|
+
[OptionalProps]?: 'createdAt' | 'updatedAt' | 'active' | 'version';
|
|
10
|
+
megamenuId: string;
|
|
11
|
+
salesChannelId: string;
|
|
12
|
+
language: string;
|
|
13
|
+
active: boolean;
|
|
14
|
+
version: number;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
updatedAt: Date;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=megamenu-binding.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"megamenu-binding.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/megamenu-binding.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAG9E;;;;;GAKG;AACH,qBAEa,eAAe;IAC1B,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAGnE,UAAU,EAAG,MAAM,CAAC;IAGpB,cAAc,EAAG,MAAM,CAAC;IAGxB,QAAQ,EAAG,MAAM,CAAC;IAGlB,MAAM,EAAE,OAAO,CAAS;IAGxB,OAAO,EAAE,MAAM,CAAK;IAGpB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Entity, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
|
|
11
|
+
import { GlobalEntity } from '@endora-commerce/platform/tenancy';
|
|
12
|
+
/**
|
|
13
|
+
* MegamenuBinding — composite-key entity (megamenuId, salesChannelId,
|
|
14
|
+
* language). `active` is the flag the partial unique index
|
|
15
|
+
* `idx_megamenu_bindings_active_uniq` enforces — exactly one active
|
|
16
|
+
* binding per (sales_channel_id, language) pair (FR-008 / R3).
|
|
17
|
+
*/
|
|
18
|
+
let MegamenuBinding = class MegamenuBinding {
|
|
19
|
+
[OptionalProps];
|
|
20
|
+
megamenuId;
|
|
21
|
+
salesChannelId;
|
|
22
|
+
language;
|
|
23
|
+
active = false;
|
|
24
|
+
version = 1;
|
|
25
|
+
createdAt = new Date();
|
|
26
|
+
updatedAt = new Date();
|
|
27
|
+
};
|
|
28
|
+
__decorate([
|
|
29
|
+
PrimaryKey({ type: 'uuid', fieldName: 'megamenu_id' }),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], MegamenuBinding.prototype, "megamenuId", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
PrimaryKey({ type: 'uuid', fieldName: 'sales_channel_id' }),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], MegamenuBinding.prototype, "salesChannelId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
PrimaryKey({ type: 'string', length: 8 }),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], MegamenuBinding.prototype, "language", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
Property({ type: 'boolean' }),
|
|
42
|
+
__metadata("design:type", Boolean)
|
|
43
|
+
], MegamenuBinding.prototype, "active", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
Property({ type: 'integer' }),
|
|
46
|
+
__metadata("design:type", Number)
|
|
47
|
+
], MegamenuBinding.prototype, "version", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
Property({ type: 'datetime', onCreate: () => new Date() }),
|
|
50
|
+
__metadata("design:type", Date)
|
|
51
|
+
], MegamenuBinding.prototype, "createdAt", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
Property({ type: 'datetime', onUpdate: () => new Date() }),
|
|
54
|
+
__metadata("design:type", Date)
|
|
55
|
+
], MegamenuBinding.prototype, "updatedAt", void 0);
|
|
56
|
+
MegamenuBinding = __decorate([
|
|
57
|
+
GlobalEntity(),
|
|
58
|
+
Entity({ tableName: 'megamenu_bindings' })
|
|
59
|
+
], MegamenuBinding);
|
|
60
|
+
export { MegamenuBinding };
|
|
61
|
+
//# sourceMappingURL=megamenu-binding.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"megamenu-binding.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/megamenu-binding.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE;;;;;GAKG;AAGI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,CAAC,aAAa,CAAC,CAAoD;IAGnE,UAAU,CAAU;IAGpB,cAAc,CAAU;IAGxB,QAAQ,CAAU;IAGlB,MAAM,GAAY,KAAK,CAAC;IAGxB,OAAO,GAAW,CAAC,CAAC;IAGpB,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAG7B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAnBC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;;mDACnC;AAGpB;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;;uDACpC;AAGxB;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;;iDACxB;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;+CACN;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;gDACV;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;kDAAc;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;kDAAc;AAtBlB,eAAe;IAF3B,YAAY,EAAE;IACd,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;GAC9B,eAAe,CAuB3B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OptionalProps } from '@mikro-orm/core';
|
|
2
|
+
export type MegamenuItemKind = 'category-link' | 'cms-page-link' | 'external-link' | 'button' | 'asset' | 'cms-block-embed';
|
|
3
|
+
/**
|
|
4
|
+
* MegamenuItem — adjacency-list tree node. The `target` property is
|
|
5
|
+
* typed `Record<string, unknown>` at the entity layer; the discriminated
|
|
6
|
+
* union enforced at the Zod boundary lives in
|
|
7
|
+
* `packages/contracts/src/megamenu.ts`.
|
|
8
|
+
*
|
|
9
|
+
* `parent_id` is a self-FK; `position` is the 0..N-1 sort key per
|
|
10
|
+
* `(megamenu_id, parent_id)`. A GIN index on `target` (jsonb_path_ops)
|
|
11
|
+
* powers the cross-module reference scans documented in
|
|
12
|
+
* `contracts/megamenu-reference-scan.contract.md`.
|
|
13
|
+
*/
|
|
14
|
+
export declare class MegamenuItem {
|
|
15
|
+
[OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'parentId' | 'position' | 'labels' | 'descriptions' | 'target';
|
|
16
|
+
id: string;
|
|
17
|
+
megamenuId: string;
|
|
18
|
+
parentId?: string | null;
|
|
19
|
+
position: number;
|
|
20
|
+
kind: MegamenuItemKind;
|
|
21
|
+
labels: Record<string, string>;
|
|
22
|
+
descriptions?: Record<string, string> | null;
|
|
23
|
+
target: Record<string, unknown>;
|
|
24
|
+
createdAt: Date;
|
|
25
|
+
updatedAt: Date;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=megamenu-item.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"megamenu-item.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/megamenu-item.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAIrF,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,eAAe,GACf,eAAe,GACf,QAAQ,GACR,OAAO,GACP,iBAAiB,CAAC;AAEtB;;;;;;;;;;GAUG;AACH,qBAGa,YAAY;IACvB,CAAC,aAAa,CAAC,CAAC,EACZ,IAAI,GACJ,WAAW,GACX,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,cAAc,GACd,QAAQ,CAAC;IAGb,EAAE,EAAE,MAAM,CAAgB;IAG1B,UAAU,EAAG,MAAM,CAAC;IAGpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,QAAQ,EAAE,MAAM,CAAK;IAGrB,IAAI,EAAG,gBAAgB,CAAC;IAGxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAGpC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAG7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAGrC,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Entity, Index, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
|
|
11
|
+
import { GlobalEntity } from '@endora-commerce/platform/tenancy';
|
|
12
|
+
import { randomUUID } from 'crypto';
|
|
13
|
+
/**
|
|
14
|
+
* MegamenuItem — adjacency-list tree node. The `target` property is
|
|
15
|
+
* typed `Record<string, unknown>` at the entity layer; the discriminated
|
|
16
|
+
* union enforced at the Zod boundary lives in
|
|
17
|
+
* `packages/contracts/src/megamenu.ts`.
|
|
18
|
+
*
|
|
19
|
+
* `parent_id` is a self-FK; `position` is the 0..N-1 sort key per
|
|
20
|
+
* `(megamenu_id, parent_id)`. A GIN index on `target` (jsonb_path_ops)
|
|
21
|
+
* powers the cross-module reference scans documented in
|
|
22
|
+
* `contracts/megamenu-reference-scan.contract.md`.
|
|
23
|
+
*/
|
|
24
|
+
let MegamenuItem = class MegamenuItem {
|
|
25
|
+
[OptionalProps];
|
|
26
|
+
id = randomUUID();
|
|
27
|
+
megamenuId;
|
|
28
|
+
parentId;
|
|
29
|
+
position = 0;
|
|
30
|
+
kind;
|
|
31
|
+
labels = {};
|
|
32
|
+
descriptions;
|
|
33
|
+
target = {};
|
|
34
|
+
createdAt = new Date();
|
|
35
|
+
updatedAt = new Date();
|
|
36
|
+
};
|
|
37
|
+
__decorate([
|
|
38
|
+
PrimaryKey({ type: 'uuid' }),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], MegamenuItem.prototype, "id", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
Property({ type: 'uuid', fieldName: 'megamenu_id' }),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], MegamenuItem.prototype, "megamenuId", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
Property({ type: 'uuid', fieldName: 'parent_id', nullable: true }),
|
|
47
|
+
__metadata("design:type", Object)
|
|
48
|
+
], MegamenuItem.prototype, "parentId", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
Property({ type: 'integer' }),
|
|
51
|
+
__metadata("design:type", Number)
|
|
52
|
+
], MegamenuItem.prototype, "position", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
Property({ type: 'string', length: 32 }),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], MegamenuItem.prototype, "kind", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
Property({ type: 'json' }),
|
|
59
|
+
__metadata("design:type", Object)
|
|
60
|
+
], MegamenuItem.prototype, "labels", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
Property({ type: 'json', nullable: true }),
|
|
63
|
+
__metadata("design:type", Object)
|
|
64
|
+
], MegamenuItem.prototype, "descriptions", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
Property({ type: 'json' }),
|
|
67
|
+
__metadata("design:type", Object)
|
|
68
|
+
], MegamenuItem.prototype, "target", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
Property({ type: 'datetime', onCreate: () => new Date() }),
|
|
71
|
+
__metadata("design:type", Date)
|
|
72
|
+
], MegamenuItem.prototype, "createdAt", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
Property({ type: 'datetime', onUpdate: () => new Date() }),
|
|
75
|
+
__metadata("design:type", Date)
|
|
76
|
+
], MegamenuItem.prototype, "updatedAt", void 0);
|
|
77
|
+
MegamenuItem = __decorate([
|
|
78
|
+
GlobalEntity(),
|
|
79
|
+
Entity({ tableName: 'megamenu_items' }),
|
|
80
|
+
Index({ name: 'idx_megamenu_items_tree', properties: ['megamenuId', 'parentId', 'position'] })
|
|
81
|
+
], MegamenuItem);
|
|
82
|
+
export { MegamenuItem };
|
|
83
|
+
//# sourceMappingURL=megamenu-item.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"megamenu-item.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/megamenu-item.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAUpC;;;;;;;;;;GAUG;AAII,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,CAAC,aAAa,CAAC,CAQF;IAGb,EAAE,GAAW,UAAU,EAAE,CAAC;IAG1B,UAAU,CAAU;IAGpB,QAAQ,CAAiB;IAGzB,QAAQ,GAAW,CAAC,CAAC;IAGrB,IAAI,CAAoB;IAGxB,MAAM,GAA2B,EAAE,CAAC;IAGpC,YAAY,CAAiC;IAG7C,MAAM,GAA4B,EAAE,CAAC;IAGrC,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAG7B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AA5BC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wCACH;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;;gDACjC;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC1C;AAGzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;8CACT;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;0CACjB;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4CACS;AAGpC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACE;AAG7C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4CACU;AAGrC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;+CAAc;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;+CAAc;AAvClB,YAAY;IAHxB,YAAY,EAAE;IACd,MAAM,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;GAClF,YAAY,CAwCxB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OptionalProps } from '@mikro-orm/core';
|
|
2
|
+
/**
|
|
3
|
+
* Megamenu — a named navigation configuration. Per `data-model.md`, the
|
|
4
|
+
* configuration row carries no `active` column; activation lives on the
|
|
5
|
+
* binding rows so a megamenu can be staged in many scopes and made
|
|
6
|
+
* active in some without an inconsistent flag pair.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Megamenu {
|
|
9
|
+
[OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'description' | 'version';
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string | null;
|
|
13
|
+
version: number;
|
|
14
|
+
createdAt: Date;
|
|
15
|
+
updatedAt: Date;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=megamenu.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"megamenu.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/megamenu.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAI9E;;;;;GAKG;AACH,qBAEa,QAAQ;IACnB,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAG/E,EAAE,EAAE,MAAM,CAAgB;IAG1B,IAAI,EAAG,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,OAAO,EAAE,MAAM,CAAK;IAGpB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Entity, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
|
|
11
|
+
import { GlobalEntity } from '@endora-commerce/platform/tenancy';
|
|
12
|
+
import { randomUUID } from 'crypto';
|
|
13
|
+
/**
|
|
14
|
+
* Megamenu — a named navigation configuration. Per `data-model.md`, the
|
|
15
|
+
* configuration row carries no `active` column; activation lives on the
|
|
16
|
+
* binding rows so a megamenu can be staged in many scopes and made
|
|
17
|
+
* active in some without an inconsistent flag pair.
|
|
18
|
+
*/
|
|
19
|
+
let Megamenu = class Megamenu {
|
|
20
|
+
[OptionalProps];
|
|
21
|
+
id = randomUUID();
|
|
22
|
+
name;
|
|
23
|
+
description;
|
|
24
|
+
version = 1;
|
|
25
|
+
createdAt = new Date();
|
|
26
|
+
updatedAt = new Date();
|
|
27
|
+
};
|
|
28
|
+
__decorate([
|
|
29
|
+
PrimaryKey({ type: 'uuid' }),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], Megamenu.prototype, "id", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
Property({ type: 'string', length: 200 }),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], Megamenu.prototype, "name", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
Property({ type: 'text', nullable: true }),
|
|
38
|
+
__metadata("design:type", Object)
|
|
39
|
+
], Megamenu.prototype, "description", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
Property({ type: 'integer' }),
|
|
42
|
+
__metadata("design:type", Number)
|
|
43
|
+
], Megamenu.prototype, "version", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
Property({ type: 'datetime', onCreate: () => new Date() }),
|
|
46
|
+
__metadata("design:type", Date)
|
|
47
|
+
], Megamenu.prototype, "createdAt", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
Property({ type: 'datetime', onUpdate: () => new Date() }),
|
|
50
|
+
__metadata("design:type", Date)
|
|
51
|
+
], Megamenu.prototype, "updatedAt", void 0);
|
|
52
|
+
Megamenu = __decorate([
|
|
53
|
+
GlobalEntity(),
|
|
54
|
+
Entity({ tableName: 'megamenus' })
|
|
55
|
+
], Megamenu);
|
|
56
|
+
export { Megamenu };
|
|
57
|
+
//# sourceMappingURL=megamenu.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"megamenu.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/megamenu.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;GAKG;AAGI,IAAM,QAAQ,GAAd,MAAM,QAAQ;IACnB,CAAC,aAAa,CAAC,CAAgE;IAG/E,EAAE,GAAW,UAAU,EAAE,CAAC;IAG1B,IAAI,CAAU;IAGd,WAAW,CAAiB;IAG5B,OAAO,GAAW,CAAC,CAAC;IAGpB,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAG7B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAhBC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oCACH;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sCAC5B;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACf;AAG5B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;yCACV;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;2CAAc;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;2CAAc;AAnBlB,QAAQ;IAFpB,YAAY,EAAE;IACd,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;GACtB,QAAQ,CAoBpB"}
|