@webiny/app-admin 5.23.1 → 5.25.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/Admin.d.ts +3 -10
- package/base/Admin.js +4 -0
- package/base/Admin.js.map +1 -0
- package/base/Base.d.ts +1 -1
- package/base/Base.js.map +1 -0
- package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -2
- package/base/plugins/AddGraphQLQuerySelection.js +3 -2
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
- package/base/providers/ApolloProvider.d.ts +9 -3
- package/base/providers/ApolloProvider.js +2 -1
- package/base/providers/ApolloProvider.js.map +1 -0
- package/base/providers/TelemetryProvider.d.ts +2 -4
- package/base/providers/TelemetryProvider.js +5 -0
- package/base/providers/TelemetryProvider.js.map +1 -0
- package/base/providers/UiStateProvider.d.ts +1 -3
- package/base/providers/UiStateProvider.js.map +1 -0
- package/base/providers/ViewCompositionProvider.d.ts +4 -5
- package/base/providers/ViewCompositionProvider.js +8 -1
- package/base/providers/ViewCompositionProvider.js.map +1 -0
- package/base/ui/Brand.d.ts +2 -9
- package/base/ui/Brand.js.map +1 -0
- package/base/ui/CenteredView.d.ts +1 -5
- package/base/ui/CenteredView.js.map +1 -0
- package/base/ui/Dashboard.d.ts +2 -9
- package/base/ui/Dashboard.js.map +1 -0
- package/base/ui/Layout.d.ts +2 -8
- package/base/ui/Layout.js.map +1 -0
- package/base/ui/LocaleSelector.d.ts +2 -9
- package/base/ui/LocaleSelector.js.map +1 -0
- package/base/ui/LoginScreen.d.ts +2 -5
- package/base/ui/LoginScreen.js.map +1 -0
- package/base/ui/Logo.d.ts +3 -9
- package/base/ui/Logo.js.map +1 -0
- package/base/ui/Menu.d.ts +8 -12
- package/base/ui/Menu.js +96 -30
- package/base/ui/Menu.js.map +1 -0
- package/base/ui/Navigation.d.ts +9 -20
- package/base/ui/Navigation.js +29 -29
- package/base/ui/Navigation.js.map +1 -0
- package/base/ui/NotFound.d.ts +2 -9
- package/base/ui/NotFound.js.map +1 -0
- package/base/ui/Search.d.ts +4 -13
- package/base/ui/Search.js +6 -1
- package/base/ui/Search.js.map +1 -0
- package/base/ui/Tags.d.ts +4 -2
- package/base/ui/Tags.js.map +1 -0
- package/base/ui/UserMenu.d.ts +9 -33
- package/base/ui/UserMenu.js +15 -2
- package/base/ui/UserMenu.js.map +1 -0
- package/components/AdminLayout.d.ts +1 -2
- package/components/AdminLayout.js.map +1 -0
- package/components/AppInstaller/AppInstaller.d.ts +2 -4
- package/components/AppInstaller/AppInstaller.js.map +1 -0
- package/components/AppInstaller/Sidebar.d.ts +8 -6
- package/components/AppInstaller/Sidebar.js +11 -10
- package/components/AppInstaller/Sidebar.js.map +1 -0
- package/components/AppInstaller/index.js.map +1 -0
- package/components/AppInstaller/styled.d.ts +4 -4
- package/components/AppInstaller/styled.js.map +1 -0
- package/components/AppInstaller/useInstaller.d.ts +28 -9
- package/components/AppInstaller/useInstaller.js +44 -36
- package/components/AppInstaller/useInstaller.js.map +1 -0
- package/components/EmptyView.d.ts +5 -5
- package/components/EmptyView.js.map +1 -0
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -4
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +7 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -4
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
- package/components/FileManager/BottomInfoBar.d.ts +4 -2
- package/components/FileManager/BottomInfoBar.js.map +1 -0
- package/components/FileManager/DropFilesHere.d.ts +4 -3
- package/components/FileManager/DropFilesHere.js +5 -2
- package/components/FileManager/DropFilesHere.js.map +1 -0
- package/components/FileManager/File.d.ts +7 -8
- package/components/FileManager/File.js +11 -5
- package/components/FileManager/File.js.map +1 -0
- package/components/FileManager/FileDetails/Name.d.ts +7 -5
- package/components/FileManager/FileDetails/Name.js +10 -7
- package/components/FileManager/FileDetails/Name.js.map +1 -0
- package/components/FileManager/FileDetails/Tags.d.ts +7 -5
- package/components/FileManager/FileDetails/Tags.js +22 -9
- package/components/FileManager/FileDetails/Tags.js.map +1 -0
- package/components/FileManager/FileDetails.d.ts +9 -8
- package/components/FileManager/FileDetails.js +80 -41
- package/components/FileManager/FileDetails.js.map +1 -0
- package/components/FileManager/FileManagerContext.d.ts +12 -9
- package/components/FileManager/FileManagerContext.js +14 -7
- package/components/FileManager/FileManagerContext.js.map +1 -0
- package/components/FileManager/FileManagerView.d.ts +3 -11
- package/components/FileManager/FileManagerView.js +79 -51
- package/components/FileManager/FileManagerView.js.map +1 -0
- package/components/FileManager/LeftSidebar.d.ts +6 -5
- package/components/FileManager/LeftSidebar.js +6 -5
- package/components/FileManager/LeftSidebar.js.map +1 -0
- package/components/FileManager/NoPermissionView.d.ts +2 -2
- package/components/FileManager/NoPermissionView.js.map +1 -0
- package/components/FileManager/NoResults.d.ts +3 -2
- package/components/FileManager/NoResults.js +5 -2
- package/components/FileManager/NoResults.js.map +1 -0
- package/components/FileManager/getFileTypePlugin.d.ts +4 -1
- package/components/FileManager/getFileTypePlugin.js +9 -0
- package/components/FileManager/getFileTypePlugin.js.map +1 -0
- package/components/FileManager/getFileUploader.d.ts +2 -1
- package/components/FileManager/getFileUploader.js.map +1 -0
- package/components/FileManager/graphql.d.ts +90 -0
- package/components/FileManager/graphql.js +25 -0
- package/components/FileManager/graphql.js.map +1 -0
- package/components/FileManager/outputFileSelectionError.d.ts +6 -1
- package/components/FileManager/outputFileSelectionError.js +3 -2
- package/components/FileManager/outputFileSelectionError.js.map +1 -0
- package/components/FileManager/types.d.ts +19 -0
- package/components/FileManager/types.js +1 -0
- package/components/FileManager/types.js.map +1 -0
- package/components/FileManager.d.ts +15 -10
- package/components/FileManager.js +27 -16
- package/components/FileManager.js.map +1 -0
- package/components/FloatingActionButton.d.ts +2 -2
- package/components/FloatingActionButton.js.map +1 -0
- package/components/MultiImageUpload.d.ts +13 -4
- package/components/MultiImageUpload.js +15 -4
- package/components/MultiImageUpload.js.map +1 -0
- package/components/OverlayLayout/OverlayLayout.d.ts +10 -13
- package/components/OverlayLayout/OverlayLayout.js.map +1 -0
- package/components/OverlayLayout/index.js.map +1 -0
- package/components/Permissions/Permissions.d.ts +4 -4
- package/components/Permissions/Permissions.js.map +1 -0
- package/components/Permissions/StyledComponents.d.ts +6 -4
- package/components/Permissions/StyledComponents.js.map +1 -0
- package/components/Permissions/index.js.map +1 -0
- package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
- package/components/RichTextEditor/RichTextEditor.js.map +1 -0
- package/components/RichTextEditor/index.js.map +1 -0
- package/components/RichTextEditor/tools/header/index.d.ts +33 -34
- package/components/RichTextEditor/tools/header/index.js +5 -6
- package/components/RichTextEditor/tools/header/index.js.map +1 -0
- package/components/RichTextEditor/tools/image/index.d.ts +38 -13
- package/components/RichTextEditor/tools/image/index.js +4 -2
- package/components/RichTextEditor/tools/image/index.js.map +1 -0
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
- package/components/RichTextEditor/tools/image/tunes.d.ts +12 -15
- package/components/RichTextEditor/tools/image/tunes.js +9 -4
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
- package/components/RichTextEditor/tools/image/types.d.ts +29 -0
- package/components/RichTextEditor/tools/image/types.js +1 -0
- package/components/RichTextEditor/tools/image/types.js.map +1 -0
- package/components/RichTextEditor/tools/image/ui.d.ts +36 -27
- package/components/RichTextEditor/tools/image/ui.js +25 -12
- package/components/RichTextEditor/tools/image/ui.js.map +1 -0
- package/components/RichTextEditor/tools/paragraph/index.d.ts +32 -36
- package/components/RichTextEditor/tools/paragraph/index.js +17 -25
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
- package/components/RichTextEditor/tools/textColor/index.d.ts +30 -22
- package/components/RichTextEditor/tools/textColor/index.js +46 -10
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
- package/components/RichTextEditor/tools/utils.js.map +1 -0
- package/components/Routes.d.ts +2 -2
- package/components/Routes.js.map +1 -0
- package/components/SearchUI.d.ts +4 -4
- package/components/SearchUI.js.map +1 -0
- package/components/SimpleForm/SimpleForm.d.ts +10 -11
- package/components/SimpleForm/SimpleForm.js.map +1 -0
- package/components/SimpleForm/index.js.map +1 -0
- package/components/SimpleUI/InputField.d.ts +4 -3
- package/components/SimpleUI/InputField.js +22 -20
- package/components/SimpleUI/InputField.js.map +1 -0
- package/components/SingleImageUpload.d.ts +3 -9
- package/components/SingleImageUpload.js +9 -11
- package/components/SingleImageUpload.js.map +1 -0
- package/components/SplitView/SplitView.d.ts +5 -5
- package/components/SplitView/SplitView.js.map +1 -0
- package/components/SplitView/index.js.map +1 -0
- package/components/index.js.map +1 -0
- package/hooks/useConfirmationDialog.d.ts +6 -5
- package/hooks/useConfirmationDialog.js +1 -2
- package/hooks/useConfirmationDialog.js.map +1 -0
- package/hooks/useDialog.d.ts +8 -3
- package/hooks/useDialog.js +1 -1
- package/hooks/useDialog.js.map +1 -0
- package/hooks/useSnackbar.d.ts +6 -3
- package/hooks/useSnackbar.js.map +1 -0
- package/index.js.map +1 -0
- package/package.json +24 -20
- package/plugins/FileManagerFileTypePlugin.d.ts +3 -3
- package/plugins/FileManagerFileTypePlugin.js +4 -0
- package/plugins/FileManagerFileTypePlugin.js.map +1 -0
- package/plugins/MenuPlugin.d.ts +6 -6
- package/plugins/MenuPlugin.js +4 -0
- package/plugins/MenuPlugin.js.map +1 -0
- package/plugins/PermissionRendererPlugin.d.ts +4 -4
- package/plugins/PermissionRendererPlugin.js +4 -0
- package/plugins/PermissionRendererPlugin.js.map +1 -0
- package/plugins/fileManager/fileDefault.js.map +1 -0
- package/plugins/fileManager/fileImage/DeleteAction.d.ts +6 -2
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
- package/plugins/fileManager/fileImage/EditAction.d.ts +7 -6
- package/plugins/fileManager/fileImage/EditAction.js +24 -11
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
- package/plugins/fileManager/fileImage/index.js.map +1 -0
- package/plugins/fileManager/index.js.map +1 -0
- package/plugins/globalSearch/SearchBar.d.ts +14 -5
- package/plugins/globalSearch/SearchBar.js +9 -0
- package/plugins/globalSearch/SearchBar.js.map +1 -0
- package/plugins/globalSearch/SearchBarDropdown.d.ts +19 -1
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
- package/plugins/globalSearch/index.d.ts +2 -1
- package/plugins/globalSearch/index.js.map +1 -0
- package/plugins/globalSearch/styled.d.ts +3 -3
- package/plugins/globalSearch/styled.js.map +1 -0
- package/plugins/index.d.ts +2 -1
- package/plugins/index.js.map +1 -0
- package/plugins/uiLayoutRenderer/index.js.map +1 -0
- package/types.d.ts +10 -8
- package/types.js.map +1 -0
- package/ui/UIElement.d.ts +1 -1
- package/ui/UIElement.js.map +1 -0
- package/ui/UILayout.js.map +1 -0
- package/ui/UIRenderer.js.map +1 -0
- package/ui/UIView.d.ts +1 -1
- package/ui/UIView.js.map +1 -0
- package/ui/elements/AccordionElement.d.ts +5 -5
- package/ui/elements/AccordionElement.js +4 -0
- package/ui/elements/AccordionElement.js.map +1 -0
- package/ui/elements/ButtonElement.d.ts +3 -3
- package/ui/elements/ButtonElement.js +7 -0
- package/ui/elements/ButtonElement.js.map +1 -0
- package/ui/elements/ButtonGroupElement.d.ts +2 -2
- package/ui/elements/ButtonGroupElement.js.map +1 -0
- package/ui/elements/GenericElement.js.map +1 -0
- package/ui/elements/LabelElement.js.map +1 -0
- package/ui/elements/NavigationMenuElement.d.ts +2 -1
- package/ui/elements/NavigationMenuElement.js +3 -2
- package/ui/elements/NavigationMenuElement.js.map +1 -0
- package/ui/elements/PanelElement.js.map +1 -0
- package/ui/elements/PlaceholderElement.d.ts +2 -1
- package/ui/elements/PlaceholderElement.js.map +1 -0
- package/ui/elements/SmallButtonElement.d.ts +1 -1
- package/ui/elements/SmallButtonElement.js.map +1 -0
- package/ui/elements/TypographyElement.d.ts +1 -1
- package/ui/elements/TypographyElement.js.map +1 -0
- package/ui/elements/ViewElement.js.map +1 -0
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
- package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
- package/ui/elements/form/DynamicFieldsetElement.js +13 -0
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
- package/ui/elements/form/FileManagerElement/styled.d.ts +17 -13
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
- package/ui/elements/form/FileManagerElement.d.ts +6 -6
- package/ui/elements/form/FileManagerElement.js.map +1 -0
- package/ui/elements/form/FormElement.d.ts +5 -5
- package/ui/elements/form/FormElement.js.map +1 -0
- package/ui/elements/form/FormFieldElement.d.ts +9 -8
- package/ui/elements/form/FormFieldElement.js +15 -7
- package/ui/elements/form/FormFieldElement.js.map +1 -0
- package/ui/elements/form/HiddenElement.js.map +1 -0
- package/ui/elements/form/InputElement.d.ts +1 -0
- package/ui/elements/form/InputElement.js.map +1 -0
- package/ui/elements/form/PasswordElement.js.map +1 -0
- package/ui/elements/form/SelectElement.d.ts +1 -1
- package/ui/elements/form/SelectElement.js +1 -1
- package/ui/elements/form/SelectElement.js.map +1 -0
- package/ui/elements/form/TextareaElement.js.map +1 -0
- package/ui/views/AdminView/ContentElement.js.map +1 -0
- package/ui/views/AdminView/HeaderElement.js +14 -2
- package/ui/views/AdminView/HeaderElement.js.map +1 -0
- package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -2
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
- package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -2
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
- package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -2
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
- package/ui/views/AdminView/components/Dialog.js.map +1 -0
- package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
- package/ui/views/AdminView/components/Hamburger.js.map +1 -0
- package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
- package/ui/views/AdminView/components/Snackbar.js.map +1 -0
- package/ui/views/FormView/FormContainerElement.d.ts +2 -2
- package/ui/views/FormView/FormContainerElement.js.map +1 -0
- package/ui/views/FormView/FormContentElement.js.map +1 -0
- package/ui/views/FormView/FormFooterElement.d.ts +3 -3
- package/ui/views/FormView/FormFooterElement.js.map +1 -0
- package/ui/views/FormView/FormHeaderElement.d.ts +2 -2
- package/ui/views/FormView/FormHeaderElement.js.map +1 -0
- package/ui/views/FormView.d.ts +1 -1
- package/ui/views/FormView.js +25 -3
- package/ui/views/FormView.js.map +1 -0
- package/ui/views/OverlayView/ContentElement.d.ts +2 -2
- package/ui/views/OverlayView/ContentElement.js.map +1 -0
- package/ui/views/OverlayView/HeaderElement.d.ts +5 -5
- package/ui/views/OverlayView/HeaderElement.js.map +1 -0
- package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
- package/ui/views/OverlayView/useOverlayView.d.ts +4 -5
- package/ui/views/OverlayView/useOverlayView.js +2 -2
- package/ui/views/OverlayView/useOverlayView.js.map +1 -0
- package/ui/views/OverlayView.d.ts +4 -6
- package/ui/views/OverlayView.js.map +1 -0
- package/ui/views/SplitView/SplitViewPanelElement.d.ts +3 -3
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
- package/ui/views/SplitView.d.ts +3 -3
- package/ui/views/SplitView.js.map +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { Plugin } from "@webiny/plugins";
|
|
3
3
|
interface Permission {
|
|
4
4
|
name: string;
|
|
@@ -13,10 +13,10 @@ interface Config {
|
|
|
13
13
|
system?: boolean;
|
|
14
14
|
}
|
|
15
15
|
export declare class PermissionRendererPlugin extends Plugin {
|
|
16
|
-
static readonly type
|
|
17
|
-
private _config;
|
|
16
|
+
static readonly type: string;
|
|
17
|
+
private readonly _config;
|
|
18
18
|
constructor(config?: Config);
|
|
19
19
|
get system(): boolean;
|
|
20
|
-
render(props: RenderParams): React.ReactElement;
|
|
20
|
+
render(props: RenderParams): React.ReactElement | null;
|
|
21
21
|
}
|
|
22
22
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["PermissionRendererPlugin.ts"],"names":["Plugin","PermissionRendererPlugin","config","_config","Boolean","system","props","render"],"mappings":";;;;;;AACA,SAASA,MAAT,QAAuB,iBAAvB;AAiBA,WAAaC,wBAAb;AAAA;;AAAA;;AAII,oCAAmBC,MAAnB,EAAoC;AAAA;;AAAA;;AAChC;;AADgC;;AAEhC,UAAKC,OAAL,GAAeD,MAAM,IAAI,EAAzB;AAFgC;AAGnC;;AAPL;AAAA;AAAA,SASI,eAAsB;AAClB,aAAOE,OAAO,CAAC,KAAKD,OAAL,CAAaE,MAAd,CAAd;AACH;AAXL;AAAA;AAAA,WAaI,gBAAcC,KAAd,EAA8D;AAC1D,UAAI,CAAC,KAAKH,OAAL,CAAaI,MAAlB,EAA0B;AACtB,eAAO,IAAP;AACH;;AACD,aAAO,KAAKJ,OAAL,CAAaI,MAAb,CAAoBD,KAApB,CAAP;AACH;AAlBL;;AAAA;AAAA,EAA8CN,MAA9C;;gBAAaC,wB,UACsC,gC","sourcesContent":["import React from \"react\";\nimport { Plugin } from \"@webiny/plugins\";\n\ninterface Permission {\n name: string;\n [key: string]: any;\n}\n\ninterface RenderParams {\n value: Permission[];\n onChange: (value: Permission[]) => void;\n}\n\ninterface Config {\n render(props: RenderParams): React.ReactElement;\n system?: boolean;\n}\n\nexport class PermissionRendererPlugin extends Plugin {\n public static override readonly type: string = \"admin-app-permissions-renderer\";\n private readonly _config: Partial<Config>;\n\n public constructor(config?: Config) {\n super();\n this._config = config || {};\n }\n\n get system(): boolean {\n return Boolean(this._config.system);\n }\n\n public render(props: RenderParams): React.ReactElement | null {\n if (!this._config.render) {\n return null;\n }\n return this._config.render(props);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["fileDefault.tsx"],"names":["React","ReactComponent","FileIcon","css","FileManagerFileTypePlugin","style","centering","display","justifyContent","alignItems","height","types","render"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,cAAc,IAAIC,QAA3B;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,yBAAT;AAEA,IAAMC,KAAK,GAAG;AACVC,EAAAA,SAAS,eAAEH,GAAG,CAAC;AACXI,IAAAA,OAAO,EAAE,MADE;AAEXC,IAAAA,cAAc,EAAE,QAFL;AAGXC,IAAAA,UAAU,EAAE,QAHD;AAIXC,IAAAA,MAAM,EAAE;AAJG,GAAD;AADJ,CAAd;AASA,eAAe,IAAIN,yBAAJ,CAA8B;AACzCO,EAAAA,KAAK,EAAE,CAAC,KAAD,CADkC;AAEzCC,EAAAA,MAFyC,oBAEf;AACtB,wBACI;AAAK,MAAA,SAAS,EAAEP,KAAK,CAACC;AAAtB,oBACI,oBAAC,QAAD,OADJ,CADJ;AAKH;AARwC,CAA9B,CAAf","sourcesContent":["import * as React from \"react\";\nimport { ReactComponent as FileIcon } from \"./icons/round-description-24px.svg\";\nimport { css } from \"emotion\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst style = {\n centering: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: 200\n })\n};\n\nexport default new FileManagerFileTypePlugin({\n types: [\"*/*\"],\n render(): React.ReactNode {\n return (\n <div className={style.centering}>\n <FileIcon />\n </div>\n );\n }\n});\n"]}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FileItem } from "../../../components/FileManager/types";
|
|
3
|
+
interface DeleteActionProps {
|
|
4
|
+
file: FileItem;
|
|
5
|
+
}
|
|
6
|
+
declare const DeleteAction: React.FC<DeleteActionProps>;
|
|
3
7
|
export default DeleteAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["DeleteAction.tsx"],"names":["React","Tooltip","IconButton","useSnackbar","useMutation","i18n","t","ns","ReactComponent","DeleteIcon","DELETE_FILE","DeleteAction","props","file","showSnackbar","variables","id","deleteFile","margin"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,WAAT;AACA,SAASC,WAAT,QAA4B,qBAA5B;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA,IAAMC,CAAC,GAAGD,IAAI,CAACE,EAAL,CAAQ,4CAAR,CAAV;AAEA,SAASC,cAAc,IAAIC,UAA3B;AACA,SAASC,WAAT;;AAKA,IAAMC,YAAyC,GAAG,SAA5CA,YAA4C,CAAAC,KAAK,EAAI;AACvD,MAAQC,IAAR,GAAiBD,KAAjB,CAAQC,IAAR;;AACA,qBAAyBV,WAAW,EAApC;AAAA,MAAQW,YAAR,gBAAQA,YAAR;;AACA,qBAAqBV,WAAW,CAACM,WAAD,EAAc;AAC1CK,IAAAA,SAAS,EAAE;AACPC,MAAAA,EAAE,EAAEH,IAAI,CAACG;AADF;AAD+B,GAAd,CAAhC;AAAA;AAAA,MAAOC,UAAP;;AAMA,sBACI,uDACI,oBAAC,OAAD;AAAS,IAAA,OAAO,eAAE,+CAAlB;AAA2C,IAAA,SAAS,EAAE;AAAtD,kBACI,oBAAC,UAAD;AACI,IAAA,IAAI,eAAE,oBAAC,UAAD;AAAY,MAAA,KAAK,EAAE;AAAEC,QAAAA,MAAM,EAAE;AAAV;AAAnB,MADV;AAEI,IAAA,OAAO,wEAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACCD,UAAU,EADX;;AAAA;AAELH,cAAAA,YAAY,CAACR,CAAD,mFAAZ;;AAFK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;AAFX,IADJ,CADJ,CADJ;AAaH,CAtBD;;AAwBA,eAAeK,YAAf","sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { useMutation } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FileItem } from \"~/components/FileManager/types\";\nconst t = i18n.ns(\"app-admin/file-manager/files/delete-action\");\n\nimport { ReactComponent as DeleteIcon } from \"../../../components/FileManager/icons/delete.svg\";\nimport { DELETE_FILE } from \"~/components/FileManager/graphql\";\n\ninterface DeleteActionProps {\n file: FileItem;\n}\nconst DeleteAction: React.FC<DeleteActionProps> = props => {\n const { file } = props;\n const { showSnackbar } = useSnackbar();\n const [deleteFile] = useMutation(DELETE_FILE, {\n variables: {\n id: file.id\n }\n });\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n icon={<DeleteIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n await deleteFile();\n showSnackbar(t`File deleted.`);\n }}\n />\n </Tooltip>\n </>\n );\n};\n\nexport default DeleteAction;\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { FileItem } from "../../../components/FileManager/types";
|
|
3
|
+
interface EditActionProps {
|
|
4
|
+
file: FileItem;
|
|
5
|
+
uploadFile: (file: FileItem) => void;
|
|
6
|
+
validateFiles: (blobs: any[]) => Error[];
|
|
7
|
+
canEdit: (file: FileItem) => boolean;
|
|
8
|
+
}
|
|
8
9
|
declare const EditAction: React.FC<EditActionProps>;
|
|
9
10
|
export default EditAction;
|
|
@@ -3,7 +3,17 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
3
3
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
4
4
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
5
|
import * as React from "react";
|
|
6
|
+
/**
|
|
7
|
+
* Package react-hotkeyz has no types.
|
|
8
|
+
*/
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
|
|
6
11
|
import { Hotkeys } from "react-hotkeyz";
|
|
12
|
+
/**
|
|
13
|
+
* Package dataurl-to-blob has no types.
|
|
14
|
+
*/
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
|
|
7
17
|
import dataURLtoBlob from "dataurl-to-blob";
|
|
8
18
|
import { ImageEditorDialog } from "@webiny/ui/ImageUpload";
|
|
9
19
|
import { Tooltip } from "@webiny/ui/Tooltip";
|
|
@@ -53,8 +63,7 @@ var reducer = function reducer(state, action) {
|
|
|
53
63
|
}
|
|
54
64
|
|
|
55
65
|
return next;
|
|
56
|
-
};
|
|
57
|
-
|
|
66
|
+
};
|
|
58
67
|
|
|
59
68
|
var EditAction = function EditAction(props) {
|
|
60
69
|
var file = props.file,
|
|
@@ -86,23 +95,22 @@ var EditAction = function EditAction(props) {
|
|
|
86
95
|
}
|
|
87
96
|
}),
|
|
88
97
|
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
98
|
+
var dataUrl;
|
|
89
99
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
90
100
|
while (1) {
|
|
91
101
|
switch (_context.prev = _context.next) {
|
|
92
102
|
case 0:
|
|
93
|
-
_context.
|
|
94
|
-
_context.next = 3;
|
|
103
|
+
_context.next = 2;
|
|
95
104
|
return toDataUrl(file.src);
|
|
96
105
|
|
|
97
|
-
case
|
|
98
|
-
|
|
99
|
-
|
|
106
|
+
case 2:
|
|
107
|
+
dataUrl = _context.sent;
|
|
108
|
+
dispatch({
|
|
100
109
|
type: "setDataUrl",
|
|
101
|
-
dataUrl:
|
|
102
|
-
};
|
|
103
|
-
(0, _context.t0)(_context.t2);
|
|
110
|
+
dataUrl: dataUrl
|
|
111
|
+
});
|
|
104
112
|
|
|
105
|
-
case
|
|
113
|
+
case 4:
|
|
106
114
|
case "end":
|
|
107
115
|
return _context.stop();
|
|
108
116
|
}
|
|
@@ -127,6 +135,11 @@ var EditAction = function EditAction(props) {
|
|
|
127
135
|
var errors = validateFiles([blob]);
|
|
128
136
|
|
|
129
137
|
if (errors.length) {
|
|
138
|
+
/**
|
|
139
|
+
* TODO @ts-refactor
|
|
140
|
+
* Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
|
|
141
|
+
*/
|
|
142
|
+
// @ts-ignore
|
|
130
143
|
showSnackbar(outputFileSelectionError(errors));
|
|
131
144
|
} else {
|
|
132
145
|
blob.name = file.name;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["EditAction.tsx"],"names":["React","Hotkeys","dataURLtoBlob","ImageEditorDialog","Tooltip","IconButton","outputFileSelectionError","useSnackbar","ReactComponent","EditIcon","toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","uploadFile","validateFiles","canEdit","useReducer","dispatch","showSnackbar","margin","src","blob","errors","length","name"],"mappings":"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","sourcesContent":["import * as React from \"react\";\n/**\n * Package react-hotkeyz has no types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n/**\n * Package dataurl-to-blob has no types.\n */\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport outputFileSelectionError from \"../../../components/FileManager/outputFileSelectionError\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { ReactComponent as EditIcon } from \"../icons/edit.svg\";\nimport { FileItem } from \"~/components/FileManager/types\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n uploadFile: (file: FileItem) => void;\n validateFiles: (blobs: any[]) => Error[];\n canEdit: (file: FileItem) => boolean;\n}\n\nconst EditAction: React.FC<EditActionProps> = props => {\n const { file, uploadFile, validateFiles, canEdit } = props;\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const { showSnackbar } = useSnackbar();\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n const errors = validateFiles([blob]);\n\n if (errors.length) {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n showSnackbar(outputFileSelectionError(errors));\n } else {\n blob.name = file.name;\n uploadFile(blob);\n }\n\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n\nexport default EditAction;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","css","Image","EditAction","FileManagerFileTypePlugin","styles","maxHeight","maxWidth","width","position","top","left","transform","types","actions","render","file","src","name"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,KAAT,QAAsB,wBAAtB;AAEA,OAAOC,UAAP;AACA,SAASC,yBAAT;AAEA,IAAMC,MAAM,gBAAGJ,GAAG,CAAC;AACfK,EAAAA,SAAS,EAAE,GADI;AAEfC,EAAAA,QAAQ,EAAE,GAFK;AAGfC,EAAAA,KAAK,EAAE,MAHQ;AAIfC,EAAAA,QAAQ,EAAE,UAJK;AAKfC,EAAAA,GAAG,EAAE,KALU;AAMfC,EAAAA,IAAI,EAAE,KANS;AAOfC,EAAAA,SAAS,EAAE;AAPI,CAAD,kBAAlB;AAUA,eAAe,IAAIR,yBAAJ,CAA8B;AACzCS,EAAAA,KAAK,EAAE,CAAC,SAAD,CADkC;AAEzCC,EAAAA,OAAO,EAAE,CAACX,UAAD,CAFgC;AAGzCY,EAAAA,MAHyC,wBAGxB;AAAA,QAARC,IAAQ,QAARA,IAAQ;AACb,wBACI,oBAAC,KAAD;AAAO,MAAA,SAAS,EAAEX,MAAlB;AAA0B,MAAA,GAAG,EAAEW,IAAI,CAACC,GAApC;AAAyC,MAAA,GAAG,EAAED,IAAI,CAACE,IAAnD;AAAyD,MAAA,SAAS,EAAE;AAAEV,QAAAA,KAAK,EAAE;AAAT;AAApE,MADJ;AAGH;AAPwC,CAA9B,CAAf","sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport { Image } from \"@webiny/app/components\";\n\nimport EditAction from \"./EditAction\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst styles = css({\n maxHeight: 200,\n maxWidth: 200,\n width: \"auto\",\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translateX(-50%) translateY(-50%)\"\n});\n\nexport default new FileManagerFileTypePlugin({\n types: [\"image/*\"],\n actions: [EditAction],\n render({ file }) {\n return (\n <Image className={styles} src={file.src} alt={file.name} transform={{ width: 300 }} />\n );\n }\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["fileDefault","fileImage"],"mappings":"AAAA,OAAOA,WAAP;AACA,OAAOC,SAAP;AAEA,eAAe,CAACD,WAAD,EAAcC,SAAd,CAAf","sourcesContent":["import fileDefault from \"./fileDefault\";\nimport fileImage from \"./fileImage\";\n\nexport default [fileDefault, fileImage];\n"]}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from "../../types";
|
|
2
|
+
export interface SearchBarState {
|
|
3
|
+
active: boolean;
|
|
4
|
+
searchTerm: {
|
|
5
|
+
previous: string;
|
|
6
|
+
current: string;
|
|
7
|
+
};
|
|
8
|
+
plugins: {
|
|
9
|
+
list: ReadonlyArray<AdminGlobalSearchPlugin>;
|
|
10
|
+
hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;
|
|
11
|
+
current?: AdminGlobalSearchPlugin;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare const _default: import("../../index").ComposableFC<{}>;
|
|
6
15
|
export default _default;
|
|
@@ -11,6 +11,11 @@ import { useRouter } from "@webiny/react-router";
|
|
|
11
11
|
import Downshift from "downshift";
|
|
12
12
|
import { plugins } from "@webiny/plugins";
|
|
13
13
|
import classnames from "classnames";
|
|
14
|
+
/**
|
|
15
|
+
* Package react-hotkeyz does not have types.
|
|
16
|
+
*/
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
|
|
14
19
|
import { Hotkeys } from "react-hotkeyz"; // UI components
|
|
15
20
|
|
|
16
21
|
import { Icon } from "@webiny/ui/Icon";
|
|
@@ -80,6 +85,10 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
80
85
|
|
|
81
86
|
e.preventDefault();
|
|
82
87
|
|
|
88
|
+
if (!_this.input.current) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
83
92
|
_this.input.current.focus();
|
|
84
93
|
});
|
|
85
94
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["SearchBar.tsx"],"names":["React","set","useRouter","Downshift","plugins","classnames","Hotkeys","Icon","Elevation","SearchBarDropdown","ReactComponent","SearchIcon","SearchBarWrapper","SearchBarInputWrapper","SearchShortcut","searchBarInput","icon","searchWrapper","makeComposable","SearchBar","props","active","searchTerm","previous","current","list","byType","hotKeys","undefined","createRef","e","i","state","length","hotKey","preventOpen","preventDefault","input","focus","plugin","setState","newState","query","URLSearchParams","search","JSON","stringify","history","push","pathname","route","toString","find","p","location","parse","get","downshift","item","label","downshiftProps","isOpen","openMenu","closeMenu","getInputProps","width","esc","document","activeElement","blur","handleOpenHotkey","cancelSearchTerm","enter","setTimeout","selectedItem","submitSearchTerm","placeholder","className","ref","value","onClick","onBlur","onFocus","onChange","target","Component","SearchBarContainer","routerProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { useRouter, UseRouter } from \"@webiny/react-router\";\nimport Downshift from \"downshift\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from \"~/types\";\nimport classnames from \"classnames\";\n/**\n * Package react-hotkeyz does not have types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n\n// UI components\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport SearchBarDropdown from \"./SearchBarDropdown\";\n\n// Icons\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\n\n// Local components\nimport {\n SearchBarWrapper,\n SearchBarInputWrapper,\n SearchShortcut,\n searchBarInput,\n icon,\n searchWrapper\n} from \"./styled\";\nimport { makeComposable } from \"~/index\";\n\ntype SearchBarProps = UseRouter;\n\nexport interface SearchBarState {\n active: boolean;\n searchTerm: { previous: string; current: string };\n plugins: {\n list: ReadonlyArray<AdminGlobalSearchPlugin>;\n hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;\n current?: AdminGlobalSearchPlugin;\n };\n}\n\nclass SearchBar extends React.Component<SearchBarProps, SearchBarState> {\n public override state: SearchBarState = {\n active: false,\n searchTerm: {\n previous: \"\",\n current: \"\"\n },\n plugins: {\n // List of all registered \"admin-global-search\" plugins.\n get list() {\n return plugins.byType<AdminGlobalSearchPlugin>(\"admin-global-search\");\n },\n hotKeys: plugins.byType<AdminGlobalSearchPreventHotkeyPlugin>(\n \"admin-global-search-prevent-hotkey\"\n ),\n // Current plugin - set by examining current route and its query params (on construct).\n current: undefined\n }\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n public readonly downshift: any = React.createRef();\n\n /**\n * At some point we must programmatically focus the input.\n */\n private readonly input = React.createRef<HTMLInputElement>();\n\n /**\n * Let's check if current route is defined in one of the registered plugins.\n * If so, then check current route query for search term and set it as default value of search input.\n * @param props\n */\n constructor(props: SearchBarProps) {\n super(props);\n this.state.plugins.current = this.state.plugins.list.find(\n p => p.route === props.location.pathname\n );\n\n if (this.state.plugins.current) {\n let search;\n const query = new URLSearchParams(props.location.search);\n try {\n search = JSON.parse(query.get(\"search\") || \"\").query;\n } catch (e) {\n search = query.get(\"search\");\n }\n\n this.state.searchTerm.current = search || \"\";\n this.state.searchTerm.previous = this.state.searchTerm.current;\n }\n }\n\n private readonly handleOpenHotkey = (e: React.KeyboardEvent): void => {\n for (let i = 0; i < this.state.plugins.hotKeys.length; i++) {\n const hotKey = this.state.plugins.hotKeys[i];\n if (hotKey.preventOpen(e)) {\n return;\n }\n }\n\n e.preventDefault();\n if (!this.input.current) {\n return;\n }\n this.input.current.focus();\n };\n\n /**\n * Re-routes to given route (provided by the plugin) with needed search query params.\n * It also manages previous and current search terms and automatically highlighted item in dropdown.\n * @param plugin\n */\n public readonly submitSearchTerm = (plugin: AdminGlobalSearchPlugin): void => {\n this.setState(\n state => {\n const newState = set(state, \"searchTerm.previous\", state.searchTerm.current);\n return set(newState, \"plugins.current\", plugin) as any;\n },\n () => {\n const query = new URLSearchParams();\n\n if (this.state.searchTerm.current) {\n // If \"search\" key in the plugin was defined, it means SearchInput values were set. Otherwise,\n // we need to send the plain string into the \"search\" query param. This behavior was needed\n // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.\n if (plugin.search) {\n query.set(\n \"search\",\n JSON.stringify({\n query: this.state.searchTerm.current,\n ...plugin.search\n })\n );\n } else {\n query.set(\"search\", this.state.searchTerm.current);\n }\n }\n\n this.props.history.push({\n pathname: plugin.route,\n search: query.toString()\n });\n }\n );\n };\n\n private readonly cancelSearchTerm = (): void => {\n this.setState(state => {\n state.searchTerm.current = state.searchTerm.previous;\n return state;\n });\n };\n\n public override render() {\n return (\n <Downshift ref={this.downshift} itemToString={item => item && item.label}>\n {downshiftProps => {\n const { isOpen, openMenu, closeMenu, getInputProps } = downshiftProps;\n\n return (\n <div style={{ width: \"100%\" }}>\n <Hotkeys\n zIndex={10}\n keys={{\n // @ts-ignore\n esc: () => document.activeElement.blur(),\n \"/\": this.handleOpenHotkey\n }}\n />\n\n <Hotkeys\n zIndex={11}\n disabled={!isOpen}\n keys={{\n esc: () => {\n this.cancelSearchTerm();\n closeMenu();\n },\n enter: () =>\n setTimeout(() => {\n const { selectedItem } = this.downshift.current.state;\n if (selectedItem) {\n closeMenu();\n this.submitSearchTerm(selectedItem);\n }\n })\n }}\n />\n\n <Elevation\n className={classnames(searchWrapper, { active: this.state.active })}\n z={0}\n >\n <SearchBarWrapper>\n <SearchBarInputWrapper>\n <Icon className={icon} icon={<SearchIcon />} />\n\n <React.Fragment>\n <input\n {...getInputProps({\n placeholder: \"Search...\",\n className: classnames(\n \"mdc-text-field__input\",\n searchBarInput\n ),\n ref: this.input,\n value: this.state.searchTerm.current,\n // @ts-ignore\n onClick: openMenu,\n onBlur: () => {\n this.cancelSearchTerm();\n this.setState({ active: false });\n },\n onFocus: () => {\n this.setState({ active: true });\n openMenu();\n },\n onChange: (\n e: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = e.target.value || \"\";\n this.setState(state => {\n state.searchTerm.current = value;\n return state;\n });\n }\n })}\n />\n </React.Fragment>\n\n <SearchShortcut>/</SearchShortcut>\n </SearchBarInputWrapper>\n </SearchBarWrapper>\n {isOpen && <SearchBarDropdown context={this} />}\n </Elevation>\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst SearchBarContainer: React.FC = () => {\n const routerProps = useRouter();\n\n return <SearchBar {...routerProps} />;\n};\n\nexport default makeComposable(\"SearchBarContainer\", SearchBarContainer);\n"]}
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
2
|
+
import { AdminGlobalSearchPlugin } from "../../types";
|
|
3
|
+
import { Actions as DownshiftActions, DownshiftState, PropGetters } from "downshift";
|
|
4
|
+
import { SearchBarState } from "./SearchBar";
|
|
5
|
+
interface SearchBarDropdownPropsContextDownshiftCurrent extends DownshiftActions<any>, PropGetters<any> {
|
|
6
|
+
state: DownshiftState<any>;
|
|
7
|
+
}
|
|
8
|
+
interface SearchBarDropdownPropsContextDownshift {
|
|
9
|
+
current: SearchBarDropdownPropsContextDownshiftCurrent;
|
|
10
|
+
}
|
|
11
|
+
interface SearchBarDropdownPropsContext {
|
|
12
|
+
downshift: SearchBarDropdownPropsContextDownshift;
|
|
13
|
+
submitSearchTerm: (item: AdminGlobalSearchPlugin) => void;
|
|
14
|
+
state: SearchBarState;
|
|
15
|
+
}
|
|
16
|
+
interface SearchBarDropdownProps {
|
|
17
|
+
context: SearchBarDropdownPropsContext;
|
|
18
|
+
}
|
|
19
|
+
export default class SearchBarDropdown extends React.Component<SearchBarDropdownProps> {
|
|
3
20
|
componentDidMount(): void;
|
|
4
21
|
render(): JSX.Element;
|
|
5
22
|
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["SearchBarDropdown.tsx"],"names":["React","classnames","List","ListItem","ListItemGraphic","ListItemText","ListItemMeta","searchBarDropdown","iconSearchType","Elevation","Icon","ReactComponent","SearchIcon","SearchBarDropdown","props","context","downshift","current","plugins","state","selectItem","setHighlightedIndex","list","indexOf","openMenu","submitSearchTerm","searchTerm","getMenuProps","getItemProps","selectedItem","highlightedIndex","map","item","index","itemClassNames","highlighted","selected","route","className","onClick","label","Component"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,IAAT,EAAeC,QAAf,EAAyBC,eAAzB,EAA0CC,YAA1C,EAAwDC,YAAxD,QAA4E,iBAA5E;AACA,SAASC,iBAAT,EAA4BC,cAA5B;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,IAAT,QAAqB,iBAArB;AAEA,SAASC,cAAc,IAAIC,UAA3B;;IAmBqBC,iB;;;;;;;;;;;;;WACjB,6BAAoC;AAChC,gCAKI,KAAKC,KALT,CACIC,OADJ;AAAA,UAE8BC,SAF9B,uBAEQA,SAFR,CAEqBC,OAFrB;AAAA,UAGiBC,OAHjB,uBAGQC,KAHR,CAGiBD,OAHjB;AAOAF,MAAAA,SAAS,CAACI,UAAV,CAAqBF,OAAO,CAACD,OAA7B;AACAD,MAAAA,SAAS,CAACK,mBAAV,CACIH,OAAO,CAACI,IAAR,CAAaC,OAAb,CAAqBL,OAAO,CAACD,OAA7B,CADJ;AAGAD,MAAAA,SAAS,CAACQ,QAAV;AACH;;;WAED,kBAAyB;AACrB,iCAMI,KAAKV,KANT,CACIC,OADJ;AAAA,UAE8BC,SAF9B,wBAEQA,SAFR,CAEqBC,OAFrB;AAAA,UAGQQ,gBAHR,wBAGQA,gBAHR;AAAA,uDAIQN,KAJR;AAAA,UAIiBD,OAJjB,yBAIiBA,OAJjB;AAAA,UAI0BQ,UAJ1B,yBAI0BA,UAJ1B;AAQA,UACIC,YADJ,GAIIX,SAJJ,CACIW,YADJ;AAAA,UAEIC,YAFJ,GAIIZ,SAJJ,CAEIY,YAFJ;AAAA,6BAIIZ,SAJJ,CAGIG,KAHJ;AAAA,UAGaU,YAHb,oBAGaA,YAHb;AAAA,UAG2BC,gBAH3B,oBAG2BA,gBAH3B;AAMA,0BACI,oBAAC,SAAD;AAAW,QAAA,CAAC,EAAE,CAAd;AAAiB,QAAA,SAAS,EAAEvB;AAA5B,sBACI,oBAAC,IAAD,EAAUoB,YAAY,EAAtB,EACKT,OAAO,CAACI,IAAR,CAAaS,GAAb,CAAiB,UAACC,IAAD,EAAgCC,KAAhC,EAA0C;AACxD;AACA,YAAMC,cAAc,GAAG;AACnBC,UAAAA,WAAW,EAAEL,gBAAgB,KAAKG,KADf;AAEnBG,UAAAA,QAAQ,EAAE;AAFS,SAAvB,CAFwD,CAOxD;;AACA,YAAIP,YAAY,IAAIA,YAAY,KAAKG,IAArC,EAA2C;AACvCE,UAAAA,cAAc,CAACE,QAAf,GAA0B,IAA1B;AACH;;AAED,4BACI,oBAAC,QAAD;AACI,UAAA,GAAG,EAAEJ,IAAI,CAACK;AADd,WAEQT,YAAY,CAAC;AACbK,UAAAA,KAAK,EAALA,KADa;AAEbD,UAAAA,IAAI,EAAJA,IAFa;AAGbM,UAAAA,SAAS,EAAErC,UAAU,CAACiC,cAAD,CAHR;AAIbK,UAAAA,OAAO,EAAE;AAAA,mBAAMd,gBAAgB,CAACO,IAAD,CAAtB;AAAA;AAJI,SAAD,CAFpB,gBASI,oBAAC,eAAD,qBACI,oBAAC,IAAD;AAAM,UAAA,SAAS,EAAExB,cAAjB;AAAiC,UAAA,IAAI,eAAE,oBAAC,UAAD;AAAvC,UADJ,CATJ,eAYI,oBAAC,YAAD,QACKkB,UAAU,CAACT,OAAX,IAAsB,mBAD3B,CAZJ,eAeI,oBAAC,YAAD,eAAkBe,IAAI,CAACQ,KAAvB,CAfJ,CADJ;AAmBH,OA/BA,CADL,CADJ,CADJ;AAsCH;;;;EArE0CxC,KAAK,CAACyC,S;;SAAhC5B,iB","sourcesContent":["import * as React from \"react\";\nimport { AdminGlobalSearchPlugin } from \"~/types\";\nimport classnames from \"classnames\";\nimport { List, ListItem, ListItemGraphic, ListItemText, ListItemMeta } from \"@webiny/ui/List\";\nimport { searchBarDropdown, iconSearchType } from \"./styled\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Actions as DownshiftActions, DownshiftState, PropGetters } from \"downshift\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { SearchBarState } from \"~/plugins/globalSearch/SearchBar\";\n\ninterface SearchBarDropdownPropsContextDownshiftCurrent\n extends DownshiftActions<any>,\n PropGetters<any> {\n state: DownshiftState<any>;\n}\ninterface SearchBarDropdownPropsContextDownshift {\n current: SearchBarDropdownPropsContextDownshiftCurrent;\n}\ninterface SearchBarDropdownPropsContext {\n downshift: SearchBarDropdownPropsContextDownshift;\n submitSearchTerm: (item: AdminGlobalSearchPlugin) => void;\n state: SearchBarState;\n}\ninterface SearchBarDropdownProps {\n context: SearchBarDropdownPropsContext;\n}\nexport default class SearchBarDropdown extends React.Component<SearchBarDropdownProps> {\n public override componentDidMount() {\n const {\n context: {\n downshift: { current: downshift },\n state: { plugins }\n }\n } = this.props;\n\n downshift.selectItem(plugins.current);\n downshift.setHighlightedIndex(\n plugins.list.indexOf(plugins.current as AdminGlobalSearchPlugin)\n );\n downshift.openMenu();\n }\n\n public override render() {\n const {\n context: {\n downshift: { current: downshift },\n submitSearchTerm,\n state: { plugins, searchTerm }\n }\n } = this.props;\n\n const {\n getMenuProps,\n getItemProps,\n state: { selectedItem, highlightedIndex }\n } = downshift;\n\n return (\n <Elevation z={2} className={searchBarDropdown}>\n <List {...getMenuProps()}>\n {plugins.list.map((item: AdminGlobalSearchPlugin, index) => {\n // Base classes.\n const itemClassNames = {\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Add \"selected\" class if the item is selected.\n if (selectedItem && selectedItem === item) {\n itemClassNames.selected = true;\n }\n\n return (\n <ListItem\n key={item.route}\n {...getItemProps({\n index,\n item,\n className: classnames(itemClassNames),\n onClick: () => submitSearchTerm(item)\n })}\n >\n <ListItemGraphic>\n <Icon className={iconSearchType} icon={<SearchIcon />} />\n </ListItemGraphic>\n <ListItemText>\n {searchTerm.current || \"Search for all...\"}\n </ListItemText>\n <ListItemMeta>in {item.label}</ListItemMeta>\n </ListItem>\n );\n })}\n </List>\n </Elevation>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["globalSearchHotkey","type","name","preventOpen","e","ignoreNodes","includes","target","nodeName"],"mappings":"AAEA,OAAO,IAAMA,kBAAkB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,oCADwB;AAE9BC,EAAAA,IAAI,EAAE,0CAFwB;AAG9BC,EAAAA,WAH8B,uBAGlBC,CAHkB,EAG+B;AACzD;AACA,QAAMC,WAAW,GAAG,CAAC,OAAD,EAAU,UAAV,CAApB;AAEA,WAAOA,WAAW,CAACC,QAAZ,CAAqBF,CAAC,CAACG,MAAF,CAASC,QAA9B,CAAP;AACH;AAR6B,CAA3B","sourcesContent":["import React from \"react\";\n\nexport const globalSearchHotkey = {\n type: \"admin-global-search-prevent-hotkey\",\n name: \"admin-global-search-prevent-hotkey-input\",\n preventOpen(e: React.ChangeEvent<HTMLInputElement>): boolean {\n // Define a list of all node types we want to prevent the event from.\n const ignoreNodes = [\"INPUT\", \"TEXTAREA\"];\n\n return ignoreNodes.includes(e.target.nodeName);\n }\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare const SearchShortcut: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").
|
|
3
|
-
export declare const SearchBarWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").
|
|
4
|
-
export declare const SearchBarInputWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").
|
|
2
|
+
export declare const SearchShortcut: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
3
|
+
export declare const SearchBarWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
4
|
+
export declare const SearchBarInputWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
5
5
|
export declare const searchBarInput: string;
|
|
6
6
|
export declare const searchBarDropdown: string;
|
|
7
7
|
export declare const icon: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["styled.ts"],"names":["css","styled","SearchShortcut","border","color","borderRadius","width","height","marginTop","textAlign","fontSize","paddingTop","boxSizing","cursor","opacity","SearchBarWrapper","display","SearchBarInputWrapper","position","searchBarInput","lineHeight","outline","backgroundColor","paddingLeft","borderBottom","searchBarDropdown","background","left","top","zIndex","padding","fontWeight","icon","paddingRight","iconSearchType","searchWrapper","transition","boxShadow","input"],"mappings":"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","sourcesContent":["// TODO remove\n// @ts-nocheck\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const SearchShortcut = styled(\"div\")({\n border: \"1px solid var(--mdc-theme-surface)\",\n color: \"var(--mdc-theme-surface)\",\n borderRadius: 5,\n width: 20,\n height: 24,\n marginTop: 1,\n textAlign: \"center\",\n fontSize: \"12px\",\n paddingTop: \"3px\",\n boxSizing: \"border-box\",\n cursor: \"default\",\n opacity: \"0.8\"\n});\n\nexport const SearchBarWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\"\n});\n\nexport const SearchBarInputWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\",\n position: \"relative\"\n});\n\nexport const searchBarInput = css({\n width: \"100%\",\n lineHeight: 1,\n border: \"none\",\n outline: \"none\",\n backgroundColor: \"transparent\",\n \"&.mdc-text-field__input\": {\n paddingTop: \"5px !important\",\n paddingLeft: \"10px !important\",\n borderBottom: \"none !important\",\n height: \"25px !important\",\n color: \"var(--mdc-theme-surface)\",\n \"&::placeholder\": {\n color: \"var(--mdc-theme-surface) !important\",\n opacity: \"1 !important\"\n },\n \"&:focus::placeholder\": {\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n }\n }\n});\n\nexport const searchBarDropdown = css({\n position: \"absolute\",\n background: \"white\",\n left: -1,\n width: \"calc(100% + 2px)\",\n top: 45,\n zIndex: 2,\n color: \"var(--mdc-theme-on-surface)\",\n borderRadius: \"0 0 5px 5px\",\n \".mdc-list\": {\n padding: 0,\n \".mdc-list-item\": {\n \"&.selected\": {\n fontWeight: \"bold\"\n },\n \"&.highlighted\": {\n backgroundColor: \"var(--mdc-theme-on-background)\"\n }\n }\n }\n});\n\nexport const icon = css({\n \"&.mdc-button__icon\": {\n width: \"auto !important\",\n paddingRight: 5,\n opacity: 0.75,\n marginTop: 2\n }\n});\n\nexport const iconSearchType = css({\n cursor: \"pointer\",\n paddingLeft: 5\n});\n\nexport const searchWrapper = css({\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n display: \"flex\",\n padding: \"10px 20px\",\n position: \"relative\",\n borderRadius: 4,\n transition: \"background 100ms ease-in,width 100ms ease-out\",\n color: \"var(--mdc-theme-surface)\",\n border: \"1px solid transparent\",\n \"&.active\": {\n color: \"var(--mdc-theme-on-surface)\",\n border: \"1px solid var(--mdc-theme-text-hint-on-dark)\",\n background: \"var(--mdc-theme-surface)\",\n boxShadow: \"0 1px 1px var(--mdc-theme-text-hint-on-dark)\",\n input: {\n color: \"var(--mdc-theme-on-surface)\"\n },\n [SearchShortcut]: {\n display: \"none\"\n }\n },\n input: {\n color: \"var(--mdc-theme-surface)\"\n }\n});\n"]}
|
package/plugins/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
declare const _default: () => (import("./FileManagerFileTypePlugin").FileManagerFileTypePlugin[] | import("@webiny/ui-composer/UILayout").UILayoutPlugin<import("@webiny/ui-composer/UILayout").UILayout> | {
|
|
2
3
|
type: string;
|
|
3
4
|
name: string;
|
|
4
|
-
preventOpen(e:
|
|
5
|
+
preventOpen(e: import("react").ChangeEvent<HTMLInputElement>): boolean;
|
|
5
6
|
})[];
|
|
6
7
|
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["fileManager","uiLayoutRenderer","globalSearchHotkey"],"mappings":"AAAA,OAAOA,WAAP;AACA,OAAOC,gBAAP;AACA,SAASC,kBAAT;AAEA,gBAAe;AAAA,SAAM,CAACF,WAAD,EAAcE,kBAAd,EAAkCD,gBAAlC,CAAN;AAAA,CAAf","sourcesContent":["import fileManager from \"./fileManager\";\nimport uiLayoutRenderer from \"./uiLayoutRenderer\";\nimport { globalSearchHotkey } from \"./globalSearch\";\n\nexport default () => [fileManager, globalSearchHotkey, uiLayoutRenderer];\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","Fragment","Cell","Grid","GridInner","UILayoutPlugin","getElementKey","element","constructor","name","id","ElementID","children","layout","setRenderer","props","hasParentGrid","getGrid","getLayout","map","row","index","item","getElement","console","warn","shouldRender","render","GridComponent","width"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,SAArB,QAAsC,iBAAtC;AACA,SAASC,cAAT;;AAGA,SAASC,aAAT,CAAuBC,OAAvB,EAA2C;AACvC,mBAAUA,OAAO,CAACC,WAAR,CAAoBC,IAA9B,cAAsCF,OAAO,CAACG,EAA9C;AACH;;AAED,IAAMC,SAAmB,GAAG,SAAtBA,SAAsB,OAAkB;AAAA,MAAfC,QAAe,QAAfA,QAAe;AAC1C,SAAOA,QAAP;AACH,CAFD;;AAIA,eAAe,IAAIP,cAAJ,CAAmB,UAAAQ,MAAM,EAAI;AACxCA,EAAAA,MAAM,CAACC,WAAP,CAAmB,iBAAsC;AAAA,QAAnCD,MAAmC,SAAnCA,MAAmC;AAAA,QAA3BE,KAA2B,SAA3BA,KAA2B;AAAA,QAApBC,aAAoB,SAApBA,aAAoB;;AACrD,QAAI,CAACH,MAAM,CAACI,OAAP,EAAL,EAAuB;AACnB,0BACI,oBAAC,QAAD,QACKJ,MAAM,CAACK,SAAP,GAAmBC,GAAnB,CAAuB,UAACC,GAAD,EAAMC,KAAN;AAAA,4BACpB,oBAAC,QAAD;AAAU,UAAA,GAAG,EAAEA;AAAf,WACKD,GAAG,CAACD,GAAJ,CAAQ,UAAAG,IAAI,EAAI;AACb,cAAMf,OAAO,GAAGM,MAAM,CAACU,UAAP,CAAkBD,IAAI,CAACf,OAAvB,CAAhB;;AAEA,cAAI,CAACA,OAAL,EAAc;AACViB,YAAAA,OAAO,CAACC,IAAR,qBAAyBH,IAAI,CAACf,OAA9B;AACA,mBAAO,IAAP;AACH;;AAED,cAAI,CAACA,OAAO,CAACmB,YAAR,CAAqBX,KAArB,CAAL,EAAkC;AAC9B,mBAAO,IAAP;AACH;;AAED,8BACI,oBAAC,SAAD;AAAW,YAAA,GAAG,EAAET,aAAa,CAACC,OAAD;AAA7B,aACKA,OAAO,CAACoB,MAAR,CAAeZ,KAAf,CADL,CADJ;AAKH,SAjBA,CADL,CADoB;AAAA,OAAvB,CADL,CADJ;AA0BH;;AAED,QAAMa,aAAa,GAAGZ,aAAa,GAAGZ,SAAH,GAAeD,IAAlD;AAEA,wBACI,oBAAC,aAAD,QACKU,MAAM,CAACK,SAAP,GAAmBC,GAAnB,CAAuB,UAACC,GAAD,EAAMC,KAAN;AAAA,0BACpB,oBAAC,QAAD;AAAU,QAAA,GAAG,EAAEA;AAAf,SACKD,GAAG,CAACD,GAAJ,CAAQ,UAAAG,IAAI,EAAI;AACb,YAAMf,OAAO,GAAGM,MAAM,CAACU,UAAP,CAAkBD,IAAI,CAACf,OAAvB,CAAhB;;AACA,YAAI,CAACA,OAAO,CAACmB,YAAR,CAAqBX,KAArB,CAAL,EAAkC;AAC9B,iBAAO,IAAP;AACH;;AACD,4BACI,oBAAC,IAAD;AAAM,UAAA,GAAG,EAAEO,IAAI,CAACf,OAAhB;AAAyB,UAAA,IAAI,EAAEe,IAAI,CAACO;AAApC,wBACI,oBAAC,SAAD;AAAW,UAAA,GAAG,EAAEvB,aAAa,CAACC,OAAD;AAA7B,WACKA,OAAO,CAACoB,MAAR,CAAeZ,KAAf,CADL,CADJ,CADJ;AAOH,OAZA,CADL,CADoB;AAAA,KAAvB,CADL,CADJ;AAqBH,GArDD;AAsDH,CAvDc,CAAf","sourcesContent":["import React, { Fragment } from \"react\";\nimport { Cell, Grid, GridInner } from \"@webiny/ui/Grid\";\nimport { UILayoutPlugin } from \"~/ui/UILayout\";\nimport { UIElement } from \"~/ui/UIElement\";\n\nfunction getElementKey(element: UIElement) {\n return `${element.constructor.name}:${element.id}`;\n}\n\nconst ElementID: React.FC = ({ children }) => {\n return children as unknown as React.ReactElement;\n};\n\nexport default new UILayoutPlugin(layout => {\n layout.setRenderer(({ layout, props, hasParentGrid }) => {\n if (!layout.getGrid()) {\n return (\n <Fragment>\n {layout.getLayout().map((row, index) => (\n <Fragment key={index}>\n {row.map(item => {\n const element = layout.getElement(item.element);\n\n if (!element) {\n console.warn(`Element \"${item.element}\" was not found!`);\n return null;\n }\n\n if (!element.shouldRender(props)) {\n return null;\n }\n\n return (\n <ElementID key={getElementKey(element)}>\n {element.render(props)}\n </ElementID>\n );\n })}\n </Fragment>\n ))}\n </Fragment>\n );\n }\n\n const GridComponent = hasParentGrid ? GridInner : Grid;\n\n return (\n <GridComponent>\n {layout.getLayout().map((row, index) => (\n <Fragment key={index}>\n {row.map(item => {\n const element = layout.getElement(item.element);\n if (!element.shouldRender(props)) {\n return null;\n }\n return (\n <Cell key={item.element} span={item.width}>\n <ElementID key={getElementKey(element)}>\n {element.render(props)}\n </ElementID>\n </Cell>\n );\n })}\n </Fragment>\n ))}\n </GridComponent>\n );\n });\n});\n"]}
|
package/types.d.ts
CHANGED
|
@@ -55,27 +55,29 @@ export declare type AdminHeaderRightPlugin = Plugin & {
|
|
|
55
55
|
type: "admin-header-right";
|
|
56
56
|
render(params: RenderParams): React.ReactNode;
|
|
57
57
|
};
|
|
58
|
+
export interface AdminFileManagerFileTypePluginRenderParams {
|
|
59
|
+
file: string;
|
|
60
|
+
}
|
|
58
61
|
export declare type AdminFileManagerFileTypePlugin = Plugin & {
|
|
59
62
|
type: "admin-file-manager-file-type";
|
|
60
63
|
types?: string[];
|
|
61
|
-
render(
|
|
62
|
-
file: any;
|
|
63
|
-
}): React.ReactNode;
|
|
64
|
+
render(params: AdminFileManagerFileTypePluginRenderParams): React.ReactNode;
|
|
64
65
|
fileDetails?: {
|
|
65
|
-
actions: Array<React.
|
|
66
|
+
actions: Array<React.FC | React.Component>;
|
|
66
67
|
};
|
|
67
68
|
};
|
|
69
|
+
export interface AdminInstallationPluginRenderParams {
|
|
70
|
+
onInstalled: () => Promise<void>;
|
|
71
|
+
}
|
|
68
72
|
export declare type AdminInstallationPlugin = Plugin & {
|
|
69
73
|
type: "admin-installation";
|
|
70
74
|
getInstalledVersion(params: {
|
|
71
75
|
client: ApolloClient<object>;
|
|
72
|
-
}): Promise<string>;
|
|
76
|
+
}): Promise<string | null>;
|
|
73
77
|
title: string;
|
|
74
78
|
dependencies?: string[];
|
|
75
79
|
secure: boolean;
|
|
76
|
-
render(
|
|
77
|
-
onInstalled: any;
|
|
78
|
-
}): React.ReactNode;
|
|
80
|
+
render(params: AdminInstallationPluginRenderParams): React.ReactNode;
|
|
79
81
|
upgrades?: {
|
|
80
82
|
version: string;
|
|
81
83
|
getComponent(): React.ComponentType<{
|
package/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
package/ui/UIElement.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { UIElementConfig, ApplyFunction, ShouldRender } from "@webiny/ui-composer/UIElement";
|
|
1
|
+
export type { UIElementConfig, ApplyFunction, ShouldRender, UiElementRenderProps } from "@webiny/ui-composer/UIElement";
|
|
2
2
|
export { UIElement, UIElementPlugin } from "@webiny/ui-composer/UIElement";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["UIElement.tsx"],"names":["UIElement","UIElementPlugin"],"mappings":"AAOA,SAASA,SAAT,EAAoBC,eAApB,QAA2C,+BAA3C","sourcesContent":["export type {\n UIElementConfig,\n ApplyFunction,\n ShouldRender,\n UiElementRenderProps\n} from \"@webiny/ui-composer/UIElement\";\n\nexport { UIElement, UIElementPlugin } from \"@webiny/ui-composer/UIElement\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["UILayout.tsx"],"names":["UILayout","UILayoutPlugin"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,cAAnB,QAAyC,8BAAzC","sourcesContent":["export { UILayout, UILayoutPlugin } from \"@webiny/ui-composer/UILayout\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["UIRenderer.tsx"],"names":["UIRenderer"],"mappings":"AAAA,SAASA,UAAT,QAA2B,gCAA3B","sourcesContent":["export { UIRenderer } from \"@webiny/ui-composer/UIRenderer\";\nexport type { UIRenderParams, RenderNext } from \"@webiny/ui-composer/UIRenderer\";\n"]}
|
package/ui/UIView.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { ApplyFunction, UIElementWrapperProps, UIElementWrapper } from "@webiny/ui-composer/UIView";
|
|
1
|
+
export type { ApplyFunction, UIElementWrapperProps, UIElementWrapper, UIViewProps } from "@webiny/ui-composer/UIView";
|
|
2
2
|
export { UIView, UIViewComponent, UIViewPlugin } from "@webiny/ui-composer/UIView";
|
package/ui/UIView.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["UIView.tsx"],"names":["UIView","UIViewComponent","UIViewPlugin"],"mappings":"AAMA,SAASA,MAAT,EAAiBC,eAAjB,EAAkCC,YAAlC,QAAsD,4BAAtD","sourcesContent":["export type {\n ApplyFunction,\n UIElementWrapperProps,\n UIElementWrapper,\n UIViewProps\n} from \"@webiny/ui-composer/UIView\";\nexport { UIView, UIViewComponent, UIViewPlugin } from \"@webiny/ui-composer/UIView\";\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { UIElement, UIElementConfig } from "../UIElement";
|
|
2
|
+
import { UIElement, UIElementConfig, UiElementRenderProps } from "../UIElement";
|
|
3
3
|
interface GetterWithProps<TProps, T> {
|
|
4
4
|
(props: TProps): T;
|
|
5
5
|
}
|
|
@@ -11,17 +11,17 @@ interface Item<TProps = any> extends UIElementConfig {
|
|
|
11
11
|
open?: boolean | GetterWithProps<TProps, boolean>;
|
|
12
12
|
}
|
|
13
13
|
export declare class AccordionItemElement extends UIElement<Item> {
|
|
14
|
-
constructor(id:
|
|
14
|
+
constructor(id: string, config: Item);
|
|
15
15
|
setTitle(title: string): void;
|
|
16
16
|
setDescription(description: string): void;
|
|
17
|
-
render(props:
|
|
17
|
+
render(props: UiElementRenderProps): React.ReactNode;
|
|
18
18
|
}
|
|
19
19
|
interface Config extends UIElementConfig {
|
|
20
20
|
items: Item[];
|
|
21
21
|
}
|
|
22
22
|
export declare class AccordionElement extends UIElement<Config> {
|
|
23
|
-
constructor(id:
|
|
23
|
+
constructor(id: string, config: Config);
|
|
24
24
|
getAccordionItemElement(id: string): AccordionItemElement;
|
|
25
|
-
render(props:
|
|
25
|
+
render(props: UiElementRenderProps): React.ReactNode;
|
|
26
26
|
}
|
|
27
27
|
export {};
|
|
@@ -75,6 +75,10 @@ export var AccordionElement = /*#__PURE__*/function (_UIElement2) {
|
|
|
75
75
|
}, {
|
|
76
76
|
key: "render",
|
|
77
77
|
value: function render(props) {
|
|
78
|
+
/**
|
|
79
|
+
* Figure out correct way to have props.children typed.
|
|
80
|
+
* TODO @ts-refactor
|
|
81
|
+
*/
|
|
78
82
|
// @ts-ignore
|
|
79
83
|
return /*#__PURE__*/React.createElement(Accordion, {
|
|
80
84
|
elevation: 0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["AccordionElement.tsx"],"names":["React","UIElement","Accordion","AccordionItem","AccordionItemElement","id","config","title","description","props","open","rest","isOpened","AccordionElement","useGrid","items","forEach","item","addElement","getElement"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT;AACA,SAASC,SAAT,EAAoBC,aAApB,QAAyC,sBAAzC;AAcA,WAAaC,oBAAb;AAAA;;AAAA;;AACI,gCAAmBC,EAAnB,EAA+BC,MAA/B,EAA6C;AAAA;;AAAA,6BACnCD,EADmC,EAC/BC,MAD+B;AAE5C;;AAHL;AAAA;AAAA,WAKI,kBAAgBC,KAAhB,EAAqC;AACjC,WAAKD,MAAL,CAAYC,KAAZ,GAAoBA,KAApB;AACH;AAPL;AAAA;AAAA,WASI,wBAAsBC,WAAtB,EAAiD;AAC7C,WAAKF,MAAL,CAAYE,WAAZ,GAA0BA,WAA1B;AACH;AAXL;AAAA;AAAA,WAaI,gBAAuBC,KAAvB,EAAqE;AACjE,yBAA0B,KAAKH,MAA/B;AAAA,UAAQI,IAAR,gBAAQA,IAAR;AAAA,UAAiBC,IAAjB;;AACA,UAAMC,QAAQ,GAAG,OAAOF,IAAP,KAAgB,UAAhB,GAA6BA,IAAI,CAACD,KAAD,CAAjC,GAA2CC,IAA5D;AACA,0BACI,oBAAC,aAAD;AAAe,QAAA,IAAI,EAAEE;AAArB,SAAmCD,IAAnC,oFACkBF,KADlB,EADJ;AAKH;AArBL;;AAAA;AAAA,EAA0CR,SAA1C;AA4BA,WAAaY,gBAAb;AAAA;;AAAA;;AACI,4BAAmBR,EAAnB,EAA+BC,MAA/B,EAA+C;AAAA;;AAAA;;AAC3C,+BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKQ,OAAL,CAAa,KAAb;;AAEA,UAAKR,MAAL,CAAYS,KAAZ,CAAkBC,OAAlB,CAA0B,UAAAC,IAAI,EAAI;AAC9B,YAAKC,UAAL,CAAgB,IAAId,oBAAJ,CAAyBa,IAAI,CAACZ,EAA9B,EAAkCY,IAAlC,CAAhB;AACH,KAFD;;AAL2C;AAQ9C;;AATL;AAAA;AAAA,WAWI,iCAA+BZ,EAA/B,EAAiE;AAC7D,aAAO,KAAKc,UAAL,CAAgBd,EAAhB,CAAP;AACH;AAbL;AAAA;AAAA,WAeI,gBAAuBI,KAAvB,EAAqE;AACjE;AACR;AACA;AACA;AACQ;AACA,0BAAO,oBAAC,SAAD;AAAW,QAAA,SAAS,EAAE;AAAtB,sFAAuCA,KAAvC,EAAP;AACH;AAtBL;;AAAA;AAAA,EAAsCR,SAAtC","sourcesContent":["import React from \"react\";\nimport { UIElement, UIElementConfig, UiElementRenderProps } from \"~/ui/UIElement\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\n\ninterface GetterWithProps<TProps, T> {\n (props: TProps): T;\n}\n\ninterface Item<TProps = any> extends UIElementConfig {\n id: string;\n title: string;\n description: string;\n icon: React.ReactElement;\n open?: boolean | GetterWithProps<TProps, boolean>;\n}\n\nexport class AccordionItemElement extends UIElement<Item> {\n public constructor(id: string, config: Item) {\n super(id, config);\n }\n\n public setTitle(title: string): void {\n this.config.title = title;\n }\n\n public setDescription(description: string): void {\n this.config.description = description;\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n const { open, ...rest } = this.config;\n const isOpened = typeof open === \"function\" ? open(props) : open;\n return (\n <AccordionItem open={isOpened} {...rest}>\n {super.render(props)}\n </AccordionItem>\n );\n }\n}\n\ninterface Config extends UIElementConfig {\n items: Item[];\n}\n\nexport class AccordionElement extends UIElement<Config> {\n public constructor(id: string, config: Config) {\n super(id, config);\n\n this.useGrid(false);\n\n this.config.items.forEach(item => {\n this.addElement(new AccordionItemElement(item.id, item));\n });\n }\n\n public getAccordionItemElement(id: string): AccordionItemElement {\n return this.getElement(id) as AccordionItemElement;\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n /**\n * Figure out correct way to have props.children typed.\n * TODO @ts-refactor\n */\n // @ts-ignore\n return <Accordion elevation={0}>{super.render(props)}</Accordion>;\n }\n}\n"]}
|
|
@@ -14,11 +14,11 @@ export interface ButtonElementConfig<TRenderProps> extends UIElementConfig {
|
|
|
14
14
|
}
|
|
15
15
|
export declare class ButtonElement<TRenderProps = any> extends UIElement<ButtonElementConfig<TRenderProps>> {
|
|
16
16
|
setLabel<TProps extends TRenderProps = TRenderProps>(label: string | GetterWithProps<TProps, string>): void;
|
|
17
|
-
getLabel(props?:
|
|
17
|
+
getLabel(props?: TRenderProps): string;
|
|
18
18
|
setType(type: ButtonElementType): void;
|
|
19
|
-
getType(props?:
|
|
19
|
+
getType(props?: TRenderProps): ButtonElementType;
|
|
20
20
|
setOnClick(onClick: ButtonOnClick<TRenderProps>): void;
|
|
21
21
|
getOnClick(): ButtonOnClick<TRenderProps>;
|
|
22
|
-
render(props:
|
|
22
|
+
render(props: TRenderProps): React.ReactElement;
|
|
23
23
|
}
|
|
24
24
|
export {};
|