@aphexcms/cms-core 8.0.0 → 8.1.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.
|
@@ -276,14 +276,13 @@
|
|
|
276
276
|
const COLLAPSED_WIDTH = 60; // Width of collapsed panels
|
|
277
277
|
const TYPES_EXPANDED = 350;
|
|
278
278
|
const DOCS_EXPANDED = 350;
|
|
279
|
-
|
|
280
279
|
let layoutConfig = $derived.by(() => {
|
|
281
280
|
const start = performance.now();
|
|
282
|
-
//
|
|
281
|
+
// Version panel is fixed-width (280px), not a full editor — deduct it
|
|
282
|
+
// from available space instead of counting it as an editor slot.
|
|
283
283
|
const totalEditors =
|
|
284
284
|
(currentView === 'editor' ? 1 : 0) +
|
|
285
|
-
(editorStack.length > 0 ? 1 : 0)
|
|
286
|
-
(showVersionPanel ? 1 : 0);
|
|
285
|
+
(editorStack.length > 0 ? 1 : 0);
|
|
287
286
|
|
|
288
287
|
if (totalEditors === 0) {
|
|
289
288
|
return {
|
|
@@ -546,6 +545,7 @@
|
|
|
546
545
|
const action = url.searchParams.get('action');
|
|
547
546
|
const docId = url.searchParams.get('docId');
|
|
548
547
|
const stackParam = url.searchParams.get('stack');
|
|
548
|
+
const historyParam = url.searchParams.get('history');
|
|
549
549
|
|
|
550
550
|
cmsLogger.debug('[URL Effect]', 'Params:', {
|
|
551
551
|
docType,
|
|
@@ -612,6 +612,18 @@
|
|
|
612
612
|
}
|
|
613
613
|
}
|
|
614
614
|
|
|
615
|
+
// Restore version history panel from URL
|
|
616
|
+
if (historyParam === '1' && !showVersionPanel) {
|
|
617
|
+
showVersionPanel = true;
|
|
618
|
+
versionPanelDocId = stackParam
|
|
619
|
+
? editorStack[editorStack.length - 1]?.documentId ?? docId
|
|
620
|
+
: docId;
|
|
621
|
+
} else if (!historyParam && showVersionPanel) {
|
|
622
|
+
showVersionPanel = false;
|
|
623
|
+
versionPanelDocId = null;
|
|
624
|
+
versionPreviewData = null;
|
|
625
|
+
}
|
|
626
|
+
|
|
615
627
|
if (docType) {
|
|
616
628
|
if (selectedDocumentType !== docType) {
|
|
617
629
|
selectedDocumentType = docType;
|
|
@@ -688,6 +700,7 @@
|
|
|
688
700
|
params.delete('docId');
|
|
689
701
|
params.delete('action');
|
|
690
702
|
params.delete('stack');
|
|
703
|
+
params.delete('history');
|
|
691
704
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
692
705
|
mobileView = 'documents';
|
|
693
706
|
}
|
|
@@ -698,6 +711,7 @@
|
|
|
698
711
|
params.set('action', 'create');
|
|
699
712
|
params.delete('docId');
|
|
700
713
|
params.delete('stack');
|
|
714
|
+
params.delete('history');
|
|
701
715
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
702
716
|
mobileView = 'editor';
|
|
703
717
|
}
|
|
@@ -735,6 +749,7 @@
|
|
|
735
749
|
params.delete('action');
|
|
736
750
|
params.delete('stack');
|
|
737
751
|
params.delete('focus');
|
|
752
|
+
params.delete('history');
|
|
738
753
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
739
754
|
mobileView = 'documents';
|
|
740
755
|
} else {
|
|
@@ -745,33 +760,43 @@
|
|
|
745
760
|
params.delete('action');
|
|
746
761
|
params.delete('stack');
|
|
747
762
|
params.delete('focus');
|
|
763
|
+
params.delete('history');
|
|
748
764
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
749
765
|
mobileView = 'types';
|
|
750
766
|
}
|
|
751
767
|
}
|
|
752
768
|
|
|
753
|
-
// Handle opening reference in new editor panel
|
|
754
769
|
function handleOpenVersionHistory(docId: string) {
|
|
755
770
|
showVersionPanel = true;
|
|
756
771
|
versionPanelDocId = docId;
|
|
772
|
+
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
773
|
+
params.set('history', '1');
|
|
774
|
+
goto(`/admin?${params.toString()}`, { replaceState: true });
|
|
757
775
|
}
|
|
758
776
|
|
|
759
777
|
function handleCloseVersionPanel() {
|
|
760
778
|
showVersionPanel = false;
|
|
761
779
|
versionPanelDocId = null;
|
|
762
780
|
versionPreviewData = null;
|
|
781
|
+
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
782
|
+
params.delete('history');
|
|
783
|
+
goto(`/admin?${params.toString()}`, { replaceState: true });
|
|
763
784
|
}
|
|
764
785
|
|
|
765
786
|
// Close version panel when navigating away
|
|
766
787
|
let prevDocType = $state(selectedDocumentType);
|
|
767
788
|
let prevDocId = $state(editingDocumentId);
|
|
789
|
+
let initialNavDone = $state(false);
|
|
768
790
|
$effect(() => {
|
|
769
791
|
if (selectedDocumentType !== prevDocType || editingDocumentId !== prevDocId) {
|
|
770
792
|
prevDocType = selectedDocumentType;
|
|
771
793
|
prevDocId = editingDocumentId;
|
|
772
|
-
if (showVersionPanel) {
|
|
773
|
-
|
|
794
|
+
if (initialNavDone && showVersionPanel) {
|
|
795
|
+
showVersionPanel = false;
|
|
796
|
+
versionPanelDocId = null;
|
|
797
|
+
versionPreviewData = null;
|
|
774
798
|
}
|
|
799
|
+
initialNavDone = true;
|
|
775
800
|
}
|
|
776
801
|
});
|
|
777
802
|
|
|
@@ -847,6 +872,7 @@
|
|
|
847
872
|
async function handleCloseStackedEditor(_index: number) {
|
|
848
873
|
const params = new SvelteURLSearchParams(page.url.searchParams);
|
|
849
874
|
params.delete('stack');
|
|
875
|
+
params.delete('history');
|
|
850
876
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
851
877
|
activeEditorIndex = 0;
|
|
852
878
|
}
|
|
@@ -995,6 +1021,7 @@
|
|
|
995
1021
|
params.delete('docId');
|
|
996
1022
|
params.delete('action');
|
|
997
1023
|
params.delete('stack');
|
|
1024
|
+
params.delete('history');
|
|
998
1025
|
await goto(`/admin?${params.toString()}`, { replaceState: false });
|
|
999
1026
|
}}
|
|
1000
1027
|
class="text-muted-foreground hover:text-foreground flex items-center gap-2 text-sm"
|
|
@@ -1644,7 +1671,7 @@
|
|
|
1644
1671
|
{#if isExpanded}
|
|
1645
1672
|
<div
|
|
1646
1673
|
class="border-rule h-full flex-1 overflow-x-hidden overflow-y-auto border-l transition-all duration-200"
|
|
1647
|
-
style="min-width: 0;{focusModeOn ? '' : ' max-width: 50%;'}"
|
|
1674
|
+
style="min-width: 0;{focusModeOn || showVersionPanel ? '' : ' max-width: 50%;'}"
|
|
1648
1675
|
>
|
|
1649
1676
|
<DocumentEditor
|
|
1650
1677
|
{schemas}
|
|
@@ -1710,7 +1737,7 @@
|
|
|
1710
1737
|
<!-- Version History Panel -->
|
|
1711
1738
|
{#if showVersionPanel && versionPanelDocId}
|
|
1712
1739
|
<div
|
|
1713
|
-
class="border-rule h-full w-[280px]
|
|
1740
|
+
class="border-rule h-full w-[280px] shrink-0 overflow-y-auto border-l transition-all duration-200"
|
|
1714
1741
|
>
|
|
1715
1742
|
<DocumentVersionPanel
|
|
1716
1743
|
bind:this={versionPanelRef}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminApp.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/components/AdminApp.svelte.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AA4BnE,UAAU,KAAK;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAA;KAAE,CAAC;IACxD,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;
|
|
1
|
+
{"version":3,"file":"AdminApp.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/components/AdminApp.svelte.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AA4BnE,UAAU,KAAK;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAA;KAAE,CAAC;IACxD,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AA6iDF,QAAA,MAAM,QAAQ,2CAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -30,6 +30,10 @@ function walk(value, ids) {
|
|
|
30
30
|
ids.add(obj._ref);
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
+
// Image/file fields store asset refs ({ _type:'image', asset:{_type:'reference', _ref} })
|
|
34
|
+
// that point to the assets table, not documents — skip them.
|
|
35
|
+
if (obj._type === 'image' || obj._type === 'file')
|
|
36
|
+
return;
|
|
33
37
|
for (const key of Object.keys(obj)) {
|
|
34
38
|
if (key.startsWith('_'))
|
|
35
39
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-walk.js","sourceRoot":"","sources":["../../../src/lib/utils/reference-walk.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,+DAA+D;AAC/D,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,4CAA4C;AAI5C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAClC,IAAa,EACb,OAA2B,EAC3B,SAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,GAAgB;IAC7C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO;IACR,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACtC,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACR,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"reference-walk.js","sourceRoot":"","sources":["../../../src/lib/utils/reference-walk.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6DAA6D;AAC7D,+DAA+D;AAC/D,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,4CAA4C;AAI5C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAClC,IAAa,EACb,OAA2B,EAC3B,SAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,GAAgB;IAC7C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO;IACR,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IACtC,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACR,CAAC;IACD,0FAA0F;IAC1F,6DAA6D;IAC7D,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO;IAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;AACF,CAAC"}
|
|
@@ -30,6 +30,10 @@ function walk(value, ids) {
|
|
|
30
30
|
ids.add(obj._ref);
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
+
// Image/file fields store asset refs ({ _type:'image', asset:{_type:'reference', _ref} })
|
|
34
|
+
// that point to the assets table, not documents — skip them.
|
|
35
|
+
if (obj._type === 'image' || obj._type === 'file')
|
|
36
|
+
return;
|
|
33
37
|
for (const key of Object.keys(obj)) {
|
|
34
38
|
if (key.startsWith('_'))
|
|
35
39
|
continue;
|