@aphexcms/cms-core 2.0.5 → 2.0.7
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/api/documents.d.ts +18 -0
- package/dist/api/documents.d.ts.map +1 -1
- package/dist/api/documents.js +22 -1
- package/dist/components/AdminApp.svelte +53 -1
- package/dist/components/AdminApp.svelte.d.ts.map +1 -1
- package/dist/components/admin/DocumentEditor.svelte +440 -51
- package/dist/components/admin/DocumentEditor.svelte.d.ts +7 -0
- package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
- package/dist/components/admin/DocumentVersionPanel.svelte +138 -0
- package/dist/components/admin/DocumentVersionPanel.svelte.d.ts +15 -0
- package/dist/components/admin/DocumentVersionPanel.svelte.d.ts.map +1 -0
- package/dist/components/admin/MediaBrowser.svelte +42 -13
- package/dist/components/admin/MediaBrowser.svelte.d.ts.map +1 -1
- package/dist/components/admin/fields/ArrayField.svelte +102 -2
- package/dist/components/admin/fields/ArrayField.svelte.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/db/interfaces/document.d.ts +14 -0
- package/dist/db/interfaces/document.d.ts.map +1 -1
- package/dist/db/interfaces/index.d.ts +6 -0
- package/dist/db/interfaces/index.d.ts.map +1 -1
- package/dist/graphql/resolvers.js +1 -1
- package/dist/lib/api/documents.d.ts +18 -0
- package/dist/lib/api/documents.d.ts.map +1 -1
- package/dist/lib/api/documents.js +22 -1
- package/dist/lib/api/documents.js.map +1 -1
- package/dist/lib/components/index.d.ts +1 -0
- package/dist/lib/components/index.d.ts.map +1 -1
- package/dist/lib/components/index.js +1 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/db/interfaces/document.d.ts +14 -0
- package/dist/lib/db/interfaces/document.d.ts.map +1 -1
- package/dist/lib/db/interfaces/index.d.ts +6 -0
- package/dist/lib/db/interfaces/index.d.ts.map +1 -1
- package/dist/lib/graphql/resolvers.js +1 -1
- package/dist/lib/graphql/resolvers.js.map +1 -1
- package/dist/lib/local-api/collection-api.d.ts +5 -1
- package/dist/lib/local-api/collection-api.d.ts.map +1 -1
- package/dist/lib/local-api/collection-api.js +26 -6
- package/dist/lib/local-api/collection-api.js.map +1 -1
- package/dist/lib/local-api/index.d.ts +2 -0
- package/dist/lib/local-api/index.d.ts.map +1 -1
- package/dist/lib/local-api/index.js +7 -2
- package/dist/lib/local-api/index.js.map +1 -1
- package/dist/lib/routes/document-versions.d.ts +5 -0
- package/dist/lib/routes/document-versions.d.ts.map +1 -0
- package/dist/lib/routes/document-versions.js +100 -0
- package/dist/lib/routes/document-versions.js.map +1 -0
- package/dist/lib/routes-exports.d.ts +1 -0
- package/dist/lib/routes-exports.d.ts.map +1 -1
- package/dist/lib/routes-exports.js +1 -0
- package/dist/lib/routes-exports.js.map +1 -1
- package/dist/lib/services/index.d.ts +1 -0
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +1 -0
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +39 -0
- package/dist/lib/services/version-service.d.ts.map +1 -0
- package/dist/lib/services/version-service.js +129 -0
- package/dist/lib/services/version-service.js.map +1 -0
- package/dist/lib/types/config.d.ts +7 -0
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/lib/types/document.d.ts +2 -2
- package/dist/lib/types/document.d.ts.map +1 -1
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js +1 -0
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/types/schemas.d.ts +3 -0
- package/dist/lib/types/schemas.d.ts.map +1 -1
- package/dist/lib/types/version.d.ts +15 -0
- package/dist/lib/types/version.d.ts.map +1 -0
- package/dist/lib/types/version.js +2 -0
- package/dist/lib/types/version.js.map +1 -0
- package/dist/local-api/collection-api.d.ts +5 -1
- package/dist/local-api/collection-api.d.ts.map +1 -1
- package/dist/local-api/collection-api.js +26 -6
- package/dist/local-api/index.d.ts +2 -0
- package/dist/local-api/index.d.ts.map +1 -1
- package/dist/local-api/index.js +7 -2
- package/dist/routes/document-versions.d.ts +5 -0
- package/dist/routes/document-versions.d.ts.map +1 -0
- package/dist/routes/document-versions.js +99 -0
- package/dist/routes-exports.d.ts +1 -0
- package/dist/routes-exports.d.ts.map +1 -1
- package/dist/routes-exports.js +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/version-service.d.ts +39 -0
- package/dist/services/version-service.d.ts.map +1 -0
- package/dist/services/version-service.js +128 -0
- package/dist/types/config.d.ts +7 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/document.d.ts +2 -2
- package/dist/types/document.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/schemas.d.ts +3 -0
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/version.d.ts +15 -0
- package/dist/types/version.d.ts.map +1 -0
- package/dist/types/version.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Badge } from '@aphexcms/ui/shadcn/badge';
|
|
3
|
+
import { Button } from '@aphexcms/ui/shadcn/button';
|
|
4
|
+
import { documents } from '../../api/documents';
|
|
5
|
+
import { toast } from 'svelte-sonner';
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
documentId: string;
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
onRestored?: () => void;
|
|
11
|
+
onPreviewVersion?: (version: { versionNumber: number; data: Record<string, any>; eventType: string; createdAt?: string } | null) => void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let { documentId, onClose, onRestored, onPreviewVersion }: Props = $props();
|
|
15
|
+
|
|
16
|
+
let versions = $state<any[]>([]);
|
|
17
|
+
let loading = $state(true);
|
|
18
|
+
let previewVersion = $state<any>(null);
|
|
19
|
+
let filter = $state<'all' | 'publish' | 'draft'>('all');
|
|
20
|
+
|
|
21
|
+
const filteredVersions = $derived(
|
|
22
|
+
filter === 'all' ? versions : versions.filter((v) => v.eventType === filter)
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
$effect(() => {
|
|
26
|
+
loadVersions();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
async function loadVersions() {
|
|
30
|
+
loading = true;
|
|
31
|
+
try {
|
|
32
|
+
const res = await documents.listVersions(documentId, { limit: 100 });
|
|
33
|
+
if (res.success && res.data) {
|
|
34
|
+
versions = res.data;
|
|
35
|
+
}
|
|
36
|
+
} catch {
|
|
37
|
+
toast.error('Failed to load versions');
|
|
38
|
+
} finally {
|
|
39
|
+
loading = false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async function previewVersionData(version: any) {
|
|
44
|
+
try {
|
|
45
|
+
const res = await documents.getVersion(documentId, version.versionNumber);
|
|
46
|
+
if (res.success && res.data) {
|
|
47
|
+
previewVersion = { ...version, data: res.data.data };
|
|
48
|
+
onPreviewVersion?.({
|
|
49
|
+
versionNumber: version.versionNumber,
|
|
50
|
+
data: res.data.data,
|
|
51
|
+
eventType: version.eventType,
|
|
52
|
+
createdAt: version.createdAt
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
} catch {
|
|
56
|
+
toast.error('Failed to load version');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function clearPreview() {
|
|
61
|
+
previewVersion = null;
|
|
62
|
+
onPreviewVersion?.(null);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function restoreVersion() {
|
|
66
|
+
if (!previewVersion) return;
|
|
67
|
+
try {
|
|
68
|
+
await documents.restoreVersion(documentId, previewVersion.versionNumber);
|
|
69
|
+
toast.success(`Restored to v${previewVersion.versionNumber}`);
|
|
70
|
+
clearPreview();
|
|
71
|
+
onRestored?.();
|
|
72
|
+
await loadVersions();
|
|
73
|
+
} catch {
|
|
74
|
+
toast.error('Failed to restore');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
<div class="flex h-full flex-col">
|
|
80
|
+
<!-- Header -->
|
|
81
|
+
<div class="border-border bg-background flex h-14 items-center justify-between border-b px-3">
|
|
82
|
+
<h3 class="text-sm font-medium">History</h3>
|
|
83
|
+
<button
|
|
84
|
+
class="hover:bg-muted rounded p-1 transition-colors"
|
|
85
|
+
onclick={onClose}
|
|
86
|
+
>
|
|
87
|
+
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
88
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
|
89
|
+
</svg>
|
|
90
|
+
</button>
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<!-- Filter tabs -->
|
|
94
|
+
<div class="border-border flex border-b">
|
|
95
|
+
{#each [{ value: 'all', label: 'All' }, { value: 'publish', label: 'Published' }, { value: 'draft', label: 'Drafts' }] as tab}
|
|
96
|
+
<button
|
|
97
|
+
class="flex-1 px-2 py-2 text-xs font-medium transition-colors {filter === tab.value ? 'border-b-2 border-primary text-foreground' : 'text-muted-foreground hover:text-foreground'}"
|
|
98
|
+
onclick={() => { filter = tab.value as any; }}
|
|
99
|
+
>
|
|
100
|
+
{tab.label}
|
|
101
|
+
</button>
|
|
102
|
+
{/each}
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<!-- Version List -->
|
|
106
|
+
<div class="flex-1 overflow-auto">
|
|
107
|
+
{#if loading}
|
|
108
|
+
<div class="p-4 text-center">
|
|
109
|
+
<span class="text-muted-foreground text-xs">Loading...</span>
|
|
110
|
+
</div>
|
|
111
|
+
{:else if filteredVersions.length === 0}
|
|
112
|
+
<div class="p-4 text-center">
|
|
113
|
+
<span class="text-muted-foreground text-xs">No {filter === 'all' ? '' : filter} versions</span>
|
|
114
|
+
</div>
|
|
115
|
+
{:else}
|
|
116
|
+
{#each filteredVersions as version}
|
|
117
|
+
<button
|
|
118
|
+
class="w-full border-b px-3 py-2.5 text-left transition-colors hover:bg-muted {previewVersion?.versionNumber === version.versionNumber ? 'bg-muted border-l-2 border-l-primary' : ''}"
|
|
119
|
+
onclick={() => previewVersionData(version)}
|
|
120
|
+
>
|
|
121
|
+
<div class="flex items-center justify-between">
|
|
122
|
+
<span class="text-muted-foreground text-[11px]">
|
|
123
|
+
{new Date(version.createdAt).toLocaleString(undefined, { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit', hour12: true })}
|
|
124
|
+
</span>
|
|
125
|
+
<Badge variant={version.eventType === 'publish' ? 'default' : 'secondary'} class="text-[9px] px-1.5 py-0">
|
|
126
|
+
{version.eventType}
|
|
127
|
+
</Badge>
|
|
128
|
+
</div>
|
|
129
|
+
{#if version.createdByName || version.createdBy}
|
|
130
|
+
<p class="text-muted-foreground mt-0.5 truncate text-[10px]">
|
|
131
|
+
{version.createdByName || version.createdBy}
|
|
132
|
+
</p>
|
|
133
|
+
{/if}
|
|
134
|
+
</button>
|
|
135
|
+
{/each}
|
|
136
|
+
{/if}
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
documentId: string;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
onRestored?: () => void;
|
|
5
|
+
onPreviewVersion?: (version: {
|
|
6
|
+
versionNumber: number;
|
|
7
|
+
data: Record<string, any>;
|
|
8
|
+
eventType: string;
|
|
9
|
+
createdAt?: string;
|
|
10
|
+
} | null) => void;
|
|
11
|
+
}
|
|
12
|
+
declare const DocumentVersionPanel: import("svelte").Component<Props, {}, "">;
|
|
13
|
+
type DocumentVersionPanel = ReturnType<typeof DocumentVersionPanel>;
|
|
14
|
+
export default DocumentVersionPanel;
|
|
15
|
+
//# sourceMappingURL=DocumentVersionPanel.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentVersionPanel.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/admin/DocumentVersionPanel.svelte.ts"],"names":[],"mappings":"AASC,UAAU,KAAK;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;CACzI;AA+HF,QAAA,MAAM,oBAAoB,2CAAwC,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
|
|
@@ -725,7 +725,13 @@
|
|
|
725
725
|
<div class="grid grid-cols-2 gap-0.5 p-1 sm:grid-cols-5 xl:grid-cols-10">
|
|
726
726
|
{#each pinnedAssets as asset (asset.id)}
|
|
727
727
|
<button
|
|
728
|
-
onclick={() =>
|
|
728
|
+
onclick={() => {
|
|
729
|
+
if (selectable && multiSelect) {
|
|
730
|
+
toggleSelect(asset.id);
|
|
731
|
+
} else {
|
|
732
|
+
openAssetDetail(asset);
|
|
733
|
+
}
|
|
734
|
+
}}
|
|
729
735
|
class="group relative flex flex-col overflow-hidden rounded-sm transition-colors {selectedIds.has(
|
|
730
736
|
asset.id
|
|
731
737
|
)
|
|
@@ -747,13 +753,15 @@
|
|
|
747
753
|
<FileText class="text-muted-foreground h-10 w-10" />
|
|
748
754
|
</div>
|
|
749
755
|
{/if}
|
|
750
|
-
|
|
751
|
-
<
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
756
|
+
{#if isSelectMode && !selectable}
|
|
757
|
+
<div class="absolute top-1.5 left-1.5">
|
|
758
|
+
<Checkbox
|
|
759
|
+
checked={selectedIds.has(asset.id)}
|
|
760
|
+
onCheckedChange={() => toggleSelect(asset.id)}
|
|
761
|
+
onclick={(e) => e.stopPropagation()}
|
|
762
|
+
/>
|
|
763
|
+
</div>
|
|
764
|
+
{/if}
|
|
757
765
|
</div>
|
|
758
766
|
<div class="p-1.5">
|
|
759
767
|
<p class="text-muted-foreground truncate text-xs">
|
|
@@ -766,11 +774,9 @@
|
|
|
766
774
|
<button
|
|
767
775
|
onclick={() => {
|
|
768
776
|
if (selectable && multiSelect) {
|
|
769
|
-
|
|
777
|
+
toggleSelect(asset.id);
|
|
770
778
|
} else if (isSelectMode) {
|
|
771
779
|
toggleSelect(asset.id);
|
|
772
|
-
} else if (selectable && onSelect) {
|
|
773
|
-
onSelect(asset);
|
|
774
780
|
} else {
|
|
775
781
|
openAssetDetail(asset);
|
|
776
782
|
}
|
|
@@ -796,8 +802,19 @@
|
|
|
796
802
|
<FileText class="text-muted-foreground h-10 w-10" />
|
|
797
803
|
</div>
|
|
798
804
|
{/if}
|
|
799
|
-
|
|
800
|
-
|
|
805
|
+
{#if selectable}
|
|
806
|
+
<!-- Info button to view details without selecting -->
|
|
807
|
+
<button
|
|
808
|
+
onclick={(e) => { e.stopPropagation(); openAssetDetail(asset); }}
|
|
809
|
+
class="absolute top-1.5 right-1.5 rounded bg-background/80 p-1 opacity-0 transition-opacity group-hover:opacity-100"
|
|
810
|
+
title="View details"
|
|
811
|
+
>
|
|
812
|
+
<svg class="h-3.5 w-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
813
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
814
|
+
</svg>
|
|
815
|
+
</button>
|
|
816
|
+
{:else if isSelectMode}
|
|
817
|
+
<!-- Checkbox overlay for bulk mode -->
|
|
801
818
|
<div class="absolute top-1.5 left-1.5">
|
|
802
819
|
<Checkbox
|
|
803
820
|
checked={selectedIds.has(asset.id)}
|
|
@@ -1083,6 +1100,18 @@
|
|
|
1083
1100
|
</div>
|
|
1084
1101
|
</div>
|
|
1085
1102
|
|
|
1103
|
+
{#if selectable && !multiSelect && onSelect}
|
|
1104
|
+
<div class="border-border border-b px-4 py-2">
|
|
1105
|
+
<Button
|
|
1106
|
+
size="sm"
|
|
1107
|
+
class="w-full"
|
|
1108
|
+
onclick={() => { if (selectedAsset && onSelect) onSelect(selectedAsset); }}
|
|
1109
|
+
>
|
|
1110
|
+
Select
|
|
1111
|
+
</Button>
|
|
1112
|
+
</div>
|
|
1113
|
+
{/if}
|
|
1114
|
+
|
|
1086
1115
|
<!-- Preview (click to enlarge) -->
|
|
1087
1116
|
<div class="p-4 pb-0">
|
|
1088
1117
|
{#if isImage(selectedAsset)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaBrowser.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/admin/MediaBrowser.svelte.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO9C,UAAU,KAAK;IACd,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IAC7C,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"MediaBrowser.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/admin/MediaBrowser.svelte.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO9C,UAAU,KAAK;IACd,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IAC7C,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;AAmoCF,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
return getSchemaByName(schemas, typeName);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
const isGridLayout = $derived(field.options?.layout === 'grid');
|
|
69
70
|
const isPrimitiveArray = $derived(
|
|
70
71
|
field.of &&
|
|
71
72
|
field.of.length > 0 &&
|
|
@@ -142,9 +143,9 @@
|
|
|
142
143
|
});
|
|
143
144
|
});
|
|
144
145
|
|
|
145
|
-
// Persist generated keys back to parent state
|
|
146
|
+
// Persist generated keys back to parent state (skip in readonly mode to avoid infinite loops)
|
|
146
147
|
$effect(() => {
|
|
147
|
-
if (isPrimitiveArray) return;
|
|
148
|
+
if (isPrimitiveArray || readonly) return;
|
|
148
149
|
const hasUnkeyed = arrayValue.some(
|
|
149
150
|
(item: any) => item && typeof item === 'object' && !item._key
|
|
150
151
|
);
|
|
@@ -436,6 +437,104 @@
|
|
|
436
437
|
{:else if primitiveType === 'image'}
|
|
437
438
|
{#key dndKey}
|
|
438
439
|
<DragDropProvider onDragEnd={handlePrimitiveDragEnd}>
|
|
440
|
+
{#if isGridLayout}
|
|
441
|
+
<!-- Grid layout for images -->
|
|
442
|
+
{#if arrayValue.length === 0}
|
|
443
|
+
<div class="border-border/50 flex h-32 items-center justify-center rounded-md border border-dashed">
|
|
444
|
+
<div class="text-center">
|
|
445
|
+
<ImageIcon class="mx-auto h-8 w-8 text-muted-foreground" />
|
|
446
|
+
<p class="text-muted-foreground mt-1 text-xs">No images yet</p>
|
|
447
|
+
</div>
|
|
448
|
+
</div>
|
|
449
|
+
{/if}
|
|
450
|
+
<div class="grid grid-cols-2 gap-2 sm:grid-cols-3 md:grid-cols-4">
|
|
451
|
+
{#each arrayValue as item, index (`prim-${index}`)}
|
|
452
|
+
{@const sortable = createSortable({ id: `prim-${index}`, index, disabled: readonly })}
|
|
453
|
+
<div
|
|
454
|
+
{@attach sortable.attach}
|
|
455
|
+
class="border-border/50 bg-background group relative aspect-square overflow-hidden rounded-md border"
|
|
456
|
+
class:opacity-50={sortable.isDragging}
|
|
457
|
+
>
|
|
458
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
459
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
460
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
461
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
462
|
+
<div
|
|
463
|
+
class="h-full w-full cursor-pointer"
|
|
464
|
+
onclick={() => handleOpenImageModal(index)}
|
|
465
|
+
>
|
|
466
|
+
{#if item?.asset?._ref}
|
|
467
|
+
{#await assets.getById(item.asset._ref)}
|
|
468
|
+
<div class="flex h-full w-full items-center justify-center bg-muted">
|
|
469
|
+
<div class="border-primary h-4 w-4 animate-spin rounded-full border-b-2"></div>
|
|
470
|
+
</div>
|
|
471
|
+
{:then result}
|
|
472
|
+
{#if result.success && result.data?.url}
|
|
473
|
+
<img
|
|
474
|
+
src={result.data.url}
|
|
475
|
+
alt={item?.alt || `Image ${index + 1}`}
|
|
476
|
+
class="h-full w-full object-cover"
|
|
477
|
+
loading="lazy"
|
|
478
|
+
/>
|
|
479
|
+
{:else}
|
|
480
|
+
<div class="flex h-full w-full items-center justify-center bg-muted">
|
|
481
|
+
<ImageIcon class="h-8 w-8 text-muted-foreground" />
|
|
482
|
+
</div>
|
|
483
|
+
{/if}
|
|
484
|
+
{:catch}
|
|
485
|
+
<div class="flex h-full w-full items-center justify-center bg-muted">
|
|
486
|
+
<ImageIcon class="h-8 w-8 text-muted-foreground" />
|
|
487
|
+
</div>
|
|
488
|
+
{/await}
|
|
489
|
+
{:else}
|
|
490
|
+
<div class="flex h-full w-full items-center justify-center bg-muted">
|
|
491
|
+
<ImageIcon class="h-8 w-8 text-muted-foreground" />
|
|
492
|
+
</div>
|
|
493
|
+
{/if}
|
|
494
|
+
</div>
|
|
495
|
+
|
|
496
|
+
<!-- Overlay controls -->
|
|
497
|
+
{#if !readonly}
|
|
498
|
+
<div class="absolute top-1 left-1 opacity-0 group-hover:opacity-100 transition-opacity">
|
|
499
|
+
<button
|
|
500
|
+
{@attach sortable.attachHandle}
|
|
501
|
+
class="bg-background/80 rounded p-1 cursor-grab active:cursor-grabbing"
|
|
502
|
+
>
|
|
503
|
+
<GripVertical class="h-3.5 w-3.5" />
|
|
504
|
+
</button>
|
|
505
|
+
</div>
|
|
506
|
+
<div class="absolute right-1 bottom-1 opacity-0 group-hover:opacity-100 transition-opacity">
|
|
507
|
+
<DropdownMenu.Root>
|
|
508
|
+
<DropdownMenu.Trigger>
|
|
509
|
+
{#snippet child({ props })}
|
|
510
|
+
<button
|
|
511
|
+
{...props}
|
|
512
|
+
class="bg-background/80 rounded p-1"
|
|
513
|
+
>
|
|
514
|
+
<Ellipsis class="h-3.5 w-3.5" />
|
|
515
|
+
</button>
|
|
516
|
+
{/snippet}
|
|
517
|
+
</DropdownMenu.Trigger>
|
|
518
|
+
<DropdownMenu.Content align="end">
|
|
519
|
+
<DropdownMenu.Item onclick={() => handleOpenImageModal(index)}>
|
|
520
|
+
<Pencil class="mr-2 h-4 w-4" /> Edit
|
|
521
|
+
</DropdownMenu.Item>
|
|
522
|
+
<DropdownMenu.Separator />
|
|
523
|
+
<DropdownMenu.Item
|
|
524
|
+
class="text-destructive focus:text-destructive"
|
|
525
|
+
onclick={() => handleRemoveItem(index)}
|
|
526
|
+
>
|
|
527
|
+
<Trash2 class="mr-2 h-4 w-4" /> Remove
|
|
528
|
+
</DropdownMenu.Item>
|
|
529
|
+
</DropdownMenu.Content>
|
|
530
|
+
</DropdownMenu.Root>
|
|
531
|
+
</div>
|
|
532
|
+
{/if}
|
|
533
|
+
</div>
|
|
534
|
+
{/each}
|
|
535
|
+
</div>
|
|
536
|
+
{:else}
|
|
537
|
+
<!-- Default list layout for images -->
|
|
439
538
|
<div class="space-y-1">
|
|
440
539
|
{#each arrayValue as item, index (`prim-${index}`)}
|
|
441
540
|
{@const sortable = createSortable({ id: `prim-${index}`, index, disabled: readonly })}
|
|
@@ -505,6 +604,7 @@
|
|
|
505
604
|
</div>
|
|
506
605
|
{/each}
|
|
507
606
|
</div>
|
|
607
|
+
{/if}
|
|
508
608
|
</DragDropProvider>
|
|
509
609
|
{/key}
|
|
510
610
|
{:else}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/ArrayField.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAc,MAAM,wBAAwB,CAAC;AAyBtF,UAAU,KAAK;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"ArrayField.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/admin/fields/ArrayField.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAc,MAAM,wBAAwB,CAAC;AAyBtF,UAAU,KAAK;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAsyBF,QAAA,MAAM,UAAU,2CAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -4,5 +4,6 @@ export { default as DocumentEditor } from './admin/DocumentEditor.svelte';
|
|
|
4
4
|
export { default as SchemaField } from './admin/SchemaField.svelte';
|
|
5
5
|
export { default as MediaBrowser } from './admin/MediaBrowser.svelte';
|
|
6
6
|
export { default as AssetBrowserModal } from './admin/AssetBrowserModal.svelte';
|
|
7
|
+
export { default as DocumentVersionPanel } from './admin/DocumentVersionPanel.svelte';
|
|
7
8
|
export * from './fields/index.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/components/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/components/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAGtF,cAAc,gBAAgB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -9,5 +9,6 @@ export { default as DocumentEditor } from './admin/DocumentEditor.svelte';
|
|
|
9
9
|
export { default as SchemaField } from './admin/SchemaField.svelte';
|
|
10
10
|
export { default as MediaBrowser } from './admin/MediaBrowser.svelte';
|
|
11
11
|
export { default as AssetBrowserModal } from './admin/AssetBrowserModal.svelte';
|
|
12
|
+
export { default as DocumentVersionPanel } from './admin/DocumentVersionPanel.svelte';
|
|
12
13
|
// Field components
|
|
13
14
|
export * from './fields/index.js';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Document } from '../../types/index.js';
|
|
2
|
+
import type { DocumentVersion, DocumentVersionList } from '../../types/version.js';
|
|
2
3
|
import type { Where, FindOptions, FindResult } from '../../types/filters.js';
|
|
3
4
|
export interface DocumentFilters {
|
|
4
5
|
organizationId: string;
|
|
@@ -75,5 +76,18 @@ export interface DocumentAdapter {
|
|
|
75
76
|
* @returns Map of asset ID to reference count
|
|
76
77
|
*/
|
|
77
78
|
countDocumentReferencesForAssets?(organizationId: string, assetIds: string[]): Promise<Record<string, number>>;
|
|
79
|
+
createDocumentVersion?(data: {
|
|
80
|
+
documentId: string;
|
|
81
|
+
organizationId: string;
|
|
82
|
+
eventType: 'draft' | 'publish';
|
|
83
|
+
data: any;
|
|
84
|
+
createdBy?: string | null;
|
|
85
|
+
}): Promise<DocumentVersion | null>;
|
|
86
|
+
listDocumentVersions?(organizationId: string, documentId: string, options?: {
|
|
87
|
+
limit?: number;
|
|
88
|
+
offset?: number;
|
|
89
|
+
}): Promise<DocumentVersionList>;
|
|
90
|
+
getDocumentVersion?(organizationId: string, documentId: string, versionNumber: number): Promise<DocumentVersion | null>;
|
|
91
|
+
deleteDocumentVersions?(documentId: string, versionIds: string[]): Promise<void>;
|
|
78
92
|
}
|
|
79
93
|
//# sourceMappingURL=document.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/document.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,12 @@ export interface DatabaseAdapter extends DocumentAdapter, AssetAdapter, UserProf
|
|
|
36
36
|
* Check if any user profiles exist in the system (for first-user detection)
|
|
37
37
|
*/
|
|
38
38
|
hasAnyUserProfiles?(): Promise<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Execute multiple adapter operations in a single atomic transaction.
|
|
41
|
+
* The callback receives a transactional version of the adapter — all operations
|
|
42
|
+
* within it share the same DB transaction and commit/rollback together.
|
|
43
|
+
*/
|
|
44
|
+
withTransaction?<T>(fn: (adapter: DatabaseAdapter) => Promise<T>): Promise<T>;
|
|
39
45
|
}
|
|
40
46
|
/**
|
|
41
47
|
* Database provider factory interface
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,YAAY,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,eAChB,SAAQ,eAAe,EACtB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,eAAe;IAEhB,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAG9B;;OAEG;IACH,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7E;;OAEG;IACH,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvE;;OAEG;IACH,kBAAkB,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/db/interfaces/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -298,7 +298,7 @@ export function createResolvers(cms, schemaTypes, defaultPerspective = 'publishe
|
|
|
298
298
|
perspective,
|
|
299
299
|
limit: args.limit || 50,
|
|
300
300
|
offset: args.offset || 0,
|
|
301
|
-
sort: args.sort ||
|
|
301
|
+
sort: args.sort || '-createdAt',
|
|
302
302
|
depth: args.depth || 0
|
|
303
303
|
});
|
|
304
304
|
// Map documents to GraphQL format
|
|
@@ -41,6 +41,21 @@ export declare class DocumentsApi {
|
|
|
41
41
|
* Get draft documents only (convenience method)
|
|
42
42
|
*/
|
|
43
43
|
static getDrafts(params?: Omit<DocumentListParams, 'status'>): Promise<ApiResponse<Document[]>>;
|
|
44
|
+
/**
|
|
45
|
+
* List document version history
|
|
46
|
+
*/
|
|
47
|
+
static listVersions(id: string, params?: {
|
|
48
|
+
limit?: number;
|
|
49
|
+
offset?: number;
|
|
50
|
+
}): Promise<ApiResponse<any[]>>;
|
|
51
|
+
/**
|
|
52
|
+
* Get a specific version
|
|
53
|
+
*/
|
|
54
|
+
static getVersion(id: string, versionNumber: number): Promise<ApiResponse<any>>;
|
|
55
|
+
/**
|
|
56
|
+
* Restore a version to draft
|
|
57
|
+
*/
|
|
58
|
+
static restoreVersion(id: string, versionNumber: number): Promise<ApiResponse<Document>>;
|
|
44
59
|
}
|
|
45
60
|
export declare const documents: {
|
|
46
61
|
list: typeof DocumentsApi.list;
|
|
@@ -53,5 +68,8 @@ export declare const documents: {
|
|
|
53
68
|
getByType: typeof DocumentsApi.getByType;
|
|
54
69
|
getPublished: typeof DocumentsApi.getPublished;
|
|
55
70
|
getDrafts: typeof DocumentsApi.getDrafts;
|
|
71
|
+
listVersions: typeof DocumentsApi.listVersions;
|
|
72
|
+
getVersion: typeof DocumentsApi.getVersion;
|
|
73
|
+
restoreVersion: typeof DocumentsApi.restoreVersion;
|
|
56
74
|
};
|
|
57
75
|
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/lib/api/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,MAAM,SAAS,CAAC;AAEjB,qBAAa,YAAY;IACxB;;;OAGG;WACU,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAYpF;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIhE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7E;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7F;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIhE;;OAEG;WACU,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIlE;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI/D;;OAEG;WACU,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAM,GAC9C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,YAAY,CACxB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,SAAS,CACrB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/lib/api/documents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,MAAM,SAAS,CAAC;AAEjB,qBAAa,YAAY;IACxB;;;OAGG;WACU,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAYpF;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIhE;;OAEG;WACU,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7E;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7F;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIhE;;OAEG;WACU,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIlE;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAI/D;;OAEG;WACU,SAAS,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAM,GAC9C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,YAAY,CACxB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,SAAS,CACrB,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAM,GAC7C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAInC;;OAEG;WACU,YAAY,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAI9B;;OAEG;WACU,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAIrF;;OAEG;WACU,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;CAG9F;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;CAcrB,CAAC"}
|
|
@@ -69,6 +69,24 @@ export class DocumentsApi {
|
|
|
69
69
|
static async getDrafts(params = {}) {
|
|
70
70
|
return this.list({ ...params, status: 'draft' });
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* List document version history
|
|
74
|
+
*/
|
|
75
|
+
static async listVersions(id, params) {
|
|
76
|
+
return apiClient.get(`/documents/${id}/versions`, params);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get a specific version
|
|
80
|
+
*/
|
|
81
|
+
static async getVersion(id, versionNumber) {
|
|
82
|
+
return apiClient.get(`/documents/${id}/versions/${versionNumber}`);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Restore a version to draft
|
|
86
|
+
*/
|
|
87
|
+
static async restoreVersion(id, versionNumber) {
|
|
88
|
+
return apiClient.post(`/documents/${id}/versions/${versionNumber}/restore`);
|
|
89
|
+
}
|
|
72
90
|
}
|
|
73
91
|
// Export convenience functions for direct use
|
|
74
92
|
export const documents = {
|
|
@@ -81,6 +99,9 @@ export const documents = {
|
|
|
81
99
|
deleteById: DocumentsApi.deleteById.bind(DocumentsApi),
|
|
82
100
|
getByType: DocumentsApi.getByType.bind(DocumentsApi),
|
|
83
101
|
getPublished: DocumentsApi.getPublished.bind(DocumentsApi),
|
|
84
|
-
getDrafts: DocumentsApi.getDrafts.bind(DocumentsApi)
|
|
102
|
+
getDrafts: DocumentsApi.getDrafts.bind(DocumentsApi),
|
|
103
|
+
listVersions: DocumentsApi.listVersions.bind(DocumentsApi),
|
|
104
|
+
getVersion: DocumentsApi.getVersion.bind(DocumentsApi),
|
|
105
|
+
restoreVersion: DocumentsApi.restoreVersion.bind(DocumentsApi)
|
|
85
106
|
};
|
|
86
107
|
//# sourceMappingURL=documents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/lib/api/documents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/lib/api/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,6 @@ export { default as DocumentEditor } from './admin/DocumentEditor.svelte';
|
|
|
4
4
|
export { default as SchemaField } from './admin/SchemaField.svelte';
|
|
5
5
|
export { default as MediaBrowser } from './admin/MediaBrowser.svelte';
|
|
6
6
|
export { default as AssetBrowserModal } from './admin/AssetBrowserModal.svelte';
|
|
7
|
+
export { default as DocumentVersionPanel } from './admin/DocumentVersionPanel.svelte';
|
|
7
8
|
export * from './fields/index.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAGtF,cAAc,gBAAgB,CAAC"}
|
|
@@ -9,6 +9,7 @@ export { default as DocumentEditor } from './admin/DocumentEditor.svelte';
|
|
|
9
9
|
export { default as SchemaField } from './admin/SchemaField.svelte';
|
|
10
10
|
export { default as MediaBrowser } from './admin/MediaBrowser.svelte';
|
|
11
11
|
export { default as AssetBrowserModal } from './admin/AssetBrowserModal.svelte';
|
|
12
|
+
export { default as DocumentVersionPanel } from './admin/DocumentVersionPanel.svelte';
|
|
12
13
|
// Field components
|
|
13
14
|
export * from './fields/index.js';
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,wDAAwD;AAExD,iBAAiB;AACjB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE7D,kEAAkE;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,wDAAwD;AAExD,iBAAiB;AACjB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE7D,kEAAkE;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEtF,mBAAmB;AACnB,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Document } from '../../types/index.js';
|
|
2
|
+
import type { DocumentVersion, DocumentVersionList } from '../../types/version.js';
|
|
2
3
|
import type { Where, FindOptions, FindResult } from '../../types/filters.js';
|
|
3
4
|
export interface DocumentFilters {
|
|
4
5
|
organizationId: string;
|
|
@@ -75,5 +76,18 @@ export interface DocumentAdapter {
|
|
|
75
76
|
* @returns Map of asset ID to reference count
|
|
76
77
|
*/
|
|
77
78
|
countDocumentReferencesForAssets?(organizationId: string, assetIds: string[]): Promise<Record<string, number>>;
|
|
79
|
+
createDocumentVersion?(data: {
|
|
80
|
+
documentId: string;
|
|
81
|
+
organizationId: string;
|
|
82
|
+
eventType: 'draft' | 'publish';
|
|
83
|
+
data: any;
|
|
84
|
+
createdBy?: string | null;
|
|
85
|
+
}): Promise<DocumentVersion | null>;
|
|
86
|
+
listDocumentVersions?(organizationId: string, documentId: string, options?: {
|
|
87
|
+
limit?: number;
|
|
88
|
+
offset?: number;
|
|
89
|
+
}): Promise<DocumentVersionList>;
|
|
90
|
+
getDocumentVersion?(organizationId: string, documentId: string, versionNumber: number): Promise<DocumentVersion | null>;
|
|
91
|
+
deleteDocumentVersions?(documentId: string, versionIds: string[]): Promise<void>;
|
|
78
92
|
}
|
|
79
93
|
//# sourceMappingURL=document.d.ts.map
|