@alpaca-headless/alpaca-headless-nextjs 1.0.129 → 1.0.246
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 +439 -49
- package/dist/esm/alpacaContext.js +16 -0
- package/dist/esm/client-components/ClientLink.js +34 -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 +4 -7
- package/dist/esm/components/Link.js +32 -0
- package/dist/esm/components/LinkPreview.js +30 -0
- package/dist/esm/components/LockedFieldIndicator.js +21 -0
- package/dist/esm/components/Picture.js +133 -0
- package/dist/esm/components/PictureEditor.js +77 -0
- package/dist/esm/components/PictureEditorWrapper.js +6 -0
- package/dist/esm/components/Placeholder.js +117 -0
- package/dist/esm/components/RichText.js +30 -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 +29 -0
- package/dist/esm/components/TextEditor.js +78 -0
- package/dist/esm/components/TextEditorWrapper.js +19 -0
- package/dist/esm/components/Translate.js +12 -0
- package/dist/esm/components/TranslateEditor.js +24 -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 +55 -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/Editor.js +15 -0
- package/dist/esm/editor/EditorClient.js +877 -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 +137 -0
- package/dist/{cjs → esm}/editor/FloatingToolbar.js +20 -23
- package/dist/esm/editor/ItemInfo.js +14 -0
- package/dist/esm/editor/ItemNameDialog.js +32 -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 +5 -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/{cjs/editor → esm/editor/ai}/AiTerminal.js +67 -48
- package/dist/esm/editor/ai/AiToolCall.js +15 -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/componentTreeHelper.js +20 -0
- package/dist/esm/editor/config/config.js +261 -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 +25 -0
- package/dist/esm/editor/fieldTypes/TreeListEditor.js +57 -0
- package/dist/esm/editor/index.js +4 -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/contentService.js +58 -0
- package/dist/esm/editor/services/editService.js +428 -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 +69 -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/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 +8 -0
- package/dist/{cjs → esm}/loadRouteData.js +23 -20
- 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/servertypes.js +1 -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 +25 -22
- package/types/alpacaContext.d.ts +14 -8
- 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 +1 -0
- package/types/components/Link.d.ts +1 -0
- package/types/components/LinkPreview.d.ts +6 -0
- package/types/components/LockedFieldIndicator.d.ts +6 -0
- package/types/components/Picture.d.ts +4 -6
- package/types/components/PictureEditorWrapper.d.ts +3 -0
- package/types/components/Placeholder.d.ts +12 -11
- package/types/components/RichText.d.ts +2 -1
- package/types/components/RichTextEditor.d.ts +3 -290
- package/types/components/RichTextEditorWrapper.d.ts +2 -0
- package/types/components/Slot.d.ts +2 -1
- package/types/components/Text.d.ts +2 -1
- package/types/components/TextEditor.d.ts +3 -290
- package/types/components/TextEditorWrapper.d.ts +4 -0
- package/types/components/Translate.d.ts +1 -0
- package/types/components/picture-shared.d.ts +16 -0
- package/types/editor/ComponentInfo.d.ts +1 -1
- package/types/editor/ContentTree.d.ts +2 -2
- 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/Editor.d.ts +68 -5
- package/types/editor/EditorClient.d.ts +17 -5
- package/types/editor/EditorClientHost.d.ts +4 -2
- 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 +6 -2
- 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 +4 -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/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/componentTreeHelper.d.ts +2 -1
- package/types/editor/config/config.d.ts +2 -0
- package/types/editor/editContext.d.ts +70 -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/index.d.ts +2 -0
- 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/{contentService.d.ts → services/contentService.d.ts} +2 -3
- package/types/editor/services/editService.d.ts +27 -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/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 +4 -3
- package/types/loadRouteData.d.ts +7 -85
- package/types/middleware/handleRequest.d.ts +5 -0
- package/types/middleware/index.d.ts +1 -1
- package/types/servertypes.d.ts +306 -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/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/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/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/layoutData.d.ts +0 -92
- package/types/middleware/authorization.d.ts +0 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function getAlpacaContext() {
|
|
2
|
+
let context = globalThis.alpacaContext;
|
|
3
|
+
if (!context) {
|
|
4
|
+
context = {};
|
|
5
|
+
globalThis.alpacaContext = context;
|
|
6
|
+
}
|
|
7
|
+
return context;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated The method should not be used
|
|
11
|
+
*/
|
|
12
|
+
export const useAlpacaContext = getAlpacaContext;
|
|
13
|
+
export function registerComponents(components) {
|
|
14
|
+
const context = useAlpacaContext();
|
|
15
|
+
context.components = components;
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import { useEditContext, usePreviewContext } from "../editor";
|
|
15
|
+
import LinkEditor from "./LinkEditor";
|
|
16
|
+
import LinkPreview from "../components/LinkPreview";
|
|
17
|
+
export function ClientLink(_a) {
|
|
18
|
+
var { field, children } = _a, props = __rest(_a, ["field", "children"]);
|
|
19
|
+
if (!field)
|
|
20
|
+
return;
|
|
21
|
+
if (field.jsonValue) {
|
|
22
|
+
field = field.jsonValue;
|
|
23
|
+
}
|
|
24
|
+
if (!field.value)
|
|
25
|
+
return;
|
|
26
|
+
const previewContext = usePreviewContext();
|
|
27
|
+
if (previewContext) {
|
|
28
|
+
return (_jsx(LinkPreview, Object.assign({ field: field }, props, { children: children })));
|
|
29
|
+
}
|
|
30
|
+
const editing = useEditContext();
|
|
31
|
+
if (editing)
|
|
32
|
+
return (_jsx(LinkEditor, Object.assign({ field: field }, props, { children: children })));
|
|
33
|
+
return (_jsx("a", Object.assign({ href: field.value.url }, props, { children: children })));
|
|
34
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
"use client";
|
|
3
2
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
4
3
|
var t = {};
|
|
@@ -11,20 +10,22 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
10
|
}
|
|
12
11
|
return t;
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
function LinkEditor(_a) {
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
|
+
import { useEffect, useState } from "react";
|
|
15
|
+
//import { useEditContext } from "../editor/editContext";
|
|
16
|
+
import { LinkEditorDialog } from "../editor/LinkEditorDialog";
|
|
17
|
+
import { useEditContext } from "../editor/editContext";
|
|
18
|
+
export default function LinkEditor(_a) {
|
|
20
19
|
var { field, children } = _a, props = __rest(_a, ["field", "children"]);
|
|
21
|
-
const [showDialog, setShowDialog] =
|
|
22
|
-
const [link, setLink] =
|
|
23
|
-
const editContext =
|
|
20
|
+
const [showDialog, setShowDialog] = useState(false);
|
|
21
|
+
const [link, setLink] = useState();
|
|
22
|
+
const editContext = useEditContext();
|
|
24
23
|
if (!editContext)
|
|
25
24
|
return;
|
|
26
|
-
|
|
25
|
+
useEffect(() => {
|
|
27
26
|
var _a;
|
|
27
|
+
if (!field)
|
|
28
|
+
return;
|
|
28
29
|
setLink({
|
|
29
30
|
url: field.value.url,
|
|
30
31
|
target: field.value.target,
|
|
@@ -33,17 +34,20 @@ function LinkEditor(_a) {
|
|
|
33
34
|
itemId: (_a = field.value.targetItemLongId) === null || _a === void 0 ? void 0 : _a.split("/").pop(),
|
|
34
35
|
queryString: field.value.queryString,
|
|
35
36
|
});
|
|
37
|
+
editContext.registerAsRenderedField(field);
|
|
36
38
|
}, [field]);
|
|
37
39
|
if (!field)
|
|
38
|
-
return;
|
|
39
|
-
return ((
|
|
40
|
-
|
|
40
|
+
return (_jsxs("a", Object.assign({}, props, { children: [_jsx("i", { className: "pi pi-exclamation-triangle a-text-sm a-text-red-500", title: "Unknown link field" }), children] })));
|
|
41
|
+
return (_jsxs(_Fragment, { children: [_jsxs("a", Object.assign({ href: field.value.url }, props, { onClick: (e) => {
|
|
42
|
+
var _a;
|
|
43
|
+
editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
|
|
41
44
|
e.preventDefault();
|
|
42
|
-
}, children: [children, " ", (
|
|
45
|
+
}, children: [children, " ", _jsx("i", { onClick: (e) => {
|
|
46
|
+
var _a;
|
|
43
47
|
setShowDialog(true);
|
|
44
|
-
editContext.setFocusedField(field);
|
|
48
|
+
editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
|
|
45
49
|
e.preventDefault();
|
|
46
|
-
}, className: "pi pi-link a-cursor-pointer" })] })), showDialog && ((
|
|
50
|
+
}, className: "pi pi-link a-cursor-pointer" })] })), showDialog && (_jsx(LinkEditorDialog, { linkValue: link || { type: "internal" }, onOk: (link) => {
|
|
47
51
|
var _a, _b;
|
|
48
52
|
const xml = link.type == "internal"
|
|
49
53
|
? '<link linktype="internal" querystring="' +
|
|
@@ -55,7 +59,7 @@ function LinkEditor(_a) {
|
|
|
55
59
|
'" />'
|
|
56
60
|
: '<link linktype="external" querystring="' +
|
|
57
61
|
((_b = link.queryString) !== null && _b !== void 0 ? _b : "") +
|
|
58
|
-
' url="' +
|
|
62
|
+
'" url="' +
|
|
59
63
|
link.url +
|
|
60
64
|
'" target="' +
|
|
61
65
|
link.target +
|
|
@@ -65,4 +69,3 @@ function LinkEditor(_a) {
|
|
|
65
69
|
setShowDialog(false);
|
|
66
70
|
}, onCancel: () => setShowDialog(false) }))] }));
|
|
67
71
|
}
|
|
68
|
-
exports.default = LinkEditor;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { EditFilterChildrenContextProvider, useEditContext, } from "../editor";
|
|
4
|
+
export function MultiComponentEditor({ component, children, thumbZoom = 0.2, thumbHeight = "150px", thumbWidth = "150px", numComponentsVisibleWhenNotEditing = 1, listClassName = "", listClassNameEditing = "a-flex a-gap-2 a-flex-wrap a-items-center", }) {
|
|
5
|
+
var editContext = useEditContext();
|
|
6
|
+
if (!editContext)
|
|
7
|
+
return null;
|
|
8
|
+
const style = {
|
|
9
|
+
"--a-mce-thumb-zoom": thumbZoom,
|
|
10
|
+
"--a-mce-thumb-width": thumbWidth,
|
|
11
|
+
"--a-mce-thumb-height": thumbHeight,
|
|
12
|
+
};
|
|
13
|
+
const filterChildCallback = ({ component, index, }) => {
|
|
14
|
+
var _a;
|
|
15
|
+
return index > numComponentsVisibleWhenNotEditing &&
|
|
16
|
+
((_a = editContext === null || editContext === void 0 ? void 0 : editContext.selection) === null || _a === void 0 ? void 0 : _a.indexOf(component === null || component === void 0 ? void 0 : component.id)) === -1;
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { className: "a-mce", style: style, children: [_jsxs("div", { className: listClassNameEditing + " a-mce-items", children: [children, _jsx("div", { onClick: (ev) => {
|
|
19
|
+
editContext === null || editContext === void 0 ? void 0 : editContext.setSelectedForInsertion(component.id);
|
|
20
|
+
ev.stopPropagation();
|
|
21
|
+
}, children: _jsx("i", { className: "pi pi-plus-circle text-3xl cursor-pointer" }) })] }), _jsx("div", { className: "a-mce-selected " + listClassName, children: _jsx(EditFilterChildrenContextProvider, { value: { filterChildCallback }, children: children }) })] }));
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function ErrorFallback() {
|
|
4
|
+
// Call resetErrorBoundary() to reset the error boundary and retry the render.
|
|
5
|
+
return (_jsx("div", { role: "alert", children: _jsx("p", { children: "Something went wrong." }) }));
|
|
6
|
+
}
|
|
7
|
+
export function ErrorFallbackWithDetails({ error }) {
|
|
8
|
+
// Call resetErrorBoundary() to reset the error boundary and retry the render.
|
|
9
|
+
return (_jsxs("div", { role: "alert", children: [_jsx("p", { children: "Something went wrong:" }), _jsxs("pre", { style: { color: "red" }, children: [error.message, " ", error.stack] })] }));
|
|
10
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
2
|
var t = {};
|
|
4
3
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -10,9 +9,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
9
|
}
|
|
11
10
|
return t;
|
|
12
11
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import "server-only";
|
|
16
14
|
// const addClassName = (otherAttrs: { [key: string]: unknown }): void => {
|
|
17
15
|
// if (otherAttrs.class) {
|
|
18
16
|
// // if any classes are defined properly already
|
|
@@ -26,11 +24,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
26
24
|
// delete otherAttrs.class;
|
|
27
25
|
// }
|
|
28
26
|
// };
|
|
29
|
-
const Image = (_a) => {
|
|
27
|
+
export const Image = (_a) => {
|
|
30
28
|
var { field } = _a, otherProps = __rest(_a, ["field"]);
|
|
31
29
|
if (!field)
|
|
32
30
|
return;
|
|
33
31
|
const attrs = Object.assign(Object.assign({}, field.value), otherProps);
|
|
34
|
-
return (
|
|
32
|
+
return _jsx("img", Object.assign({}, attrs, { alt: "" }));
|
|
35
33
|
};
|
|
36
|
-
exports.Image = Image;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import "server-only";
|
|
14
|
+
import { useAlpacaContext } from "../alpacaContext";
|
|
15
|
+
import LinkEditor from "../client-components/LinkEditor";
|
|
16
|
+
import LinkPreview from "./LinkPreview";
|
|
17
|
+
export function Link(_a) {
|
|
18
|
+
var { field, children } = _a, props = __rest(_a, ["field", "children"]);
|
|
19
|
+
if (field === null || field === void 0 ? void 0 : field.jsonValue) {
|
|
20
|
+
field = field.jsonValue;
|
|
21
|
+
}
|
|
22
|
+
const pageContext = useAlpacaContext().pageContext;
|
|
23
|
+
const editing = pageContext === null || pageContext === void 0 ? void 0 : pageContext.pageEditing;
|
|
24
|
+
if (editing)
|
|
25
|
+
return (_jsx(LinkEditor, Object.assign({ field: field }, props, { children: children })));
|
|
26
|
+
if (!(field === null || field === void 0 ? void 0 : field.value))
|
|
27
|
+
return;
|
|
28
|
+
if (pageContext === null || pageContext === void 0 ? void 0 : pageContext.previewing) {
|
|
29
|
+
return (_jsx(LinkPreview, Object.assign({ field: field }, props, { children: children })));
|
|
30
|
+
}
|
|
31
|
+
return (_jsx("a", Object.assign({ href: field.value.url }, props, { children: children })));
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import { usePathname, useSearchParams, useRouter } from "next/navigation";
|
|
15
|
+
export default function LinkPreview(_a) {
|
|
16
|
+
var { field, children } = _a, props = __rest(_a, ["field", "children"]);
|
|
17
|
+
const router = useRouter();
|
|
18
|
+
const searchParams = useSearchParams();
|
|
19
|
+
const pathname = usePathname();
|
|
20
|
+
return (_jsx("a", Object.assign({ href: field.value.url, onClick: (ev) => {
|
|
21
|
+
if (field.value.targetItemId) {
|
|
22
|
+
const current = new URLSearchParams(Array.from(searchParams.entries()));
|
|
23
|
+
current.set("itemid", field.value.targetItemId);
|
|
24
|
+
current.delete("version");
|
|
25
|
+
const newUrl = `${pathname}?${current.toString()}`;
|
|
26
|
+
router.push(newUrl);
|
|
27
|
+
ev.preventDefault();
|
|
28
|
+
}
|
|
29
|
+
} }, props, { children: children })));
|
|
30
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEditContext } from "../editor/editContext";
|
|
3
|
+
import ReactDOM from "react-dom";
|
|
4
|
+
export function LockedFieldIndicator({ elementRef, field, }) {
|
|
5
|
+
var _a, _b, _c, _d;
|
|
6
|
+
const editContext = useEditContext();
|
|
7
|
+
if (!editContext)
|
|
8
|
+
return;
|
|
9
|
+
const rect = (_a = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
10
|
+
const editorRect = (_b = editContext.pageView.editorContainerRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
|
|
11
|
+
if ((elementRef === null || elementRef === void 0 ? void 0 : elementRef.current) &&
|
|
12
|
+
rect &&
|
|
13
|
+
editorRect &&
|
|
14
|
+
editContext.pageView.editorContainerRef.current) {
|
|
15
|
+
return ReactDOM.createPortal(_jsx("div", { className: "a-absolute a-bg-pink-300 a-text-xs a-text-white a-p-0.5 a-rounded hover:a-opacity-100 a-opacity-90", style: {
|
|
16
|
+
left: rect.left - editorRect.left + "px",
|
|
17
|
+
top: rect.top - editorRect.top + "px",
|
|
18
|
+
}, children: (_d = (_c = field._editor) === null || _c === void 0 ? void 0 : _c.lockedBy) === null || _d === void 0 ? void 0 : _d.user.name }), editContext.pageView.editorContainerRef.current);
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
+
import "server-only";
|
|
14
|
+
import { hashImageUrl } from "../mediaProtection";
|
|
15
|
+
import { getAlpacaContext } from "../alpacaContext";
|
|
16
|
+
import { getRenderedPictureVariant, } from "./picture-shared";
|
|
17
|
+
import { PictureEditorWrapper } from "./PictureEditorWrapper";
|
|
18
|
+
export const Picture = (_a) => {
|
|
19
|
+
var _b, _c, _d, _e;
|
|
20
|
+
var { field, params, renderJsonLinkedData, renderEditButton } = _a, otherProps = __rest(_a, ["field", "params", "renderJsonLinkedData", "renderEditButton"]);
|
|
21
|
+
if (!field)
|
|
22
|
+
return null;
|
|
23
|
+
if (field.jsonValue) {
|
|
24
|
+
field = field.jsonValue;
|
|
25
|
+
}
|
|
26
|
+
if (!((_b = field.value) === null || _b === void 0 ? void 0 : _b.variants) || field.value.variants.length === 0)
|
|
27
|
+
return;
|
|
28
|
+
const mediaParams = typeof params === "object" && "default" in params ? params : undefined;
|
|
29
|
+
const defaultParams = (_d = (_c = mediaParams === null || mediaParams === void 0 ? void 0 : mediaParams.default) !== null && _c !== void 0 ? _c : params) !== null && _d !== void 0 ? _d : { variant: "auto" };
|
|
30
|
+
const sources = Object.keys(mediaParams !== null && mediaParams !== void 0 ? mediaParams : {}).filter((x) => x != "default");
|
|
31
|
+
//const variants = field.value?.variants;
|
|
32
|
+
// const img =
|
|
33
|
+
// field.value?.variants.find(
|
|
34
|
+
// (x) => x.name.toUpperCase() == defaultVariant?.toUpperCase()
|
|
35
|
+
// ) ?? field.value?.variants[0];
|
|
36
|
+
//const attrs = { src: img?.src, ...otherProps };
|
|
37
|
+
//const video = img?.videoUrl;
|
|
38
|
+
//const videoAttr = { src: video, ...otherProps };
|
|
39
|
+
const renderPicture = () => {
|
|
40
|
+
var _a;
|
|
41
|
+
const defaultImg = (_jsx("img", Object.assign({}, otherProps, getSourceAttrs(field.value.variants, defaultParams), { alt: (_a = field.value) === null || _a === void 0 ? void 0 : _a.alt })));
|
|
42
|
+
if (!mediaParams || !(sources === null || sources === void 0 ? void 0 : sources.length))
|
|
43
|
+
return defaultImg;
|
|
44
|
+
else {
|
|
45
|
+
return (_jsxs("picture", Object.assign({}, otherProps, { children: [sources === null || sources === void 0 ? void 0 : sources.map((source) => (_jsx("source", Object.assign({}, getSourceAttrs(field.value.variants, mediaParams[source], source, defaultParams))))), defaultImg] })));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const picture = _jsx(_Fragment, { children: renderPicture() });
|
|
49
|
+
// {renderJsonLinkedData && !video ? (
|
|
50
|
+
// <script
|
|
51
|
+
// type="application/ld+json"
|
|
52
|
+
// dangerouslySetInnerHTML={{
|
|
53
|
+
// __html: JSON.stringify({
|
|
54
|
+
// "@context": "http://schema.org",
|
|
55
|
+
// "@type": "ImageObject",
|
|
56
|
+
// image: img?.src,
|
|
57
|
+
// description: field.value?.alt,
|
|
58
|
+
// name: field.value?.name,
|
|
59
|
+
// }),
|
|
60
|
+
// }}
|
|
61
|
+
// />
|
|
62
|
+
// ) : null}
|
|
63
|
+
// {video && <video {...videoAttr}></video>}
|
|
64
|
+
// {renderJsonLinkedData && video ? (
|
|
65
|
+
// <script
|
|
66
|
+
// type="application/ld+json"
|
|
67
|
+
// dangerouslySetInnerHTML={{
|
|
68
|
+
// __html: JSON.stringify({
|
|
69
|
+
// "@context": "http://schema.org",
|
|
70
|
+
// "@type": "VideoObject",
|
|
71
|
+
// contentUrl: img?.src,
|
|
72
|
+
// description: field.value?.alt,
|
|
73
|
+
// name: field.value?.name,
|
|
74
|
+
// }),
|
|
75
|
+
// }}
|
|
76
|
+
// />
|
|
77
|
+
// ) : null}
|
|
78
|
+
if ((_e = getAlpacaContext().pageContext) === null || _e === void 0 ? void 0 : _e.pageEditing)
|
|
79
|
+
return (_jsx(PictureEditorWrapper, { field: field, renderEditButton: renderEditButton, params: params, picture: picture }));
|
|
80
|
+
else
|
|
81
|
+
return picture;
|
|
82
|
+
};
|
|
83
|
+
const getScaledImage = (variant, params, maxWidth, scale = 1) => {
|
|
84
|
+
const width = (maxWidth !== null && maxWidth !== void 0 ? maxWidth : variant.width) * scale;
|
|
85
|
+
if (!params.aspectRatio) {
|
|
86
|
+
if (width >= variant.width)
|
|
87
|
+
return { src: variant.src, width: 0 };
|
|
88
|
+
else
|
|
89
|
+
return {
|
|
90
|
+
src: variant.src + `${variant.src.includes("?") ? "&" : "?"}mw=${width}`,
|
|
91
|
+
width: width,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const height = width / params.aspectRatio;
|
|
96
|
+
if (width >= variant.width || height >= variant.height)
|
|
97
|
+
return { src: variant.src, width: 0 };
|
|
98
|
+
return {
|
|
99
|
+
src: variant.src +
|
|
100
|
+
`${variant.src.includes("?") ? "&" : "?"}w=${width}&h=${height}&crop=1`,
|
|
101
|
+
width: width,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
function getSourceAttrs(variants, params, mediaQuery, defaultParams) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
const variant = getRenderedPictureVariant(params, variants);
|
|
108
|
+
if (!(variant === null || variant === void 0 ? void 0 : variant.src))
|
|
109
|
+
return;
|
|
110
|
+
const maxWidth = (_a = params.maxWidth) !== null && _a !== void 0 ? _a : defaultParams === null || defaultParams === void 0 ? void 0 : defaultParams.maxWidth;
|
|
111
|
+
const srcSet = getSourceSet(variant, params, maxWidth, (_b = params.scales) !== null && _b !== void 0 ? _b : defaultParams === null || defaultParams === void 0 ? void 0 : defaultParams.scales);
|
|
112
|
+
const props = { srcSet };
|
|
113
|
+
if (mediaQuery)
|
|
114
|
+
props.media = mediaQuery;
|
|
115
|
+
return props;
|
|
116
|
+
}
|
|
117
|
+
function getSourceSet(variant, params, maxWidth, scales) {
|
|
118
|
+
if (!scales || scales.length === 0) {
|
|
119
|
+
const scaledImage = getScaledImage(variant, params);
|
|
120
|
+
const srcSet = hashImageUrl(scaledImage.src);
|
|
121
|
+
return srcSet;
|
|
122
|
+
}
|
|
123
|
+
let srcSet = "";
|
|
124
|
+
for (let w = 0; w < scales.length; w++) {
|
|
125
|
+
const scaledImage = getScaledImage(variant, params, maxWidth, scales[w]);
|
|
126
|
+
if (srcSet.length)
|
|
127
|
+
srcSet = srcSet + ", ";
|
|
128
|
+
srcSet += hashImageUrl(scaledImage.src) + " " + scales[w] + "x";
|
|
129
|
+
if (scaledImage.width === 0)
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
return srcSet;
|
|
133
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
import React, { useEffect, useState } from "react";
|
|
15
|
+
import { PictureEditorDialog } from "../editor/PictureEditorDialog";
|
|
16
|
+
import { getFieldContextMenu } from "../editor/ContextMenu";
|
|
17
|
+
import { isFieldActionExecuting } from "../editor/utils";
|
|
18
|
+
import { useEditContext, useEditFrameContext } from "../editor";
|
|
19
|
+
export const PictureEditor = (_a) => {
|
|
20
|
+
var _b, _c, _d, _e;
|
|
21
|
+
var { field, params, renderEditButton, picture } = _a, otherProps = __rest(_a, ["field", "params", "renderEditButton", "picture"]);
|
|
22
|
+
const editContext = useEditContext();
|
|
23
|
+
const [editorVisible, setEditorVisible] = useState(false);
|
|
24
|
+
if (!editContext)
|
|
25
|
+
return;
|
|
26
|
+
const editFrameContext = useEditFrameContext();
|
|
27
|
+
if (!editFrameContext)
|
|
28
|
+
return;
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
var _a;
|
|
31
|
+
if (renderEditButton &&
|
|
32
|
+
editFrameContext.componentId === ((_a = field === null || field === void 0 ? void 0 : field._editor) === null || _a === void 0 ? void 0 : _a.descriptor.item.id) &&
|
|
33
|
+
!editFrameContext.customButtons.find((x) => { var _a; return x.id == "edit-image-" + ((_a = field === null || field === void 0 ? void 0 : field._editor) === null || _a === void 0 ? void 0 : _a.name); })) {
|
|
34
|
+
editFrameContext.setCustomButtons([
|
|
35
|
+
...editFrameContext.customButtons,
|
|
36
|
+
{
|
|
37
|
+
id: "edit-image-" + (field === null || field === void 0 ? void 0 : field._editor.name),
|
|
38
|
+
icon: "pi pi-image",
|
|
39
|
+
label: "Edit " + (field === null || field === void 0 ? void 0 : field._editor.name),
|
|
40
|
+
onClick: () => {
|
|
41
|
+
launchEditor();
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
editContext.registerAsRenderedField(field);
|
|
47
|
+
}, []);
|
|
48
|
+
let className = (otherProps.className ? otherProps.className + " " : "") +
|
|
49
|
+
"a-cursor-pointer a-inline-block";
|
|
50
|
+
const onContextMenu = getFieldContextMenu(field, editContext, [
|
|
51
|
+
{
|
|
52
|
+
id: "edit-image-" + ((_b = field === null || field === void 0 ? void 0 : field._editor) === null || _b === void 0 ? void 0 : _b.name),
|
|
53
|
+
icon: "pi pi-image",
|
|
54
|
+
onClick: () => launchEditor(),
|
|
55
|
+
label: "Edit " + ((_c = field === null || field === void 0 ? void 0 : field._editor) === null || _c === void 0 ? void 0 : _c.name),
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
58
|
+
if (isFieldActionExecuting(field, editContext))
|
|
59
|
+
className += " a-executing-action a-focus-shadow ";
|
|
60
|
+
const launchEditor = () => {
|
|
61
|
+
var _a, _b, _c;
|
|
62
|
+
if (((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) &&
|
|
63
|
+
((_b = field._editor) === null || _b === void 0 ? void 0 : _b.hasLock) &&
|
|
64
|
+
editFrameContext.isSelected)
|
|
65
|
+
setEditorVisible(true);
|
|
66
|
+
editContext.setFocusedField((_c = field._editor) === null || _c === void 0 ? void 0 : _c.descriptor, true);
|
|
67
|
+
};
|
|
68
|
+
const props = Object.assign(Object.assign({}, otherProps), { onContextMenu,
|
|
69
|
+
className, onClick: (e) => {
|
|
70
|
+
//only handle primary mouse button
|
|
71
|
+
if ((e === null || e === void 0 ? void 0 : e.button) !== 0)
|
|
72
|
+
return;
|
|
73
|
+
if (!(e === null || e === void 0 ? void 0 : e.ctrlKey) && !(e === null || e === void 0 ? void 0 : e.altKey))
|
|
74
|
+
launchEditor();
|
|
75
|
+
} });
|
|
76
|
+
return (_jsxs(_Fragment, { children: [React.cloneElement(picture, props), !((_e = (_d = field === null || field === void 0 ? void 0 : field.value) === null || _d === void 0 ? void 0 : _d.variants) === null || _e === void 0 ? void 0 : _e.find((x) => x.src)) && (_jsx("div", Object.assign({}, props, { children: _jsx("div", { className: "pi pi-image a-text-6xl a-text-gray-300" }) }))), editorVisible && (_jsx(PictureEditorDialog, { field: field, params: params, onCancel: () => setEditorVisible(false), onOk: () => setEditorVisible(false) }))] }));
|
|
77
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import dynamic from "next/dynamic";
|
|
3
|
+
const PictureEditor = dynamic(() => import("./PictureEditor").then((dnd) => dnd.PictureEditor), { ssr: false });
|
|
4
|
+
export const PictureEditorWrapper = (props) => {
|
|
5
|
+
return _jsx(PictureEditor, Object.assign({}, props));
|
|
6
|
+
};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { createElement as _createElement } from "react";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import "server-only";
|
|
4
|
+
import { useAlpacaContext } from "../alpacaContext";
|
|
5
|
+
import { PlaceholderDropZoneHost } from "../editor/PlaceholderDropZoneHost";
|
|
6
|
+
import { EditFrameWrapper } from "../editor/EditFrameWrapper";
|
|
7
|
+
import Slot from "./Slot";
|
|
8
|
+
import { ErrorBoundary } from "react-error-boundary";
|
|
9
|
+
import { ErrorFallback } from "./Error";
|
|
10
|
+
import React from "react";
|
|
11
|
+
export function Placeholder({ name, description, content, tag, className, mapComponent, getComponentProps, }) {
|
|
12
|
+
const data = content;
|
|
13
|
+
if (!data || !("placeholders" in data))
|
|
14
|
+
return;
|
|
15
|
+
const placeholderData = data.placeholders.find((x) => x.name == name);
|
|
16
|
+
if (!placeholderData)
|
|
17
|
+
return;
|
|
18
|
+
const context = useAlpacaContext();
|
|
19
|
+
const components = placeholderData === null || placeholderData === void 0 ? void 0 : placeholderData.components.filter((c) => c.visible).map((component, index) => {
|
|
20
|
+
if (component.componentType == "Slot")
|
|
21
|
+
return {
|
|
22
|
+
Component: Slot,
|
|
23
|
+
data: component,
|
|
24
|
+
parent: data,
|
|
25
|
+
};
|
|
26
|
+
const componentType = mapComponent
|
|
27
|
+
? mapComponent({ data: component, index })
|
|
28
|
+
: component.componentType;
|
|
29
|
+
if (!context.components) {
|
|
30
|
+
console.log("No components registered");
|
|
31
|
+
return {
|
|
32
|
+
data: { name: componentType, id: "0" },
|
|
33
|
+
Component: ComponentNotFound,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const reactComponent = context.components[componentType];
|
|
37
|
+
if (!reactComponent) {
|
|
38
|
+
console.log("Could not find module for component type: " + componentType);
|
|
39
|
+
return {
|
|
40
|
+
data: { name: componentType, id: "0" },
|
|
41
|
+
Component: ComponentNotFound,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
parent: data,
|
|
46
|
+
data: component,
|
|
47
|
+
Component: reactComponent,
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
function wrap(children) {
|
|
51
|
+
if (!tag)
|
|
52
|
+
return children;
|
|
53
|
+
if (context.pageContext.pageEditing || components.length > 0) {
|
|
54
|
+
return React.createElement(tag, { className }, children);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// const mappedComponents = mapComponent
|
|
58
|
+
// ? components.map(({ Component, data, parent }, index) => ({
|
|
59
|
+
// Component: mapComponent({
|
|
60
|
+
// Component,
|
|
61
|
+
// data: data as ComponentData,
|
|
62
|
+
// index,
|
|
63
|
+
// }),
|
|
64
|
+
// data,
|
|
65
|
+
// parent,
|
|
66
|
+
// }))
|
|
67
|
+
// : components;
|
|
68
|
+
const componentsWithProps = components.map(({ Component, data, parent }, index) => {
|
|
69
|
+
const defaultProps = {
|
|
70
|
+
component: data,
|
|
71
|
+
index,
|
|
72
|
+
count: components.length,
|
|
73
|
+
};
|
|
74
|
+
var props = getComponentProps
|
|
75
|
+
? getComponentProps(defaultProps)
|
|
76
|
+
: defaultProps;
|
|
77
|
+
return { Component, props, data, parent };
|
|
78
|
+
});
|
|
79
|
+
if (context.pageContext.pageEditing) {
|
|
80
|
+
let phIndex = 0;
|
|
81
|
+
return wrap(_jsxs(_Fragment, { children: [componentsWithProps.map(({ Component, props, data, parent }) => {
|
|
82
|
+
try {
|
|
83
|
+
return (_jsxs(_Fragment, { children: [(!data._editor.hostingPageItem ||
|
|
84
|
+
data.componentType == "Slot") && (_jsx(PlaceholderDropZoneHost, { parentName: parent === null || parent === void 0 ? void 0 : parent.name, description: description, placeholder: placeholderData, index: phIndex++ }, data.id + "_zone" + phIndex)), _jsx(EditFrameWrapper, { componentId: data.id, index: phIndex, children: _jsx(Component, Object.assign({}, props)) }, data.id)] }));
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
return (_jsxs("div", { children: ["Error rendering component ", data.name, ": ", e.message] }));
|
|
88
|
+
}
|
|
89
|
+
}), (!data._editor.hostingPageItem ||
|
|
90
|
+
data.componentType == "Slot") && (_jsx(PlaceholderDropZoneHost, { parentName: data === null || data === void 0 ? void 0 : data.name, description: description, placeholder: placeholderData, index: phIndex++ }, data.id + "_zone" + phIndex))] }));
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
return wrap(_jsx(_Fragment, { children: components.map(({ Component, data }, index) => {
|
|
94
|
+
var props = getComponentProps
|
|
95
|
+
? getComponentProps({
|
|
96
|
+
component: data,
|
|
97
|
+
index,
|
|
98
|
+
count: components.length,
|
|
99
|
+
})
|
|
100
|
+
: {
|
|
101
|
+
component: data,
|
|
102
|
+
index,
|
|
103
|
+
count: components.length,
|
|
104
|
+
};
|
|
105
|
+
return (_jsx(_Fragment, { children: _jsx(ErrorBoundary, { FallbackComponent: ErrorFallback, children: _createElement(Component, Object.assign({}, props, { key: data.id })) }, data.id) }));
|
|
106
|
+
}) }));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function ComponentNotFound({ component }) {
|
|
110
|
+
return (_jsxs("div", { style: {
|
|
111
|
+
backgroundColor: "orange",
|
|
112
|
+
color: "red",
|
|
113
|
+
fontSize: 18,
|
|
114
|
+
padding: 10,
|
|
115
|
+
border: "3px solid red",
|
|
116
|
+
}, children: ["Component not found: ", component.name] }));
|
|
117
|
+
}
|