@manuscripts/style-guide 1.3.2-LEAN-2859-3 → 1.3.2-LEAN-2880-2

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.
Files changed (102) hide show
  1. package/dist/cjs/components/FileManager/ConfirmationPopUp.js +90 -0
  2. package/dist/cjs/components/FileManager/DragItemArea.js +28 -0
  3. package/dist/cjs/components/FileManager/FileManager.js +125 -14
  4. package/dist/cjs/components/FileManager/FileManagerProvider.js +7 -2
  5. package/dist/cjs/components/FileManager/{DragLayer.js → FileSectionItem/DragLayer.js} +10 -12
  6. package/dist/cjs/components/FileManager/FileSectionItem/DraggableFileSectionItem.js +76 -0
  7. package/dist/cjs/components/FileManager/FileSectionItem/FileInfo.js +115 -0
  8. package/dist/cjs/components/FileManager/FileSectionItem/FileSectionItem.js +95 -0
  9. package/dist/cjs/components/FileManager/FileSectionItem/FileSectionUploadItem.js +37 -0
  10. package/dist/cjs/components/FileManager/FileSectionItem/FileTypeIcon.js +53 -0
  11. package/dist/cjs/components/FileManager/FileSectionItem/ItemActions.js +92 -0
  12. package/dist/cjs/components/FileManager/FileSectionItem/ProgressBarUploadItem.js +120 -0
  13. package/dist/cjs/components/FileManager/FileSectionState.js +83 -0
  14. package/dist/cjs/components/FileManager/FilesSection.js +61 -0
  15. package/dist/cjs/components/FileManager/InlineFilesSection.js +123 -64
  16. package/dist/cjs/components/FileManager/ItemsAction.js +48 -0
  17. package/dist/cjs/components/FileManager/{Tooltip.js → TooltipDiv.js} +3 -8
  18. package/dist/cjs/components/FileManager/{FileUploader.js → UploadFileArea.js} +12 -19
  19. package/dist/cjs/components/FileManager/util.js +67 -52
  20. package/dist/cjs/components/icons/document-icon-with-dot.js +1 -1
  21. package/dist/cjs/hooks/use-deep-compare.js +2 -2
  22. package/dist/cjs/hooks/use-files.js +43 -29
  23. package/dist/cjs/index.js +4 -3
  24. package/dist/cjs/lib/inlineFiles.js +92 -0
  25. package/dist/es/components/FileManager/ConfirmationPopUp.js +62 -0
  26. package/dist/es/components/FileManager/DragItemArea.js +21 -0
  27. package/dist/es/components/FileManager/FileManager.js +124 -16
  28. package/dist/es/components/FileManager/FileManagerProvider.js +8 -3
  29. package/dist/es/components/FileManager/{DragLayer.js → FileSectionItem/DragLayer.js} +10 -12
  30. package/dist/es/components/FileManager/FileSectionItem/DraggableFileSectionItem.js +46 -0
  31. package/dist/es/components/FileManager/FileSectionItem/FileInfo.js +85 -0
  32. package/dist/es/components/FileManager/FileSectionItem/FileSectionItem.js +88 -0
  33. package/dist/es/components/FileManager/FileSectionItem/FileSectionUploadItem.js +30 -0
  34. package/dist/es/components/FileManager/FileSectionItem/FileTypeIcon.js +46 -0
  35. package/dist/es/components/FileManager/FileSectionItem/ItemActions.js +65 -0
  36. package/dist/es/components/FileManager/FileSectionItem/ProgressBarUploadItem.js +113 -0
  37. package/dist/es/components/FileManager/FileSectionState.js +78 -0
  38. package/dist/es/components/FileManager/FilesSection.js +34 -0
  39. package/dist/es/components/FileManager/InlineFilesSection.js +124 -65
  40. package/dist/es/components/FileManager/ItemsAction.js +42 -0
  41. package/dist/es/components/FileManager/{Tooltip.js → TooltipDiv.js} +2 -7
  42. package/dist/es/components/FileManager/{FileUploader.js → UploadFileArea.js} +10 -17
  43. package/dist/es/components/FileManager/util.js +65 -47
  44. package/dist/es/components/icons/document-icon-with-dot.js +1 -1
  45. package/dist/es/hooks/use-deep-compare.js +2 -2
  46. package/dist/es/hooks/use-files.js +40 -29
  47. package/dist/es/index.js +2 -2
  48. package/dist/es/lib/inlineFiles.js +90 -0
  49. package/dist/types/components/FileManager/ConfirmationPopUp.d.ts +12 -0
  50. package/dist/types/components/FileManager/DragItemArea.d.ts +4 -0
  51. package/dist/types/components/FileManager/FileManager.d.ts +8 -17
  52. package/dist/types/components/FileManager/FileManagerProvider.d.ts +18 -8
  53. package/dist/types/components/FileManager/FileSectionItem/DraggableFileSectionItem.d.ts +3 -0
  54. package/dist/types/components/FileManager/FileSectionItem/FileInfo.d.ts +19 -0
  55. package/dist/types/components/FileManager/FileSectionItem/FileSectionItem.d.ts +38 -0
  56. package/dist/types/components/FileManager/FileSectionItem/FileSectionUploadItem.d.ts +12 -0
  57. package/dist/types/components/FileManager/{FileTypeIcon.d.ts → FileSectionItem/FileTypeIcon.d.ts} +3 -2
  58. package/dist/types/components/FileManager/FileSectionItem/ItemActions.d.ts +21 -0
  59. package/dist/types/components/FileManager/FileSectionItem/ProgressBarUploadItem.d.ts +4 -0
  60. package/dist/types/components/FileManager/FileSectionState.d.ts +38 -0
  61. package/dist/types/components/FileManager/FilesSection.d.ts +12 -0
  62. package/dist/types/components/FileManager/InlineFilesSection.d.ts +19 -3
  63. package/dist/types/components/FileManager/ItemsAction.d.ts +4 -0
  64. package/dist/types/components/FileManager/TooltipDiv.d.ts +1 -0
  65. package/dist/types/components/FileManager/UploadFileArea.d.ts +9 -0
  66. package/dist/types/components/FileManager/util.d.ts +12 -8
  67. package/dist/types/hooks/use-files.d.ts +6 -4
  68. package/dist/types/index.d.ts +2 -2
  69. package/dist/types/lib/inlineFiles.d.ts +11 -0
  70. package/package.json +2 -2
  71. package/dist/cjs/components/FileManager/FileActions.js +0 -134
  72. package/dist/cjs/components/FileManager/FileContainer.js +0 -39
  73. package/dist/cjs/components/FileManager/FileCreatedDate.js +0 -25
  74. package/dist/cjs/components/FileManager/FileName.js +0 -27
  75. package/dist/cjs/components/FileManager/FileSectionAlert.js +0 -170
  76. package/dist/cjs/components/FileManager/FileTypeIcon.js +0 -22
  77. package/dist/cjs/components/FileManager/OtherFilesSection.js +0 -101
  78. package/dist/cjs/components/FileManager/SupplementsSection.js +0 -118
  79. package/dist/cjs/components/icons/corrupted-file-icon.js +0 -27
  80. package/dist/cjs/lib/files.js +0 -85
  81. package/dist/es/components/FileManager/FileActions.js +0 -104
  82. package/dist/es/components/FileManager/FileContainer.js +0 -33
  83. package/dist/es/components/FileManager/FileCreatedDate.js +0 -18
  84. package/dist/es/components/FileManager/FileName.js +0 -20
  85. package/dist/es/components/FileManager/FileSectionAlert.js +0 -163
  86. package/dist/es/components/FileManager/FileTypeIcon.js +0 -15
  87. package/dist/es/components/FileManager/OtherFilesSection.js +0 -74
  88. package/dist/es/components/FileManager/SupplementsSection.js +0 -91
  89. package/dist/es/components/icons/corrupted-file-icon.js +0 -22
  90. package/dist/es/lib/files.js +0 -79
  91. package/dist/types/components/FileManager/FileActions.d.ts +0 -19
  92. package/dist/types/components/FileManager/FileContainer.d.ts +0 -1
  93. package/dist/types/components/FileManager/FileCreatedDate.d.ts +0 -8
  94. package/dist/types/components/FileManager/FileName.d.ts +0 -6
  95. package/dist/types/components/FileManager/FileSectionAlert.d.ts +0 -13
  96. package/dist/types/components/FileManager/FileUploader.d.ts +0 -4
  97. package/dist/types/components/FileManager/OtherFilesSection.d.ts +0 -5
  98. package/dist/types/components/FileManager/SupplementsSection.d.ts +0 -5
  99. package/dist/types/components/FileManager/Tooltip.d.ts +0 -2
  100. package/dist/types/components/icons/corrupted-file-icon.d.ts +0 -19
  101. package/dist/types/lib/files.d.ts +0 -24
  102. /package/dist/types/components/FileManager/{DragLayer.d.ts → FileSectionItem/DragLayer.d.ts} +0 -0
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ProgressBar = exports.UploadItemContainer = exports.FileSectionUploadItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const FileInfo_1 = require("./FileInfo");
10
+ const FileSectionItem_1 = require("./FileSectionItem");
11
+ const FileTypeIcon_1 = require("./FileTypeIcon");
12
+ const ProgressBarUploadItem_1 = require("./ProgressBarUploadItem");
13
+ const FileSectionUploadItem = ({ fileName, isLoading, dragRef, className, style, }) => {
14
+ const fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1);
15
+ fileName = fileName.substring(0, fileName.lastIndexOf('.'));
16
+ return (react_1.default.createElement(FileSectionItem_1.Item, { ref: dragRef, className: className, style: style },
17
+ react_1.default.createElement(exports.UploadItemContainer, null,
18
+ react_1.default.createElement(FileTypeIcon_1.FileTypeIcon, { withDot: false }),
19
+ react_1.default.createElement(FileInfo_1.FileInfoContainer, null,
20
+ react_1.default.createElement(FileInfo_1.FileNameContainer, null,
21
+ react_1.default.createElement(FileInfo_1.FileName, null, fileName),
22
+ react_1.default.createElement("div", null,
23
+ ".",
24
+ fileExtension)),
25
+ isLoading && react_1.default.createElement(ProgressBarUploadItem_1.ProgressBarUploadItem, null)))));
26
+ };
27
+ exports.FileSectionUploadItem = FileSectionUploadItem;
28
+ exports.UploadItemContainer = (0, styled_components_1.default)(FileSectionItem_1.ItemContainer) `
29
+ min-width: calc(100% - 16px);
30
+ `;
31
+ exports.ProgressBar = styled_components_1.default.div `
32
+ background: #1a9bc7;
33
+ opacity: 0.7;
34
+ border-radius: 8px 0 0 8px;
35
+ width: 20%;
36
+ height: 100%;
37
+ `;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FileTypeIcon = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_tooltip_1 = __importDefault(require("react-tooltip"));
9
+ const styled_components_1 = __importDefault(require("styled-components"));
10
+ const document_icon_with_dot_1 = __importDefault(require("../../icons/document-icon-with-dot"));
11
+ const unknown_format_file_icon_1 = __importDefault(require("../../icons/unknown-format-file-icon"));
12
+ const TooltipDiv_1 = require("../TooltipDiv");
13
+ const util_1 = require("../util");
14
+ const FileTypeIcon = ({ withDot, fileExtension, alt }) => {
15
+ let fileIcon = react_1.default.createElement(unknown_format_file_icon_1.default, null);
16
+ if (withDot) {
17
+ return (react_1.default.createElement(Container, null,
18
+ react_1.default.createElement(document_icon_with_dot_1.default, null),
19
+ react_1.default.createElement(TooltipDiv_1.TooltipDiv, null,
20
+ react_1.default.createElement(react_tooltip_1.default, { id: "dot", place: "bottom", effect: "float", className: "tooltip" },
21
+ react_1.default.createElement("div", null, "Main manuscript. Only one file per submission")))));
22
+ }
23
+ if (fileExtension) {
24
+ const fileType = util_1.extensionsWithFileTypesMap.get(fileExtension.toLowerCase());
25
+ fileIcon = util_1.fileTypesWithIconMap.get(fileType);
26
+ }
27
+ return react_1.default.createElement(Container, null, fileIcon);
28
+ };
29
+ exports.FileTypeIcon = FileTypeIcon;
30
+ const Container = styled_components_1.default.div `
31
+ width: 40px;
32
+ min-width: 40px;
33
+ height: 40px;
34
+ display: flex;
35
+ justify-content: center;
36
+ align-items: center;
37
+ box-sizing: border-box;
38
+ border-radius: 4px;
39
+ position: relative;
40
+ `;
41
+ const Img = styled_components_1.default.img `
42
+ width: 100%;
43
+ height: 100%;
44
+ border-radius: 4px;
45
+ `;
46
+ const VideoIconContainer = styled_components_1.default.div `
47
+ width: 100%;
48
+ height: 100%;
49
+ position: absolute;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ `;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.ItemActions = void 0;
36
+ const react_1 = __importStar(require("react"));
37
+ const Dropdown_1 = require("../../Dropdown");
38
+ const FileManager_1 = require("../FileManager");
39
+ const FileManagerProvider_1 = require("../FileManagerProvider");
40
+ const FileSectionState_1 = require("../FileSectionState");
41
+ const ItemsAction_1 = require("../ItemsAction");
42
+ const util_1 = require("../util");
43
+ const ItemActions = ({ fileSection, isMainManuscript, downloadAttachmentHandler, replaceAttachmentHandler, handleSupplementReplace, detachAttachmnetHandler, handleUpdateInline, attachmentId, fileName, publicUrl, hideActionList, dispatch, dropDownClassName, showReplaceAction, }) => {
44
+ const can = (0, react_1.useContext)(FileManager_1.PermissionsContext);
45
+ const { setMoveFilePopupData } = (0, react_1.useContext)(FileManagerProvider_1.FileManagerContext);
46
+ const canBeReplaced = showReplaceAction == undefined || showReplaceAction;
47
+ const fileInputRef = (0, react_1.useRef)(null);
48
+ const [selectedFile, setSelectedFile] = (0, react_1.useState)();
49
+ const handleChange = (event) => __awaiter(void 0, void 0, void 0, function* () {
50
+ if (event && event.target && event.target.files) {
51
+ const file = event.target.files[0];
52
+ setSelectedFile(file);
53
+ if (dispatch) {
54
+ dispatch(FileSectionState_1.actions.HANDLE_UPLOAD_ACTION());
55
+ }
56
+ const result = yield replaceAttachmentHandler(attachmentId, fileName, file);
57
+ if (fileSection === util_1.FileSectionType.Supplements &&
58
+ typeof result === 'object' &&
59
+ handleSupplementReplace) {
60
+ handleSupplementReplace(result, attachmentId);
61
+ }
62
+ if (typeof result === 'object' && handleUpdateInline) {
63
+ handleUpdateInline(result);
64
+ }
65
+ if (dispatch) {
66
+ dispatch(FileSectionState_1.actions.HANDLE_FINISH_UPLOAD());
67
+ }
68
+ hideActionList();
69
+ }
70
+ });
71
+ const openFileDialog = () => {
72
+ if (fileInputRef && fileInputRef.current) {
73
+ fileInputRef.current.click();
74
+ }
75
+ };
76
+ return (react_1.default.createElement(Dropdown_1.DropdownList, { direction: 'right', className: dropDownClassName, width: 200, height: 120, top: 5, onClick: hideActionList },
77
+ react_1.default.createElement(ItemsAction_1.ActionsItem, { onClick: () => {
78
+ publicUrl !== undefined ? downloadAttachmentHandler(publicUrl) : {};
79
+ } }, "Download"),
80
+ (can === null || can === void 0 ? void 0 : can.replaceFile) && canBeReplaced && (react_1.default.createElement(react_1.default.Fragment, null,
81
+ react_1.default.createElement(ItemsAction_1.ActionsItem, { onClick: openFileDialog }, "Replace"),
82
+ react_1.default.createElement("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: (e) => handleChange(e), value: '' }))),
83
+ (can === null || can === void 0 ? void 0 : can.editArticle) && detachAttachmnetHandler && (react_1.default.createElement(ItemsAction_1.ActionsItem, { onClick: () => detachAttachmnetHandler() }, "Detach")),
84
+ !isMainManuscript &&
85
+ fileSection !== util_1.FileSectionType.Inline &&
86
+ (can === null || can === void 0 ? void 0 : can.moveFile) && (react_1.default.createElement(ItemsAction_1.ActionsItem, { onClick: () => setMoveFilePopupData({ isOpen: true, attachmentId, fileSection }) },
87
+ "Move to",
88
+ ' ',
89
+ (fileSection === util_1.FileSectionType.OtherFile && 'Supplements') ||
90
+ 'Other files'))));
91
+ };
92
+ exports.ItemActions = ItemActions;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Bar = exports.LinearProgress = exports.ProgressBarUploadItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const ProgressBarUploadItem = () => {
10
+ return (react_1.default.createElement(exports.LinearProgress, null,
11
+ react_1.default.createElement(exports.Bar, { className: "bar1" }),
12
+ react_1.default.createElement(exports.Bar, { className: "bar2" })));
13
+ };
14
+ exports.ProgressBarUploadItem = ProgressBarUploadItem;
15
+ exports.LinearProgress = styled_components_1.default.div `
16
+ background: ${(props) => props.theme.colors.background.tertiary};
17
+ opacity: 0.7;
18
+ height: 4px;
19
+ position: relative;
20
+ width: 100%;
21
+ margin: 0 auto;
22
+ margin-top: 8px;
23
+ overflow: hidden;
24
+ border-radius: 8px;
25
+ animation: start 0.3s ease-in;
26
+ `;
27
+ exports.Bar = styled_components_1.default.div `
28
+ position: absolute;
29
+ opacity: 0.7;
30
+ background: #1a9bc7;
31
+ transition: transform 0.2s linear;
32
+ position: absolute;
33
+ left: 0;
34
+ top: 0;
35
+ bottom: 0;
36
+ width: 100%;
37
+
38
+ &.bar1 {
39
+ animation: growBar1 2.5s infinite, moveBar1 2.5s infinite;
40
+ }
41
+
42
+ &.bar2 {
43
+ animation: growBar2 2.5s infinite, moveBar2 2.5s infinite;
44
+ }
45
+
46
+ @keyframes growBar1 {
47
+ 0% {
48
+ animation-timing-function: linear;
49
+ transform: scaleX(0.1);
50
+ }
51
+ 35% {
52
+ animation-timing-function: cubic-bezier(0.3, 0.1, 0.7, 1);
53
+ transform: scaleX(0.1);
54
+ }
55
+ 70% {
56
+ animation-timing-function: cubic-bezier(0.2, 0, 0.2, 1.4);
57
+ transform: scaleX(0.8);
58
+ }
59
+ 100% {
60
+ transform: scaleX(0.1);
61
+ }
62
+ }
63
+
64
+ @keyframes moveBar1 {
65
+ 0% {
66
+ left: -105%;
67
+ animation-timing-function: linear;
68
+ }
69
+ 20% {
70
+ left: -105%;
71
+ animation-timing-function: cubic-bezier(0.5, 0, 0.7, 0.4);
72
+ }
73
+ 60% {
74
+ left: 21%;
75
+ animation-timing-function: cubic-bezier(0.3, 0.4, 0.55, 0.9);
76
+ }
77
+ 80% {
78
+ left: 40%;
79
+ animation-timing-function: cubic-bezier(0.1, 0.2, 0.3, 0.95);
80
+ }
81
+ 100% {
82
+ left: 90%;
83
+ }
84
+ }
85
+
86
+ @keyframes growBar2 {
87
+ 0% {
88
+ animation-timing-function: cubic-bezier(0.2, 0, 0.5, 0.4);
89
+ transform: scaleX(0.1);
90
+ }
91
+ 20% {
92
+ animation-timing-function: cubic-bezier(0.1, 0.2, 0.6, 1);
93
+ transform: scaleX(0.3);
94
+ }
95
+ 60% {
96
+ animation-timing-function: cubic-bezier(0.2, 0, 0.2, 1.4);
97
+ transform: scaleX(0.6);
98
+ }
99
+ 100% {
100
+ transform: scaleX(0.1);
101
+ }
102
+ }
103
+ @keyframes moveBar2 {
104
+ 0% {
105
+ left: -100%;
106
+ animation-timing-function: cubic-bezier(0.15, 0, 0.5, 0.4);
107
+ }
108
+ 25% {
109
+ left: -50%;
110
+ animation-timing-function: cubic-bezier(0.3, 0.3, 0.8, 0.7);
111
+ }
112
+ 50% {
113
+ left: 45%;
114
+ animation-timing-function: cubic-bezier(0.1, 0.6, 0.6, 0.9);
115
+ }
116
+ 100% {
117
+ left: 95%;
118
+ }
119
+ }
120
+ `;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actions = exports.reducer = exports.getInitialState = void 0;
4
+ const getInitialState = () => ({
5
+ uploadedFile: undefined,
6
+ isUploadFile: false,
7
+ moveToOtherState: undefined,
8
+ fileUploadedSuccessfullySection: undefined,
9
+ successMessage: '',
10
+ isShowSuccessMessage: false,
11
+ currentSection: undefined,
12
+ });
13
+ exports.getInitialState = getInitialState;
14
+ var ActionTypes;
15
+ (function (ActionTypes) {
16
+ ActionTypes["UPLOAD_FILE"] = "UploadFile";
17
+ ActionTypes["MOVE_FILE"] = "moveFile";
18
+ ActionTypes["HANDLE_CANCEL_UPLOAD"] = "handleCancel";
19
+ ActionTypes["HANDLE_UPLOAD_ACTION"] = "handleUpload";
20
+ ActionTypes["HANDLE_FINISH_UPLOAD"] = "handleFinishUpload";
21
+ ActionTypes["HANDLE_SUCCESS_MESSAGE"] = "handleSuccessMessage";
22
+ ActionTypes["HANDLE_SUCCESS_MESSAGE_DISMISS"] = "handleSuccessMessageDismiss";
23
+ })(ActionTypes || (ActionTypes = {}));
24
+ const reducer = (state, action) => {
25
+ switch (action.type) {
26
+ case ActionTypes.UPLOAD_FILE: {
27
+ return Object.assign(Object.assign({}, state), { uploadedFile: action.uploadFile, currentSection: action.sectionType });
28
+ }
29
+ case ActionTypes.MOVE_FILE: {
30
+ return Object.assign(Object.assign({}, state), { moveToOtherState: {
31
+ typeId: action.typeId,
32
+ name: action.name,
33
+ }, successMessage: action.successMoveMessage, isShowSuccessMessage: false });
34
+ }
35
+ case ActionTypes.HANDLE_UPLOAD_ACTION: {
36
+ return Object.assign(Object.assign({}, state), { isUploadFile: true, isShowSuccessMessage: false, fileUploadedSuccessfullySection: undefined, successMessage: '' });
37
+ }
38
+ case ActionTypes.HANDLE_CANCEL_UPLOAD: {
39
+ return Object.assign({}, state);
40
+ }
41
+ case ActionTypes.HANDLE_FINISH_UPLOAD: {
42
+ return Object.assign(Object.assign({}, state), { isUploadFile: false, uploadedFile: undefined });
43
+ }
44
+ case ActionTypes.HANDLE_SUCCESS_MESSAGE: {
45
+ return Object.assign(Object.assign({}, state), { isShowSuccessMessage: true, successMessage: action.successMessage, fileUploadedSuccessfullySection: action.sectionType });
46
+ }
47
+ case ActionTypes.HANDLE_SUCCESS_MESSAGE_DISMISS: {
48
+ return Object.assign(Object.assign({}, state), { isShowSuccessMessage: false, successMessage: '', fileUploadedSuccessfullySection: undefined });
49
+ }
50
+ }
51
+ return state;
52
+ };
53
+ exports.reducer = reducer;
54
+ exports.actions = {
55
+ UPLOAD_FILE: (uploadFile, sectionType) => ({
56
+ type: ActionTypes.UPLOAD_FILE,
57
+ uploadFile,
58
+ sectionType,
59
+ }),
60
+ HANDLE_UPLOAD_ACTION: () => ({
61
+ type: ActionTypes.HANDLE_UPLOAD_ACTION,
62
+ }),
63
+ HANDLE_CANCEL_UPLOAD: () => ({
64
+ type: ActionTypes.HANDLE_CANCEL_UPLOAD,
65
+ }),
66
+ MOVE_FILE: (attachmentId, typeId, name, successMoveMessage) => ({
67
+ type: ActionTypes.MOVE_FILE,
68
+ typeId,
69
+ name,
70
+ successMoveMessage,
71
+ }),
72
+ HANDLE_FINISH_UPLOAD: () => ({
73
+ type: ActionTypes.HANDLE_FINISH_UPLOAD,
74
+ }),
75
+ HANDLE_SUCCESS_MESSAGE: (successMessage, sectionType) => ({
76
+ type: ActionTypes.HANDLE_SUCCESS_MESSAGE,
77
+ successMessage,
78
+ sectionType,
79
+ }),
80
+ HANDLE_SUCCESS_MESSAGE_DISMISS: () => ({
81
+ type: ActionTypes.HANDLE_SUCCESS_MESSAGE_DISMISS,
82
+ }),
83
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FilesSection = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const AlertMessage_1 = require("../AlertMessage");
29
+ const FileManager_1 = require("./FileManager");
30
+ const FileSectionUploadItem_1 = require("./FileSectionItem/FileSectionUploadItem");
31
+ const FileSectionState_1 = require("./FileSectionState");
32
+ const UploadFileArea_1 = require("./UploadFileArea");
33
+ const util_1 = require("./util");
34
+ const FilesSection = ({ enableDragAndDrop, handleUpload, fileSection, filesItem, dispatch, state, }) => {
35
+ let uploadedFileExtension = '';
36
+ if (state.uploadedFile) {
37
+ uploadedFileExtension = state.uploadedFile.name.substring(state.uploadedFile.name.lastIndexOf('.') + 1);
38
+ }
39
+ const isSupplementFilesTab = fileSection === util_1.FileSectionType.Supplements;
40
+ const isOtherFileTab = fileSection === util_1.FileSectionType.OtherFile;
41
+ const can = (0, react_1.useContext)(FileManager_1.PermissionsContext);
42
+ (0, react_1.useEffect)(() => {
43
+ state.uploadedFile &&
44
+ fileSection === state.currentSection &&
45
+ handleUpload(state.uploadedFile);
46
+ }, [state.uploadedFile]);
47
+ const handleSuccessMessage = () => {
48
+ return (react_1.default.createElement(AlertMessage_1.AlertMessage, { type: AlertMessage_1.AlertMessageType.success, hideCloseButton: true, dismissButton: {
49
+ text: 'OK',
50
+ action: () => dispatch(FileSectionState_1.actions.HANDLE_SUCCESS_MESSAGE_DISMISS()),
51
+ } }, state.successMessage));
52
+ };
53
+ return (react_1.default.createElement("div", null,
54
+ (can === null || can === void 0 ? void 0 : can.uploadFile) && (react_1.default.createElement(react_1.default.Fragment, null,
55
+ (isOtherFileTab || isSupplementFilesTab) && (react_1.default.createElement(UploadFileArea_1.UploadFileArea, { handleUploadFile: handleUpload, fileSection: fileSection, dispatch: dispatch })),
56
+ state.isUploadFile && state.uploadedFile && (react_1.default.createElement(FileSectionUploadItem_1.FileSectionUploadItem, { fileName: state.uploadedFile.name, isLoading: state.isUploadFile })))),
57
+ state.fileUploadedSuccessfullySection === fileSection &&
58
+ handleSuccessMessage(),
59
+ filesItem));
60
+ };
61
+ exports.FilesSection = FilesSection;