@alpaca-headless/alpaca-headless-nextjs 1.0.129 → 1.0.253
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/editor.css +435 -49
- package/dist/esm/Editor.js +13 -0
- package/dist/esm/client-components/ClientLink.js +35 -0
- package/dist/{cjs/components → esm/client-components}/LinkEditor.js +22 -19
- package/dist/esm/client-components/MultiComponentEditor.js +22 -0
- package/dist/esm/client-components/index.js +4 -0
- package/dist/esm/components/Error.js +10 -0
- package/dist/{cjs → esm}/components/Image.js +5 -8
- package/dist/esm/components/Link.js +30 -0
- package/dist/esm/components/LinkPreview.js +30 -0
- package/dist/esm/components/LockedFieldIndicator.js +21 -0
- package/dist/esm/components/Picture.js +132 -0
- package/dist/esm/components/PictureEditor.js +77 -0
- package/dist/esm/components/PictureEditorWrapper.js +7 -0
- package/dist/esm/components/Placeholder.js +141 -0
- package/dist/esm/components/RichText.js +29 -0
- package/dist/esm/components/RichTextEditor.js +92 -0
- package/dist/esm/components/RichTextEditorWrapper.js +7 -0
- package/dist/esm/components/Slot.js +6 -0
- package/dist/esm/components/Text.js +28 -0
- package/dist/esm/components/TextEditor.js +78 -0
- package/dist/esm/components/TextEditorWrapper.js +19 -0
- package/dist/esm/components/Translate.js +9 -0
- package/dist/esm/components/TranslateEditor.js +24 -0
- package/dist/esm/components/TranslateEditorWrapper.js +7 -0
- package/dist/esm/components/index.js +7 -0
- package/dist/esm/components/picture-shared.js +26 -0
- package/dist/esm/editor/ComponentInfo.js +12 -0
- package/dist/esm/editor/ConfirmationDialog.js +29 -0
- package/dist/{cjs → esm}/editor/ContentTree.js +61 -46
- package/dist/esm/editor/ContextMenu.js +90 -0
- package/dist/esm/editor/DialogButtons.js +4 -0
- package/dist/esm/editor/DictionaryEditor.js +37 -0
- package/dist/esm/editor/EditFrame.js +115 -0
- package/dist/esm/editor/EditFrameWrapper.js +7 -0
- package/dist/esm/editor/EditorClient.js +889 -0
- package/dist/esm/editor/EditorClientHost.js +15 -0
- package/dist/esm/editor/EditorWarning.js +10 -0
- package/dist/esm/editor/EditorWarnings.js +13 -0
- package/dist/esm/editor/FieldEditorPopup.js +23 -0
- package/dist/esm/editor/FieldList.js +48 -0
- package/dist/esm/editor/FieldListField.js +86 -0
- package/dist/esm/editor/FieldListFieldWithFallbacks.js +79 -0
- package/dist/{cjs → esm}/editor/FloatingToolbar.js +20 -23
- package/dist/esm/editor/ItemInfo.js +14 -0
- package/dist/esm/editor/LinkEditorDialog.js +61 -0
- package/dist/esm/editor/MainLayout.js +18 -0
- package/dist/esm/editor/MediaSelector.js +85 -0
- package/dist/esm/editor/Outline.js +82 -0
- package/dist/esm/editor/PageViewer.js +41 -0
- package/dist/esm/editor/PictureEditorDialog.js +201 -0
- package/dist/esm/editor/PlaceholderDropZone.js +130 -0
- package/dist/esm/editor/PlaceholderDropZoneHost.js +7 -0
- package/dist/esm/editor/PreviewClient.js +6 -0
- package/dist/esm/editor/PreviewClientHost.js +7 -0
- package/dist/esm/editor/PreviewPanel.js +7 -0
- package/dist/esm/editor/PublishDialog.js +15 -0
- package/dist/esm/editor/Terminal.js +55 -0
- package/dist/esm/editor/ai/AiPopup.js +28 -0
- package/dist/esm/editor/ai/AiResponseMessage.js +20 -0
- package/dist/esm/editor/ai/AiTerminal.js +216 -0
- package/dist/esm/editor/ai/AiToolCall.js +15 -0
- package/dist/esm/editor/ai/EditorAiTerminal.js +5 -0
- package/dist/esm/editor/commands/commands.js +1 -0
- package/dist/esm/editor/commands/componentCommands.js +287 -0
- package/dist/esm/editor/commands/createVersionCommand.js +26 -0
- package/dist/esm/editor/commands/undo.js +22 -0
- package/dist/esm/editor/component-designer/ComponentDesigner.js +7 -0
- package/dist/esm/editor/component-designer/ComponentDesignerAiTerminal.js +5 -0
- package/dist/esm/editor/component-designer/ComponentDesignerMenu.js +39 -0
- package/dist/esm/editor/component-designer/ComponentPreview.js +20 -0
- package/dist/esm/editor/component-designer/ComponentRenderingEditor.js +38 -0
- package/dist/esm/editor/component-designer/ComponentSelectionTree.js +56 -0
- package/dist/esm/editor/component-designer/componentDesignerContext.js +22 -0
- package/dist/esm/editor/componentTreeHelper.js +20 -0
- package/dist/esm/editor/config/config.js +327 -0
- package/dist/esm/editor/config/types.js +1 -0
- package/dist/esm/editor/editContext.js +11 -0
- package/dist/esm/editor/editor-warnings/ItemLocked.js +40 -0
- package/dist/esm/editor/editor-warnings/ValidationErrors.js +22 -0
- package/dist/esm/editor/fieldTypes/CheckboxEditor.js +21 -0
- package/dist/esm/editor/fieldTypes/DropLinkEditor.js +50 -0
- package/dist/esm/editor/fieldTypes/InternalLinkFieldEditor.js +41 -0
- package/dist/{cjs → esm}/editor/fieldTypes/LinkFieldEditor.js +14 -16
- package/dist/esm/editor/fieldTypes/MultiLineText.js +25 -0
- package/dist/esm/editor/fieldTypes/PictureFieldEditor.js +33 -0
- package/dist/esm/editor/fieldTypes/RawEditor.js +26 -0
- package/dist/esm/editor/fieldTypes/RichTextEditor.js +7 -0
- package/dist/esm/editor/fieldTypes/RichTextEditorComponent.js +46 -0
- package/dist/esm/editor/fieldTypes/SingleLineText.js +23 -0
- package/dist/esm/editor/fieldTypes/TreeListEditor.js +57 -0
- package/dist/esm/editor/itemCommands.js +27 -0
- package/dist/esm/editor/menubar/BrowseHistory.js +39 -0
- package/dist/esm/editor/menubar/ItemLanguageVersion.js +20 -0
- package/dist/esm/editor/menubar/LanguageSelector.js +18 -0
- package/dist/esm/editor/menubar/Menu.js +105 -0
- package/dist/esm/editor/menubar/PageViewerControls.js +66 -0
- package/dist/esm/editor/menubar/VersionSelector.js +18 -0
- package/dist/esm/editor/previewContext.js +5 -0
- package/dist/esm/editor/services/aiService.js +20 -0
- package/dist/esm/editor/services/componentDesignerService.js +23 -0
- package/dist/esm/editor/services/contentService.js +56 -0
- package/dist/esm/editor/services/editService.js +394 -0
- package/dist/esm/editor/services/serviceHelper.js +45 -0
- package/dist/esm/editor/sidebar/ComponentPalette.js +42 -0
- package/dist/esm/editor/sidebar/ComponentTree.js +237 -0
- package/dist/esm/editor/sidebar/Debug.js +46 -0
- package/dist/esm/editor/sidebar/EditHistory.js +66 -0
- package/dist/esm/editor/sidebar/EditorForm.js +24 -0
- package/dist/esm/editor/sidebar/GraphQL.js +85 -0
- package/dist/esm/editor/sidebar/Insert.js +7 -0
- package/dist/esm/editor/sidebar/MainContentTree.js +38 -0
- package/dist/esm/editor/sidebar/Sessions.js +11 -0
- package/dist/esm/editor/sidebar/Sidebar.js +13 -0
- package/dist/esm/editor/sidebar/SidebarView.js +73 -0
- package/dist/esm/editor/sidebar/Workbox.js +77 -0
- package/dist/esm/editor/ui/CopyToClipboardButton.js +14 -0
- package/dist/esm/editor/ui/Icons.js +19 -0
- package/dist/esm/editor/ui/ItemNameDialog.js +33 -0
- package/dist/esm/editor/ui/Section.js +8 -0
- package/dist/esm/editor/utils/insertOptions.js +39 -0
- package/dist/esm/editor/utils.js +71 -0
- package/dist/esm/editor/views/ItemEditor.js +18 -0
- package/dist/esm/fieldTypes.js +1 -0
- package/dist/esm/graphQL.js +50 -0
- package/dist/esm/graphQLTypes.js +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/{cjs → esm}/loadRouteData.js +19 -37
- package/dist/{cjs → esm}/mediaProtection.js +4 -11
- package/dist/esm/middleware/handleRequest.js +45 -0
- package/dist/esm/middleware/index.js +1 -0
- package/dist/esm/public.js +10 -0
- package/dist/esm/renderContext.js +49 -0
- package/dist/esm/renderings.js +87 -0
- package/dist/esm/servertypes.js +1 -0
- package/dist/esm/translate.js +7 -0
- package/dist/primereact/resources/themes/arya-blue/theme.css +854 -790
- package/dist/primereact/resources/themes/arya-green/theme.css +854 -790
- package/dist/primereact/resources/themes/arya-orange/theme.css +854 -790
- package/dist/primereact/resources/themes/arya-purple/theme.css +854 -790
- package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +678 -615
- package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +678 -615
- package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +679 -616
- package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +679 -616
- package/dist/primereact/resources/themes/fluent-light/theme.css +686 -638
- package/dist/primereact/resources/themes/lara-dark-amber/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-blue/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-green/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-pink/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-purple/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-dark-teal/theme.css +679 -630
- package/dist/primereact/resources/themes/lara-light-amber/theme.css +776 -725
- package/dist/primereact/resources/themes/lara-light-blue/theme.css +1011 -960
- package/dist/primereact/resources/themes/lara-light-cyan/theme.css +776 -725
- package/dist/primereact/resources/themes/lara-light-green/theme.css +820 -769
- package/dist/primereact/resources/themes/lara-light-indigo/theme.css +1016 -965
- package/dist/primereact/resources/themes/lara-light-pink/theme.css +776 -725
- package/dist/primereact/resources/themes/lara-light-purple/theme.css +1016 -965
- package/dist/primereact/resources/themes/lara-light-teal/theme.css +776 -725
- package/dist/primereact/resources/themes/luna-amber/theme.css +950 -887
- package/dist/primereact/resources/themes/luna-blue/theme.css +950 -887
- package/dist/primereact/resources/themes/luna-green/theme.css +950 -887
- package/dist/primereact/resources/themes/luna-pink/theme.css +950 -887
- package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +918 -950
- package/dist/primereact/resources/themes/md-dark-indigo/theme.css +918 -950
- package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +878 -910
- package/dist/primereact/resources/themes/md-light-indigo/theme.css +878 -910
- package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +918 -950
- package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +918 -950
- package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +878 -910
- package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +878 -910
- package/dist/primereact/resources/themes/mira/theme.css +1562 -1532
- package/dist/primereact/resources/themes/nano/theme.css +707 -641
- package/dist/primereact/resources/themes/nova/theme.css +705 -643
- package/dist/primereact/resources/themes/nova-accent/theme.css +701 -636
- package/dist/primereact/resources/themes/nova-alt/theme.css +705 -643
- package/dist/primereact/resources/themes/rhea/theme.css +876 -811
- package/dist/primereact/resources/themes/saga-blue/theme.css +896 -832
- package/dist/primereact/resources/themes/saga-green/theme.css +896 -832
- package/dist/primereact/resources/themes/saga-orange/theme.css +896 -832
- package/dist/primereact/resources/themes/saga-purple/theme.css +896 -832
- package/dist/primereact/resources/themes/soho-dark/theme.css +701 -643
- package/dist/primereact/resources/themes/soho-light/theme.css +690 -634
- package/dist/primereact/resources/themes/tailwind-light/theme.css +1370 -1306
- package/dist/primereact/resources/themes/vela-blue/theme.css +862 -798
- package/dist/primereact/resources/themes/vela-green/theme.css +862 -798
- package/dist/primereact/resources/themes/vela-orange/theme.css +862 -798
- package/dist/primereact/resources/themes/vela-purple/theme.css +862 -798
- package/dist/primereact/resources/themes/viva-dark/theme.css +655 -612
- package/dist/primereact/resources/themes/viva-light/theme.css +737 -694
- package/package.json +26 -22
- package/types/Editor.d.ts +9 -0
- package/types/{components → client-components}/LinkEditor.d.ts +1 -1
- package/types/client-components/MultiComponentEditor.d.ts +4 -2
- package/types/client-components/index.d.ts +3 -2
- package/types/components/Image.d.ts +3 -0
- package/types/components/Link.d.ts +4 -2
- package/types/components/LinkPreview.d.ts +6 -0
- package/types/components/LockedFieldIndicator.d.ts +6 -0
- package/types/components/Picture.d.ts +6 -7
- package/types/components/PictureEditorWrapper.d.ts +3 -0
- package/types/components/Placeholder.d.ts +12 -14
- package/types/components/RichText.d.ts +5 -2
- package/types/components/RichTextEditor.d.ts +3 -290
- package/types/components/RichTextEditorWrapper.d.ts +2 -0
- package/types/components/Slot.d.ts +5 -2
- package/types/components/Text.d.ts +5 -2
- package/types/components/TextEditor.d.ts +3 -290
- package/types/components/TextEditorWrapper.d.ts +4 -0
- package/types/components/Translate.d.ts +4 -1
- package/types/components/TranslateEditorWrapper.d.ts +3 -0
- package/types/components/picture-shared.d.ts +16 -0
- package/types/editor/ComponentInfo.d.ts +1 -1
- package/types/editor/ContentTree.d.ts +4 -3
- package/types/editor/ContextMenu.d.ts +14 -0
- package/types/editor/DictionaryEditor.d.ts +1 -4
- package/types/editor/EditFrameWrapper.d.ts +6 -0
- package/types/editor/EditorClient.d.ts +18 -7
- package/types/editor/EditorClientHost.d.ts +5 -6
- package/types/editor/EditorWarning.d.ts +6 -0
- package/types/editor/EditorWarnings.d.ts +9 -0
- package/types/editor/FieldEditorPopup.d.ts +10 -0
- package/types/editor/FieldList.d.ts +6 -2
- package/types/editor/FieldListField.d.ts +8 -2
- package/types/editor/FieldListFieldWithFallbacks.d.ts +8 -0
- package/types/editor/ItemInfo.d.ts +1 -1
- package/types/editor/Outline.d.ts +11 -0
- package/types/editor/PageViewer.d.ts +1 -0
- package/types/editor/PictureEditorDialog.d.ts +4 -2
- package/types/editor/PlaceholderDropZone.d.ts +3 -2
- package/types/editor/PlaceholderDropZoneHost.d.ts +3 -2
- package/types/editor/PreviewClient.d.ts +5 -0
- package/types/editor/PreviewClientHost.d.ts +4 -0
- package/types/editor/PreviewPanel.d.ts +1 -0
- package/types/editor/PublishDialog.d.ts +7 -0
- package/types/editor/Terminal.d.ts +6 -2
- package/types/editor/{AiPopup.d.ts → ai/AiPopup.d.ts} +2 -3
- package/types/editor/ai/AiResponseMessage.d.ts +7 -0
- package/types/editor/ai/AiTerminal.d.ts +4 -0
- package/types/editor/ai/AiToolCall.d.ts +9 -0
- package/types/editor/ai/EditorAiTerminal.d.ts +4 -0
- package/types/editor/commands/commands.d.ts +21 -0
- package/types/editor/commands/componentCommands.d.ts +5 -0
- package/types/editor/commands/createVersionCommand.d.ts +2 -0
- package/types/editor/commands/undo.d.ts +15 -0
- package/types/editor/component-designer/ComponentDesigner.d.ts +1 -0
- package/types/editor/component-designer/ComponentDesignerAiTerminal.d.ts +1 -0
- package/types/editor/component-designer/ComponentDesignerMenu.d.ts +1 -0
- package/types/editor/component-designer/ComponentPreview.d.ts +1 -0
- package/types/editor/component-designer/ComponentRenderingEditor.d.ts +2 -0
- package/types/editor/component-designer/ComponentSelectionTree.d.ts +1 -0
- package/types/editor/component-designer/componentDesignerContext.d.ts +14 -0
- package/types/editor/componentTreeHelper.d.ts +2 -1
- package/types/editor/config/config.d.ts +2 -0
- package/types/editor/config/types.d.ts +66 -0
- package/types/editor/editContext.d.ts +72 -93
- package/types/editor/editor-warnings/ItemLocked.d.ts +2 -0
- package/types/editor/editor-warnings/ValidationErrors.d.ts +2 -0
- package/types/editor/fieldTypes/CheckboxEditor.d.ts +3 -2
- package/types/editor/fieldTypes/DropLinkEditor.d.ts +5 -0
- package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +3 -2
- package/types/editor/fieldTypes/LinkFieldEditor.d.ts +3 -2
- package/types/editor/fieldTypes/MultiLineText.d.ts +3 -2
- package/types/editor/fieldTypes/PictureFieldEditor.d.ts +2 -1
- package/types/editor/fieldTypes/RawEditor.d.ts +5 -0
- package/types/editor/fieldTypes/RichTextEditor.d.ts +4 -3
- package/types/editor/fieldTypes/RichTextEditorComponent.d.ts +5 -0
- package/types/editor/fieldTypes/SingleLineText.d.ts +3 -2
- package/types/editor/fieldTypes/TreeListEditor.d.ts +2 -1
- package/types/editor/itemCommands.d.ts +3 -0
- package/types/editor/menubar/BrowseHistory.d.ts +4 -0
- package/types/editor/menubar/ItemLanguageVersion.d.ts +1 -0
- package/types/editor/menubar/LanguageSelector.d.ts +5 -0
- package/types/editor/menubar/Menu.d.ts +1 -0
- package/types/editor/menubar/PageViewerControls.d.ts +1 -0
- package/types/editor/menubar/VersionSelector.d.ts +5 -0
- package/types/editor/previewContext.d.ts +4 -0
- package/types/editor/services/aiService.d.ts +8 -0
- package/types/editor/services/componentDesignerService.d.ts +2 -0
- package/types/editor/{contentService.d.ts → services/contentService.d.ts} +2 -3
- package/types/editor/services/editService.d.ts +23 -0
- package/types/editor/services/serviceHelper.d.ts +7 -0
- package/types/editor/sidebar/ComponentPalette.d.ts +1 -0
- package/types/editor/sidebar/ComponentTree.d.ts +1 -0
- package/types/editor/sidebar/Debug.d.ts +1 -0
- package/types/editor/sidebar/EditHistory.d.ts +1 -0
- package/types/editor/sidebar/EditorForm.d.ts +1 -0
- package/types/editor/sidebar/GraphQL.d.ts +1 -0
- package/types/editor/sidebar/Insert.d.ts +1 -0
- package/types/editor/sidebar/MainContentTree.d.ts +3 -0
- package/types/editor/sidebar/Sessions.d.ts +1 -0
- package/types/editor/sidebar/Sidebar.d.ts +4 -0
- package/types/editor/sidebar/SidebarView.d.ts +8 -0
- package/types/editor/sidebar/Workbox.d.ts +1 -0
- package/types/editor/ui/CopyToClipboardButton.d.ts +3 -0
- package/types/editor/ui/Icons.d.ts +16 -0
- package/types/editor/{ItemNameDialog.d.ts → ui/ItemNameDialog.d.ts} +1 -0
- package/types/editor/utils/insertOptions.d.ts +3 -0
- package/types/editor/utils.d.ts +8 -0
- package/types/editor/views/ItemEditor.d.ts +1 -0
- package/types/fieldTypes.d.ts +39 -11
- package/types/graphQL.d.ts +12 -0
- package/types/index.d.ts +7 -4
- package/types/loadRouteData.d.ts +8 -85
- package/types/middleware/handleRequest.d.ts +5 -0
- package/types/middleware/index.d.ts +1 -1
- package/types/public.d.ts +12 -0
- package/types/renderContext.d.ts +41 -0
- package/types/renderings.d.ts +7 -0
- package/types/servertypes.d.ts +308 -0
- package/types/translate.d.ts +2 -0
- package/dist/cjs/alpacaContext.js +0 -12
- package/dist/cjs/client-components/ClientLink.js +0 -36
- package/dist/cjs/client-components/MultiComponentEditor.js +0 -26
- package/dist/cjs/client-components/index.js +0 -19
- package/dist/cjs/components/Error.js +0 -15
- package/dist/cjs/components/Link.js +0 -36
- package/dist/cjs/components/Picture.js +0 -124
- package/dist/cjs/components/PictureEditor.js +0 -49
- package/dist/cjs/components/Placeholder.js +0 -118
- package/dist/cjs/components/RichText.js +0 -47
- package/dist/cjs/components/RichTextEditor.js +0 -94
- package/dist/cjs/components/Slot.js +0 -8
- package/dist/cjs/components/Text.js +0 -46
- package/dist/cjs/components/TextEditor.js +0 -77
- package/dist/cjs/components/Translate.js +0 -14
- package/dist/cjs/components/TranslateEditor.js +0 -28
- package/dist/cjs/components/index.js +0 -23
- package/dist/cjs/editor/AiPopup.js +0 -33
- package/dist/cjs/editor/AiTerminal.js +0 -185
- package/dist/cjs/editor/ComponentInfo.js +0 -15
- package/dist/cjs/editor/ComponentPalette.js +0 -23
- package/dist/cjs/editor/ComponentTree.js +0 -217
- package/dist/cjs/editor/ConfirmationDialog.js +0 -31
- package/dist/cjs/editor/Debug.js +0 -26
- package/dist/cjs/editor/DialogButtons.js +0 -7
- package/dist/cjs/editor/DictionaryEditor.js +0 -41
- package/dist/cjs/editor/EditFrame.js +0 -129
- package/dist/cjs/editor/EditHistory.js +0 -43
- package/dist/cjs/editor/Editor.js +0 -27
- package/dist/cjs/editor/EditorClient.js +0 -753
- package/dist/cjs/editor/EditorClientHost.js +0 -37
- package/dist/cjs/editor/FieldList.js +0 -51
- package/dist/cjs/editor/FieldListField.js +0 -75
- package/dist/cjs/editor/GraphQL.js +0 -87
- package/dist/cjs/editor/ItemEditor.js +0 -9
- package/dist/cjs/editor/ItemInfo.js +0 -17
- package/dist/cjs/editor/ItemNameDialog.js +0 -37
- package/dist/cjs/editor/LanguageSelector.js +0 -21
- package/dist/cjs/editor/LinkEditorDialog.js +0 -67
- package/dist/cjs/editor/MainLayout.js +0 -24
- package/dist/cjs/editor/MediaSelector.js +0 -92
- package/dist/cjs/editor/PictureEditorDialog.js +0 -93
- package/dist/cjs/editor/PlaceholderDropZone.js +0 -93
- package/dist/cjs/editor/PlaceholderDropZoneHost.js +0 -37
- package/dist/cjs/editor/SidebarTabs.js +0 -47
- package/dist/cjs/editor/Terminal.js +0 -61
- package/dist/cjs/editor/Utils.js +0 -43
- package/dist/cjs/editor/VersionSelector.js +0 -21
- package/dist/cjs/editor/Workbox.js +0 -41
- package/dist/cjs/editor/componentCommands.js +0 -141
- package/dist/cjs/editor/componentTreeHelper.js +0 -18
- package/dist/cjs/editor/contentService.js +0 -80
- package/dist/cjs/editor/editContext.js +0 -40
- package/dist/cjs/editor/editService.js +0 -334
- package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +0 -21
- package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +0 -46
- package/dist/cjs/editor/fieldTypes/MultiLineText.js +0 -25
- package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +0 -19
- package/dist/cjs/editor/fieldTypes/RichTextEditor.js +0 -24
- package/dist/cjs/editor/fieldTypes/SingleLineText.js +0 -25
- package/dist/cjs/editor/fieldTypes/TreeListEditor.js +0 -59
- package/dist/cjs/editor/index.js +0 -18
- package/dist/cjs/editor/ui/Section.js +0 -8
- package/dist/cjs/fieldTypes.js +0 -2
- package/dist/cjs/graphQLTypes.js +0 -2
- package/dist/cjs/index.js +0 -36
- package/dist/cjs/layoutData.js +0 -2
- package/dist/cjs/middleware/authorization.js +0 -52
- package/dist/cjs/middleware/index.js +0 -17
- package/types/alpacaContext.d.ts +0 -25
- package/types/editor/AiTerminal.d.ts +0 -5
- package/types/editor/ComponentPalette.d.ts +0 -6
- package/types/editor/ComponentTree.d.ts +0 -5
- package/types/editor/Debug.d.ts +0 -6
- package/types/editor/EditHistory.d.ts +0 -4
- package/types/editor/Editor.d.ts +0 -6
- package/types/editor/GraphQL.d.ts +0 -5
- package/types/editor/ItemEditor.d.ts +0 -4
- package/types/editor/LanguageSelector.d.ts +0 -5
- package/types/editor/SidebarTabs.d.ts +0 -8
- package/types/editor/Utils.d.ts +0 -3
- package/types/editor/VersionSelector.d.ts +0 -5
- package/types/editor/Workbox.d.ts +0 -6
- package/types/editor/componentCommands.d.ts +0 -4
- package/types/editor/editService.d.ts +0 -20
- package/types/editor/index.d.ts +0 -2
- package/types/layoutData.d.ts +0 -92
- package/types/middleware/authorization.d.ts +0 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import dynamic from "next/dynamic";
|
|
4
|
+
import { configuration } from "./config/config";
|
|
5
|
+
const EditorClient = dynamic(() => import("./EditorClient").then((dnd) => dnd.EditorClient), { ssr: false });
|
|
6
|
+
export function EditorClientHost({ context, clientBuilder, children, }) {
|
|
7
|
+
const ClientBuilder = clientBuilder;
|
|
8
|
+
const buildClient = (configuration) => {
|
|
9
|
+
return (_jsx(EditorClient, { context: context, configuration: configuration, children: _jsx(_Fragment, { children: children }) }));
|
|
10
|
+
};
|
|
11
|
+
if (!ClientBuilder)
|
|
12
|
+
return buildClient(configuration);
|
|
13
|
+
else
|
|
14
|
+
return (_jsx(ClientBuilder, { configuration: configuration, buildClient: buildClient }));
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "primereact/utils";
|
|
3
|
+
export function EditorWarning({ title, severity = "warning", children, }) {
|
|
4
|
+
const background = severity === "info"
|
|
5
|
+
? "a-bg-blue-100"
|
|
6
|
+
: severity === "error"
|
|
7
|
+
? "a-bg-red-100"
|
|
8
|
+
: "a-bg-yellow-100";
|
|
9
|
+
return (_jsxs("div", { className: classNames(background, "a-p-2 a-text-sm a-text-gray-500 a-border-b a-border-yellow-300"), children: [_jsx("div", { className: "a-font-bold", children: title }), _jsx("div", { className: "a-text-xs", children: children })] }));
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { useEditContext } from "./editContext";
|
|
4
|
+
export function EditorWarnings({ item: Item, }) {
|
|
5
|
+
var context = useEditContext();
|
|
6
|
+
if (!context)
|
|
7
|
+
return;
|
|
8
|
+
return (_jsx("div", { children: context.configuration.editorWarnings.map((x, i) => React.createElement(x, {
|
|
9
|
+
item: Item,
|
|
10
|
+
key: "warning" + i,
|
|
11
|
+
editContext: context,
|
|
12
|
+
})) }));
|
|
13
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { OverlayPanel } from "primereact/overlaypanel";
|
|
4
|
+
import { forwardRef, useImperativeHandle, useRef, useState, } from "react";
|
|
5
|
+
import { FieldList } from "./FieldList";
|
|
6
|
+
export const FieldEditorPopup = forwardRef((_, ref) => {
|
|
7
|
+
const overlayRef = useRef(null);
|
|
8
|
+
const [fields, setFields] = useState();
|
|
9
|
+
const [sections, setSections] = useState([]);
|
|
10
|
+
useImperativeHandle(ref, () => ({
|
|
11
|
+
show: (fields, sections, ev) => {
|
|
12
|
+
var _a;
|
|
13
|
+
setFields(fields);
|
|
14
|
+
setSections(sections);
|
|
15
|
+
(_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.toggle(ev);
|
|
16
|
+
},
|
|
17
|
+
close: () => {
|
|
18
|
+
var _a;
|
|
19
|
+
(_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.hide();
|
|
20
|
+
},
|
|
21
|
+
}));
|
|
22
|
+
return (_jsx(OverlayPanel, { ref: overlayRef, children: _jsxs("div", { className: "a-w-96 a-h-96 a-flex a-flex-col a-gap-2 a-overflow-auto", onClick: (ev) => ev.stopPropagation(), children: [_jsx("div", { className: "a-flex a-justify-end", children: _jsx("i", { className: "pi pi-times a-cursor-pointer", onClick: () => { var _a; return (_a = overlayRef === null || overlayRef === void 0 ? void 0 : overlayRef.current) === null || _a === void 0 ? void 0 : _a.hide(); } }) }), fields && (_jsx(FieldList, { fields: fields, sections: sections, validators: [] }))] }) }));
|
|
23
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { Section } from "./ui/Section";
|
|
5
|
+
import { useEditContext } from "./editContext";
|
|
6
|
+
import { FieldListFieldWithFallbacks } from "./FieldListFieldWithFallbacks";
|
|
7
|
+
export function FieldList({ fields, sections, validators, filter, simplified, }) {
|
|
8
|
+
const editContext = useEditContext();
|
|
9
|
+
const [liveFields, setLiveFields] = useState();
|
|
10
|
+
if (!editContext)
|
|
11
|
+
return;
|
|
12
|
+
if (!fields)
|
|
13
|
+
return;
|
|
14
|
+
let fieldsArray = Array.isArray(fields)
|
|
15
|
+
? fields
|
|
16
|
+
: Object.values(fields);
|
|
17
|
+
if (filter)
|
|
18
|
+
fieldsArray = fieldsArray.filter(filter);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (!editContext)
|
|
21
|
+
return;
|
|
22
|
+
setLiveFields(fieldsArray.map((x) => x._editor.type === "rich text" || x._editor.type === "text"
|
|
23
|
+
? editContext.getLiveField(x)
|
|
24
|
+
: x));
|
|
25
|
+
}, [fields]);
|
|
26
|
+
if (!liveFields)
|
|
27
|
+
return _jsx(_Fragment, {});
|
|
28
|
+
const sectionsGrouping = liveFields.reduce((acc, value) => {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
// Group initialization
|
|
31
|
+
if (!acc[((_a = value._editor) === null || _a === void 0 ? void 0 : _a.section) || "Default"]) {
|
|
32
|
+
acc[((_b = value._editor) === null || _b === void 0 ? void 0 : _b.section) || "Default"] = [];
|
|
33
|
+
}
|
|
34
|
+
// Grouping
|
|
35
|
+
acc[((_c = value._editor) === null || _c === void 0 ? void 0 : _c.section) || "Default"].push(value);
|
|
36
|
+
return acc;
|
|
37
|
+
}, {});
|
|
38
|
+
const sectionList = Object.values(sectionsGrouping);
|
|
39
|
+
sectionList.sort((a, b) => a[0]._editor.sectionSortOrder - b[0]._editor.sectionSortOrder);
|
|
40
|
+
function getSectionFields(fields) {
|
|
41
|
+
fields.sort((a, b) => a.sortOrder - b.sortOrder);
|
|
42
|
+
return fields.map((field) => (_jsx(FieldListFieldWithFallbacks, { field: field, simplified: simplified, validators: validators.filter((x) => x.fieldId === field.id) }, field.id)));
|
|
43
|
+
}
|
|
44
|
+
return (_jsx("div", { className: "a-h-fill-available", children: sectionList
|
|
45
|
+
.map((x) => { var _a; return (_a = x[0]._editor) === null || _a === void 0 ? void 0 : _a.section; })
|
|
46
|
+
.filter((x) => !sections || sections.includes(x))
|
|
47
|
+
.map((section) => simplified ? (getSectionFields(sectionsGrouping[section])) : (_jsx(Section, { title: section, children: getSectionFields(sectionsGrouping[section]) }, section))) }));
|
|
48
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
|
+
import { Tooltip } from "primereact/tooltip";
|
|
12
|
+
import { useEditContext } from "./editContext";
|
|
13
|
+
import { useRef, useState } from "react";
|
|
14
|
+
import { WizardIcon } from "./ui/Icons";
|
|
15
|
+
import { OverlayPanel } from "primereact/overlaypanel";
|
|
16
|
+
export default function FieldListField({ field, validators, simplified, title, isFocusedField, showFallbackButton, }) {
|
|
17
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
18
|
+
const editContext = useEditContext();
|
|
19
|
+
if (!editContext)
|
|
20
|
+
return;
|
|
21
|
+
const fieldItem = field._editor.descriptor.item;
|
|
22
|
+
const [showRawValue, setShowRawValue] = useState(false);
|
|
23
|
+
const generatorsOverlay = useRef(null);
|
|
24
|
+
const liveField = editContext.getLiveField(field);
|
|
25
|
+
function editButtonClicked(x) {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
editContext === null || editContext === void 0 ? void 0 : editContext.triggerFieldAction(field, x);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
let classNames = " a-flex a-items-stretch";
|
|
31
|
+
if (isFocusedField)
|
|
32
|
+
classNames += " a-focused-field ";
|
|
33
|
+
let validationBarClassNames = undefined;
|
|
34
|
+
if (validators.find((x) => x.result > 1))
|
|
35
|
+
validationBarClassNames = " a-pl-2 a-border-l-4 a-border-red-500";
|
|
36
|
+
const executingAction = editContext.activeFieldActions.find((x) => {
|
|
37
|
+
var _a, _b, _c, _d, _e, _f;
|
|
38
|
+
return x.field.id == field.id &&
|
|
39
|
+
((_b = (_a = x.field._editor) === null || _a === void 0 ? void 0 : _a.descriptor.item) === null || _b === void 0 ? void 0 : _b.id) == fieldItem.id &&
|
|
40
|
+
((_d = (_c = x.field._editor) === null || _c === void 0 ? void 0 : _c.descriptor.item) === null || _d === void 0 ? void 0 : _d.language) == fieldItem.language &&
|
|
41
|
+
((_f = (_e = x.field._editor) === null || _e === void 0 ? void 0 : _e.descriptor.item) === null || _f === void 0 ? void 0 : _f.version) == fieldItem.version;
|
|
42
|
+
});
|
|
43
|
+
if ((executingAction === null || executingAction === void 0 ? void 0 : executingAction.state) == "running")
|
|
44
|
+
classNames += " a-executing-action ";
|
|
45
|
+
const isLocked = (((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.lockedBy) &&
|
|
46
|
+
((_c = (_b = liveField._editor) === null || _b === void 0 ? void 0 : _b.lockedBy) === null || _c === void 0 ? void 0 : _c.sessionId) != editContext.sessionId) ||
|
|
47
|
+
false;
|
|
48
|
+
const isReadOnly = !((_d = field._editor) === null || _d === void 0 ? void 0 : _d.canWrite) || isLocked;
|
|
49
|
+
const renderButtons = () => {
|
|
50
|
+
var _a, _b, _c, _d;
|
|
51
|
+
if (((_b = (_a = field._editor) === null || _a === void 0 ? void 0 : _a.buttons) === null || _b === void 0 ? void 0 : _b.length) || 0 > 0)
|
|
52
|
+
return (_jsxs(_Fragment, { children: [(!executingAction || executingAction.state !== "running") && (_jsx("div", { className: "a-w-4 a-h-4 a-ml-auto a-cursor-pointer", onClick: (e) => {
|
|
53
|
+
var _a;
|
|
54
|
+
(_a = generatorsOverlay.current) === null || _a === void 0 ? void 0 : _a.toggle(e);
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
e.stopPropagation();
|
|
57
|
+
}, children: _jsx(WizardIcon, {}) })), executingAction && executingAction.state === "running" && (_jsxs("div", { className: "a-ml-auto a-text-xs", children: [_jsx("i", { className: "pi pi-spin pi-spinner a-text-xs a-flex a-items-center" }), " ", executingAction === null || executingAction === void 0 ? void 0 : executingAction.actionButton.label] })), _jsx(OverlayPanel, { ref: generatorsOverlay, className: "a-p-1", children: (_d = (_c = field._editor) === null || _c === void 0 ? void 0 : _c.buttons) === null || _d === void 0 ? void 0 : _d.map((x) => (_jsxs("button", { className: "a-text-xs a-p-1 a-block hover:a-text-gray-400", onClick: () => {
|
|
58
|
+
var _a;
|
|
59
|
+
editButtonClicked(x);
|
|
60
|
+
(_a = generatorsOverlay.current) === null || _a === void 0 ? void 0 : _a.hide();
|
|
61
|
+
}, children: [x.icon && _jsx("i", { className: x.icon + " a-mr-2 a-text-xs" }), x.label] }, x.id))) })] }));
|
|
62
|
+
return null;
|
|
63
|
+
};
|
|
64
|
+
return (_jsxs("div", { className: classNames, children: [validationBarClassNames && (_jsxs(_Fragment, { children: [_jsx("div", { className: validationBarClassNames, id: "validation_" + field.id }), _jsx(Tooltip, { target: "#validation_" + field.id, children: validators
|
|
65
|
+
.filter((x) => x.result > 1)
|
|
66
|
+
.map((x) => (_jsx("div", { children: x.message }, x.validator))) })] })), _jsxs("div", { className: "a-flex-1", children: [_jsxs("div", { className: "a-flex a-justify-between", children: [_jsx("label", { className: "a-font-bold a-block a-mb-1 a-text-sm", children: title || ((_e = field._editor) === null || _e === void 0 ? void 0 : _e.name) }), _jsxs("div", { className: "a-flex a-gap-2", children: [renderButtons(), isLocked && (_jsxs("div", { className: "a-text-xs a-bg-pink-400 a-text-white a-p-1", children: ["locked by ", (_g = (_f = liveField._editor) === null || _f === void 0 ? void 0 : _f.lockedBy) === null || _g === void 0 ? void 0 : _g.user.name] }))] })] }), isFocusedField && (_jsxs("div", { className: "a-flex a-gap-3 a-gap-y-1 a-flex-wrap", children: [!((_h = field._editor) === null || _h === void 0 ? void 0 : _h.isFallback) &&
|
|
67
|
+
((_j = liveField._editor) === null || _j === void 0 ? void 0 : _j.rawValue) !== null ? (_jsxs("button", { className: "a-text-xs a-p-0 ", onClick: () => {
|
|
68
|
+
editContext === null || editContext === void 0 ? void 0 : editContext.editField({ field: field, rawValue: null });
|
|
69
|
+
}, children: ["Reset", " "] })) : (showFallbackButton), !simplified && (_jsxs("button", { className: "a-text-xs a-p-0", onClick: () => {
|
|
70
|
+
setShowRawValue(!showRawValue);
|
|
71
|
+
}, children: [_jsx("i", { className: "a-text-xs pi " +
|
|
72
|
+
(showRawValue ? "pi-check-square" : "pi-stop") }), " ", "Raw"] }))] })), (executingAction === null || executingAction === void 0 ? void 0 : executingAction.message) && (_jsx("div", { className: "a-text-xs a-p-0 a-mt-1 a-mb-1", children: executingAction === null || executingAction === void 0 ? void 0 : executingAction.message })), _jsx("div", { className: "a-text-xs a-p-0 a-mt-1", children: getFieldEditor(liveField, showRawValue, isReadOnly, editContext.configuration) })] })] }, field.id +
|
|
73
|
+
"_" +
|
|
74
|
+
fieldItem.id +
|
|
75
|
+
"_" +
|
|
76
|
+
fieldItem.language +
|
|
77
|
+
"_" +
|
|
78
|
+
fieldItem.version));
|
|
79
|
+
}
|
|
80
|
+
function getFieldEditor(field, showRawValue, isReadOnly, configuration) {
|
|
81
|
+
let fieldType = showRawValue ? "raw" : field._editor.type;
|
|
82
|
+
var typeConfig = configuration.fieldTypes[fieldType];
|
|
83
|
+
if (!typeConfig)
|
|
84
|
+
typeConfig = configuration.fieldTypes["single-line text"];
|
|
85
|
+
return _jsx(typeConfig.editor, { field: field, readOnly: isReadOnly });
|
|
86
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
|
+
import { useEffect, useRef, useState } from "react";
|
|
12
|
+
import FieldListField from "./FieldListField";
|
|
13
|
+
import { useEditContext } from "./editContext";
|
|
14
|
+
import { loadFallbackChain } from "./services/editService";
|
|
15
|
+
export function FieldListFieldWithFallbacks({ field, validators, simplified, title, }) {
|
|
16
|
+
var _a;
|
|
17
|
+
const [showFallback, setShowFallback] = useState(false);
|
|
18
|
+
const [fallbackChain, setFallbackChain] = useState();
|
|
19
|
+
const ref = useRef(null);
|
|
20
|
+
const editContext = useEditContext();
|
|
21
|
+
if (!editContext)
|
|
22
|
+
return;
|
|
23
|
+
const liveField = editContext.getLiveField(field);
|
|
24
|
+
function isEditFieldOp(op) {
|
|
25
|
+
return (op === null || op === void 0 ? void 0 : op.type) === "edit-field";
|
|
26
|
+
}
|
|
27
|
+
function loadFallback(init) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const chain = yield loadFallbackChain(field._editor.descriptor);
|
|
30
|
+
const liveChain = chain.map((x) => editContext.getLiveField(x));
|
|
31
|
+
const currentEditOp = editContext.currentEditOperation;
|
|
32
|
+
liveChain.forEach((x, i) => {
|
|
33
|
+
if (init ||
|
|
34
|
+
!isEditFieldOp(currentEditOp) ||
|
|
35
|
+
currentEditOp.fieldId !== x.id ||
|
|
36
|
+
currentEditOp.item.id !== x._editor.descriptor.item.id ||
|
|
37
|
+
currentEditOp.item.language !== x._editor.descriptor.item.language) {
|
|
38
|
+
x._editor = chain[i]._editor;
|
|
39
|
+
x.value = chain[i].value;
|
|
40
|
+
x.jsonValue = chain[i].jsonValue;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
setFallbackChain(liveChain);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const fieldItem = field._editor.descriptor.item;
|
|
47
|
+
const isFocusedField = ((_a = editContext === null || editContext === void 0 ? void 0 : editContext.focusedField) === null || _a === void 0 ? void 0 : _a.fieldId) === field.id &&
|
|
48
|
+
editContext.focusedField.item.id === fieldItem.id &&
|
|
49
|
+
editContext.focusedField.item.language === fieldItem.language;
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
var _a;
|
|
52
|
+
if (ref.current && isFocusedField) {
|
|
53
|
+
ref.current.scrollIntoView({
|
|
54
|
+
behavior: "smooth",
|
|
55
|
+
block: "center",
|
|
56
|
+
inline: "center",
|
|
57
|
+
});
|
|
58
|
+
if ((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.isFallback) {
|
|
59
|
+
loadFallback(true);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, [editContext.focusedField]);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
var _a;
|
|
65
|
+
if (((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.isFallback) && isFocusedField) {
|
|
66
|
+
loadFallback(false);
|
|
67
|
+
}
|
|
68
|
+
}, [editContext.editOperationExecutedFlag, editContext.refreshCompletedFlag]);
|
|
69
|
+
const showFallbackButton = (_jsxs("button", { className: "a-text-xs a-p-0", onClick: () => setShowFallback(!showFallback), children: [_jsx("i", { className: "a-text-xs pi " + (showFallback ? "pi-check-square" : "pi-stop") }), " ", "Fallback"] }));
|
|
70
|
+
return (_jsxs("div", { ref: ref, className: "[&:not(:first-child)]:a-mt-5", onClick: () => {
|
|
71
|
+
var _a;
|
|
72
|
+
editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
|
|
73
|
+
}, children: [_jsx(FieldListField, { field: field, validators: validators, simplified: simplified, title: title, isFocusedField: isFocusedField, showFallbackButton: showFallbackButton }), liveField._editor.isFallback && isFocusedField && showFallback && (_jsx(_Fragment, { children: fallbackChain &&
|
|
74
|
+
fallbackChain.slice(1).map((x, i) => {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
return (_jsxs("div", { className: "a-ml-3", children: [_jsx("div", { className: "a-text-center", children: _jsx("i", { className: "pi pi-arrow-up a-text-xl a-font-bold a-text-blue-300 a-fallback-arrow-animation a-relative a-top-3" }) }), _jsx(FieldListField, { field: x, validators: validators, simplified: true, isFocusedField: true, title: _jsxs("div", { className: "a-text-xs", children: [(_a = x._editor) === null || _a === void 0 ? void 0 : _a.name, " (", x._editor.descriptor.item.language, ")", x._editor.descriptor.item.id !=
|
|
77
|
+
((_b = liveField._editor) === null || _b === void 0 ? void 0 : _b.descriptor.item.id) && (_jsxs("span", { className: "a-text-gray-400", children: ["- Item: ", x._editor.descriptor.item.id] }))] }) }, i)] }, i));
|
|
78
|
+
}) }))] }, field.id));
|
|
79
|
+
}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const [
|
|
7
|
-
const [
|
|
8
|
-
const [
|
|
9
|
-
const [
|
|
10
|
-
|
|
11
|
-
const [hidden, setHidden] = (0, react_1.useState)(false);
|
|
12
|
-
(0, react_1.useEffect)(() => {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
export default function FloatingToolbar({ children, onPin, height, width, }) {
|
|
4
|
+
const [position, setPosition] = useState({ x: 0, y: 95 });
|
|
5
|
+
const [size, setSize] = useState({ width: 400, height: 70 });
|
|
6
|
+
const [dragging, setDragging] = useState(false);
|
|
7
|
+
const [resizing, setResizing] = useState(false);
|
|
8
|
+
const [offset, setOffset] = useState({ x: 0, y: 0 });
|
|
9
|
+
const [hidden, setHidden] = useState(false);
|
|
10
|
+
useEffect(() => {
|
|
13
11
|
console.log("WIDTH: ", width, "Height: ", height);
|
|
14
12
|
setSize({ width: width || 400, height: height || 70 });
|
|
15
13
|
}, []);
|
|
16
|
-
const handleMouseDown =
|
|
14
|
+
const handleMouseDown = useCallback((e) => {
|
|
17
15
|
// Start dragging and calculate the offset from the mouse to the sidebar top-left corner
|
|
18
16
|
setDragging(true);
|
|
19
17
|
setOffset({
|
|
@@ -21,7 +19,7 @@ function FloatingToolbar({ children, onPin, height, width, }) {
|
|
|
21
19
|
y: e.clientY - position.y,
|
|
22
20
|
});
|
|
23
21
|
}, [position]);
|
|
24
|
-
const handleMouseMove =
|
|
22
|
+
const handleMouseMove = useCallback((e) => {
|
|
25
23
|
if (dragging) {
|
|
26
24
|
// Update the position state based on mouse movement, adjusted by the initial offset
|
|
27
25
|
setPosition({
|
|
@@ -30,11 +28,11 @@ function FloatingToolbar({ children, onPin, height, width, }) {
|
|
|
30
28
|
});
|
|
31
29
|
}
|
|
32
30
|
}, [dragging, offset]);
|
|
33
|
-
const handleMouseUp =
|
|
31
|
+
const handleMouseUp = useCallback(() => {
|
|
34
32
|
// Stop dragging
|
|
35
33
|
setDragging(false);
|
|
36
34
|
}, []);
|
|
37
|
-
const handleResizeMouseDown =
|
|
35
|
+
const handleResizeMouseDown = useCallback((e) => {
|
|
38
36
|
e.preventDefault();
|
|
39
37
|
setResizing(true);
|
|
40
38
|
setOffset({
|
|
@@ -42,7 +40,7 @@ function FloatingToolbar({ children, onPin, height, width, }) {
|
|
|
42
40
|
y: e.clientY,
|
|
43
41
|
});
|
|
44
42
|
}, []);
|
|
45
|
-
const handleResizeMouseMove =
|
|
43
|
+
const handleResizeMouseMove = useCallback((e) => {
|
|
46
44
|
if (resizing) {
|
|
47
45
|
const newWidth = size.width + (e.clientX - offset.x);
|
|
48
46
|
const newHeight = size.height + (e.clientY - offset.y);
|
|
@@ -56,10 +54,10 @@ function FloatingToolbar({ children, onPin, height, width, }) {
|
|
|
56
54
|
});
|
|
57
55
|
}
|
|
58
56
|
}, [resizing, offset, size]);
|
|
59
|
-
const handleResizeMouseUp =
|
|
57
|
+
const handleResizeMouseUp = useCallback(() => {
|
|
60
58
|
setResizing(false);
|
|
61
59
|
}, []);
|
|
62
|
-
|
|
60
|
+
useEffect(() => {
|
|
63
61
|
if (resizing) {
|
|
64
62
|
document.addEventListener("mousemove", handleResizeMouseMove);
|
|
65
63
|
document.addEventListener("mouseup", handleResizeMouseUp);
|
|
@@ -70,7 +68,7 @@ function FloatingToolbar({ children, onPin, height, width, }) {
|
|
|
70
68
|
};
|
|
71
69
|
}, [resizing, handleResizeMouseMove, handleResizeMouseUp]);
|
|
72
70
|
// Add event listeners to the document when the sidebar is being dragged
|
|
73
|
-
|
|
71
|
+
useEffect(() => {
|
|
74
72
|
if (dragging) {
|
|
75
73
|
document.addEventListener("mousemove", handleMouseMove);
|
|
76
74
|
document.addEventListener("mouseup", handleMouseUp);
|
|
@@ -81,12 +79,11 @@ function FloatingToolbar({ children, onPin, height, width, }) {
|
|
|
81
79
|
document.removeEventListener("mouseup", handleMouseUp);
|
|
82
80
|
};
|
|
83
81
|
}, [dragging, handleMouseMove, handleMouseUp]);
|
|
84
|
-
return ((
|
|
82
|
+
return (_jsxs("div", { className: "a-border a-border-gray-200 a-drop-shadow a-z-10 a-flex a-flex-col", onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, style: {
|
|
85
83
|
left: `${position.x}px`,
|
|
86
84
|
top: `${position.y}px`,
|
|
87
85
|
position: "absolute", // Use 'fixed' or 'absolute' depending on your layout needs
|
|
88
86
|
height: `${hidden ? 30 : size.height}px`,
|
|
89
87
|
width: `${size.width}px`,
|
|
90
|
-
}, children: [(
|
|
88
|
+
}, children: [_jsxs("div", { className: "a-bg-gray-100 a-w-full a-flex a-justify-between a-items-between a-p-2 a-text-sm", style: { cursor: "move", userSelect: "none" }, onMouseDown: handleMouseDown, children: ["Toolbar", _jsxs("div", { className: "a-flex a-gap-2", children: [hidden && (_jsx("div", { className: "a-border-2 a-border-gray-800 a-w-4 a-h-4 a-cusor-pointer", onClick: () => setHidden(false) })), !hidden && (_jsx("div", { className: "a-border-b-2 a-border-gray-800 a-w-4 a-h-4 a-cusor-pointer", onClick: () => setHidden(true) })), onPin && (_jsx("i", { className: "pi pi-arrow-down-left a-cursor-pointer", onClick: onPin }))] })] }), _jsx("div", { className: "a-flex-1", children: !hidden && children }), _jsx("div", { className: "a-h-4 a-bg-gray-100" }), _jsx("div", { className: "a-cursor-nwse-resize a-w-4 a-h-4 a-absolute -a-bottom-1 -a-right-2 a-text-gray-500", onMouseDown: handleResizeMouseDown, children: _jsx("i", { className: "pi pi-sort-down -a-rotate-45 a-w-4 a-h-4" }) })] }));
|
|
91
89
|
}
|
|
92
|
-
exports.default = FloatingToolbar;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CopyToClipboardButton } from "./ui/CopyToClipboardButton";
|
|
4
|
+
import { Section } from "./ui/Section";
|
|
5
|
+
export function ItemInfo({ item }) {
|
|
6
|
+
var _a, _b, _c, _d, _e;
|
|
7
|
+
if (!(item === null || item === void 0 ? void 0 : item.fields))
|
|
8
|
+
return;
|
|
9
|
+
function formatRow(label, value) {
|
|
10
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "a-font-bold", children: label }), _jsx("div", { children: value })] }));
|
|
11
|
+
}
|
|
12
|
+
return (_jsxs("div", { children: [_jsx("h2", { className: "a-py-3 a-px-3 a-text-l a-font-bold a-my-2", children: item.name }), _jsx(Section, { title: "Info", children: _jsxs("div", { className: "a-grid a-grid-cols-[min-content_1fr] a-gap-3 a-text-xs", children: [_jsx("div", { className: "a-font-bold", children: "ID:" }), _jsxs("div", { children: [item.id, " ", _jsx(CopyToClipboardButton, { text: item.id })] }), _jsx("div", { className: "a-font-bold", children: "Path:" }), _jsx("div", { children: (_a = item._editor) === null || _a === void 0 ? void 0 : _a.path }), _jsx("div", { className: "a-font-bold", children: "Language:" }), _jsx("div", { children: item.language }), _jsx("div", { className: "a-font-bold", children: "Version:" }), _jsx("div", { children: item.version }), _jsx("div", { className: "a-font-bold", children: "Template:" }), _jsxs("div", { children: [item.templateName, " (", item.templateId, " ", _jsx(CopyToClipboardButton, { text: item.templateId }), ")"] }), ((_b = item._editor) === null || _b === void 0 ? void 0 : _b.masterLanguages) &&
|
|
13
|
+
formatRow("Master languages", (_c = item._editor) === null || _c === void 0 ? void 0 : _c.masterLanguages.join(", ")), ((_d = item._editor) === null || _d === void 0 ? void 0 : _d.translations) && (_jsxs("div", { className: "a-text-xs", children: ["Languages: ", (_e = item._editor.translations) === null || _e === void 0 ? void 0 : _e.join(", ")] }))] }) })] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Dialog } from "primereact/dialog";
|
|
3
|
+
import { TabPanel, TabView } from "primereact/tabview";
|
|
4
|
+
import ContentTree from "./ContentTree";
|
|
5
|
+
import { InputText } from "primereact/inputtext";
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
import { Dropdown } from "primereact/dropdown";
|
|
8
|
+
import { Divider } from "primereact/divider";
|
|
9
|
+
import { Button } from "primereact/button";
|
|
10
|
+
export function LinkEditorDialog({ linkValue, onCancel, onOk, }) {
|
|
11
|
+
const [url, setUrl] = useState();
|
|
12
|
+
const [targetWindow, setTargetWindow] = useState();
|
|
13
|
+
const [customTarget, setCustomTarget] = useState();
|
|
14
|
+
const [queryString, setQueryString] = useState();
|
|
15
|
+
const [activeTabIndex, setActiveTabIndex] = useState();
|
|
16
|
+
const [selectedItemId, setSelectedItemId] = useState("");
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
setUrl(linkValue.url);
|
|
19
|
+
setTargetWindow(linkValue.target);
|
|
20
|
+
if (linkValue.type == "external")
|
|
21
|
+
setActiveTabIndex(1);
|
|
22
|
+
else
|
|
23
|
+
setActiveTabIndex(0);
|
|
24
|
+
if (linkValue.target && linkValue.target != "_blank") {
|
|
25
|
+
setTargetWindow("custom");
|
|
26
|
+
setCustomTarget(linkValue.target);
|
|
27
|
+
}
|
|
28
|
+
if (linkValue.itemId)
|
|
29
|
+
setSelectedItemId(linkValue.itemId);
|
|
30
|
+
if (linkValue.queryString)
|
|
31
|
+
setQueryString(linkValue.queryString);
|
|
32
|
+
}, [linkValue]);
|
|
33
|
+
const targetWindows = [
|
|
34
|
+
{ name: "Active browser", code: "" },
|
|
35
|
+
{ name: "New browser", code: "_blank" },
|
|
36
|
+
{ name: "Custom", code: "custom" },
|
|
37
|
+
];
|
|
38
|
+
function getTargetWindow() {
|
|
39
|
+
if (targetWindow == "custom")
|
|
40
|
+
return customTarget;
|
|
41
|
+
return targetWindow;
|
|
42
|
+
}
|
|
43
|
+
return (_jsx(Dialog, { style: { width: "50%", height: "50%" }, onHide: onCancel, header: "Select link target", visible: true, children: _jsxs("div", { className: "a-flex a-flex-col a-h-full", children: [_jsxs(TabView, { onTabChange: (e) => setActiveTabIndex(e.index), activeIndex: activeTabIndex, className: "a-flex-1 a-mb-3", pt: { panelContainer: { className: "a-h-full" } }, children: [_jsx(TabPanel, { header: "Internal", className: "a-relative a-h-[calc(100%-25px)] a-p-0 ", children: _jsx("div", { className: "a-overflow-auto a-absolute a-inset-0", children: _jsx(ContentTree, { className: "a-h-full", expandIdPath: linkValue.targetItemLongId ||
|
|
44
|
+
"0DE95AE4-41AB-4D01-9EB0-67441B7C2450", selectedItemIds: [selectedItemId], selectionMode: "single", rootItemId: "0DE95AE4-41AB-4D01-9EB0-67441B7C2450", onSelectionChange: (selection) => {
|
|
45
|
+
setSelectedItemId(selection.id);
|
|
46
|
+
} }) }) }), _jsxs(TabPanel, { header: "External", children: [_jsx("label", { className: "a-block a-text-sm", children: "Url:" }), _jsx(InputText, { value: url || "", onChange: (e) => {
|
|
47
|
+
setUrl(e.target.value);
|
|
48
|
+
}, className: "a-w-full a-text-sm" })] })] }), _jsx(Divider, {}), _jsx("label", { className: "a-text-sm", children: "QueryString" }), _jsx(InputText, { value: queryString, onChange: (e) => setQueryString(e.target.value), className: "a-text-sm" }), _jsx("label", { className: "a-text-sm", children: "Window" }), _jsx(Dropdown, { options: targetWindows, optionLabel: "name", optionValue: "code", value: targetWindow, onChange: (e) => setTargetWindow(e.value), className: "a-text-sm" }), targetWindow === "custom" && (_jsxs("div", { className: "a-m-2", children: [_jsx("label", { className: "a-block a-text-sm", children: "Custom:" }), _jsx(InputText, { value: customTarget || "", onChange: (e) => {
|
|
49
|
+
setCustomTarget(e.target.value);
|
|
50
|
+
}, className: "a-text-sm" })] })), _jsx(Divider, {}), _jsxs("div", { className: "a-flex a-justify-end a-gap-3 a-mt-3", children: [_jsx(Button, { onClick: () => {
|
|
51
|
+
console.log(activeTabIndex);
|
|
52
|
+
onOk({
|
|
53
|
+
url,
|
|
54
|
+
target: getTargetWindow(),
|
|
55
|
+
customTarget: customTarget,
|
|
56
|
+
itemId: selectedItemId,
|
|
57
|
+
queryString: queryString,
|
|
58
|
+
type: activeTabIndex === 1 ? "external" : "internal",
|
|
59
|
+
});
|
|
60
|
+
}, children: "Select" }), _jsx(Button, { onClick: onCancel, children: "Cancel" })] })] }) }));
|
|
61
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Splitter, SplitterPanel } from "primereact/splitter";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import FloatingToolbar from "./FloatingToolbar";
|
|
5
|
+
import React from "react";
|
|
6
|
+
export default function MainLayout({ leftSidebar, content, rightSidebar, }) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const panels = [];
|
|
9
|
+
const [floatingLeftSidebar, setFloatingLeftSidebar] = useState(false);
|
|
10
|
+
const leftSidebarRef = React.useRef(null);
|
|
11
|
+
if (leftSidebar && !floatingLeftSidebar)
|
|
12
|
+
panels.push(_jsx(SplitterPanel, { size: 15, className: "a-overflow-hidden a-relative", children: _jsx("div", { className: "a-w-full a-h-full", ref: leftSidebarRef, children: leftSidebar }) }, "left"));
|
|
13
|
+
panels.push(_jsx(SplitterPanel, { size: 60, className: "alpaca-editor-content a-relative ", children: content }, "center"));
|
|
14
|
+
if (rightSidebar)
|
|
15
|
+
panels.push(_jsx(SplitterPanel, { size: 15, children: rightSidebar }, "right"));
|
|
16
|
+
return (_jsxs(_Fragment, { children: [_jsx(Splitter, { className: "a-border-none", children: panels }, (leftSidebar ? "left" : "no-left") +
|
|
17
|
+
(rightSidebar ? "right" : "no-right")), leftSidebar && floatingLeftSidebar && (_jsx(FloatingToolbar, { onPin: () => setFloatingLeftSidebar(false), height: (((_a = leftSidebarRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 300) - 70, width: ((_b = leftSidebarRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) || 300, children: leftSidebar }))] }));
|
|
18
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
import ContentTree from "./ContentTree";
|
|
13
|
+
import { Splitter, SplitterPanel } from "primereact/splitter";
|
|
14
|
+
import { useEffect, useState } from "react";
|
|
15
|
+
import { getChildren } from "./services/contentService";
|
|
16
|
+
import { useEditContext } from "./editContext";
|
|
17
|
+
import { Button } from "primereact/button";
|
|
18
|
+
import { Dialog } from "primereact/dialog";
|
|
19
|
+
import { FileUpload } from "primereact/fileupload";
|
|
20
|
+
import { classNames } from "primereact/utils";
|
|
21
|
+
import DialogButtons from "./DialogButtons";
|
|
22
|
+
export const MediaSelector = ({ visible, onHide, onMediaSelected, selectedIdPath, }) => {
|
|
23
|
+
const [selectedFolderId, setSelectedFolderId] = useState();
|
|
24
|
+
const [images, setImages] = useState();
|
|
25
|
+
const [selectedImage, setSelectedImage] = useState();
|
|
26
|
+
const [selectedImageId, setSelectedImageId] = useState();
|
|
27
|
+
const selection = selectedFolderId ? [selectedFolderId] : [];
|
|
28
|
+
const editContext = useEditContext();
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (selectedIdPath) {
|
|
31
|
+
const path = selectedIdPath.split("/");
|
|
32
|
+
if (path.length > 1) {
|
|
33
|
+
setSelectedFolderId(path[path.length - 2]);
|
|
34
|
+
setSelectedImageId(path[path.length - 1].toLowerCase().substring(1, 37));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}, [selectedIdPath, visible]);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
loadThumbnailsAndSelectImage();
|
|
40
|
+
}, [selectedFolderId]);
|
|
41
|
+
function loadThumbnailsAndSelectImage() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
setSelectedImage(undefined);
|
|
44
|
+
setImages([]);
|
|
45
|
+
const images = yield loadThumbnails(selectedFolderId);
|
|
46
|
+
if (selectedImageId)
|
|
47
|
+
setSelectedImage(images === null || images === void 0 ? void 0 : images.find((x) => x.id === selectedImageId));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function loadThumbnails(selectedFolderId) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
if (!selectedFolderId)
|
|
53
|
+
setImages([]);
|
|
54
|
+
else {
|
|
55
|
+
const children = yield getChildren(selectedFolderId, editContext.sessionId, [
|
|
56
|
+
"C97BA923-8009-4858-BDD5-D8BE5FCCECF7",
|
|
57
|
+
"F1828A2C-7E5D-4BBD-98CA-320474871548",
|
|
58
|
+
], false);
|
|
59
|
+
setImages(children);
|
|
60
|
+
return children;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return (_jsx(Dialog, { style: { width: "80%", height: "80%" }, visible: visible, onHide: onHide, header: "Select image", children: _jsxs("div", { className: "a-flex a-flex-col a-h-full", children: [_jsxs(Splitter, { className: "a-flex-1 a-border-0", children: [_jsx(SplitterPanel, { size: 35, className: "alpaca-overflow-scroll", children: _jsxs(Splitter, { layout: "vertical", children: [_jsx(SplitterPanel, { size: 70, className: "a-relative", children: _jsx("div", { className: "a-absolute a-inset-0 a-overflow-auto a-p-2", children: _jsx(ContentTree, { rootItemId: "3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1", selectionMode: "single", selectedItemIds: selection, templateIds: ["FE5DD826-48C6-436D-B87A-7C4210C7413B"], expandIdPath: selectedIdPath !== null && selectedIdPath !== void 0 ? selectedIdPath : "3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1", onSelectionChange: (selection) => {
|
|
65
|
+
const selectedNode = selection;
|
|
66
|
+
if (selectedNode)
|
|
67
|
+
setSelectedFolderId(selectedNode.id);
|
|
68
|
+
else
|
|
69
|
+
setSelectedFolderId(undefined);
|
|
70
|
+
} }) }) }), _jsx(SplitterPanel, { className: "a-flex a-justify-center a-align-center", children: _jsx("div", { className: "a-p-3 a-m-2 a-border a-w-full a-flex a-justify-center a-align-center", children: _jsx("img", { src: selectedImage === null || selectedImage === void 0 ? void 0 : selectedImage.previewUrl, className: "a-object-contain", fetchPriority: "high" }) }) })] }) }), _jsx(SplitterPanel, { className: "a-relative", children: _jsx("div", { className: "a-flex a-flex-wrap a-content-start a-items-start a-gap-2 a-absolute a-inset-0 a-overflow-auto a-p-2", children: images === null || images === void 0 ? void 0 : images.map((t) => {
|
|
71
|
+
return (_jsxs("div", { className: classNames((selectedImage === null || selectedImage === void 0 ? void 0 : selectedImage.id) == t.id ? "a-shadow-md" : "", "a-w-24 a-flex a-flex-col a-justify-between hover:a-shadow-md a-cursor-pointer a-p-1"), onDoubleClick: () => {
|
|
72
|
+
onMediaSelected(t.id);
|
|
73
|
+
onHide();
|
|
74
|
+
}, onClick: () => setSelectedImage(t), children: [_jsx("div", { className: "a-h-24 a-w-24 a-flex a-justify-center a-items-center", children: _jsx("img", { src: t.imageUrl }) }), _jsx("div", { className: "a-text-xs a-break-all", children: t.name })] }, t.id));
|
|
75
|
+
}) }) })] }), _jsxs(DialogButtons, { children: [_jsx(FileUpload, { mode: "basic",
|
|
76
|
+
// disabled={electedFolderId}
|
|
77
|
+
auto: true, chooseLabel: "Upload", accept: "image/*", url: "/alpaca/headless/editor/upload?folder=" + selection[0], onUpload: ({ xhr }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
+
const response = JSON.parse(xhr.responseText);
|
|
79
|
+
const thumbs = yield loadThumbnails(selectedFolderId);
|
|
80
|
+
setSelectedImage(thumbs === null || thumbs === void 0 ? void 0 : thumbs.find((x) => x.id === response.id));
|
|
81
|
+
}) }), _jsx(Button, { disabled: !selectedImage, onClick: () => {
|
|
82
|
+
onMediaSelected(selectedImage.id);
|
|
83
|
+
onHide();
|
|
84
|
+
}, children: "Select" }), _jsx(Button, { onClick: () => onHide(), children: "Cancel" })] })] }) }));
|
|
85
|
+
};
|