@bindu-dashing/dam-solution-v2 5.8.6

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 (259) hide show
  1. package/README.md +53 -0
  2. package/build/AssetType/AddFieldProperties.d.ts +9 -0
  3. package/build/AssetType/AddFieldProperties.js +197 -0
  4. package/build/AssetType/AssetTemplatesTable.d.ts +10 -0
  5. package/build/AssetType/AssetTemplatesTable.js +153 -0
  6. package/build/AssetType/CreateAssetTemplate.d.ts +3 -0
  7. package/build/AssetType/CreateAssetTemplate.js +68 -0
  8. package/build/AssetType/CreateOrEditAssetTemplate.d.ts +1 -0
  9. package/build/AssetType/CreateOrEditAssetTemplate.js +77 -0
  10. package/build/AssetType/DraggedField.d.ts +14 -0
  11. package/build/AssetType/DraggedField.js +40 -0
  12. package/build/AssetType/EditAssetTemplate.d.ts +5 -0
  13. package/build/AssetType/EditAssetTemplate.js +179 -0
  14. package/build/AssetType/FieldsSection.d.ts +14 -0
  15. package/build/AssetType/FieldsSection.js +239 -0
  16. package/build/AssetType/assetTemplatesContainer.d.ts +2 -0
  17. package/build/AssetType/assetTemplatesContainer.js +71 -0
  18. package/build/AssetType/fieldProperties/DateField.d.ts +5 -0
  19. package/build/AssetType/fieldProperties/DateField.js +23 -0
  20. package/build/AssetType/fieldProperties/NumberField.d.ts +5 -0
  21. package/build/AssetType/fieldProperties/NumberField.js +91 -0
  22. package/build/AssetType/fieldProperties/OptionsField.d.ts +6 -0
  23. package/build/AssetType/fieldProperties/OptionsField.js +55 -0
  24. package/build/AssetType/fieldProperties/TextField.d.ts +5 -0
  25. package/build/AssetType/fieldProperties/TextField.js +92 -0
  26. package/build/AssetType/index.d.ts +11 -0
  27. package/build/AssetType/index.js +24 -0
  28. package/build/AssetType/routes.d.ts +3 -0
  29. package/build/AssetType/routes.js +17 -0
  30. package/build/BookView/ProductDescription.d.ts +4 -0
  31. package/build/BookView/ProductDescription.js +20 -0
  32. package/build/BookView/bookDetail.d.ts +4 -0
  33. package/build/BookView/bookDetail.js +106 -0
  34. package/build/BookView/bookInfo.d.ts +4 -0
  35. package/build/BookView/bookInfo.js +17 -0
  36. package/build/BookView/description.d.ts +4 -0
  37. package/build/BookView/description.js +5 -0
  38. package/build/BookView/index.d.ts +10 -0
  39. package/build/BookView/index.js +23 -0
  40. package/build/CreateClient/CreateClientBtn.d.ts +8 -0
  41. package/build/CreateClient/CreateClientBtn.js +12 -0
  42. package/build/CreateClient/CreateClientForm.d.ts +9 -0
  43. package/build/CreateClient/CreateClientForm.js +165 -0
  44. package/build/CreateClient/index.d.ts +14 -0
  45. package/build/CreateClient/index.js +18 -0
  46. package/build/ImagePicker/MetaFieldOptions.d.ts +14 -0
  47. package/build/ImagePicker/MetaFieldOptions.js +75 -0
  48. package/build/ImagePicker/TestImagePickerModal.d.ts +8 -0
  49. package/build/ImagePicker/TestImagePickerModal.js +61 -0
  50. package/build/ImagePicker/TestImgFromMetaData.d.ts +7 -0
  51. package/build/ImagePicker/TestImgFromMetaData.js +82 -0
  52. package/build/ImagePicker/imagePickerComponent.d.ts +6 -0
  53. package/build/ImagePicker/imagePickerComponent.js +63 -0
  54. package/build/ImagePicker/index.d.ts +13 -0
  55. package/build/ImagePicker/index.js +24 -0
  56. package/build/ImagePicker/routes.d.ts +6 -0
  57. package/build/ImagePicker/routes.js +17 -0
  58. package/build/ImagePickerFilters/ImagePickerFiltersComponent.d.ts +8 -0
  59. package/build/ImagePickerFilters/ImagePickerFiltersComponent.js +223 -0
  60. package/build/ImagePickerFilters/index.d.ts +12 -0
  61. package/build/ImagePickerFilters/index.js +19 -0
  62. package/build/MyDrive/ActionBar.d.ts +6 -0
  63. package/build/MyDrive/ActionBar.js +165 -0
  64. package/build/MyDrive/AddDrive.d.ts +3 -0
  65. package/build/MyDrive/AddDrive.js +169 -0
  66. package/build/MyDrive/AddFolder.d.ts +10 -0
  67. package/build/MyDrive/AddFolder.js +150 -0
  68. package/build/MyDrive/BreadCrumbList.d.ts +9 -0
  69. package/build/MyDrive/BreadCrumbList.js +86 -0
  70. package/build/MyDrive/BulkUploadModal.d.ts +2 -0
  71. package/build/MyDrive/BulkUploadModal.js +279 -0
  72. package/build/MyDrive/DriveContainer.d.ts +13 -0
  73. package/build/MyDrive/DriveContainer.js +276 -0
  74. package/build/MyDrive/FileDownloadHistory.d.ts +7 -0
  75. package/build/MyDrive/FileDownloadHistory.js +94 -0
  76. package/build/MyDrive/FileMenuOptions.d.ts +11 -0
  77. package/build/MyDrive/FileMenuOptions.js +397 -0
  78. package/build/MyDrive/FilesGridView.d.ts +9 -0
  79. package/build/MyDrive/FilesGridView.js +25 -0
  80. package/build/MyDrive/FolderGridView.d.ts +19 -0
  81. package/build/MyDrive/FolderGridView.js +91 -0
  82. package/build/MyDrive/FolderListView.d.ts +25 -0
  83. package/build/MyDrive/FolderListView.js +188 -0
  84. package/build/MyDrive/FolderMenuOptions.d.ts +5 -0
  85. package/build/MyDrive/FolderMenuOptions.js +350 -0
  86. package/build/MyDrive/FolderTree.d.ts +8 -0
  87. package/build/MyDrive/FolderTree.js +342 -0
  88. package/build/MyDrive/ImageEditor/EditImage.d.ts +6 -0
  89. package/build/MyDrive/ImageEditor/EditImage.js +97 -0
  90. package/build/MyDrive/ImageEditor/EditImageModal.d.ts +8 -0
  91. package/build/MyDrive/ImageEditor/EditImageModal.js +30 -0
  92. package/build/MyDrive/ImageEditor/TuiImageEditor.d.ts +10 -0
  93. package/build/MyDrive/ImageEditor/TuiImageEditor.js +99 -0
  94. package/build/MyDrive/ImagePickerBreadCrumbList.d.ts +8 -0
  95. package/build/MyDrive/ImagePickerBreadCrumbList.js +35 -0
  96. package/build/MyDrive/ImagePickerDrive.d.ts +1 -0
  97. package/build/MyDrive/ImagePickerDrive.js +41 -0
  98. package/build/MyDrive/MyDriveMainContainer.d.ts +1 -0
  99. package/build/MyDrive/MyDriveMainContainer.js +32 -0
  100. package/build/MyDrive/SearchFilter.d.ts +8 -0
  101. package/build/MyDrive/SearchFilter.js +73 -0
  102. package/build/MyDrive/ShareBtn.d.ts +5 -0
  103. package/build/MyDrive/ShareBtn.js +19 -0
  104. package/build/MyDrive/ToggleView.d.ts +4 -0
  105. package/build/MyDrive/ToggleView.js +12 -0
  106. package/build/MyDrive/UploadStatusModal.d.ts +12 -0
  107. package/build/MyDrive/UploadStatusModal.js +40 -0
  108. package/build/MyDrive/fileDetails/CommentEntity.d.ts +8 -0
  109. package/build/MyDrive/fileDetails/CommentEntity.js +102 -0
  110. package/build/MyDrive/fileDetails/Comments.d.ts +6 -0
  111. package/build/MyDrive/fileDetails/Comments.js +65 -0
  112. package/build/MyDrive/fileDetails/Compliance.d.ts +2 -0
  113. package/build/MyDrive/fileDetails/Compliance.js +18 -0
  114. package/build/MyDrive/fileDetails/CreateComment.d.ts +7 -0
  115. package/build/MyDrive/fileDetails/CreateComment.js +48 -0
  116. package/build/MyDrive/fileDetails/Editor.d.ts +6 -0
  117. package/build/MyDrive/fileDetails/Editor.js +55 -0
  118. package/build/MyDrive/fileDetails/EmojiPicker.d.ts +5 -0
  119. package/build/MyDrive/fileDetails/EmojiPicker.js +6 -0
  120. package/build/MyDrive/fileDetails/FileDetails.d.ts +10 -0
  121. package/build/MyDrive/fileDetails/FileDetails.js +78 -0
  122. package/build/MyDrive/fileDetails/FileHeader.d.ts +7 -0
  123. package/build/MyDrive/fileDetails/FileHeader.js +25 -0
  124. package/build/MyDrive/fileDetails/FileViewer.d.ts +10 -0
  125. package/build/MyDrive/fileDetails/FileViewer.js +31 -0
  126. package/build/MyDrive/fileDetails/ImageOptions.d.ts +2 -0
  127. package/build/MyDrive/fileDetails/ImageOptions.js +44 -0
  128. package/build/MyDrive/fileDetails/ImageViewer.d.ts +5 -0
  129. package/build/MyDrive/fileDetails/ImageViewer.js +16 -0
  130. package/build/MyDrive/fileDetails/ManageFile.d.ts +7 -0
  131. package/build/MyDrive/fileDetails/ManageFile.js +34 -0
  132. package/build/MyDrive/fileDetails/MetaForm.d.ts +15 -0
  133. package/build/MyDrive/fileDetails/MetaForm.js +195 -0
  134. package/build/MyDrive/fileDetails/Metadata.d.ts +8 -0
  135. package/build/MyDrive/fileDetails/Metadata.js +52 -0
  136. package/build/MyDrive/fileDetails/PdfOptions.d.ts +9 -0
  137. package/build/MyDrive/fileDetails/PdfOptions.js +35 -0
  138. package/build/MyDrive/fileDetails/PdfViewer.d.ts +8 -0
  139. package/build/MyDrive/fileDetails/PdfViewer.js +18 -0
  140. package/build/MyDrive/fileDetails/Previewdetails.d.ts +9 -0
  141. package/build/MyDrive/fileDetails/Previewdetails.js +53 -0
  142. package/build/MyDrive/fileDetails/VideoPlayer.d.ts +4 -0
  143. package/build/MyDrive/fileDetails/VideoPlayer.js +21 -0
  144. package/build/MyDrive/files/AssetSelectionFormItem.d.ts +7 -0
  145. package/build/MyDrive/files/AssetSelectionFormItem.js +14 -0
  146. package/build/MyDrive/files/FolderTabs.d.ts +6 -0
  147. package/build/MyDrive/files/FolderTabs.js +83 -0
  148. package/build/MyDrive/files/MapFile.d.ts +8 -0
  149. package/build/MyDrive/files/MapFile.js +217 -0
  150. package/build/MyDrive/files/MoveToAnotherFolder.d.ts +9 -0
  151. package/build/MyDrive/files/MoveToAnotherFolder.js +53 -0
  152. package/build/MyDrive/filesListView.d.ts +2 -0
  153. package/build/MyDrive/filesListView.js +57 -0
  154. package/build/MyDrive/index.d.ts +10 -0
  155. package/build/MyDrive/index.js +35 -0
  156. package/build/MyDrive/routes.d.ts +7 -0
  157. package/build/MyDrive/routes.js +17 -0
  158. package/build/PenView/PenDetails.d.ts +4 -0
  159. package/build/PenView/PenDetails.js +114 -0
  160. package/build/PenView/ProductDescription.d.ts +5 -0
  161. package/build/PenView/ProductDescription.js +51 -0
  162. package/build/PenView/index.d.ts +10 -0
  163. package/build/PenView/index.js +23 -0
  164. package/build/RefreshKey/RefreshKeyBtn.d.ts +1 -0
  165. package/build/RefreshKey/RefreshKeyBtn.js +42 -0
  166. package/build/RefreshKey/index.d.ts +9 -0
  167. package/build/RefreshKey/index.js +23 -0
  168. package/build/ShoesView/ProductDescription.d.ts +4 -0
  169. package/build/ShoesView/ProductDescription.js +25 -0
  170. package/build/ShoesView/ShoeDetails.d.ts +4 -0
  171. package/build/ShoesView/ShoeDetails.js +96 -0
  172. package/build/ShoesView/index.d.ts +10 -0
  173. package/build/ShoesView/index.js +23 -0
  174. package/build/common/Button.d.ts +2 -0
  175. package/build/common/Button.js +18 -0
  176. package/build/common/CustomElements.d.ts +98 -0
  177. package/build/common/CustomElements.js +77 -0
  178. package/build/common/LoadMoreItems.d.ts +7 -0
  179. package/build/common/LoadMoreItems.js +33 -0
  180. package/build/common/RenderFormItem.d.ts +42 -0
  181. package/build/common/RenderFormItem.js +98 -0
  182. package/build/common/RenderThumnail.d.ts +7 -0
  183. package/build/common/RenderThumnail.js +6 -0
  184. package/build/common/deleteModal.d.ts +1 -0
  185. package/build/common/deleteModal.js +12 -0
  186. package/build/common/folders/TypeAndDateFilters.d.ts +10 -0
  187. package/build/common/folders/TypeAndDateFilters.js +59 -0
  188. package/build/common/folders/getFolderOrFileIcon.d.ts +2 -0
  189. package/build/common/folders/getFolderOrFileIcon.js +41 -0
  190. package/build/common/loader/CustomLoader.d.ts +7 -0
  191. package/build/common/loader/CustomLoader.js +8 -0
  192. package/build/common/loader/loader.d.ts +1 -0
  193. package/build/common/loader/loader.js +6 -0
  194. package/build/common/notifications.d.ts +2 -0
  195. package/build/common/notifications.js +30 -0
  196. package/build/common/steps.d.ts +4 -0
  197. package/build/common/steps.js +7 -0
  198. package/build/hocs/AppProvider.d.ts +3 -0
  199. package/build/hocs/AppProvider.js +11 -0
  200. package/build/hocs/DamConfigContext.d.ts +2 -0
  201. package/build/hocs/DamConfigContext.js +108 -0
  202. package/build/hocs/ThemeContext.d.ts +15 -0
  203. package/build/hocs/ThemeContext.js +131 -0
  204. package/build/hocs/ToastProvider.d.ts +2 -0
  205. package/build/hocs/ToastProvider.js +6 -0
  206. package/build/hocs/appConstants.d.ts +124 -0
  207. package/build/hocs/appConstants.js +211 -0
  208. package/build/hocs/configureAxios.d.ts +2 -0
  209. package/build/hocs/configureAxios.js +65 -0
  210. package/build/hocs/helpers.d.ts +15 -0
  211. package/build/hocs/helpers.js +177 -0
  212. package/build/index.d.ts +11 -0
  213. package/build/index.js +11 -0
  214. package/build/react-query/hooks/brand-hooks.d.ts +3 -0
  215. package/build/react-query/hooks/brand-hooks.js +10 -0
  216. package/build/react-query/hooks/folder-hooks.d.ts +7 -0
  217. package/build/react-query/hooks/folder-hooks.js +119 -0
  218. package/build/react-query/services/brand-services.d.ts +3 -0
  219. package/build/react-query/services/brand-services.js +30 -0
  220. package/build/react-query/services/file-services.d.ts +43 -0
  221. package/build/react-query/services/file-services.js +69 -0
  222. package/build/react-query/services/folder-services.d.ts +44 -0
  223. package/build/react-query/services/folder-services.js +87 -0
  224. package/build/react-query/services/image-picker-services.d.ts +5 -0
  225. package/build/react-query/services/image-picker-services.js +48 -0
  226. package/build/settings/InviteTeamModal.d.ts +12 -0
  227. package/build/settings/InviteTeamModal.js +174 -0
  228. package/build/settings/UpdateInvitationAccessType.d.ts +9 -0
  229. package/build/settings/UpdateInvitationAccessType.js +96 -0
  230. package/build/settings/getUserAvatar.d.ts +7 -0
  231. package/build/settings/getUserAvatar.js +11 -0
  232. package/build/style.css +1 -0
  233. package/build/types/assetType.d.ts +8 -0
  234. package/build/types/assetType.js +1 -0
  235. package/build/ui/pageTitle.d.ts +3 -0
  236. package/build/ui/pageTitle.js +4 -0
  237. package/build/utilities/FoldersContext.d.ts +14 -0
  238. package/build/utilities/FoldersContext.js +10 -0
  239. package/build/utilities/NavigatorProvider.d.ts +2 -0
  240. package/build/utilities/NavigatorProvider.js +10 -0
  241. package/build/utilities/constants/apiUrls.d.ts +95 -0
  242. package/build/utilities/constants/apiUrls.js +115 -0
  243. package/build/utilities/constants/imageUrls.d.ts +6 -0
  244. package/build/utilities/constants/imageUrls.js +6 -0
  245. package/build/utilities/constants/interface.d.ts +371 -0
  246. package/build/utilities/constants/interface.js +142 -0
  247. package/build/utilities/constants/messages.d.ts +54 -0
  248. package/build/utilities/constants/messages.js +54 -0
  249. package/build/utilities/constants/queryKeys.d.ts +16 -0
  250. package/build/utilities/constants/queryKeys.js +33 -0
  251. package/build/utilities/constants/routes.d.ts +22 -0
  252. package/build/utilities/constants/routes.js +22 -0
  253. package/build/utilities/helpers/validators.d.ts +12 -0
  254. package/build/utilities/helpers/validators.js +89 -0
  255. package/build/utilities/useAppNavigate.d.ts +2 -0
  256. package/build/utilities/useAppNavigate.js +19 -0
  257. package/build/utilities/useAppParams.d.ts +6 -0
  258. package/build/utilities/useAppParams.js +27 -0
  259. package/package.json +93 -0
@@ -0,0 +1,276 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { useEffect, useMemo, useRef, useState } from "react";
12
+ import _, { filter, first, flatMap, get, includes, isEmpty, merge, } from "lodash";
13
+ import FolderListView from "./FolderListView";
14
+ import FolderGridView from "./FolderGridView";
15
+ import TypeAndDateFilters from "../common/folders/TypeAndDateFilters";
16
+ import { Button, Input, Upload } from "antd";
17
+ import { addQueryParams, getDateRangeFromKey } from "../hocs/helpers";
18
+ import { useFolders } from "../react-query/services/folder-services";
19
+ import { DEFAULT_PAGE } from "../hocs/appConstants";
20
+ import Loader from "../common/loader/loader";
21
+ import ToggleView from "./ToggleView";
22
+ import AddDrive from "./AddDrive";
23
+ import BreadCrumbList from "./BreadCrumbList";
24
+ import { SOMETHING_WENT_WRONG } from "../utilities/constants/messages";
25
+ import { DriveModes, EntityType, NotificationStatus, SortByKeys, SortOrders, } from "../utilities/constants/interface";
26
+ import { generateFoldersQueryKey } from "../utilities/constants/queryKeys";
27
+ import CustomButton from "../common/Button";
28
+ import { BsUpload } from "react-icons/bs";
29
+ import { useDamConfig } from "../hocs/DamConfigContext";
30
+ import { createApiClient } from "../hocs/configureAxios";
31
+ import { NOT_FOUND_IMAGE_URL } from "../utilities/constants/imageUrls";
32
+ import ImagePickerBreadCrumbList from "./ImagePickerBreadCrumbList";
33
+ import { FETCH_ASSETS_URL, FETCH_IMAGE_PCIKER_THUMBNAIL_URL, UPLOAD_IMAGE_PICKER_LOCAL_FILE_URL, } from "../utilities/constants/apiUrls";
34
+ import { showNotification } from "../common/notifications";
35
+ import useAppParams from "../utilities/useAppParams";
36
+ import { IoIosSearch } from "react-icons/io";
37
+ const BsUploadIcon = BsUpload;
38
+ const IoIosSearchIcon = IoIosSearch;
39
+ function DriveContainer({ parentFolderId, setSelectedFile, setParentFolderId, pickerFolderId, selectedPickerFile, imagePicker, globalSearch, setGlobalSearch, }) {
40
+ const damConfig = useDamConfig();
41
+ const { rootFolderId, brand, isAdmin } = damConfig;
42
+ const brandId = get(brand, "_id");
43
+ const { folderId, type, id } = useAppParams();
44
+ const api = useMemo(() => createApiClient(damConfig), [damConfig]);
45
+ const [state, setState] = useState({
46
+ selectedType: "",
47
+ selectedDateKey: "",
48
+ showGrid: false,
49
+ loadingType: "",
50
+ selectedItems: {},
51
+ assets: [],
52
+ sortBy: SortByKeys.UPDATED_AT,
53
+ sortOrder: SortOrders.DESCEND,
54
+ searchKey: "",
55
+ searchValue: "",
56
+ metadataKey: "",
57
+ metadataValue: "",
58
+ folderSearch: "",
59
+ });
60
+ const { selectedType, selectedDateKey, showGrid, loadingType, selectedItems, assets, sortBy, sortOrder, searchKey, searchValue, metadataKey, metadataValue, folderSearch, } = state;
61
+ const nameSearchRef = useRef();
62
+ const getSearchParams = () => {
63
+ const params = {};
64
+ if (searchKey === "name") {
65
+ params["search"] = searchValue;
66
+ }
67
+ else if (searchKey === "extensionType") {
68
+ params["extensionType"] = searchValue;
69
+ }
70
+ else if (searchKey === "assetName") {
71
+ params["assetName"] = searchValue;
72
+ }
73
+ return params;
74
+ };
75
+ const { data: foldersPaginatedData, isLoading, hasNextPage, fetchNextPage, refetch, isFetching, error, } = useFolders(api, generateFoldersQueryKey(type), merge({}, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ page: DEFAULT_PAGE }, (type ? { category: type } : {})), (!!imagePicker
76
+ ? {
77
+ includeSubFolders: get(imagePicker, "includeSubFolders", true),
78
+ teamVisibility: get(imagePicker, "teamVisibility", true),
79
+ }
80
+ : {})), (!!searchKey && !!searchValue ? getSearchParams() : {})), (!!metadataKey && !!metadataValue
81
+ ? { metadataKey: metadataKey, metadataValue: metadataValue }
82
+ : {})), (!!folderSearch ? { name: folderSearch } : {})), (!!globalSearch && (folderId === rootFolderId || !folderId)
83
+ ? { globalSearch }
84
+ : {})), { sortBy: sortBy, sortOrder: sortOrder }), Object.assign(Object.assign({}, getDateRangeFromKey(selectedDateKey)), (!!selectedType ? { type: selectedType } : {}))), folderId
85
+ ? folderId
86
+ : parentFolderId
87
+ ? parentFolderId
88
+ : id
89
+ ? id
90
+ : rootFolderId);
91
+ useEffect(() => {
92
+ if (typeof window !== "undefined") {
93
+ const isMobile = window.innerWidth < 768;
94
+ if (isMobile) {
95
+ setState((prev) => (Object.assign(Object.assign({}, prev), { showGrid: true })));
96
+ }
97
+ }
98
+ }, []);
99
+ const folders = useMemo(() => {
100
+ return !!foldersPaginatedData
101
+ ? flatMap(get(foldersPaginatedData, "pages"), "folders")
102
+ : [];
103
+ }, [foldersPaginatedData]);
104
+ const onDateMenuClick = ({ key }) => {
105
+ const { startDate, endDate } = getDateRangeFromKey(key);
106
+ setState((prev) => (Object.assign(Object.assign({}, prev), { selectedDateKey: key, customDateRange: null, loadingType: "date" })));
107
+ };
108
+ const onTypeMenuClick = ({ key }) => {
109
+ setState((prev) => (Object.assign(Object.assign({}, prev), { selectedType: key, loadingType: "type" })));
110
+ };
111
+ const prevDateKeyRef = useRef();
112
+ const prevTypeKeyRef = useRef();
113
+ const prevParentRef = useRef();
114
+ const prevSortByKeyRef = useRef();
115
+ const prevSortOrderRef = useRef();
116
+ const prevSearchValueRef = useRef();
117
+ const prevMetadataKeyRef = useRef();
118
+ const prevMetadataValueRef = useRef();
119
+ const prevFolderSearchRef = useRef();
120
+ const prevGlobalSearchRef = useRef();
121
+ useEffect(() => {
122
+ const prevDateKeyState = prevDateKeyRef.current;
123
+ const prevTypeKeyState = prevTypeKeyRef.current;
124
+ const prevSortByKeyState = prevSortByKeyRef.current;
125
+ const prevSortOrderState = prevSortOrderRef.current;
126
+ const prevSearchValueState = prevSearchValueRef.current;
127
+ const prevMetadataKeyState = prevMetadataKeyRef.current;
128
+ const prevMetadataValueState = prevMetadataValueRef.current;
129
+ const prevFolderSearchState = prevFolderSearchRef.current;
130
+ const prevGlobalSearchState = prevGlobalSearchRef.current;
131
+ const shouldRefetch = selectedDateKey !== prevDateKeyState ||
132
+ selectedType !== prevTypeKeyState ||
133
+ sortBy !== prevSortByKeyState ||
134
+ sortOrder !== prevSortOrderState ||
135
+ searchValue !== prevSearchValueState ||
136
+ metadataKey !== prevMetadataKeyState ||
137
+ metadataValue !== prevMetadataValueState ||
138
+ folderSearch !== prevFolderSearchState ||
139
+ globalSearch !== prevGlobalSearchState;
140
+ if (shouldRefetch) {
141
+ refetch();
142
+ }
143
+ prevDateKeyRef.current = selectedDateKey;
144
+ prevTypeKeyRef.current = selectedType;
145
+ prevSortByKeyRef.current = sortBy;
146
+ prevSortOrderRef.current = sortOrder;
147
+ prevSearchValueRef.current = searchValue;
148
+ prevMetadataKeyRef.current = metadataKey;
149
+ prevMetadataValueRef.current = metadataValue;
150
+ prevFolderSearchRef.current = folderSearch;
151
+ prevGlobalSearchRef.current = globalSearch;
152
+ }, [
153
+ selectedDateKey,
154
+ selectedType,
155
+ sortBy,
156
+ sortOrder,
157
+ searchValue,
158
+ metadataKey,
159
+ metadataValue,
160
+ folderSearch,
161
+ globalSearch,
162
+ ]);
163
+ const parentFolder = useMemo(() => get(first(get(foldersPaginatedData, "pages", [])), "folder", {}), [foldersPaginatedData]);
164
+ const onSelectNewFile = (file) => __awaiter(this, void 0, void 0, function* () {
165
+ try {
166
+ setState((prevState) => {
167
+ return Object.assign(Object.assign({}, prevState), { loadingType: "NEW_FILE_UPLOAD" });
168
+ });
169
+ const response = yield api.post(UPLOAD_IMAGE_PICKER_LOCAL_FILE_URL, {
170
+ brandId,
171
+ folderId: folderId || rootFolderId,
172
+ name: file.name,
173
+ size: file.size,
174
+ });
175
+ // console.log(response);
176
+ const [name, extension] = file.name.split(".");
177
+ const filePath = get(response, "data.filePath");
178
+ const url = get(response, "data.url");
179
+ fetch(url, {
180
+ method: "PUT",
181
+ body: file,
182
+ })
183
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
184
+ // setSelectedFile()
185
+ const fileResponse = yield api.post(FETCH_IMAGE_PCIKER_THUMBNAIL_URL, {
186
+ brandId,
187
+ folderId: folderId || rootFolderId,
188
+ name: file.name,
189
+ mimetype: `image/${extension}`,
190
+ s3Path: filePath,
191
+ });
192
+ // console.log(fileResponse);
193
+ if (setSelectedFile) {
194
+ setSelectedFile(fileResponse === null || fileResponse === void 0 ? void 0 : fileResponse.data, true);
195
+ }
196
+ }))
197
+ .catch((err) => {
198
+ console.log(err);
199
+ setState((prevState) => {
200
+ return Object.assign(Object.assign({}, prevState), { loadingType: "" });
201
+ });
202
+ showNotification(get(err, "message", SOMETHING_WENT_WRONG), NotificationStatus.ERROR);
203
+ });
204
+ }
205
+ catch (error) {
206
+ console.error("Error uploading file:", error);
207
+ }
208
+ finally {
209
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { loadingType: "" })));
210
+ }
211
+ });
212
+ useEffect(() => {
213
+ if (brandId) {
214
+ fetchAssets();
215
+ }
216
+ }, [brandId]);
217
+ const fetchAssets = () => __awaiter(this, void 0, void 0, function* () {
218
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { assetsLoading: true })));
219
+ try {
220
+ const response = yield api.get(`${FETCH_ASSETS_URL.replace(":brandId", brandId)}?${addQueryParams({
221
+ isActive: true,
222
+ isPagination: false,
223
+ })}`);
224
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { assets: get(response, "data.data", []) })));
225
+ }
226
+ catch (error) {
227
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { assets: [] })));
228
+ showNotification(get(error, "message", SOMETHING_WENT_WRONG), NotificationStatus.ERROR);
229
+ }
230
+ });
231
+ const onSearch = (filters) => {
232
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), filters)));
233
+ };
234
+ // console.log("search", searchKey, searchValue, metadataKey, metadataValue);
235
+ return (_jsxs("div", { className: "md-lib-h-[inherit]", children: [type !== DriveModes.FILE && (_jsx(_Fragment, { children: _jsxs("div", { className: "md-lib-flex md-lib-items-center md-lib-px-4 md-lib-h-20 md-lib-justify-between md-lib-border-b md-lib-border-borderColor dark:md-lib-border-darkBorderColor md-lib-mb-4", children: [imagePicker ? (_jsx(ImagePickerBreadCrumbList, { folder: parentFolder, parentFolderId: parentFolderId, setParentFolderId: setParentFolderId, pickerFolderId: pickerFolderId })) : (_jsx(_Fragment, { children: _jsx(BreadCrumbList, { folder: parentFolder, parentFolderId: parentFolderId, setParentFolderId: setParentFolderId, pickerFolderId: pickerFolderId, globalSearch: globalSearch }) })), !parentFolderId && isAdmin && _jsx(AddDrive, {}), get(imagePicker, "allowNewFiles") && (_jsx(Upload, { beforeUpload: (file) => {
236
+ onSelectNewFile(file);
237
+ }, showUploadList: false, accept: "image/*", children: _jsx(CustomButton, { loading: loadingType === "NEW_FILE_UPLOAD", label: "Select File", icon: _jsx(BsUploadIcon, {}) }) }))] }) })), _jsxs("div", { className: `md-lib-px-4 md-lib-border-borderColor dark:md-lib-border-darkBorderColor md-lib-flex ${!includes([DriveModes.FOLDERS, DriveModes.FILE], type)
238
+ ? "md-lib-justify-between"
239
+ : "md-lib-justify-end md-lib-my-4"}`, children: [_jsxs("div", { className: "md-lib-flex md-lib-items-center md-lib-gap-4 md-lib-mb-4", children: [_jsx(Input, { placeholder: "Search files (min. 2 characters required)", ref: nameSearchRef, prefix: _jsx(IoIosSearchIcon, {}), onPressEnter: () => {
240
+ var _a;
241
+ const currentObj = nameSearchRef.current;
242
+ if (currentObj) {
243
+ const value = ((_a = currentObj === null || currentObj === void 0 ? void 0 : currentObj.input) === null || _a === void 0 ? void 0 : _a.value) || "";
244
+ if (value.length >= 2 || !value) {
245
+ setState((prevState) => {
246
+ return Object.assign(Object.assign({}, prevState), { folderSearch: value });
247
+ });
248
+ }
249
+ }
250
+ } }), !includes([DriveModes.FOLDERS, DriveModes.FILE], type) && (_jsx(TypeAndDateFilters, { selectedDateKey: selectedDateKey, selectedType: selectedType, onDateMenuClick: onDateMenuClick, onTypeMenuClick: onTypeMenuClick, onChangeDates: (dates) => {
251
+ if (dates) {
252
+ const [start, end] = dates;
253
+ setState((prev) => (Object.assign(Object.assign({}, prev), { customDateRange: dates, selectedDateKey: "custom" })));
254
+ }
255
+ }, loading: isFetching, loadingType: loadingType }))] }), _jsx(ToggleView, { showGrid: showGrid, toggleView: (value) => setState((prevState) => (Object.assign(Object.assign({}, prevState), { showGrid: value }))) })] }), _jsx("div", { className: "md-lib-border-b md-lib-border-borderColor md-lib-mb-4" }), isLoading ? (_jsx(Loader, {})) : isEmpty(folders) ? (_jsxs("div", { className: "md-lib-flex md-lib-flex-col md-lib-items-center md-lib-justify-center", children: [_jsx("img", { src: NOT_FOUND_IMAGE_URL, alt: "Not Found", width: 300, height: 300 }), _jsx("p", { className: "md-lib-mt-3 md-lib-text-sm md-lib-font-semibold", children: error
256
+ ? get(error, "message", SOMETHING_WENT_WRONG)
257
+ : includes(Object.values(DriveModes), type)
258
+ ? "No data found"
259
+ : (searchKey && searchValue) || (metadataKey && metadataValue)
260
+ ? "No results found"
261
+ : "No files has been created yet" }), ((searchKey && searchValue) || (metadataKey && metadataValue)) && (_jsx(Button, { type: "primary", className: "md-lib-mt-4", onClick: () => {
262
+ onSearch({
263
+ searchKey: "",
264
+ searchValue: "",
265
+ metadataKey: "",
266
+ metadataValue: "",
267
+ });
268
+ }, children: "Clear Filters" }))] })) : (_jsx("div", { className: "md-lib-p-4 md-lib-max-h-[calc(100%-161px)] md-lib-overflow-x-auto", children: state.showGrid ? (_jsx(FolderGridView, { folders: filter(folders, (item) => get(item, "type") !== EntityType.FILE), files: _.filter(folders, (item) => get(item, "type") === EntityType.FILE), foldersFetching: isFetching, hasNextPage: !!hasNextPage, fetchNextPage: fetchNextPage, selectedFolderIds: get(selectedItems, "folderIds", []), selectedFileIds: get(selectedItems, "fileIds", []), setSelectedItems: (updateFnOrValue = {}) => setState((prevState) => {
269
+ const prevSelected = prevState.selectedItems;
270
+ return Object.assign(Object.assign({}, prevState), { selectedItems: Object.assign(Object.assign({}, prevSelected), updateFnOrValue) });
271
+ }), isImagePicker: !!pickerFolderId, setSelectedFile: setSelectedFile, setParentFolderId: setParentFolderId, selectedPickerFile: selectedPickerFile, sortBy: sortBy, sortOrder: sortOrder, setSortOrders: (newSortBy, newSortOrder) => setState((prev) => (Object.assign(Object.assign({}, prev), { sortBy: newSortBy, sortOrder: newSortOrder }))) })) : (_jsx(FolderListView, { folders: folders, foldersFetching: isFetching, hasNextPage: !!hasNextPage, fetchNextPage: fetchNextPage, selectedFolderIds: get(selectedItems, "folderIds", []), selectedFileIds: get(selectedItems, "fileIds", []), setSelectedItems: (updateFnOrValue = {}) => setState((prevState) => {
272
+ const prevSelected = prevState.selectedItems;
273
+ return Object.assign(Object.assign({}, prevState), { selectedItems: Object.assign(Object.assign({}, prevSelected), updateFnOrValue) });
274
+ }), isImagePicker: !!pickerFolderId, setSelectedFile: setSelectedFile, setParentFolderId: setParentFolderId, selectedPickerFile: selectedPickerFile, location: get(parentFolder, "name"), assets: assets, sortByKey: sortBy, sortOrder: sortOrder, setSortOrders: (newSortBy, newSortOrder) => setState((prev) => (Object.assign(Object.assign({}, prev), { sortBy: newSortBy, sortOrder: newSortOrder }))), onSearch: onSearch, searchKey: searchKey, searchValue: searchValue, metadataKey: metadataKey, metadataValue: metadataValue })) }))] }));
275
+ }
276
+ export default DriveContainer;
@@ -0,0 +1,7 @@
1
+ import { FileEntity, FolderEntity } from "../utilities/constants/interface";
2
+ declare function FileDownloadHistory({ open, onClose, file, }: {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ file: FileEntity | FolderEntity;
6
+ }): JSX.Element;
7
+ export default FileDownloadHistory;
@@ -0,0 +1,94 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { NotificationStatus, } from "../utilities/constants/interface";
12
+ import { Drawer, Table, Typography } from "antd";
13
+ import { get } from "lodash";
14
+ import { useEffect, useMemo, useState } from "react";
15
+ import { showNotification } from "../common/notifications";
16
+ import moment from "moment-timezone";
17
+ import { RenderBrandUserAvatar } from "../common/CustomElements";
18
+ import CustomLoader from "../common/loader/CustomLoader";
19
+ import { FETCH_BRAND_URL, FETCH_FILE_DOWNLOAD_LOGS_URL, } from "../utilities/constants/apiUrls";
20
+ import { useDamConfig } from "../hocs/DamConfigContext";
21
+ import { createApiClient } from "../hocs/configureAxios";
22
+ import { addQueryParams } from "../hocs/helpers";
23
+ import { SOMETHING_WENT_WRONG } from "../utilities/constants/messages";
24
+ import { APP_DATE_TIME_FORMAT, DEFAULT_PAGE, LOCAL_TIMEZONE, } from "../hocs/appConstants";
25
+ function FileDownloadHistory({ open, onClose, file, }) {
26
+ const damConfig = useDamConfig();
27
+ const { brand } = damConfig;
28
+ const brandId = get(brand, "_id");
29
+ const api = useMemo(() => createApiClient(damConfig), [damConfig]);
30
+ const [state, setState] = useState({
31
+ loading: false,
32
+ logs: [],
33
+ currentPage: DEFAULT_PAGE,
34
+ totalCount: 0,
35
+ totalPages: 0,
36
+ brandUsers: [],
37
+ });
38
+ const { logs, currentPage, totalCount, totalPages, loading, brandUsers } = state;
39
+ const onFetchHistory = (...args_1) => __awaiter(this, [...args_1], void 0, function* (params = {}) {
40
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { loading: true })));
41
+ try {
42
+ const response = yield api.get(`${FETCH_FILE_DOWNLOAD_LOGS_URL}?${addQueryParams(Object.assign({ accessType: get(file, "type"), accessId: get(file, "_id") }, params))}`);
43
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { loading: false, logs: get(response, "data.downloadActivity", []), totalPages: get(response, "data.totalPages", DEFAULT_PAGE), currentPage: get(response, "data.currentPage", DEFAULT_PAGE), totalCount: get(response, "data.totalCount", DEFAULT_PAGE) })));
44
+ }
45
+ catch (error) {
46
+ setState((prevState) => (Object.assign(Object.assign({}, prevState), { loading: false })));
47
+ showNotification(get(error, "message", SOMETHING_WENT_WRONG), NotificationStatus.ERROR);
48
+ }
49
+ });
50
+ useEffect(() => {
51
+ if (!!get(file, "_id") && !!get(file, "type")) {
52
+ onFetchHistory();
53
+ fetchBrand(brandId);
54
+ }
55
+ }, [file]);
56
+ function fetchBrand(brandId) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ try {
59
+ const response = yield api.get(FETCH_BRAND_URL.replace(":brandId", brandId));
60
+ setState((prevState) => {
61
+ return Object.assign(Object.assign({}, prevState), { brandUsers: get(response, "data") });
62
+ });
63
+ }
64
+ catch (error) {
65
+ throw error;
66
+ }
67
+ });
68
+ }
69
+ const columns = [
70
+ {
71
+ title: "User",
72
+ dataIndex: "createdBy",
73
+ key: "createdBy",
74
+ render: (createdBy) => (_jsxs("div", { className: "md-lib-flex md-lib-items-center md-lib-gap-2", children: [_jsx(RenderBrandUserAvatar, { userId: get(createdBy, "_id"), userName: get(createdBy, "name", "Unknown User"), brandId: brandId, brandUsers: brandUsers }), _jsx("span", { className: "md-lib-max-w-[200px] md-lib-truncate", title: get(createdBy, "name", "Unknown User"), children: get(createdBy, "name", "Unknown User") })] })),
75
+ },
76
+ {
77
+ title: "Downloaded At",
78
+ dataIndex: "createdAt",
79
+ key: "createdAt",
80
+ render: (createdAt) => moment.utc(createdAt).tz(LOCAL_TIMEZONE).format(APP_DATE_TIME_FORMAT),
81
+ },
82
+ ];
83
+ return (_jsx(Drawer, { title: _jsxs(Typography.Text, { ellipsis: {
84
+ tooltip: true,
85
+ }, style: { width: "300px" }, children: [get(file, "name"), " - Download history"] }), onClose: onClose, open: open, footer: null, children: _jsx(Table, { rowKey: "_id", dataSource: logs, columns: columns, loading: { indicator: _jsx(CustomLoader, {}), spinning: loading }, pagination: totalPages > 1
86
+ ? {
87
+ current: currentPage,
88
+ total: totalCount,
89
+ showSizeChanger: false,
90
+ onChange: (page) => onFetchHistory({ page }),
91
+ }
92
+ : false }) }));
93
+ }
94
+ export default FileDownloadHistory;
@@ -0,0 +1,11 @@
1
+ import { FileEntity, FolderEntity } from "../utilities/constants/interface";
2
+ declare function FileMenuOptions({ file, folderIds, fileIds, folder, onCloseSelection, readOnly, fileModal, }: {
3
+ file: (FileEntity & FolderEntity) | null;
4
+ fileIds?: string[];
5
+ folderIds?: string[];
6
+ folder?: FolderEntity | null;
7
+ onCloseSelection?: () => void;
8
+ readOnly?: boolean;
9
+ fileModal?: boolean;
10
+ }): JSX.Element;
11
+ export default FileMenuOptions;