@bindu-dashing/dam-solution 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +1 -0
  2. package/dist/AssetType/assetTypeContainer.js +40 -0
  3. package/dist/AssetType/assetTypeTable.js +359 -0
  4. package/dist/AssetType/createAssetType.js +832 -0
  5. package/dist/AssetType/index.js +26 -0
  6. package/dist/AssetType/style.css +110 -0
  7. package/dist/Components/ImagePickerFiltersTest.js +121 -0
  8. package/dist/Components/ImagePickerTest.js +120 -0
  9. package/dist/CreateClient/createClient.js +34 -0
  10. package/dist/CreateClient/createClientForm.js +269 -0
  11. package/dist/CreateClient/index.js +26 -0
  12. package/dist/Folder/ImagePickerFolder.js +47 -0
  13. package/dist/Folder/index.js +26 -0
  14. package/dist/Folder/style.css +0 -0
  15. package/dist/Folders/bulkDownload.js +102 -0
  16. package/dist/Folders/bulkUpdate.js +186 -0
  17. package/dist/Folders/bulkUploadFiles.js +162 -0
  18. package/dist/Folders/bulkUploadUsingQueue.js +404 -0
  19. package/dist/Folders/createOrUpdateFolder.js +264 -0
  20. package/dist/Folders/exportFolder.js +109 -0
  21. package/dist/Folders/file.js +194 -0
  22. package/dist/Folders/fileManagementContainer.js +345 -0
  23. package/dist/Folders/files.js +315 -0
  24. package/dist/Folders/filesContainer.js +650 -0
  25. package/dist/Folders/filesListView.js +439 -0
  26. package/dist/Folders/foldersContainer.js +408 -0
  27. package/dist/Folders/foldersTree.js +136 -0
  28. package/dist/Folders/index.js +26 -0
  29. package/dist/Folders/style.css +400 -0
  30. package/dist/Folders/uploadFile.js +507 -0
  31. package/dist/ImagePicker/imagePicker.js +141 -0
  32. package/dist/ImagePicker/imagePickerFiles.js +42 -0
  33. package/dist/ImagePicker/index.js +26 -0
  34. package/dist/ImagePicker/style.css +128 -0
  35. package/dist/ImagePickerFilters/imagePickerFilters.js +382 -0
  36. package/dist/ImagePickerFilters/index.js +26 -0
  37. package/dist/ImagePickerFilters/style.css +15 -0
  38. package/dist/RefreshKey/index.js +26 -0
  39. package/dist/RefreshKey/refreshKey.js +86 -0
  40. package/dist/assets/images/default-img.svg +9 -0
  41. package/dist/constants/actionTypes.js +74 -0
  42. package/dist/constants/apiEndpoints.js +88 -0
  43. package/dist/constants/appConstants.js +55 -0
  44. package/dist/hocs/folderHelpers.js +76 -0
  45. package/dist/hocs/helpers.js +52 -0
  46. package/dist/hocs/useFetch.js +97 -0
  47. package/dist/index.js +55 -0
  48. package/package.json +61 -0
@@ -0,0 +1,507 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _antd = require("antd");
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _icons = require("@ant-design/icons");
12
+ var _useFetch = _interopRequireDefault(require("../hocs/useFetch"));
13
+ var APIS = _interopRequireWildcard(require("../constants/apiEndpoints"));
14
+ var _dayjs = _interopRequireDefault(require("dayjs"));
15
+ require("./style.css");
16
+ var _lodash = require("lodash");
17
+ var _helpers = require("../hocs/helpers");
18
+ const UploadFile = _ref => {
19
+ let {
20
+ setShowUploadFile,
21
+ folderId,
22
+ id,
23
+ fetchFiles,
24
+ folder,
25
+ damAccessKey,
26
+ secretKey,
27
+ subdomain,
28
+ styles,
29
+ teams,
30
+ accessToken,
31
+ currentUser
32
+ } = _ref;
33
+ const userId = currentUser === null || currentUser === void 0 ? void 0 : currentUser.id;
34
+ const [data, setData] = (0, _react.useState)({});
35
+ const [loading, setLoading] = (0, _react.useState)(false);
36
+ const [assetTypeId, setAssetTypeId] = (0, _react.useState)(null);
37
+ const [assetType, setAssetType] = (0, _react.useState)({});
38
+ const [file, setFile] = (0, _react.useState)(null);
39
+ const [fileType, setFileType] = (0, _react.useState)(null);
40
+ const {
41
+ fetchApi
42
+ } = (0, _useFetch.default)();
43
+ const [filename, setFilename] = (0, _react.useState)("");
44
+ const [metaDataFields, setMetaDataFields] = (0, _react.useState)([]);
45
+ const [fetchRecordLoading, setFetchRecordLoading] = (0, _react.useState)(false);
46
+ const [fileSizeError, setFileSizeError] = (0, _react.useState)(null);
47
+ const [assetTypes, setAssetTypes] = (0, _react.useState)([]);
48
+ (0, _react.useEffect)(() => {
49
+ if (assetType) {
50
+ var _assetType$metadata_f;
51
+ setMetaDataFields(assetType === null || assetType === void 0 ? void 0 : (_assetType$metadata_f = assetType.metadata_fields) === null || _assetType$metadata_f === void 0 ? void 0 : _assetType$metadata_f.sort((a, b) => {
52
+ var _a$display_order, _a$display_order$toSt, _b$display_order;
53
+ return a === null || a === void 0 ? void 0 : (_a$display_order = a.display_order) === null || _a$display_order === void 0 ? void 0 : (_a$display_order$toSt = _a$display_order.toString()) === null || _a$display_order$toSt === void 0 ? void 0 : _a$display_order$toSt.localeCompare(b === null || b === void 0 ? void 0 : (_b$display_order = b.display_order) === null || _b$display_order === void 0 ? void 0 : _b$display_order.toString());
54
+ }));
55
+ if (!id) {
56
+ var _assetType$metadata_f2;
57
+ const defaultValues = assetType === null || assetType === void 0 ? void 0 : (_assetType$metadata_f2 = assetType.metadata_fields) === null || _assetType$metadata_f2 === void 0 ? void 0 : _assetType$metadata_f2.reduce((acc, field) => {
58
+ if ((0, _lodash.includes)(["DROPDOWN", "MULTI_SELECT", "CHECKBOX", "RADIO"], field === null || field === void 0 ? void 0 : field.type)) {
59
+ var _field$options;
60
+ const optionValues = field === null || field === void 0 ? void 0 : (_field$options = field.options) === null || _field$options === void 0 ? void 0 : _field$options.map(option => option === null || option === void 0 ? void 0 : option.value);
61
+ if (field !== null && field !== void 0 && field.default_value && (0, _lodash.includes)(optionValues, field === null || field === void 0 ? void 0 : field.default_value)) {
62
+ var _field$default_value;
63
+ acc[field === null || field === void 0 ? void 0 : field.name] = (_field$default_value = field === null || field === void 0 ? void 0 : field.default_value) !== null && _field$default_value !== void 0 ? _field$default_value : null;
64
+ }
65
+ } else {
66
+ if (field !== null && field !== void 0 && field.default_value) {
67
+ var _field$default_value2;
68
+ acc[field === null || field === void 0 ? void 0 : field.name] = (_field$default_value2 = field === null || field === void 0 ? void 0 : field.default_value) !== null && _field$default_value2 !== void 0 ? _field$default_value2 : null;
69
+ }
70
+ }
71
+ return acc;
72
+ }, {});
73
+ form.setFieldsValue(defaultValues);
74
+ setData(defaultValues);
75
+ }
76
+ }
77
+ }, [assetType]);
78
+ (0, _react.useEffect)(() => {
79
+ if (assetTypes && assetTypeId) {
80
+ setAssetType(assetTypes === null || assetTypes === void 0 ? void 0 : assetTypes.find(type => (type === null || type === void 0 ? void 0 : type.id) == assetTypeId));
81
+ }
82
+ }, [assetTypeId]);
83
+ const onFinish = values => {
84
+ values === null || values === void 0 ? true : delete values.file;
85
+ if (id) {
86
+ var _values$team_ids, _values$team_ids2, _values$team_ids3;
87
+ setLoading(true);
88
+ fetchApi({
89
+ httpMethod: "put",
90
+ route: APIS.UPDATE_FILE.replace(":id", id),
91
+ body: {
92
+ ...data,
93
+ ...values,
94
+ prefix: folder === null || folder === void 0 ? void 0 : folder.path,
95
+ created_by: userId,
96
+ folder_id: folder === null || folder === void 0 ? void 0 : folder.id,
97
+ folder_name: folder === null || folder === void 0 ? void 0 : folder.name,
98
+ team_ids: typeof (values === null || values === void 0 ? void 0 : values.team_ids) === "string" ? (_values$team_ids = values === null || values === void 0 ? void 0 : values.team_ids) !== null && _values$team_ids !== void 0 ? _values$team_ids : "" : (values === null || values === void 0 ? void 0 : (_values$team_ids2 = values.team_ids) === null || _values$team_ids2 === void 0 ? void 0 : _values$team_ids2.length) > 0 ? values === null || values === void 0 ? void 0 : (_values$team_ids3 = values.team_ids) === null || _values$team_ids3 === void 0 ? void 0 : _values$team_ids3.join(",") : ""
99
+ },
100
+ accessToken,
101
+ damAccessKey,
102
+ secretKey,
103
+ subdomain,
104
+ onSuccess: response => {
105
+ setLoading(false);
106
+ setShowUploadFile(false);
107
+ _antd.notification.success({
108
+ message: "File updated successfully"
109
+ });
110
+ fetchFiles(null, folderId);
111
+ },
112
+ onFailure: () => {
113
+ setLoading(false);
114
+ _antd.notification.error({
115
+ message: "Error while updating file"
116
+ });
117
+ }
118
+ });
119
+ } else {
120
+ var _Object$keys;
121
+ const formData = new FormData();
122
+ (_Object$keys = Object.keys(values)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.forEach(key => {
123
+ if (key === "team_ids") {
124
+ formData.append(key, values !== null && values !== void 0 && values[key] ? values === null || values === void 0 ? void 0 : values[key] : "");
125
+ } else {
126
+ formData.append(key, values === null || values === void 0 ? void 0 : values[key]);
127
+ }
128
+ });
129
+ const [name, extension] = file.name.split(".");
130
+ setLoading(true);
131
+ fetchApi({
132
+ httpMethod: "GET",
133
+ route: APIS.FILE_UPLOAD_PRESIGNED_URL.replace(":extension", "." + extension),
134
+ onSuccess: response => {
135
+ console.log(response);
136
+ const data = response === null || response === void 0 ? void 0 : response.data;
137
+ const path = data === null || data === void 0 ? void 0 : data.key;
138
+ const presignedUrl = data === null || data === void 0 ? void 0 : data.presigned_url;
139
+ fetch(presignedUrl, {
140
+ method: "put",
141
+ headers: {
142
+ "Content-Type": file.type,
143
+ "Access-Control-Allow-Origin": "*"
144
+ },
145
+ body: file
146
+ }).then(response => {
147
+ formData.append("fileTempS3Path", path);
148
+ formData.append("type", fileType);
149
+ formData.append("prefix", folder === null || folder === void 0 ? void 0 : folder.path);
150
+ formData.append("created_by", userId);
151
+ formData.append("folder_id", folder === null || folder === void 0 ? void 0 : folder.id);
152
+ formData.append("folder_name", folder === null || folder === void 0 ? void 0 : folder.name);
153
+ formData.append("name", filename);
154
+ formData.append("asset_type", assetType === null || assetType === void 0 ? void 0 : assetType.name);
155
+ fetchApi({
156
+ httpMethod: "post",
157
+ route: APIS.UPLOAD_FILE,
158
+ body: formData,
159
+ isFormData: true,
160
+ onSuccess: response => {
161
+ setLoading(false);
162
+ setShowUploadFile(false);
163
+ _antd.notification.success({
164
+ message: "File uploaded successfully"
165
+ });
166
+ fetchFiles(null, folder === null || folder === void 0 ? void 0 : folder.id);
167
+ },
168
+ onFailure: () => {
169
+ setLoading(false);
170
+ _antd.notification.error({
171
+ message: "Error while uploading file"
172
+ });
173
+ },
174
+ accessToken,
175
+ damAccessKey,
176
+ secretKey,
177
+ subdomain
178
+ });
179
+ }).catch(() => {
180
+ setLoading(false);
181
+ console.error("Error while uploading the file");
182
+ _antd.notification.error({
183
+ message: "Error while uploading the file"
184
+ });
185
+ });
186
+ },
187
+ onFailure: () => {},
188
+ accessToken: accessToken,
189
+ damAccessKey,
190
+ secretKey,
191
+ subdomain
192
+ });
193
+ }
194
+ };
195
+ const [form] = _antd.Form.useForm();
196
+ (0, _react.useEffect)(() => {
197
+ if (!id) {
198
+ fetchApi({
199
+ httpMethod: "get",
200
+ route: APIS.FETCH_ASSET_TYPES,
201
+ params: {
202
+ fetchAll: true
203
+ },
204
+ onSuccess: response => {
205
+ var _response$data;
206
+ const data = response === null || response === void 0 ? void 0 : (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.items;
207
+ setAssetTypes(data);
208
+ },
209
+ accessToken,
210
+ damAccessKey,
211
+ secretKey,
212
+ subdomain
213
+ });
214
+ }
215
+ }, []);
216
+ (0, _react.useEffect)(() => {
217
+ if (id) {
218
+ setFetchRecordLoading(true);
219
+ fetchApi({
220
+ httpMethod: "get",
221
+ route: APIS.FETCH_FILE.replace(":id", id),
222
+ params: {
223
+ folder_id: folderId
224
+ },
225
+ onSuccess: response => {
226
+ const data = response === null || response === void 0 ? void 0 : response.data;
227
+ form.setFieldsValue(data);
228
+ setData(data);
229
+ setAssetTypeId(data === null || data === void 0 ? void 0 : data.asset_type_id);
230
+ fetchApi({
231
+ httpMethod: "get",
232
+ route: APIS.FETCH_ASSET_TYPES,
233
+ params: {
234
+ fetchAll: true
235
+ },
236
+ onSuccess: response => {
237
+ var _response$data2;
238
+ const assetTypeData = response === null || response === void 0 ? void 0 : (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.items;
239
+ setAssetTypes(assetTypeData);
240
+ setAssetType(assetTypeData === null || assetTypeData === void 0 ? void 0 : assetTypeData.find(type => (type === null || type === void 0 ? void 0 : type.id) == (data === null || data === void 0 ? void 0 : data.asset_type_id)));
241
+ setFetchRecordLoading(false);
242
+ },
243
+ accessToken,
244
+ damAccessKey,
245
+ secretKey,
246
+ subdomain
247
+ });
248
+ },
249
+ onFailure: () => {
250
+ setFetchRecordLoading(false);
251
+ },
252
+ accessToken,
253
+ damAccessKey,
254
+ secretKey,
255
+ subdomain
256
+ });
257
+ }
258
+ }, [id]);
259
+ const assetTypeOptions = assetTypes === null || assetTypes === void 0 ? void 0 : assetTypes.map(type => {
260
+ return {
261
+ label: type.name,
262
+ value: type.id
263
+ };
264
+ });
265
+ return /*#__PURE__*/_react.default.createElement(_antd.Drawer, {
266
+ title: /*#__PURE__*/_react.default.createElement("div", {
267
+ className: "dam-upload-file-title"
268
+ }, /*#__PURE__*/_react.default.createElement("p", null, "Upload File"), /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
269
+ ellipsis: {
270
+ tooltip: true
271
+ },
272
+ className: "description"
273
+ }, id ? data === null || data === void 0 ? void 0 : data.path : folder === null || folder === void 0 ? void 0 : folder.path)),
274
+ open: true,
275
+ className: "dam-upload-file",
276
+ onClose: () => setShowUploadFile(false),
277
+ width: 500,
278
+ maskClosable: false
279
+ }, fetchRecordLoading ? /*#__PURE__*/_react.default.createElement("div", {
280
+ className: "dam-loading"
281
+ }, /*#__PURE__*/_react.default.createElement(_antd.Spin, null)) : /*#__PURE__*/_react.default.createElement(_antd.Form, {
282
+ layout: "vertical",
283
+ onFinish: onFinish,
284
+ form: form
285
+ }, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
286
+ label: "Asset Type",
287
+ name: "asset_type_id",
288
+ rules: [{
289
+ required: true,
290
+ message: "Asset type is required"
291
+ }]
292
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
293
+ placeholder: "Select Asset Type",
294
+ options: assetTypeOptions,
295
+ onChange: e => setAssetTypeId(e),
296
+ disabled: id,
297
+ optionFilterProp: "label",
298
+ showSearch: true
299
+ })), metaDataFields === null || metaDataFields === void 0 ? void 0 : metaDataFields.map(field => {
300
+ var _field$default_value3, _field$default_value4, _field$default_value5;
301
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (field === null || field === void 0 ? void 0 : field.type) === "INPUT" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
302
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
303
+ ellipsis: {
304
+ tooltip: true
305
+ }
306
+ }, field === null || field === void 0 ? void 0 : field.name),
307
+ name: field === null || field === void 0 ? void 0 : field.name,
308
+ rules: [{
309
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
310
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
311
+ }]
312
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
313
+ defaultValue: (_field$default_value3 = field === null || field === void 0 ? void 0 : field.default_value) !== null && _field$default_value3 !== void 0 ? _field$default_value3 : ""
314
+ })), (field === null || field === void 0 ? void 0 : field.type) === "DROPDOWN" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
315
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
316
+ ellipsis: {
317
+ tooltip: true
318
+ }
319
+ }, field === null || field === void 0 ? void 0 : field.name),
320
+ name: field === null || field === void 0 ? void 0 : field.name,
321
+ rules: [{
322
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
323
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
324
+ }]
325
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
326
+ options: field === null || field === void 0 ? void 0 : field.options
327
+ })), (field === null || field === void 0 ? void 0 : field.type) === "MULTI_SELECT" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
328
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
329
+ ellipsis: {
330
+ tooltip: true
331
+ }
332
+ }, field === null || field === void 0 ? void 0 : field.name),
333
+ name: field === null || field === void 0 ? void 0 : field.name,
334
+ rules: [{
335
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
336
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
337
+ }],
338
+ getValueFromEvent: e => {
339
+ return e ? e === null || e === void 0 ? void 0 : e.join(",") : "";
340
+ },
341
+ getValueProps: i => {
342
+ return {
343
+ value: i && i !== "" ? i.split(",") : []
344
+ };
345
+ }
346
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
347
+ mode: "multiple",
348
+ options: field === null || field === void 0 ? void 0 : field.options
349
+ })), (field === null || field === void 0 ? void 0 : field.type) === "CHECKBOX" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
350
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
351
+ ellipsis: {
352
+ tooltip: true
353
+ }
354
+ }, field === null || field === void 0 ? void 0 : field.name),
355
+ name: field === null || field === void 0 ? void 0 : field.name,
356
+ rules: [{
357
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
358
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
359
+ }],
360
+ getValueFromEvent: e => {
361
+ return e ? e === null || e === void 0 ? void 0 : e.join(",") : "";
362
+ },
363
+ getValueProps: i => ({
364
+ value: i ? i.split(",") : ""
365
+ })
366
+ }, /*#__PURE__*/_react.default.createElement(_antd.Checkbox.Group, {
367
+ options: field === null || field === void 0 ? void 0 : field.options
368
+ })), (field === null || field === void 0 ? void 0 : field.type) === "RADIO" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
369
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
370
+ ellipsis: {
371
+ tooltip: true
372
+ }
373
+ }, field === null || field === void 0 ? void 0 : field.name),
374
+ name: field === null || field === void 0 ? void 0 : field.name,
375
+ rules: [{
376
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
377
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
378
+ }]
379
+ }, /*#__PURE__*/_react.default.createElement(_antd.Radio.Group, {
380
+ options: field === null || field === void 0 ? void 0 : field.options,
381
+ defaultValue: (_field$default_value4 = field === null || field === void 0 ? void 0 : field.default_value) !== null && _field$default_value4 !== void 0 ? _field$default_value4 : ""
382
+ })), (field === null || field === void 0 ? void 0 : field.type) === "TEXT_AREA" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
383
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
384
+ ellipsis: {
385
+ tooltip: true
386
+ }
387
+ }, field === null || field === void 0 ? void 0 : field.name),
388
+ name: field === null || field === void 0 ? void 0 : field.name,
389
+ rules: [{
390
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
391
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
392
+ }]
393
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input.TextArea, {
394
+ defaultValue: (_field$default_value5 = field === null || field === void 0 ? void 0 : field.default_value) !== null && _field$default_value5 !== void 0 ? _field$default_value5 : "",
395
+ autoSize: true
396
+ })), (field === null || field === void 0 ? void 0 : field.type) === "DATE" && /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
397
+ label: /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
398
+ ellipsis: {
399
+ tooltip: true
400
+ }
401
+ }, field === null || field === void 0 ? void 0 : field.name),
402
+ name: field === null || field === void 0 ? void 0 : field.name,
403
+ rules: [{
404
+ required: field === null || field === void 0 ? void 0 : field.is_mandatory,
405
+ message: `${field === null || field === void 0 ? void 0 : field.name} is required`
406
+ }],
407
+ getValueFromEvent: e => e ? (0, _dayjs.default)(e).format("YYYY-MM-DD") : null,
408
+ getValueProps: i => ({
409
+ value: i ? (0, _dayjs.default)(i) : null
410
+ })
411
+ }, /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
412
+ style: {
413
+ width: "100%"
414
+ }
415
+ })));
416
+ }), !id && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
417
+ label: "File",
418
+ name: "file",
419
+ rules: [{
420
+ required: true,
421
+ message: `File is required`
422
+ }]
423
+ }, /*#__PURE__*/_react.default.createElement(_antd.Upload, {
424
+ listType: "card",
425
+ beforeUpload: file => {
426
+ const fileSize = (0, _helpers.humanFileSize)(file === null || file === void 0 ? void 0 : file.size);
427
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) !== "GB" && (fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) !== "TB") {
428
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) == "MB") {
429
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.size) < 5) {
430
+ var _name$split;
431
+ const name = file.name;
432
+ setFile(file);
433
+ setFilename(name);
434
+ setFileType("." + (name === null || name === void 0 ? void 0 : (_name$split = name.split(".")) === null || _name$split === void 0 ? void 0 : _name$split[1]));
435
+ setFileSizeError("");
436
+ return false;
437
+ } else {
438
+ setFileSizeError("File size should be less than 5MB");
439
+ }
440
+ } else {
441
+ var _name$split2;
442
+ const name = file.name;
443
+ setFile(file);
444
+ setFilename(name);
445
+ setFileType("." + (name === null || name === void 0 ? void 0 : (_name$split2 = name.split(".")) === null || _name$split2 === void 0 ? void 0 : _name$split2[1]));
446
+ setFileSizeError("");
447
+ return false;
448
+ }
449
+ } else {
450
+ setFileSizeError("File size should be less than 5MB");
451
+ }
452
+ },
453
+ maxCount: 1
454
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
455
+ icon: /*#__PURE__*/_react.default.createElement(_icons.UploadOutlined, null)
456
+ }, "Select"))), fileSizeError && /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
457
+ style: {
458
+ color: "red"
459
+ }
460
+ }, fileSizeError)), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
461
+ label: "Expiry Date",
462
+ name: "expiry_date",
463
+ getValueFromEvent: e => e ? (0, _dayjs.default)(e).format("YYYY-MM-DD") : null,
464
+ getValueProps: i => ({
465
+ value: i ? (0, _dayjs.default)(i) : null
466
+ })
467
+ }, /*#__PURE__*/_react.default.createElement(_antd.DatePicker, {
468
+ style: {
469
+ width: "100%"
470
+ }
471
+ // disabledDate={(date) => {
472
+ // return (
473
+ // dayjs(date).format("YYYY-MM-DD") <
474
+ // dayjs().format("YYYY-MM-DD")
475
+ // );
476
+ // }}
477
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
478
+ label: "Team Ids",
479
+ name: "team_ids",
480
+ getValueFromEvent: e => {
481
+ return e ? e === null || e === void 0 ? void 0 : e.join(",") : "";
482
+ },
483
+ getValueProps: i => {
484
+ var _i$split;
485
+ return {
486
+ value: i && i !== "" ? typeof i === "string" ? (_i$split = i.split(",")) === null || _i$split === void 0 ? void 0 : _i$split.map(val => Number(val)) : i === null || i === void 0 ? void 0 : i.map(val => Number(val)) : []
487
+ };
488
+ }
489
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select
490
+ // showSearch
491
+ , {
492
+ placeholder: "Team Ids",
493
+ mode: "multiple",
494
+ options: teams,
495
+ optionFilterProp: "key"
496
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, null, /*#__PURE__*/_react.default.createElement(_antd.Button, {
497
+ block: true,
498
+ type: "primary",
499
+ htmlType: "submit",
500
+ loading: loading,
501
+ style: {
502
+ backgroundColor: styles === null || styles === void 0 ? void 0 : styles.primaryColor
503
+ }
504
+ }, id ? "Update" : "Upload"))));
505
+ };
506
+ var _default = UploadFile;
507
+ exports.default = _default;
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _antd = require("antd");
10
+ var _imagePickerFiles = _interopRequireDefault(require("./imagePickerFiles"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ require("./style.css");
13
+ var APIS = _interopRequireWildcard(require("../constants/apiEndpoints"));
14
+ var _useFetch = _interopRequireDefault(require("../hocs/useFetch"));
15
+ var _defaultImg = _interopRequireDefault(require("../assets/images/default-img.svg"));
16
+ function ImagePicker(_ref) {
17
+ let {
18
+ id,
19
+ teamIds,
20
+ damAccessKey,
21
+ secretKey,
22
+ subdomain,
23
+ styles,
24
+ onSelect,
25
+ url
26
+ } = _ref;
27
+ const [imagePickerUrl, setImagePickerUrl] = (0, _react.useState)(null);
28
+ const {
29
+ fetchApi
30
+ } = (0, _useFetch.default)();
31
+ const [image, setImage] = (0, _react.useState)({
32
+ name: ""
33
+ });
34
+ const [showImagePickerModal, setShowImagePickerModal] = (0, _react.useState)(false);
35
+ const [currentImagePicker, setCurrentImagePicker] = (0, _react.useState)({
36
+ name: ""
37
+ });
38
+ const [accessToken, setAccessToken] = (0, _react.useState)(null);
39
+ const [currentUser, setCurrentUser] = (0, _react.useState)({});
40
+ const [loading, setLoading] = (0, _react.useState)(false);
41
+ (0, _react.useEffect)(() => {
42
+ setImagePickerUrl(url);
43
+ }, [url]);
44
+ (0, _react.useEffect)(() => {
45
+ if (subdomain) {
46
+ setLoading(true);
47
+ fetchApi({
48
+ httpMethod: "post",
49
+ body: {
50
+ access_key: process.env.REACT_APP_DAM_ACCESS_KEY || damAccessKey,
51
+ secret_key: process.env.REACT_APP_DAM_SECRET_KEY || secretKey,
52
+ subdomain: process.env.REACT_APP_DAM_SUBDOMAIN || subdomain
53
+ },
54
+ route: APIS.GENERATE_TOKENS,
55
+ onSuccess: response => {
56
+ var _response$data, _response$data2;
57
+ setLoading(false);
58
+ const token = response === null || response === void 0 ? void 0 : (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.access_token;
59
+ const user = response === null || response === void 0 ? void 0 : (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.user;
60
+ setAccessToken(token);
61
+ setCurrentUser(user);
62
+ },
63
+ onFailure: () => {
64
+ setLoading(false);
65
+ setAccessToken(null);
66
+ setCurrentUser({});
67
+ },
68
+ damAccessKey,
69
+ secretKey,
70
+ subdomain
71
+ });
72
+ }
73
+ }, [subdomain]);
74
+ (0, _react.useEffect)(() => {
75
+ if (id && accessToken) {
76
+ fetchApi({
77
+ httpMethod: "get",
78
+ route: APIS.FETCH_IMAGE_PICKER.replace(":id", id),
79
+ onSuccess: response => {
80
+ setImage(response === null || response === void 0 ? void 0 : response.data);
81
+ },
82
+ accessToken,
83
+ damAccessKey,
84
+ secretKey,
85
+ subdomain
86
+ });
87
+ }
88
+ }, [id, accessToken]);
89
+ const onImageSelect = (url, value) => {
90
+ setImagePickerUrl(url);
91
+ setShowImagePickerModal(false);
92
+ if (onSelect) {
93
+ onSelect(url, value);
94
+ }
95
+ };
96
+ return /*#__PURE__*/_react.default.createElement(_antd.Row, {
97
+ className: "image-pickers"
98
+ }, loading ? /*#__PURE__*/_react.default.createElement("div", {
99
+ className: "dam-loading"
100
+ }, /*#__PURE__*/_react.default.createElement(_antd.Spin, null)) : /*#__PURE__*/_react.default.createElement(_antd.Col, {
101
+ className: "image-picker-container"
102
+ }, /*#__PURE__*/_react.default.createElement("div", {
103
+ className: "file-selection"
104
+ }, /*#__PURE__*/_react.default.createElement(_antd.Image, {
105
+ alt: "default-img",
106
+ src: imagePickerUrl,
107
+ fallback: _defaultImg.default,
108
+ width: "100%"
109
+ // height={200}
110
+ })), /*#__PURE__*/_react.default.createElement(_antd.Typography.Title, {
111
+ level: 5,
112
+ ellipsis: {
113
+ tooltip: true
114
+ }
115
+ }, image === null || image === void 0 ? void 0 : image.name), /*#__PURE__*/_react.default.createElement("div", {
116
+ className: "actions"
117
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
118
+ type: "primary",
119
+ style: {
120
+ width: "100%",
121
+ marginTop: "5px",
122
+ backgroundColor: styles === null || styles === void 0 ? void 0 : styles.primaryColor
123
+ },
124
+ onClick: () => {
125
+ setShowImagePickerModal(true);
126
+ setCurrentImagePicker(image);
127
+ },
128
+ block: true
129
+ }, "Select")), showImagePickerModal && /*#__PURE__*/_react.default.createElement(_imagePickerFiles.default, {
130
+ setShowImagePickerModal: setShowImagePickerModal,
131
+ currentImagePicker: currentImagePicker,
132
+ onSelect: onImageSelect,
133
+ teamIds: teamIds,
134
+ damAccessKey: damAccessKey,
135
+ secretKey: secretKey,
136
+ subdomain: subdomain,
137
+ styles: styles
138
+ })));
139
+ }
140
+ var _default = ImagePicker;
141
+ exports.default = _default;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _antd = require("antd");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _fileManagementContainer = _interopRequireDefault(require("../Folders/fileManagementContainer"));
11
+ const ImagePickerFiles = _ref => {
12
+ let {
13
+ currentImagePicker,
14
+ setShowImagePickerModal,
15
+ onSelect,
16
+ teamIds,
17
+ damAccessKey,
18
+ secretKey,
19
+ subdomain,
20
+ styles
21
+ } = _ref;
22
+ return /*#__PURE__*/_react.default.createElement(_antd.Modal, {
23
+ className: "image-picker-modal",
24
+ open: true,
25
+ footer: null,
26
+ width: 1200,
27
+ onCancel: () => setShowImagePickerModal(false)
28
+ }, /*#__PURE__*/_react.default.createElement("div", {
29
+ className: "image-picker-files"
30
+ }, /*#__PURE__*/_react.default.createElement(_fileManagementContainer.default, {
31
+ onSelect: onSelect,
32
+ isImagePicker: true,
33
+ currentImagePicker: currentImagePicker,
34
+ teamIds: teamIds,
35
+ damAccessKey: damAccessKey,
36
+ secretKey: secretKey,
37
+ subdomain: subdomain,
38
+ styles: styles
39
+ })));
40
+ };
41
+ var _default = ImagePickerFiles;
42
+ exports.default = _default;