@bigbinary/neeto-molecules 4.3.0 → 4.3.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.
- package/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
- package/dist/Columns-gR00LMKF.js.map +1 -0
- package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
- package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
- package/dist/check-DvxzqR83.js +15 -0
- package/dist/check-DvxzqR83.js.map +1 -0
- package/dist/chevron-down-BMerqYpK.js +15 -0
- package/dist/chevron-down-BMerqYpK.js.map +1 -0
- package/dist/chevron-left-BTVCxPw8.js +15 -0
- package/dist/chevron-left-BTVCxPw8.js.map +1 -0
- package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
- package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
- package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
- package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
- package/dist/cjs/check-VgZf0qTr.js +17 -0
- package/dist/cjs/check-VgZf0qTr.js.map +1 -0
- package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
- package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
- package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
- package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
- package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
- package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
- package/dist/cjs/v2/AuditLogs.js +8 -8
- package/dist/cjs/v2/AuditLogs.js.map +1 -1
- package/dist/cjs/v2/BoardView.js +427 -0
- package/dist/cjs/v2/BoardView.js.map +1 -0
- package/dist/cjs/v2/Breadcrumbs.js +2 -2
- package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
- package/dist/cjs/v2/CalendarView.js +429 -0
- package/dist/cjs/v2/CalendarView.js.map +1 -0
- package/dist/cjs/v2/Columns.js +2 -2
- package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
- package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
- package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/cjs/v2/DateFormat.js +42 -0
- package/dist/cjs/v2/DateFormat.js.map +1 -0
- package/dist/cjs/v2/DocumentEditor.js +329 -0
- package/dist/cjs/v2/DocumentEditor.js.map +1 -0
- package/dist/cjs/v2/EmojiPicker.js +125 -0
- package/dist/cjs/v2/EmojiPicker.js.map +1 -0
- package/dist/cjs/v2/Engagements.js +283 -0
- package/dist/cjs/v2/Engagements.js.map +1 -0
- package/dist/cjs/v2/ErrorPage.js +1 -1
- package/dist/cjs/v2/ErrorPage.js.map +1 -1
- package/dist/cjs/v2/FileUpload.js +644 -0
- package/dist/cjs/v2/FileUpload.js.map +1 -0
- package/dist/cjs/v2/FinderModal.js +253 -0
- package/dist/cjs/v2/FinderModal.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +11 -9
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Header.js +6 -6
- package/dist/cjs/v2/InlineInput.js +293 -0
- package/dist/cjs/v2/InlineInput.js.map +1 -0
- package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
- package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/cjs/v2/LoginPage.js +1 -1
- package/dist/cjs/v2/LoginPage.js.map +1 -1
- package/dist/cjs/v2/MenuBar.js +2 -2
- package/dist/cjs/v2/MenuBar.js.map +1 -1
- package/dist/cjs/v2/MoreDropdown.js +1 -1
- package/dist/cjs/v2/MoreDropdown.js.map +1 -1
- package/dist/cjs/v2/NavigationHeader.js +328 -0
- package/dist/cjs/v2/NavigationHeader.js.map +1 -0
- package/dist/cjs/v2/PublishBlock.js +414 -0
- package/dist/cjs/v2/PublishBlock.js.map +1 -0
- package/dist/cjs/v2/Rename.js +350 -0
- package/dist/cjs/v2/Rename.js.map +1 -0
- package/dist/cjs/v2/Scrollable.js +37 -0
- package/dist/cjs/v2/Scrollable.js.map +1 -0
- package/dist/cjs/v2/Search.js +5 -5
- package/dist/cjs/v2/Search.js.map +1 -1
- package/dist/cjs/v2/Settings.js +6 -6
- package/dist/cjs/v2/Settings.js.map +1 -1
- package/dist/cjs/v2/Sidebar.js +8 -7
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
- package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/cjs/v2/SubHeader.js +3 -3
- package/dist/cjs/v2/SubHeader.js.map +1 -1
- package/dist/cjs/v2/TimeFormat.js +15 -0
- package/dist/cjs/v2/TimeFormat.js.map +1 -0
- package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
- package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
- package/dist/v2/AuditLogs.js +8 -8
- package/dist/v2/AuditLogs.js.map +1 -1
- package/dist/v2/BoardView.js +425 -0
- package/dist/v2/BoardView.js.map +1 -0
- package/dist/v2/Breadcrumbs.js +2 -2
- package/dist/v2/Breadcrumbs.js.map +1 -1
- package/dist/v2/CalendarView.js +427 -0
- package/dist/v2/CalendarView.js.map +1 -0
- package/dist/v2/Columns.js +2 -2
- package/dist/v2/ConfigurePageSidebar.js +4 -3
- package/dist/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/v2/CopyToClipboardButton.js +2 -12
- package/dist/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/v2/DateFormat.js +40 -0
- package/dist/v2/DateFormat.js.map +1 -0
- package/dist/v2/DocumentEditor.js +327 -0
- package/dist/v2/DocumentEditor.js.map +1 -0
- package/dist/v2/EmojiPicker.js +123 -0
- package/dist/v2/EmojiPicker.js.map +1 -0
- package/dist/v2/Engagements.js +281 -0
- package/dist/v2/Engagements.js.map +1 -0
- package/dist/v2/ErrorPage.js +1 -1
- package/dist/v2/ErrorPage.js.map +1 -1
- package/dist/v2/FileUpload.js +641 -0
- package/dist/v2/FileUpload.js.map +1 -0
- package/dist/v2/FinderModal.js +251 -0
- package/dist/v2/FinderModal.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +11 -9
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Header.js +6 -6
- package/dist/v2/InlineInput.js +290 -0
- package/dist/v2/InlineInput.js.map +1 -0
- package/dist/v2/KeyboardShortcuts.js +3 -3
- package/dist/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/v2/LoginPage.js +1 -1
- package/dist/v2/LoginPage.js.map +1 -1
- package/dist/v2/MenuBar.js +2 -2
- package/dist/v2/MenuBar.js.map +1 -1
- package/dist/v2/MoreDropdown.js +1 -1
- package/dist/v2/MoreDropdown.js.map +1 -1
- package/dist/v2/NavigationHeader.js +326 -0
- package/dist/v2/NavigationHeader.js.map +1 -0
- package/dist/v2/PublishBlock.js +412 -0
- package/dist/v2/PublishBlock.js.map +1 -0
- package/dist/v2/Rename.js +348 -0
- package/dist/v2/Rename.js.map +1 -0
- package/dist/v2/Scrollable.js +35 -0
- package/dist/v2/Scrollable.js.map +1 -0
- package/dist/v2/Search.js +5 -5
- package/dist/v2/Search.js.map +1 -1
- package/dist/v2/Settings.js +6 -6
- package/dist/v2/Settings.js.map +1 -1
- package/dist/v2/Sidebar.js +8 -7
- package/dist/v2/Sidebar.js.map +1 -1
- package/dist/v2/StickyRibbonsContainer.js +4 -4
- package/dist/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/v2/SubHeader.js +3 -3
- package/dist/v2/SubHeader.js.map +1 -1
- package/dist/v2/TimeFormat.js +13 -0
- package/dist/v2/TimeFormat.js.map +1 -0
- package/package.json +5 -5
- package/src/translations/ar.json +4 -2
- package/src/translations/bg.json +4 -2
- package/src/translations/ca.json +4 -2
- package/src/translations/cs.json +4 -2
- package/src/translations/da.json +4 -2
- package/src/translations/de.json +4 -2
- package/src/translations/en.json +4 -2
- package/src/translations/es-MX.json +4 -2
- package/src/translations/es.json +4 -2
- package/src/translations/et.json +4 -2
- package/src/translations/fi.json +4 -2
- package/src/translations/fil.json +4 -2
- package/src/translations/fr.json +4 -2
- package/src/translations/he.json +4 -2
- package/src/translations/hi.json +4 -2
- package/src/translations/hr.json +4 -2
- package/src/translations/hu.json +4 -2
- package/src/translations/id.json +4 -2
- package/src/translations/it.json +4 -2
- package/src/translations/ja.json +4 -2
- package/src/translations/ko.json +4 -2
- package/src/translations/nl.json +4 -2
- package/src/translations/pl.json +4 -2
- package/src/translations/pt-BR.json +4 -2
- package/src/translations/pt.json +4 -2
- package/src/translations/ro.json +4 -2
- package/src/translations/ru.json +4 -2
- package/src/translations/sk.json +4 -2
- package/src/translations/sl.json +4 -2
- package/src/translations/sv.json +4 -2
- package/src/translations/th.json +4 -2
- package/src/translations/tr.json +4 -2
- package/src/translations/uk.json +4 -2
- package/src/translations/vi.json +4 -2
- package/src/translations/zh-CN.json +4 -2
- package/src/translations/zh-TW.json +4 -2
- package/types/v2/BoardView.d.ts +27 -0
- package/types/v2/CalendarView.d.ts +40 -0
- package/types/v2/DateFormat.d.ts +19 -0
- package/types/v2/DocumentEditor.d.ts +20 -0
- package/types/v2/EmojiPicker.d.ts +14 -0
- package/types/v2/Engagements.d.ts +50 -0
- package/types/v2/FileUpload.d.ts +30 -0
- package/types/v2/FinderModal.d.ts +24 -0
- package/types/v2/InlineInput.d.ts +28 -0
- package/types/v2/NavigationHeader.d.ts +80 -0
- package/types/v2/PublishBlock.d.ts +39 -0
- package/types/v2/Rename.d.ts +33 -0
- package/types/v2/Scrollable.d.ts +15 -0
- package/types/v2/TimeFormat.d.ts +17 -0
- package/dist/Columns-DpeV3Jzz.js.map +0 -1
- package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
- package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
- package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
- package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
- package/dist/useKeyboardShortcutsPaneState-dNIbb_PI.js.map +0 -1
|
@@ -0,0 +1,644 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
4
|
+
var ramda = require('ramda');
|
|
5
|
+
var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
|
|
6
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var classnames = require('classnames');
|
|
9
|
+
var reactI18next = require('react-i18next');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
var createLucideIcon = require('../createLucideIcon-DBDhE7kE.js');
|
|
12
|
+
var path = require('path');
|
|
13
|
+
var i18next = require('i18next');
|
|
14
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
15
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
|
|
16
|
+
var framerMotion = require('framer-motion');
|
|
17
|
+
var check = require('../check-VgZf0qTr.js');
|
|
18
|
+
var x = require('../x-B38UX0_0.js');
|
|
19
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
20
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
21
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
22
|
+
var activestorage = require('@rails/activestorage');
|
|
23
|
+
var reactDropzone = require('react-dropzone');
|
|
24
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
25
|
+
var formik = require('formik');
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @license lucide-react v1.7.0 - ISC
|
|
29
|
+
*
|
|
30
|
+
* This source code is licensed under the ISC license.
|
|
31
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
const __iconNode$1 = [
|
|
36
|
+
[
|
|
37
|
+
"path",
|
|
38
|
+
{
|
|
39
|
+
d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
|
|
40
|
+
key: "1oefj6"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
|
|
44
|
+
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
45
|
+
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
46
|
+
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
47
|
+
];
|
|
48
|
+
const FileText = createLucideIcon.createLucideIcon("file-text", __iconNode$1);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @license lucide-react v1.7.0 - ISC
|
|
52
|
+
*
|
|
53
|
+
* This source code is licensed under the ISC license.
|
|
54
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
const __iconNode = [
|
|
59
|
+
["path", { d: "M12 3v12", key: "1x0j5s" }],
|
|
60
|
+
["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
|
|
61
|
+
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
|
|
62
|
+
];
|
|
63
|
+
const Upload = createLucideIcon.createLucideIcon("upload", __iconNode);
|
|
64
|
+
|
|
65
|
+
var FILE_MIME_TYPES = {
|
|
66
|
+
pdf: ["application/pdf"],
|
|
67
|
+
doc: ["application/msword", "application/wps-writer"],
|
|
68
|
+
docx: ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
|
|
69
|
+
xls: ["application/vnd.ms-excel"],
|
|
70
|
+
xlsx: ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
|
|
71
|
+
csv: ["text/csv"],
|
|
72
|
+
txt: ["text/plain"],
|
|
73
|
+
rtf: ["application/rtf", "text/rtf"],
|
|
74
|
+
html: ["text/html"],
|
|
75
|
+
htm: ["text/html"],
|
|
76
|
+
md: ["text/markdown", "text/x-markdown"],
|
|
77
|
+
zip: ["application/zip"],
|
|
78
|
+
mp3: ["audio/mpeg"],
|
|
79
|
+
wma: ["audio/x-ms-wma", "video/x-ms-asf"],
|
|
80
|
+
mp4: ["video/mp4"],
|
|
81
|
+
mpg: ["video/mpeg"],
|
|
82
|
+
mpeg: ["video/mpeg"],
|
|
83
|
+
flv: ["video/x-flv"],
|
|
84
|
+
avi: ["video/x-msvideo"],
|
|
85
|
+
jpg: ["image/jpeg"],
|
|
86
|
+
jpeg: ["image/jpeg"],
|
|
87
|
+
png: ["image/png"],
|
|
88
|
+
gif: ["image/gif"],
|
|
89
|
+
json: ["application/json"],
|
|
90
|
+
epub: ["application/epub+zip"],
|
|
91
|
+
aac: ["audio/aac"],
|
|
92
|
+
svg: ["image/svg+xml"],
|
|
93
|
+
ico: ["image/vnd.microsoft.icon"]
|
|
94
|
+
};
|
|
95
|
+
var ERROR_CODES = {
|
|
96
|
+
FILE_TOO_LARGE: "file-too-large",
|
|
97
|
+
FILE_INVALID_TYPE: "file-invalid-type",
|
|
98
|
+
TOO_MANY_FILES: "too-many-files"
|
|
99
|
+
};
|
|
100
|
+
var DIRECT_UPLOAD_URL = "/api/direct_uploads";
|
|
101
|
+
var MAX_FILE_SIZE = (initializers.globalProps === null || initializers.globalProps === void 0 ? void 0 : initializers.globalProps.endUserUploadedFileSizeLimitInMb) || 10;
|
|
102
|
+
|
|
103
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
104
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
105
|
+
var DropZone = function DropZone(_ref) {
|
|
106
|
+
var isDragActive = _ref.isDragActive,
|
|
107
|
+
getRootProps = _ref.getRootProps,
|
|
108
|
+
getInputProps = _ref.getInputProps,
|
|
109
|
+
multipleFilesAllowed = _ref.multipleFilesAllowed,
|
|
110
|
+
maxFileSize = _ref.maxFileSize,
|
|
111
|
+
allowedFileTypes = _ref.allowedFileTypes,
|
|
112
|
+
hasFileSizeLimit = _ref.hasFileSizeLimit;
|
|
113
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
114
|
+
t = _useTranslation.t;
|
|
115
|
+
var inputId = React.useId();
|
|
116
|
+
var shouldAllowSingleFileUpload = !multipleFilesAllowed;
|
|
117
|
+
var shouldShowFileSizeLimit = hasFileSizeLimit && maxFileSize;
|
|
118
|
+
var promptText = t("neetoMolecules.fileUpload.filesDropzone.chooseFileOrDragHere");
|
|
119
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$2(_objectSpread$2({}, getRootProps({
|
|
120
|
+
"aria-label": promptText,
|
|
121
|
+
className: classnames("nm-file-upload__dropzone border-border bg-muted/40 hover:border-primary focus-visible:border-primary focus-visible:ring-ring/50 focus-visible:ring-2 cursor-pointer rounded border border-dashed p-6 outline-none transition", {
|
|
122
|
+
"border-primary bg-primary/5": isDragActive
|
|
123
|
+
})
|
|
124
|
+
})), {}, {
|
|
125
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
126
|
+
className: "flex flex-col items-center gap-2 text-center",
|
|
127
|
+
"data-testid": "file-upload-body",
|
|
128
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Upload, {
|
|
129
|
+
className: "text-muted-foreground",
|
|
130
|
+
size: 24
|
|
131
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
132
|
+
className: "flex flex-col items-center gap-1",
|
|
133
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
|
|
134
|
+
className: "cursor-pointer",
|
|
135
|
+
htmlFor: inputId,
|
|
136
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
137
|
+
className: "text-sm font-medium",
|
|
138
|
+
children: promptText
|
|
139
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread$2(_objectSpread$2({}, getInputProps({
|
|
140
|
+
id: inputId
|
|
141
|
+
})), {}, {
|
|
142
|
+
"data-testid": "image-browse-button"
|
|
143
|
+
}))]
|
|
144
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
145
|
+
className: "flex flex-col items-center gap-0.5",
|
|
146
|
+
children: [shouldAllowSingleFileUpload && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
147
|
+
className: "text-muted-foreground text-xs",
|
|
148
|
+
"data-testid": "upload-only-one-file-text",
|
|
149
|
+
children: t("neetoMolecules.fileUpload.filesDropzone.oneFileAllowed")
|
|
150
|
+
}), shouldShowFileSizeLimit && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
151
|
+
className: "text-muted-foreground text-xs",
|
|
152
|
+
"data-testid": "maximum-allowed-size-text",
|
|
153
|
+
children: t("neetoMolecules.fileUpload.filesDropzone.maxFileSize", {
|
|
154
|
+
size: maxFileSize,
|
|
155
|
+
unit: "MB"
|
|
156
|
+
})
|
|
157
|
+
}), allowedFileTypes && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
158
|
+
className: "text-muted-foreground text-xs",
|
|
159
|
+
"data-testid": "allowed-files-types-text",
|
|
160
|
+
children: t("neetoMolecules.fileUpload.filesDropzone.allowedFileTypes", {
|
|
161
|
+
types: allowedFileTypes
|
|
162
|
+
})
|
|
163
|
+
})]
|
|
164
|
+
})]
|
|
165
|
+
})]
|
|
166
|
+
})
|
|
167
|
+
}));
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
var getAcceptedFileTypes = function getAcceptedFileTypes(allowedFileTypes) {
|
|
171
|
+
var accepted = {};
|
|
172
|
+
allowedFileTypes.split(", ").forEach(function (type) {
|
|
173
|
+
var mimeTypes = FILE_MIME_TYPES[type] || ["application/octet-stream"];
|
|
174
|
+
var extension = ".".concat(type);
|
|
175
|
+
if (neetoCist.isNotPresent(type) || neetoCist.isNotPresent(mimeTypes)) return;
|
|
176
|
+
mimeTypes.forEach(function (mimeType) {
|
|
177
|
+
if (accepted[mimeType]) accepted[mimeType].push(extension);else accepted[mimeType] = [extension];
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
return accepted;
|
|
181
|
+
};
|
|
182
|
+
var convertBytesToMb = function convertBytesToMb(bytes) {
|
|
183
|
+
return ((bytes - 10) / (1028 * 1024)).toFixed(2);
|
|
184
|
+
};
|
|
185
|
+
var renderErrorMessage = function renderErrorMessage(errorObject, maxFileSize, isMultiple) {
|
|
186
|
+
var error = errorObject.errors[0];
|
|
187
|
+
var file = errorObject.file;
|
|
188
|
+
if (error) {
|
|
189
|
+
var code = error.code;
|
|
190
|
+
if (code === ERROR_CODES.FILE_TOO_LARGE) {
|
|
191
|
+
return i18next.t("neetoMolecules.fileUpload.filesDropzone.errors.fileTooLarge", {
|
|
192
|
+
fileName: file.name,
|
|
193
|
+
maxSize: "".concat(Math.round(maxFileSize / 1048576), "MB")
|
|
194
|
+
});
|
|
195
|
+
} else if (code === ERROR_CODES.FILE_INVALID_TYPE) {
|
|
196
|
+
return i18next.t("neetoMolecules.fileUpload.filesDropzone.errors.fileInvalidType", {
|
|
197
|
+
fileType: path.extname(file.name)
|
|
198
|
+
});
|
|
199
|
+
} else if (code === ERROR_CODES.TOO_MANY_FILES && !isMultiple) {
|
|
200
|
+
return i18next.t("neetoMolecules.fileUpload.filesDropzone.errors.tooManyFiles", {
|
|
201
|
+
maxFiles: 1
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return i18next.t("neetoMolecules.fileUpload.filesDropzone.errors.defaultError", {
|
|
206
|
+
fileName: file.name
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
var convertMbToBytes = function convertMbToBytes(mb) {
|
|
210
|
+
return mb * 1028 * 1024 + 10;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
var ErrorMessages = function ErrorMessages(_ref) {
|
|
214
|
+
var fileRejections = _ref.fileRejections,
|
|
215
|
+
maxFileSizeInBytes = _ref.maxFileSizeInBytes;
|
|
216
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
217
|
+
t = _useTranslation.t;
|
|
218
|
+
var hasMultipleFileErrors = fileRejections.some(function (_ref2) {
|
|
219
|
+
var errors = _ref2.errors;
|
|
220
|
+
return errors[0].code === ERROR_CODES.TOO_MANY_FILES;
|
|
221
|
+
});
|
|
222
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
223
|
+
children: [hasMultipleFileErrors && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
224
|
+
className: "text-destructive mt-1 text-xs",
|
|
225
|
+
"data-testid": "form-file-upload-input-error",
|
|
226
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
227
|
+
children: t("neetoMolecules.fileUpload.filesDropzone.errors.tooManyFiles", {
|
|
228
|
+
maxFiles: 1
|
|
229
|
+
})
|
|
230
|
+
})
|
|
231
|
+
}), fileRejections.filter(function (_ref3) {
|
|
232
|
+
var errors = _ref3.errors;
|
|
233
|
+
return errors[0].code !== ERROR_CODES.TOO_MANY_FILES;
|
|
234
|
+
}).map(function (file, index) {
|
|
235
|
+
return /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
236
|
+
className: "text-destructive mt-1 text-xs",
|
|
237
|
+
"data-testid": "form-file-upload-input-error",
|
|
238
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
239
|
+
children: renderErrorMessage(file, maxFileSizeInBytes, false)
|
|
240
|
+
})
|
|
241
|
+
}, index);
|
|
242
|
+
})]
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
var Progress = function Progress(_ref) {
|
|
247
|
+
var percents = _ref.percents,
|
|
248
|
+
_ref$stroke = _ref.stroke,
|
|
249
|
+
stroke = _ref$stroke === void 0 ? "currentColor" : _ref$stroke,
|
|
250
|
+
_ref$emptyStroke = _ref.emptyStroke,
|
|
251
|
+
emptyStroke = _ref$emptyStroke === void 0 ? stroke : _ref$emptyStroke,
|
|
252
|
+
_ref$emptyStrokeOpaci = _ref.emptyStrokeOpacity,
|
|
253
|
+
emptyStrokeOpacity = _ref$emptyStrokeOpaci === void 0 ? 0.25 : _ref$emptyStrokeOpaci,
|
|
254
|
+
_ref$duration = _ref.duration,
|
|
255
|
+
duration = _ref$duration === void 0 ? 0.5 : _ref$duration,
|
|
256
|
+
_ref$delay = _ref.delay,
|
|
257
|
+
delay = _ref$delay === void 0 ? 0 : _ref$delay,
|
|
258
|
+
_ref$size = _ref.size,
|
|
259
|
+
size = _ref$size === void 0 ? 100 : _ref$size,
|
|
260
|
+
_ref$strokeWidth = _ref.strokeWidth,
|
|
261
|
+
strokeWidth = _ref$strokeWidth === void 0 ? 12 : _ref$strokeWidth;
|
|
262
|
+
var shouldReduceMotion = framerMotion.useReducedMotion();
|
|
263
|
+
var radius = 45;
|
|
264
|
+
var circumference = Math.ceil(2 * Math.PI * radius);
|
|
265
|
+
var fillPercents = Math.abs(Math.ceil(circumference / 100 * (percents - 100)));
|
|
266
|
+
var transition = {
|
|
267
|
+
duration: shouldReduceMotion ? 0 : duration,
|
|
268
|
+
delay: shouldReduceMotion ? 0 : delay
|
|
269
|
+
};
|
|
270
|
+
var variants = {
|
|
271
|
+
hidden: {
|
|
272
|
+
strokeDashoffset: circumference,
|
|
273
|
+
transition: transition
|
|
274
|
+
},
|
|
275
|
+
show: {
|
|
276
|
+
strokeDashoffset: fillPercents,
|
|
277
|
+
transition: transition
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
281
|
+
className: "nm-progress__circle",
|
|
282
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
283
|
+
className: "nm-progress__circle-wrapper",
|
|
284
|
+
style: {
|
|
285
|
+
height: size
|
|
286
|
+
},
|
|
287
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("svg", {
|
|
288
|
+
height: size,
|
|
289
|
+
version: "1.1",
|
|
290
|
+
viewBox: "0 0 100 100",
|
|
291
|
+
width: size,
|
|
292
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
293
|
+
children: /*#__PURE__*/jsxRuntime.jsx("circle", {
|
|
294
|
+
strokeWidth: strokeWidth,
|
|
295
|
+
className: "circle",
|
|
296
|
+
cx: "50",
|
|
297
|
+
cy: "50",
|
|
298
|
+
fill: "transparent",
|
|
299
|
+
r: radius,
|
|
300
|
+
stroke: emptyStroke,
|
|
301
|
+
strokeOpacity: emptyStrokeOpacity
|
|
302
|
+
})
|
|
303
|
+
}), /*#__PURE__*/jsxRuntime.jsx("svg", {
|
|
304
|
+
height: size,
|
|
305
|
+
viewBox: "0 0 100 100",
|
|
306
|
+
width: size,
|
|
307
|
+
style: {
|
|
308
|
+
position: "absolute",
|
|
309
|
+
transform: "rotate(-90deg)",
|
|
310
|
+
overflow: "visible",
|
|
311
|
+
top: 0
|
|
312
|
+
},
|
|
313
|
+
children: /*#__PURE__*/jsxRuntime.jsx(framerMotion.motion.circle, {
|
|
314
|
+
stroke: stroke,
|
|
315
|
+
strokeWidth: strokeWidth,
|
|
316
|
+
variants: variants,
|
|
317
|
+
animate: "show",
|
|
318
|
+
cx: "50",
|
|
319
|
+
cy: "50",
|
|
320
|
+
fill: "transparent",
|
|
321
|
+
initial: "hidden",
|
|
322
|
+
r: radius,
|
|
323
|
+
strokeDasharray: circumference,
|
|
324
|
+
strokeDashoffset: fillPercents
|
|
325
|
+
})
|
|
326
|
+
})]
|
|
327
|
+
})
|
|
328
|
+
});
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
var FilePreview = reactUtils.withT(function (_ref) {
|
|
332
|
+
var t = _ref.t,
|
|
333
|
+
file = _ref.file,
|
|
334
|
+
isUploading = _ref.isUploading,
|
|
335
|
+
cancel = _ref.cancel,
|
|
336
|
+
progress = _ref.progress;
|
|
337
|
+
return /*#__PURE__*/jsxRuntime.jsxs("li", {
|
|
338
|
+
className: "flex items-center gap-2 px-3 py-2",
|
|
339
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
340
|
+
className: "relative flex h-6 w-6 items-center justify-center",
|
|
341
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("a", {
|
|
342
|
+
className: classnames({
|
|
343
|
+
invisible: isUploading
|
|
344
|
+
}),
|
|
345
|
+
href: file.url,
|
|
346
|
+
rel: "noreferrer",
|
|
347
|
+
target: "_blank",
|
|
348
|
+
children: /*#__PURE__*/jsxRuntime.jsx(FileText, {
|
|
349
|
+
className: "text-muted-foreground",
|
|
350
|
+
size: 20
|
|
351
|
+
})
|
|
352
|
+
}), isUploading && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
353
|
+
className: "absolute inset-0",
|
|
354
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Progress, {
|
|
355
|
+
percents: progress || 0,
|
|
356
|
+
size: 20
|
|
357
|
+
})
|
|
358
|
+
})]
|
|
359
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
360
|
+
className: "flex flex-1 flex-col",
|
|
361
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
362
|
+
className: "text-xs font-medium",
|
|
363
|
+
"data-testid": "file-name",
|
|
364
|
+
children: file.name
|
|
365
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
366
|
+
className: "text-muted-foreground text-[11px]",
|
|
367
|
+
children: file.size ? "".concat(convertBytesToMb(file.size), " MB") : ""
|
|
368
|
+
})]
|
|
369
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
370
|
+
className: "flex items-center gap-2",
|
|
371
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
372
|
+
"aria-hidden": !file.url,
|
|
373
|
+
className: classnames("text-success", {
|
|
374
|
+
"opacity-0": !file.url
|
|
375
|
+
}),
|
|
376
|
+
role: "img",
|
|
377
|
+
"aria-label": t("neetoMolecules.fileUpload.fileUploadSuccessful", {
|
|
378
|
+
defaultValue: "Upload complete"
|
|
379
|
+
}),
|
|
380
|
+
children: file.url && /*#__PURE__*/jsxRuntime.jsx(check.Check, {
|
|
381
|
+
"data-testid": "file-upload-success",
|
|
382
|
+
size: 16
|
|
383
|
+
})
|
|
384
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
385
|
+
icon: x.X,
|
|
386
|
+
size: "icon-sm",
|
|
387
|
+
variant: "ghost",
|
|
388
|
+
"aria-label": t("neetoMolecules.common.actions.remove", {
|
|
389
|
+
defaultValue: "Remove"
|
|
390
|
+
}),
|
|
391
|
+
onClick: cancel
|
|
392
|
+
})]
|
|
393
|
+
})]
|
|
394
|
+
});
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
398
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
399
|
+
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
400
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
401
|
+
var useFileUpload = function useFileUpload(_ref) {
|
|
402
|
+
var disabled = _ref.disabled,
|
|
403
|
+
accept = _ref.accept,
|
|
404
|
+
multiple = _ref.multiple,
|
|
405
|
+
maxFileSize = _ref.maxFileSize,
|
|
406
|
+
minFileSize = _ref.minFileSize,
|
|
407
|
+
files = _ref.files,
|
|
408
|
+
onChange = _ref.onChange,
|
|
409
|
+
setError = _ref.setError,
|
|
410
|
+
setTouched = _ref.setTouched,
|
|
411
|
+
hasFileSizeLimit = _ref.hasFileSizeLimit;
|
|
412
|
+
var _useState = React.useState({}),
|
|
413
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
414
|
+
uploadProgress = _useState2[0],
|
|
415
|
+
setUploadProgress = _useState2[1];
|
|
416
|
+
var _useState3 = React.useState(""),
|
|
417
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
418
|
+
uploadError = _useState4[0],
|
|
419
|
+
setUploadError = _useState4[1];
|
|
420
|
+
var filesRef = React.useRef(files);
|
|
421
|
+
filesRef.current = files;
|
|
422
|
+
var cancel = React.useCallback(function (index) {
|
|
423
|
+
return function () {
|
|
424
|
+
setUploadProgress(ramda.assoc(files[index].name, null));
|
|
425
|
+
var newFiles = files === null || files === void 0 ? void 0 : files.filter(function (_, idx) {
|
|
426
|
+
return idx !== index;
|
|
427
|
+
});
|
|
428
|
+
onChange(newFiles);
|
|
429
|
+
};
|
|
430
|
+
}, [files]);
|
|
431
|
+
React.useEffect(function () {
|
|
432
|
+
if (uploadError) setError(uploadError);
|
|
433
|
+
}, [uploadError]);
|
|
434
|
+
var onDropAccepted = /*#__PURE__*/function () {
|
|
435
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(acceptedFiles) {
|
|
436
|
+
var initialFiles, updatedFiles, newFiles, merged;
|
|
437
|
+
return _regenerator().w(function (_context) {
|
|
438
|
+
while (1) switch (_context.n) {
|
|
439
|
+
case 0:
|
|
440
|
+
setTouched(false);
|
|
441
|
+
setUploadError("");
|
|
442
|
+
initialFiles = acceptedFiles.map(function (file) {
|
|
443
|
+
return {
|
|
444
|
+
name: file.name,
|
|
445
|
+
size: file.size
|
|
446
|
+
};
|
|
447
|
+
});
|
|
448
|
+
updatedFiles = multiple ? [].concat(_toConsumableArray(files || []), _toConsumableArray(initialFiles)) : initialFiles;
|
|
449
|
+
onChange(updatedFiles);
|
|
450
|
+
_context.n = 1;
|
|
451
|
+
return new Promise(function (resolve) {
|
|
452
|
+
var collected = [];
|
|
453
|
+
acceptedFiles.forEach(function (file) {
|
|
454
|
+
setUploadProgress(ramda.assoc(file.name, 0));
|
|
455
|
+
var upload = new activestorage.DirectUpload(file, DIRECT_UPLOAD_URL, {
|
|
456
|
+
directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
|
|
457
|
+
xhr.upload.addEventListener("progress", function (event) {
|
|
458
|
+
var percentComplete = Math.round(event.loaded / event.total * 100);
|
|
459
|
+
setUploadProgress(ramda.assoc(file.name, percentComplete));
|
|
460
|
+
});
|
|
461
|
+
xhr.upload.addEventListener("load", function () {
|
|
462
|
+
setUploadProgress(ramda.assoc(file.name, undefined));
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
upload.create(function (error, blob) {
|
|
467
|
+
if (error) {
|
|
468
|
+
return setUploadError(error);
|
|
469
|
+
}
|
|
470
|
+
collected.push({
|
|
471
|
+
url: blob.blob_url,
|
|
472
|
+
name: blob.filename,
|
|
473
|
+
signedId: blob.signed_id
|
|
474
|
+
});
|
|
475
|
+
var isUploadCompleted = multiple ? acceptedFiles.length === collected.length : collected.length === 1;
|
|
476
|
+
if (isUploadCompleted) {
|
|
477
|
+
return resolve(collected);
|
|
478
|
+
}
|
|
479
|
+
return "";
|
|
480
|
+
});
|
|
481
|
+
});
|
|
482
|
+
return collected;
|
|
483
|
+
});
|
|
484
|
+
case 1:
|
|
485
|
+
newFiles = _context.v;
|
|
486
|
+
if (multiple) {
|
|
487
|
+
merged = filesRef.current.map(function (file) {
|
|
488
|
+
var uploadedFile = neetoCist.findBy({
|
|
489
|
+
name: file.name
|
|
490
|
+
}, newFiles);
|
|
491
|
+
return _objectSpread$1(_objectSpread$1({}, file), uploadedFile);
|
|
492
|
+
});
|
|
493
|
+
onChange(merged);
|
|
494
|
+
} else {
|
|
495
|
+
onChange(newFiles);
|
|
496
|
+
}
|
|
497
|
+
case 2:
|
|
498
|
+
return _context.a(2);
|
|
499
|
+
}
|
|
500
|
+
}, _callee);
|
|
501
|
+
}));
|
|
502
|
+
return function onDropAccepted(_x) {
|
|
503
|
+
return _ref2.apply(this, arguments);
|
|
504
|
+
};
|
|
505
|
+
}();
|
|
506
|
+
var onDropRejected = function onDropRejected(fileRejections) {
|
|
507
|
+
fileRejections.forEach(function (fileObject) {
|
|
508
|
+
setTouched(true);
|
|
509
|
+
setUploadError(renderErrorMessage(fileObject, maxFileSize, multiple));
|
|
510
|
+
});
|
|
511
|
+
};
|
|
512
|
+
var _useDropzone = reactDropzone.useDropzone(_objectSpread$1({
|
|
513
|
+
disabled: disabled,
|
|
514
|
+
accept: accept,
|
|
515
|
+
multiple: multiple,
|
|
516
|
+
minSize: convertMbToBytes(minFileSize),
|
|
517
|
+
onDropAccepted: onDropAccepted,
|
|
518
|
+
onDropRejected: onDropRejected
|
|
519
|
+
}, maxFileSize && hasFileSizeLimit && {
|
|
520
|
+
maxSize: convertMbToBytes(maxFileSize)
|
|
521
|
+
})),
|
|
522
|
+
getRootProps = _useDropzone.getRootProps,
|
|
523
|
+
getInputProps = _useDropzone.getInputProps,
|
|
524
|
+
isDragActive = _useDropzone.isDragActive,
|
|
525
|
+
fileRejections = _useDropzone.fileRejections;
|
|
526
|
+
return {
|
|
527
|
+
progress: uploadProgress,
|
|
528
|
+
cancel: cancel,
|
|
529
|
+
getRootProps: getRootProps,
|
|
530
|
+
getInputProps: getInputProps,
|
|
531
|
+
isDragActive: isDragActive,
|
|
532
|
+
fileRejections: fileRejections
|
|
533
|
+
};
|
|
534
|
+
};
|
|
535
|
+
|
|
536
|
+
var FileUpload = function FileUpload(_ref) {
|
|
537
|
+
var _ref$allowedFileTypes = _ref.allowedFileTypes,
|
|
538
|
+
allowedFileTypes = _ref$allowedFileTypes === void 0 ? "" : _ref$allowedFileTypes,
|
|
539
|
+
_ref$multipleFilesAll = _ref.multipleFilesAllowed,
|
|
540
|
+
multipleFilesAllowed = _ref$multipleFilesAll === void 0 ? true : _ref$multipleFilesAll,
|
|
541
|
+
_ref$maxFileSize = _ref.maxFileSize,
|
|
542
|
+
maxFileSize = _ref$maxFileSize === void 0 ? MAX_FILE_SIZE : _ref$maxFileSize,
|
|
543
|
+
_ref$hasFileSizeLimit = _ref.hasFileSizeLimit,
|
|
544
|
+
hasFileSizeLimit = _ref$hasFileSizeLimit === void 0 ? true : _ref$hasFileSizeLimit,
|
|
545
|
+
_ref$isPreview = _ref.isPreview,
|
|
546
|
+
isPreview = _ref$isPreview === void 0 ? false : _ref$isPreview,
|
|
547
|
+
_ref$minFileSize = _ref.minFileSize,
|
|
548
|
+
minFileSize = _ref$minFileSize === void 0 ? 0 : _ref$minFileSize,
|
|
549
|
+
_ref$files = _ref.files,
|
|
550
|
+
files = _ref$files === void 0 ? [] : _ref$files,
|
|
551
|
+
_ref$onChange = _ref.onChange,
|
|
552
|
+
onChange = _ref$onChange === void 0 ? neetoCist.noop : _ref$onChange,
|
|
553
|
+
error = _ref.error,
|
|
554
|
+
_ref$setError = _ref.setError,
|
|
555
|
+
setError = _ref$setError === void 0 ? neetoCist.noop : _ref$setError,
|
|
556
|
+
_ref$setTouched = _ref.setTouched,
|
|
557
|
+
setTouched = _ref$setTouched === void 0 ? neetoCist.noop : _ref$setTouched;
|
|
558
|
+
var _useFileUpload = useFileUpload({
|
|
559
|
+
disabled: isPreview,
|
|
560
|
+
accept: getAcceptedFileTypes(allowedFileTypes),
|
|
561
|
+
multiple: multipleFilesAllowed,
|
|
562
|
+
maxFileSize: maxFileSize,
|
|
563
|
+
minFileSize: minFileSize,
|
|
564
|
+
files: files,
|
|
565
|
+
onChange: onChange,
|
|
566
|
+
setError: setError,
|
|
567
|
+
setTouched: setTouched,
|
|
568
|
+
hasFileSizeLimit: hasFileSizeLimit
|
|
569
|
+
}),
|
|
570
|
+
progress = _useFileUpload.progress,
|
|
571
|
+
cancel = _useFileUpload.cancel,
|
|
572
|
+
getRootProps = _useFileUpload.getRootProps,
|
|
573
|
+
getInputProps = _useFileUpload.getInputProps,
|
|
574
|
+
isDragActive = _useFileUpload.isDragActive,
|
|
575
|
+
fileRejections = _useFileUpload.fileRejections;
|
|
576
|
+
var maxFileSizeInBytes = maxFileSize * 1000000;
|
|
577
|
+
var isUploadingFile = function isUploadingFile(file) {
|
|
578
|
+
return ramda.isNotNil(progress[file.name]) && (progress[file.name] !== 100 || !file.url);
|
|
579
|
+
};
|
|
580
|
+
var shouldShowError = error && ramda.isEmpty(fileRejections);
|
|
581
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
582
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DropZone, {
|
|
583
|
+
allowedFileTypes: allowedFileTypes,
|
|
584
|
+
getInputProps: getInputProps,
|
|
585
|
+
getRootProps: getRootProps,
|
|
586
|
+
hasFileSizeLimit: hasFileSizeLimit,
|
|
587
|
+
isDragActive: isDragActive,
|
|
588
|
+
maxFileSize: maxFileSize,
|
|
589
|
+
multipleFilesAllowed: multipleFilesAllowed
|
|
590
|
+
}), !ramda.isEmpty(files) && /*#__PURE__*/jsxRuntime.jsx("ul", {
|
|
591
|
+
className: "border-border mt-3 divide-y rounded-md border",
|
|
592
|
+
children: files === null || files === void 0 ? void 0 : files.map(function (file, idx) {
|
|
593
|
+
return /*#__PURE__*/React.createElement(FilePreview, {
|
|
594
|
+
file: file,
|
|
595
|
+
cancel: cancel(idx),
|
|
596
|
+
isUploading: isUploadingFile(file),
|
|
597
|
+
key: idx,
|
|
598
|
+
progress: progress[file.name]
|
|
599
|
+
});
|
|
600
|
+
})
|
|
601
|
+
}), neetoCist.isNotEmpty(fileRejections) && /*#__PURE__*/jsxRuntime.jsx(ErrorMessages, {
|
|
602
|
+
fileRejections: fileRejections,
|
|
603
|
+
maxFileSizeInBytes: maxFileSizeInBytes
|
|
604
|
+
}), shouldShowError && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
605
|
+
className: "text-destructive mt-1 text-xs",
|
|
606
|
+
"data-testid": "form-file-upload-input-error",
|
|
607
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
608
|
+
children: error
|
|
609
|
+
})
|
|
610
|
+
})]
|
|
611
|
+
});
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
var _excluded = ["name"];
|
|
615
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
616
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
617
|
+
var FormikFileUpload = function FormikFileUpload(_ref) {
|
|
618
|
+
var name = _ref.name,
|
|
619
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
620
|
+
var _useField = formik.useField(name),
|
|
621
|
+
_useField2 = _slicedToArray(_useField, 3);
|
|
622
|
+
_useField2[0];
|
|
623
|
+
var _useField2$ = _useField2[1],
|
|
624
|
+
value = _useField2$.value,
|
|
625
|
+
touched = _useField2$.touched,
|
|
626
|
+
error = _useField2$.error,
|
|
627
|
+
_useField2$2 = _useField2[2],
|
|
628
|
+
setValue = _useField2$2.setValue,
|
|
629
|
+
setTouched = _useField2$2.setTouched,
|
|
630
|
+
setError = _useField2$2.setError;
|
|
631
|
+
var errorToDisplay = touched && error ? error : "";
|
|
632
|
+
return /*#__PURE__*/jsxRuntime.jsx(FileUpload, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, props), {}, {
|
|
633
|
+
setError: setError,
|
|
634
|
+
setTouched: setTouched
|
|
635
|
+
})), {}, {
|
|
636
|
+
error: errorToDisplay,
|
|
637
|
+
files: value,
|
|
638
|
+
onChange: setValue
|
|
639
|
+
}));
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
exports.FileUpload = FileUpload;
|
|
643
|
+
exports.FormikFileUpload = FormikFileUpload;
|
|
644
|
+
//# sourceMappingURL=FileUpload.js.map
|