@webiny/app-admin 0.0.0-unstable.611c5af35e → 0.0.0-unstable.615a930a68
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.js +15 -1
- package/base/Admin.js.map +1 -1
- package/base/Base.js +23 -4
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +8 -0
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.js +5 -0
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +7 -1
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.js +5 -0
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js +16 -3
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.js +4 -0
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js +7 -2
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js +4 -0
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/Layout.js +6 -1
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.js +4 -0
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.js +6 -0
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.js +6 -0
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.js +31 -2
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.js +44 -11
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js +4 -0
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.js +23 -5
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.js +8 -1
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.js +29 -5
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +6 -1
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js +52 -18
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +32 -9
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js +7 -0
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.js +4 -0
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js +69 -17
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +11 -3
- package/components/EmptyView.js.map +1 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +14 -0
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/components/FileManager/BottomInfoBar/UploadStatus.js +9 -0
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
- package/components/FileManager/BottomInfoBar.js +12 -0
- package/components/FileManager/BottomInfoBar.js.map +1 -1
- package/components/FileManager/DropFilesHere.js +12 -3
- package/components/FileManager/DropFilesHere.js.map +1 -1
- package/components/FileManager/File.js +18 -5
- package/components/FileManager/File.js.map +1 -1
- package/components/FileManager/FileDetails/Name.js +32 -4
- package/components/FileManager/FileDetails/Name.js.map +1 -1
- package/components/FileManager/FileDetails/Tags.js +77 -26
- package/components/FileManager/FileDetails/Tags.js.map +1 -1
- package/components/FileManager/FileDetails.js +146 -81
- package/components/FileManager/FileDetails.js.map +1 -1
- package/components/FileManager/FileManagerContext.js +45 -12
- package/components/FileManager/FileManagerContext.js.map +1 -1
- package/components/FileManager/FileManagerView.js +152 -45
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager/LeftSidebar.js +29 -10
- package/components/FileManager/LeftSidebar.js.map +1 -1
- package/components/FileManager/NoPermissionView.js +13 -0
- package/components/FileManager/NoPermissionView.js.map +1 -1
- package/components/FileManager/NoResults.js +6 -0
- package/components/FileManager/NoResults.js.map +1 -1
- package/components/FileManager/getFileTypePlugin.js +15 -9
- package/components/FileManager/getFileTypePlugin.js.map +1 -1
- package/components/FileManager/getFileUploader.js +5 -0
- package/components/FileManager/getFileUploader.js.map +1 -1
- package/components/FileManager/graphql.js +14 -3
- package/components/FileManager/graphql.js.map +1 -1
- package/components/FileManager/outputFileSelectionError.js +14 -0
- package/components/FileManager/outputFileSelectionError.js.map +1 -1
- package/components/FileManager.js +43 -17
- package/components/FileManager.js.map +1 -1
- package/components/FloatingActionButton.js +6 -0
- package/components/FloatingActionButton.js.map +1 -1
- package/components/MultiImageUpload.js +10 -1
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +36 -7
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js +2 -0
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/Permissions.js +27 -16
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.js +7 -0
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js +3 -0
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +7 -0
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js +2 -0
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +102 -62
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +36 -15
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +22 -5
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +39 -16
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +81 -55
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +41 -15
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +2 -0
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js +13 -6
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.js +11 -3
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.js +20 -0
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +1 -0
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.js +29 -13
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.js +28 -12
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +20 -0
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +1 -0
- package/components/SplitView/index.js.map +1 -1
- package/components/index.js +1 -0
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.js +14 -2
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +5 -0
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useSnackbar.js +5 -0
- package/hooks/useSnackbar.js.map +1 -1
- package/index.js +48 -0
- package/index.js.map +1 -1
- package/package.json +19 -19
- package/plugins/FileManagerFileTypePlugin.js +15 -0
- package/plugins/FileManagerFileTypePlugin.js.map +1 -1
- package/plugins/MenuPlugin.js +15 -0
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +15 -0
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/fileManager/fileDefault.js +6 -0
- package/plugins/fileManager/fileDefault.js.map +1 -1
- package/plugins/fileManager/fileImage/DeleteAction.js +29 -7
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
- package/plugins/fileManager/fileImage/EditAction.js +43 -9
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
- package/plugins/fileManager/fileImage/index.js +8 -0
- package/plugins/fileManager/fileImage/index.js.map +1 -1
- package/plugins/fileManager/index.js +2 -0
- package/plugins/fileManager/index.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +51 -3
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +31 -13
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.js +5 -1
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +16 -2
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/ui/UIElement.js +1 -0
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js +1 -0
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js +1 -0
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js +1 -0
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +28 -2
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +19 -0
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +19 -0
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js +2 -0
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +14 -0
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +36 -3
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +11 -0
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +11 -0
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +19 -0
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +19 -0
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js +2 -0
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +16 -0
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +34 -11
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +15 -0
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +22 -0
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +36 -7
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.js +5 -0
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +20 -0
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +21 -0
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +33 -0
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +17 -0
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +18 -0
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +15 -0
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +19 -1
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +17 -0
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +25 -1
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +40 -0
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +20 -0
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +20 -0
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +20 -0
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +21 -10
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js +8 -0
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.js +9 -0
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js +21 -0
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js +11 -0
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js +19 -0
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +24 -2
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +41 -0
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +19 -0
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +25 -3
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +22 -0
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +13 -3
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +37 -3
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +22 -2
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +40 -0
- package/ui/views/SplitView.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEAA,aAAA,CAAKC,MAAL,CAAY;EAAE,gBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;;AACAD,aAAA,CAAKC,MAAL,CAAY;EAAE,aAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;;AACAD,aAAA,CAAKC,MAAL,CAAY;EAAE,4BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;;AAEA,IAAMC,oBAAoB,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACvCC,QAAQ,EAAE,QAD6B;EAEvCC,QAAQ,EAAE,QAF6B;EAGvCC,MAAM,EAAE,CAH+B;EAIvCC,MAAM,EAAE,EAJ+B;EAKvCC,KAAK,EAAE,+CALgC;EAMvCC,SAAS,EAAE,0CAN4B;EAOvCC,eAAe,EAAE,0BAPsB;EAQvCC,KAAK,EAAE,MARgC;EASvCC,SAAS,EAAE,eAT4B;EAUvCC,QAAQ,EAAE,QAV6B;EAWvCC,OAAO,EAAE,MAX8B;EAYvCC,UAAU,EAAE,QAZ2B;EAavCC,MAAM,EAAE,CAb+B;EAcvC,SAAS;IACLC,OAAO,EAAE,QADJ;IAELN,KAAK,EAAE;EAFF;AAd8B,CAAjB,CAA1B;;AAoBA,IAAMO,aAAoE,GAAG,SAAvEA,aAAuE,CAAAC,KAAK,EAAI;EAClF,oBACI,6BAAC,oBAAD,qBACI,uDACI,6BAAC,2BAAD,EAAwBA,KAAxB,CADJ,eAEI,6BAAC,qBAAD,EAAkBA,KAAlB,CAFJ,CADJ,CADJ;AAQH,CATD;;eAWeD,a"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
9
12
|
var _emotion = require("emotion");
|
|
13
|
+
|
|
10
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
11
16
|
var _Icon = require("@webiny/ui/Icon");
|
|
17
|
+
|
|
12
18
|
var _roundCloud_upload24px = require("./icons/round-cloud_upload-24px.svg");
|
|
19
|
+
|
|
13
20
|
var styles = /*#__PURE__*/(0, _emotion.css)({
|
|
14
21
|
margin: "0 auto",
|
|
15
22
|
paddingTop: 0,
|
|
@@ -47,11 +54,12 @@ var styles = /*#__PURE__*/(0, _emotion.css)({
|
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
56
|
}, "label:styles;");
|
|
57
|
+
|
|
50
58
|
var DropFilesHere = function DropFilesHere(_ref) {
|
|
51
59
|
var onDrop = _ref.onDrop,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
onDragLeave = _ref.onDragLeave,
|
|
61
|
+
empty = _ref.empty,
|
|
62
|
+
onClick = _ref.onClick;
|
|
55
63
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
56
64
|
className: (0, _classnames.default)(styles, {
|
|
57
65
|
empty: empty
|
|
@@ -63,5 +71,6 @@ var DropFilesHere = function DropFilesHere(_ref) {
|
|
|
63
71
|
icon: /*#__PURE__*/_react.default.createElement(_roundCloud_upload24px.ReactComponent, null)
|
|
64
72
|
}), /*#__PURE__*/_react.default.createElement("div", null, "Drop files here"))));
|
|
65
73
|
};
|
|
74
|
+
|
|
66
75
|
var _default = DropFilesHere;
|
|
67
76
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick","classNames"],"sources":["DropFilesHere.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\n\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick","classNames"],"sources":["DropFilesHere.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\n\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,MAAM,EAAE,QADO;EAEfC,UAAU,EAAE,CAFG;EAGfC,MAAM,EAAE,MAHO;EAIfC,MAAM,EAAE,CAJO;EAKfC,KAAK,EAAE,MALQ;EAMfC,QAAQ,EAAE,UANK;EAOfC,eAAe,EAAE,qCAPF;EAQf,WAAW;IACPA,eAAe,EAAE,aADV;IAEP,SAAS;MACLA,eAAe,EAAE;IADZ;EAFF,CARI;EAcf,SAAS;IACLC,SAAS,EAAE,QADN;IAELH,KAAK,EAAE,GAFF;IAGLF,MAAM,EAAE,GAHH;IAILI,eAAe,EAAE,6BAJZ;IAKLE,YAAY,EAAE,KALT;IAMLH,QAAQ,EAAE,UANL;IAOLI,IAAI,EAAE,KAPD;IAQLC,GAAG,EAAE,KARA;IASLC,SAAS,EAAE,oCATN;IAUL,SAAS;MACLN,QAAQ,EAAE,UADL;MAELK,GAAG,EAAE,EAFA;MAGLN,KAAK,EAAE,GAHF;MAILQ,KAAK,EAAE,6BAJF;MAKL,wBAAwB;QACpBR,KAAK,EAAE,GADa;QAEpBS,OAAO,EAAE,cAFW;QAGpBD,KAAK,EAAE;MAHa;IALnB;EAVJ;AAdM,CAAJ,kBAAf;;AA6CA,IAAME,aAA2C,GAAG,SAA9CA,aAA8C,OAA6C;EAAA,IAA1CC,MAA0C,QAA1CA,MAA0C;EAAA,IAAlCC,WAAkC,QAAlCA,WAAkC;EAAA,IAArBC,KAAqB,QAArBA,KAAqB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EAC7F,oBACI;IACI,SAAS,EAAE,IAAAC,mBAAA,EAAWrB,MAAX,EAAmB;MAAEmB,KAAK,EAALA;IAAF,CAAnB,CADf;IAEI,MAAM,EAAEF,MAFZ;IAGI,OAAO,EAAEG,OAHb;IAII,WAAW,EAAEF;EAJjB,gBAMI,uDACI,uDACI,6BAAC,UAAD;IAAM,IAAI,eAAE,6BAAC,qCAAD;EAAZ,EADJ,eAEI,4DAFJ,CADJ,CANJ,CADJ;AAeH,CAhBD;;eAiBeF,a"}
|
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
9
12
|
var _reactLazyLoad = _interopRequireDefault(require("react-lazy-load"));
|
|
13
|
+
|
|
10
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
|
|
11
16
|
var _emotion = require("emotion");
|
|
17
|
+
|
|
12
18
|
var _Ripple = require("@webiny/ui/Ripple");
|
|
19
|
+
|
|
13
20
|
var _Button = require("@webiny/ui/Button");
|
|
21
|
+
|
|
14
22
|
var _roundCheck_box24px = require("./icons/round-check_box-24px.svg");
|
|
23
|
+
|
|
15
24
|
var _roundSettings24px = require("../../assets/icons/round-settings-24px.svg");
|
|
25
|
+
|
|
16
26
|
/**
|
|
17
27
|
* Package react-lazy-load has no types.
|
|
18
28
|
*/
|
|
19
29
|
// @ts-ignore
|
|
20
|
-
|
|
21
30
|
var COMPONENT_WIDTH = 200;
|
|
22
31
|
var COMPONENT_HEIGHT = 200;
|
|
23
32
|
var grow = /*#__PURE__*/(0, _emotion.keyframes)("0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}label:grow;");
|
|
@@ -94,12 +103,13 @@ var styles = /*#__PURE__*/(0, _emotion.css)({
|
|
|
94
103
|
cursor: "auto"
|
|
95
104
|
}
|
|
96
105
|
}, "label:styles;");
|
|
106
|
+
|
|
97
107
|
var File = function File(props) {
|
|
98
108
|
var file = props.file,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
109
|
+
selected = props.selected,
|
|
110
|
+
onSelect = props.onSelect,
|
|
111
|
+
children = props.children,
|
|
112
|
+
showFileDetails = props.showFileDetails;
|
|
103
113
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
104
114
|
className: (0, _classnames.default)(styles, {
|
|
105
115
|
"disable-select": !onSelect
|
|
@@ -129,14 +139,17 @@ var File = function File(props) {
|
|
|
129
139
|
onClick: onSelect
|
|
130
140
|
}, file.name));
|
|
131
141
|
};
|
|
142
|
+
|
|
132
143
|
var MemoizedFile = /*#__PURE__*/_react.default.memo(File, function (prev, next) {
|
|
133
144
|
if (prev.selected !== next.selected) {
|
|
134
145
|
return false;
|
|
135
146
|
} else if (prev.file.name !== next.file.name) {
|
|
136
147
|
return false;
|
|
137
148
|
}
|
|
149
|
+
|
|
138
150
|
return true;
|
|
139
151
|
});
|
|
152
|
+
|
|
140
153
|
MemoizedFile.displayName = "MemoizedFile";
|
|
141
154
|
var _default = MemoizedFile;
|
|
142
155
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","keyframes","styles","css","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","color","top","left","opacity","right","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","padding","whiteSpace","textOverflow","fontSize","File","props","file","selected","onSelect","children","showFileDetails","classNames","name","MemoizedFile","React","memo","prev","next","displayName"],"sources":["File.tsx"],"sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport classNames from \"classnames\";\nimport { css, keyframes } from \"emotion\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as Checked } from \"./icons/round-check_box-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"../../assets/icons/round-settings-24px.svg\";\n\nconst COMPONENT_WIDTH = 200;\nconst COMPONENT_HEIGHT = 200;\n\nconst grow = keyframes`\n 0% {\n transform: scale(1)\n }\n 50% {\n transform: scale(1.2)\n }\n 100% {\n transform: scale(1)\n }\n`;\nconst styles = css({\n display: \"inline-block\",\n float: \"left\",\n position: \"relative\",\n zIndex: 1,\n margin: 10,\n cursor: \"pointer\",\n width: \"100%\",\n maxWidth: COMPONENT_WIDTH,\n border: \"1px solid var(--mdc-theme-on-background)\",\n borderRadius: 2,\n \"> .body\": {\n transition: \"200ms ease-in opacity\",\n width: COMPONENT_WIDTH,\n height: COMPONENT_HEIGHT,\n overflow: \"hidden\",\n \"--icon-color\": \"var(--mdc-theme-on-background)\",\n \".checkedIcon\": {\n color: \"var(--mdc-theme-secondary)\",\n position: \"absolute\",\n top: 4,\n left: 4,\n zIndex: 11\n },\n \".infoIcon\": {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n right: 0,\n zIndex: 10,\n transition: \"all 150ms ease-in\",\n \"& .mdc-icon-button svg\": {\n color: \"var(--mdc-theme-secondary)\"\n },\n \"&:hover\": {\n animationName: grow,\n animationDuration: \".4s\",\n animationTimingFunction: \"ease-in\",\n animationDelay: \".2s\"\n }\n },\n \".filePreview\": {\n textAlign: \"center\",\n position: \"relative\",\n backgroundColor: \"#fff\",\n width: \"100%\",\n height: \"100%\",\n \".clickableArea\": {\n position: \"absolute\",\n top: 30,\n left: 0,\n width: \"100%\",\n height: 170,\n zIndex: 2\n }\n },\n \"&:hover .infoIcon\": {\n opacity: 1\n }\n },\n \"> .label\": {\n padding: \"15px 10px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n fontSize: \"0.8rem\",\n color: \"var(--mdc-theme-on-surface)\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n },\n \"&.disable-select\": {\n cursor: \"auto\"\n }\n});\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (event?: React.MouseEvent) => void;\n}\n\nconst File: React.FC<FileProps> = props => {\n const { file, selected, onSelect, children, showFileDetails } = props;\n\n return (\n <div\n className={classNames(styles, { \"disable-select\": !onSelect })}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <div className={\"body\"}>\n <div className={\"checkedIcon\"} onClick={onSelect}>\n {selected ? <Checked /> : null}\n </div>\n <div className={\"infoIcon\"}>\n <IconButton\n icon={<SettingsIcon />}\n onClick={showFileDetails}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </div>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <div className={\"filePreview\"}>\n <div className=\"clickableArea\" onClick={onSelect} />\n {children}\n </div>\n </Ripple>\n </LazyLoad>\n </div>\n <div className={\"label\"} onClick={onSelect}>\n {file.name}\n </div>\n </div>\n );\n};\n\nconst MemoizedFile = React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n\nMemoizedFile.displayName = \"MemoizedFile\";\nexport default MemoizedFile;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","keyframes","styles","css","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","color","top","left","opacity","right","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","padding","whiteSpace","textOverflow","fontSize","File","props","file","selected","onSelect","children","showFileDetails","classNames","name","MemoizedFile","React","memo","prev","next","displayName"],"sources":["File.tsx"],"sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport classNames from \"classnames\";\nimport { css, keyframes } from \"emotion\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as Checked } from \"./icons/round-check_box-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"../../assets/icons/round-settings-24px.svg\";\n\nconst COMPONENT_WIDTH = 200;\nconst COMPONENT_HEIGHT = 200;\n\nconst grow = keyframes`\n 0% {\n transform: scale(1)\n }\n 50% {\n transform: scale(1.2)\n }\n 100% {\n transform: scale(1)\n }\n`;\nconst styles = css({\n display: \"inline-block\",\n float: \"left\",\n position: \"relative\",\n zIndex: 1,\n margin: 10,\n cursor: \"pointer\",\n width: \"100%\",\n maxWidth: COMPONENT_WIDTH,\n border: \"1px solid var(--mdc-theme-on-background)\",\n borderRadius: 2,\n \"> .body\": {\n transition: \"200ms ease-in opacity\",\n width: COMPONENT_WIDTH,\n height: COMPONENT_HEIGHT,\n overflow: \"hidden\",\n \"--icon-color\": \"var(--mdc-theme-on-background)\",\n \".checkedIcon\": {\n color: \"var(--mdc-theme-secondary)\",\n position: \"absolute\",\n top: 4,\n left: 4,\n zIndex: 11\n },\n \".infoIcon\": {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n right: 0,\n zIndex: 10,\n transition: \"all 150ms ease-in\",\n \"& .mdc-icon-button svg\": {\n color: \"var(--mdc-theme-secondary)\"\n },\n \"&:hover\": {\n animationName: grow,\n animationDuration: \".4s\",\n animationTimingFunction: \"ease-in\",\n animationDelay: \".2s\"\n }\n },\n \".filePreview\": {\n textAlign: \"center\",\n position: \"relative\",\n backgroundColor: \"#fff\",\n width: \"100%\",\n height: \"100%\",\n \".clickableArea\": {\n position: \"absolute\",\n top: 30,\n left: 0,\n width: \"100%\",\n height: 170,\n zIndex: 2\n }\n },\n \"&:hover .infoIcon\": {\n opacity: 1\n }\n },\n \"> .label\": {\n padding: \"15px 10px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n fontSize: \"0.8rem\",\n color: \"var(--mdc-theme-on-surface)\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n },\n \"&.disable-select\": {\n cursor: \"auto\"\n }\n});\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (event?: React.MouseEvent) => void;\n}\n\nconst File: React.FC<FileProps> = props => {\n const { file, selected, onSelect, children, showFileDetails } = props;\n\n return (\n <div\n className={classNames(styles, { \"disable-select\": !onSelect })}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <div className={\"body\"}>\n <div className={\"checkedIcon\"} onClick={onSelect}>\n {selected ? <Checked /> : null}\n </div>\n <div className={\"infoIcon\"}>\n <IconButton\n icon={<SettingsIcon />}\n onClick={showFileDetails}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </div>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <div className={\"filePreview\"}>\n <div className=\"clickableArea\" onClick={onSelect} />\n {children}\n </div>\n </Ripple>\n </LazyLoad>\n </div>\n <div className={\"label\"} onClick={onSelect}>\n {file.name}\n </div>\n </div>\n );\n};\n\nconst MemoizedFile = React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n\nMemoizedFile.displayName = \"MemoizedFile\";\nexport default MemoizedFile;\n"],"mappings":";;;;;;;;;AAAA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAVA;AACA;AACA;AACA;AASA,IAAMA,eAAe,GAAG,GAAxB;AACA,IAAMC,gBAAgB,GAAG,GAAzB;AAEA,IAAMC,IAAI,oBAAGC,kBAAH,uFAAV;AAWA,IAAMC,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,OAAO,EAAE,cADM;EAEfC,KAAK,EAAE,MAFQ;EAGfC,QAAQ,EAAE,UAHK;EAIfC,MAAM,EAAE,CAJO;EAKfC,MAAM,EAAE,EALO;EAMfC,MAAM,EAAE,SANO;EAOfC,KAAK,EAAE,MAPQ;EAQfC,QAAQ,EAAEb,eARK;EASfc,MAAM,EAAE,0CATO;EAUfC,YAAY,EAAE,CAVC;EAWf,WAAW;IACPC,UAAU,EAAE,uBADL;IAEPJ,KAAK,EAAEZ,eAFA;IAGPiB,MAAM,EAAEhB,gBAHD;IAIPiB,QAAQ,EAAE,QAJH;IAKP,gBAAgB,gCALT;IAMP,gBAAgB;MACZC,KAAK,EAAE,4BADK;MAEZX,QAAQ,EAAE,UAFE;MAGZY,GAAG,EAAE,CAHO;MAIZC,IAAI,EAAE,CAJM;MAKZZ,MAAM,EAAE;IALI,CANT;IAaP,aAAa;MACTa,OAAO,EAAE,CADA;MAETd,QAAQ,EAAE,UAFD;MAGTY,GAAG,EAAE,CAHI;MAITG,KAAK,EAAE,CAJE;MAKTd,MAAM,EAAE,EALC;MAMTO,UAAU,EAAE,mBANH;MAOT,0BAA0B;QACtBG,KAAK,EAAE;MADe,CAPjB;MAUT,WAAW;QACPK,aAAa,EAAEtB,IADR;QAEPuB,iBAAiB,EAAE,KAFZ;QAGPC,uBAAuB,EAAE,SAHlB;QAIPC,cAAc,EAAE;MAJT;IAVF,CAbN;IA8BP,gBAAgB;MACZC,SAAS,EAAE,QADC;MAEZpB,QAAQ,EAAE,UAFE;MAGZqB,eAAe,EAAE,MAHL;MAIZjB,KAAK,EAAE,MAJK;MAKZK,MAAM,EAAE,MALI;MAMZ,kBAAkB;QACdT,QAAQ,EAAE,UADI;QAEdY,GAAG,EAAE,EAFS;QAGdC,IAAI,EAAE,CAHQ;QAIdT,KAAK,EAAE,MAJO;QAKdK,MAAM,EAAE,GALM;QAMdR,MAAM,EAAE;MANM;IANN,CA9BT;IA6CP,qBAAqB;MACjBa,OAAO,EAAE;IADQ;EA7Cd,CAXI;EA4Df,YAAY;IACRQ,OAAO,EAAE,WADD;IAERC,UAAU,EAAE,QAFJ;IAGRb,QAAQ,EAAE,QAHF;IAIRc,YAAY,EAAE,UAJN;IAKRC,QAAQ,EAAE,QALF;IAMRd,KAAK,EAAE,6BANC;IAORU,eAAe,EAAE;EAPT,CA5DG;EAqEf,oBAAoB;IAChBlB,MAAM,EAAE;EADQ;AArEL,CAAJ,kBAAf;;AAqFA,IAAMuB,IAAyB,GAAG,SAA5BA,IAA4B,CAAAC,KAAK,EAAI;EACvC,IAAQC,IAAR,GAAgED,KAAhE,CAAQC,IAAR;EAAA,IAAcC,QAAd,GAAgEF,KAAhE,CAAcE,QAAd;EAAA,IAAwBC,QAAxB,GAAgEH,KAAhE,CAAwBG,QAAxB;EAAA,IAAkCC,QAAlC,GAAgEJ,KAAhE,CAAkCI,QAAlC;EAAA,IAA4CC,eAA5C,GAAgEL,KAAhE,CAA4CK,eAA5C;EAEA,oBACI;IACI,SAAS,EAAE,IAAAC,mBAAA,EAAWrC,MAAX,EAAmB;MAAE,kBAAkB,CAACkC;IAArB,CAAnB,CADf;IAEI,eAAa;EAFjB,gBAII;IAAK,SAAS,EAAE;EAAhB,gBACI;IAAK,SAAS,EAAE,aAAhB;IAA+B,OAAO,EAAEA;EAAxC,GACKD,QAAQ,gBAAG,6BAAC,kCAAD,OAAH,GAAiB,IAD9B,CADJ,eAII;IAAK,SAAS,EAAE;EAAhB,gBACI,6BAAC,kBAAD;IACI,IAAI,eAAE,6BAAC,iCAAD,OADV;IAEI,OAAO,EAAEG,eAFb;IAGI,eAAa;EAHjB,EADJ,CAJJ,eAWI,6BAAC,sBAAD;IAAU,MAAM,EAAE,GAAlB;IAAuB,cAAc,EAAE;EAAvC,gBACI,6BAAC,cAAD,qBACI;IAAK,SAAS,EAAE;EAAhB,gBACI;IAAK,SAAS,EAAC,eAAf;IAA+B,OAAO,EAAEF;EAAxC,EADJ,EAEKC,QAFL,CADJ,CADJ,CAXJ,CAJJ,eAwBI;IAAK,SAAS,EAAE,OAAhB;IAAyB,OAAO,EAAED;EAAlC,GACKF,IAAI,CAACM,IADV,CAxBJ,CADJ;AA8BH,CAjCD;;AAmCA,IAAMC,YAAY,gBAAGC,cAAA,CAAMC,IAAN,CAAWX,IAAX,EAAiB,UAACY,IAAD,EAAOC,IAAP,EAAgB;EAClD,IAAID,IAAI,CAACT,QAAL,KAAkBU,IAAI,CAACV,QAA3B,EAAqC;IACjC,OAAO,KAAP;EACH,CAFD,MAEO,IAAIS,IAAI,CAACV,IAAL,CAAUM,IAAV,KAAmBK,IAAI,CAACX,IAAL,CAAUM,IAAjC,EAAuC;IAC1C,OAAO,KAAP;EACH;;EAED,OAAO,IAAP;AACH,CARoB,CAArB;;AAUAC,YAAY,CAACK,WAAb,GAA2B,cAA3B;eACeL,Y"}
|
|
@@ -1,32 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
4
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.default = void 0;
|
|
11
|
+
|
|
9
12
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
13
|
+
|
|
10
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
11
16
|
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
17
|
+
|
|
12
18
|
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
19
|
+
|
|
13
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
14
22
|
var _reactHooks = require("@apollo/react-hooks");
|
|
23
|
+
|
|
15
24
|
var _Input = require("@webiny/ui/Input");
|
|
25
|
+
|
|
16
26
|
var _form = require("@webiny/form");
|
|
27
|
+
|
|
17
28
|
var _validation = require("@webiny/validation");
|
|
29
|
+
|
|
18
30
|
var _useSnackbar2 = require("../../../hooks/useSnackbar");
|
|
31
|
+
|
|
19
32
|
var _graphql = require("./../graphql");
|
|
33
|
+
|
|
20
34
|
var _FileManagerContext = require("./../FileManagerContext");
|
|
35
|
+
|
|
21
36
|
var Name = function Name(_ref) {
|
|
22
37
|
var file = _ref.file,
|
|
23
|
-
|
|
38
|
+
canEdit = _ref.canEdit;
|
|
24
39
|
var name = file.name || "";
|
|
40
|
+
|
|
25
41
|
var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
|
|
26
|
-
|
|
42
|
+
showSnackbar = _useSnackbar.showSnackbar;
|
|
43
|
+
|
|
27
44
|
var client = (0, _reactHooks.useApolloClient)();
|
|
45
|
+
|
|
28
46
|
var _useFileManager = (0, _FileManagerContext.useFileManager)(),
|
|
29
|
-
|
|
47
|
+
queryParams = _useFileManager.queryParams;
|
|
48
|
+
|
|
30
49
|
var editContent = (0, _react.useMemo)(function () {
|
|
31
50
|
return /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
32
51
|
data: {
|
|
@@ -40,11 +59,14 @@ var Name = function Name(_ref) {
|
|
|
40
59
|
switch (_context.prev = _context.next) {
|
|
41
60
|
case 0:
|
|
42
61
|
name = _ref2.name;
|
|
62
|
+
|
|
43
63
|
if (!(name === file.name)) {
|
|
44
64
|
_context.next = 3;
|
|
45
65
|
break;
|
|
46
66
|
}
|
|
67
|
+
|
|
47
68
|
return _context.abrupt("return");
|
|
69
|
+
|
|
48
70
|
case 3:
|
|
49
71
|
_context.next = 5;
|
|
50
72
|
return client.mutate({
|
|
@@ -61,6 +83,7 @@ var Name = function Name(_ref) {
|
|
|
61
83
|
query: _graphql.LIST_FILES,
|
|
62
84
|
variables: queryParams
|
|
63
85
|
}));
|
|
86
|
+
|
|
64
87
|
if (data) {
|
|
65
88
|
data.fileManager.listFiles.data.forEach(function (item) {
|
|
66
89
|
if (item.src === newFileData.src) {
|
|
@@ -68,6 +91,7 @@ var Name = function Name(_ref) {
|
|
|
68
91
|
}
|
|
69
92
|
});
|
|
70
93
|
}
|
|
94
|
+
|
|
71
95
|
cache.writeQuery({
|
|
72
96
|
query: _graphql.LIST_FILES,
|
|
73
97
|
variables: queryParams,
|
|
@@ -75,8 +99,10 @@ var Name = function Name(_ref) {
|
|
|
75
99
|
});
|
|
76
100
|
}
|
|
77
101
|
});
|
|
102
|
+
|
|
78
103
|
case 5:
|
|
79
104
|
showSnackbar("Name successfully updated.");
|
|
105
|
+
|
|
80
106
|
case 6:
|
|
81
107
|
case "end":
|
|
82
108
|
return _context.stop();
|
|
@@ -84,13 +110,14 @@ var Name = function Name(_ref) {
|
|
|
84
110
|
}
|
|
85
111
|
}, _callee);
|
|
86
112
|
}));
|
|
113
|
+
|
|
87
114
|
return function (_x) {
|
|
88
115
|
return _ref3.apply(this, arguments);
|
|
89
116
|
};
|
|
90
117
|
}()
|
|
91
118
|
}, function (_ref4) {
|
|
92
119
|
var Bind = _ref4.Bind,
|
|
93
|
-
|
|
120
|
+
submit = _ref4.submit;
|
|
94
121
|
return /*#__PURE__*/_react.default.createElement(Bind, {
|
|
95
122
|
name: "name",
|
|
96
123
|
validators: _validation.validation.create("required")
|
|
@@ -106,5 +133,6 @@ var Name = function Name(_ref) {
|
|
|
106
133
|
}, [name, file.name, canEdit]);
|
|
107
134
|
return /*#__PURE__*/_react.default.createElement("li-content", null, editContent);
|
|
108
135
|
};
|
|
136
|
+
|
|
109
137
|
var _default = Name;
|
|
110
138
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Name","file","canEdit","name","useSnackbar","showSnackbar","client","useApolloClient","useFileManager","queryParams","editContent","useMemo","mutate","mutation","UPDATE_FILE","variables","id","data","update","cache","updated","newFileData","readQuery","query","LIST_FILES","fileManager","listFiles","forEach","item","src","writeQuery","Bind","submit","validation","create"],"sources":["Name.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { get, cloneDeep } from \"lodash\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport {\n UPDATE_FILE,\n LIST_FILES,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables,\n ListFilesQueryResponse\n} from \"./../graphql\";\nimport { useFileManager } from \"./../FileManagerContext\";\nimport { FileItem } from \"../types\";\n\ninterface NameProps {\n file: FileItem;\n canEdit: (file: FileItem) => boolean;\n}\nconst Name: React.FC<NameProps> = ({ file, canEdit }) => {\n const name = file.name || \"\";\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n\n const { queryParams } = useFileManager();\n\n const editContent = useMemo(() => {\n return (\n <Form\n data={{\n name\n }}\n onSubmit={async ({ name }) => {\n // Bail out if name is same as the current file name.\n if (name === file.name) {\n return;\n }\n // Update file.\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id: file.id,\n data: { name }\n },\n update: (cache, updated) => {\n const newFileData = get(\n updated,\n \"data.fileManager.updateFile.data\"\n ) as unknown as FileItem;\n const data = cloneDeep(\n cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n })\n );\n\n if (data) {\n data.fileManager.listFiles.data.forEach(item => {\n if (item.src === newFileData.src) {\n item.name = newFileData.name;\n }\n });\n }\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: data\n });\n }\n });\n\n showSnackbar(\"Name successfully updated.\");\n }}\n >\n {({ Bind, submit }) => (\n <Bind name={\"name\"} validators={validation.create(\"required\")}>\n <Input\n disabled={!canEdit(file)}\n autoFocus\n placeholder={\"Enter name\"}\n fullwidth={true}\n onBlur={submit}\n description={\"A descriptive name is easier to remember.\"}\n />\n </Bind>\n )}\n </Form>\n );\n }, [name, file.name, canEdit]);\n\n return <li-content>{editContent}</li-content>;\n};\n\nexport default Name;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Name","file","canEdit","name","useSnackbar","showSnackbar","client","useApolloClient","useFileManager","queryParams","editContent","useMemo","mutate","mutation","UPDATE_FILE","variables","id","data","update","cache","updated","newFileData","readQuery","query","LIST_FILES","fileManager","listFiles","forEach","item","src","writeQuery","Bind","submit","validation","create"],"sources":["Name.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { get, cloneDeep } from \"lodash\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport {\n UPDATE_FILE,\n LIST_FILES,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables,\n ListFilesQueryResponse\n} from \"./../graphql\";\nimport { useFileManager } from \"./../FileManagerContext\";\nimport { FileItem } from \"../types\";\n\ninterface NameProps {\n file: FileItem;\n canEdit: (file: FileItem) => boolean;\n}\nconst Name: React.FC<NameProps> = ({ file, canEdit }) => {\n const name = file.name || \"\";\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n\n const { queryParams } = useFileManager();\n\n const editContent = useMemo(() => {\n return (\n <Form\n data={{\n name\n }}\n onSubmit={async ({ name }) => {\n // Bail out if name is same as the current file name.\n if (name === file.name) {\n return;\n }\n // Update file.\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id: file.id,\n data: { name }\n },\n update: (cache, updated) => {\n const newFileData = get(\n updated,\n \"data.fileManager.updateFile.data\"\n ) as unknown as FileItem;\n const data = cloneDeep(\n cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n })\n );\n\n if (data) {\n data.fileManager.listFiles.data.forEach(item => {\n if (item.src === newFileData.src) {\n item.name = newFileData.name;\n }\n });\n }\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: data\n });\n }\n });\n\n showSnackbar(\"Name successfully updated.\");\n }}\n >\n {({ Bind, submit }) => (\n <Bind name={\"name\"} validators={validation.create(\"required\")}>\n <Input\n disabled={!canEdit(file)}\n autoFocus\n placeholder={\"Enter name\"}\n fullwidth={true}\n onBlur={submit}\n description={\"A descriptive name is easier to remember.\"}\n />\n </Bind>\n )}\n </Form>\n );\n }, [name, file.name, canEdit]);\n\n return <li-content>{editContent}</li-content>;\n};\n\nexport default Name;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AAOA,IAAMA,IAAyB,GAAG,SAA5BA,IAA4B,OAAuB;EAAA,IAApBC,IAAoB,QAApBA,IAAoB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EACrD,IAAMC,IAAI,GAAGF,IAAI,CAACE,IAAL,IAAa,EAA1B;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,IAAMC,MAAM,GAAG,IAAAC,2BAAA,GAAf;;EAEA,sBAAwB,IAAAC,kCAAA,GAAxB;EAAA,IAAQC,WAAR,mBAAQA,WAAR;;EAEA,IAAMC,WAAW,GAAG,IAAAC,cAAA,EAAQ,YAAM;IAC9B,oBACI,6BAAC,UAAD;MACI,IAAI,EAAE;QACFR,IAAI,EAAJA;MADE,CADV;MAII,QAAQ;QAAA,mGAAE;UAAA;UAAA;YAAA;cAAA;gBAAA;kBAASA,IAAT,SAASA,IAAT;;kBAAA,MAEFA,IAAI,KAAKF,IAAI,CAACE,IAFZ;oBAAA;oBAAA;kBAAA;;kBAAA;;gBAAA;kBAAA;kBAAA,OAMAG,MAAM,CAACM,MAAP,CAAuE;oBACzEC,QAAQ,EAAEC,oBAD+D;oBAEzEC,SAAS,EAAE;sBACPC,EAAE,EAAEf,IAAI,CAACe,EADF;sBAEPC,IAAI,EAAE;wBAAEd,IAAI,EAAJA;sBAAF;oBAFC,CAF8D;oBAMzEe,MAAM,EAAE,gBAACC,KAAD,EAAQC,OAAR,EAAoB;sBACxB,IAAMC,WAAW,GAAG,mBAChBD,OADgB,EAEhB,kCAFgB,CAApB;sBAIA,IAAMH,IAAI,GAAG,yBACTE,KAAK,CAACG,SAAN,CAAwC;wBACpCC,KAAK,EAAEC,mBAD6B;wBAEpCT,SAAS,EAAEN;sBAFyB,CAAxC,CADS,CAAb;;sBAOA,IAAIQ,IAAJ,EAAU;wBACNA,IAAI,CAACQ,WAAL,CAAiBC,SAAjB,CAA2BT,IAA3B,CAAgCU,OAAhC,CAAwC,UAAAC,IAAI,EAAI;0BAC5C,IAAIA,IAAI,CAACC,GAAL,KAAaR,WAAW,CAACQ,GAA7B,EAAkC;4BAC9BD,IAAI,CAACzB,IAAL,GAAYkB,WAAW,CAAClB,IAAxB;0BACH;wBACJ,CAJD;sBAKH;;sBAEDgB,KAAK,CAACW,UAAN,CAAiB;wBACbP,KAAK,EAAEC,mBADM;wBAEbT,SAAS,EAAEN,WAFE;wBAGbQ,IAAI,EAAEA;sBAHO,CAAjB;oBAKH;kBA/BwE,CAAvE,CANA;;gBAAA;kBAwCNZ,YAAY,CAAC,4BAAD,CAAZ;;gBAxCM;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAAF;;QAAA;UAAA;QAAA;MAAA;IAJZ,GA+CK;MAAA,IAAG0B,IAAH,SAAGA,IAAH;MAAA,IAASC,MAAT,SAASA,MAAT;MAAA,oBACG,6BAAC,IAAD;QAAM,IAAI,EAAE,MAAZ;QAAoB,UAAU,EAAEC,sBAAA,CAAWC,MAAX,CAAkB,UAAlB;MAAhC,gBACI,6BAAC,YAAD;QACI,QAAQ,EAAE,CAAChC,OAAO,CAACD,IAAD,CADtB;QAEI,SAAS,MAFb;QAGI,WAAW,EAAE,YAHjB;QAII,SAAS,EAAE,IAJf;QAKI,MAAM,EAAE+B,MALZ;QAMI,WAAW,EAAE;MANjB,EADJ,CADH;IAAA,CA/CL,CADJ;EA8DH,CA/DmB,EA+DjB,CAAC7B,IAAD,EAAOF,IAAI,CAACE,IAAZ,EAAkBD,OAAlB,CA/DiB,CAApB;EAiEA,oBAAO,iDAAaQ,WAAb,CAAP;AACH,CAzED;;eA2EeV,I"}
|
|
@@ -1,42 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
4
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.tagWithoutScopePrefix = exports.formatTagAsLabel = exports.default = void 0;
|
|
11
|
+
|
|
9
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
10
14
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
15
|
+
|
|
11
16
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
+
|
|
12
18
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
19
|
+
|
|
13
20
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
21
|
+
|
|
14
22
|
var _react = _interopRequireWildcard(require("react"));
|
|
23
|
+
|
|
15
24
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
25
|
+
|
|
16
26
|
var _emotion = require("emotion");
|
|
27
|
+
|
|
17
28
|
var _reactHooks = require("@apollo/react-hooks");
|
|
29
|
+
|
|
18
30
|
var _set = _interopRequireDefault(require("lodash/set"));
|
|
31
|
+
|
|
19
32
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
33
|
+
|
|
20
34
|
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
35
|
+
|
|
21
36
|
var _Chips = require("@webiny/ui/Chips");
|
|
37
|
+
|
|
22
38
|
var _Button = require("@webiny/ui/Button");
|
|
39
|
+
|
|
23
40
|
var _AutoComplete = require("@webiny/ui/AutoComplete");
|
|
41
|
+
|
|
24
42
|
var _Icon = require("@webiny/ui/Icon");
|
|
43
|
+
|
|
25
44
|
var _form = require("@webiny/form");
|
|
45
|
+
|
|
26
46
|
var _useSnackbar2 = require("../../../hooks/useSnackbar");
|
|
47
|
+
|
|
27
48
|
var _FileManagerContext = require("./../FileManagerContext");
|
|
49
|
+
|
|
28
50
|
var _graphql = require("./../graphql");
|
|
51
|
+
|
|
29
52
|
var _roundEdit24px = require("./../icons/round-edit-24px.svg");
|
|
53
|
+
|
|
30
54
|
var _roundLabel24px = require("./../icons/round-label-24px.svg");
|
|
55
|
+
|
|
31
56
|
var _excluded = ["value"];
|
|
32
57
|
var SCOPE_SEPARATOR = ":";
|
|
58
|
+
|
|
33
59
|
var formatTagAsLabel = function formatTagAsLabel(tag, scope) {
|
|
34
60
|
if (!scope) {
|
|
35
61
|
return tag;
|
|
36
62
|
}
|
|
63
|
+
|
|
37
64
|
return tag.replace("".concat(scope).concat(SCOPE_SEPARATOR), "");
|
|
38
65
|
};
|
|
66
|
+
|
|
39
67
|
exports.formatTagAsLabel = formatTagAsLabel;
|
|
68
|
+
|
|
40
69
|
var tagWithoutScopePrefix = function tagWithoutScopePrefix(tags, scope) {
|
|
41
70
|
return tags.filter(function (tag) {
|
|
42
71
|
return tag !== scope;
|
|
@@ -44,6 +73,7 @@ var tagWithoutScopePrefix = function tagWithoutScopePrefix(tags, scope) {
|
|
|
44
73
|
return formatTagAsLabel(tag, scope);
|
|
45
74
|
});
|
|
46
75
|
};
|
|
76
|
+
|
|
47
77
|
exports.tagWithoutScopePrefix = tagWithoutScopePrefix;
|
|
48
78
|
var chipsStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
49
79
|
"&.mdc-chip-set": {
|
|
@@ -74,26 +104,33 @@ var actionWrapperStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
|
74
104
|
marginRight: 16
|
|
75
105
|
}
|
|
76
106
|
}, "label:actionWrapperStyle;");
|
|
107
|
+
|
|
77
108
|
var Tags = function Tags(_ref) {
|
|
78
109
|
var file = _ref.file,
|
|
79
|
-
|
|
110
|
+
canEdit = _ref.canEdit;
|
|
80
111
|
var client = (0, _reactHooks.useApolloClient)();
|
|
112
|
+
|
|
81
113
|
var _useState = (0, _react.useState)(false),
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
114
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
115
|
+
editing = _useState2[0],
|
|
116
|
+
setEdit = _useState2[1];
|
|
117
|
+
|
|
85
118
|
var _useState3 = (0, _react.useState)(false),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
119
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
120
|
+
saving = _useState4[0],
|
|
121
|
+
setSaving = _useState4[1];
|
|
122
|
+
|
|
89
123
|
var _useState5 = (0, _react.useState)(Array.isArray(file.tags) ? (0, _toConsumableArray2.default)(file.tags) : []),
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
124
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
125
|
+
initialTags = _useState6[0],
|
|
126
|
+
setInitialTags = _useState6[1];
|
|
127
|
+
|
|
93
128
|
var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
|
|
94
|
-
|
|
129
|
+
showSnackbar = _useSnackbar.showSnackbar;
|
|
130
|
+
|
|
95
131
|
var _useFileManager = (0, _FileManagerContext.useFileManager)(),
|
|
96
|
-
|
|
132
|
+
queryParams = _useFileManager.queryParams;
|
|
133
|
+
|
|
97
134
|
var handleEdit = (0, _react.useCallback)(function () {
|
|
98
135
|
return setEdit(true);
|
|
99
136
|
}, []);
|
|
@@ -107,10 +144,13 @@ var Tags = function Tags(_ref) {
|
|
|
107
144
|
var isEditingAllowed = canEdit(file);
|
|
108
145
|
var renderHeaderContent = (0, _react.useCallback)(function (_ref2) {
|
|
109
146
|
var data = _ref2.data;
|
|
147
|
+
|
|
110
148
|
if (editing) {
|
|
111
149
|
return null;
|
|
112
150
|
}
|
|
151
|
+
|
|
113
152
|
var hasTags = data.tags.length > 0;
|
|
153
|
+
|
|
114
154
|
if (hasTags) {
|
|
115
155
|
// Render existing tags and "edit tags" action.
|
|
116
156
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Chips.Chips, {
|
|
@@ -128,8 +168,9 @@ var Tags = function Tags(_ref) {
|
|
|
128
168
|
icon: /*#__PURE__*/_react.default.createElement(_roundEdit24px.ReactComponent, null),
|
|
129
169
|
onClick: handleEdit
|
|
130
170
|
}));
|
|
131
|
-
}
|
|
132
|
-
|
|
171
|
+
} // Render "add tags" action.
|
|
172
|
+
|
|
173
|
+
|
|
133
174
|
return /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
|
|
134
175
|
className: addTagsStyle,
|
|
135
176
|
onClick: handleEdit,
|
|
@@ -159,13 +200,13 @@ var Tags = function Tags(_ref) {
|
|
|
159
200
|
}
|
|
160
201
|
},
|
|
161
202
|
update: function update(cache, updated) {
|
|
162
|
-
var newFileData = (0, _get.default)(updated, "data.fileManager.updateFile.data");
|
|
203
|
+
var newFileData = (0, _get.default)(updated, "data.fileManager.updateFile.data"); // 1. Update files list cache
|
|
163
204
|
|
|
164
|
-
// 1. Update files list cache
|
|
165
205
|
var data = (0, _cloneDeep.default)(cache.readQuery({
|
|
166
206
|
query: _graphql.LIST_FILES,
|
|
167
207
|
variables: queryParams
|
|
168
208
|
}));
|
|
209
|
+
|
|
169
210
|
if (data) {
|
|
170
211
|
data.fileManager.listFiles.data.forEach(function (item) {
|
|
171
212
|
if (item.key === newFileData.key) {
|
|
@@ -173,12 +214,13 @@ var Tags = function Tags(_ref) {
|
|
|
173
214
|
}
|
|
174
215
|
});
|
|
175
216
|
}
|
|
217
|
+
|
|
176
218
|
cache.writeQuery({
|
|
177
219
|
query: _graphql.LIST_FILES,
|
|
178
220
|
variables: queryParams,
|
|
179
221
|
data: data
|
|
180
|
-
});
|
|
181
|
-
|
|
222
|
+
}); // 2. Update "LIST_TAGS" cache
|
|
223
|
+
|
|
182
224
|
if (Array.isArray(newFileData.tags)) {
|
|
183
225
|
// Get list tags data
|
|
184
226
|
var listTagsData = (0, _cloneDeep.default)(cache.readQuery({
|
|
@@ -187,11 +229,14 @@ var Tags = function Tags(_ref) {
|
|
|
187
229
|
where: (0, _FileManagerContext.getWhere)(queryParams.scope)
|
|
188
230
|
}
|
|
189
231
|
}));
|
|
232
|
+
|
|
190
233
|
if (!listTagsData) {
|
|
191
234
|
return;
|
|
192
|
-
}
|
|
193
|
-
|
|
235
|
+
} // Add new tag in list
|
|
236
|
+
|
|
237
|
+
|
|
194
238
|
var updatedTagsList = (0, _toConsumableArray2.default)(newFileData.tags);
|
|
239
|
+
|
|
195
240
|
if (Array.isArray(listTagsData.fileManager.listTags)) {
|
|
196
241
|
listTagsData.fileManager.listTags.forEach(function (tag) {
|
|
197
242
|
if (!updatedTagsList.includes(tag)) {
|
|
@@ -199,8 +244,9 @@ var Tags = function Tags(_ref) {
|
|
|
199
244
|
}
|
|
200
245
|
});
|
|
201
246
|
}
|
|
202
|
-
|
|
203
|
-
// Write it to cache
|
|
247
|
+
|
|
248
|
+
(0, _set.default)(listTagsData, "fileManager.listTags", updatedTagsList); // Write it to cache
|
|
249
|
+
|
|
204
250
|
cache.writeQuery({
|
|
205
251
|
query: _graphql.LIST_TAGS,
|
|
206
252
|
variables: {
|
|
@@ -216,6 +262,7 @@ var Tags = function Tags(_ref) {
|
|
|
216
262
|
setEdit(false);
|
|
217
263
|
showSnackbar("Tags successfully updated.");
|
|
218
264
|
});
|
|
265
|
+
|
|
219
266
|
case 3:
|
|
220
267
|
case "end":
|
|
221
268
|
return _context.stop();
|
|
@@ -223,15 +270,16 @@ var Tags = function Tags(_ref) {
|
|
|
223
270
|
}
|
|
224
271
|
}, _callee);
|
|
225
272
|
}));
|
|
273
|
+
|
|
226
274
|
return function (_x) {
|
|
227
275
|
return _ref4.apply(this, arguments);
|
|
228
276
|
};
|
|
229
277
|
}()
|
|
230
278
|
}, function (_ref5) {
|
|
231
279
|
var Bind = _ref5.Bind,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
280
|
+
data = _ref5.data,
|
|
281
|
+
setValue = _ref5.setValue,
|
|
282
|
+
submit = _ref5.submit;
|
|
235
283
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("li-title", null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
236
284
|
className: "list-item__icon",
|
|
237
285
|
icon: /*#__PURE__*/_react.default.createElement(_roundLabel24px.ReactComponent, null)
|
|
@@ -247,16 +295,18 @@ var Tags = function Tags(_ref) {
|
|
|
247
295
|
/**
|
|
248
296
|
* If "scope" exists, prefix tag with "scope" if not already.
|
|
249
297
|
*/
|
|
298
|
+
|
|
250
299
|
if (queryParams.scope && !tagInLowerCase.startsWith(queryParams.scope)) {
|
|
251
300
|
return "".concat(queryParams.scope).concat(SCOPE_SEPARATOR).concat(tagInLowerCase);
|
|
252
301
|
}
|
|
302
|
+
|
|
253
303
|
return tagInLowerCase;
|
|
254
304
|
});
|
|
255
305
|
baseOnChange(formattedTags);
|
|
256
306
|
}
|
|
257
307
|
}, function (_ref6) {
|
|
258
308
|
var value = _ref6.value,
|
|
259
|
-
|
|
309
|
+
bindProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
|
|
260
310
|
return /*#__PURE__*/_react.default.createElement(_AutoComplete.MultiAutoComplete, Object.assign({}, bindProps, {
|
|
261
311
|
value: tagWithoutScopePrefix(value, queryParams.scope),
|
|
262
312
|
options: allTags,
|
|
@@ -284,5 +334,6 @@ var Tags = function Tags(_ref) {
|
|
|
284
334
|
}, "Cancel"))));
|
|
285
335
|
});
|
|
286
336
|
};
|
|
337
|
+
|
|
287
338
|
var _default = Tags;
|
|
288
339
|
exports.default = _default;
|