{"version":3,"sources":["admin-pages/DatabaseSettings/styles.module.scss","components/SystemAlert/SystemAlert.module.scss","components/Button/Button.module.scss","admin-pages/StorageSettings/styles.module.scss","admin-pages/WebhookSettings/styles.module.scss","pages/Jobs/Status/JobStatus.module.scss","components/AddAssetsToCollections/AddAssetsToCollections.module.scss","components/Tooltip/Tooltip.module.scss","pages/Login/styles.module.scss","admin-pages/ToolsSettings/styles.module.scss","pages/Profile/styles.module.scss","components/Checkbox/Checkbox.module.scss","components/ColorPicker/ColorPicker.module.scss","components/CreateCollectionModal/CreateCollectionModal.module.scss","components/BaseModal/BaseModal.module.scss","components/SearchFiltersSidebar/SearchFiltersSidebar.module.scss","components/LayoutView/LayoutView.module.scss","components/ListingCardShimmer/ListingCardShimmer.module.scss","components/AssetPreview/AssetPreview.module.scss","components/ConfirmDialog/ConfirmDialog.module.scss","components/PageTitle/PageTitle.module.scss","components/Header/Header.module.scss","admin-pages/ToolsSettings/components/Dialog/styles.module.scss","admin-pages/Users/styles.module.scss","pages/Jobs/List/Jobs.module.scss","components/ConfirmDuplicateCollectionModal/ConfirmDuplicateCollectionModal.module.scss","components/PrivateField/PrivateField.module.scss","components/SaveChangesBar/SaveChangesBar.module.scss","admin-pages/ToolsSettings/components/SaveChangesBar/SaveChangesBar.module.scss","pages/Basket/styles.module.scss","pages/Jobs/components/LoadingBar/loading.module.scss","pages/CheckUsage/CheckUsage.module.scss","pages/Dashboard/styles.module.scss","components/Loader/Loader.module.scss","components/Textarea/Textarea.module.scss","components/FileUpload/FileUpload.module.scss","components/InfoSection/InfoSection.module.scss","components/Table/Table.module.scss","components/AdminSettingsSection/AdminSettingsSection.module.scss","components/LogoWhite/LogoWhite.module.scss","components/Logo/Logo.module.scss","components/Tag/Tag.module.scss","layouts/default/styles.module.scss","layouts/admin/styles.module.scss","pages/Asset/ModalPreview/Modal.module.scss","components/Input/Input.module.scss","admin-pages/ToolsSettings/components/ConfirmSubstitutionWordModal/style.module.scss","admin-pages/ToolsSettings/components/wordsLayout/styles.module.scss","admin-pages/ToolsSettings/components/wordListingRow/styles.module.scss","components/NavBar/Getlinks.module.scss","admin-pages/ImageSettings/styles.module.scss","admin-pages/VideoSettings/styles.module.scss","components/Badge/Badge.module.scss","components/Paper/Paper.module.scss","components/SchemaForm/SchemaForm.module.scss","components/Shimmer/Shimmer.module.scss","components/AdminSettingsSidebar/AdminSettingsSidebar.module.scss","components/Select/Select.module.scss","components/Slider/Slider.module.scss","components/Footer/Footer.module.scss","pages/Onboarding/styles.module.scss","components/Dropdown/Dropdown.module.scss","admin-pages/AddonsSettings/styles.module.scss","components/BatchActions/BatchActions.module.scss","components/SearchForm/SearchForm.module.scss","pages/Collection/styles.module.scss","components/ListingCard/ListingCard.module.scss","components/SearchBar/SearchBar.module.scss","components/SearchBar/FloatingFaceSearch.module.scss","components/NavBar/NavBar.module.scss","pages/Trash/styles.module.scss","../node_modules/@stencil/core/internal/client lazy /^/.//.*$/ include: //.entry/.js$/ exclude: //.system/.entry/.js$/ groupOptions: {} namespace object","common/icons/ArchiveBox.tsx","common/icons/ArrowCounterClockwise.tsx","common/icons/ArrowsClockwise.tsx","common/icons/DropdownArrow.tsx","common/icons/Browser.tsx","common/icons/CaretDown.tsx","common/icons/CaretLeft.tsx","common/icons/CaretRight.tsx","common/icons/CheckboxChecked.tsx","common/icons/CheckboxEmpty.tsx","common/icons/Checks.tsx","common/icons/CloudArrowUp.tsx","common/icons/Copy.tsx","common/icons/Crop.tsx","common/icons/DownloadSimple.tsx","common/icons/Eye.tsx","common/icons/File.tsx","common/icons/FileArrowDown.tsx","common/icons/FolderPlus.tsx","common/icons/Gear.tsx","common/icons/Hash.tsx","common/icons/ImageSquare.tsx","common/icons/Info.tsx","common/icons/Key.tsx","common/icons/ListBullets.tsx","common/icons/MagnifyingGlass.tsx","common/icons/MagnifyingGlassMinus.tsx","common/icons/MagnifyingGlassPlus.tsx","common/icons/MusicNotes.tsx","common/icons/Panel.tsx","common/icons/Pencil.tsx","common/icons/PencilSimple.tsx","common/icons/PlayBox.tsx","common/icons/Plus.tsx","common/icons/PuzzlePiece.tsx","common/icons/SlidersHorizontal.tsx","common/icons/SquaresFour.tsx","common/icons/Stack.tsx","common/icons/Trash.tsx","common/icons/TrashSimple.tsx","common/icons/User.tsx","common/icons/UserCircle.tsx","common/icons/Users.tsx","common/icons/VideoCamera.tsx","common/icons/WarningCircle.tsx","common/icons/Wrench.tsx","common/icons/X.tsx","common/icons/ArrowDownCircle.tsx","common/icons/ArrowLeftCircle.tsx","common/icons/ArrowUpCircle.tsx","common/icons/Bell.tsx","common/icons/RadioEmpty.tsx","common/icons/RadioChecked.tsx","components/SystemAlert/SystemAlert.tsx","components/SystemAlert/index.ts","shared/alert.ts","common/AlertManager.tsx","layouts/error/index.tsx","hooks/useAccessToken.ts","utils/config.ts","api/utils/helpers.ts","api/utils/errorHandlers.ts","api/utils/queryNames.ts","api/queries/notificationQueries.ts","api/functions/notificationsApi.ts","components/Loader/Loader.tsx","components/Loader/index.ts","hooks/useOutsideClick.ts","api/mutations/notificationMutations.ts","components/Button/Button.tsx","components/Button/index.ts","components/Notifications/Notifications.tsx","components/Notifications/index.ts","components/Badge/Badge.tsx","components/Badge/index.ts","api/functions/collectionsApi.ts","common/errorMessages.ts","hooks/useErrorsMessage.ts","api/mutations/collectionMutations.ts","common/Portal.tsx","providers/ModalProvider.tsx","hooks/useModal.ts","schemas/collection.ts","components/BaseModal/BaseModal.tsx","components/BaseModal/index.ts","components/Checkbox/Checkbox.tsx","components/Checkbox/index.ts","components/Input/Input.tsx","components/Input/index.ts","components/Paper/Paper.tsx","components/Paper/index.ts","components/Textarea/Textarea.tsx","components/Textarea/index.ts","shared/selectedAssets.ts","components/CreateCollectionModal/CreateCollectionModal.tsx","components/CreateCollectionModal/index.ts","hooks/useForm.ts","components/ConfirmDuplicateCollectionModal/ConfirmDuplicateCollectionModal.tsx","components/ConfirmDuplicateCollectionModal/index.ts","components/SearchFiltersSidebar/SearchFiltersSidebar.tsx","components/SearchFiltersSidebar/index.ts","utils/transform.ts","components/FileUpload/FileUpload.tsx","components/CollectionRow/messages.ts","utils/previews.ts","components/CollectionRow/CollectionRow.tsx","components/CollectionRow/index.ts","shared/layoutView.ts","hooks/useLocalStorage.ts","hooks/useLayoutSwitcher.ts","components/Shimmer/Shimmer.tsx","components/Shimmer/index.ts","components/ListingCardShimmer/ListingCardShimmer.tsx","components/ListingCardShimmer/index.ts","components/LayoutView/LayoutView.tsx","components/LayoutView/index.ts","components/AddAssetsToCollections/messages.ts","api/utils/search.ts","api/queries/collectionsQueries.ts","components/AddAssetsToCollections/AddAssetsToCollections.tsx","components/AddAssetsToCollections/index.ts","components/AssetPreview/AssetPreview.tsx","components/AssetPreview/index.ts","components/LayoutViewSwitcher/LayoutViewSwitcher.tsx","components/LayoutViewSwitcher/index.ts","components/Dropdown/Dropdown.tsx","components/Dropdown/index.ts","api/functions/assetsApi.ts","common/roles.ts","hooks/useRoleManager.ts","shared/deletedAssets.ts","shared/trash.ts","components/BatchActions/TrashActions.tsx","shared/refresh.ts","components/BatchActions/messages.ts","components/BatchActions/BasketActions.tsx","components/BatchActions/BatchActions.tsx","components/BatchActions/index.ts","components/ConfirmDialog/messages.ts","components/ConfirmDialog/ConfirmDialog.tsx","components/ConfirmDialog/index.ts","components/InfoSection/InfoSection.tsx","components/InfoSection/index.ts","components/MetadataForm/messages.ts","components/SchemaForm/messages.ts","common/icons/ArrowDown.tsx","common/icons/ArrowUp.tsx","components/SchemaForm/SchemaForm.tsx","components/SchemaForm/index.ts","components/MetadataForm/MetadataForm.tsx","components/MetadataForm/index.ts","components/PrivateField/PrivateField.tsx","components/PrivateField/index.ts","components/AdminSettingsSidebar/AdminSettingsSidebar.tsx","components/AdminSettingsSidebar/index.ts","components/ColorPicker/ColorPicker.tsx","components/ColorPicker/index.ts","components/Select/Select.tsx","components/Select/index.ts","components/Table/Table.tsx","components/Table/index.ts","components/AdminSettingsSection/AdminSettingsSection.tsx","components/AdminSettingsSection/index.ts","components/Slider/Slider.tsx","components/Slider/index.ts","components/NavBar/messages.ts","components/LogoWhite/LogoWhite.tsx","components/LogoWhite/index.ts","shared/settings/base.ts","shared/settings/utils.ts","shared/settings/addons.ts","shared/settings/database.ts","shared/settings/image.ts","shared/settings/security.ts","shared/settings/storage.ts","shared/settings/video.ts","shared/settings/watermark.ts","shared/settings/webhook.ts","shared/settings/index.ts","hooks/useLogout.ts","api/queries/userQueries.ts","api/functions/userApi.ts","components/NavBar/ReprocessModal.tsx","components/NavBar/GetLinksModal.tsx","components/NavBar/BatchCdnModal.tsx","components/NavBar/NavBar.tsx","components/NavBar/index.ts","components/SaveChangesBar/messages.ts","api/mutations/userMutations.ts","components/SaveChangesBar/SaveChangesBar.tsx","components/SaveChangesBar/index.ts","components/SettingsNavigation/messages.ts","components/SettingsNavigation/SettingsNavigation.tsx","components/SettingsNavigation/index.ts","components/CollectionCard/messages.ts","components/CollectionCard/CollectionCard.tsx","components/CollectionCard/index.ts","components/ListingRow/ListingRow.tsx","components/ListingRow/index.ts","components/Logo/Logo.tsx","components/Logo/index.ts","components/Footer/messages.ts","components/Footer/Footer.tsx","components/Footer/index.ts","components/Pager/messages.ts","components/Pager/Pager.tsx","components/Pager/index.ts","components/Tag/Tag.tsx","components/Tag/index.ts","components/PageTitle/PageTitle.tsx","components/PageTitle/index.ts","components/ListingCard/messages.ts","components/ListingCard/ListingCard.tsx","components/ListingCard/index.ts","components/SearchBar/messages.ts","common/icons/FaceSearch.tsx","components/Tooltip/Tooltip.tsx","components/Tooltip/index.ts","common/icons/Camera.tsx","common/icons/Folder.tsx","components/SearchBar/FloatingFaceSearch.tsx","common/icons/CloseCircle.tsx","common/icons/FaceSearchDisabled.tsx","components/SearchBar/SearchBar.tsx","components/SearchBar/index.ts","components/Header/messages.ts","components/Header/Header.tsx","layouts/default/index.tsx","layouts/admin/index.tsx","api/mutations/accessMutations.ts","api/functions/accessApi.ts","pages/Login/messages.ts","pages/Login/Login.tsx","api/queries/assetsQueries.ts","pages/Dashboard/messages.ts","shared/pickerMode.ts","hooks/useFileSpinPicker.ts","utils/bodyScroll.ts","pages/Dashboard/constants.ts","pages/Dashboard/hooks.tsx","api/functions/schemaApi.ts","components/SearchForm/SearchFormData.tsx","components/SearchForm/SearchForm.tsx","components/SearchForm/index.ts","pages/Dashboard/component.tsx","pages/Collections/messages.ts","pages/Collections/Collections.tsx","pages/Asset/components/FlatButton.tsx","pages/Asset/ModalPreview/ModalPreview.tsx","pages/Asset/ModalPreview/index.tsx","pages/Asset/messages.ts","pages/Asset/components/TabTrigger.tsx","pages/Asset/helpers/formatCoreData.ts","api/mutations/assetMutations.ts","pages/Asset/components/SetupFreeFormData.tsx","pages/Asset/components/AssetMetadataSetup.tsx","pages/Asset/components/AssetMetadata.tsx","pages/Asset/components/AssetUpdateDialog.tsx","pages/Asset/context.ts","pages/Asset/ModalEditor.tsx","pages/Asset/ModalSidebar.tsx","utils/at.ts","pages/Asset/RBGviewer.tsx","api/functions/addonsApi.ts","pages/Asset/Modal.tsx","admin-pages/StorageSettings/messages.ts","admin-pages/StorageSettings/s3Regions.ts","admin-pages/StorageSettings/StorageSettings.tsx","admin-pages/SecuritySettings/components/SecuritySection.tsx","admin-pages/SecuritySettings/SecuritySettings.tsx","admin-pages/ImageSettings/components/CustomImageConversions.tsx","admin-pages/ImageSettings/messages.ts","admin-pages/ImageSettings/components/Watermark.tsx","admin-pages/ImageSettings/ImageSettings.tsx","admin-pages/WebhookSettings/WebhookSettings.tsx","admin-pages/DatabaseSettings/DatabaseSettings.tsx","admin-pages/VideoSettings/components/VideoTranscodes.tsx","admin-pages/VideoSettings/VideoSettings.tsx","admin-pages/AddonsSettings/AddonsSettings.tsx","admin-pages/ToolsSettings/components/SaveChangesBar/barMessages.ts","admin-pages/ToolsSettings/components/SaveChangesBar/component.tsx","admin-pages/ToolsSettings/components/SaveChangesBar/index.tsx","api/queries/toolsQueries.ts","api/functions/toolsApi.ts","admin-pages/ToolsSettings/state/index.ts","admin-pages/ToolsSettings/components/ConfirmSubstitutionWordModal/hooks.ts","schemas/wordSubstitution.ts","admin-pages/ToolsSettings/components/ConfirmSubstitutionWordModal/handlers.ts","admin-pages/ToolsSettings/components/ConfirmSubstitutionWordModal/component.tsx","admin-pages/ToolsSettings/components/ConfirmSubstitutionWordModal/index.ts","admin-pages/ToolsSettings/components/Dialog/component.tsx","admin-pages/ToolsSettings/components/Dialog/index.tsx","admin-pages/ToolsSettings/components/wordListingRow/hooks.ts","admin-pages/ToolsSettings/components/wordListingRow/handlers.tsx","admin-pages/ToolsSettings/components/wordListingRow/component.tsx","admin-pages/ToolsSettings/components/wordListingRow/index.ts","admin-pages/ToolsSettings/components/wordsLayout/component.tsx","admin-pages/ToolsSettings/components/wordsLayout/index.tsx","api/mutations/toolsMutations.ts","admin-pages/ToolsSettings/ToolsSettings.tsx","admin-pages/Users/messages.ts","admin-pages/Users/components/KeysModal.tsx","api/functions/userManagementApi.ts","api/mutations/userManagementMutation.ts","admin-pages/Users/components/AddUserModal.tsx","api/queries/userManagementQueries.ts","admin-pages/Users/components/LoadingScreen.tsx","admin-pages/Users/components/EditUserModal.tsx","admin-pages/Users/Users.tsx","pages/Trash/Trash.tsx","pages/Basket/Basket.tsx","providers/FileSpinPickerProvider.tsx","pages/Collection/components/EditCollectionModal.tsx","pages/Collection/Collection.tsx","schemas/password.ts","schemas/user.ts","pages/Profile/messages.ts","pages/Profile/Profile.tsx","pages/Onboarding/components/BaseLayout.tsx","pages/Onboarding/components/Intro.tsx","pages/Onboarding/context.ts","pages/Onboarding/components/StepBar.tsx","pages/Onboarding/steps/Profile.tsx","pages/Onboarding/steps/Storage.tsx","pages/Onboarding/steps/Watermark.tsx","api/queries/accessQueries.ts","pages/Onboarding/components/Loading.tsx","pages/Onboarding/components/InvalidCode.tsx","pages/Onboarding/Onboarding.tsx","utils/common.ts","pages/Jobs/List/index.tsx","pages/Jobs/components/LoadingBar/index.tsx","pages/Jobs/Status/index.tsx","pages/CheckUsage/DropDown/DropDown.tsx","pages/CheckUsage/Component.tsx","api/functions/statsApi.ts","Router.tsx","utils/reportWebVitals.ts","index.tsx","components/NavBar/Reprocess.module.scss","components/NavBar/BatchCdn.module.scss","components/ListingRow/ListingRow.module.scss","admin-pages/SecuritySettings/styles.module.scss","components/CollectionCard/CollectionCard.module.scss","components/Pager/Pager.module.scss","components/Notifications/Notifications.module.scss","pages/Asset/Modal.module.scss","components/CollectionRow/CollectionRow.module.scss","pages/Collections/Collections.module.scss","pages/CheckUsage/DropDown/DropDown.module.scss","components/SettingsNavigation/SettingsNavigation.module.scss","pages/Asset/RBGviewer.module.scss"],"names":["module","exports","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","SvgArchiveBox","props","width","height","viewBox","fill","xmlns","focusable","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","SvgArrowCounterClockwise","SvgArrowsClockwise","SvgDropdownArrow","SvgBrowser","SvgCaretDown","SvgCaretLeft","SvgCaretRight","SvgCheckboxChecked","y","rx","SvgCheckboxEmpty","opacity","x","SvgChecks","CloudArrowUp","strokeOpacity","SvgCopy","SvgCrop","SvgDownloadSimple","SvgEye","SvgFile","SvgFileArrowDown","SvgFolderPlus","SvgGear","SvgHash","SvgImageSquare","SvgInfo","SvgKey","SvgListBullets","SvgMagnifyingGlass","SvgMagnifyingGlassMinus","SvgMagnifyingGlassPlus","SvgMusicNotes","SvgPanel","SvgPencil","SvgPencilSimple","SvgPlayBox","fillOpacity","SvgPlus","SvgPuzzlePiece","SvgSlidersHorizontal","SvgSquaresFour","SvgStack","SvgTrash","SvgTrashSimple","SvgUser","SvgUserCircle","strokeMiterlimit","SvgUsers","SvgVideoCamera","SvgWarningCircle","SvgWrench","SvgX","SvgArrowDownCircle","cx","cy","r","SvgArrowLeftCircle","SvgArrowUpCircle","SvgBell","SvgRadioButtonUnchecked","SvgRadioButtonChecked","iconsMapping","success","warning","Bell","danger","info","SystemAlert","variant","timeout","pauseOnHover","onClose","className","children","rest","hasTimeout","cn","styles","icon","React","text","onClick","closeIcon","role","style","animationDuration","progressBar","onAnimationEnd","alertsAtom","atom","alertsPushedStateAtom","defaultLinkStyle","marginLeft","textDecoration","color","cursor","AlertsWrapper","alerts","setAlerts","useAtom","isPushed","removeAlert","old","filter","a","renderMessage","alert","linkUrl","message","parts","split","length","href","target","rel","linkStyle","linkText","pushed","AnimatePresence","initial","map","i","motion","div","transition","type","scale","animate","exit","duration","useAlerts","setIsPushed","createAlert","hasOwnProperty","setTimeout","slice","Date","valueOf","Math","ceil","random","showWarning","payload","showAlert","showSuccess","showInfo","changePosition","pushedState","CriticalErrorFallback","useAccessToken","useAuthHeader","authHeader","config","env","process","cdnUrl","hostUrl","sentryDsn","sentryRelease","JWTExpiration","filespinLoader","notificationsRefetchInterval","parseInt","defaultSchemaId","async","performFetchWithLogging","url","requestInit","responseTransformer","response","fetch","result","transformer","ok","status","blob","json","contentType","headers","get","error","includes","statusText","getFetchResult","getStandardHeaders","accessToken","Accept","Authorization","getUploadHeaders","mergeQueryOptions","customOptions","options","queryOptions","shouldRefetch","refetchInterval","queryFnFetchErrorWrapper","fetchFn","isErrorResponseResult","window","location","pathname","localStorage","removeItem","reload","fetchResult","throwFetchError","queryNames","useAllNotificationsQuery","actualQueryOptions","queryFn","useMemo","method","credentials","getAllNotifications","query","useQuery","handleErrors","isRefetchError","Loader","size","borderColor","useOutsideClick","ref","callback","useEffect","handleClickOutside","current","contains","document","addEventListener","removeEventListener","useDeleteNotificationsMutation","mutationOptions","queryClient","useQueryClient","mutationFn","data","notifications","JSON","stringify","body","deleteNotifications","useMutation","onSuccess","deletedNotifications","setQueryData","currentData","newNotifications","notification","args","Button","mode","outlined","loading","disabled","tooltip","datatest","uuid","uuidv4","loader","effect","Notifications","history","useHistory","deleteNotificationsMutation","notificationsRef","notificationsExpanded","setNotificationsExpanded","isLoading","refetch","isRefetching","undefined","refetchIntervalInBackground","hasNewNotifications","readNotifications","disposal","ackNotifications","handleOnClickNotification","startsWith","push","open","notificationsOnRead","mutateAsync","handleCloseNotification","console","log","prev","fontSize","newNotification","notificationsDropdown","emptyNotifications","separator","clearNotifications","moment","timestamp","fromNow","X","handleDimissNotification","Badge","getCollectionDownloadUrl","collectionId","defineMessages","unknownError","defaultMessage","useErrorMessages","formatMessage","useIntl","getErrorMessage","errorKey","errorMessage","find","errorMessages","useCollectionMutation","patchCollection","invalidateQueries","useCollectionsMutation","patchCollections","useCreateCollectionMutation","createCollection","collections","unshift","useDuplicateCollectionMutation","duplicateCollection","variables","source_id","onError","useDeleteCollectionMutation","deleteCollection","Portal","ReactDOM","createPortal","ModalActionType","DEFAULT_STATE","visible","component","reducer","state","action","OPEN_MODAL","CLOSE_MODAL","SET_COMPONENT","TOGGLE_MODAL","ModalContext","createContext","ModalProvider","dispatcher","useReducer","Provider","value","useModal","useContext","overflow","toggleModal","showModal","modalComponent","closeModal","setComponent","CollectionSchema","Yup","shape","name","required","description","max","group_access","BaseModal","containerStyle","handleCloseModal","BaseModalContainer","BaseModalBackground","CloseModal","Checkbox","label","checked","radio","onChange","RadioChecked","CheckboxChecked","RadioEmpty","CheckboxEmpty","AlertTriangle","Check","Input","placeholder","limit","editable","showControls","initialFocus","onEnter","onCancel","onLimitClick","onFocus","onBlur","onKeyDown","min","step","characterOverLimit","String","limitNumber","inputElement","focus","inputWrapper","inputWithIcon","key","blur","inputIcon","inputIconDisabled","inputIconError","actionWrapper","editContainer","active","editButton","editIcon","checkIcon","xIcon","limitContainer","limitWrapper","limitText","errorContainer","errorIcon","errorText","Paper","Textarea","rows","cols","htmlFor","selectedAssetsAtom","CreateCollectionModal","onCreateCollection","setName","useState","setDescription","groupAccess","setGroupAccess","selectedAssets","setSelectedAssets","createCollectionMutation","isValid","validateSync","modalInput","formGroup","modalActions","assets","useForm","initialState","form","setForm","formErrors","setFormErrors","Object","reduce","acc","setFieldError","field","currentErrors","handleChange","clearFieldError","clearFormErrors","ConfirmDuplicateCollectionModal","sourceId","title","duplicateCollectionMutation","abortEarly","ValidationError","inner","forEach","err","path","SearchFilterContext","merge","FoldableFilter","isRevealed","setIsRevealed","foldableContainer","CaretDown","CaretRight","filterChildren","FilterInput","input","filterKey","onFilterChange","initialValue","handleOnChange","inputValue","SearchFiltersSidebar","filters","onApplyFilters","inputs","Array","applyFiltersButton","humanFileSize","bytes","u","b","toFixed","formatSeconds","seconds","hours","floor","minutes","remainingSeconds","FileUpload","collectionDeleted","getThumbnailUrl","jwt","replace","isPreviewPlayable","datatype","CollectionRow","collection","auth","useAuthUser","userEmail","last_update","isPreparingDownload","setIsPreparingDownload","handleGoToCollection","deleteCollectionMutation","messages","Stack","cover","src","alt","content","to","groupCollection","Users","User","lastUpdate","actions","Copy","FileArrowDown","user_email","Trash","layoutViewAtom","useLocalStorage","defaultValue","setValue","getItem","setItem","useLayoutSwitcher","layoutView","setLayoutView","savedLayoutView","saveLayoutView","toggleLayoutView","layout","isLayoutGrid","isLayoutList","Shimmer","w","h","radius","borderRadius","ListingCardShimmer","titleWrapper","checkbox","LayoutView","cardView","listView","classNames","emptyDataMessage","empty","shimmer","isValidSort","sort","sortConfig","validator","validFields","validDirections","delimiter","toLowerCase","sortArray","direction","useCollectionQuery","getCollection","useAllCollectionsQuery","getAllCollections","useSearchCollectionsQuery","searchQuery","searchCollections","enabled","sort_by","every","staleTime","AddAssetsToCollections","allCollectionsResult","checkedCollections","setCheckedCollections","searchTerm","setSearchTerm","searchTermDebounced","useDebounce","useAtomValue","filteredCollections","collectionMutation","numberOfAssets","values","search","from","_","newCheckedCollections","handleCheckboxChange","assetsCount","ids","additions","AssetPreview","mimeType","VideoCamera","MusicNotes","LayoutViewSwitcher","layoutIcon","ListBullets","SquaresFour","Square","Dropdown","titleLink","selectedKeys","isMultiple","isSortDropdown","dropdownAnchor","sortDirection","dropdownDirection","reduceOptionSize","useCallback","useRef","setOpen","escapeListener","clickListener","anchorRight","tabIndex","directionUp","withTitle","reduceSize","clickable","optionDisabled","noBorderBottom","selected","noborder","isSort","check","square","iconSelected","ArrowDownCircle","ArrowUpCircle","transformResponse","version","total_files","hits","search_result_id","search_id","page","total_pages","limit_per_page","matches","extended_result","getAssetDetails","assetId","getAssetMediaUrl","accessId","deliveryMode","updateAssetMedia","FormData","append","file","filename","getJobStatus","jobId","createNewAsset","metadata","includeMetadata","newAssetId","files","metadataurl","filteredMetadata","jsonBody","updateAssetConversionMedia","conversionName","deleteAsset","restoreAsset","PERMISSIONS","ROLES","rolesConfig","ADMIN","CREATE_ASSET","READ_ASSET","DOWNLOAD_ASSET","EDIT_ASSET","DISTRIBUTE_ASSET","DELETE_UNDELETE_ASSETS","PURGE_TRASH","MANAGE_USERS","UPDATE_SETTINGS","MANAGER","USER","CREATOR","useRoleManager","userRole","hasRole","hasPermission","permission","isAdmin","isManager","isUser","isCreator","hasAnyPermission","some","hasPermissions","deletedAssetsAtom","hasTrashedAssetsAtom","TrashActions","isDeletingAssets","setIsDeletingAssets","isRestoringAssets","setIsRestoringAssets","updateSelectedAssets","deletedAssets","updateDeletedAssets","hasTrashedAssets","useLocation","trashDropdownOptions","ArrowCounterClockwise","handlePurgeAssets","purgeAssets","batchAction","batchActionPrimaryButton","batchActionDropdown","all","handleRestoreSelectedAssets","refreshAtom","isRefetchingAtom","basket","BasketActions","refreshUpdate","useUpdateAtom","basketMutation","Number","newData","context","previousData","onMutate","getQueryData","deletions","concat","c","basketDropdownOptions","DownloadSimple","ArchiveBox","basketButton","handleBasketDownload","handleEmptyBasket","BatchActions","onSelectAll","pageActions","trash","showSelectAll","selectAll","setSelectAll","badge","yes","no","ConfirmDialog","onConfirm","backdrop","dialog","controls","InfoSection","Info","customSchema","submit","cancel","DownArrow","UpArrow","constructUiSchema","uiSchema","entries","properties","filespin_properties","en","hint","ui","hidden","key_a","value_a","key_b","value_b","order","ObjectFieldTemplate","Fragment","schemaFormTitle","formContent","prop","hintAnimation","CustomFieldTemplate","help","errors","displayLabel","schema","showHint","useMotionValue","useAnimation","toggleHint","start","set","readonly","Filespin_internal_keys_formGroup","formLabel","variants","formHelp","fieldForm","formDescription","ArrayFieldTemplate","items","element","display","flexDirection","alignContent","gap","hasMoveDown","onReorderClick","index","fieldFormButtons","hasMoveUp","onDropIndexClick","TrashSimple","canAdd","onAddClick","addFieldButton","Plus","SchemaForm","formData","onSubmit","ThemedForm","withTheme","schemaFormContainer","noValidate","FieldTemplate","noHtml5Validate","showErrorList","formButtonsContainer","inferType","isArray","appendNewProperties","updatedSchema","specialKeys","isSpecialKey","searchable","filterable","facetable","minLength","maxLength","MetadataForm","formSchema","$schema","ensureSchemaVersion","validateFormData","generateSchemaFromData","PrivateField","fieldName","setVisible","buttonText","hiddenField","revealButton","AdminSettingsSidebar","item","ColorPicker","setColor","showColorPicker","setShowColorPicker","colorPreviewRef","colorInputRef","colorPickerRef","backgroundColor","offsetTop","offsetLeft","top","offsetHeight","left","colorInput","colorPreview","readOnly","picker","newColor","hex","Select","marginTop","Table","responsiveTable","header","AdminSettingsSection","Slider","inputRef","minValue","maxValue","parseFloat","percentage","background","sliderContainer","checkUsage","settings","assetTransfers","users","jobs","account","preferences","logout","Icon","fillRule","clipRule","maskUnits","mask","transform","x1","y1","x2","y2","gradientUnits","stopColor","offset","stopOpacity","LogoWhite","linkable","Logo","ACTION_TYPES","createAtom","updater","setter","currentAtom","updatedAtom","combinedAtom","currentState","updatedState","combinedGetter","setState","saveChanges","undoChanges","capitalize","getSettings","atoms","stateAtom","updatedStateAtom","currentAddonsSettingsAtom","updatedAddonsSettingsAtom","addonsSettingsAtom","currentDatabaseSettingsAtom","updatedDatabaseSettingsAtom","databaseSettingsAtom","currentImageSettingsAtom","updatedImageSettingsAtom","imageSettingsAtom","conversions","originalState","conversionIndex","findIndex","conversion","updatedConversions","updateConversions","currentSecuritySettingsAtom","updatedSecuritySettingsAtom","securitySettingsAtom","currentStorageSettingsAtom","updatedStorageSettingsAtom","storageSettingsAtom","storageAlertStatus","originalStoryBoardTypeAtom","currentVideoSettingsAtom","updatedVideoSettingsAtom","videoSettingsAtom","transcodes","preview","thumbnails","storyboard","mappedTranscodes","mappedPreview","video_preview_padding","mappedStoryboard","padding","currentWatermarkSettingsAtom","updatedWatermarkSettingsAtom","watermarkSettingsAtom","currentWebhookSettingsAtom","updatedWebhookSettingsAtom","webhookSettingsAtom","atomsList","getter","filteredState","added","mappedConversions","cloneDeep","isEmpty","match","parsedState","access_id","video_preview_length","video_preview_start","watermark","aspect","upscale","public","publicProperty","settingsAtom","atomState","omitBy","isNil","updatedSettingsAtom","numberOfValues","useLogout","signOut","useSignOut","useSettingsQuery","setSettings","originalStoryBoardType","setOriginalStoryBoardType","token","video","debug","ReprocessModal","setErrorMessage","dataToSend","setDataToSend","addons","setLoading","useModel","image","stateHandler","store","modifySetIds","excludedKeys","margin","fontWeight","modalLeftHolder","textarea_sty","stringID","err_flag","splitId","error_sty","modalRightHolder","checkbox_title","conv","checkbox_sty","btnHolder","updateAssetBatchReprocess","GetLinksModal","showResult","setShowResult","urls","setUrls","expiry","content_key","delivery_mode","is_expiry_max","modal_header","CaretLeft","marginRight","visibility","marginBlock","option_holder","option_header","content_input","v","alignItems","expiry_input","trim","getBatchAssetLinks","temp","asset_id","catch","finally","table_row","text_center","table_head","table_data","maxWidth","BatchCdnModal","cache_expiry","alignSelf","btnStyle","batchCDNPrefetch","asset_urls","res","batchCDNPurge","DropDownTemplate","dropdown_template","dropdown_icon","AdminNavBar","logOut","username","navRoutes","activeClassName","getToolsOptions","dropdown","navActions","UserCircle","unsavedChanges","save","successfulySaved","useSettingsMutation","updatedSettings","setSettingsAtom","allSettled","updateRequestsData","prepareRequest","updateSettings","useSettingsTemplateMutation","combinedSettings","saveSettingsAsTemplate","SaveChangesBar","source","unsavedChangesManager","isUnsaved","undoActions","useUnsavedChangesManager","settingsMutationManager","storageAlert","setStorageAlert","useSettingsMutationManager","WarningCircle","buttonGroup","storage","security","webhook","database","tools","saveTemplate","SettingsNavigation","AUDIO_SUBTITLES","CollectionCard","collectionImage","assetPreview","overlay","Eye","overlayFooter","collectionContent","collectionTitleSection","collectionInfoSection","ListingRow","siblings","imageUrl","trashed","uploadTime","isSelected","onSelectChange","thumbWrapper","playbox","PlayBox","fileNameContainer","processingAsset","Gear","original","errorAsset","detectExtension","toUpperCase","toLocaleString","ToolBox","downloadingRef","isDeletingAsset","setIsDeletingAsset","isRestoringAsset","setIsRestoringAsset","basketData","sublings","Pencil","poweredBy","Footer","show","PerPageDropdown","onItemsPerPageChange","itemsPerPage","Pager","currentPage","totalPages","showItemsPerPage","visiblePagesRange","emitValue","requestedPage","buttons","button","idx","Tag","closeable","PageTitle","subtitle","counter","midContainer","rightContainer","view","download","now","ListingCard","primeButton","titleHolder","errorTitleStyle","basket1","basket2","refresh","FaceSearchIcon","Tooltip","position","isBlock","delayed","moveTextOnHover","blocky","moveText","bubble","Camera","Folder","FloatingFaceSearch","onClickCamera","onClickBrowse","onClickCancel","foldableFaceFilter","isCameraAccessible","setIsCameraAccessible","permissionStatus","setPermissionStatus","camera","streamRef","fileInputRef","handlePermissionChange","stopCameraStream","stream","requestCameraStream","navigator","mediaDevices","getUserMedia","getTracks","track","stop","permissions","onchange","checkCameraPermission","faceSearchFloatingWindow","onMouseDown","stopPropagation","faceSearchDiv","faceDeviceView","facingMode","noCameraAccessible","permissionDenied","switchCamera","canvas","imageHolder","clickPicBtn","photo","takePhoto","noCameraAccessTxt","requestPermissionBtn","line","browseBtn","click","accept","fileInput","event","reader","FileReader","onload","imageData","img","Image","createElement","ctx","getContext","translate","drawImage","flippedImageData","toDataURL","readAsDataURL","CloseCircle","FaceSearchIconDisabled","DEFAULT_DIRECTION","SearchBar","hideFilters","sortKeys","searchButton","searchFace","onSearch","onSelectSort","onClickSearchButton","onSearchFace","onSearchFaceCancel","onClickFiltersButton","refreshButton","filterButton","dropDownOptions","dropDownSelectedKeys","onClickDropdown","faceSearchEnabled","setFaceSearchEnabled","sorting","setSorting","isFaceSearchOpen","setIsFaceSearchOpen","setImage","handleClickSearchButton","floatingFaceSearchRef","TooltipSlider","SlidersHorizontal","searchInput","MagnifyingGlass","inputImgHolder","inputImgCloseIcon","inputImgStyle","faceIconTooltip","FaceSearch","faceIcon","refetchButton","ArrowsClockwise","sortDropdown","newSorting","sortKey","Header","DefaultLayout","sticky","AdminSettingsLayout","pageTitle","useObtainTokenMutation","password","email","createToken","getAccountInfoFromJWT","jwtToken","getAccountInfo","rememberMe","forgotPassword","signIn","newTo","createAcc","Login","useSignIn","isLoggedIn","setIsLoggedIn","setChecked","setFormData","obtainTokenMutation","setTokenOrThrow","accessID","role_id","role_name","uploadkey","user_id","expiresIn","tokenType","authState","roleId","userId","jwt_token","URLSearchParams","AccountInfo","uploadKey","first_name","formWrapper","preventDefault","logoContainer","newVal","splitWrapper","buttonWrapper","termsAndPolicyContainer","statusOptions","useSearchQuery","face","hash","filtersData","toString","imageBlob","base64","sliceSize","byteCharacters","atob","byteArrays","byteNumbers","charCodeAt","byteArray","Uint8Array","Blob","base64ToBlob","getFaceSearch","getFaceSearchByHash","file_name","endsWith","formattedValue","content_type","custom_content_input","formattedField","getSearch","getSearchByHash","lowerCaseSort","hasAnyField","hasAnyDirection","schema_criteria","useAssetVisionQuery","getAssetVisionTags","add","saveSearch","searchInfo","pickerModeAtom","providers","fileSpinEvents","useFileSpinPicker","setMode","securitySettings","dropbox_app_key","dropbox_app_secret","showPicker","FileSpin","events","on","hidePicker","replaceContent","serviceKey","serviceToken","initPicker","upload_key","fileToReplaceId","autoUpload","uploadContent","resetPicker","minimizeOnUpload","setBodyScroll","querySelector","PAGE_ACTIONS","ITEMS_PER_PAGE_LOCAL_KEY","INITIAL_FILTERS","keyword","upload_time_range","end","filtersReducer","checkImage","reject","onerror","useComponentHooks","filtersVisible","setFiltersVisible","setTotalPages","setSearch","searchDebounced","fileName","setFileName","fileNameDebounced","customContentInput","setCustomContentInput","customContentDebounced","schemaCriteria","setSchemaCriteria","schemCriteriaDebounced","setFace","dispatchFilter","startDateInputValue","setStartDateInputValue","endDateInputValue","setEndDateInputValue","handleStartDateChange","newStartDate","toISOString","clearStartDate","enhancedDispatchFilter","enhancedFaceRemoval","enhancedFaceSearch","handleEndDateChange","newEndDate","clearEndDate","clearRangeDate","roleManager","modal","queries","refs","searchHash","refreshValue","setIsRefetching","getSchemas","SearchFormData","property","SearchForm","Dashboard","hooks","settingsData","setSettingData","fetchedData","results","schemaSearchMode","setSchemaSearchMode","schemaFaceSearchMode","setFaceSchemaSearchMode","setSchema","faceSchema","setFaceSchema","selectedSchemaId","setSelectedSchemaId","selectedSchemaIdFace","setSelectedSchemaIdFace","selectSchemaOptions","setSelectSchemaOptions","selectSchemaOptionsFace","setSelectSchemaOptionsFace","schemaIdDataMapping","setSchemaIdDataMapping","schemaIdDataMappingFace","setSchemaIdDataMappingFace","schemaKeyValueMapping","setSchemaKeyValueMapping","schemaKeyValueMappingFace","setSchemaKeyValueMappingFace","setMetaData","searchMetaData","setSearchMetaData","fetchSchemas","keyValueMapping","idSchemaMapping","sortByKeyAscending","complete","close","asset","firstTime","setFirstTime","useCachePreviewImages","join","handleOnAssetSelectChange","newSelectedAssets","uploadDateRange","ADD_TO_COLLECTIONS","FolderPlus","CREATE_COLLECTION","ADD_TO_BASKET","MOVE_TO_TRASH","showFreeFormData","setShowFreeFormData","showFreeFormFields","setShowFreeFormFields","handleSubmit","getElementById","RenderSearchForm","formRef","formContainer","expanded","handleCancel","RenderFaceSearchForm","formFaceContainer","formFaceButtonsContainer","renderDropdownValue","processOptions","updatedData","submitSearchData","schemaObject","scrollTo","behavior","newFilters","data_schema_id","fields","scrollHeight","maxHeight","isFreeFormData","foldableFilterComponent","minHeight","minWidth","dropD","formFaceNewContainer","isFaceSearchEnabled","setIsFaceSearchEnabled","pageWrapper","FACE_RECOGNITION","pageContainer","filtersContent","dataTest","rangeValues","formNewContainer","pageContent","option","addAssetsToCollectionsElement","newDeletedAssets","handleMoveToTrash","routeToCollections","filtersWrapper","tags","substring","upload_time","pagerWrapper","newLimit","marginBottom","initialSearchQuery","searchQueryReducer","Collections","setItemsPerPage","dispatchSearchQuery","total_collections","filtersSidebarRef","handleOnCreateCollection","handleClearDateFilter","date","oppositeDate","last_update_range","filterSidebarWrapper","private_only","actionsWrapper","listWrapper","FlatButton","lightIcon","alticon","videoKeys","ModalPreview","assetType","dimensions","getURL","mediaSrc","setMediaSrc","tracks","setTracks","setIsLoading","mediaThumbnail","loadMediaData","possibleVideoKeys","getMediaUrl","setDefaultTrack","srcLang","language","lang","getMediaTracks","subtitles","trackSources","bucket","langCode","locale","ISOLocales","kind","language_local","region","default","processSubtitle","loaderContainer","poster","crossOrigin","noControls","hideOnMouseLeave","activeDuration","onLoad","downloadContent","editImage","cancelEditImage","back","core","addon","customMetadata","customMetadataContent","goBack","saveConversion","saveNewAsset","assetUpdateDialogTitle","replaceOriginalImageNote","replaceOriginalImage","addAsAConversion","downloadEditedCopy","addonNotEnabled","addAsNewAsset","addFreeFormData","assetMetadataSetupInfo","selectSchema","addField","successfullyReplacedOriginalImage","newAssetcreated","subtitleUpdated","savedConversion","addedNewAsset","replaceOriginal","editConfirmDialogTitle","editConfirmDialogMessage","addedToBasket","removedFromBasket","TabTrigger","keyName","activeKey","setKey","formatCoreData","useAssetMetadataMutation","_filespin_fr_count","_filespin_fr_face_ids","_filespin_autotag_labels","_filespin_scene_labels","_filespin_emotion_labels","_filespin_pose_labels","updateAssetMetadata","fieldNameSchema","string","fieldValueSchema","fieldSchema","object","MetadataField","onRemoveField","onAddField","onEditField","setFieldName","fieldValue","setFieldValue","setError","editMode","setEditMode","metadataFreeFormDataInput","metadataFreeFormFieldName","validate","fullWidthButton","metaFieldEditable","SetupFreeFormMetadata","setFields","isAddingField","setIsAddingField","metadataMutation","updated_data","freeFormDataContainer","currentFields","newFields","splice","handleRemoveField","handleFieldChange","AssetMetadataSetup","schemasData","onSubmitSchema","schemas","setSchemas","showSchemaForm","setShowSchemaForm","schemaSelection","selectedSchema","getSelectedSchema","metadataInitContainer","metadataInitForm","selectionContainer","schemaId","renderMetadata","onEdit","edit","k","metaField","RenderEditMetadata","AssetMetadata","fromEntries","metadataEditMode","setMetadataEditMode","submitSchema","metadataWrapper","textAlign","AssetUpdatedDialog","onCreateNewAsset","onCreateConversion","onReplaceOriginal","onDownloadConversion","showNewAssetOptions","setShowNewAssetOptions","showConversionOptions","setShowConversionOptions","showReplaceOptions","setShowReplaceOptions","saveMetadata","setSaveMetadata","setConversionName","assetName","setAssetName","AssetUpdatedConfirmationDialogContainer","AssetUpdatedConfirmationDialog","ArrowLeftCircle","conversionForm","conversionFormInput","test","paddingTop","metadataCheckbox","AssetDialogButtons","AssetModalContext","EDITION_MODE","IMAGE_TYPE","vttParser","WebVTTParser","SubtitleEditor","subtitleText","setSubtitleText","setErrors","linesRef","isSaving","setIsSaving","modalAPI","lines","numberOfLines","readAsText","onloadend","fetchSubtitleFile","subtitleEditor","subtitleEditorTextareaContainer","textareaLine","textareaEditor","parse","onScroll","scrollTop","currentTarget","editorErrors","subtitleEditorControls","vttBlob","vttFile","File","handleOnFinishEditing","ImageEditor","imageType","showAssetUpdatedDialog","setShowAssetUpdatedDialog","editedImage","setEditatedImage","editorConfig","getEditorDefaults","utils","cropSelectPresetOptions","CONVERSION","editor","imageCropAspectRatio","onProcess","stickers","ext","dest","updateConversion","updateOriginalImage","link","URL","createObjectURL","appendChild","revokeObjectURL","parentNode","removeChild","ModalEditor","SUBTITLE","ORIGINAL","tabs","ModalSidebar","forwardRef","onEditConversion","activeTab","setActiveTab","isGettingMediaUrl","setIsGettingMediaUrl","showSidebar","setShowSidebar","isImage","assetMetadata","checksum","creator_id","update_time","is_image_analysis","addons_info","IMAGE_ANALYSIS","available","visionData","visionError","isEditable","useImperativeHandle","toggleSidebar","forceState","CoreTab","metadataRow","metadataValue","errorDesc","ConversionsTab","conversionsTabContainer","justifyContent","conversionsTable","dpi","conversionTabError","handleEditConversion","downloadButton","handleDownload","AddonTab","details","scroller","labelAnnotations","tabButtons","Hash","Browser","Crop","PuzzlePiece","at","array","n","trunc","RBGviewer","assetData","onRBGImageSaved","base64val","setbase64val","isError","setIsError","saveOptions","setSaveOptions","base64String","binaryString","char","bgRemoveUrl","getRBG","main","backgroundImg","preview_bg","saveoption","imageContainer","pngBlob","Modal","useParams","assetDetailsQuery","useAssetDetailsQuery","cacheTime","originalUrl","setOriginalUrl","thumbnailUrl","isZoomable","setIsZoomable","isZoomableActivated","setIsZoomableActivated","isEditModeActivated","setIsEditModeActivated","isRBGModeActivated","setIsRBGModeActivated","isCollectionMutated","setIsCollectionMutated","showConfirmDialog","setShowConfirmDialog","showSidePanel","setShowSidePanel","editingMode","setEditingMode","newEditingMode","setNewEditingMode","viewer","setViewer","sidebarRef","addonsSettings","hasBackground","isLoadingBasket","onSettled","loadSrc","isPublicZoomable","deepzoom","InitOpenseadragon","destroy","OpenSeaDragon","prefixUrl","tileSources","showNavigator","animationTime","blendTime","constrainDuringPan","minZoomLevel","visibilityRatio","zoomPerScroll","showHomeControl","showNavigationControl","showZoomControl","showFullPageControl","navigatorDisplayRegionColor","handleNextPreviousClick","delta","currentIdx","handleRBG","handleAssetEdit","handleCancelEditing","getApi","wrapper","container","handleBasketToggle","PencilSimple","REMOVE_BACKGROUND","DropdownArrow","getAddonOptions","viewport","_oldZoom","zoomBy","MagnifyingGlassMinus","MagnifyingGlassPlus","errortext","Panel","messageId","filesHeader","storageBucket","storageLocation","storagePathPrefix","verified","originalFiles","storageBucketPlaceholder","imageConversions","videoTranscodes","AWSRegions","endpoint","StorageSettings","storageSettings","updateStorageSettings","formattedOptions","el","errorAlert","filesTable","originals_root","originals_root_folder","originals_root_geo","originals_root_ok","Checks","derivatives_root","derivatives_root_folder","derivatives_root_geo","derivatives_root_ok","transcodes_root","transcodes_root_folder","trabnscodes_root_geo","transcodes_root_geo","transcodes_root_ok","SecuritySection","securitySectionDescription","SecuritySettings","updateSecuritySettings","handleChangeAPIKey","sidebar","clearMargin","authorized_domains","inlineButton","api_key","CustomImageConversions","imageSettings","updateImageSettings","handleChanges","handleKeyChange","handleSizeChange","validateSize","centeredCheckbox","colSpan","successfulyUploadedWatermark","Watermark","watermarkFile","setWatermarkFile","watermarkPreviewRef","watermarkBackgroundPreviewRef","watermarkSettings","updateWatermarkSettings","onDrop","acceptedFiles","updateWatermark","assign","watermarkKeyFile","watermarkFileKey","getRootProps","getInputProps","isDragActive","useDropzone","maxFiles","maxSize","right","bottom","watermarkPlacement","setWatermarkHeightSize","watermarkScale","sectionSubTitle","dragAndDrop","dragging","previewWatermark","watermarkOptions","watermarkOptionsRow","watermarkOptionsPreview","watermarkPositionPreview","ImageSettings","onDemandImages","on_demand_image_private","checkedIcon","uncheckedIcon","onColor","section","WebhookSettings","webhookSettings","updateWebhookSettings","callback_events","web_urls","sectionDescription","webhookOptions","webhookOption","handleEventChange","DatabaseSettings","databaseSettings","updateDatabaseSettings","db_export_events","db_url","VideoTranscodes","videoSettings","updateVideoSettings","videos","handleVideoUpdate","centeredSelect","VideoSettings","videoPreview","videoStoryBoard","handleThumbnailUpdate","video_default","handleStoryboardUpdate","handlePreviewUpdate","video_transcode_test_mode","mode_value","video_preview_preset","video_preview_aspect","video_preview_upscale","video_preview_public","video_preview_enabled","AddonsSettings","updateAddonsSettings","showSettingsFor","setShowSettingsFor","showSettingsEditor","setShowSettingsEditor","hookValue","setHookValue","initialHookValue","setInitialHookValue","showSettingsAddons","setShowSettingsAddons","isJsonString","str","addedAddons","hasChanges","disabledKeys","addonsListContainer","addonsList","handleRemoveAddon","handleAddAddon","clearUpperMargin","handleAddonUpdate","userSelect","gearHolder","content_settings","footerNotes","theme","newValue","editorProps","$blockScrolling","AddonSettingBtn","updateAddonSettingsApi","isVisible","useSubstitutionsQuery","getSubstitution","originalWordSubstitutionPayloadAtom","domain","words","originalWriteWordSubstitutionPayloadAtom","update","wordSubstitutionPayloadAtom","writeWordSubstitutionPayloadAtom","wordsAtom","wordsListAtom","word","currentWordSubstitutionList","setCurrentWordSubstitutionList","wordSubstitutionState","SubstitutionWordSchema","generateHandlers","changeValueOfWord","ConfirmSubtitlesWordSubstitutionModal","handlers","Dialog","box","h3","dialogButton","useListingRowHooks","dialogIsOpen","setDialogIsOpen","isOpen","setIsOpen","useHandlers","wordSubstitutionPayload","setWordSubstitutionPayload","clickedYes","WordsLayoutView","wordsList","Wrapper","innerProps","useUpdateSubstitutionApiCall","apiCall","updateSubstitutionList","arraysEqual","objectsAreEqual","object1","object2","useSynchronisation","sourceValue","deepCopy","ToolsSettings","setWordSubstitutionList","setOriginaltWordSubstitutionList","substitutionQuery","remoteData","useRemoteSynch","wordSubstitutionList","originalWordSubstitutionList","updateSubstitutionMutation","errorMessageString","useUpdateSubstitutionMutation","originalWords","currentWords","changesAreSaved","ConfirmSubstitutionWordModal","addUser","searchFilter","firstName","lastName","enabledOnly","searchPlaceholder","loadingMessage","clickToView","notificationEmail","allowUserGroupAssets","newUserModalTitle","userAddedSuccessfully","userEditedSuccessfully","editingUserModalTitle","newPassword","keysModalTitle","KeyModal","user","apikey","getUsers","searchFilters","useAddUserManagementMutation","useEditUserManagementMutation","editUser","AddUserSchema","yup","last_name","notification_email","group_asset_access","template_user_id","AddUserModal","userMutation","onAddUser","inlineGroup","formSpacing","onChangeCapture","groupedButtons","useUserManagementQuery","useUserQuery","getUser","LoadingScreen","EditUserSchema","EditUserModal","onEditUser","editUserMutation","getUpdatedFields","hasEdited","isSameUser","authenticatedUser","new_password","initialFilters","showFilterSidebar","setShowFilterSidebar","emailSearch","setEmailSearch","firstNameSearch","setFirstNameSearch","lastNameSearch","setLastNameSearch","setEnabledOnly","emailSearchDebounced","firstNameSearchDebounced","lastNameSearchDebounced","enabledOnlyDebounced","totalPage","setTotalPage","total_users","searchSection","ease","centeredTable","KeysModal","handleShowKeysModal","handleShowEditUserModal","itemsPerPageLocalKey","isPurgingAssets","setIsPurgingAssets","setHasTrashedAssets","getTime","searchBar","Basket","SCRIPT_ID","FileSpinPickerProvider","isAuthenticated","useIsAuthenticated","script","defer","loadPicker","EditCollectionModal","updateCollectionMutation","_data","currentQueryData","updatedCollectionData","Collection","restrictedCollection","setRestrictedCollection","slicedAssets","filteredExtendedResult","patchCollectionMutation","newAssets","collectionHeader","collectionName","warningAlert","collectionDescription","REMOVE_FROM_COLLECTION","PasswordSchema","oldPassword","confirmPassword","equals","UserSchema","FoldableSection","Profile","isEditing","setIsEditing","userData","passwordForm","handlePasswordChange","passwordFormErrors","setPasswordFieldError","clearPasswordFormErrors","groupButtons","Wrench","userName","old_password","BaseLayout","onboarding","Intro","onStartOnboarding","OnboardingActionType","currentStep","steps","GO_TO_NEXT_STEP","finishedOnboarding","GO_TO_PREVIOUS_STEP","INITIAL_DATA","OnboardingContext","useOnboardingContext","dispatch","stepTitle","totalSteps","goToNextStep","goToPreviousStep","isLastStep","isFirstStep","skippable","StepBar","onGoToNextStep","onGoToPreviousStep","loadingNextStep","loadingPreviousStep","hasUnsavedChanges","stepBar","stepInfo","UserOnboardingSchema","omit","Storage","settingsMutation","useActivateAccountQuery","activateAccount","Loading","InvalidCode","Onboarding","showOnboarding","setShowOnboarding","tokenStatus","setTokenStatus","retry","convertISOToCustomFormat","isoDate","getStatusColor","get_job_map_value","Jobs","StatusOptions","setCurrentPage","pageLoading","setPageLoading","setJobs","setIsVisible","selectedStatus","setSelectedStatus","startTime","setStartTime","endTime","setEndTime","handlePageChange","FetchJobs","LoadingStatus","loadingHolder","start_time","end_time","getJobs","j","total","incoming_jobs_list","modified_jobs_list","job","mod_transcode","job_steps","ProcessIncomingJobs","StepsTab","job_id","started_at","finished_at","stepsTabContainer","stepsTabWrapper","stepsStatus","stepsTabName","stepsDetails","processDetailItem","processDetailText","processDetailItemFlex","t","processDetailTextChip","flexGrow","searchBtn","mainJob","float","statusDropdown","timeInput","requested_at","completed_at","LoadingBar","progressValue","setProgressValue","intervalId","clearInterval","prevValue","setInterval","Progress_Status","myprogressBar","Progress_Text","ErrorStatus","Heading","heading","headingContainer","headingInner","headingTitle","divider","headingId","statusContainer","SubHeading","subHeadingContainer","subHeadingItem","subHeadingText","ProcessTabs","percent","processTabContainer","processTabName","processTabWrapper","processStatus","processDetails","InputView","inputViewHeader","table","paddingInline","StatusLayout","stepsObjList","statusLayoutContainer","statusLayoutContent","statusLayoutLeft","leftColumn","file_id","processTabsContainer","preprocess","percent_complete","postprocess","statusLayoutRight","stepsHeader","JobStatus","jobData","setJobData","setAssetData","intervalRef","getJobData","fetch_asset_details","interval","job_response","asset_response","CheckUsageDropDown","toggleRef","menuRef","menuWidth","setMenuWidth","handleResize","toggleWidth","offsetWidth","scrollWidth","selectedOption","newDropdown","dropdownToggle","arrow","dropdownMenu","dropdownItem","CheckUsageComponent","apiStatData","setApiStatData","cdnStatsData","setCdnStatsData","transcodeStatData","setTranscodeStatsData","addonStatData","setAddonStatsData","setUserData","selectedTimeRange","setSelectedTimeRange","selectedUser","setSelectedUser","setSortConfig","selectedUserId","setSelectedUserId","totalCount","setTotalCount","cdnDataLoading","setCDNDataLoading","apiDataLoading","setApiDataLoading","fetchAPIData","period","queryParams","getApiStats","fetchCDNData","getCdnStats","fetchTranscodeData","getTranscodeStats","fetchAddonData","getAddonStats","convertSeconds","formatBytes","decimals","dm","sizes","pow","fetchUserData","count","tableHeaderStyle","borderBottom","tableCellStyle","addonsDiscription","addonTablePopulate","addonName","statsPerUser","tabStyle","tabName","tabButton","mainContainer","tabContainer","flattenedData","processData","subtype","flatMap","tableContainer","tableRow","requestSort","transcode","time","cdn","sum","renderContent","Router","fallback","exact","loginPath","AssetModal","JobList","initialIsOpen","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","QueryClient","defaultOptions","refetchOnWindowFocus","render","StrictMode","defaultLocale","authType","authName","client"],"mappings":"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","file":"static/js/main.bbd5b027.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___jIJ9C\",\"container\":\"container___3pULz\",\"sidebar\":\"sidebar___ewy75\",\"active\":\"active___+09+P\",\"content\":\"content___OYeDd\",\"sectionDescription\":\"sectionDescription___6gYGF\",\"webhookOptions\":\"webhookOptions___nfq8k\",\"webhookOption\":\"webhookOption___NspgI\",\"inlineButton\":\"inlineButton___L6VHv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SystemAlert\":\"SystemAlert___VwHrT\",\"pauseOnHover\":\"pauseOnHover___FiZEb\",\"progressBar\":\"progressBar___fWKz+\",\"text\":\"text___Wjuyv\",\"icon\":\"icon___HsMdx\",\"closeIcon\":\"closeIcon___izwV6\",\"success\":\"success___xEAgV\",\"warning\":\"warning___JreHh\",\"danger\":\"danger___h3Xex\",\"info\":\"info___Xu+2s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Button\":\"Button___nopv8\",\"icon\":\"icon___T6Gfz\",\"primary\":\"primary___uHAe9\",\"outlined\":\"outlined___4jHLt\",\"secondary\":\"secondary___m8ggv\",\"tertiary\":\"tertiary___obyvP\",\"small\":\"small___v6X-U\",\"accept\":\"accept___qNgQi\",\"decline\":\"decline___jrX+-\",\"flat\":\"flat___rhpeB\",\"loading\":\"loading___MWdn7\",\"loader\":\"loader___IOfc0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___fBUFs\",\"header\":\"header___AVQ+2\",\"active\":\"active___2I0bK\",\"saveChanges\":\"saveChanges___TJFWK\",\"buttonGroup\":\"buttonGroup___uUOJ+\",\"container\":\"container___EBKJn\",\"filesTable\":\"filesTable___GK+lg\",\"unsavedChanges\":\"unsavedChanges___gvK-K\",\"dropD\":\"dropD___DvhOh\",\"errorAlert\":\"errorAlert___AIsRD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___ZdM98\",\"container\":\"container___u2HfC\",\"sidebar\":\"sidebar___DRFQl\",\"active\":\"active___NTuST\",\"content\":\"content___otmLX\",\"sectionDescription\":\"sectionDescription___H7CoK\",\"webhookOptions\":\"webhookOptions___AvlvG\",\"webhookOption\":\"webhookOption___00rSn\",\"inlineButton\":\"inlineButton___f31+h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingHolder\":\"loadingHolder___PaVPY\",\"loading\":\"loading___tP0cY\",\"dots\":\"dots___xYjC4\",\"headingContainer\":\"headingContainer___nmvGJ\",\"headingInner\":\"headingInner___EjdTK\",\"headingTitle\":\"headingTitle___8npYB\",\"divider\":\"divider___6yqbV\",\"headingId\":\"headingId___XiTmL\",\"statusContainer\":\"statusContainer___ag3tj\",\"subHeadingContainer\":\"subHeadingContainer___k3PXO\",\"subHeadingItem\":\"subHeadingItem___3FK9E\",\"subHeadingText\":\"subHeadingText___sA5g8\",\"processTabContainer\":\"processTabContainer___UCGT6\",\"processTabName\":\"processTabName___iH-dq\",\"processTabWrapper\":\"processTabWrapper___28Kry\",\"processStatus\":\"processStatus___v-1G5\",\"processDetails\":\"processDetails___fEAwx\",\"processDetailItem\":\"processDetailItem___oKklv\",\"processDetailText\":\"processDetailText___41bEk\",\"stepsTabContainer\":\"stepsTabContainer___PdIoi\",\"stepsTabWrapper\":\"stepsTabWrapper___amDDi\",\"stepsTabName\":\"stepsTabName___nPfMc\",\"stepsStatus\":\"stepsStatus___+Wu6V\",\"stepsDetails\":\"stepsDetails___gJifQ\",\"inputViewContainer\":\"inputViewContainer___L7NzP\",\"inputViewHeader\":\"inputViewHeader___6vMMQ\",\"inputViewContent\":\"inputViewContent___LVeB2\",\"inputViewItem\":\"inputViewItem___YlVHs\",\"inputViewText\":\"inputViewText___qKtAO\",\"statusLayoutContainer\":\"statusLayoutContainer___GygAM\",\"statusLayoutContent\":\"statusLayoutContent___JvQNW\",\"statusLayoutLeft\":\"statusLayoutLeft___omrHf\",\"statusLayoutRight\":\"statusLayoutRight___kzRW2\",\"leftColumn\":\"leftColumn___l1q2c\",\"processTabsContainer\":\"processTabsContainer___GOdAH\",\"stepsHeader\":\"stepsHeader___UecaY\",\"container\":\"container___LqnHv\",\"table\":\"table___Pah71\",\"table_header\":\"table_header___+sykp\",\"table_row\":\"table_row___KEahj\",\"table_data\":\"table_data___lNtmx\",\"header__item\":\"header__item___kZMKF\",\"filter__link\":\"filter__link___ZpUZP\",\"desc\":\"desc___B-vlP\",\"asc\":\"asc___NmEsb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"collections\":\"collections___ZsKSM\",\"collection\":\"collection___Mbz0-\",\"checkbox\":\"checkbox___qE9ck\",\"assetsCount\":\"assetsCount___-p9k6\",\"actions\":\"actions___XK2sh\",\"search\":\"search___fvIbC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Tooltip\":\"Tooltip___UnIZb\",\"blocky\":\"blocky___C+qDn\",\"bubble\":\"bubble___pvIT1\",\"moveText\":\"moveText___XUxn-\",\"delayed\":\"delayed___MpNzC\",\"top\":\"top___5OIoz\",\"left\":\"left___zIL2d\",\"right\":\"right___aQ-77\",\"bottom\":\"bottom___-QsWx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formWrapper\":\"formWrapper___G9Kew\",\"form\":\"form___2mCo4\",\"buttonWrapper\":\"buttonWrapper___sGciI\",\"splitWrapper\":\"splitWrapper___DnnU2\",\"splitter\":\"splitter___ovxmo\",\"logoContainer\":\"logoContainer___Q3sNv\",\"termsAndPolicyContainer\":\"termsAndPolicyContainer___Fod7-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___KALQd\",\"search\":\"search___n6-H0\",\"PageTitle\":\"PageTitle___rg4pT\",\"title\":\"title___Fd0VU\",\"subtitle\":\"subtitle___WeoDR\",\"counter\":\"counter___nTKy8\",\"container\":\"container___X6Hub\",\"sidebar\":\"sidebar___MBD2n\",\"active\":\"active___tVSFK\",\"content\":\"content___xwQrd\",\"sectionSubTitle\":\"sectionSubTitle___+b5Wo\",\"sortDropdown\":\"sortDropdown___qoG1K\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___9mykr\",\"container\":\"container___Fnhey\",\"userName\":\"userName___-6za8\",\"actions\":\"actions___5tHhp\",\"error\":\"error___-wS-X\",\"groupButtons\":\"groupButtons___BwzHD\",\"foldableContainer\":\"foldableContainer___cJQ6I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Checkbox\":\"Checkbox___VrtZq\",\"icon\":\"icon___yIqoi\",\"disabled\":\"disabled___KQfmf\",\"checked\":\"checked___hDjT5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ColorPicker\":\"ColorPicker___EJtW3\",\"colorInput\":\"colorInput___xzGy2\",\"colorPreview\":\"colorPreview___mF6Oo\",\"picker\":\"picker___lgzDG\",\"cover\":\"cover___yVkpS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalActions\":\"modalActions___UUemU\",\"formGroup\":\"formGroup___E4aBS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"BaseModalContainer\":\"BaseModalContainer___fTzQM\",\"BaseModal\":\"BaseModal___CEkej\",\"BaseModalBackground\":\"BaseModalBackground___ui2nA\",\"CloseModal\":\"CloseModal___roSnT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchFiltersSidebar\":\"SearchFiltersSidebar___D+21F\",\"foldableContainer\":\"foldableContainer___QhMCI\",\"filterChildren\":\"filterChildren___374Az\",\"applyFiltersButton\":\"applyFiltersButton___nJW57\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LayoutView\":\"LayoutView___zak84\",\"shimmer\":\"shimmer___U5TcN\",\"empty\":\"empty___iGZ4H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListingCardShimmer\":\"ListingCardShimmer___yEGHF\",\"titleWrapper\":\"titleWrapper___aHx6c\",\"checkbox\":\"checkbox___2OGq0\",\"title\":\"title___3HhgI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"icon___kEwQt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ConfirmDialog\":\"ConfirmDialog___bUkcK\",\"backdrop\":\"backdrop___qRFDN\",\"dialog\":\"dialog___f8i04\",\"controls\":\"controls___O0XdV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageTitle\":\"PageTitle___OYTPc\",\"title\":\"title___q4RF2\",\"subtitle\":\"subtitle___bm8qc\",\"counter\":\"counter___4v+jt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Header\":\"Header___dL45E\",\"notificationsDropdown\":\"notificationsDropdown___Vbrzl\",\"dropdown\":\"dropdown___fHhLW\",\"active\":\"active___Q5Fiw\",\"icons\":\"icons___ljWJy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListingRow\":\"ListingRow___RlQJt\",\"thumbWrapper\":\"thumbWrapper___S5jX+\",\"playbox\":\"playbox___c5o8R\",\"substitutionWord\":\"substitutionWord___r4k5Z\",\"actions\":\"actions___wSR+R\",\"checkbox\":\"checkbox___Etzek\",\"title\":\"title___KjbKt\",\"fileNameContainer\":\"fileNameContainer___wdq63\",\"processingAsset\":\"processingAsset___9c1fz\",\"Dialog\":\"Dialog___nFO5f\",\"box\":\"box___i7CiZ\",\"h3\":\"h3___4ob39\",\"dialogButton\":\"dialogButton___eRRcH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___8UB5I\",\"container\":\"container___kuONg\",\"centeredTable\":\"centeredTable___+vZeg\",\"searchSection\":\"searchSection___mbBzq\",\"pageContent\":\"pageContent___JQtcC\",\"sidebar\":\"sidebar___9RKr9\",\"ModalContainer\":\"ModalContainer___U1RlK\",\"Modal\":\"Modal___vK1eS\",\"groupedButtons\":\"groupedButtons___tT7Z2\",\"formSpacing\":\"formSpacing___PRxYy\",\"inlineGroup\":\"inlineGroup___dHdjZ\",\"LoadingScreen\":\"LoadingScreen___0miCV\",\"errorMessage\":\"errorMessage___+jUSQ\",\"pagerWrapper\":\"pagerWrapper___VrX4r\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchInput\":\"searchInput___W7FJC\",\"pageTitle\":\"pageTitle___Bh1bK\",\"foldableContainer\":\"foldableContainer___vHVQP\",\"filterChildren\":\"filterChildren___3witX\",\"buttons\":\"buttons___ZXxwZ\",\"statusDropdown\":\"statusDropdown___jOEcE\",\"searchBtn\":\"searchBtn___8JLXH\",\"inputWrapper\":\"inputWrapper___HnX9Q\",\"stepsTabContainer\":\"stepsTabContainer___9MWV5\",\"stepsTabWrapper\":\"stepsTabWrapper___De4+P\",\"stepsTabName\":\"stepsTabName___hDY4d\",\"stepsStatus\":\"stepsStatus___jMWYT\",\"stepsDetails\":\"stepsDetails___BFIYq\",\"processDetailItem\":\"processDetailItem___SJ8ud\",\"processDetailItemFlex\":\"processDetailItemFlex___b+-oP\",\"processDetailText\":\"processDetailText___+c23Q\",\"processDetailTextChip\":\"processDetailTextChip___JaGKq\",\"divider\":\"divider___T4qrp\",\"loadingHolder\":\"loadingHolder___ukBOR\",\"loading\":\"loading___DdM6G\",\"dots\":\"dots___ku7dd\",\"timeInput\":\"timeInput___HWfYE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formGroup\":\"formGroup___m8iZO\",\"modalActions\":\"modalActions___Doi8I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PrivateField\":\"PrivateField___rmVxb\",\"hiddenField\":\"hiddenField___pFeBf\",\"revealButton\":\"revealButton___gCF9N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SaveChangesBar\":\"SaveChangesBar___SGKEi\",\"unsavedChanges\":\"unsavedChanges___piTLh\",\"buttonGroup\":\"buttonGroup___cpmya\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SaveChangesBar\":\"SaveChangesBar___gegmD\",\"unsavedChanges\":\"unsavedChanges___CIbX5\",\"buttonGroup\":\"buttonGroup___5gGGX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___thuN2\",\"pageContent\":\"pageContent___+-E8u\",\"shimmer\":\"shimmer___hf+tm\",\"actions\":\"actions___TPFnk\",\"layoutAction\":\"layoutAction___GOqze\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Progress_Status\":\"Progress_Status___ZXhTq\",\"myprogressBar\":\"myprogressBar___VF5PN\",\"Progress_Text\":\"Progress_Text___feRo6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingHolder\":\"loadingHolder___2N92Q\",\"loading\":\"loading___O-LMM\",\"dots\":\"dots___IlPKY\",\"PageTitle\":\"PageTitle___f7I2A\",\"title\":\"title___4iaKd\",\"subtitle\":\"subtitle___dj8IF\",\"counter\":\"counter___lnoDe\",\"PageTabs\":\"PageTabs___-AuoM\",\"tableHeader\":\"tableHeader___Apyp8\",\"tableCell\":\"tableCell___ffqOS\",\"dropdownContainer\":\"dropdownContainer___+yXAJ\",\"tableContainer\":\"tableContainer___HPlaD\",\"tabContainer\":\"tabContainer___Ycc+S\",\"tabButton\":\"tabButton___2kHop\",\"active\":\"active___yBQfk\",\"pageTitle\":\"pageTitle___8mXGU\",\"container\":\"container___vFYhR\",\"table\":\"table___byEsI\",\"tableRow\":\"tableRow___nUCsX\",\"mainContainer\":\"mainContainer___dHSwL\",\"pageHeader\":\"pageHeader___dnapT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___22bNP\",\"pageTitle\":\"pageTitle___X7olh\",\"filtersContent\":\"filtersContent___4CpUZ\",\"pageContainer\":\"pageContainer___0hHg-\",\"foldableContainer\":\"foldableContainer___NEcg7\",\"filterChildren\":\"filterChildren___dU5U0\",\"pageContent\":\"pageContent___F9mGY\",\"shimmer\":\"shimmer___JqD0+\",\"filtersWrapper\":\"filtersWrapper___O1E2i\",\"tags\":\"tags___kNKow\",\"actions\":\"actions___F2BOb\",\"pagerWrapper\":\"pagerWrapper___+Qd1G\",\"searchBar\":\"searchBar___BgOiK\",\"pageActions\":\"pageActions___sQMLr\",\"Select\":\"Select___XpO9R\",\"dropD\":\"dropD___6riDC\",\"formContainer\":\"formContainer___kVA9Y\",\"formFaceContainer\":\"formFaceContainer___fAjoh\",\"formNewContainer\":\"formNewContainer___9ekJS\",\"formFaceNewContainer\":\"formFaceNewContainer___xevKc\",\"formButtonsContainer\":\"formButtonsContainer___Zb1oM\",\"formFaceButtonsContainer\":\"formFaceButtonsContainer___sZtPH\",\"metadataInitContainer\":\"metadataInitContainer___GRTUq\",\"metadataInitForm\":\"metadataInitForm___0Jv2U\",\"separator\":\"separator___yeHRd\",\"selectionContainer\":\"selectionContainer___D-PLB\",\"freeFormDataContainer\":\"freeFormDataContainer___pvhCF\",\"metadataFreeFormDataInput\":\"metadataFreeFormDataInput___QBheY\",\"error\":\"error___F3CXd\",\"metadataFreeFormFieldName\":\"metadataFreeFormFieldName___Ysf93\",\"metaFieldEditable\":\"metaFieldEditable___eYZoR\",\"fullWidthButton\":\"fullWidthButton___4dkrz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Loader\":\"Loader___133Ce\",\"loaderParent\":\"loaderParent___MIq5H\",\"small\":\"small___O3vrQ\",\"loaderSpan\":\"loaderSpan___lStiw\",\"loaderAfter\":\"loaderAfter___pQLIh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Textarea\":\"Textarea___pD1lH\",\"error\":\"error___GjS4P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FileUpload\":\"FileUpload___jJiQL\",\"dragging\":\"dragging___8fXu+\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InfoSection\":\"InfoSection___oHRkk\",\"icon\":\"icon___lmO9j\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Table\":\"Table___9JapX\",\"responsiveTable\":\"responsiveTable___j5tqp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AdminSettingsSection\":\"AdminSettingsSection___Pg+kP\",\"title\":\"title___WCTlb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LogoWhite\":\"LogoWhite___cvfT+\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Logo\":\"Logo___Zs4zL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Tag\":\"Tag___zT2Yn\",\"closeable\":\"closeable___3Iowf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"layout___eIFWs\",\"sticky\":\"sticky___H7Pc5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"layout___OIRPi\",\"pageTitle\":\"pageTitle___QKL92\",\"sticky\":\"sticky___jy3O6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FlatButton\":\"FlatButton___rtSKT\",\"alticon\":\"alticon___v9wDE\",\"container\":\"container___D1kRB\",\"Loader\":\"Loader___kgonB\",\"Modal\":\"Modal___CqvnO\",\"wrapper\":\"wrapper___XFjf7\",\"header\":\"header___oalfH\",\"actions\":\"actions___sjX9T\",\"push\":\"push___NtYhE\",\"controls\":\"controls___YRFPp\",\"title\":\"title___OtjBV\",\"content\":\"content___I85ok\",\"preview\":\"preview___C7ClR\",\"original_img_holder\":\"original_img_holder___vutBK\",\"player\":\"player___19eL8\",\"videoCover\":\"videoCover___NyCgP\",\"seeker\":\"seeker___jpAok\",\"loaded\":\"loaded___ibmWO\",\"play\":\"play___px0Dg\",\"mute\":\"mute___zyFen\",\"volume\":\"volume___DJh-j\",\"details\":\"details___T24oU\",\"smallParagraph\":\"smallParagraph___c5vpk\",\"metaField\":\"metaField___QJaMY\",\"tabs\":\"tabs___1dpj1\",\"active\":\"active___AUVAI\",\"scroller\":\"scroller___mmeiM\",\"tags\":\"tags___bKgy7\",\"tabButtons\":\"tabButtons___JqHyY\",\"editor\":\"editor___u1qAB\",\"metadataRow\":\"metadataRow___3dJbX\",\"metadataRowButtons\":\"metadataRowButtons___FyYeO\",\"metadataWrapper\":\"metadataWrapper___cE1AL\",\"edit\":\"edit___uxUcL\",\"AssetUpdatedConfirmationDialogContainer\":\"AssetUpdatedConfirmationDialogContainer___NaWrC\",\"AssetUpdatedConfirmationDialog\":\"AssetUpdatedConfirmationDialog___Nu7Gz\",\"conversionForm\":\"conversionForm___ydW+G\",\"AssetDialogButtons\":\"AssetDialogButtons___cw0KK\",\"metadataInitContainer\":\"metadataInitContainer___wDUr3\",\"metadataInitForm\":\"metadataInitForm___I+Xnd\",\"separator\":\"separator___0EtU4\",\"selectionContainer\":\"selectionContainer___Qu+QS\",\"freeFormDataContainer\":\"freeFormDataContainer___SGWWA\",\"metadataFreeFormDataInput\":\"metadataFreeFormDataInput___BE85V\",\"error\":\"error___B0ebb\",\"metadataFreeFormFieldName\":\"metadataFreeFormFieldName___QId9l\",\"metaFieldEditable\":\"metaFieldEditable___pyB3A\",\"fullWidthButton\":\"fullWidthButton___VJCq1\",\"formButtonsContainer\":\"formButtonsContainer___mH7Ry\",\"captionsContainer\":\"captionsContainer___uRlea\",\"showCaptions\":\"showCaptions___woThy\",\"caption\":\"caption___JQ0P5\",\"subtitleEditor\":\"subtitleEditor___GD71E\",\"subtitleEditorTextareaContainer\":\"subtitleEditorTextareaContainer___5F3I-\",\"textareaLine\":\"textareaLine___2iwCd\",\"textareaEditor\":\"textareaEditor___xKvfH\",\"editorErrors\":\"editorErrors___CYG9t\",\"subtitleEditorControls\":\"subtitleEditorControls___dkvyt\",\"loaderContainer\":\"loaderContainer___Ny3Ae\",\"processingAsset\":\"processingAsset___DO0kl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputWrapper\":\"inputWrapper___liZV9\",\"inputIcon\":\"inputIcon___RbC0B\",\"inputIconError\":\"inputIconError___WKatN\",\"Input\":\"Input___k6DSb\",\"inputWithIcon\":\"inputWithIcon___C0bBs\",\"secondary\":\"secondary___+C-iL\",\"error\":\"error___4yR8Y\",\"actionWrapper\":\"actionWrapper___mHjpe\",\"editContainer\":\"editContainer___3WKHN\",\"active\":\"active___Td4ME\",\"editButton\":\"editButton___0Y1K6\",\"editIcon\":\"editIcon___tpYni\",\"checkIcon\":\"checkIcon___ugYfh\",\"xIcon\":\"xIcon___qAJTM\",\"limitContainer\":\"limitContainer___K+dsD\",\"limitWrapper\":\"limitWrapper___XzX2-\",\"warning\":\"warning___-jeDT\",\"limitText\":\"limitText___aTsNO\",\"errorContainer\":\"errorContainer___tJsSr\",\"errorIcon\":\"errorIcon___p3Ef1\",\"errorText\":\"errorText___kYTSp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formGroup\":\"formGroup___iLTd-\",\"modalActions\":\"modalActions___l4q2I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"LayoutView\":\"LayoutView___BGw-J\",\"shimmer\":\"shimmer___wWGWI\",\"empty\":\"empty___e-ida\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListingRow\":\"ListingRow___XUYR1\",\"thumbWrapper\":\"thumbWrapper___mgjd6\",\"playbox\":\"playbox___gSMm8\",\"substitutionWord\":\"substitutionWord___tUVSo\",\"actions\":\"actions___2EWMO\",\"checkbox\":\"checkbox___lXr4A\",\"title\":\"title___8jg1t\",\"fileNameContainer\":\"fileNameContainer___jPPYL\",\"processingAsset\":\"processingAsset___rEkKB\",\"Dialog\":\"Dialog___5xMjy\",\"box\":\"box___YKyjp\",\"h3\":\"h3___iSlz7\",\"dialogButton\":\"dialogButton___1f42l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea_sty\":\"textarea_sty___qOLno\",\"error_sty\":\"error_sty___dTooE\",\"btnHolder\":\"btnHolder___BWUaj\",\"expiry_input\":\"expiry_input___kwSPl\",\"Select\":\"Select___7oOSc\",\"content_input\":\"content_input___sVlAU\",\"modal_header\":\"modal_header___xBmIG\",\"option_header\":\"option_header___wKluF\",\"option_holder\":\"option_holder___H7GNJ\",\"urlCell\":\"urlCell___LO8Vc\",\"table-title\":\"table-title___5jWtv\",\"table-fill\":\"table-fill___+0FaK\",\"float\":\"float___jJECa\",\"table_head\":\"table_head___bAOgk\",\"table_row\":\"table_row___RZGxU\",\"table_data\":\"table_data___EEoAQ\",\"text_center\":\"text_center___CxmMU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___w2ZSZ\",\"container\":\"container___Yw8Hs\",\"sidebar\":\"sidebar___bk+z7\",\"active\":\"active___1LjKA\",\"content\":\"content___BLGDO\",\"section\":\"section___siepd\",\"sectionTitle\":\"sectionTitle___1sa1V\",\"sectionSubTitle\":\"sectionSubTitle___el3Qw\",\"sectionBody\":\"sectionBody___b2ebk\",\"sectionDescription\":\"sectionDescription___P8Ojq\",\"inlineButton\":\"inlineButton___F1vVk\",\"onDemandImages\":\"onDemandImages___xp-PQ\",\"centeredCheckbox\":\"centeredCheckbox___zltir\",\"watermarkFile\":\"watermarkFile___DLY7T\",\"dragAndDrop\":\"dragAndDrop___yGWRm\",\"dragging\":\"dragging___saav8\",\"previewWatermark\":\"previewWatermark___5FtIW\",\"watermarkOptions\":\"watermarkOptions___WozmV\",\"watermarkOptionsRow\":\"watermarkOptionsRow___7tgi8\",\"watermarkOptionsPreview\":\"watermarkOptionsPreview___0fl0o\",\"watermarkPositionPreview\":\"watermarkPositionPreview___1kUkD\",\"error\":\"error___GZj-f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___Jt9f1\",\"container\":\"container___3HCBx\",\"sidebar\":\"sidebar___WJE7y\",\"active\":\"active___fNxuJ\",\"content\":\"content___I3SeF\",\"sectionSubTitle\":\"sectionSubTitle___yZfRK\",\"inlineButton\":\"inlineButton___yuvUX\",\"onDemandImages\":\"onDemandImages___A8Ea8\",\"centeredCheckbox\":\"centeredCheckbox___R4Wyc\",\"centeredSelect\":\"centeredSelect___nAfbL\",\"watermarkFile\":\"watermarkFile___uJa1P\",\"dragAndDrop\":\"dragAndDrop___Fp4ID\",\"dragging\":\"dragging___73vAo\",\"previewWatermark\":\"previewWatermark___s429-\",\"watermarkOptions\":\"watermarkOptions___JF+J6\",\"watermarkOptionsRow\":\"watermarkOptionsRow___Xk7Zx\",\"watermarkOptionsPreview\":\"watermarkOptionsPreview___6jP-b\",\"watermarkPositionPreview\":\"watermarkPositionPreview___ulrPU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Badge\":\"Badge___OSVOq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Paper\":\"Paper___oiNI0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"schemaFormContainer\":\"schemaFormContainer___QJvcz\",\"formButtonsContainer\":\"formButtonsContainer___sGidg\",\"formContent\":\"formContent___Szn3w\",\"schemaFormTitle\":\"schemaFormTitle___JppK5\",\"formGroup\":\"formGroup___aXlfu\",\"formLabel\":\"formLabel___FXsxV\",\"formDescription\":\"formDescription___LAPnC\",\"formHelp\":\"formHelp___Bssxv\",\"formErrors\":\"formErrors___rsnH4\",\"Filespin_internal_keys_formGroup\":\"Filespin_internal_keys_formGroup___I7Jxq\",\"addFieldButton\":\"addFieldButton___0Nvm-\",\"fieldFormButtons\":\"fieldFormButtons___tqEel\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Shimmer\":\"Shimmer___BDm5n\",\"shimmer\":\"shimmer___Z6okR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AdminSettingsSidebar\":\"AdminSettingsSidebar___JSncf\",\"active\":\"active___YFLW8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Select\":\"Select___1W-Zw\",\"label\":\"label___SI+Vt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sliderContainer\":\"sliderContainer___l2zBz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Footer\":\"Footer___+ZePN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"onboarding\":\"onboarding___G54gu\",\"container\":\"container___TYiAq\",\"content\":\"content___UGTWv\",\"stepBar\":\"stepBar___VaRlb\",\"stepInfo\":\"stepInfo___y03JF\",\"step\":\"step___Iwole\",\"stepFooter\":\"stepFooter___kav+y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Dropdown\":\"Dropdown___c3Y64\",\"menu\":\"menu___aZmC0\",\"filter\":\"filter___4nnCr\",\"anchorRight\":\"anchorRight___E07kf\",\"reduceSize\":\"reduceSize___OfjWB\",\"open\":\"open___DuLDT\",\"withTitle\":\"withTitle___KpJOF\",\"directionUp\":\"directionUp___tCcMZ\",\"disabled\":\"disabled___pYJcu\",\"noborder\":\"noborder___ABGXf\",\"isSort\":\"isSort___vcy3a\",\"title\":\"title___6jwFZ\",\"icon\":\"icon___8OGBN\",\"selected\":\"selected___2zaZM\",\"check\":\"check___ues0-\",\"iconSelected\":\"iconSelected___d2ISG\",\"clickable\":\"clickable___Henjo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___PpasL\",\"container\":\"container___zHCSS\",\"addonsListContainer\":\"addonsListContainer___WIkz0\",\"addonsList\":\"addonsList___uARYQ\",\"content\":\"content___flSk+\",\"content_settings\":\"content_settings___niNzR\",\"sectionDescription\":\"sectionDescription___naj25\",\"webhookOptions\":\"webhookOptions___-M2ZH\",\"webhookOption\":\"webhookOption___WyT3V\",\"inlineButton\":\"inlineButton___WlBWW\",\"logo\":\"logo___vccji\",\"clearUpperMargin\":\"clearUpperMargin___axufH\",\"title\":\"title___U5pQ0\",\"gearHolder\":\"gearHolder___hO996\",\"btnHolder\":\"btnHolder___F1cz9\",\"AddonSettingBtn\":\"AddonSettingBtn___Cfhce\",\"formatBtn\":\"formatBtn___RD2pA\",\"footerNotes\":\"footerNotes___GcnfH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"BatchActions\":\"BatchActions___CJBVw\",\"selectAll\":\"selectAll___Lc-NM\",\"batchAction\":\"batchAction___ctjPI\",\"batchActionPrimaryButton\":\"batchActionPrimaryButton___YZE68\",\"batchActionDropdown\":\"batchActionDropdown___O8RF4\",\"basketButton\":\"basketButton___fP1bc\",\"badge\":\"badge___AA-1B\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"schemaFormContainer\":\"schemaFormContainer___5fVqM\",\"formButtonsContainer\":\"formButtonsContainer___wdsFz\",\"formContent\":\"formContent___MHmYt\",\"schemaFormTitle\":\"schemaFormTitle___DSLtx\",\"formGroup\":\"formGroup___R+v3C\",\"formLabel\":\"formLabel___bCuLv\",\"formDescription\":\"formDescription___8Uk2a\",\"formHelp\":\"formHelp___7P1oo\",\"formErrors\":\"formErrors___20cui\",\"addFieldButton\":\"addFieldButton___TzK5s\",\"fieldFormButtons\":\"fieldFormButtons___gFJzp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___tgDIa\",\"collectionHeader\":\"collectionHeader___fec2H\",\"pageTitle\":\"pageTitle___q7ANq\",\"collectionName\":\"collectionName___XWFnk\",\"warningAlert\":\"warningAlert___VRN0D\",\"collectionDescription\":\"collectionDescription___VJVrh\",\"pageActions\":\"pageActions___jHmb7\",\"buttonGroup\":\"buttonGroup___zSofv\",\"formGroup\":\"formGroup___cyVFP\",\"filePreview\":\"filePreview___mGcxE\",\"logoSwitcher\":\"logoSwitcher___AsROf\",\"modalActions\":\"modalActions___utAV3\",\"sectionTitle\":\"sectionTitle___xLRsI\",\"coverImageLabel\":\"coverImageLabel___zLZLV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListingCard\":\"ListingCard___NX-TD\",\"thumbWrapper\":\"thumbWrapper___rPrMt\",\"playbox\":\"playbox___FGi33\",\"overlay\":\"overlay___ugdFO\",\"primeButton\":\"primeButton___W1YD4\",\"overlayFooter\":\"overlayFooter___P4DkX\",\"titleWrapper\":\"titleWrapper___inyTa\",\"checkbox\":\"checkbox___hAqoO\",\"title\":\"title___atNSl\",\"processingAsset\":\"processingAsset___TOUrv\",\"errorAsset\":\"errorAsset___C8DwF\",\"errorTitleStyle\":\"errorTitleStyle___l9TKD\",\"titleHolder\":\"titleHolder___K-BaQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchBar\":\"SearchBar___+5GCj\",\"searchInput\":\"searchInput___9NHrv\",\"selectionInfo\":\"selectionInfo___WJlkI\",\"refetchButton\":\"refetchButton___+lKs3\",\"basketDropdown\":\"basketDropdown___FQhLF\",\"trashDropdown\":\"trashDropdown___vPrki\",\"sortDropdown\":\"sortDropdown___zqfN0\",\"faceIcon\":\"faceIcon___-NYwO\",\"faceIconTooltip\":\"faceIconTooltip___SNiSI\",\"TooltipSlider\":\"TooltipSlider___Lbqm-\",\"inputImgHolder\":\"inputImgHolder___pFhsw\",\"inputImgStyle\":\"inputImgStyle___A8lZY\",\"inputImgCloseIcon\":\"inputImgCloseIcon___6Sr1x\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"faceSearchFloatingWindow\":\"faceSearchFloatingWindow___TFCfQ\",\"faceSearchDiv\":\"faceSearchDiv___e0a1E\",\"faceDeviceView\":\"faceDeviceView___0KUsH\",\"line\":\"line___VjlA4\",\"clickPicBtn\":\"clickPicBtn___afyea\",\"browseBtn\":\"browseBtn___cAbse\",\"noCameraAccessTxt\":\"noCameraAccessTxt___Yp2Cz\",\"imageHolder\":\"imageHolder___UnzXb\",\"fileInput\":\"fileInput___gtDC9\",\"requestPermissionBtn\":\"requestPermissionBtn___vUG1J\",\"filters\":\"filters___nckk5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AdminNavBar\":\"AdminNavBar___fBmx4\",\"navRoutes\":\"navRoutes___U0WO1\",\"logoIcon\":\"logoIcon___n0q6Z\",\"navActions\":\"navActions___Ctm0g\",\"notificationsDropdown\":\"notificationsDropdown___xGJm0\",\"active\":\"active___AZMYT\",\"dropdown\":\"dropdown___g6xUg\",\"dropdown_template\":\"dropdown_template___w8Qu6\",\"dropdown_icon\":\"dropdown_icon___9H8Fu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"pageWrapper___RYD8m\",\"filtersContent\":\"filtersContent___Z7AAM\",\"foldableContainer\":\"foldableContainer___PbgwC\",\"filterChildren\":\"filterChildren___N1dVD\",\"pageContent\":\"pageContent___K1cT0\",\"shimmer\":\"shimmer___gmBV0\",\"filtersWrapper\":\"filtersWrapper___Vl4Fh\",\"tags\":\"tags___H6pge\",\"actions\":\"actions___ellJH\",\"pagerWrapper\":\"pagerWrapper___7Vxrt\",\"searchBar\":\"searchBar___GV-TR\",\"pageActions\":\"pageActions___lO1rX\",\"Select\":\"Select___r0YeZ\"};","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 688;","import * as React from 'react';\n\nfunction SvgArchiveBox(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgArchiveBox;\n","import * as React from 'react';\n\nfunction SvgArrowCounterClockwise(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgArrowCounterClockwise;\n","import * as React from 'react';\n\nfunction SvgArrowsClockwise(props: React.SVGProps) {\n return (\n \n \n \n \n \n );\n}\n\nexport default SvgArrowsClockwise;\n","import * as React from 'react';\n\nfunction SvgDropdownArrow(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgDropdownArrow;\n","import * as React from 'react';\n\nfunction SvgBrowser(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgBrowser;\n","import * as React from 'react';\n\nfunction SvgCaretDown(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgCaretDown;\n","import * as React from 'react';\n\nfunction SvgCaretLeft(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgCaretLeft;\n","import * as React from 'react';\n\nfunction SvgCaretRight(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgCaretRight;\n","import * as React from 'react';\n\nfunction SvgCheckboxChecked(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgCheckboxChecked;\n","import * as React from 'react';\n\nfunction SvgCheckboxEmpty(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgCheckboxEmpty;\n","import * as React from 'react';\n\nfunction SvgChecks(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgChecks;\n","import * as React from 'react';\n\nfunction CloudArrowUp(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default CloudArrowUp;\n","import * as React from 'react';\n\nfunction SvgCopy(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgCopy;\n","import * as React from 'react';\n\nfunction SvgCrop(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgCrop;\n","import * as React from 'react';\n\nfunction SvgDownloadSimple(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgDownloadSimple;\n","import * as React from 'react';\n\nfunction SvgEye(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgEye;\n","import * as React from 'react';\n\nfunction SvgFile(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgFile;\n","import * as React from 'react';\n\nfunction SvgFileArrowDown(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgFileArrowDown;\n","import * as React from 'react';\n\nfunction SvgFolderPlus(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgFolderPlus;\n","import * as React from 'react';\n\nfunction SvgGear(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgGear;\n","import * as React from 'react';\n\nfunction SvgHash(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgHash;\n","import * as React from 'react';\n\nfunction SvgImageSquare(props: React.SVGProps) {\n return (\n \n \n \n \n \n );\n}\n\nexport default SvgImageSquare;\n","import * as React from 'react';\n\nfunction SvgInfo(props: React.SVGProps) {\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport default SvgInfo;\n","import * as React from 'react';\n\nfunction SvgKey(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgKey;\n","import * as React from 'react';\n\nfunction SvgListBullets(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgListBullets;\n","import * as React from 'react';\n\nfunction SvgMagnifyingGlass(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgMagnifyingGlass;\n","import * as React from 'react';\n\nfunction SvgMagnifyingGlassMinus(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgMagnifyingGlassMinus;\n","import * as React from 'react';\n\nfunction SvgMagnifyingGlassPlus(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgMagnifyingGlassPlus;\n","import * as React from 'react';\n\nfunction SvgMusicNotes(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgMusicNotes;\n","import * as React from 'react';\n\nfunction SvgPanel(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgPanel;\n","import * as React from 'react';\n\nfunction SvgPencil(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgPencil;\n","import * as React from 'react';\n\nfunction SvgPencilSimple(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgPencilSimple;\n","import * as React from 'react';\n\nfunction SvgPlayBox(props: React.SVGProps) {\n return (\n \n \n \n \n \n \n );\n}\n\nexport default SvgPlayBox;\n","import * as React from 'react';\n\nfunction SvgPlus(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgPlus;\n","import * as React from 'react';\n\nfunction SvgPuzzlePiece(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgPuzzlePiece;\n","import * as React from 'react';\n\nfunction SvgSlidersHorizontal(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgSlidersHorizontal;\n","import * as React from 'react';\n\nfunction SvgSquaresFour(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgSquaresFour;\n","import * as React from 'react';\n\nfunction SvgStack(props: React.SVGProps) {\n return (\n \n \n \n \n \n );\n}\n\nexport default SvgStack;\n","import * as React from 'react';\n\nfunction SvgTrash(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgTrash;\n","import * as React from 'react';\n\nfunction SvgTrashSimple(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgTrashSimple;\n","import * as React from 'react';\n\nfunction SvgUser(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgUser;\n","import * as React from 'react';\n\nfunction SvgUserCircle(props: React.SVGProps) {\n return (\n \n \n \n \n \n );\n}\n\nexport default SvgUserCircle;\n","import * as React from 'react';\n\nfunction SvgUsers(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgUsers;\n","import * as React from 'react';\n\nfunction SvgVideoCamera(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgVideoCamera;\n","import * as React from 'react';\n\nfunction SvgWarningCircle(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgWarningCircle;\n","import * as React from 'react';\n\nfunction SvgWrench(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgWrench;\n","import * as React from 'react';\n\nfunction SvgX(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgX;\n","import * as React from 'react';\n\nfunction SvgArrowDownCircle(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgArrowDownCircle;\n","import * as React from 'react';\n\nfunction SvgArrowLeftCircle(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgArrowLeftCircle;\n","import * as React from 'react';\n\nfunction SvgArrowUpCircle(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgArrowUpCircle;\n","import * as React from 'react';\n\nfunction SvgBell(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\nexport default SvgBell;\n","import * as React from 'react';\n\nfunction SvgRadioButtonUnchecked(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default SvgRadioButtonUnchecked;\n","import * as React from 'react';\n\nfunction SvgRadioButtonChecked(props: React.SVGProps) {\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport default SvgRadioButtonChecked;\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { Bell } from 'src/common/icons';\nimport styles from './SystemAlert.module.scss';\n\n// TODO: Replace with real icons\n\nconst Check = () => ;\nconst Info = () => ;\nconst X = () => ;\nconst XCircle = () => ;\n\nconst iconsMapping = {\n success: Check,\n warning: Bell,\n danger: XCircle,\n info: Info,\n};\n\ntype miliseconds = number;\n\ntype SystemAlertProps = {\n id: string;\n variant: 'success' | 'warning' | 'danger' | 'info';\n timeout?: miliseconds;\n pauseOnHover?: boolean;\n onClose?: (id: string) => void;\n className?: string;\n};\n\nexport const SystemAlert: React.FC = ({\n id,\n variant,\n timeout,\n pauseOnHover,\n onClose,\n className,\n children,\n ...rest\n}) => {\n const hasTimeout = typeof timeout !== 'undefined' && timeout > 0;\n\n return (\n \n {React.createElement(iconsMapping[variant])}\n\n {children && {children}}\n\n {\n onClose?.(id);\n }}\n className={cn([styles.closeIcon])}\n >\n x\n \n\n {hasTimeout && (\n onClose?.(id)}\n />\n )}\n \n );\n};\n\nexport default SystemAlert;\n","import { SystemAlert } from './SystemAlert'\n\nexport default SystemAlert\n","import { Alert } from 'src/common/AlertManager';\nimport { atom } from 'jotai';\n\nexport const alertsAtom = atom([]);\nexport const alertsPushedStateAtom = atom(false);\n","import React, { useState, useContext, createContext, useCallback } from 'react';\nimport cn from 'classnames';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { useAtom } from 'jotai';\nimport SystemAlert from 'src/components/SystemAlert';\nimport { alertsAtom, alertsPushedStateAtom } from 'src/shared/alert';\n\nexport type Alert = {\n id?: string;\n type: 'success' | 'warning' | 'danger' | 'info';\n timeout?: number;\n message: string;\n\n linkUrl?: string;\n linkText?: string;\n linkStyle?: React.CSSProperties;\n style?: string;\n};\n\ntype AlertHelperFn = (\n message: string, \n payload?: Omit\n) => void;\n\nconst defaultLinkStyle: React.CSSProperties = {\n marginLeft:'4px',\n textDecoration: 'underline',\n color: '#2563eb', \n cursor: 'pointer'\n};\n\nconst AlertsWrapper: React.FC<{}> = () => {\n const [alerts, setAlerts] = useAtom(alertsAtom);\n const [isPushed] = useAtom(alertsPushedStateAtom);\n\n const removeAlert = (id: string) => {\n setAlerts((old) => [...old.filter((a) => a.id !== id)]);\n };\n\n const renderMessage = (alert: Alert) => {\n if (!alert.linkUrl) {\n return {alert.message};\n }\n\n const parts = alert.message.split('(link)');\n if (parts.length === 1) {\n return (\n <>\n {alert.message}\n \n {alert.linkText || 'Learn more'}\n \n \n );\n }\n\n return (\n <>\n {parts[0]}\n \n {alert.linkText || 'Learn more'}\n \n {parts[1]}\n \n );\n };\n\n return (\n
\n \n {alerts.map((e, i) => (\n \n \n {renderMessage(e)}\n \n \n ))}\n \n
\n );\n};\n\nconst useAlerts: () => {\n showWarning: AlertHelperFn;\n showAlert: AlertHelperFn;\n showSuccess: AlertHelperFn;\n showInfo: AlertHelperFn;\n changePosition: (pushedState: boolean) => void;\n} = () => {\n const [alerts, setAlerts] = useAtom(alertsAtom);\n const [isPushed, setIsPushed] = useAtom(alertsPushedStateAtom);\n const MAX_ALERTS_ON_STACK = 10;\n\n const showWarning: AlertHelperFn = (message, payload?) => {\n createAlert({ message, ...payload, type: 'warning', timeout: 5000 });\n };\n const showAlert: AlertHelperFn = (message, payload?) => {\n createAlert({ message, ...payload, type: 'danger', timeout: 5000 });\n };\n const showSuccess: AlertHelperFn = (message, payload?) => {\n createAlert({ message, ...payload, type: 'success', timeout: 5000 });\n };\n const showInfo: AlertHelperFn = (message, payload?) => {\n createAlert({ message, ...payload, type: 'info', timeout: 5000 });\n };\n\n const changePosition = (pushedState: boolean) => {\n setIsPushed(pushedState);\n };\n\n const createAlert = (alert: Alert) => {\n if (!alert.hasOwnProperty('id')) {\n alert = { ...alert, id: `${new Date().valueOf()}-${Math.ceil(Math.random() * 10000)}` };\n setAlerts((old) => [alert, ...old].slice(0, MAX_ALERTS_ON_STACK));\n } else {\n setAlerts((old) => [...old.filter((a) => a.id !== alert.id)]);\n setTimeout(() => setAlerts((old) => [alert, ...old].slice(0, MAX_ALERTS_ON_STACK)), 0);\n }\n };\n \n const removeAlert = (id: string) => {\n setAlerts((old) => [...old.filter((a) => a.id !== id)]);\n };\n return { showWarning, showAlert, showSuccess, showInfo, changePosition };\n};\n\nexport { AlertsWrapper, useAlerts };","export function CriticalErrorFallback() {\n return (\n
\n Unexpected error occured. Try refreshing page or come back later.\n
\n );\n}\n","import { useAuthHeader } from 'react-auth-kit';\n\nexport function useAccessToken() {\n const authHeader = useAuthHeader();\n return authHeader();\n}\n","export const config = {\n env: process.env.REACT_APP_ENV,\n //apiUrl: process.env.REACT_APP_API_URL,\n cdnUrl: process.env.REACT_APP_CDN_URL,\n hostUrl: process.env.REACT_APP_HOST,\n sentryDsn: process.env.REACT_APP_SENTRY_DSN,\n sentryRelease: process.env.REACT_APP_SENTRY_RELEASE,\n JWTExpiration: process.env.REACT_APP_JWT_EXPIRATION,\n filespinLoader: process.env.REACT_APP_FILESPIN_LOADER ?? '',\n notificationsRefetchInterval: parseInt(process.env.REACT_APP_NOTIFICATION_REFETCH_INTERVAL ?? '10000'),\n defaultSchemaId: 0,\n};\n","import { UseQueryOptions } from 'react-query';\nimport { CustomQueryOptions, FetchError, FetchResult } from 'src/types/TApiQueries';\nimport { addSentryApiBreadcrumb } from 'src/utils/sentry';\n// import { isErrorResponseResult } from './errorHandlers';\n\ntype ResponseTransformer = 'json' | 'blob' | 'text';\n\nconst refetchInterval = 1 * 60 * 60 * 1000; // one minute\n\nexport async function getFetchResult(\n response: Response,\n transformer?: ResponseTransformer,\n): Promise> {\n if (response.ok) {\n if (response.status === 202 || response.status === 204) return response as any;\n if (transformer === 'blob') return (await response.blob()) as any;\n if (transformer === 'text') return (await response.text()) as any;\n return await response.json();\n } else {\n const contentType = response.headers.get('content-type');\n let error = 'Unknown Error';\n if (contentType && contentType.includes('application/json')) {\n error = await response.json();\n }\n const message = `Request to \"${response.url}\" failed with ${response.status}`;\n return { message, error, status: response.status, url: response.url, statusText: response.statusText };\n }\n}\n\nexport async function performFetchWithLogging(\n url: string,\n requestInit?: RequestInit,\n responseTransformer?: ResponseTransformer,\n): Promise> {\n try {\n const response = await fetch(url, requestInit);\n const result = await getFetchResult(response, responseTransformer);\n\n // addSentryApiBreadcrumb({\n // url,\n // response,\n // errorResult: isErrorResponseResult(result) ? result : undefined,\n // requestInit,\n // });\n\n return result;\n } catch (error) {\n // addSentryApiBreadcrumb({\n // url,\n // requestInit,\n // error: error as Error,\n // });\n throw error;\n }\n}\n\nexport function getQueryString({ url, query = {} }: { url: string; query?: {} }): string {\n let composedUrl = new URL(url);\n let params = Object.entries(query)\n .filter(([k, v]) => v !== null && v !== '' && typeof v !== 'undefined')\n .map(([k, v]) => [String(k), String(v)]);\n composedUrl.search = new URLSearchParams(params).toString();\n\n return composedUrl.toString();\n}\n\nexport function getStandardHeaders(accessToken?: string) {\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n };\n\n if (accessToken) {\n return {\n ...headers,\n Authorization: accessToken,\n };\n }\n\n return headers;\n}\n\nexport function getUploadHeaders(accessToken?: string) {\n const headers: HeadersInit = {\n Accept: 'application/json',\n };\n\n if (accessToken) {\n return {\n ...headers,\n Authorization: accessToken,\n };\n }\n\n return headers;\n}\n\nexport function mergeQueryOptions(customOptions?: CustomQueryOptions, options?: UseQueryOptions) {\n const queryOptions = {\n ...options,\n ...customOptions,\n };\n\n if (customOptions?.shouldRefetch) {\n queryOptions.refetchInterval = refetchInterval;\n }\n\n return queryOptions;\n}\n","import { ErrorResponseResult, FetchError, FetchResult } from 'src/types/TApiQueries';\n\nexport function queryFnFetchErrorWrapper(\n fetchFn: (...params: TParams) => Promise>,\n) {\n return async function (...params: Parameters) {\n try {\n const result = await fetchFn(...params);\n\n if (isErrorResponseResult(result)) {\n if (result.status === 401 && window.location.pathname !== '/login') {\n localStorage.removeItem('fs.auth.');\n window.location.reload();\n }\n throw result;\n }\n\n return result;\n } catch (error) {\n if (error instanceof Error || isErrorResponseResult(error)) {\n throw error;\n } else {\n throw new Error('unknown api error');\n }\n }\n };\n}\n\nexport function isErrorResponseResult(fetchResult: FetchResult): fetchResult is ErrorResponseResult {\n return fetchResult.hasOwnProperty('error') && fetchResult.hasOwnProperty('status');\n}\n\nexport function throwFetchError(error: FetchError | null) {\n if (isErrorResponseResult(error)) {\n throw new Error(error.message);\n }\n throw error;\n}\n","export const queryNames = {\n search: 'search',\n asset: 'asset',\n assetVision: 'assetVision',\n collection: 'collection',\n schema: 'schema',\n settings: 'settings',\n userManagement: 'userManagement',\n user: 'user',\n activate: 'activate',\n notification: 'notification',\n substitution: 'substitution'\n};\n","// import * as Sentry from '@sentry/react';\nimport { useMemo } from 'react';\nimport { UseQueryOptions, useQuery } from 'react-query';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { CustomQueryOptions, FetchError } from 'src/types/TApiQueries';\nimport { getAllNotifications } from '../functions/notificationsApi';\nimport { queryFnFetchErrorWrapper, throwFetchError } from '../utils/errorHandlers';\nimport { mergeQueryOptions } from '../utils/helpers';\nimport { queryNames } from '../utils/queryNames';\n\nexport const useAllNotificationsQuery = (\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) => {\n/*\n return {\n isLoading:false,\n refetch: () => {},\n data: {\n notifications: [],\n },\n isRefetching:false,\n }\n*/\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const queryFn = useMemo(() => queryFnFetchErrorWrapper(() => getAllNotifications(accessToken)), [accessToken]);\n\n const query = useQuery([queryNames.notification, 'all'], queryFn, actualQueryOptions);\n\n\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching notifications', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n\n return query;\n\n};\n","import { FetchResult, NotificationsResponse } from 'src/types/TApiQueries';\nimport { config } from 'src/utils/config';\nimport { performFetchWithLogging, getStandardHeaders } from '../utils/helpers';\n\nexport async function getAllNotifications(accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/user/notifications`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\nexport async function deleteNotifications(notifications: number[], accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/user/notifications`;\n\n const payload = JSON.stringify(notifications);\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n","import cn from 'classnames';\nimport * as React from 'react';\nimport styles from './Loader.module.scss';\n\ntype LoaderProps = {\n size?: 'small' | 'large';\n className?: string;\n color?: string;\n};\n\nexport const Loader: React.FC = ({ size = 'large', className, color, ...rest }) => {\n return (\n
\n \n
\n );\n};\n\nexport default Loader;\n","import { Loader } from './Loader'\n\nexport default Loader\n","import { useEffect, RefObject } from 'react';\n\nconst useOutsideClick = (ref: RefObject, callback: Function) => {\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (!ref.current?.contains(e.target as HTMLElement)) {\n callback();\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, callback]);\n};\n\nexport default useOutsideClick;\n","import { useMemo } from 'react';\nimport { useMutation, UseMutationOptions, useQueryClient } from 'react-query';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { FetchError, NotificationsResponse } from 'src/types/TApiQueries';\nimport { TNotification } from 'src/types/TNotification';\nimport { deleteNotifications } from '../functions/notificationsApi';\nimport { queryFnFetchErrorWrapper } from '../utils/errorHandlers';\nimport { queryNames } from '../utils/queryNames';\n\nexport const useDeleteNotificationsMutation = (mutationOptions?: UseMutationOptions) => {\n const accessToken = useAccessToken();\n const queryClient = useQueryClient();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper((data: number[]) => deleteNotifications(data, accessToken)),\n [accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, deletedNotifications, ...args) => {\n queryClient.setQueryData([queryNames.notification, 'all'], (currentData: any) => {\n const { notifications } = currentData;\n\n const newNotifications = notifications.filter(\n (notification: TNotification) => !deletedNotifications.includes(notification.id),\n );\n\n return {\n ...currentData,\n notifications: newNotifications,\n };\n });\n\n mutationOptions?.onSuccess?.(result, deletedNotifications, ...args);\n },\n });\n};\n","import cn from 'classnames';\nimport * as React from 'react';\nimport ReactTooltip from 'react-tooltip';\nimport Loader from '../Loader';\nimport styles from './Button.module.scss';\nimport { v4 as uuidv4 } from 'uuid';\n\ntype ButtonProps = {\n className?: string;\n type?: 'button' | 'submit' | 'reset';\n mode?: 'primary' | 'secondary' | 'tertiary' | 'accept' | 'decline' | 'flat';\n size?: 'small' | 'large';\n outlined?: boolean;\n loading?: boolean;\n disabled?: boolean;\n onClick?: (event: React.MouseEvent) => void;\n icon?: React.ReactNode;\n tooltip?: string;\n datatest?:string\n};\n\nexport const Button: React.FC = ({\n children,\n className,\n type = 'button',\n mode = 'primary',\n size = 'large',\n outlined,\n loading,\n disabled,\n icon,\n onClick = () => null,\n tooltip,\n datatest,\n ...rest\n}) => {\n const uuid = uuidv4();\n\n return (\n \n {loading && (\n \n \n \n )}\n {icon && {icon}}\n {children && {children}}\n {tooltip && }\n \n );\n};\n\nexport default Button;\n","import { Button } from './Button';\n\nexport default Button;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './Notifications.module.scss';\nimport messages from './messages';\nimport { Bell, X } from 'src/common/icons';\nimport Dropdown from '../Dropdown';\nimport { TNotification } from 'src/types/TNotification';\nimport moment from 'moment';\nimport { useAllNotificationsQuery } from 'src/api/queries/notificationQueries';\nimport Loader from '../Loader';\nimport useOutsideClick from 'src/hooks/useOutsideClick';\nimport { useHistory } from 'react-router-dom';\nimport { useDeleteNotificationsMutation } from 'src/api/mutations/notificationMutations';\nimport { config } from 'src/utils/config';\nimport Button from '../Button';\n\ntype NotificationsProps = {};\n\nexport const Notifications = (props: NotificationsProps) => {\n const history = useHistory();\n\n const deleteNotificationsMutation = useDeleteNotificationsMutation();\n\n const notificationsRef = React.useRef(null);\n const [notificationsExpanded, setNotificationsExpanded] = React.useState(false);\n\n const { isLoading, data, refetch, isRefetching } = useAllNotificationsQuery(undefined, {\n refetchIntervalInBackground: true,\n refetchInterval: notificationsExpanded ? false : config.notificationsRefetchInterval,\n });\n\n const hasNewNotifications = data?.notifications.length > 0;\n\n const readNotifications = data?.notifications?.filter(\n (notification: TNotification) => notification.disposal === 'ON_READ',\n );\n const ackNotifications = data?.notifications?.filter(\n (notification: TNotification) => notification.disposal === 'ON_ACK',\n );\n\n const handleOnClickNotification = (notification: TNotification) => {\n if (!notification.url) return;\n\n if (notification.url.startsWith('/')) {\n history.push(notification.url);\n setNotificationsExpanded(false);\n return;\n }\n\n return window.open(notification.url, '_blank');\n };\n\n const handleCloseNotification = () => {\n const { notifications } = data;\n\n const notificationsOnRead = (notifications as TNotification[])\n ?.filter((notification) => notification.disposal === 'ON_READ')\n .map((notification) => notification.id);\n\n if (notificationsOnRead.length === 0) return;\n\n deleteNotificationsMutation.mutateAsync(notificationsOnRead);\n };\n\n const handleClickNotificationsBell = () => {\n setNotificationsExpanded((prev) => !prev);\n };\n\n const handleDimissNotification = (notification: TNotification) => {\n deleteNotificationsMutation.mutateAsync([notification.id]);\n };\n\n const handleDismissAckNotifications = () =>\n deleteNotificationsMutation.mutateAsync(ackNotifications.map((notification: TNotification) => notification.id));\n\n useOutsideClick(notificationsRef, () => setNotificationsExpanded(false));\n\n React.useEffect(() => {\n if (notificationsExpanded && !data) {\n refetch();\n }\n\n if (!notificationsExpanded && !isRefetching && !isLoading) {\n handleCloseNotification();\n }\n }, [notificationsExpanded]);\n\n React.useEffect(() => {\n if (isRefetching) {\n console.log('refetching!');\n }\n }, [isRefetching]);\n\n return (\n
\n \n {notificationsExpanded && (\n
\n {(isLoading || isRefetching) && (\n
\n

Loading Notifications...

\n \n
\n )}\n {!isLoading && !isRefetching && (\n <>\n {data?.notifications?.length === 0 &&

No Notifications

}\n {ackNotifications.length > 0 &&

MUST ACKNOWLEDGE

}\n {ackNotifications.length > 1 && (\n
\n \n
\n )}\n {ackNotifications?.map((notification: TNotification) => (\n
\n

handleOnClickNotification(notification)}>\n {notification.message}\n {moment(notification.timestamp).fromNow()}\n

\n\n }\n size=\"small\"\n mode=\"flat\"\n onClick={() => handleDimissNotification(notification)}\n />\n
\n ))}\n {readNotifications.length > 0 &&

INFO

}\n {readNotifications?.map((notification: TNotification) => (\n handleOnClickNotification(notification)}\n >\n

\n {notification.message}\n {moment(notification.timestamp).fromNow()}\n

\n
\n ))}\n \n )}\n
\n )}\n \n );\n};\n\nexport default Notifications;\n","import { Notifications } from './Notifications'\n\nexport default Notifications\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './Badge.module.scss';\nimport messages from './messages';\n\ntype BadgeProps = {\n className?: string;\n};\n\nexport const Badge: React.FC = ({ children, className, ...rest }) => {\n return {children};\n};\n\nexport default Badge;\n","import { Badge } from './Badge'\n\nexport default Badge\n","import { FetchResult } from 'src/types/TApiQueries';\nimport { CollectionResponse, AllCollectionsResponse } from 'src/types/TCollection';\nimport { config } from 'src/utils/config';\nimport { getStandardHeaders, performFetchWithLogging } from '../utils/helpers';\n\nexport async function getCollection(\n accessToken: string,\n collectionId?: number,\n): Promise> {\n const url = collectionId\n ? `${config.hostUrl}/api/v1/assetcollection/${collectionId}?load_assets=y`\n : `${config.hostUrl}/api/v1/assetcollection?load_assets=y`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\nexport async function getAllCollections(accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assetcollections`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n \nexport type CollectionQuery = {\n keyword?: string;\n last_update_range?: {\n start?: string;\n end?: string;\n };\n private_only?: boolean;\n sort_by?: string[];\n offset?: number;\n limit?: number;\n};\n\nexport async function searchCollections(accessToken: string, query?: CollectionQuery) {\n const url = `${config.hostUrl}/api/v1/assetcollections`;\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: JSON.stringify(query),\n });\n}\n\nexport type CreateCollectionData = {\n name: string;\n description?: string;\n group_access?: boolean;\n};\n\nexport async function createCollection(\n accessToken: string,\n data: CreateCollectionData,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assetcollection`;\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport type DuplicateCollectionData = {\n source_id: number;\n name?: string;\n description?: string;\n group_access?: boolean;\n};\n\nexport async function duplicateCollection(\n accessToken: string,\n data: DuplicateCollectionData,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assetcollection`;\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\n// export async function updateCollection(\n// \taccessToken: string,\n// \tdata: string[],\n// \tcollectionId?: number,\n// ): Promise> {\n// \tconst url = collectionId ? `${config.hostUrl}/api/v1/collection/${collectionId}` : `${config.hostUrl}/api/v1/collection`;\n// \tconst payload = JSON.stringify(data);\n\n// \treturn performFetchWithLogging(url, {\n// \t\tmethod: 'PUT',\n// \t\theaders: getStandardHeaders(accessToken),\n// \t\tcredentials: 'include',\n// \t\tbody: payload,\n// \t});\n// }\n\nexport async function patchCollection(\n accessToken: string,\n data: { name?: string; additions?: string[]; deletions?: string[] },\n collectionId?: number,\n): Promise> {\n const url = collectionId ? `${config.hostUrl}/api/v1/assetcollection/${collectionId}` : `${config.hostUrl}/api/v1/assetcollection`;\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(url, {\n method: 'PATCH',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function patchCollections(\n accessToken: string,\n data: { ids: number[]; name?: string; additions?: string[]; deletions?: string[] },\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assetcollection`;\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(url, {\n method: 'PATCH',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function getCollectionDownloadUrl(collectionId: number, accessToken: string) {\n const url = `${config.hostUrl}/api/v1/assetcollection/${collectionId}/download?as_url=y`;\n\n return performFetchWithLogging(\n url,\n {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n },\n 'text',\n );\n}\n\nexport function deleteCollection(collectionId: number, accessToken: string) {\n const url = `${config.hostUrl}/api/v1/assetcollection/${collectionId}`;\n\n return performFetchWithLogging(url, {\n method: 'DELETE',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n unknownError: {\n id: 'system.errorMessages.unknownError',\n defaultMessage: 'Something went wrong, please try again.',\n },\n});\n","import { find } from 'lodash';\nimport { useIntl } from 'react-intl';\nimport errorMessages from 'src/common/errorMessages';\n\nconst useErrorMessages = () => {\n const { formatMessage } = useIntl();\n\n const getErrorMessage = (errorKey: string) => {\n const errorMessage = find(errorMessages, { id: errorKey });\n\n return formatMessage(errorMessage || errorMessages.unknownError);\n };\n\n return {\n getErrorMessage,\n };\n};\n\nexport default useErrorMessages;\n","import { useMemo } from 'react';\nimport { useMutation, UseMutationOptions, useQuery, useQueryClient } from 'react-query';\nimport { queryFnFetchErrorWrapper } from '../utils/errorHandlers';\nimport { AuthTokenRequest, AuthTokenResponse, FetchError } from 'src/types/TApiQueries';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport {\n createCollection,\n deleteCollection,\n duplicateCollection,\n DuplicateCollectionData,\n patchCollection,\n patchCollections,\n} from 'src/api/functions/collectionsApi';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { AllCollectionsResponse } from 'src/types/TCollection';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\n\nexport function useCollectionMutation(\n collectionId: number,\n mutationOptions?: UseMutationOptions,\n) {\n const queryClient = useQueryClient();\n const accessToken = useAccessToken();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper((data: any) => patchCollection(accessToken, data, collectionId)),\n [collectionId, accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, ...args) => {\n //queryClient.setQueryData([queryNames.collection, collectionId], result);\n\n queryClient.invalidateQueries([queryNames.collection, 'all']);\n\n // update local cache\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n}\n\nexport function useCollectionsMutation(mutationOptions?: UseMutationOptions) {\n const accessToken = useAccessToken();\n const queryClient = useQueryClient();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper((data: any) => patchCollections(accessToken, data)),\n [accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, ...args) => {\n // update local cache\n queryClient.invalidateQueries([queryNames.collection, 'all']);\n\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n}\n\nexport const useCreateCollectionMutation = (mutationOptions?: UseMutationOptions) => {\n const queryClient = useQueryClient();\n const accessToken = useAccessToken();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper((data: any) => createCollection(accessToken, data)),\n [accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, ...args) => {\n // update local cache\n\n const { data } = result;\n\n queryClient.setQueryData(\n [queryNames.collection, 'all'],\n (old: AllCollectionsResponse | undefined) => {\n if (!old) return old;\n\n old.data.collections.unshift(data);\n\n return old;\n },\n );\n\n //queryClient.invalidateQueries([queryNames.collection, 'all']);\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n};\n\nexport const useDuplicateCollectionMutation = (mutationOptions?: UseMutationOptions) => {\n const accessToken = useAccessToken();\n const queryClient = useQueryClient();\n\n const { showAlert, showSuccess } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper((data: DuplicateCollectionData) => duplicateCollection(accessToken, data)),\n [accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: (data, variables, ...args) => {\n if (mutationOptions?.onSuccess) {\n return mutationOptions?.onSuccess?.(data, variables, ...args);\n }\n\n queryClient.invalidateQueries([queryNames.collection, 'search']);\n showSuccess(`Successfully duplicated collection #${variables.source_id}`);\n\n //TODO: Implement a global search & pagination state handler\n window.location.reload();\n },\n onError: (error, ...args) => {\n showAlert(getErrorMessage(error.message));\n mutationOptions?.onError?.(error, ...args);\n },\n });\n};\n\nexport const useDeleteCollectionMutation = (\n collectionId: number,\n mutationOptions?: UseMutationOptions,\n) => {\n const queryClient = useQueryClient();\n const accessToken = useAccessToken();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper(() => deleteCollection(collectionId, accessToken)),\n [collectionId, accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (...args) => {\n queryClient.invalidateQueries([queryNames.collection, 'search']);\n mutationOptions?.onSuccess?.(...args);\n },\n });\n};\n","import { ReactNode } from 'react';\nimport ReactDOM from 'react-dom';\n\nexport const Portal = ({ children }: { children: ReactNode }) => {\n return typeof document === 'object' ? ReactDOM.createPortal(children, document.body) : null;\n};\n","import { createContext, useReducer } from 'react';\nimport { Portal } from 'src/common/Portal';\n\nexport enum ModalActionType {\n OPEN_MODAL = 'OPEN_MODAL',\n CLOSE_MODAL = 'CLOSE_MODAL',\n SET_COMPONENT = 'SET_COMPONENT',\n TOGGLE_MODAL = 'TOGGLE_MODAL',\n}\n\ntype ModalState = {\n visible: boolean;\n component?: React.ReactNode;\n};\n\ntype ModalAction = {\n type: ModalActionType;\n payload?: any;\n};\n\ntype ModalReducer = (state: ModalState, action: ModalAction) => ModalState;\n\nconst DEFAULT_STATE: ModalState = {\n visible: false,\n component: null,\n};\n\nconst reducer: ModalReducer = (state, action) => {\n switch (action.type) {\n case ModalActionType.OPEN_MODAL:\n return { ...state, visible: true, component: action.payload };\n case ModalActionType.CLOSE_MODAL:\n return { ...state, visible: false };\n case ModalActionType.SET_COMPONENT:\n return { ...state, component: action.payload };\n case ModalActionType.TOGGLE_MODAL:\n return { ...state, visible: !state.visible };\n default:\n return DEFAULT_STATE;\n }\n};\n\nexport const ModalContext = createContext<[ModalState, React.Dispatch]>([DEFAULT_STATE, () => {}]);\n\nconst ModalProvider = ({ children }: any) => {\n const [state, dispatcher] = useReducer(reducer, DEFAULT_STATE);\n\n return (\n \n {children}\n {state.visible && Portal({ children: state.component })}\n \n );\n};\n\nexport default ModalProvider;\n","import React, { useContext, useEffect } from 'react';\nimport { ModalActionType, ModalContext } from 'src/providers/ModalProvider';\n\nconst useModal = () => {\n const [state, dispatcher] = useContext(ModalContext);\n\n const { visible } = state;\n\n const toggleModal = () => dispatcher({ type: ModalActionType.TOGGLE_MODAL });\n const showModal = (modalComponent?: React.ReactNode) =>\n dispatcher({ type: ModalActionType.OPEN_MODAL, payload: modalComponent });\n\n const closeModal = () => dispatcher({ type: ModalActionType.CLOSE_MODAL });\n const setComponent = (component: React.ReactNode) =>\n dispatcher({ type: ModalActionType.SET_COMPONENT, payload: component });\n\n useEffect(() => {\n if (visible) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n }, [visible]);\n\n return {\n toggleModal,\n showModal,\n closeModal,\n visible,\n setComponent,\n };\n};\n\nexport default useModal;\n","import * as Yup from 'yup';\n\nconst CollectionSchema = Yup.object().shape({\n name: Yup.string().required('Name is required'),\n description: Yup.string().max(256),\n group_access: Yup.boolean(),\n});\n\nexport default CollectionSchema;\n","import React, { useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport styles from './BaseModal.module.scss';\nimport messages from './messages';\nimport { Portal } from 'src/common/Portal';\nimport { X } from 'src/common/icons';\nimport Button from '../Button';\nimport useModal from 'src/hooks/useModal';\n\nexport interface BaseModalProps {\n className?: string;\n containerStyle?: object;\n}\n\nexport const BaseModal: React.FC = ({ children, className, containerStyle }) => {\n const { closeModal } = useModal();\n\n const handleCloseModal = () => closeModal();\n\n return (\n
\n
\n
\n
\n \n
\n {children}\n
\n
\n );\n};\n\nexport default BaseModal;\n","import { BaseModal, BaseModalProps } from './BaseModal';\n\nexport default BaseModal;\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { CheckboxChecked, CheckboxEmpty, RadioChecked, RadioEmpty } from 'src/common/icons';\nimport { ForwardRefExoticComponent } from 'src/types/TForms';\nimport styles from './Checkbox.module.scss';\n\ntype CheckboxProps = {\n label?: string | number | React.ReactNode;\n onChange?: (value: React.ChangeEvent) => void;\n className?: string;\n datatest?:string\n radio?:boolean\n};\n\ntype PluralProps = ForwardRefExoticComponent<\n HTMLInputElement,\n React.InputHTMLAttributes & CheckboxProps\n>;\n\nexport const Checkbox: PluralProps = React.forwardRef(\n ({ label, checked, radio,datatest,className, disabled, required, name, onChange = () => null, ...rest }, ref) => (\n \n \n {checked ? radio?: : radio?:}\n \n \n {label && {label}}\n {required && '*'}\n \n ),\n);\n\nexport default Checkbox;\n","import { Checkbox } from './Checkbox';\n\nexport default Checkbox;\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { useEffect } from 'react';\n// import { AlertTriangle, Check, X } from 'src/common/icons';\nimport Button from '../Button';\nimport styles from './Input.module.scss';\nimport CloseCircle from 'src/common/icons/CloseCircle';\n\n// TODO: Replace with real icons\n\nconst AlertTriangle = ({ className, onClick }: { className?: string; onClick?: () => void }) => ;\nconst Check = ({ className }: { className: string }) => ;\nconst X = ({ className }: { className: string }) => ;\n\ntype InputProps = {\n placeholder?: string;\n type?: string;\n label?: string;\n icon?: React.ReactElement;\n limit?: number;\n error?: string;\n disabled?: boolean;\n editable?: boolean;\n showControls?: boolean;\n initialFocus?: boolean\n onChange?: (value: string) => void;\n onEnter?: (value: string) => void;\n onSuccess?: () => void;\n onCancel?: () => void;\n onLimitClick?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onKeyDown?: (key: string) => void;\n className?: string;\n value?: string | number;\n min?: number;\n max?: number;\n step?: number;\n variant?: 'primary' | 'secondary';\n datatest?:string\n};\n\nexport const Input: React.FC = ({\n placeholder = 'Start typing...',\n type = 'text',\n label,\n icon,\n limit,\n error = null,\n disabled = false,\n editable = false,\n showControls = false,\n initialFocus = false,\n onChange = () => {},\n onEnter = () => {},\n onSuccess = () => {},\n onCancel = () => {},\n onLimitClick = () => {},\n onFocus,\n onBlur,\n onKeyDown,\n className,\n value,\n min,\n max,\n step,\n children,\n variant = 'primary',\n datatest,\n ...rest\n}) => {\n const characterOverLimit = limit ? String(value).length > limit : false;\n const limitNumber = limit ? String(value).length - limit : undefined;\n const inputElement = React.useRef(null);\n\n useEffect(() => {\n if (initialFocus) {\n inputElement?.current?.focus();\n }\n }, []);\n\n const handleKeyDown = ({ key, target }: React.KeyboardEvent) => {\n if (onKeyDown) {\n onKeyDown(key);\n }\n if (key === 'Enter') {\n onEnter((target as HTMLInputElement).value);\n inputElement?.current?.blur();\n }\n };\n\n const handleOnChange = ({ target }: React.ChangeEvent) => {\n onChange(target.value);\n };\n\n return (\n
\n \n\n {children}\n\n {(editable || limit) && showControls && (\n
\n {editable && (\n \n }\n onClick={onSuccess}\n />\n }\n onClick={onCancel}\n />\n
\n )}\n\n {limit && (\n
\n \n {characterOverLimit && }\n {`${characterOverLimit ? `+${limitNumber}` : -limitNumber!}`}\n \n
\n )}\n
\n )}\n\n {error && (\n
\n \n {error}\n
\n )}\n
\n );\n};\n\nexport default Input;\n\n\n\n\n\n","import { Input } from './Input';\n\nexport default Input;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './Paper.module.scss';\nimport messages from './messages';\n\ntype PaperProps = {\n className?: string;\n};\n\nexport const Paper: React.FC = ({ children, className, ...rest }) => {\n return
{children}
;\n};\n\nexport default Paper;\n","import { Paper } from './Paper'\n\nexport default Paper\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './Textarea.module.scss';\nimport messages from './messages';\nimport { v4 as uuidv4 } from 'uuid';\n\ntype TextareaProps = {\n className?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n label?: string;\n value?: string;\n rows?: number;\n cols?: number;\n error?: string;\n disabled?: boolean;\n};\n\nexport const Textarea = ({\n className,\n value,\n onChange,\n rows,\n cols,\n placeholder,\n label,\n error,\n disabled,\n ...rest\n}: TextareaProps) => {\n const handleOnChange: React.ChangeEventHandler = (e) => onChange && onChange(e.target.value);\n\n const id = uuidv4();\n\n return (\n
\n \n \n {error && (\n
\n {error}\n
\n )}\n
\n );\n};\n\nexport default Textarea;\n","import { Textarea } from './Textarea'\n\nexport default Textarea\n","import { atom } from 'jotai';\n\nexport const selectedAssetsAtom = atom([]);\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './CreateCollectionModal.module.scss';\nimport messages from './messages';\nimport { useCreateCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport useModal from 'src/hooks/useModal';\nimport CollectionSchema from 'src/schemas/collection';\nimport BaseModal from '../BaseModal';\nimport Button from '../Button';\nimport Checkbox from '../Checkbox';\nimport Input from '../Input';\nimport Paper from '../Paper';\nimport Textarea from '../Textarea';\nimport { useState } from 'react';\nimport { useAtom } from 'jotai';\nimport { Trash } from 'src/common/icons';\nimport { selectedAssetsAtom } from 'src/shared/selectedAssets';\n\ntype CreateCollectionModalProps = {\n onCreateCollection?: (collection: any) => void;\n};\n\nexport const CreateCollectionModal = ({ onCreateCollection }: CreateCollectionModalProps) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [groupAccess, setGroupAccess] = useState(false);\n\n const { showSuccess, showAlert } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n const [selectedAssets, setSelectedAssets] = useAtom(selectedAssetsAtom);\n\n const { closeModal } = useModal();\n\n const createCollectionMutation = useCreateCollectionMutation({\n onSuccess: (result) => {\n showSuccess('Collection created successfully');\n closeModal();\n onCreateCollection && onCreateCollection(result);\n },\n onError: (error) => {\n showAlert(getErrorMessage(error.message));\n },\n });\n\n const isValid = React.useMemo(() => {\n try {\n CollectionSchema.validateSync({ name, description, group_access: groupAccess });\n return true;\n } catch (error) {\n return false;\n }\n }, [name, description, groupAccess]);\n\n const handleCreateCollection = () => {\n if (!isValid) return;\n\n createCollectionMutation.mutateAsync({\n name,\n description,\n group_access: groupAccess,\n assets: selectedAssets,\n });\n };\n\n return (\n \n

Create Collection

\n\n
\n \n setName(value)}\n className={styles.modalInput}\n data-test=\"collection-name-input\"\n />\n\n setDescription(value)}\n data-test=\"collection-description-input\"\n />\n\n setGroupAccess(!groupAccess)}\n className={styles.formGroup}\n data-test=\"collection-group-access-checkbox\"\n />\n \n\n {selectedAssets.length > 0 && (\n \n

You have selected {selectedAssets.length} assets to add to this collection.

\n
\n )}\n
\n\n
\n \n \n Create Collection\n \n
\n
\n );\n};\n\nexport default CreateCollectionModal;\n","import { CreateCollectionModal } from './CreateCollectionModal'\n\nexport default CreateCollectionModal\n","import { useState } from 'react';\n\ntype TInitialState = {\n [key: string]: any;\n};\n\nconst useForm = (initialState: TInitialState) => {\n const [form, setForm] = useState(initialState);\n const [formErrors, setFormErrors] = useState(\n Object.keys(initialState).reduce((acc, key) => ({ ...acc, [key]: undefined }), {}),\n );\n\n const handleChange = (field: string, value: any) => {\n setForm({\n ...form,\n [field]: value,\n });\n };\n\n const setFieldError = (field: string, error: string | undefined) => {\n setFormErrors((currentErrors: any) => ({\n ...currentErrors,\n [field]: error,\n }));\n };\n\n const clearFieldError = (field: string) => setFieldError(field, undefined);\n\n const clearFormErrors = () =>\n setFormErrors(Object.keys(initialState).reduce((acc, key) => ({ ...acc, [key]: undefined }), {}));\n\n return {\n form,\n formErrors,\n setForm,\n handleChange,\n setFieldError,\n clearFieldError,\n clearFormErrors,\n };\n};\n\nexport default useForm;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './ConfirmDuplicateCollectionModal.module.scss';\nimport messages from './messages';\nimport { useHistory } from 'react-router-dom';\nimport { useDuplicateCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useForm from 'src/hooks/useForm';\nimport useModal from 'src/hooks/useModal';\nimport { ValidationError } from 'yup';\nimport BaseModal from '../BaseModal';\nimport Button from '../Button';\nimport Input from '../Input';\nimport Paper from '../Paper';\nimport Textarea from '../Textarea';\nimport CollectionSchema from 'src/schemas/collection';\nimport Checkbox from '../Checkbox';\n\ntype ConfirmDuplicateCollectionModalProps = {\n sourceId: number;\n title: string;\n name?: string;\n groupAccess?: boolean;\n description?: string;\n};\n\nexport const ConfirmDuplicateCollectionModal: React.FC = ({\n sourceId,\n name = '',\n description = '',\n groupAccess = false,\n title,\n}: ConfirmDuplicateCollectionModalProps) => {\n const { showSuccess } = useAlerts();\n const { form, handleChange, formErrors, clearFormErrors, setFieldError } = useForm({\n name,\n description,\n groupAccess,\n });\n\n const { closeModal } = useModal();\n const history = useHistory();\n\n const duplicateCollectionMutation = useDuplicateCollectionMutation({\n onSuccess: () => {\n showSuccess('Successfully created a collection from basket.');\n closeModal();\n history.push('/collections');\n },\n });\n\n const handleCreateCollection = () => {\n clearFormErrors();\n try {\n CollectionSchema.validateSync(form, { abortEarly: false });\n\n duplicateCollectionMutation.mutateAsync({\n source_id: sourceId,\n name: form.name,\n description: form.description,\n group_access: form.groupAccess,\n });\n } catch (error) {\n if (error instanceof ValidationError) {\n error.inner.forEach((err) => {\n if (!err.path) return;\n\n setFieldError(err.path, err.message);\n });\n }\n }\n };\n\n return (\n \n

{title}

\n \n handleChange('name', value)}\n error={formErrors.name}\n variant=\"secondary\"\n placeholder=\"Collection's name...\"\n />\n\n handleChange('description', value)}\n error={formErrors.error}\n placeholder=\"Collection's description...\"\n />\n\n handleChange('groupAccess', !form.groupAccess)}\n className={styles.formGroup}\n />\n \n
\n \n \n
\n
\n );\n};\n\nexport default ConfirmDuplicateCollectionModal;\n","import { ConfirmDuplicateCollectionModal } from './ConfirmDuplicateCollectionModal'\n\nexport default ConfirmDuplicateCollectionModal\n","import React, { createContext, useContext, useEffect, useMemo, useReducer, useState } from 'react';\nimport cn from 'classnames';\nimport styles from './SearchFiltersSidebar.module.scss';\nimport messages from './messages';\nimport { CaretDown, CaretRight } from 'src/common/icons';\nimport Input from '../Input';\nimport Checkbox from '../Checkbox';\nimport Button from '../Button';\nimport { merge } from 'lodash';\n\ntype SearchTypes = 'text' | 'checkbox' | 'select' | 'date';\n\ninterface BaseFilterInput {\n type: SearchTypes;\n label?: string;\n placeholder?: string;\n initialValue?: any;\n}\n\nexport interface FilterInputNoKey extends BaseFilterInput {}\n\nexport interface FilterInputWithKey extends BaseFilterInput {\n key: string;\n}\n\nexport type SearchFilter = {\n title: string;\n key: string;\n inputs: FilterInputWithKey[] | FilterInputNoKey;\n};\n\ntype FoldableFilterProps = {\n title: string;\n};\n\ntype FilterInputProps = {\n input: FilterInputWithKey | FilterInputNoKey;\n filterKey: string;\n onFilterChange?: (key: string, value: any) => void;\n initialValue?: any;\n};\n\ntype SearchFiltersSidebarProps = {\n className?: string;\n filters: SearchFilter[];\n onApplyFilters?: (filters: { [key: string]: any }) => void;\n onFilterChange?: (key: string, value: any) => void;\n};\n\ntype SearchFiltersState = {\n [key: string]: any;\n};\n\nconst DEFAULT_STATE: SearchFiltersState = {};\n\nconst SearchFilterContext = createContext<[SearchFiltersState, React.Dispatch]>([\n DEFAULT_STATE,\n () => {},\n]);\n\nconst reducer = (state: SearchFiltersState, payload: SearchFiltersState) => {\n return merge({}, state, payload);\n};\n\nconst FoldableFilter: React.FC = ({ children, title }) => {\n const [isRevealed, setIsRevealed] = useState(true);\n\n return (\n
\n

setIsRevealed(!isRevealed)}>\n {isRevealed ? : } {title}\n

\n {isRevealed &&
{children}
}\n
\n );\n};\n\nconst FilterInput = ({ input, filterKey, onFilterChange, initialValue }: FilterInputProps) => {\n const { type, label, placeholder } = input;\n\n const [state, dispatcher] = useContext(SearchFilterContext);\n\n const handleOnChange = (value: any) => {\n if ((input as FilterInputWithKey).key) {\n const key = (input as FilterInputWithKey).key;\n\n dispatcher({ [filterKey]: { [key]: value } });\n\n return onFilterChange && onFilterChange(`${filterKey}.${(input as FilterInputWithKey).key}`, value);\n }\n\n dispatcher({ [filterKey]: value });\n\n return onFilterChange && onFilterChange(filterKey, value);\n };\n\n const inputValue = useMemo(() => {\n if ((input as FilterInputWithKey).key) {\n return state[filterKey]?.[(input as FilterInputWithKey).key];\n }\n\n return state[filterKey];\n }, [state]);\n\n useEffect(() => {\n if (initialValue) {\n handleOnChange(initialValue);\n }\n }, [initialValue]);\n\n switch (type) {\n case 'date':\n case 'text':\n return (\n \n );\n case 'checkbox':\n return (\n handleOnChange(e.target.checked)} />\n );\n }\n\n return null;\n};\n\nexport const SearchFiltersSidebar = ({\n className,\n filters,\n onApplyFilters,\n onFilterChange,\n ...rest\n}: SearchFiltersSidebarProps) => {\n const [state, dispatcher] = useReducer(reducer, DEFAULT_STATE);\n\n const handleApplyFilters = () => onApplyFilters && onApplyFilters(state);\n\n return (\n \n
\n {filters.map((filter, i) => (\n \n {filter.inputs instanceof Array ? (\n filter.inputs.map((input) => (\n \n ))\n ) : (\n \n )}\n \n ))}\n\n \n
\n
\n );\n};\n\nexport default SearchFiltersSidebar;\n","import { SearchFiltersSidebar } from './SearchFiltersSidebar'\n\nexport default SearchFiltersSidebar\n","export const humanFileSize = (bytes: number) => {\n let u,\n b = bytes,\n t = 1000;\n // eslint-disable-next-line\n ['', 'K', ...'MGTPEZY'].find((x) => ((u = x), (b /= t), b ** 2 < 1));\n return `${u ? (t * b).toFixed(1) : bytes} ${u}B`;\n};\n\nconst timeScalars = [1000, 60, 60, 24];\nconst timeUnits = ['ms', 's', 'm', 'h'];\n\nexport const humanDuration = (miliseconds: number) => {\n let timeScalarIndex = 0,\n scaledTime = miliseconds;\n\n while (scaledTime > timeScalars[timeScalarIndex]) {\n scaledTime /= timeScalars[timeScalarIndex++];\n }\n\n return `${scaledTime.toFixed(0)} ${timeUnits[timeScalarIndex]}`;\n};\n\nexport const formatSeconds = (seconds: number): string => {\n if (seconds < 60) {\n return `${seconds}s`;\n }\n\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = seconds % 60;\n\n if (hours > 0) {\n if (minutes === 0 && remainingSeconds === 0) {\n return `${hours}h`;\n } else if (remainingSeconds === 0) {\n return `${hours}h ${minutes}m`;\n }\n return `${hours}h ${minutes}m ${remainingSeconds}s`;\n } else if (minutes > 0) {\n if (remainingSeconds === 0) {\n return `${minutes}m`;\n }\n return `${minutes}m ${remainingSeconds}s`;\n }\n\n return `${remainingSeconds}s`;\n};","import React, { useMemo } from 'react';\nimport cn from 'classnames';\nimport styles from './FileUpload.module.scss';\nimport messages from './messages';\nimport { DropzoneOptions, FileRejection, useDropzone } from 'react-dropzone';\nimport { CloudArrowUp } from 'src/common/icons';\nimport { humanFileSize } from 'src/utils/transform';\nimport { useAlerts } from 'src/common/AlertManager';\n\ntype FileUploadProps = {\n className?: string;\n options?: DropzoneOptions;\n onDrop: (files: File[]) => void;\n};\n\nexport const FileUpload = ({ className, options, onDrop }: FileUploadProps) => {\n const { showAlert } = useAlerts();\n\n const onDropFile = (acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n if (rejectedFiles.length > 0) {\n // TODO: Improve error handling\n const [file] = rejectedFiles;\n showAlert(file.errors[0].message);\n }\n\n if (acceptedFiles.length > 0) {\n onDrop(acceptedFiles);\n }\n };\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: onDropFile,\n ...options,\n });\n\n const acceptedMedia = useMemo(() => {\n if (typeof options?.accept === 'string') {\n return options?.accept.split('/')[0];\n }\n\n if (options?.accept instanceof Array) {\n return options?.accept.map((accept) => accept.split('/')[0]).join(', ');\n }\n\n return options?.maxFiles === 1 ? 'file' : 'files';\n }, [options]);\n\n const acceptedFormats = useMemo(() => {\n if (typeof options?.accept === 'string') {\n return options?.accept.split('/')[1].replace('*', 'any');\n }\n\n if (options?.accept instanceof Array) {\n return options?.accept.map((accept) => accept.split('/')[1]).join(', ');\n }\n\n return 'any';\n }, [options]);\n\n return (\n
\n \n \n

\n Drag your {acceptedMedia} here or browse\n

\n
\n max size {humanFileSize(options?.maxSize as number)} - {acceptedFormats}\n
\n
\n );\n};\n\nexport default FileUpload;\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n collectionDeleted: {\n id: 'component.collectionRow.collectionDeleted',\n defaultMessage: 'Collection deleted',\n },\n});\n","import { config } from './config';\n\ntype GetThumbnailParams = {\n width: number;\n height: number;\n id: string;\n jwt: string;\n};\n\nexport const getThumbnailUrl = ({ width, height, id, jwt }: GetThumbnailParams) => {\n return `${config.cdnUrl}/api/v1/assets/${id}/conversions?resize=${width},${height}&_jwt=${jwt.replace('Bearer ', '')}`;\n};\n\nexport const isPreviewPlayable = (datatype: string) => {\n return ['video', 'audio'].includes(datatype.split('/')[0]);\n};\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './CollectionRow.module.scss';\nimport messages from './messages';\nimport { Collection } from 'src/types/TCollection';\nimport Button from '../Button';\nimport { Copy, FileArrowDown, Stack, Trash, User, UserCircle, Users } from 'src/common/icons';\nimport { Link, useHistory } from 'react-router-dom';\nimport moment from 'moment';\nimport { getThumbnailUrl } from 'src/utils/previews';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { getCollectionDownloadUrl } from 'src/api/functions/collectionsApi';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { formatMessage } from '@formatjs/intl';\nimport { useDeleteCollectionMutation, useDuplicateCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport { useIntl } from 'react-intl';\nimport SvgWrench from 'src/common/icons/Wrench';\nimport Pencil from 'src/common/icons/Pencil';\nimport { useAuthUser } from 'react-auth-kit';\nimport useModal from 'src/hooks/useModal';\nimport ConfirmDuplicateCollectionModal from '../ConfirmDuplicateCollectionModal';\n\ntype CollectionRowProps = {\n className?: string;\n collection: Collection;\n};\n\nexport const CollectionRow = ({ className, collection }: CollectionRowProps) => {\n const auth = useAuthUser();\n const userEmail = auth() ? auth()!.userEmail : '';\n const { id, name, assets, last_update, group_access, description } = collection;\n const history = useHistory();\n const accessToken = useAccessToken();\n const [isPreparingDownload, setIsPreparingDownload] = React.useState(false);\n const { formatMessage } = useIntl();\n const { showAlert, showSuccess } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n const duplicateCollectionMutation = useDuplicateCollectionMutation();\n const { showModal } = useModal();\n\n const handleGoToCollection = () => history.push(`/collection/${id}`);\n\n const handleDownloadCollection = async () => {\n if (isPreparingDownload) return;\n\n try {\n setIsPreparingDownload(true);\n const url: any = await getCollectionDownloadUrl(id, accessToken);\n\n if (url.status >= 400) {\n showAlert(`Download not available at the moment. Please try again later.`);\n setIsPreparingDownload(false);\n return;\n }\n\n window.open(url);\n setIsPreparingDownload(false);\n } catch (error) {\n showAlert(`Download not available at the moment. Please try again later.`);\n setIsPreparingDownload(false);\n } finally {\n setIsPreparingDownload(false);\n }\n };\n\n const deleteCollectionMutation = useDeleteCollectionMutation(id, {\n onSuccess: () => {\n showSuccess(formatMessage(messages.collectionDeleted));\n },\n onError: (error) => {\n showAlert(getErrorMessage(error.message));\n },\n });\n\n const handleDeleteCollection = () => deleteCollectionMutation.mutateAsync(undefined);\n\n const handleDuplicateCollection = () =>\n showModal(\n ,\n );\n\n return (\n
\n
\n {assets.length === 0 && }\n {assets.length > 0 && (\n \n )}\n\n
\n \n {name}\n \n\n {description &&

{description}

}\n
\n
\n\n
\n

{`${assets.length} ${assets.length > 1 ? 'assets' : 'asset'}`}

\n {/* TODO: Implement Collection User's Avatar */}\n {false && (\n
\n {new Array(5).fill(0).map((_, index) => (\n \n ))}\n
\n )}\n\n \n {group_access ? (\n <>\n \n Group\n \n ) : (\n <>\n \n Private\n \n )}\n \n\n

\n Updated
\n {moment(last_update).fromNow()}\n

\n
\n {/* \n
\n
\n
\n );\n};\n\nexport default CollectionRow;\n","import { CollectionRow } from './CollectionRow';\n\nexport default CollectionRow;\n","import { atom } from 'jotai';\n\nexport const layoutViewAtom = atom<'grid' | 'list'>('list');\n","import { useState, useEffect, Dispatch, SetStateAction } from 'react';\n\n// TODO: Mock this function for jest\n// TODO: To consider: pass allowed values also and check on init?\nexport function useLocalStorage(key: string, defaultValue: string): [string, Dispatch>] {\n const [value, setValue] = useState(localStorage.getItem(`fs.${key}`) ?? defaultValue);\n\n useEffect(() => {\n localStorage.setItem(`fs.${key}`, value);\n }, [value]);\n\n return [value, setValue];\n}\n","import { useAtom } from 'jotai';\nimport { useEffect } from 'react';\nimport { layoutViewAtom } from 'src/shared/layoutView';\nimport { useLocalStorage } from './useLocalStorage';\n\nconst useLayoutSwitcher = () => {\n const [layoutView, setLayoutView] = useAtom(layoutViewAtom);\n const [savedLayoutView, saveLayoutView] = useLocalStorage('dashboard.layout', 'list');\n\n const toggleLayoutView = () => {\n const layout = layoutView === 'list' ? 'grid' : 'list';\n setLayoutView(layout);\n saveLayoutView(layout);\n };\n\n useEffect(() => {\n setLayoutView(savedLayoutView as 'list' | 'grid');\n }, []);\n\n return { layoutView, toggleLayoutView, isLayoutGrid: layoutView === 'grid', isLayoutList: layoutView === 'list' };\n};\n\nexport default useLayoutSwitcher;\n","import cn from 'classnames';\nimport * as React from 'react';\nimport styles from './Shimmer.module.scss';\n\ntype ShimmerProps = {\n className?: string;\n w: string | number;\n h: string | number;\n radius?: string | number;\n};\n\nexport const Shimmer: React.FC = ({ className, w, h, radius = '.5rem', ...rest }) => {\n return (\n \n );\n};\n\nexport default Shimmer;\n","import { Shimmer } from './Shimmer'\n\nexport default Shimmer\n","import * as React from 'react';\nimport cn from 'classnames';\n\nimport Shimmer from '../Shimmer';\n\nimport styles from './ListingCardShimmer.module.scss';\nimport messages from './messages';\n\nexport const ListingCardShimmer: React.FC<{}> = ({ ...rest }) => {\n return (\n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n
\n );\n};\n\nexport default ListingCardShimmer;\n","import { ListingCardShimmer } from './ListingCardShimmer'\n\nexport default ListingCardShimmer\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './LayoutView.module.scss';\nimport useLayoutSwitcher from 'src/hooks/useLayoutSwitcher';\nimport ListingCardShimmer from '../ListingCardShimmer';\nimport Shimmer from '../Shimmer';\n\ntype LayoutViewProps = {\n className?: string;\n data: unknown[];\n emptyDataMessage: string;\n cardView: (item: any) => React.ReactNode;\n listView: (item: any) => React.ReactNode;\n isLoading?: boolean;\n classNames?: {\n cardView?: string;\n listView?: string;\n };\n};\n\n/**\n * @component LayoutView\n * \n * @description\n * This component is a wrapper around a list and card view.\n * It takes care of:\n * - displaying an empty message when there is no data\n * - displaying a loading state when data is loading\n * - displaying the data when it is available\n * \n * \n * @param {function} listView - function that returns a list view\n * @param {function} cardView - function that returns a card view\n * @param {string} className - additional class name\n * @param {any[]} data - data to be displayed\n * @param {boolean} isLoading - flag to indicate if data is loading\n * @param {object} classNames - object with classNames for cardView and listView\n * @param {string} emptyDataMessage - message to be displayed when there is no data\n * \n * @returns {JSX.Element} - LayoutView component\n * \n **/\nexport const LayoutView: React.FC = ({\n children,\n className,\n data,\n cardView,\n listView,\n isLoading = false,\n classNames = {},\n emptyDataMessage,\n ...rest\n}) => {\n\n\n const { isLayoutList, isLayoutGrid } = useLayoutSwitcher();\n\n const isEmpty = !isLoading && data?.length === 0;\n\n if (isEmpty) {\n return (\n
\n

{emptyDataMessage}

\n
\n )\n }\n\n\n return (\n
\n {isLayoutList && (\n
\n {\n isLoading\n ? new Array(30).fill(0).map((e, i) => )\n : data?.map(cardView)\n }\n
\n )}\n {isLayoutGrid &&
\n {\n isLoading\n ? new Array(30).fill(0).map((e, i) => )\n : data?.map(listView)\n }\n
}\n
\n );\n};\n\nexport default LayoutView;\n","import { LayoutView } from './LayoutView'\n\nexport default LayoutView\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n title: {\n id: 'components.AddAssetsToCollections.title',\n defaultMessage: 'Add Assets to Collections',\n },\n description: {\n id: 'components.AddAssetsToCollections.description',\n defaultMessage: 'Select the collection you wish to add the {numberOfAssets} assets to',\n },\n success: {\n id: 'components.AddAssetsToCollections.success',\n defaultMessage: 'Successfully added {numberOfAssets} assets to the selected collection(s).',\n },\n});\n","type sortConfig = {\n delimiter: string;\n validFields: string[];\n validDirections: string[];\n};\n\ntype ValidatorCallback = (lowerCaseSort: string, validFields: string[], validDirections: string[]) => boolean;\n\nexport const isValidSort = (sort: string, sortConfig: sortConfig, validator?: ValidatorCallback) => {\n const { validFields, validDirections, delimiter } = sortConfig;\n\n if (validator) return validator(sort.toLowerCase(), validFields, validDirections);\n\n const sortArray = sort.split(delimiter);\n\n if (sortArray.length !== 2) return false;\n\n const [field, direction] = sortArray;\n\n if (!validFields.includes(field.toLowerCase())) return false;\n\n if (!validDirections.includes(direction.toLowerCase())) return false;\n\n return true;\n};\n","// import * as Sentry from '@sentry/react';\nimport { useEffect, useMemo } from 'react';\nimport { useQuery, UseQueryOptions } from 'react-query';\nimport { queryFnFetchErrorWrapper, throwFetchError } from 'src/api/utils/errorHandlers';\nimport { mergeQueryOptions } from 'src/api/utils/helpers';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { CustomQueryOptions, FetchError } from 'src/types/TApiQueries';\nimport { getCollection, getAllCollections, CollectionQuery, searchCollections } from '../functions/collectionsApi';\nimport { isValidSort } from '../utils/search';\n\nexport function useCollectionQuery(\n collectionId?: number,\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const queryFn = useMemo(\n () => queryFnFetchErrorWrapper(() => getCollection(accessToken, collectionId)),\n [collectionId, accessToken],\n );\n\n const query = useQuery([queryNames.collection, collectionId], queryFn, actualQueryOptions);\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching collection', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n\n return query;\n}\n\nexport function useAllCollectionsQuery(\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const queryFn = useMemo(() => queryFnFetchErrorWrapper(() => getAllCollections(accessToken)), [accessToken]);\n\n const query = useQuery([queryNames.collection, 'all'], queryFn, actualQueryOptions);\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching collection', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n\n return query;\n}\n\nconst sortConfig = {\n delimiter: ' ',\n validFields: ['last_update', 'name', 'group_access'],\n validDirections: ['asc', 'desc'],\n};\n\nexport function useSearchCollectionsQuery(\n searchQuery: CollectionQuery,\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const queryFn = useMemo(\n () => queryFnFetchErrorWrapper(() => searchCollections(accessToken, searchQuery)),\n [accessToken, searchQuery],\n );\n\n const enabled = useMemo(() => {\n if (!searchQuery?.sort_by) return false;\n\n const { sort_by } = searchQuery;\n\n return sort_by.every((sort) => isValidSort(sort, sortConfig));\n }, [searchQuery]);\n\n const query = useQuery([queryNames.collection, 'search'], queryFn, {\n ...actualQueryOptions,\n enabled,\n staleTime: 0,\n });\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching collection', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n\n useEffect(() => {\n query.refetch();\n }, [searchQuery]);\n\n return query;\n}\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './AddAssetsToCollections.module.scss';\nimport messages from './messages';\nimport BaseModal, { BaseModalProps } from '../BaseModal/BaseModal';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useAllCollectionsQuery } from 'src/api/queries/collectionsQueries';\nimport Paper from '../Paper';\nimport Checkbox from '../Checkbox';\nimport { Collection } from 'src/types/TCollection';\nimport Button from '../Button';\nimport useModal from 'src/hooks/useModal';\nimport { useAtomValue } from 'jotai/utils';\nimport { selectedAssetsAtom } from 'src/shared/selectedAssets';\nimport Shimmer from '../Shimmer';\nimport { useCollectionsMutation } from 'src/api/mutations/collectionMutations';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport Input from '../Input';\nimport { useDebounce } from 'use-debounce/lib';\nimport { Panel, User, Users } from 'src/common/icons';\nimport Badge from '../Badge';\nimport { useHistory } from 'react-router-dom';\n\ntype AddAssetsToCollectionsProps = {\n className?: string;\n};\n\nexport const AddAssetsToCollections = (props: BaseModalProps) => {\n const { data: allCollectionsResult, isLoading } = useAllCollectionsQuery();\n const [checkedCollections, setCheckedCollections] = React.useState([]);\n const [searchTerm, setSearchTerm] = React.useState('');\n const [searchTermDebounced] = useDebounce(searchTerm, 250);\n const { closeModal } = useModal();\n const selectedAssets = useAtomValue(selectedAssetsAtom);\n const { showAlert, showSuccess } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n const { formatMessage } = useIntl();\n const history = useHistory();\n\n const filteredCollections = React.useMemo(() => {\n if (!allCollectionsResult) {\n return [];\n }\n\n if (!searchTermDebounced) return allCollectionsResult.data.collections;\n\n return allCollectionsResult.data.collections.filter((collection: Collection) => {\n return collection.name.toLowerCase().includes(searchTermDebounced.toLowerCase());\n });\n }, [allCollectionsResult, searchTermDebounced, checkedCollections]);\n\n const collectionMutation = useCollectionsMutation({\n onSuccess: () => {\n showSuccess(\n formatMessage(messages.success, {\n numberOfAssets: selectedAssets.length,\n }),\n );\n closeModal();\n\n history.push('/collections');\n },\n onError: (error) => {\n showAlert(getErrorMessage(error.message));\n },\n });\n\n const handleAddAssetsToCollections = () => {\n collectionMutation.mutateAsync({\n ids: checkedCollections,\n additions: selectedAssets,\n });\n };\n\n const handleCheckboxChange = (collectionId: number) => {\n const newCheckedCollections = checkedCollections.includes(collectionId)\n ? checkedCollections.filter((id) => id !== collectionId)\n : [...checkedCollections, collectionId];\n setCheckedCollections(newCheckedCollections);\n };\n\n return (\n \n

\n \n

\n\n

\n \n

\n\n \n
\n {isLoading &&\n (Array.from(Array(10).keys()) as number[]).map((_, i) => (\n \n ))}\n {filteredCollections.map((collection: Collection) => (\n \n handleCheckboxChange(collection.id)}\n checked={checkedCollections.includes(collection.id)}\n />\n\n {`${collection.assets.length} assets`}\n \n {collection.group_access ? (\n <>\n \n Group\n \n ) : (\n <>\n \n Private\n \n )}\n \n \n ))}\n
\n\n
\n \n \n Add Assets\n \n
\n
\n );\n};\n\nexport default AddAssetsToCollections;\n","import { AddAssetsToCollections } from './AddAssetsToCollections'\n\nexport default AddAssetsToCollections\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './AssetPreview.module.scss';\nimport messages from './messages';\nimport { File, FileArrowDown, MusicNotes, VideoCamera } from 'src/common/icons';\nimport SvgImageSquare from 'src/common/icons/ImageSquare';\n\ntype AssetPreviewProps = {\n className?: string;\n status: string;\n src: string;\n name: string;\n contentType: string;\n};\n\n\n\nexport const AssetPreview: React.FC = ({ name, src, className, contentType, status, ...rest }) => {\n if (status !== 'NOT_READY') return {name};\n\n const [mimeType] = contentType.toLowerCase().split('/');\n\n switch (mimeType) {\n case 'image':\n return ;\n\n case 'video':\n return ;\n\n case 'audio':\n return ;\n default:\n return ;\n }\n};\n\nexport default AssetPreview;\n","import { AssetPreview } from './AssetPreview'\n\nexport default AssetPreview\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './LayoutViewSwitcher.module.scss';\nimport messages from './messages';\nimport Button from '../Button';\nimport { ListBullets, SquaresFour } from 'src/common/icons';\nimport { useMemo, useReducer } from 'react';\nimport { useLocalStorage } from 'src/hooks/useLocalStorage';\nimport useLayoutSwitcher from 'src/hooks/useLayoutSwitcher';\n\ntype LayoutViewSwitcherProps = {\n className?: string;\n disabled?: boolean;\n};\n\nexport const LayoutViewSwitcher: React.FC = ({ disabled = false, className, ...rest }) => {\n const { toggleLayoutView, layoutView, isLayoutList } = useLayoutSwitcher();\n\n const layoutIcon = isLayoutList ? : ;\n\n return (\n \n );\n};\n\nexport default LayoutViewSwitcher;\n","import { LayoutViewSwitcher } from './LayoutViewSwitcher'\n\nexport default LayoutViewSwitcher\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { CaretDown, ArrowDownCircle, ArrowUpCircle } from 'src/common/icons';\nimport useOutsideClick from 'src/hooks/useOutsideClick';\nimport styles from './Dropdown.module.scss';\n\n// TODO: Replace with real icons\n\nconst ArrowRightCircle = () => ;\nconst Check = () => ;\nconst Square = () => ;\n\nexport type SelectInputOption = {\n key: string | number;\n value: string | number | React.ReactNode;\n optionDisabled?: boolean;\n noBorderBottom?: boolean;\n icon?: React.ReactNode;\n datatest?:string\n};\n\ntype DropdownProps = {\n title?: string;\n titleLink?: string;\n children?: React.ReactNode;\n className?: string;\n options?: Array;\n variant?: 'default' | 'filter' | 'menu';\n selectedKeys?: any[];\n isMultiple?: boolean;\n isSortDropdown?: boolean;\n dropdownAnchor?: 'left' | 'right';\n sortDirection?: 'ASC' | 'DESC';\n dropdownDirection?: 'up' | 'down';\n icon?: React.ReactNode;\n disabled?: boolean;\n onClick?: (targetKey: any) => void;\n reduceOptionSize?:boolean\n};\n\nexport const Dropdown: React.FC = ({\n title,\n children,\n className,\n options,\n titleLink,\n variant = 'default',\n selectedKeys = [],\n isMultiple = false,\n isSortDropdown,\n dropdownAnchor = 'left',\n sortDirection = 'asc',\n disabled,\n dropdownDirection = 'down',\n icon = ,\n onClick = () => {},\n reduceOptionSize=false,\n ...rest\n}) => {\n const { useState, useCallback, useRef } = React;\n const [open, setOpen] = useState(false);\n const ref = useRef(null);\n const history = useHistory();\n const handleTitleClick = () => {\n if (!titleLink) return;\n\n history.push(titleLink);\n };\n\n React.useEffect(() => {\n const escapeListener = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setOpen(false);\n }\n };\n document.addEventListener('keydown', escapeListener);\n\n return () => {\n document.removeEventListener('keydown', escapeListener);\n };\n }, []);\n\n\n const clickListener = useCallback(\n (e: React.MouseEvent) => {\n if (!isMultiple && ref.current && (ref.current! as any).contains(e.target)) {\n setOpen(false);\n \n }\n \n },\n [ref.current],\n );\n\n const handleClickOutside = () => {\n setOpen(false); \n };\n\n useOutsideClick(ref, handleClickOutside);\n\n \n\n return (\n \n {\n setOpen((state) => !state);\n }}\n type=\"button\"\n disabled={disabled}\n data-test=\"tools-dropdown\"\n >\n {children}\n {icon}\n \n\n {options && (\n \n {title && (\n \n {title}\n \n )}\n\n {options.map(({ key, value, optionDisabled, noBorderBottom, icon,datatest }) => (\n !optionDisabled && onClick(key)}\n role=\"menuitem\"\n tabIndex={-1}\n className={cn([\n {\n [styles.disabled]: optionDisabled,\n [styles.selected]: selectedKeys?.includes(key),\n [styles.noborder]: noBorderBottom,\n [styles.isSort]: isSortDropdown,\n\n },\n ])}\n data-test={datatest || `dropdown-option-${key}`} \n >\n {!isSortDropdown && selectedKeys?.includes(key) && (\n \n \n \n )}\n {!isSortDropdown && isMultiple && !selectedKeys?.includes(key) && (\n \n \n \n )}\n {isSortDropdown && selectedKeys?.includes(key) && (\n <>\n {sortDirection === 'DESC' ? (\n <>\n \n \n \n \n \n \n \n ) : sortDirection === 'ASC' ? (\n <>\n \n \n \n \n \n \n \n ) : null}\n \n )}\n {icon && {icon}}\n {value}\n \n ))}\n \n )}\n \n );\n};\n\nexport default Dropdown;\n","import { Dropdown } from './Dropdown'\n\nexport default Dropdown\n","import { FetchResult, DashboardFilters, APISchemaUpdate } from 'src/types/TApiQueries';\nimport { config } from 'src/utils/config';\nimport { getStandardHeaders, getUploadHeaders, performFetchWithLogging } from '../utils/helpers';\nimport { filter } from 'lodash';\n\nexport async function getSearch(filtersData: DashboardFilters, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/search`;\n const { page, hash, ...filters } = filtersData; // do not send unneeded properties\n \n if (filters?.file_name) {\n let inputValue = filters?.file_name;\n\n while (inputValue.endsWith('*')) {\n inputValue = inputValue.slice(0, -1);\n }\n // Append a single asterisk if the input is not empty\n const formattedValue = inputValue ? `${inputValue}*` : '';\n filters.file_name = formattedValue;\n }\n delete filters?.[\"filters\"]\n delete filters[\"face\"]\n\n if (filters?.content_type) {\n let contentType = filters?.content_type;\n if (filters?.custom_content_input !== '') {\n contentType = filters?.custom_content_input || '';\n }\n\n const formattedField = contentType ? `${contentType}*` : '*';\n\n filters.content_type = formattedField;\n }\n delete filters?.custom_content_input;\n\n const payload = JSON.stringify(filters);\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function getSearchByHash(\n { hash, page }: DashboardFilters,\n accessToken: string,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/search/${hash}/${page}`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\n// Function to transform the response\nfunction transformResponse(response: any): any {\n return {\n status: response.status || \"OK\",\n version: response.version || 1,\n total_files: response.hits || 0,\n search_result_id: response.search_id || \"\",\n page: response.page || 1,\n total_pages: Math.ceil((response.hits || 0) / (response.limit_per_page || 1)),\n result: response.data?.matches || [],\n extended_result: response.data?.extended_result || {},\n };\n}\n\nexport async function getFaceSearch(filtersData: any, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/ml/people/facesearch`;\n const { face, limit_per_page = 30 } = filtersData; // Only required data\n\n\n\n // Create FormData object to send multipart/form-data\n const formData = new FormData();\n formData.append('save_search', 'true');\n formData.append('include_groups', 'false');\n formData.append('extended_result', 'true');\n formData.append('strictness', '9');\n formData.append('limit_per_page', limit_per_page.toString());\n // Check if filters exist and append as a JSON string\n if (filtersData?.filters) {\n formData.append('filters', JSON.stringify(filtersData.filters));\n }\n\n // Function to convert a base64 string to Blob\n function base64ToBlob(base64: string, contentType = '', sliceSize = 512): Blob {\n const byteCharacters = atob(base64); // Decode base64 string\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i); // Get char codes of slice\n }\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray); // Collect into byte array\n }\n\n return new Blob(byteArrays, { type: contentType });\n }\n\n // Assuming the image data comes as 'data:image/jpeg;base64,...'\n const base64Data = face.split(',')[1]; // Base64 image data without the prefix\n const contentType = face.split(',')[0].split(':')[1].split(';')[0]; // Get content type (e.g., 'image/jpeg')\n\n // Convert base64 to Blob and append to FormData as binary\n const imageBlob = base64ToBlob(base64Data, contentType);\n formData.append('image', imageBlob, 'image.jpg'); // Add image file to form\n\n\n // Perform fetch request and transform response before returning\n const rawResponse = await performFetchWithLogging(url, {\n method: 'POST',\n headers: {\n Authorization: accessToken,\n },\n credentials: 'include',\n body: formData,\n });\n\n // Transform the response before returning\n return transformResponse(rawResponse);\n\n}\n\n\n\nexport async function getFaceSearchByHash(\n { hash, page, limit_per_page = 30 }: any,\n accessToken: string,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/ml/people/facesearch?page=${page}&search_id=${hash}&limit_per_page=${limit_per_page}&extended_result=true`;\n\n const rawResponse = await performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n return transformResponse(rawResponse)\n}\n\nexport async function getAssetDetails(assetId: string, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/data`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\nexport async function getAssetMediaUrl(\n assetId: string,\n key: string,\n accessId: string,\n deliveryMode: 'display' | 'download',\n accessToken: string,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/get_link?key=${key}&expiry=${config.JWTExpiration}&delivery=${deliveryMode}&accessId=${accessId}`;\n\n return performFetchWithLogging(\n url,\n {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n },\n 'text',\n );\n}\n\nexport async function getAssetVisionTags(assetId: string, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/addons/image_analysis`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\nexport async function updateAssetMetadata(\n assetId: string,\n data: APISchemaUpdate,\n accessToken: string,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/data/update`;\n delete data?.data?._filespin_fr_count\n delete data?.data?._filespin_fr_face_ids\n delete data?.data?._filespin_autotag_labels\n delete data?.data?._filespin_scene_labels\n delete data?.data?._filespin_emotion_labels\n delete data?.data?._filespin_pose_labels\n const payload:any = JSON.stringify(data);\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function updateAssetMedia(assetId: string, data: any, accessToken: string): Promise> {\n const form = new FormData();\n form.append('file', data.file, data.filename);\n\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/content/original/replace`;\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getUploadHeaders(accessToken),\n credentials: 'include',\n body: form,\n });\n}\n\nexport async function updateAssetBatchReprocess(data: any, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/content/original/reprocess`;\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(\n url,\n {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n },\n 'text',\n );\n}\n\nexport async function getBatchAssetLinks(\n data: any,\n accessToken: string,\n content_key: string,\n expiry: number,\n is_expiry_max: boolean,\n delivery_mode: string,\n accessId: string,\n): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/get_link?key=${content_key}&expiry=${\n is_expiry_max ? 'MAX' : expiry\n }&delivery=${delivery_mode}&accessId=${accessId}`;\n\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(\n url,\n {\n method: 'POST',\n headers: { ...getStandardHeaders(accessToken) },\n credentials: 'include',\n body: payload,\n },\n 'json',\n );\n}\n\nexport async function getJobs(\n limit: number,\n offset: number,\n accessToken: string,\n status: string,\n start_time: string,\n end_time: string,\n) {\n let url = `${config.hostUrl}/api/v1/jobs?limit=${limit}&offset=${offset}`;\n if (status !== 'ALL' && status !== null) {\n url += `&status=${status}`.replace('PROCESSING', 'IN_PROGRESS');\n }\n if (start_time !== '' && start_time !== 'YYYY-MM-DDThh:mm:ssZ') {\n url += `&start_time=${start_time}:00Z`;\n }\n if (end_time !== '' && end_time !== 'YYYY-MM-DDThh:mm:ssZ') {\n url += `&end_time=${end_time}:00Z`;\n }\n return performFetchWithLogging(\n url,\n {\n method: 'GET',\n headers: { ...getStandardHeaders(accessToken) },\n credentials: 'include',\n },\n 'json',\n );\n}\n\nexport async function getJobStatus(jobId: string, accessToken: string) {\n const url = `${config.hostUrl}/api/v1/jobs/${jobId}`;\n return performFetchWithLogging(\n url,\n {\n method: 'GET',\n headers: { ...getStandardHeaders(accessToken) },\n credentials: 'include',\n },\n 'json',\n );\n}\n\nexport async function batchCDNPrefetch(data: any, accessToken: string) {\n const url = `${config.hostUrl}/api/v1/cdn/prefetch`;\n const payload = JSON.stringify(data);\n return performFetchWithLogging(\n url,\n {\n method: 'POST',\n headers: { ...getStandardHeaders(accessToken) },\n credentials: 'include',\n body: payload,\n },\n 'text',\n );\n}\n\nexport async function batchCDNPurge(data: any, accessToken: string) {\n const url = `${config.hostUrl}/api/v1/cdn/purge`;\n const payload = JSON.stringify(data);\n return performFetchWithLogging(\n url,\n {\n method: 'POST',\n headers: { ...getStandardHeaders(accessToken) },\n credentials: 'include',\n body: payload,\n },\n 'text',\n );\n}\n\nexport async function createNewAsset(\n assetId: string,\n data: any,\n accessToken: string,\n metadata: any,\n includeMetadata: boolean,\n): Promise> {\n const form = new FormData();\n form.append('file', data.file, data.filename);\n const url = `${config.hostUrl}/api/v1/assets/new/content/original/upload`;\n const response: any = await fetch(url, {\n method: 'POST',\n headers: getUploadHeaders(accessToken),\n body: form,\n });\n const temp: any = await response.json();\n const newAssetId = temp.files[0].id;\n const metadataurl = `${config.hostUrl}/api/v1/assets/${newAssetId}/data/update`;\n\n let filteredMetadata: { [key: string]: any } = {};\n\n if (!includeMetadata) {\n filteredMetadata = {};\n } else {\n Object.keys(metadata).forEach((key) => {\n if (!key.startsWith('_filespin')) {\n filteredMetadata[key] = metadata[key];\n }\n });\n }\n filteredMetadata['_filespin_source_id'] = assetId;\n const jsonBody = JSON.stringify({\n data: filteredMetadata,\n mode: 'REPLACE',\n });\n const sleep = () => new Promise((r) => setTimeout(r, 2000));\n for (let i = 0; i < 5; i++) {\n await sleep();\n const metadataresponse = await fetch(metadataurl, {\n method: 'POST',\n headers: getUploadHeaders(accessToken),\n body: jsonBody,\n });\n if (metadataresponse.ok) {\n break;\n }\n }\n}\n//TODO: conversionName must be supplied from caller\nexport async function updateAssetConversionMedia(\n assetId: string,\n conversionName: string,\n data: any,\n accessToken: string,\n): Promise> {\n const form = new FormData();\n form.append('file', data.file, data.filename);\n\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/content/${conversionName}`;\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getUploadHeaders(accessToken),\n credentials: 'include',\n body: form,\n });\n}\n\nexport async function purgeAssets(accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/trash/purge`;\n\n return performFetchWithLogging(url, {\n method: 'DELETE',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\nexport async function deleteAsset(assetId: string, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/${assetId}/delete`;\n\n const payload = JSON.stringify({ keys: ['original'] });\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function restoreAsset(assetId: string, accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assets/trash/${assetId}/undelete`;\n\n const payload = JSON.stringify({ keys: ['original'] });\n\n return performFetchWithLogging(url, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\n//\n","export enum PERMISSIONS {\n CREATE_ASSET = 'CREATE_ASSET',\n READ_ASSET = 'READ_ASSET',\n DOWNLOAD_ASSET = 'DOWNLOAD_ASSET',\n EDIT_ASSET = 'EDIT_ASSET',\n DISTRIBUTE_ASSET = 'DISTRIBUTE_ASSET',\n DELETE_UNDELETE_ASSETS = 'DELETE_UNDELETE_ASSET',\n PURGE_TRASH = 'PURGE_TRASH',\n MANAGE_USERS = 'MANAGE_USERS',\n UPDATE_SETTINGS = 'UPDATE_SETTINGS',\n}\n\nexport enum ROLES {\n ADMIN = 'ADMIN',\n MANAGER = 'MANAGER',\n USER = 'USER',\n CREATOR = 'CREATOR',\n}\n\nconst rolesConfig = {\n [ROLES.ADMIN]: [PERMISSIONS.CREATE_ASSET, PERMISSIONS.READ_ASSET, PERMISSIONS.DOWNLOAD_ASSET, PERMISSIONS.EDIT_ASSET, PERMISSIONS.DISTRIBUTE_ASSET, \n PERMISSIONS.DELETE_UNDELETE_ASSETS, PERMISSIONS.PURGE_TRASH,\n PERMISSIONS.MANAGE_USERS, PERMISSIONS.UPDATE_SETTINGS],\n [ROLES.MANAGER]: [PERMISSIONS.CREATE_ASSET, PERMISSIONS.READ_ASSET, PERMISSIONS.DOWNLOAD_ASSET, PERMISSIONS.EDIT_ASSET, PERMISSIONS.DISTRIBUTE_ASSET, \n PERMISSIONS.DELETE_UNDELETE_ASSETS, PERMISSIONS.UPDATE_SETTINGS],\n [ROLES.USER]: [PERMISSIONS.READ_ASSET, PERMISSIONS.DOWNLOAD_ASSET, PERMISSIONS.DISTRIBUTE_ASSET],\n [ROLES.CREATOR]: [PERMISSIONS.CREATE_ASSET, PERMISSIONS.EDIT_ASSET, PERMISSIONS.READ_ASSET, PERMISSIONS.DOWNLOAD_ASSET, PERMISSIONS.DISTRIBUTE_ASSET],\n};\n\nexport default rolesConfig;\n","import { useAuthUser } from 'react-auth-kit';\nimport rolesConfig, { PERMISSIONS, ROLES } from 'src/common/roles';\n\nconst useRoleManager = () => {\n const auth = useAuthUser();\n\n const userRole: ROLES = auth()?.role || '';\n\n const hasRole = (role: string) => role === userRole;\n\n const hasPermission = (permission: PERMISSIONS) => rolesConfig[userRole]?.includes(permission);\n\n const hasAnyPermission = (...args: PERMISSIONS[]) => args.some((permission) => hasPermission(permission));\n\n const hasPermissions = (...args: PERMISSIONS[]) => args.every((permission) => hasPermission(permission));\n\n return {\n isAdmin: hasRole(ROLES.ADMIN),\n isManager: hasRole(ROLES.MANAGER),\n isUser: hasRole(ROLES.USER),\n isCreator: hasRole(ROLES.CREATOR),\n hasPermission,\n hasAnyPermission,\n hasPermissions,\n };\n};\n\nexport default useRoleManager;\n","import { atom } from 'jotai';\n\nexport const deletedAssetsAtom = atom([]);\n","import { atom } from 'jotai';\n\nexport const hasTrashedAssetsAtom = atom(false);\n","import { useAtom } from 'jotai';\nimport { useAtomValue } from 'jotai/utils';\nimport { useMemo, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { deleteAsset, restoreAsset, purgeAssets } from 'src/api/functions/assetsApi';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { Trash, CaretDown, ArrowCounterClockwise } from 'src/common/icons';\nimport { PERMISSIONS } from 'src/common/roles';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport useRoleManager from 'src/hooks/useRoleManager';\nimport { deletedAssetsAtom } from 'src/shared/deletedAssets';\nimport { selectedAssetsAtom } from 'src/shared/selectedAssets';\nimport { hasTrashedAssetsAtom } from 'src/shared/trash';\nimport Button from '../Button';\nimport Dropdown from '../Dropdown';\nimport { SelectInputOption } from '../Dropdown/Dropdown';\nimport styles from './BatchActions.module.scss';\n\nconst TrashActions = () => {\n const [isDeletingAssets, setIsDeletingAssets] = useState(false);\n const [isRestoringAssets, setIsRestoringAssets] = useState(false);\n const [selectedAssets, updateSelectedAssets] = useAtom(selectedAssetsAtom);\n const [deletedAssets, updateDeletedAssets] = useAtom(deletedAssetsAtom);\n const hasTrashedAssets = useAtomValue(hasTrashedAssetsAtom);\n const { hasPermission } = useRoleManager();\n const history = useHistory();\n const location = useLocation();\n const accessToken = useAccessToken();\n const { showAlert, showSuccess } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n\n const handleGoToTrash = () => history.push('/trash');\n\n const trashDropdownOptions = useMemo(() => {\n const options: Array = [];\n\n if (location.pathname === '/trash') {\n options.push(\n {\n key: 'restore',\n value: 'Restore Selected Assets',\n icon: ,\n optionDisabled: selectedAssets.length === 0,\n },\n {\n key: 'purge',\n value: 'Purge Trash',\n noBorderBottom: true,\n icon: ,\n optionDisabled: !hasTrashedAssets || !hasPermission(PERMISSIONS.PURGE_TRASH),\n },\n );\n }\n\n return options;\n }, [selectedAssets, hasTrashedAssets]);\n\n const handleRestoreSelectedAssets = async () => {\n if (isRestoringAssets || isDeletingAssets) return;\n\n setIsRestoringAssets(true);\n\n try {\n const response: any = await Promise.all(selectedAssets.map((assetId) => restoreAsset(assetId, accessToken)));\n if (typeof response.status === 'number' && !([200,202].includes(response.status))) {\n throw response;\n }\n\n showSuccess(`Successfully restored selected assets`);\n } catch (e: any) {\n showAlert(getErrorMessage(e.message));\n } finally {\n setIsRestoringAssets(false);\n updateSelectedAssets([]);\n }\n };\n\n const handlePurgeAssets = async () => {\n try {\n await purgeAssets(accessToken);\n showSuccess(`Asset purging has started, this might take a while.`);\n } catch (e: any) {\n showAlert(getErrorMessage(e.message));\n }\n };\n\n const handleTrashMenuClick = (key: string) => {\n switch (key) {\n case 'restore':\n handleRestoreSelectedAssets();\n break;\n case 'purge':\n handlePurgeAssets();\n break;\n }\n };\n\n return (\n
\n }\n data-no-dropdown={trashDropdownOptions.length === 0}\n >\n Trash\n \n\n {trashDropdownOptions.length > 0 && (\n }\n options={trashDropdownOptions}\n onClick={handleTrashMenuClick}\n title=\"Trash\"\n titleLink=\"/trash\"\n dropdownAnchor=\"right\"\n />\n )}\n
\n );\n};\n\nexport default TrashActions;\n","import { atom } from 'jotai';\n\nexport const refreshAtom = atom(0);\n\nexport const isRefetchingAtom = atom(false);\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n basket: {\n id: 'component.batchActions.basket',\n defaultMessage: 'Basket',\n },\n});\n","import cn from 'classnames';\nimport styles from './BatchActions.module.scss';\nimport { useAtom } from 'jotai';\nimport { useUpdateAtom } from 'jotai/utils';\nimport { useState, useMemo } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useQueryClient } from 'react-query';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getCollectionDownloadUrl } from 'src/api/functions/collectionsApi';\nimport { useCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { useCollectionQuery } from 'src/api/queries/collectionsQueries';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { DownloadSimple, Trash, ArchiveBox, Stack, CaretDown, Copy } from 'src/common/icons';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport useModal from 'src/hooks/useModal';\nimport { deletedAssetsAtom } from 'src/shared/deletedAssets';\nimport { refreshAtom } from 'src/shared/refresh';\nimport { selectedAssetsAtom } from 'src/shared/selectedAssets';\nimport { CollectionResponse } from 'src/types/TCollection';\nimport Button from '../Button';\nimport Dropdown from '../Dropdown';\nimport { SelectInputOption } from '../Dropdown/Dropdown';\nimport messages from './messages';\nimport ConfirmDuplicateCollectionModal from '../ConfirmDuplicateCollectionModal';\n\nconst BasketActions = () => {\n const [selectedAssets, updateSelectedAssets] = useAtom(selectedAssetsAtom);\n\n const { showAlert, showSuccess } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n const history = useHistory();\n const location = useLocation();\n const queryClient = useQueryClient();\n const refreshUpdate = useUpdateAtom(refreshAtom);\n const [, updateDeletedAssets] = useAtom(deletedAssetsAtom);\n const [isPreparingDownload, setIsPreparingDownload] = useState(false);\n const accessToken = useAccessToken();\n\n const handleRefresh = () => {\n updateDeletedAssets([]);\n refreshUpdate((c) => c + 1);\n };\n\n const handleGoToBasket = () => history.push('/basket');\n\n const {\n data: response,\n error,\n isLoading,\n } = useCollectionQuery(undefined, {\n staleTime: 1000 * 60 * 5,\n });\n\n const { showModal } = useModal();\n\n const basketMutation = useCollectionMutation(Number(response?.data?.id), {\n onError: (error, newData, context: any) => {\n queryClient.setQueryData([queryNames.collection, null], context.previousData);\n\n showAlert(getErrorMessage(error.message));\n },\n onMutate: (data) => {\n /*showInfo(`Requesting update...`);*/\n const previousData = queryClient.getQueryData([queryNames.collection, null]);\n queryClient.setQueryData(\n [queryNames.collection, null],\n (old: CollectionResponse | undefined) => {\n if (typeof old !== 'undefined') {\n old.data.assets = (old?.data?.assets ?? [])\n .filter((id) => !(data?.deletions ?? []).includes(id))\n .concat(data?.additions ?? []);\n }\n return old;\n },\n );\n return { previousData };\n },\n onSuccess: () => {\n showSuccess('Request succeeded. Refreshing data...');\n handleRefresh();\n },\n });\n\n const handleBasketDownload = async () => {\n setIsPreparingDownload(true);\n const url: any = await getCollectionDownloadUrl(response?.data?.id, accessToken);\n\n if (url.status === 404) {\n showAlert(`Download not available at the moment. Please try again later.`);\n setIsPreparingDownload(false);\n return;\n }\n\n window.open(url);\n setIsPreparingDownload(false);\n };\n\n const handleRemoveSelectedAssetsToBasket = () =>\n !isLoading && basketMutation.mutateAsync({ deletions: selectedAssets });\n\n const handleEmptyBasket = async () => {\n if (isLoading) return;\n\n await basketMutation.mutateAsync({ deletions: response?.data?.assets });\n updateSelectedAssets([]);\n };\n\n const handleBasketMenuClick = (key: string) => {\n switch (key) {\n case 'download':\n handleBasketDownload();\n break;\n case 'remove':\n handleRemoveSelectedAssetsToBasket();\n break;\n case 'empty':\n handleEmptyBasket();\n break;\n case 'duplicate':\n showModal();\n break;\n }\n };\n\n const basketDropdownOptions: Array = [\n {\n key: 'download',\n value: 'Download',\n icon: ,\n optionDisabled: response?.data?.assets.length === 0 || isPreparingDownload,\n },\n {\n key: 'duplicate',\n value: 'Save basket as a Collection',\n icon: ,\n optionDisabled: response?.data?.assets.length === 0,\n },\n {\n key: 'empty',\n value: 'Empty',\n icon: ,\n optionDisabled: response?.data?.assets.length === 0,\n },\n ];\n\n if (location.pathname === '/basket') {\n basketDropdownOptions.push({\n key: 'remove',\n value: 'Remove Selected Assets',\n icon: ,\n optionDisabled: selectedAssets.length === 0,\n });\n }\n\n return (\n
\n }\n >\n
\n {response?.data?.assets?.length ?? '0'}\n \n \n \n
\n \n }\n title=\"Basket\"\n titleLink=\"/basket\"\n options={basketDropdownOptions}\n onClick={handleBasketMenuClick}\n />\n
\n );\n};\n\nexport default BasketActions;\n","import React, { useMemo, useState } from 'react';\nimport cn from 'classnames';\nimport styles from './BatchActions.module.scss';\nimport Dropdown from '../Dropdown';\nimport { SelectInputOption } from '../Dropdown/Dropdown';\nimport Checkbox from '../Checkbox';\nimport TrashActions from './TrashActions';\nimport BasketActions from './BasketActions';\nimport { useAtom } from 'jotai';\nimport { selectedAssetsAtom } from 'src/shared/selectedAssets';\nimport useRoleManager from 'src/hooks/useRoleManager';\n\ntype PageActions = {\n options: SelectInputOption[];\n onClick: (option: string) => void;\n};\n\ntype BatchActionsProps = {\n className?: string;\n basket?: boolean;\n trash?: boolean;\n pageActions?: PageActions;\n onSelectAll?: (selected: boolean) => void;\n showSelectAll?: boolean;\n};\n\nexport const BatchActions: React.FC = ({\n className,\n onSelectAll,\n pageActions,\n basket = true,\n trash = true,\n showSelectAll,\n ...rest\n}) => {\n const [selectAll, setSelectAll] = useState(false);\n const [selectedAssets, updateSelectedAssets] = useAtom(selectedAssetsAtom);\n const { isUser } = useRoleManager();\n\n const handleOnSelectChange = (e: React.ChangeEvent) => {\n setSelectAll(e.target.checked);\n onSelectAll && onSelectAll(e.target.checked);\n };\n\n return (\n
\n
\n {showSelectAll && (\n \n )}\n {pageActions && (\n
\n \n {selectedAssets.length > 0 && {selectedAssets.length}}\n With Selected\n \n
\n )}\n {basket && }\n
\n
{!isUser && trash && }
\n
\n );\n};\n\nexport default BatchActions;\n","import { BatchActions } from './BatchActions';\n\nexport default BatchActions;\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n yes: {\n id: 'component.confirmDialog.yes',\n defaultMessage: 'Yes',\n },\n no: {\n id: 'component.confirmDialog.no',\n defaultMessage: 'No',\n },\n});\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './ConfirmDialog.module.scss';\nimport messages from './messages';\nimport Button from '../Button';\nimport { FormattedMessage } from 'react-intl';\n\ntype ConfirmDialogProps = {\n className?: string;\n title: string;\n message: string;\n onConfirm: () => void;\n onCancel: () => void;\n};\n\nexport const ConfirmDialog: React.FC = ({\n title,\n message,\n className,\n onConfirm,\n onCancel,\n ...rest\n}) => {\n return (\n
\n
\n
\n

{title}

\n {message &&

{message}

}\n
\n \n \n
\n
\n
\n );\n};\n\nexport default ConfirmDialog;\n","import { ConfirmDialog } from './ConfirmDialog'\n\nexport default ConfirmDialog\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './InfoSection.module.scss';\nimport messages from './messages';\nimport InfoIcon from 'src/common/icons/Info';\n\ntype InfoSectionProps = {\n className?: string;\n text: string;\n};\n\nexport const InfoSection: React.FC = ({ text, className, ...rest }) => {\n return (\n
\n \n

{text}

\n
\n );\n};\n\nexport default InfoSection;\n","import { InfoSection } from './InfoSection'\n\nexport default InfoSection\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n customSchema: {\n id: 'component.metadataForm.customSchema',\n defaultMessage: 'Custom Schema',\n },\n});\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n submit: {\n id: 'component.schemaForm.submit',\n defaultMessage: 'Submit',\n },\n cancel: {\n id: 'component.schemaForm.cancel',\n defaultMessage: 'Cancel',\n },\n});\n","function DownArrow(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\n\nexport default DownArrow;\n","function UpArrow(props: React.SVGProps) {\n return (\n \n \n \n );\n}\n\n\nexport default UpArrow;\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from './SchemaForm.module.scss';\nimport messages from './messages';\nimport { ISubmitEvent, withTheme } from '@rjsf/core';\nimport Button from '../Button';\nimport InfoIcon from 'src/common/icons/Info';\nimport { motion, useAnimation, useMotionValue } from 'framer-motion';\nimport { FormattedMessage } from 'react-intl';\nimport { Plus, TrashSimple } from 'src/common/icons';\nimport DownArrow from 'src/common/icons/ArrowDown';\nimport UpArrow from 'src/common/icons/ArrowUp';\n\n\ntype SchemaFormProps = {\n className?: string;\n schema?: any;\n formData: any;\n onSubmit: ((e: ISubmitEvent, nativeEvent: React.FormEvent) => any) | undefined;\n onCancel: () => void;\n};\n\nconst constructUiSchema = (json: any) => {\n const uiSchema: { [key: string]: any } = {};\n // TODO: Replace en with actual language or fallback to browser or fallback to en\n Object.entries(json?.properties ?? {}).forEach(([key, value]: [string, any]) => {\n uiSchema[key] = {\n 'ui:placeholder': value?.filespin_properties?.placeholder?.en,\n 'ui:help': value?.filespin_properties?.hint?.en,\n 'ui:disabled': value?.filespin_properties?.ui?.disabled,\n 'ui:hidden': value?.filespin_properties?.ui?.hidden,\n 'ui:title': value?.filespin_properties?.title?.en || value?.title,\n };\n });\n uiSchema['ui:order'] = Object.entries(json?.properties ?? {})\n .sort(\n ([key_a, value_a]: [string, any], [key_b, value_b]: [string, any]) =>\n value_a?.filespin_properties?.ui?.order - value_b?.filespin_properties?.ui?.order,\n )\n .map(([key]) => key);\n\n return uiSchema;\n};\n\nconst ObjectFieldTemplate = ({ properties, title }: { TitleField: any; properties: any; title: string }) => {\n return (\n \n

{title}

\n
\n {properties.map((prop: any) => (\n {prop.content}\n ))}\n
\n
\n );\n};\n\nconst hintAnimation = {\n visible: {\n height: 'auto',\n opacity: 1,\n },\n hidden: {\n height: 0,\n opacity: 0,\n },\n};\n\nfunction CustomFieldTemplate(props: any) {\n const { label, help, description, errors, children, displayLabel, schema } = props;\n\n const showHint = useMotionValue('hidden');\n\n const controls = useAnimation();\n\n const toggleHint = () => {\n controls.start(showHint.get() === 'hidden' ? 'visible' : 'hidden');\n showHint.set(showHint.get() === 'hidden' ? 'visible' : 'hidden');\n };\n\n if (schema.type === 'object') {\n return children;\n }\n\n return (\n schema?.filespin_properties?.ui?.readonly ?(
\n {displayLabel && (\n \n )}\n {help && (\n \n
\n \n {help}\n
\n
\n )}\n {schema?.filespin_properties?.ui?.readonly ?(
{children}
):(
\n {children}
)}\n {description &&
{description}
}\n {errors &&
{errors}
}\n
):(\n
\n {displayLabel && (\n \n )}\n {help && (\n \n
\n \n {help}\n
\n
\n )}\n {children}\n {description &&
{description}
}\n {errors &&
{errors}
}\n
)\n );\n}\nfunction ArrayFieldTemplate(props:any) {\n return (\n \n

{props.title}

\n
\n {props.items &&\n props.items.map((element:any) => (\n
\n
{element.children}
\n
\n {element.hasMoveDown && (\n \n \n \n )}\n {element.hasMoveUp && (\n \n \n \n )}\n \n
\n
\n
\n ))}\n\n {props.canAdd && (\n
\n

\n \n

\n
\n )}\n
\n
\n );\n}\n\nexport const SchemaForm: React.FC = ({ className, schema, formData, onSubmit, onCancel, ...rest }) => {\n const ThemedForm = withTheme({\n className: 'schemaForm',\n });\n\n return (\n
\n \n
\n \n \n
\n \n
\n );\n};\n\nexport default SchemaForm;\n","import { SchemaForm } from './SchemaForm'\n\nexport default SchemaForm\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './MetadataForm.module.scss';\nimport messages from './messages';\nimport SchemaForm from '../SchemaForm';\nimport { ISubmitEvent } from '@rjsf/core';\nimport validateFormData from '@rjsf/core/lib/validate';\n// import * as Sentry from '@sentry/react';\nimport { useIntl } from 'react-intl';\n\ntype MetadataFormProps = {\n className?: string;\n schema?: any;\n metadata: any;\n onSubmit: ((e: ISubmitEvent, nativeEvent: React.FormEvent) => any) | undefined;\n onCancel: () => void;\n};\n\nconst inferType = (value: any): string => {\n if (typeof value === 'string') return 'string';\n if (typeof value === 'number') return 'number';\n if (typeof value === 'boolean') return 'boolean';\n if (Array.isArray(value)) return 'array';\n return 'string';\n};\nconst generateSchemaFromData = (title: string, data: any) => {\n const keys = Object.keys(data);\n\n const schema: any = {\n type: 'object',\n properties: {},\n title,\n };\n\n keys.forEach((key: string) => {\n schema.properties[key] = {\n type: inferType(data[key]),\n title: key,\n };\n });\n\n return schema;\n};\n\nconst appendNewProperties = (schema: any, metadata: any) => {\n const updatedSchema = { ...schema };\n\n const specialKeys = [\n '_filespin_fr_count',\n '_filespin_fr_face_ids',\n '_filespin_autotag_labels',\n '_filespin_scene_labels',\n '_filespin_emotion_labels',\n '_filespin_pose_labels',\n ];\n\n Object.keys(metadata).forEach((key: string) => {\n if (!updatedSchema.properties[key]) {\n const isSpecialKey = specialKeys.includes(key);\n if(Array.isArray(metadata[key])){\n \n updatedSchema.properties[key]={\n type: inferType(metadata[key]),\n title: key,\n description: `Generated property for ${key}`,\n filespin_properties: {\n title: { en: key },\n hint: { en: `Generated property for ${key}` },\n placeholder: { en: `Enter ${key}` },\n searchable: true,\n filterable: false,\n facetable: false,\n ui: {\n order: Object.keys(updatedSchema.properties).length + 2,\n readonly: false,\n disabled: false,\n hidden: false,\n },\n },\n items:{\n title: \"List element\",\n type: \"string\",\n description: \"element\",\n hint: \"hint\",\n minLength: 1,\n maxLength: 100\n }\n }\n }else{\n updatedSchema.properties[key] = {\n type: inferType(metadata[key]),\n title: key,\n description: isSpecialKey ? `${key} is not editable` : `Generated property for ${key}`,\n filespin_properties: {\n title: { en: key },\n hint: { en: isSpecialKey ? `${key} is not editable` : `Generated property for ${key}` },\n placeholder: { en: `Enter ${key}` },\n searchable: true,\n filterable: false,\n facetable: false,\n ui: {\n order: Object.keys(updatedSchema.properties).length + 2,\n readonly: isSpecialKey,\n disabled: isSpecialKey,\n hidden: isSpecialKey,\n },\n },\n minLength: 1,\n maxLength: 200,\n };\n }\n }\n });\n\n return updatedSchema;\n};\n\nconst ensureSchemaVersion = (schema: any) => {\n const updatedSchema = { ...schema };\n\n delete updatedSchema.$schema;\n\n // Add the Draft-07 schema identifier\n updatedSchema.$schema = 'http://json-schema.org/draft-07/schema#';\n\n return updatedSchema;\n};\nexport const MetadataForm: React.FC = ({\n className,\n schema,\n metadata,\n onSubmit,\n onCancel,\n ...rest\n}) => {\n const { formatMessage } = useIntl();\n\n let formSchema = schema;\n if (!schema) {\n const schemaTitle = formatMessage(messages.customSchema);\n formSchema = generateSchemaFromData(schemaTitle, metadata);\n } else {\n formSchema = appendNewProperties(schema, metadata);\n formSchema = ensureSchemaVersion(formSchema);\n const validation = validateFormData(metadata, formSchema);\n if (validation.errors.length > 0) {\n formSchema = appendNewProperties(schema, metadata);\n // Sentry.captureMessage(`Schema Errors: ${validation.errors.toString()}`, Sentry.Severity.Error);\n }\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default MetadataForm;\n","import { MetadataForm } from './MetadataForm'\n\nexport default MetadataForm\n","import React, { useState } from 'react';\nimport cn from 'classnames';\nimport styles from './PrivateField.module.scss';\nimport messages from './messages';\n\ntype PrivateFieldProps = {\n className?: string;\n fieldName: string;\n children: (visible: boolean, style: string | undefined) => React.ReactNode;\n};\n\nexport const PrivateField: React.FC = ({ children, className, fieldName, ...rest }) => {\n const [visible, setVisible] = useState(false);\n\n const buttonText = `${visible ? 'Hide' : 'Show'} ${fieldName}`;\n\n return (\n
\n {children(visible, visible ? undefined : styles.hiddenField)}\n \n
\n );\n};\n\nexport default PrivateField;\n","import { PrivateField } from './PrivateField'\n\nexport default PrivateField\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './AdminSettingsSidebar.module.scss';\nimport messages from './messages';\n\ntype AdminSettingsSidebarProps = {\n className?: string;\n items: SidebarItem[];\n onClick?: (item: SidebarItem) => void;\n};\n\ntype SidebarItem = {\n key: string;\n label: string;\n};\n\nexport const AdminSettingsSidebar: React.FC = ({ className, items, onClick, ...rest }) => {\n return (\n \n );\n};\n\nexport default AdminSettingsSidebar;\n","import { AdminSettingsSidebar } from './AdminSettingsSidebar'\n\nexport default AdminSettingsSidebar\n","import React, { useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\nimport styles from './ColorPicker.module.scss';\nimport messages from './messages';\nimport { ChromePicker, ColorChangeHandler } from 'react-color';\nimport { Portal } from 'src/common/Portal';\n\ntype ColorPickerProps = {\n value?: string;\n className?: string;\n onChange?: (color: string) => void;\n};\n\nexport const ColorPicker: React.FC = ({ value = '#000000', className, onChange }) => {\n const [color, setColor] = useState(value);\n const [showColorPicker, setShowColorPicker] = useState(false);\n\n const colorPreviewRef = useRef(null);\n const colorInputRef = useRef(null);\n const colorPickerRef = useRef(null);\n\n const handleOnChangeComplete: ColorChangeHandler = (newColor) => {\n setColor(newColor.hex);\n onChange?.(newColor.hex);\n };\n\n useEffect(() => {\n if (!colorPreviewRef.current) return;\n\n colorPreviewRef.current.style.backgroundColor = color;\n }, [color]);\n\n useEffect(() => {\n setColor(value);\n }, [value]);\n\n useEffect(() => {\n if (!showColorPicker || !colorInputRef.current || !colorPickerRef.current) return;\n\n const { offsetTop, offsetLeft } = colorInputRef.current;\n\n colorPickerRef.current.style.top = `${offsetTop + colorInputRef.current.offsetHeight}px`;\n colorPickerRef.current.style.left = `${offsetLeft}px`;\n }, [showColorPicker, colorInputRef, colorPickerRef]);\n\n return (\n
\n
setShowColorPicker((state) => !state)}>\n \n \n
\n {showColorPicker &&\n Portal({\n children: (\n
\n
setShowColorPicker(false)} />\n \n
\n ),\n })}\n
\n );\n};\n\nexport default ColorPicker;\n","import { ColorPicker } from './ColorPicker'\n\nexport default ColorPicker\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './Select.module.scss';\nimport messages from './messages';\n\ntype SelectProps = {\n label?: string;\n className?: string;\n value: string;\n onChange: (value: string) => void;\n options: SelectOption[];\n};\n\ntype SelectOption = {\n label: string;\n value: string;\n};\n\nexport const Select: React.FC = ({ children, className, value, label, onChange, options, ...rest }) => {\n return (\n
\n {label?:''}\n \n
\n );\n};\n\nexport default Select;\n","import { Select } from './Select'\n\nexport default Select\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './Table.module.scss';\nimport messages from './messages';\n\ntype TableProps = {\n className?: string;\n headers: string[];\n};\n\nexport const Table: React.FC = ({ children, className, headers, ...rest }) => {\n return (\n
\n \n \n \n {headers.map((header) => (\n \n ))}\n \n \n {children}\n
{header}
\n
\n );\n};\n\nexport default Table;\n","import { Table } from './Table'\n\nexport default Table\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './AdminSettingsSection.module.scss';\nimport messages from './messages';\n\ntype AdminSettingsSectionProps = {\n className?: string;\n title: string;\n};\n\nexport const AdminSettingsSection: React.FC = ({ children, className, title, ...rest }) => {\n return (\n
\n

{title}

\n {children}\n
\n );\n};\n\nexport default AdminSettingsSection;\n","import { AdminSettingsSection } from './AdminSettingsSection'\n\nexport default AdminSettingsSection\n","import React, { useRef, useEffect } from 'react';\n\nimport cn from 'classnames';\nimport styles from './Slider.module.scss';\nimport messages from './messages';\n\ntype SliderProps = {\n value: number;\n onChange: (value: number) => void;\n min: string;\n max: string;\n step: string;\n};\n\nexport const Slider: React.FC = ({ value, onChange, min, max, step }) => {\n const inputRef = useRef(null);\n\n useEffect(() => {\n if (!inputRef.current) return;\n\n const input = inputRef.current;\n\n const [minValue, maxValue] = [parseFloat(min), parseFloat(max)];\n\n const percentage = ((value - minValue) / (maxValue - minValue)) * 100;\n input.style.background = `linear-gradient(to right, #2e53e3 0%, #2e53e3 ${percentage}%, #e7ebfc ${percentage}%, #e7ebfc 100%)`;\n }, [value, inputRef]);\n\n return (\n
\n {value.toFixed(2)}\n onChange(parseFloat(e.target.value))}\n />\n
\n );\n};\n\nexport default Slider;\n","import { Slider } from './Slider'\n\nexport default Slider\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n checkUsage:{\n id:'navr.usage',\n defaultMessage:\"Check Usage\"\n },\n settings: {\n id: 'admin.navbar.settings',\n defaultMessage: 'Settings',\n },\n assets: {\n id: 'admin.navbar.assets',\n defaultMessage: 'Assets',\n },\n collections: {\n id: 'nav.collections',\n defaultMessage: 'Collections',\n },\n assetTransfers: {\n id: 'nav.assetTransfers',\n defaultMessage: 'Asset Transfers',\n },\n users: {\n id: 'admin.navbar.users',\n defaultMessage: 'Users',\n },\n jobs: {\n id: 'nav.jobs',\n defaultMessage: 'Jobs',\n },\n account: {\n id: 'nav.account',\n defaultMessage: 'Account',\n },\n preferences: {\n id: 'nav.preferences',\n defaultMessage: 'Preferences',\n },\n logout: {\n id: 'nav.logout',\n defaultMessage: 'Logout',\n },\n});\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport styles from './LogoWhite.module.scss';\n\ntype LogoProps = {\n className?: string;\n linkable?: boolean;\n};\n\nconst Icon = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport const LogoWhite: React.FC = ({ className, linkable = true, ...rest }) => {\n return linkable ? (\n \n \n \n ) : (\n
\n \n
\n );\n};\n\nexport default LogoWhite;\n","import { LogoWhite } from './LogoWhite'\n\nexport default LogoWhite\n","import { atom, Setter, WritableAtom } from 'jotai';\nimport { capitalize, merge } from 'lodash';\n\ntype CreateAtomActions = {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: Setter, action: any) => void;\n setter?: (atom: any, set: Setter, action: any) => void;\n};\n\ntype CreateAtomParams = (\n name: string,\n actions: CreateAtomActions,\n) => {\n [x: string]: WritableAtom;\n};\n\nconst combinedGetter = (currentAtom: any, updatedAtom: any, get: any) => {\n const currentState = get(currentAtom);\n const updatedState = get(updatedAtom);\n\n if (!updatedState) {\n return currentState;\n }\n\n const mergedState = merge({}, currentState, updatedState);\n\n //return { ...mergedState, updatedAt: Date.now() };\n return mergedState;\n};\n\nexport const ACTION_TYPES = {\n SET_STATE: 'setState',\n SAVE_CHANGES: 'saveChanges',\n UPDATE_STATE: 'updateState',\n UNDO_CHANGES: 'undoChanges',\n CLEAR_STATE: 'clearState',\n};\n\ntype ActionCallback = (currentAtom: any, updatedAtom: any, get: any, set: Setter) => void;\n\nconst setState = (atom: any, set: Setter, action: any) => set(atom, action.payload);\nconst undoChanges = (atom: any, set: Setter) => set(atom, undefined);\nconst saveChanges: ActionCallback = (currentAtom, updatedAtom, get, set) => {\n const initialState = get(currentAtom);\n const updatedState = get(updatedAtom);\n\n const mergedState = merge({}, initialState, updatedState);\n\n set(currentAtom, mergedState);\n set(updatedAtom, undefined);\n};\n\nexport const createAtom: CreateAtomParams = (name, { updater, setter }) => {\n const currentAtom = atom(undefined);\n\n const updatedAtom = atom(undefined);\n\n const combinedAtom = atom(\n (get) => combinedGetter(currentAtom, updatedAtom, get),\n (get, set, action) => {\n const { type } = action;\n\n switch (type) {\n case ACTION_TYPES.SET_STATE:\n if (setter) {\n setter(currentAtom, set, action);\n } else {\n setState(currentAtom, set, action);\n }\n break;\n case ACTION_TYPES.SAVE_CHANGES:\n saveChanges(currentAtom, updatedAtom, get, set);\n break;\n case ACTION_TYPES.UPDATE_STATE:\n updater(currentAtom, updatedAtom, get, set, action);\n break;\n case ACTION_TYPES.UNDO_CHANGES:\n undoChanges(updatedAtom, set);\n break;\n case ACTION_TYPES.CLEAR_STATE:\n set(currentAtom, undefined);\n break;\n default:\n break;\n }\n },\n );\n\n return {\n [`current${capitalize(name)}SettingsAtom`]: currentAtom,\n [`updated${capitalize(name)}SettingsAtom`]: updatedAtom,\n [`${name}SettingsAtom`]: combinedAtom,\n };\n};\n","type GetSettingsArgs = (get: any, [stateAtom, updatedStateAtom]: [any, any], callback?: (state: any) => any) => any;\n\nexport const getSettings: GetSettingsArgs = (get, atoms, callback) => {\n const [stateAtom, updatedStateAtom] = atoms;\n const state = get(stateAtom);\n const updatedState = get(updatedStateAtom);\n\n if (!updatedState) return undefined;\n\n return callback ? callback(state) : state;\n};\n","import { merge } from 'lodash';\nimport { createAtom } from './base';\nimport { getSettings } from './utils';\n\nexport const { currentAddonsSettingsAtom, updatedAddonsSettingsAtom, addonsSettingsAtom } = createAtom('addons', {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n const mergedState = merge({}, state, payload);\n\n set(updatedAtom, mergedState);\n },\n});\n\nexport const getAddonsSettings = (get: any) =>\n getSettings(get, [addonsSettingsAtom, updatedAddonsSettingsAtom], (state: any) => {\n const filteredState: any = {};\n\n Object.keys(state).forEach((key) => {\n const { added, enabled } = state[key];\n filteredState[key] = {\n enabled,\n added,\n };\n });\n\n return filteredState;\n });\n","import { merge } from 'lodash';\nimport { createAtom } from './base';\nimport { getSettings } from './utils';\n\nexport const { currentDatabaseSettingsAtom, updatedDatabaseSettingsAtom, databaseSettingsAtom } = createAtom(\n 'database',\n {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n const mergedState = merge({}, state, payload);\n\n set(updatedAtom, mergedState);\n },\n },\n);\n\nexport const getDatabaseSettings = (get: any) => getSettings(get, [databaseSettingsAtom, updatedDatabaseSettingsAtom]);\n","import { clone, cloneDeep, isEmpty, merge, omitBy, rest } from 'lodash';\nimport { createAtom } from './base';\nimport { getSettings } from './utils';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst updateConversions = (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const originalState = get(currentAtom);\n const updatedState = get(updatedAtom);\n\n const {\n payload: {\n conversions: { id, ...rest },\n },\n } = action;\n\n if (!updatedState || !updatedState.conversions) {\n const conversionIndex = originalState.conversions.findIndex((conversion: any) => conversion.id === id);\n if (conversionIndex === -1) return;\n\n const updatedConversions = [...originalState.conversions];\n\n updatedConversions[conversionIndex] = merge({}, updatedConversions[conversionIndex], rest);\n\n set(updatedAtom, { ...originalState, conversions: updatedConversions });\n\n return;\n }\n\n const conversionIndex = updatedState.conversions.findIndex((conversion: any) => conversion.id === id);\n\n updatedState.conversions[conversionIndex] = merge({}, updatedState.conversions[conversionIndex], rest);\n\n set(updatedAtom, { ...updatedState });\n};\n\nexport const { currentImageSettingsAtom, updatedImageSettingsAtom, imageSettingsAtom } = createAtom('image', {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n if (payload.conversions) {\n return updateConversions(currentAtom, updatedAtom, get, set, action);\n }\n\n const state = get(updatedAtom);\n\n const mergedState = merge({}, state, payload);\n\n set(updatedAtom, mergedState);\n },\n setter: (currentAtom: any, set: any, action: any) => {\n const {\n payload,\n payload: { conversions },\n } = action;\n\n const mappedConversions = conversions.map((conversion: any) => ({\n ...conversion,\n id: uuidv4(),\n size:\n conversion.value.width && conversion.value.height ? `${conversion.value.width}x${conversion.value.height}` : '',\n }));\n\n set(currentAtom, { ...payload, conversions: mappedConversions });\n },\n});\n\nexport const getImageSettings = (get: any) =>\n getSettings(get, [imageSettingsAtom, updatedImageSettingsAtom], (state) => {\n const { conversions } = state;\n\n let mappedConversions = cloneDeep(conversions);\n\n mappedConversions = mappedConversions.map((conversion: any) => {\n const { value, size } = conversion;\n\n delete conversion.size;\n\n if (isEmpty(size)) {\n return {\n ...conversion,\n value: {\n ...value,\n width: null,\n height: null,\n },\n };\n }\n\n if (!size.match(/^\\d+x\\d+$/)) return conversion;\n\n const [width, height] = size.split('x');\n\n return {\n ...conversion,\n value: {\n ...value,\n width: parseInt(width),\n height: parseInt(height),\n },\n };\n });\n\n return {\n ...state,\n conversions: mappedConversions,\n };\n });\n","import { createAtom } from './base';\nimport { getSettings } from './utils';\n\nexport const { currentSecuritySettingsAtom, updatedSecuritySettingsAtom, securitySettingsAtom } = createAtom(\n 'security',\n {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n set(updatedAtom, { ...state, ...payload });\n },\n },\n);\n\nexport const getSecuritySettings = (get: any) =>\n getSettings(get, [securitySettingsAtom, updatedSecuritySettingsAtom], (state: any) => {\n const parsedState = state;\n delete parsedState.access_id;\n\n return parsedState;\n });\n","import { atom } from 'jotai';\nimport { createAtom } from './base';\nimport { getSettings } from './utils';\n\nexport const { currentStorageSettingsAtom, updatedStorageSettingsAtom, storageSettingsAtom } = createAtom('storage', {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n set(updatedAtom, { ...state, ...payload });\n },\n});\n\nexport const storageAlertStatus=atom(false)\n\nexport const getStorageSettings = (get: any) => getSettings(get, [storageSettingsAtom, updatedStorageSettingsAtom]);\n","import { merge } from 'lodash';\nimport { createAtom } from './base';\nimport { getSettings } from './utils';\nimport { atom, Setter, WritableAtom } from 'jotai';\n\n\n\n\nexport const originalStoryBoardTypeAtom = atom('')\nexport const currentStoryBoardTypeAtom = atom('')\n\n\n\n\n\nexport const { currentVideoSettingsAtom, updatedVideoSettingsAtom, videoSettingsAtom } = createAtom('video', {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n const mergedState = merge({}, state, payload);\n\n set(updatedAtom, mergedState);\n },\n setter: (atom, set, action) => {\n const {\n payload,\n payload: {\n transcodes,\n preview,\n thumbnails,\n thumbnails: { storyboard },\n },\n } = action;\n\n const mappedTranscodes: any = {};\n const mappedPreview: any = { ...preview, video_preview_padding: `#${preview.video_preview_padding}` };\n const mappedStoryboard: any = storyboard ? { ...storyboard, padding: `#${storyboard.padding}` } : undefined;\n\n Object.keys(transcodes).forEach((key) => {\n mappedTranscodes[key] = {\n ...transcodes[key],\n padding: `#${transcodes[key].padding}`,\n };\n });\n\n set(atom, {\n ...payload,\n transcodes: mappedTranscodes,\n preview: mappedPreview,\n thumbnails: { ...thumbnails, storyboard: mappedStoryboard },\n });\n },\n});\n\nexport const getVideoSettings = (get: any) =>\n getSettings(get, [videoSettingsAtom, updatedVideoSettingsAtom], (state: any) => {\n const {\n transcodes,\n preview,\n thumbnails,\n thumbnails: { storyboard },\n } = state;\n\n const mappedTranscodes: any = {};\n const mappedPreview: any = {\n ...preview,\n video_preview_length: parseInt(preview.video_preview_length),\n video_preview_start: parseInt(preview.video_preview_start),\n video_preview_padding: preview.video_preview_padding.replace('#', ''),\n };\n\n const mappedStoryboard = { ...storyboard };\n\n if (storyboard) {\n mappedStoryboard.padding = storyboard.padding.replace('#', '');\n }\n\n Object.keys(transcodes).forEach((key) => {\n const { watermark, padding, enabled, aspect, upscale, public: publicProperty } = transcodes[key];\n\n mappedTranscodes[key] = {\n watermark,\n enabled,\n aspect,\n upscale,\n public: publicProperty,\n padding: padding.replace('#', ''),\n };\n });\n\n return {\n ...state,\n transcodes: mappedTranscodes,\n preview: mappedPreview,\n thumbnails: { ...thumbnails, storyboard: mappedStoryboard },\n };\n });\n\n\n","import { createAtom } from './base';\nimport { getSettings } from './utils';\n\nexport const { currentWatermarkSettingsAtom, updatedWatermarkSettingsAtom, watermarkSettingsAtom } = createAtom(\n 'watermark',\n {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n set(updatedAtom, { ...state, ...payload });\n },\n },\n);\n\nexport const getWatermarkSettings = (get: any) =>\n getSettings(get, [watermarkSettingsAtom, updatedWatermarkSettingsAtom]);\n","import { createAtom } from './base';\nimport { merge } from 'lodash';\nimport { getSettings } from './utils';\n\nexport const { currentWebhookSettingsAtom, updatedWebhookSettingsAtom, webhookSettingsAtom } = createAtom('webhook', {\n updater: (currentAtom: any, updatedAtom: any, get: any, set: any, action: any) => {\n const { payload } = action;\n\n const state = get(updatedAtom);\n\n const mergedState = merge({}, state, payload);\n\n set(updatedAtom, mergedState);\n },\n});\n\nexport const getWebhookSettings = (get: any) => getSettings(get, [webhookSettingsAtom, updatedWebhookSettingsAtom]);\n","import { atom, WritableAtom } from 'jotai';\nimport { isEmpty, isNil, omitBy } from 'lodash';\nimport { addonsSettingsAtom, getAddonsSettings, updatedAddonsSettingsAtom } from './addons';\nimport { ACTION_TYPES } from './base';\nimport { databaseSettingsAtom, getDatabaseSettings, updatedDatabaseSettingsAtom } from './database';\nimport { getImageSettings, imageSettingsAtom, updatedImageSettingsAtom } from './image';\nimport { getSecuritySettings, securitySettingsAtom, updatedSecuritySettingsAtom } from './security';\nimport { getStorageSettings, storageSettingsAtom, updatedStorageSettingsAtom } from './storage';\nimport { getVideoSettings, updatedVideoSettingsAtom, videoSettingsAtom } from './video';\nimport { getWatermarkSettings, updatedWatermarkSettingsAtom, watermarkSettingsAtom } from './watermark';\nimport { webhookSettingsAtom, updatedWebhookSettingsAtom, getWebhookSettings } from './webhook';\n\n\n\n\ntype Atom = {\n\n // Name of the settings group\n name: string;\n\n // Atom that holds the new settings\n updatedAtom: WritableAtom;\n\n // Atom that holds the current settings\n combinedAtom: WritableAtom;\n\n // Function to get the current settings\n getter: (get: any) => any;\n};\n\n\ntype Dict = {\n\n // Entry in the dictionary\n [key: string]: T;\n\n};\n\n\n/**\n * The list of all settings atoms and their getters.\n * \n * @type {Atom[]}\n * \n * \n */\nconst atomsList: Atom[] = [\n {\n name: 'addons',\n updatedAtom: updatedAddonsSettingsAtom,\n combinedAtom: addonsSettingsAtom,\n getter: getAddonsSettings,\n },\n {\n name: 'database',\n updatedAtom: updatedDatabaseSettingsAtom,\n combinedAtom: databaseSettingsAtom,\n getter: getDatabaseSettings,\n },\n {\n name: 'image',\n updatedAtom: updatedImageSettingsAtom,\n combinedAtom: imageSettingsAtom,\n getter: getImageSettings,\n },\n {\n name: 'auth',\n updatedAtom: updatedSecuritySettingsAtom,\n combinedAtom: securitySettingsAtom,\n getter: getSecuritySettings,\n },\n {\n name: 'storage',\n updatedAtom: updatedStorageSettingsAtom,\n combinedAtom: storageSettingsAtom,\n getter: getStorageSettings,\n },\n {\n name: 'video',\n updatedAtom: updatedVideoSettingsAtom,\n combinedAtom: videoSettingsAtom,\n getter: getVideoSettings,\n },\n {\n name: 'watermark',\n updatedAtom: updatedWatermarkSettingsAtom,\n combinedAtom: watermarkSettingsAtom,\n getter: getWatermarkSettings,\n },\n {\n name: 'webhook',\n updatedAtom: updatedWebhookSettingsAtom,\n combinedAtom: webhookSettingsAtom,\n getter: getWebhookSettings,\n },\n];\n\n\nexport const settingsAtom = atom(\n\n\n\n /**\n * \n * @param get \n * @returns \n */\n (get) => {\n let state = {};\n\n atomsList.forEach((atom) => {\n const { name, combinedAtom } = atom;\n const atomState = get(combinedAtom);\n state = { ...state, [name]: atomState };\n });\n\n state = omitBy(state, isNil);\n return isEmpty(state) ? null : state;\n },\n\n\n\n /**\n * \n * @param get\n * @param set\n * @param action\n * \n * @returns \n */\n (get, set, action) => {\n const { type, payload } = action;\n\n atomsList.forEach((atom) => {\n const { name, combinedAtom } = atom;\n\n if (\n type === ACTION_TYPES.SAVE_CHANGES ||\n type === ACTION_TYPES.UNDO_CHANGES ||\n type === ACTION_TYPES.CLEAR_STATE\n ) {\n set(combinedAtom, { type });\n return;\n }\n\n if (!payload[name]) return;\n\n set(combinedAtom, {\n type: type,\n payload: payload[name],\n });\n });\n },\n\n);\n\n\n\n/**\n * \n * @name updatedSettingsAtom\n * \n * @description\n * This atom is used to store the updated settings.\n * \n */\nexport const updatedSettingsAtom = atom(\n\n\n // This function is used to get the updated settings.\n (get) => {\n let state: Dict = {};\n let numberOfValues = 0\n\n for (const atom of atomsList) {\n const atomState = atom.getter(get);\n if (isNil(atomState)) continue;\n state[atom.name] = atomState;\n numberOfValues += 1;\n }\n\n return numberOfValues === 0 ? null : state;\n }\n\n);\n\n\n\n","import { useUpdateAtom } from 'jotai/utils';\nimport { useSignOut } from 'react-auth-kit';\nimport { settingsAtom } from 'src/shared/settings';\nimport { ACTION_TYPES } from 'src/shared/settings/base';\n\nconst useLogout = () => {\n const signOut = useSignOut();\n\n const updateSettings = useUpdateAtom(settingsAtom);\n\n const logOut = () => {\n //updateSettings({ type: ACTION_TYPES.CLEAR_STATE });\n signOut();\n window.location.reload();\n };\n\n return logOut;\n};\n\nexport default useLogout;\n","// import * as Sentry from '@sentry/react';\nimport { useAtom } from 'jotai';\nimport { useMemo } from 'react';\nimport { useQuery, UseQueryOptions } from 'react-query';\nimport { queryFnFetchErrorWrapper, throwFetchError } from 'src/api/utils/errorHandlers';\nimport { mergeQueryOptions } from 'src/api/utils/helpers';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { ACTION_TYPES } from 'src/shared/settings/base';\nimport { settingsAtom } from 'src/shared/settings/index';\nimport { CustomQueryOptions, FetchError } from 'src/types/TApiQueries';\nimport { User } from 'src/types/TUser';\nimport { getSettings } from '../functions/userApi';\n\n\nimport {\n originalStoryBoardTypeAtom,\n} from 'src/shared/settings/video';\n\n\n\nexport function useSettingsQuery(options?: CustomQueryOptions, queryOptions?: UseQueryOptions) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const [settings, setSettings] = useAtom(settingsAtom);\n const [originalStoryBoardType, setOriginalStoryBoardType] = useAtom(originalStoryBoardTypeAtom);\n\n const fetchFn = async (token: string) => {\n if (settings && originalStoryBoardType !== '') return settings;\n\n const result = (await getSettings(token)) as any;\n\n setSettings({\n type: ACTION_TYPES.SET_STATE,\n payload: result.data,\n });\n\n setOriginalStoryBoardType(result.data.video.thumbnails.storyboard.mode);\n\n console.debug(result.data.video.thumbnails.storyboard.mode)\n\n\n return result.data;\n };\n\n const queryFn = useMemo(() => queryFnFetchErrorWrapper(() => fetchFn(accessToken)), [accessToken]);\n\n const query = useQuery([queryNames.settings], queryFn, actualQueryOptions);\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching settings', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n return query;\n}\n","import { APISchemaUpdate, FetchResult } from 'src/types/TApiQueries';\nimport { config } from 'src/utils/config';\nimport { User } from 'src/types/TUser';\nimport { getStandardHeaders, getUploadHeaders, performFetchWithLogging } from '../utils/helpers';\n\nexport async function getSettings(accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/user/settings`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\ntype UpdateSettingsSchema = {\n key: string;\n value: {\n [key: string]: any;\n };\n};\n\nexport async function updateSettings(data: UpdateSettingsSchema, accessToken: string): Promise> {\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(`${config.hostUrl}/api/v1/user/settings/update`, {\n method: 'PATCH',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function updateAddonSettingsApi(data: any, addon: string, accessToken: string): Promise> {\n const payload = JSON.stringify(data);\n\n return performFetchWithLogging(`${config.hostUrl}/api/v1/user/settings/addons/${addon}`, {\n method: 'POST',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n body: payload,\n });\n}\n\n\nexport async function saveSettingsAsTemplate(data: any, accessToken: string): Promise> {\n return new Promise((resolve) => setTimeout((): void => resolve(data), 3000));\n}\n\nexport async function updateWatermark(file: any, accessToken: string): Promise> {\n const form = new FormData();\n form.append('name', file);\n\n return performFetchWithLogging(`${config.hostUrl}/api/v1/user/settings/watermark`, {\n method: 'POST',\n headers: getUploadHeaders(accessToken),\n credentials: 'include',\n body: form,\n });\n}\n","import React, { useState } from 'react';\nimport BaseModal from '../BaseModal';\nimport { useSettingsQuery } from 'src/api/queries/userQueries';\nimport Checkbox from 'src/components/Checkbox';\nimport styles from './Reprocess.module.scss';\nimport Button from '../Button';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { updateAssetBatchReprocess } from 'src/api/functions/assetsApi';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useModel from 'src/hooks/useModal';\n\ninterface Props {}\n\nexport const ReprocessModal: React.FC = () => {\n const [errorMessage, setErrorMessage] = useState('');\n const [dataToSend, setDataToSend] = useState<{\n [ids: string]: string[];\n conversions: string[];\n transcodes: string[];\n addons: string[];\n }>({ ids: [], conversions: [], transcodes: [], addons: [] });\n const [loading, setLoading] = useState(false);\n\n const { data, isLoading } = useSettingsQuery();\n const accessToken = useAccessToken();\n const { showSuccess, showAlert } = useAlerts();\n const { closeModal } = useModel();\n\n if (isLoading) {\n return null;\n }\n\n const conversions = data?.image?.conversions ?? [];\n const transcodes = data?.video?.transcodes ?? {};\n const addons = data?.addons ?? {};\n\n const stateHandler = (e: React.ChangeEvent, store: string, key: string) => {\n const d = { ...dataToSend };\n if (e.target.checked) {\n d[store].push(key);\n } else {\n d[store] = d[store].filter((item: string) => item !== key);\n }\n setDataToSend(d);\n };\n\n const modifySetIds = (data: string[]) => {\n setDataToSend((prev: any) => {\n const d = { ...prev };\n d['ids'] = data;\n return d;\n });\n };\n\n const splitId = (stringID: string) => {\n if (stringID.length !== 0) {\n let ids: string[] = stringID.split(',');\n if (ids.length > 100) {\n setErrorMessage('Number of Assets must be lesser than 100');\n return;\n }\n let err_flag = false;\n ids.forEach((id: string) => {\n if (id.length !== 32) {\n err_flag = true;\n }\n });\n if (err_flag) {\n setErrorMessage(\"Invalid Asset ID's Detected\");\n } else {\n setErrorMessage('');\n modifySetIds(ids);\n }\n } else {\n setErrorMessage('');\n modifySetIds([]);\n }\n };\n\n const submitBtn = async () => {\n setLoading(true);\n try {\n const response = await updateAssetBatchReprocess(dataToSend, accessToken);\n showSuccess(`Re-processing Request Submitted Sucessfully for ${dataToSend['ids'].length} Assets !`);\n closeModal();\n } catch (error) {\n showAlert('Invalid Input fields. Please Contact Support Team');\n } finally {\n setLoading(false);\n }\n };\n const excludedKeys = [\n 'REMOVE_BACKGROUND',\n 'REMOVE_REDEYE',\n 'IMAGE_AUTOFIX',\n 'IMAGE_DEEPZOOM',\n 'IMAGE_GRAPHICS',\n 'VIDEO_TRANSCODE',\n 'IMAGE_COLLAGE',\n ];\n return (\n \n
\n

Re-process Assets

\n
\n
\n {\n splitId(e.target.value);\n }}\n />\n {errorMessage && {errorMessage}}\n
\n
\n

Conversions

\n
\n {conversions.map((conv: any) => {\n return (\n stateHandler(e, 'conversions', conv['key'])}\n />\n );\n })}\n
\n

Transcodes

\n {Object.keys(transcodes).map((key) => {\n return (\n stateHandler(e, 'transcodes', key)}\n />\n );\n })}\n

Addons

\n\n {Object.keys(addons).map((key) => {\n return (\n addons[key]['added'] &&\n addons[key]['enabled'] &&\n !excludedKeys.includes(key) && ( // Add condition to check if key is not in the excluded list\n stateHandler(e, 'addons', key)}\n />\n )\n );\n })}\n
\n
\n
\n 0 ||\n dataToSend['ids'].length === 0 ||\n (dataToSend['addons'].length === 0 &&\n dataToSend['conversions'].length === 0 &&\n dataToSend['transcodes'].length === 0)\n }\n onClick={submitBtn}\n loading={loading}\n >\n Submit\n \n
\n
\n
\n );\n};\n","import React, { useState } from 'react';\nimport BaseModal from '../BaseModal';\n\nimport styles from './Getlinks.module.scss';\nimport Input from '../Input';\nimport Button from '../Button';\nimport Select from '../Select';\nimport Checkbox from '../Checkbox';\nimport { useAuthUser } from 'react-auth-kit';\nimport { getBatchAssetLinks } from 'src/api/functions/assetsApi';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { CaretLeft } from 'src/common/icons';\nimport cn from 'classnames';\n\ninterface Props {}\n\ninterface U {\n asset_id: string;\n url: string;\n}\n\nexport const GetLinksModal: React.FC = () => {\n const [errorMessage, setErrorMessage] = useState('');\n const [loading, setLoading] = useState(false);\n const [showResult, setShowResult] = useState(false);\n const [urls, setUrls] = useState();\n\n const auth = useAuthUser();\n const accessToken = useAccessToken();\n const { showAlert } = useAlerts();\n\n const [dataToSend, setDataToSend] = useState<{\n ids: string[];\n expiry: number;\n content_key: string;\n delivery_mode: string;\n is_expiry_max: boolean;\n }>({\n ids: [],\n expiry: 1,\n content_key: 'original',\n delivery_mode: 'display',\n is_expiry_max: false,\n });\n\n const modifySetIds = (data: string[]) => {\n setDataToSend((prev: any) => {\n const d = { ...prev };\n d['ids'] = data;\n return d;\n });\n };\n\n const splitId = (stringID: string) => {\n if (stringID.length !== 0) {\n let ids: string[] = stringID.split(',');\n if (ids.length > 100) {\n setErrorMessage('Number of Assets must be lesser than 100');\n return;\n }\n setErrorMessage('');\n modifySetIds(ids);\n } else {\n setErrorMessage('');\n modifySetIds([]);\n }\n };\n\n const submitBtn = () => {\n setLoading(true);\n const content_key = dataToSend['content_key'];\n const expiry = dataToSend['expiry'] * 3600;\n const is_expiry_max = dataToSend['is_expiry_max'];\n const delivery_mode = dataToSend['delivery_mode'];\n const ids: string[] = [];\n dataToSend['ids'].forEach((id) => {\n ids.push(id.trim());\n });\n if (expiry < 1) {\n setErrorMessage('Min expiry cannot be lesser than 1 hour');\n setLoading(false);\n return;\n }\n getBatchAssetLinks(ids, accessToken, content_key, expiry, is_expiry_max, delivery_mode, auth()!.accessId)\n .then((value) => {\n const temp: U[] = [];\n Object.keys(value).forEach((key) => {\n temp.push({ asset_id: key, url: value[key] });\n });\n setUrls(temp);\n setShowResult(true);\n })\n .catch((error) => {\n showAlert('Oops ! Something went wrong.');\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n return (\n \n

\n {showResult && (\n {\n setShowResult(false);\n setUrls(undefined);\n }}\n />\n )}{' '}\n Get Asset Links{' '}\n

\n {!showResult && (\n \n
\n {\n splitId(e.target.value);\n }}\n value={dataToSend['ids']}\n />\n
\n
\n \n {errorMessage}\n \n\n
\n
\n

Content Key

\n {\n setDataToSend((prev: any) => {\n return { ...prev, content_key: v };\n });\n }}\n />\n
\n\n
\n

Delivery Mode

\n {\n setDataToSend((prev: any) => {\n return { ...prev, delivery_mode: v };\n });\n }}\n />\n
\n\n
\n

Expiry

\n
\n {\n setErrorMessage('');\n setDataToSend((prev: any) => {\n return { ...prev, expiry: v };\n });\n }}\n />\n hour\n

( OR )

\n {\n setDataToSend((prev: any) => {\n return { ...prev, is_expiry_max: v.target.checked };\n });\n }}\n />\n
\n
\n
\n
\n
\n \n Get Links\n \n
\n
\n )}\n {showResult && (\n \n
\n \n \n \n \n \n \n \n \n {urls?.map((data) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
Asset IDLink
{data.asset_id}\n \n {data.url ? data.url : 'Content key not available for asset'}\n \n
\n
\n
\n )}\n
\n );\n};\n","import React, { useState } from 'react';\nimport BaseModal from '../BaseModal';\nimport styles from './BatchCdn.module.scss';\nimport Input from '../Input';\nimport Select from '../Select';\nimport Button from '../Button';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { batchCDNPrefetch, batchCDNPurge } from 'src/api/functions/assetsApi';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport useModel from 'src/hooks/useModal';\n\ninterface Props {}\n\nexport const BatchCdnModal: React.FC = () => {\n const [errorMessage, setErrorMessage] = useState('');\n const [loading, setLoading] = useState(false);\n\n const { showAlert, showSuccess } = useAlerts();\n const accessToken = useAccessToken();\n const { closeModal } = useModel();\n\n const [dataToSend, setDataToSend] = useState<{\n urls: string[];\n cache_expiry: number;\n action: string;\n }>({\n urls: [],\n cache_expiry: 12,\n action: 'PREFETCH',\n });\n\n const modifySetIds = (data: string[]) => {\n setDataToSend((prev: any) => {\n const d = { ...prev };\n d['urls'] = data;\n return d;\n });\n };\n\n const splitId = (stringID: string) => {\n if (stringID.length !== 0) {\n let urls: string[] = stringID.split(',');\n if (urls.length > 1000) {\n setErrorMessage(\"Number of Asset URL's must be lesser than 1000\");\n return;\n }\n modifySetIds(urls);\n } else {\n setErrorMessage('');\n modifySetIds([]);\n }\n };\n\n const submitBtn = () => {\n setLoading(true);\n const urls = dataToSend['urls'];\n const cache_expiry = dataToSend['cache_expiry'];\n if (cache_expiry > 720) {\n setErrorMessage('Max cache expiry cannot exceed 720 hours');\n setLoading(false);\n return;\n } else if (cache_expiry < 12) {\n setErrorMessage('Min cache expiry is 12 hours');\n setLoading(false);\n return;\n } else {\n setErrorMessage('');\n }\n if (dataToSend['action'] === 'PREFETCH') {\n batchCDNPrefetch({ asset_urls: urls, cache_expiry: cache_expiry }, accessToken)\n .then((res) => {\n closeModal();\n showSuccess('Prefetched Asset Successfully !');\n })\n .catch((err) => {\n showAlert('Error Initiating Prefetch !');\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (dataToSend['action'] === 'PURGE') {\n batchCDNPurge({ asset_urls: urls }, accessToken)\n .then((res) => {\n closeModal();\n showSuccess('Purge Asset Initiated !');\n })\n .catch((err) => {\n showAlert('Error Initiating Purge !');\n })\n .finally(() => {\n setLoading(false);\n });\n }\n };\n\n return (\n \n \n

CDN Prefetch/Purge

\n
\n {\n splitId(e.target.value);\n }}\n value={dataToSend['urls']}\n />\n
\n\n \n {errorMessage}\n \n\n
\n
\n

Cache Expiry

\n
\n {\n setErrorMessage('');\n setDataToSend((prev: any) => {\n return { ...prev, cache_expiry: v };\n });\n }}\n />\n hours\n
\n
\n\n
\n

Action

\n {\n setErrorMessage('');\n setDataToSend((prev: any) => {\n return { ...prev, action: v };\n });\n }}\n />\n
\n\n
\n \n OK\n \n
\n
\n
\n
\n );\n};\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './NavBar.module.scss';\nimport messages from './messages';\nimport { Link, NavLink, useHistory } from 'react-router-dom';\nimport { Bell, CaretDown, Home, Settings, UserCircle } from 'src/common/icons';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport SvgUserCircle from 'src/common/icons/UserCircle';\nimport Dropdown from '../Dropdown';\nimport { useAuthUser } from 'react-auth-kit';\nimport useRoleManager from 'src/hooks/useRoleManager';\n//import SvgLogoIcon from 'src/common/icons/LogoIcon';\nimport LogoWhite from '../LogoWhite';\nimport useLogout from 'src/hooks/useLogout';\nimport Notifications from '../Notifications';\nimport useModel from 'src/hooks/useModal';\nimport { ReprocessModal } from './ReprocessModal';\nimport { GetLinksModal } from './GetLinksModal';\nimport { BatchCdnModal } from './BatchCdnModal';\n\n\ntype AdminNavBarProps = {\n className?: string;\n};\n\nconst DropDownTemplate = () => {\n return (\n
\n Tools\n \n
\n );\n};\n\nexport const AdminNavBar: React.FC = ({ className }) => {\n const { formatMessage } = useIntl();\n const auth = useAuthUser();\n const history = useHistory();\n const logOut = useLogout();\n const username = auth() ? auth()!.username : '';\n\n const { isAdmin } = useRoleManager();\n const { isManager } = useRoleManager();\n const { showModal } = useModel();\n\n const getToolsOptions = () => {\n const options = [];\n options.push({\n key: 'getlink',\n value: 'Get Asset Links',\n noBorderBottom: false,\n datatest: 'get-asset-links',\n });\n if (isAdmin || isManager) {\n options.push({\n key: 'cdn',\n value: 'CDN Prefetch/Purge',\n noBorderBottom: false,\n datatest: 'cdn-prefetch-purge'\n });\n }\n if(isAdmin){\n options.push({\n key: 'usage',\n value: 'Check Usage',\n noBorderBottom:false\n })\n }\n if (isAdmin) {\n options.push({\n key: 'reprocess',\n value: 'Reprocess Assets',\n noBorderBottom: false,\n datatest: 'reprocess-assets'\n });\n }\n return options;\n };\n\n const handleUserMenuClick = (key: string) => {\n switch (key) {\n case 'me':\n case 'settings':\n history.push(`/${key}`);\n break;\n case 'logout':\n logOut();\n break;\n default:\n throw new Error(`Unknown navigation key: ${key}`);\n }\n };\n\n const handleToolClick = (key: string) => {\n switch (key) {\n case 'reprocess':\n showModal();\n break;\n case 'getlink':\n showModal();\n break;\n case 'cdn':\n showModal();\n break\n case 'usage':\n history.push(\"/usage\")\n break;\n default:\n throw new Error(`Unknown navigation key: ${key}`);\n }\n };\n\n return (\n \n );\n};\n\nexport default AdminNavBar;\n","import { AdminNavBar } from './NavBar';\n\nexport default AdminNavBar;\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n unsavedChanges: {\n id: 'component.saveChangesBar.unsavedChanges',\n defaultMessage: 'Unsaved changes',\n },\n cancel: {\n id: 'component.saveChangesBar.cancel',\n defaultMessage: 'Cancel',\n },\n save: {\n id: 'component.saveChangesBar.save',\n defaultMessage: 'Save',\n },\n successfulySaved: {\n id: 'component.saveChangesBar.success',\n defaultMessage: 'Settings successfully updated',\n },\n});\n","import { useAtomValue, useUpdateAtom } from 'jotai/utils';\nimport { useMemo } from 'react';\nimport { useMutation, UseMutationOptions } from 'react-query';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { ACTION_TYPES } from 'src/shared/settings/base';\nimport { settingsAtom, updatedSettingsAtom } from 'src/shared/settings/index';\n\nimport { FetchError } from 'src/types/TApiQueries';\nimport { updateSettings, saveSettingsAsTemplate, updateWatermark } from '../functions/userApi';\nimport { queryFnFetchErrorWrapper } from '../utils/errorHandlers';\n\n\nconst prepareRequest = (data: any) => {\n const updateRequestsData: any[] = [];\n\n Object.keys(data).forEach((key) => {\n updateRequestsData.push({\n key: key,\n value: data[key],\n });\n });\n\n\n\n return updateRequestsData;\n};\n\nexport function useSettingsMutation(mutationOptions?: UseMutationOptions) {\n\n\n\n const accessToken = useAccessToken();\n const updatedSettings = useAtomValue(updatedSettingsAtom);\n const setSettingsAtom = useUpdateAtom(settingsAtom);\n\n const mutationFn = useMemo(\n () =>\n queryFnFetchErrorWrapper(() =>\n Promise.allSettled(prepareRequest(updatedSettings).map((data) => updateSettings(data, accessToken))),\n ),\n [accessToken, updatedSettings],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, ...args) => {\n // cache the updated values to our state\n setSettingsAtom({ type: ACTION_TYPES.SAVE_CHANGES });\n\n\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n}\n\nexport function useSettingsTemplateMutation(mutationOptions?: UseMutationOptions) {\n const accessToken = useAccessToken();\n const combinedSettings = useAtomValue(settingsAtom);\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper(() => saveSettingsAsTemplate(combinedSettings, accessToken)),\n [accessToken, combinedSettings],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, ...args) => {\n //TODO: Given that the API might return cached values\n // the local cache should be updated with the new values\n\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n}\n","import { useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport styles from './SaveChangesBar.module.scss';\nimport messages from './messages';\nimport { WarningCircle } from 'src/common/icons';\nimport Button from 'src/components/Button';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { motion } from 'framer-motion';\nimport { useAtomValue, useUpdateAtom } from 'jotai/utils';\nimport { useSettingsMutation } from 'src/api/mutations/userMutations';\nimport { settingsAtom, updatedSettingsAtom } from 'src/shared/settings/index';\nimport { ACTION_TYPES } from 'src/shared/settings/base';\nimport { useAlerts } from 'src/common/AlertManager';\n\nimport {\n originalStoryBoardTypeAtom,\n currentStoryBoardTypeAtom\n} from 'src/shared/settings/video';\n\nimport { useAtom } from 'jotai';\nimport { storageAlertStatus } from 'src/shared/settings/storage';\n\n\ntype SaveChangesBarProps = {\n className?: string;\n source?: string\n};\n\n\nconst useUnsavedChangesManager = () => {\n const setSettings = useUpdateAtom(settingsAtom);\n\n const updatedSettings = useAtomValue(updatedSettingsAtom);\n const isUnsaved = updatedSettings ? true : false\n\n const undoActions = () => {\n setSettings({ type: ACTION_TYPES.UNDO_CHANGES });\n\n }\n\n return { isUnsaved, undoActions };\n\n}\n\n\n\nconst useSettingsMutationManager = (source?: string) => {\n\n const { showSuccess, showAlert } = useAlerts();\n\n const [storageAlert, setStorageAlert] = useAtom(storageAlertStatus);\n\n const { formatMessage } = useIntl();\n\n const settingsMutation = useSettingsMutation({\n onError: (error) => {\n // setVisible(true);\n showAlert('An error occured, try again later.');\n },\n onSuccess: (result) => {\n if (result[0].value.status === 400) {\n showAlert('Invalid inputs. Please update values and retry');\n if (source === \"storage\") {\n setStorageAlert(true)\n } else {\n setStorageAlert(false)\n }\n } else if (result[0].value.status >= 500) {\n showAlert('Failed to update Settings. Please retry');\n setStorageAlert(false)\n } else {\n showSuccess(formatMessage(messages.successfulySaved));\n setStorageAlert(false)\n }\n\n },\n });\n\n return settingsMutation;\n\n}\n\n\nexport const SaveChangesBar: React.FC = ({ className, source }) => {\n\n // Hooks\n const unsavedChangesManager = useUnsavedChangesManager()\n const settingsMutationManager = useSettingsMutationManager(source)\n\n // Event Handlers\n const handleSave = async () => await settingsMutationManager.mutateAsync(null);\n const handleCancel = () => unsavedChangesManager.undoActions();\n\n\n\n return (\n \n
\n

\n \n \n \n \n

\n
\n \n \n
\n
\n
\n );\n};\n\nexport default SaveChangesBar;\n","import { SaveChangesBar } from './SaveChangesBar'\n\nexport default SaveChangesBar\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n storage: {\n id: 'component.settingsNavigation.storage',\n defaultMessage: 'Storage',\n },\n security: {\n id: 'component.settingsNavigation.security',\n defaultMessage: 'Security',\n },\n image: {\n id: 'component.settingsNavigation.image',\n defaultMessage: 'Image',\n },\n video: {\n id: 'component.settingsNavigation.video',\n defaultMessage: 'Video',\n },\n webhook: {\n id: 'component.settingsNavigation.webhook',\n defaultMessage: 'Webhook',\n },\n database: {\n id: 'component.settingsNavigation.database',\n defaultMessage: 'Database',\n },\n addons: {\n id: 'component.settingsNavigation.addons',\n defaultMessage: 'Add-ons',\n },\n tools: {\n id: 'component.settingsNavigation.addons',\n defaultMessage: 'Tools',\n },\n saveTemplate: {\n id: 'component.settingsNavigation.saveTemplate',\n defaultMessage: 'Save Settings as Template',\n },\n});\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './SettingsNavigation.module.scss';\nimport messages from './messages';\nimport { FormattedMessage } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport Button from 'src/components/Button';\nimport { useSettingsTemplateMutation } from 'src/api/mutations/userMutations';\nimport { useSettingsQuery } from 'src/api/queries/userQueries';\n\n\n// import Dialog from './Dialog';\n\n/*\ninterface CustomNavLinkProps {\n children: React.ReactNode;\n to: string;\n // onClick: () => void;\n}\n\n\nconst CustomNavLink = (props: CustomNavLinkProps) => {\n\n const [showDialog, setShowDialog] = React.useState(false);\n\n const handleClick = (e: any) => {\n e.preventDefault();\n setShowDialog(true);\n }\n\n const handleDialogClick = async (clickedYes: boolean) => {\n\n if (clickedYes) {\n\n }\n\n setShowDialog(false);\n }\n\n if (showDialog) {\n return \n }\n\n return (\n <>\n \n {props.children}\n \n \n )\n}\n\n*/\n\n\n\ntype SettingsNavigationProps = {\n className?: string;\n};\n\nexport const SettingsNavigation: React.FC = ({ className }) => {\n const settingsMutation = useSettingsTemplateMutation();\n\n const handleSaveTemplate = async () => {\n await settingsMutation.mutateAsync(null);\n };\n\n const { isLoading, data } = useSettingsQuery();\n return (\n
\n \n {/**/}\n
\n );\n};\n\nexport default SettingsNavigation;\n","import { SettingsNavigation } from './SettingsNavigation'\n\nexport default SettingsNavigation\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n collectionDeleted: {\n id: 'component.collectionCard.collectionDeleted',\n defaultMessage: 'Collection deleted',\n },\n});\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './CollectionCard.module.scss';\nimport messages from './messages';\nimport { CaretDown, Copy, Eye, FileArrowDown, Stack, TrashSimple, User, UserCircle, Users } from 'src/common/icons';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useDeleteCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport { useIntl } from 'react-intl';\nimport { getCollectionDownloadUrl } from 'src/api/functions/collectionsApi';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport Loader from '../Loader';\nimport { Collection } from 'src/types/TCollection';\nimport moment from 'moment';\nimport { getThumbnailUrl } from 'src/utils/previews';\nimport useModal from 'src/hooks/useModal';\nimport ConfirmDuplicateCollectionModal from '../ConfirmDuplicateCollectionModal';\nimport { useAuthUser } from 'react-auth-kit';\n\ntype CollectionCardProps = {\n collection: Collection;\n className?: string;\n};\n\nexport const CollectionCard: React.FC = ({ className, collection, ...rest }) => {\n const { id, name, assets, last_update, group_access, description } = collection;\n\n const auth = useAuthUser();\n const history = useHistory();\n const userEmail = auth() ? auth()!.userEmail : '';\n\n const { showAlert, showSuccess } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n const { formatMessage } = useIntl();\n const [isPreparingDownload, setIsPreparingDownload] = React.useState(false);\n const accessToken = useAccessToken();\n const { showModal } = useModal();\n\n const deleteCollectionMutation = useDeleteCollectionMutation(id, {\n onSuccess: () => {\n showSuccess(formatMessage(messages.collectionDeleted));\n },\n onError: (error) => {\n showAlert(getErrorMessage(error.message));\n },\n });\n\n const goToCollection = () => {\n history.push(`/collection/${id}`);\n };\n\n const handleDownloadCollection = async () => {\n if (isPreparingDownload) return;\n\n try {\n setIsPreparingDownload(true);\n const url: any = await getCollectionDownloadUrl(id, accessToken);\n\n if (url.status >= 400) {\n showAlert(`Download not available at the moment. Please try again later.`);\n setIsPreparingDownload(false);\n return;\n }\n\n window.open(url);\n setIsPreparingDownload(false);\n \n } catch (error) {\n showAlert(`Download not available at the moment. Please try again later.`);\n setIsPreparingDownload(false);\n }finally{\n setIsPreparingDownload(false);\n }\n };\n\n const handleDeleteCollection = () => deleteCollectionMutation.mutateAsync(undefined);\n const handleDuplicateCollection = () =>\n showModal(\n ,\n );\n\n return (\n
\n
\n \n {group_access ? (\n <>\n \n Group Collection\n \n ) : (\n <>\n \n Private Collection\n \n )}\n \n\n {assets.length === 0 && }\n {assets.length > 0 && (\n \n )}\n\n
\n \n \n
\n \n {userEmail === collection.user_email && (\n \n )}\n
\n
\n
\n
\n
\n
{name}
\n {assets.length}\n
\n {description &&

{description}

}\n
\n Updated {moment(last_update).fromNow()}\n
\n {/** TODO: Implement the user avatars */}\n {false && (\n
\n {new Array(5).fill(0).map((_, index) => (\n \n ))}\n
\n )}\n
\n
\n );\n};\n\nexport default CollectionCard;\n","import { CollectionCard } from './CollectionCard'\n\nexport default CollectionCard\n","/**\n *\n * This file is part of Filespin.io (https://filespin.io)\n *\n **/\n\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport useRoleManager from 'src/hooks/useRoleManager';\nimport { deleteAsset, getAssetMediaUrl, restoreAsset } from 'src/api/functions/assetsApi';\nimport Checkbox from '../Checkbox';\nimport { PlayBox, FileArrowDown, TrashSimple, Gear, Pencil, Stack, WarningCircle } from 'src/common/icons';\nimport { isPreviewPlayable } from 'src/utils/previews';\nimport { humanFileSize } from 'src/utils/transform';\nimport styles from './ListingRow.module.scss';\nimport SvgArrowCounterClockwise from 'src/common/icons/ArrowCounterClockwise';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport { deletedAssetsAtom } from 'src/shared/deletedAssets';\nimport AssetPreview from '../AssetPreview';\nimport { useCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { useCollectionQuery } from 'src/api/queries/collectionsQueries';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { CollectionResponse } from 'src/types/TCollection';\n\nimport * as React from 'react';\nimport { useAuthUser } from 'react-auth-kit';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport ReactTooltip from 'react-tooltip';\nimport { useQueryClient } from 'react-query';\nimport cn from 'classnames';\nimport { detectExtension } from 'mimetypes';\nimport { useAtom } from 'jotai';\n\ninterface ListingRowProps {\n // Style class name\n className?: string;\n\n // Asset id\n id: string;\n\n // Siblings\n siblings?: string[];\n\n // Image url for the asset\n imageUrl: string;\n\n // Name of the asset\n name: string;\n\n // Size of the asset\n size: string;\n\n // Upload time of the asset\n uploadTime: string;\n\n // Content type of the asset (e.g. image/jpeg)\n contentType: string;\n\n // Is asset trashed\n trashed: boolean;\n\n // Status of the asset\n status: string;\n\n // Is asset selected\n isSelected?: boolean;\n\n error?: any;\n\n // On select change handler\n onSelectChange?: React.ChangeEventHandler & ((value: React.ChangeEvent) => void);\n}\n\n/**\n *\n * @name ListingRow\n *\n *\n * @param {string} className Style class name\n * @param {string} id Asset id\n * @param {string[]} siblings\n * @param {string} imageUrl\n * @param {string} name\n * @param {string} size\n * @param {string} uploadTime\n * @param {string} contentType\n * @param {boolean} trashed\n * @param {string} status\n * @param {boolean} isSelected\n * @param {object} error\n * @param onSelectChange\n * @param rest\n *\n * @returns JSX Element\n *\n *\n * @description\n *\n * This component is used to render a row in the listing view. It is used in the\n * Assets and Collections pages. It is also used in the Trash page.\n *\n *\n **/\nexport const ListingRow: React.FC = ({\n className,\n id,\n siblings,\n imageUrl,\n name,\n size,\n trashed,\n uploadTime,\n contentType,\n isSelected,\n onSelectChange,\n status,\n error,\n ...rest\n}) => {\n const location = useLocation();\n\n return (\n
\n
\n \n
\n\n {!trashed ? (\n \n
\n \n {contentType && status !== 'NOT_READY' && isPreviewPlayable(contentType) && (\n
\n \n
\n )}\n
\n \n ) : (\n
\n \n {contentType && status !== 'NOT_READY' && isPreviewPlayable(contentType) && (\n
\n \n
\n )}\n
\n )}\n\n
\n
\n {status === 'NOT_READY' && (\n
\n Processing\n
\n )}\n {error?.original && (\n \n )}\n {!trashed ? (\n \n {name}\n \n ) : (\n {name}\n )}\n
\n \n {id}\n
\n {detectExtension(contentType).toUpperCase()} {humanFileSize(Number(size))}\n
\n
\n\n
{new Date(uploadTime).toLocaleString()}
\n \n
\n );\n};\n\ninterface ToolBoxProps {\n id: string;\n trashed: boolean;\n siblings?: string[];\n}\n\nconst ToolBox = React.memo((props: ToolBoxProps) => {\n const history = useHistory();\n const downloadingRef = React.useRef('');\n const accessToken = useAccessToken();\n const auth = useAuthUser();\n const [deletedAssets, updateDeletedAssets] = useAtom(deletedAssetsAtom);\n const [isDeletingAsset, setIsDeletingAsset] = React.useState(false);\n const [isRestoringAsset, setIsRestoringAsset] = React.useState(false);\n const location = useLocation();\n\n const { showSuccess, showAlert } = useAlerts();\n\n const { getErrorMessage } = useErrorMessages();\n\n const { isUser } = useRoleManager();\n\n const queryClient = useQueryClient();\n\n const { data: basketData } = useCollectionQuery(undefined, {\n staleTime: 1000 * 60 * 5,\n });\n\n const basketMutation = useCollectionMutation(Number(basketData?.data?.id), {\n onError: (error, newData, context: any) => {\n queryClient.setQueryData([queryNames.collection, null], context.previousData);\n\n showAlert(getErrorMessage(error.message));\n },\n onMutate: (data) => {\n /*showInfo(`Requesting update...`);*/\n const previousData = queryClient.getQueryData([queryNames.collection, null]);\n queryClient.setQueryData(\n [queryNames.collection, null],\n (old: CollectionResponse | undefined) => {\n if (typeof old !== 'undefined') {\n old.data.assets = (old?.data?.assets ?? [])\n .filter((id) => !(data?.deletions ?? []).includes(id))\n .concat(data?.additions ?? []);\n }\n return old;\n },\n );\n return { previousData };\n },\n onSuccess: () => {\n showSuccess('Successfully added asset to basket');\n },\n });\n\n const handleEditAsset = () => history.push(`/asset/${props.id}`, { background: location, sublings: props.siblings });\n\n const getMediaUrl = async () => {\n if (downloadingRef.current === '') {\n const url = await getAssetMediaUrl(props.id, 'original', auth()!.accessId, 'download', accessToken);\n downloadingRef.current = url;\n window.open(url);\n } else {\n window.open(downloadingRef.current);\n }\n };\n\n const addToBasket = () => {\n if (basketMutation.isLoading) return;\n basketMutation.mutateAsync({ additions: [props.id] });\n };\n\n const handleRestoreAsset = async () => {\n if (isRestoringAsset) return;\n\n setIsRestoringAsset(true);\n try {\n const response = await restoreAsset(props.id, accessToken);\n\n if (typeof response.status === 'number' && ![200, 202].includes(response.status)) {\n throw response;\n }\n\n showSuccess(`Successfully restored asset.`);\n } catch (e: any) {\n showAlert(getErrorMessage(e.message));\n } finally {\n setIsRestoringAsset(false);\n }\n };\n\n const handleDeleteAsset = async () => {\n if (isDeletingAsset) return;\n\n setIsDeletingAsset(true);\n\n try {\n const response = await deleteAsset(props.id, accessToken);\n if (typeof response.status === 'number' && ![200, 202].includes(response.status)) {\n throw response;\n }\n\n showSuccess(`Successfully deleted asset.`);\n updateDeletedAssets([...deletedAssets, props.id]);\n } catch (e: any) {\n console.log(e);\n showAlert(getErrorMessage(e.message));\n } finally {\n setIsDeletingAsset(false);\n }\n };\n\n return (\n
\n {!isUser && !props.trashed && (\n \n )}\n\n {!props.trashed && (\n \n )}\n\n {!props.trashed && (\n \n )}\n\n {!isUser &&\n (props.trashed ? (\n \n ) : (\n \n ))}\n
\n );\n});\n\nexport default ListingRow;\n","import { ListingRow } from './ListingRow'\n\nexport default ListingRow\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport styles from './Logo.module.scss';\n\ntype LogoProps = {\n className?: string;\n linkable?: boolean;\n};\n\nconst Icon = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport const Logo: React.FC = ({ className, linkable = true, ...rest }) => {\n return linkable ? (\n \n \n \n ) : (\n
\n \n
\n );\n};\n\nexport default Logo;\n","import { Logo } from './Logo'\n\nexport default Logo\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n\tpoweredBy: {\n\t\tid: 'comp.footer.poweredBy',\n\t\tdefaultMessage: 'powered by',\n\t},\n});\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { FormattedMessage } from 'react-intl';\n\nimport Logo from '../Logo';\n\nimport styles from './Footer.module.scss';\nimport messages from './messages';\n\ntype FooterProps = {\n className?: string;\n};\n\nexport const Footer: React.FC = ({ className, ...rest }) => {\n return (\n
\n \n \n {' '}\n \n
\n );\n};\n\nexport default Footer;\n","import { Footer } from './Footer'\n\nexport default Footer\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n show: {\n id: 'comp.pager.show',\n defaultMessage: 'Show {items}',\n },\n});\n","import cn from 'classnames';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n// import { ChevronLeft, ChevronRight } from 'src/common/icons';\nimport Dropdown from 'src/components/Dropdown';\nimport messages from './messages';\nimport styles from './Pager.module.scss';\n\ntype PagerProps = {\n currentPage: number;\n totalPages: number;\n onChange: (newPage: number) => void;\n itemsPerPage: number;\n onItemsPerPageChange: (itemsPerPage: number) => void;\n className?: string;\n showItemsPerPage?: boolean;\n datatest?:string\n};\n\nconst createRange = (from: number, to: number): number[] => [...Array(to - from)].map((_, i) => i + from);\n\nconst PerPageDropdown = ({\n onItemsPerPageChange,\n itemsPerPage,\n}: Pick) => {\n return (\n
\n ({\n key: e,\n value: e,\n noBorderBottom: true,\n }))}\n className={styles.dropdown}\n >\n \n \n
\n );\n};\n\nexport const Pager: React.FC = ({\n currentPage,\n totalPages,\n onChange,\n itemsPerPage,\n onItemsPerPageChange,\n className,\n showItemsPerPage = true,\n datatest,\n ...rest\n}) => {\n const [value, setValue] = React.useState(currentPage);\n\n const visiblePagesRange = createRange(currentPage - 3, currentPage + 4).filter((v) => v > 0 && v <= totalPages);\n\n const emitValue = (requestedPage: number) => {\n if (requestedPage !== currentPage) onChange(requestedPage);\n };\n\n React.useEffect(() => {\n setValue(currentPage);\n }, [currentPage]);\n\n if (totalPages < 2)\n return showItemsPerPage ? (\n \n ) : null;\n\n return (\n
\n
\n {visiblePagesRange[0] > 1 && (\n \n )}\n {visiblePagesRange[0] > 2 && }\n {visiblePagesRange.map((page, idx) => (\n emitValue(page)}\n className={cn([styles.button, { [styles.active]: currentPage === page }])}\n >\n {page}\n \n ))}\n {visiblePagesRange[visiblePagesRange.length - 1] < totalPages - 1 && }\n {visiblePagesRange[visiblePagesRange.length - 1] < totalPages && (\n emitValue(totalPages)}\n className={cn([styles.button, { [styles.active]: currentPage === totalPages }])}\n >\n {totalPages}\n \n )}\n
\n {showItemsPerPage && }\n
\n );\n};\n\nexport default Pager;\n","import { Pager } from './Pager';\n\nexport default Pager;\n","import * as React from 'react';\nimport cn from 'classnames';\n\nimport { X } from 'src/common/icons';\n\nimport styles from './Tag.module.scss';\nimport messages from './messages';\n\ntype TagProps = {\n className?: string;\n text: string;\n onClose?: () => void;\n};\n\nexport const Tag: React.FC = ({ text, onClose, className, ...rest }) => {\n return (\n
\n {text}\n {onClose && (\n \n \n \n )}\n
\n );\n};\n\nexport default Tag;\n","import { Tag } from './Tag'\n\nexport default Tag\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './PageTitle.module.scss';\nimport messages from './messages';\n\ntype PageTitleProps = {\n className?: string;\n title: string;\n subtitle?: string;\n counter?: number;\n midContainer?: React.ReactNode;\n rightContainer?: React.ReactNode;\n};\n\nexport const PageTitle: React.FC = ({\n title,\n subtitle,\n counter,\n midContainer,\n rightContainer,\n className,\n ...rest\n}) => {\n return (\n
\n
\n {title}\n {subtitle}\n {counter}\n
\n
{midContainer}
\n
{rightContainer}
\n
\n );\n};\n\nexport default PageTitle;\n","import { PageTitle } from './PageTitle'\n\nexport default PageTitle\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n\tview: {\n\t\tid: 'comp.ListingCard.viewAndUpdate',\n\t\tdefaultMessage: 'Details',\n\t},\n\tdownload: {\n\t\tid: 'comp.ListingCard.download',\n\t\tdefaultMessage: 'Download',\n\t},\n});\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { detectExtension } from 'mimetypes';\nimport { Link, useLocation } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport { useAuthUser } from 'react-auth-kit';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport useRoleManager from 'src/hooks/useRoleManager';\n\nimport { deleteAsset, getAssetMediaUrl, restoreAsset } from 'src/api/functions/assetsApi';\nimport Checkbox from '../Checkbox';\nimport {\n PlayBox,\n FileArrowDown,\n CaretDown,\n Eye,\n TrashSimple,\n ArrowCounterClockwise,\n Gear,\n Stack,\n} from 'src/common/icons';\nimport { isPreviewPlayable } from 'src/utils/previews';\nimport { humanFileSize } from 'src/utils/transform';\n\nimport styles from './ListingCard.module.scss';\nimport messages from './messages';\nimport { useState } from 'react';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport ReactTooltip from 'react-tooltip';\nimport { useAtom } from 'jotai';\nimport { deletedAssetsAtom } from 'src/shared/deletedAssets';\nimport AssetPreview from '../AssetPreview';\nimport { useCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { useCollectionQuery } from 'src/api/queries/collectionsQueries';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { CollectionResponse } from 'src/types/TCollection';\nimport { useQueryClient } from 'react-query';\n\nconst timestamp = Date.now();\n\ntype ListingCardProps = {\n className?: string;\n id: string;\n siblings?: string[];\n imageUrl: string;\n name: string;\n size: string;\n trashed: boolean;\n status: string;\n contentType: string;\n isSelected?: boolean;\n error?: any;\n onSelectChange?: React.ChangeEventHandler & ((value: React.ChangeEvent) => void);\n};\n\nexport const ListingCard: React.FC = ({\n className,\n id,\n siblings,\n imageUrl,\n name,\n size,\n trashed,\n contentType,\n isSelected,\n onSelectChange,\n status,\n error,\n ...rest\n}) => {\n const location = useLocation();\n const downloadingRef = React.useRef('');\n const auth = useAuthUser();\n const accessToken = useAccessToken();\n const { isUser } = useRoleManager();\n\n const { showSuccess, showAlert } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n\n const [isDeletingAsset, setIsDeletingAsset] = useState(false);\n const [isRestoringAsset, setIsRestoringAsset] = useState(false);\n\n const [deletedAssets, updateDeletedAssets] = useAtom(deletedAssetsAtom);\n const queryClient = useQueryClient();\n\n const { data: basketData } = useCollectionQuery(undefined, {\n staleTime: 1000 * 60 * 5,\n });\n\n const basketMutation = useCollectionMutation(Number(basketData?.data?.id), {\n onError: (error, newData, context: any) => {\n queryClient.setQueryData([queryNames.collection, null], context.previousData);\n\n showAlert(getErrorMessage(error.message));\n },\n onMutate: (data) => {\n /*showInfo(`Requesting update...`);*/\n const previousData = queryClient.getQueryData([queryNames.collection, null]);\n queryClient.setQueryData(\n [queryNames.collection, null],\n (old: CollectionResponse | undefined) => {\n if (typeof old !== 'undefined') {\n old.data.assets = (old?.data?.assets ?? [])\n .filter((id) => !(data?.deletions ?? []).includes(id))\n .concat(data?.additions ?? []);\n }\n return old;\n },\n );\n return { previousData };\n },\n onSuccess: () => {\n showSuccess('Successfully added asset to basket');\n },\n });\n\n const getMediaUrl = async () => {\n if (downloadingRef.current === '') {\n const url = await getAssetMediaUrl(id, 'original', auth()!.accessId, 'download', accessToken);\n downloadingRef.current = url;\n window.open(url);\n } else {\n window.open(downloadingRef.current);\n }\n };\n\n const handleRestoreAsset = async () => {\n if (isRestoringAsset) return;\n\n setIsRestoringAsset(true);\n try {\n const response = await restoreAsset(id, accessToken);\n\n if (typeof response.status === 'number' && !([200,202].includes(response.status))) {\n throw response;\n }\n\n showSuccess(`Successfully restored asset.`);\n } catch (e: any) {\n showAlert(getErrorMessage(e.message));\n } finally {\n setIsRestoringAsset(false);\n }\n };\n\n const handleDeleteAsset = async () => {\n if (isDeletingAsset) return;\n\n setIsDeletingAsset(true);\n try {\n const response = await deleteAsset(id, accessToken);\n\n if (typeof response.status === 'number' && !([200,202].includes(response.status))) {\n throw response;\n }\n\n showSuccess(`Successfully deleted asset.`);\n updateDeletedAssets([...deletedAssets, id]);\n } catch (e: any) {\n showAlert(getErrorMessage(e.message));\n } finally {\n setIsDeletingAsset(false);\n }\n };\n\n const handleAddToBasket = () => {\n if (basketMutation.isLoading) return;\n basketMutation.mutateAsync({ additions: [id] });\n };\n\n return (\n
\n
\n {status === 'NOT_READY' && (\n
\n Processing\n
\n )}\n\n \n {contentType && status !== 'NOT_READY' && isPreviewPlayable(contentType) && (\n
\n \n
\n )}\n
\n {!trashed && (\n \n \n \n \n )}\n {!trashed && (\n \n )}\n
\n {!trashed && (\n \n )}\n {isUser ? (\n <>\n ) : (\n <>\n {!isUser && trashed ? (\n \n ) : (\n \n )}\n \n )}\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n {error?.original && (\n \n )}\n {!trashed ? (\n \n {name}\n \n ) : (\n {name}\n )}\n
\n \n {detectExtension(contentType).toUpperCase()} {humanFileSize(Number(size))}\n \n
\n
\n
\n );\n};\n\nexport default ListingCard;\n","import { ListingCard } from './ListingCard'\n\nexport default ListingCard\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n search: {\n id: 'comp.SearchBar.search',\n defaultMessage: 'Search',\n },\n basket1: {\n id: 'comp.SearchBar.basketTop',\n defaultMessage: 'ASSETS IN',\n },\n basket2: {\n id: 'comp.SearchBar.basketBottom',\n defaultMessage: 'BASKET',\n },\n refresh: {\n id: 'comp.SearchBar.refresh',\n defaultMessage: 'Refresh page for updates',\n },\n trash: {\n id: 'comp.SearchBar.trash',\n defaultMessage: 'Assets in Recycle bin',\n },\n download: {\n id: 'comp.SearchBar.download',\n defaultMessage: 'Download basket assets',\n },\n basket: {\n id: 'comp.SearchBar.basket',\n defaultMessage: 'Assets in Basket',\n },\n});\n","import * as React from 'react';\n\nfunction FaceSearchIcon(props: React.SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default FaceSearchIcon;\n","import cn from 'classnames';\nimport * as React from 'react';\nimport styles from './Tooltip.module.scss';\n\ntype TooltipProps = {\n className?: string;\n position?: 'top' | 'left' | 'right' | 'bottom';\n isBlock?: boolean;\n delayed?: boolean;\n text: string;\n moveTextOnHover?: boolean;\n};\n\nexport const Tooltip: React.FC = ({\n children,\n className,\n position = 'top',\n isBlock,\n delayed = false,\n text,\n moveTextOnHover=false,\n ...rest\n}) => {\n return (\n \n {text}\n {children}\n
\n );\n};\n\nexport default Tooltip;\n","import { Tooltip } from './Tooltip'\n\nexport default Tooltip\n","import * as React from 'react';\n\nfunction Camera(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default Camera;\n","import * as React from 'react';\n\nfunction Folder(props: React.SVGProps) {\n return (\n \n \n \n \n );\n}\n\nexport default Folder;\n","import * as React from 'react';\nimport Button from 'src/components/Button';\nimport Camera from 'src/common/icons/Camera';\nimport Folder from 'src/common/icons/Folder';\nimport Info from 'src/common/icons/Info';\nimport X from 'src/common/icons/X';\n\nimport styles from './FloatingFaceSearch.module.scss';\n\nimport { Camera as CameraPro, CameraType } from 'react-camera-pro';\n\ntype FloatingFaceSearchProps = {\n image: any;\n onClickCamera: (image: any) => void;\n onClickBrowse: (image: any) => void;\n onClickCancel: () => void;\n foldableFaceFilter?:React.ReactNode\n};\n\nconst FloatingFaceSearch = ({ onClickCamera, onClickBrowse, onClickCancel, image ,foldableFaceFilter }: FloatingFaceSearchProps) => {\n const [isCameraAccessible, setIsCameraAccessible] = React.useState(false);\n const [permissionStatus, setPermissionStatus] = React.useState(null);\n const [loading, setLoading] = React.useState(true);\n const camera = React.useRef(null);\n const streamRef = React.useRef(null); // Store the camera stream\n const fileInputRef = React.useRef(null); // Ref for file input\n\n React.useEffect(() => {\n let permission: PermissionStatus | null = null;\n\n const handlePermissionChange = async () => {\n if (!permission) return;\n\n setPermissionStatus(permission.state);\n if (permission.state === 'granted' && !streamRef.current) {\n const stream = await requestCameraStream();\n if (stream) {\n setIsCameraAccessible(true);\n streamRef.current = stream;\n }\n } else if (permission.state !== 'granted' && streamRef.current) {\n stopCameraStream();\n setIsCameraAccessible(false);\n }\n };\n\n const checkCameraPermission = async () => {\n try {\n permission = await navigator.permissions.query({ name: 'camera' as PermissionName });\n setPermissionStatus(permission.state);\n\n if (permission.state === 'granted' && image === null) { // Only access camera if image is null\n const stream = await requestCameraStream();\n if (stream) {\n setIsCameraAccessible(true);\n streamRef.current = stream;\n }\n } else {\n setIsCameraAccessible(false);\n }\n\n // Set up listener for permission changes\n permission.onchange = handlePermissionChange;\n } catch (error) {\n console.error('Error checking camera permissions:', error);\n setIsCameraAccessible(false);\n } finally {\n setLoading(false);\n }\n };\n\n const requestCameraStream = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ video: true });\n return stream;\n } catch (error) {\n console.error('Error accessing camera stream:', error);\n return null;\n }\n };\n\n const stopCameraStream = () => {\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n };\n\n // Check permissions on mount\n checkCameraPermission();\n\n // Cleanup function to stop the camera stream and remove permission onchange listener\n return () => {\n stopCameraStream();\n if (permission) {\n permission.onchange = null; // Remove the onchange listener\n }\n };\n }, [image]); // Add image to the dependency array\n\n const requestCameraAccess = async () => {\n setLoading(true); // Optimistic loading state\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ video: true });\n if (stream) {\n setIsCameraAccessible(true);\n streamRef.current = stream;\n }\n } catch (error) {\n console.error('Error requesting camera access:', error);\n setIsCameraAccessible(false);\n } finally {\n setLoading(false);\n }\n };\n\n const handleMouseDown = (e: React.MouseEvent) => {\n e.stopPropagation(); // Prevents the floating window from closing when clicking inside it.\n };\n\n const handleFileChange = (event: React.ChangeEvent) => {\n const file = event.target.files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = async (e) => {\n const imageData = e.target?.result as string;\n \n // Create an off-screen canvas to flip the image\n const img = new Image();\n img.src = imageData;\n img.onload = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n \n canvas.width = img.width;\n canvas.height = img.height;\n \n // Flip the image horizontally\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n ctx.drawImage(img, 0, 0);\n \n // Convert the canvas back to a base64 image\n const flippedImageData = canvas.toDataURL(\"image/jpeg\");\n onClickBrowse(flippedImageData);\n };\n };\n reader.readAsDataURL(file); // Convert file to base64 format for preview\n }\n \n // Reset the file input value so that selecting the same file will trigger the onChange event\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n };\n \n \n\n const handleBrowseClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click(); // Trigger file input click\n }\n };\n\n return (\n
\n
\n
\n {!loading && !image && isCameraAccessible && (\n \n )}\n {!loading && image && \"image_view\"}\n {!loading && isCameraAccessible && image === null && ( // Access camera only when image is null\n }\n onClick={() => {\n if (camera.current) {\n const photo = camera.current.takePhoto();\n onClickCamera(photo as string);\n }\n }}\n />\n )}\n {image && (\n }\n onClick={() => {\n setLoading(true)\n onClickCancel();\n }}\n />\n )}\n {!loading && !isCameraAccessible && permissionStatus !== 'denied' && permissionStatus !== 'prompt' && !image && (\n
\n \n
Unable to access the camera. Please ensure your device is connected
and camera permissions are granted.
\n
\n )}\n {!loading && permissionStatus === 'prompt' && !image && (\n \n )}\n {!loading && permissionStatus === 'denied' && !image && (\n
\n \n
Camera access is blocked.
Please enable camera permissions in your browser settings.
\n
\n )}\n
\n
\n \n }\n onClick={handleBrowseClick}\n >\n Browse from files\n \n \n
\n {foldableFaceFilter && (\n
{foldableFaceFilter}
\n )}\n \n
\n );\n};\n\nexport default FloatingFaceSearch;\n//","import * as React from 'react';\n\nfunction CloseCircle(props: React.SVGProps) {\n return (\n \n \n \n \n \n );\n}\n\nexport default CloseCircle;\n","import * as React from 'react';\n\nfunction FaceSearchIconDisabled(props: React.SVGProps) {\n return (\n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n \n );\n}\n\nexport default FaceSearchIconDisabled;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { useIntl } from 'react-intl';\nimport { useAtom } from 'jotai';\n\nimport { filtersVisibleAtom } from 'src/shared/filters';\nimport { SlidersHorizontal, MagnifyingGlass, ArrowsClockwise } from 'src/common/icons';\nimport Button from 'src/components/Button';\nimport Input from 'src/components/Input';\nimport styles from './SearchBar.module.scss';\nimport messages from './messages';\nimport { useAtomValue, useUpdateAtom } from 'jotai/utils';\nimport { isRefetchingAtom, refreshAtom } from 'src/shared/refresh';\nimport Dropdown from '../Dropdown';\nimport { deletedAssetsAtom } from 'src/shared/deletedAssets';\nimport { TSorting, TSortingOptions } from 'src/types/TSorting';\nimport { SelectInputOption } from '../Dropdown/Dropdown';\nimport FaceSearchIcon from 'src/common/icons/FaceSearch';\nimport Camera from 'src/common/icons/Camera';\nimport Folder from 'src/common/icons/Folder';\nimport Tooltip from '../Tooltip';\nimport FloatingFaceSearch from './FloatingFaceSearch';\nimport CloseCircle from 'src/common/icons/CloseCircle';\nimport FaceSearchIconDisabled from 'src/common/icons/FaceSearchDisabled';\n\ntype SearchBarProps = {\n className?: string;\n hideFilters?: boolean;\n search?: string;\n sortKeys?: TSortingOptions[];\n onSearch?: (searchTerm: string) => void;\n onSearchFace?: (img: string) => void;\n onSearchFaceCancel?: () => void;\n searchButton?: boolean;\n searchFace?: boolean;\n refreshButton?: boolean;\n filterButton?: boolean;\n dropDownOptions?: SelectInputOption[];\n onClickDropdown?: React.Dispatch>;\n dropDownSelectedKeys?: string;\n onClickSearchButton?: (searchTerm: string) => void;\n onSelectSort?: (sorting: TSorting) => void;\n onClickFiltersButton?: any;\n foldableFaceFilter?: React.ReactNode;\n faceSearchEnabled?: boolean;\n setFaceSearchEnabled?: React.Dispatch>;\n};\n\nconst DEFAULT_DIRECTION = 'DESC';\n\nexport const SearchBar = ({\n className,\n hideFilters,\n search = '',\n sortKeys,\n searchButton,\n searchFace = false,\n onSearch,\n onSelectSort,\n onClickSearchButton,\n onSearchFace = () => {},\n onSearchFaceCancel = () => {},\n onClickFiltersButton,\n refreshButton = true,\n filterButton = true,\n dropDownOptions,\n dropDownSelectedKeys,\n onClickDropdown,\n foldableFaceFilter,\n faceSearchEnabled,\n setFaceSearchEnabled,\n ...rest\n}: SearchBarProps) => {\n const { formatMessage } = useIntl();\n\n const [searchTerm, setSearchTerm] = React.useState(search);\n const [sorting, setSorting] = React.useState([sortKeys ? sortKeys[0].key : '', DEFAULT_DIRECTION]);\n const [isFaceSearchOpen, setIsFaceSearchOpen] = React.useState(false);\n const [image, setImage] = React.useState(null);\n\n const refreshUpdate = useUpdateAtom(refreshAtom);\n const isRefetching = useAtomValue(isRefetchingAtom);\n const [, updateDeletedAssets] = useAtom(deletedAssetsAtom);\n\n const handleRefresh = () => {\n updateDeletedAssets([]);\n refreshUpdate((c) => c + 1);\n };\n\n const toggleFaceSearch = (e: React.MouseEvent) => {\n setIsFaceSearchOpen((prev) => !prev);\n };\n\n const onSort = (key: string) => {\n let newSorting: TSorting;\n\n if (sorting[0] === key) {\n newSorting = [key, sorting[1] === DEFAULT_DIRECTION ? 'ASC' : 'DESC'];\n } else {\n newSorting = [key, DEFAULT_DIRECTION];\n }\n\n setSorting(newSorting);\n onSelectSort && onSelectSort(newSorting);\n };\n\n const handleSearch = (value: string) => {\n setSearchTerm(value);\n onSearch && onSearch(value);\n };\n\n const handleClickSearchButton = () => onClickSearchButton && onClickSearchButton(searchTerm);\n\n const handleKeyDown = (key: string) => key === 'Enter' && handleClickSearchButton();\n\n React.useEffect(() => {\n return () => {\n console.log('unmounting search component...');\n };\n }, []);\n\n React.useEffect(() => {\n setSearchTerm(search);\n }, [search]);\n\n // const SCROLL_THRESHOLD = 5; // Define a threshold in pixels\n // let lastScrollY = 0; // To track the last scroll position\n\n // React.useEffect(() => {\n // const handleClickOutside = (event: MouseEvent) => {\n // // Check if the click was outside both the floating window and the face search icon\n // const faceSearchWrapper = document.querySelector(`.${styles.faceSearchWrapper}`);\n // const faceIcon = document.querySelector(`.${styles.faceIcon}`);\n\n // if (\n // faceSearchWrapper &&\n // !faceSearchWrapper.contains(event.target as Node) &&\n // faceIcon &&\n // !faceIcon.contains(event.target as Node)\n // ) {\n // setIsFaceSearchOpen(false);\n // }\n // };\n\n // const handleScroll = () => {\n // const currentScrollY = window.scrollY; // Get the current scroll position\n\n // // Check if the scroll exceeds the threshold\n // if (Math.abs(currentScrollY - lastScrollY) > SCROLL_THRESHOLD) {\n // setIsFaceSearchOpen(false); // Close the floating window if threshold exceeded\n // }\n\n // // Update the last scroll position\n // lastScrollY = currentScrollY;\n // };\n\n // if (isFaceSearchOpen) {\n // document.addEventListener('mousedown', handleClickOutside);\n // document.addEventListener('scroll', handleScroll);\n // } else {\n // document.removeEventListener('mousedown', handleClickOutside);\n // document.removeEventListener('scroll', handleScroll);\n // }\n\n // return () => {\n // document.removeEventListener('mousedown', handleClickOutside);\n // document.removeEventListener('scroll', handleScroll);\n // };\n // }, [isFaceSearchOpen]);\n\n const onPrefixImageClick = () => {\n setIsFaceSearchOpen(true);\n };\n\n const onPrefixImageClose = () => {\n setImage(null);\n onSearchFaceCancel();\n };\n\n const floatingFaceSearchRef = React.useRef(null); // Ref for FloatingFaceSearch\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n floatingFaceSearchRef.current && // Check ref is set\n !floatingFaceSearchRef.current.contains(event.target as Node) // Check if click was outside\n ) {\n setIsFaceSearchOpen(false);\n }\n };\n\n React.useEffect(() => {\n if (isFaceSearchOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isFaceSearchOpen]);\n\n React.useEffect(() => {\n setFaceSearchEnabled?.(!!image);\n }, [image, setFaceSearchEnabled]);\n\n \n\n return (\n
\n {!hideFilters && (\n <>\n {filterButton ? (\n image ? (\n \n }\n mode=\"flat\"\n size=\"large\"\n onClick={onClickFiltersButton}\n datatest=\"slider-button\"\n disabled={true}\n />\n \n ) : (\n \n }\n mode=\"flat\"\n size=\"large\"\n onClick={onClickFiltersButton}\n datatest=\"slider-button\"\n disabled={false}\n />\n \n )\n ) : (\n ''\n )}\n
\n }\n value={searchTerm}\n onChange={handleSearch}\n data-has-search-button={searchButton}\n onKeyDown={handleKeyDown}\n datatest=\"search-bar-input\"\n disabled={image ? true : false}\n />\n {searchFace ? (\n <>\n {image ? (\n
\n \n \"search_image\"\n
\n ) : (\n \n \n \n )}\n {isFaceSearchOpen && (\n
\n {\n setImage(imageData);\n onSearchFace(imageData);\n }}\n onClickCamera={(photo) => {\n setImage(photo as string);\n onSearchFace(photo as string);\n }}\n onClickCancel={() => {\n setImage(null);\n onSearchFaceCancel();\n }}\n foldableFaceFilter={foldableFaceFilter}\n />\n
\n )}\n \n ) : (\n \n \n \n )}\n {searchButton && (\n \n )}\n
\n \n )}\n\n {refreshButton ? (\n }\n onClick={handleRefresh}\n loading={isRefetching}\n mode=\"flat\"\n tooltip={formatMessage(messages.refresh)}\n />\n ) : (\n ''\n )}\n\n {sortKeys ? (\n ({ ...sortKey, noBorderBottom: true }))}\n selectedKeys={[sorting[0]]}\n disabled={image ? true : false}\n >\n Sort by: {sortKeys.find(({ key }) => key === sorting[0])?.value}\n \n ) : (\n ''\n )}\n {dropDownOptions ? (\n \n Filter by: {dropDownSelectedKeys}\n \n ) : (\n ''\n )}\n
\n );\n};\n\nexport default SearchBar;\n","import { SearchBar } from './SearchBar';\n\nexport default SearchBar;\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n\tassets: {\n\t\tid: 'nav.assets',\n\t\tdefaultMessage: 'Assets',\n\t},\n\tcollections: {\n\t\tid: 'nav.collections',\n\t\tdefaultMessage: 'Collections',\n\t},\n\tassetTransfers: {\n\t\tid: 'nav.assetTransfers',\n\t\tdefaultMessage: 'Asset Transfers',\n\t},\n\taccount: {\n\t\tid: 'nav.account',\n\t\tdefaultMessage: 'Account',\n\t},\n\tpreferences: {\n\t\tid: 'nav.preferences',\n\t\tdefaultMessage: 'Preferences',\n\t},\n\tlogout: {\n\t\tid: 'nav.logout',\n\t\tdefaultMessage: 'Logout',\n\t},\n});\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Link, NavLink, useHistory } from 'react-router-dom';\nimport { useAuthUser } from 'react-auth-kit';\n\nimport Logo from 'src/components/Logo';\nimport Dropdown from 'src/components/Dropdown';\nimport { Bell, Settings, UserCircle } from 'src/common/icons';\nimport styles from './Header.module.scss';\nimport messages from './messages';\nimport useLogout from 'src/hooks/useLogout';\nimport Notifications from '../Notifications';\n\ntype HeaderProps = {};\n\nexport const Header: React.FC = ({ ...rest }) => {\n const auth = useAuthUser();\n const { formatMessage } = useIntl();\n const history = useHistory();\n const logOut = useLogout();\n\n const username = auth() ? auth()!.username : '';\n\n const handleUserMenuClick = (key: string) => {\n switch (key) {\n case 'me':\n case 'settings':\n //history.push(`/${key}`);\n break;\n case 'logout':\n logOut();\n break;\n default:\n throw new Error(`Unknown navigation key: ${key}`);\n }\n };\n\n return (\n
\n \n \n
\n {auth()?.role === 'ADMIN' && (\n \n \n \n )}\n {/*\n \n */}\n \n }\n onClick={handleUserMenuClick}\n options={[\n {\n key: 'me',\n value: username,\n noBorderBottom: false,\n },\n /*{\n key: 'settings',\n value: formatMessage(messages.preferences),\n noBorderBottom: true,\n },*/\n {\n key: 'logout',\n value: formatMessage(messages.logout),\n noBorderBottom: true,\n },\n ]}\n className={styles.dropdown}\n />\n
\n
\n );\n};\n\nexport default Header;\n","import * as React from 'react';\nimport cn from 'classnames';\n\nimport { Footer, NavBar } from 'src/components';\n\nimport styles from './styles.module.scss';\n\nexport const DefaultLayout: React.FC<{}> = ({ children, ...rest }) => {\n\n\n return (\n
\n
\n \n
\n {children}\n
\n
\n );\n};\n\nexport default DefaultLayout;\n","import * as React from 'react';\nimport cn from 'classnames';\n\nimport styles from './styles.module.scss';\nimport { NavBar, PageTitle } from 'src/components';\n\nexport const AdminSettingsLayout: React.FC<{}> = ({ children, ...rest }) => {\n return (\n
\n \n \n {children}\n
\n );\n};\n\nexport default AdminSettingsLayout;\n","import { useMutation, UseMutationOptions } from 'react-query';\nimport { queryFnFetchErrorWrapper } from '../utils/errorHandlers';\nimport { activateAccount, createToken, getAccountInfo } from '../functions/accessApi';\nimport { AuthTokenRequest, AuthTokenResponse, FetchError } from 'src/types/TApiQueries';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\n\nexport function useObtainTokenMutation(\n mutationOptions?: UseMutationOptions,\n) {\n const mutationFn = queryFnFetchErrorWrapper(({ username, password }: AuthTokenRequest) =>\n createToken(username, password),\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: (result, ...args) => {\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n}\n\nexport function getAccountInfoFromJWT(jwtToken: string, callback: (data: any) => void): void {\n getAccountInfo(jwtToken)\n .then((data) => {\n callback(data);\n })\n .catch((error) => {\n console.error('Error fetching account info:', error);\n callback(null);\n });\n}\n","import { FetchResult, AuthTokenResponse } from 'src/types/TApiQueries';\nimport { config } from 'src/utils/config';\nimport { getStandardHeaders, performFetchWithLogging } from 'src/api/utils/helpers';\n\nexport async function createToken(username: string, password: string): Promise> {\n const payload = JSON.stringify({ email: username, password });\n\n return performFetchWithLogging(`${config.hostUrl}/api/v1/login`, {\n method: 'POST',\n headers: getStandardHeaders(),\n credentials: 'include',\n body: payload,\n });\n}\nexport async function getAccountInfo(jwtToken: string): Promise {\n try {\n const response = await fetch(`${config.hostUrl}/api/v1/account`, {\n headers: { Authorization: `Bearer ${jwtToken}` },\n });\n if (!response.ok) {\n throw new Error(`Error: ${response.status} ${response.statusText}`);\n }\n const data = await response.json();\n return data;\n } catch (error) {\n console.error('Failed to fetch account info:', error);\n return null;\n }\n}\n\nexport async function refreshToken(refresh: string): Promise> {\n const payload = JSON.stringify({ refresh });\n\n return performFetchWithLogging(`${config.hostUrl}/api/v1/refresh/`, {\n method: 'POST',\n headers: getStandardHeaders(),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function verifyToken(token: string): Promise> {\n const payload = JSON.stringify({ token });\n\n return performFetchWithLogging(`${config.hostUrl}/api/v1/verify/`, {\n method: 'POST',\n headers: getStandardHeaders(),\n credentials: 'include',\n body: payload,\n });\n}\n\nexport async function serviceToken(accessToken: string): Promise> {\n return performFetchWithLogging(\n `${config.hostUrl}/api/v1/authentication/service_token?scope=EDIT_ASSET`,\n {\n method: 'GET',\n headers: { Authorization: accessToken },\n credentials: 'include',\n },\n 'text',\n );\n}\n\nexport function activateAccount(code: string, accessToken: string): Promise> {\n return performFetchWithLogging(`${config.hostUrl}/api/v1/account/activate/${code}`, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n email: {\n id: 'login.email',\n defaultMessage: 'Email',\n },\n password: {\n id: 'login.password',\n defaultMessage: 'Password',\n },\n rememberMe: {\n id: 'login.rememberMe',\n defaultMessage: 'remember me',\n },\n forgotPassword: {\n id: 'login.forgotPassword',\n defaultMessage: 'forgot password?',\n },\n signIn: {\n id: 'login.signIn',\n defaultMessage: 'Sign In',\n },\n newTo: {\n id: 'login.newTo',\n defaultMessage: 'New to filespin?',\n },\n createAcc: {\n id: 'login.createAcc',\n defaultMessage: 'Create an account',\n },\n});\n","import { FormattedMessage, useIntl } from 'react-intl';\nimport { SyntheticEvent, useEffect, useRef, useState } from 'react';\nimport { useSignIn, useIsAuthenticated } from 'react-auth-kit';\nimport { Redirect } from 'react-router-dom';\nimport { Button, Checkbox, Input, Logo } from 'src/components';\nimport { useObtainTokenMutation, getAccountInfoFromJWT } from 'src/api/mutations/accessMutations';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { AuthTokenResponse } from 'src/types/TApiQueries';\nimport styles from './styles.module.scss';\nimport messages from './messages';\nimport { useAtomValue } from 'jotai/utils';\nimport { securitySettingsAtom } from 'src/shared/settings/security';\nimport { config } from 'src/utils/config';\n\nexport const Login = () => {\n const { formatMessage } = useIntl();\n const signIn = useSignIn();\n const { showAlert } = useAlerts();\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n const [checked, setChecked] = useState(false);\n const [formData, setFormData] = useState({ email: '', password: '' });\n\n const obtainTokenMutation = useObtainTokenMutation({\n onSuccess: (result) => {\n setTokenOrThrow(result);\n },\n });\n\n const onSubmit = async (e: SyntheticEvent) => {\n e.preventDefault();\n\n try {\n await obtainTokenMutation.mutateAsync({\n username: formData.email,\n password: formData.password,\n });\n } catch (error) {\n showAlert('Email and password do not match, please try again');\n }\n };\n\n const setTokenOrThrow = ({\n jwt,\n accessID,\n notifications,\n permissions,\n preferences,\n role_id,\n role_name,\n uploadkey,\n username,\n user_email,\n user_id,\n }: AuthTokenResponse) => {\n if (\n signIn({\n token: jwt,\n expiresIn: 86400,\n tokenType: 'Bearer',\n authState: {\n isLoggedIn: true,\n accessId: accessID,\n uploadkey,\n role: role_name,\n roleId: role_id,\n permissions,\n notifications,\n preferences,\n username,\n userEmail: user_email,\n userId: user_id,\n },\n })\n ) {\n setIsLoggedIn(true);\n } else {\n showAlert('Error while obtaining tokens, please try again');\n }\n };\n\n if (isLoggedIn) {\n return ;\n }\n const queryParams = new URLSearchParams(window.location.search);\n const jwt_token = queryParams.get('_jwt');\n if (jwt_token) {\n getAccountInfoFromJWT(jwt_token, (data) => {\n const AccountInfo = data.data;\n if (\n signIn({\n token: jwt_token,\n expiresIn: 86400,\n tokenType: 'Bearer',\n authState: {\n isLoggedIn: true,\n accessId: AccountInfo.access_id,\n role: AccountInfo.role_name,\n uploadKey: AccountInfo.uploadKey,\n roleId: AccountInfo.role_id,\n permissions: AccountInfo.permissions,\n username: AccountInfo.first_name,\n userEmail: AccountInfo.email,\n userId: AccountInfo.id,\n },\n })\n ) {\n setIsLoggedIn(true);\n }\n });\n }\n return (\n
\n
\n
\n \n
\n setFormData({ ...formData, email: newVal })}\n />\n setFormData({ ...formData, password: newVal })}\n />\n
\n setChecked((e) => !e)}\n />\n \n \n \n
\n
\n \n
\n\n \n \n
\n );\n};\n","// import * as Sentry from '@sentry/react';\nimport { useMemo } from 'react';\nimport { useQuery, UseQueryOptions } from 'react-query';\nimport { queryFnFetchErrorWrapper, throwFetchError } from 'src/api/utils/errorHandlers';\nimport { mergeQueryOptions } from 'src/api/utils/helpers';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { CustomQueryOptions, FetchError, DashboardFilters } from 'src/types/TApiQueries';\nimport { getSearch, getSearchByHash, getAssetDetails, getAssetVisionTags, getFaceSearch, getFaceSearchByHash } from '../functions/assetsApi';\nimport { isValidSort } from '../utils/search';\n\nexport const statusOptions = [\n { label: 'All', value: '' },\n { label: 'Ok', value: 'OK' },\n { label: 'Archived', value: 'ARCHIVED' },\n { label: 'Error', value: 'ERROR' },\n];\n\n\nconst sortConfig = {\n delimiter: '_',\n validFields: ['upload_time_range', 'file_name', 'content_type', 'file_size_range', 'status'],\n validDirections: ['asc', 'desc'],\n};\n\nexport function useSearchQuery(\n filters: DashboardFilters,\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n \n const queryFn = useMemo(\n () =>\n queryFnFetchErrorWrapper(() =>\n filters.face ? filters.hash === '' ? getFaceSearch(filters, accessToken) : getFaceSearchByHash(filters, accessToken) : filters.hash === '' ? getSearch(filters, accessToken) : getSearchByHash(filters, accessToken),\n ),\n [filters, accessToken],\n );\n\n const enabled = useMemo(() => {\n const { sort_by } = filters;\n\n return sort_by.every((sort) =>\n isValidSort(sort, sortConfig, (lowerCaseSort, validFields, validDirections) => {\n const hasAnyField = validFields.some((field) => lowerCaseSort.includes(field));\n const hasAnyDirection = validDirections.some((direction) => lowerCaseSort.includes(direction));\n return hasAnyField && hasAnyDirection;\n }),\n );\n }, [filters]);\n\n const query = useQuery([queryNames.search, filters], queryFn, { ...actualQueryOptions, enabled });\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching assets', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n let schema_criteria=filters.schema_criteria\n \n if(schema_criteria){\n filters.schema_criteria={\n ...schema_criteria,\n field: {}\n }\n }\n \n return query;\n}\n\nexport function useAssetDetailsQuery(\n assetId: string,\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const queryFn = useMemo(\n () => queryFnFetchErrorWrapper(() => getAssetDetails(assetId, accessToken)),\n [assetId, accessToken],\n );\n\n const query = useQuery([queryNames.asset, assetId], queryFn, {\n ...actualQueryOptions,\n staleTime: 1000 * 60 * 30,\n });\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching asset details', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n\n return query;\n}\n\nexport function useAssetVisionQuery(\n assetId: string,\n options?: CustomQueryOptions,\n queryOptions?: UseQueryOptions,\n) {\n const actualQueryOptions = mergeQueryOptions(options, queryOptions);\n const accessToken = useAccessToken();\n\n const queryFn = useMemo(\n () => queryFnFetchErrorWrapper(() => getAssetVisionTags(assetId, accessToken)),\n [assetId, accessToken],\n );\n\n const query = useQuery([queryNames.assetVision, assetId], queryFn, {\n ...actualQueryOptions,\n staleTime: 1000 * 60 * 60,\n });\n\n if (options?.handleErrors && query.status === 'error') {\n if (query.isRefetchError) {\n // Sentry.captureMessage('Failed refetching asset details', Sentry.Severity.Error);\n } else {\n throwFetchError(query.error);\n }\n }\n\n return query;\n}\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n\tadd: {\n\t\tid: 'pages.dashboard.add',\n\t\tdefaultMessage: 'Add Assets',\n\t},\n\tsaveSearch: {\n\t\tid: 'pages.dashboard.saveSearch',\n\t\tdefaultMessage: 'Save this search',\n\t},\n\tsearchInfo: {\n\t\tid: 'pages.dashboard.searchSetUp',\n\t\tdefaultMessage:\n\t\t \"Please upload a image to enable filters\",\n\t },\n});\n","import { atom } from 'jotai';\n\nexport const pickerModeAtom = atom<'add' | 'replace' | undefined>(undefined);\n","import { useAtom } from 'jotai';\nimport { useAtomValue } from 'jotai/utils';\nimport { useEffect, useState } from 'react';\nimport { serviceToken } from 'src/api/functions/accessApi';\nimport { pickerModeAtom } from 'src/shared/pickerMode';\nimport { securitySettingsAtom } from 'src/shared/settings/security';\nimport { useAccessToken } from './useAccessToken';\n\nconst providers = ['local', 'weburl', 'flickr', 'box', 'onedrive', 'googledrive'];\n\nconst fileSpinEvents = ['close', 'ready', 'complete', 'start'];\n\ntype FileSpinHookOptions = {\n events?: {\n close?: () => void;\n ready?: () => void;\n start?: () => void;\n complete?: (data: any) => void;\n open?: () => void;\n };\n};\n\nconst useFileSpinPicker = (options?: FileSpinHookOptions) => {\n const [mode, setMode] = useAtom(pickerModeAtom);\n\n const accessToken = useAccessToken();\n const securitySettings = useAtomValue(securitySettingsAtom);\n\n if (\n securitySettings?.dropbox_app_key?.length > 0 &&\n securitySettings?.dropbox_app_secret?.length > 0 &&\n !providers.includes('dropbox')\n ) {\n providers.push('dropbox');\n }\n\n const showPicker = () => {\n window.FileSpin.showPicker();\n options?.events?.open?.();\n };\n const resetPicker = () => window.FileSpin.resetPicker();\n const hidePicker = () => window.FileSpin.hidePicker();\n\n const replaceContent = async (id: string) => {\n const serviceKey = await serviceToken(accessToken);\n\n window.FileSpin.initPicker(\n {\n uploadKey: securitySettings.upload_key,\n providers,\n serviceToken: serviceKey,\n fileToReplaceId: id,\n autoUpload: false,\n display: false,\n // hideAfterUpload: true,\n },\n () => {\n showPicker();\n if (!mode || mode === 'add') {\n setMode('replace');\n }\n },\n );\n };\n\n const uploadContent = () => {\n if (!mode || mode === 'replace') {\n window.FileSpin.initPicker(\n {\n uploadKey: securitySettings.upload_key,\n providers,\n autoUpload: false,\n minimizeOnUpload: false,\n display: false,\n },\n () => {\n showPicker();\n setMode('add');\n },\n );\n } else {\n resetPicker();\n showPicker();\n }\n };\n\n useEffect(() => {\n if (!window.FileSpin || !options?.events) return;\n\n const { events } = options;\n\n Object.entries(events).forEach(([event, callback]) => {\n if (fileSpinEvents.includes(event)) {\n window.FileSpin.on(event, callback);\n }\n });\n }, [options]);\n\n return {\n showPicker,\n hidePicker,\n replaceContent,\n uploadContent,\n };\n};\n\nexport default useFileSpinPicker;\n","export const setBodyScroll = (height: string, overflow: string) => {\n const body = document.querySelector('body');\n\n if (!body) return;\n\n body.style.height = height;\n body.style.overflow = overflow;\n};\n\nexport const lockScroll = () => setBodyScroll('100vh', 'hidden');\nexport const unlockScroll = () => setBodyScroll('', '');\n","export enum PAGE_ACTIONS {\n ADD_TO_COLLECTIONS = 'ADD_TO_COLLECTIONS',\n CREATE_COLLECTION = 'CREATE_COLLECTION',\n ADD_TO_BASKET = 'ADD_TO_BASKET',\n MOVE_TO_TRASH = 'MOVE_TO_TRASH',\n}\n\nexport const ITEMS_PER_PAGE_LOCAL_KEY = 'fs.assets.itemsPerPage';\n\nexport const INITIAL_FILTERS = {\n page: 1,\n hash: '',\n face: null,\n limit_per_page: 30,\n keyword: '',\n extended_result: true,\n sort_by: ['upload_time_range_DESC'],\n content_type: '',\n file_name: '',\n trashed: false,\n upload_time_range: {\n start: undefined,\n end: undefined,\n },\n status: '',\n custom_content_input:'',\n // schema_criteria:{\n // data_schema_id:undefined\n // }\n filters:null\n};\n","import { useRef, useState, useReducer, useEffect } from 'react';\nimport { useAtom } from 'jotai';\nimport { useDebounce } from 'use-debounce';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { DashboardFilters } from 'src/types/TApiQueries';\nimport { isRefetchingAtom, refreshAtom } from 'src/shared/refresh';\nimport { useAtomValue, useUpdateAtom } from 'jotai/utils';\nimport { selectedAssetsAtom } from 'src/shared/selectedAssets';\nimport { deletedAssetsAtom } from 'src/shared/deletedAssets';\nimport useModal from 'src/hooks/useModal';\nimport useRoleManager from 'src/hooks/useRoleManager';\nimport { useQueryClient } from 'react-query';\nimport { useCollectionQuery } from 'src/api/queries/collectionsQueries';\nimport { useAlerts } from 'src/common/AlertManager';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport { useHistory } from 'react-router-dom';\nimport { TSorting } from 'src/types/TSorting';\nimport { getThumbnailUrl } from 'src/utils/previews';\nimport { INITIAL_FILTERS, ITEMS_PER_PAGE_LOCAL_KEY } from './constants';\n\nfunction filtersReducer(state: DashboardFilters, payload: { [key: string]: any }) {\n return { ...state, ...payload };\n}\n\nconst checkImage = (url: string) =>\n new Promise((resolve, reject) => {\n const img = new Image()\n img.onload = () => resolve(url)\n img.onerror = () => reject()\n img.src = url\n })\n\nexport const useCachePreviewImages = (data: any) => {\n const accessToken = useAccessToken();\n\n const [firstTime, setFirstTime] = useState(true);\n\n if (data && data.result && firstTime) {\n\n for (const assetId of data.result) {\n const url = getThumbnailUrl({\n width: 800,\n height: 600,\n id: assetId,\n jwt: accessToken,\n })\n\n checkImage(url)\n\n }\n\n setFirstTime(false)\n }\n}\n\n\nconst useComponentHooks = () => {\n\n const [isDeletingAssets, setIsDeletingAssets] = useState(false);\n const [sorting, setSorting] = useState(['upload_time_range', 'DESC']);\n const [filtersVisible, setFiltersVisible] = useState(false);\n const [totalPages, setTotalPages] = useState(1);\n\n const [search, setSearch] = useState('');\n const [searchDebounced] = useDebounce(search, 800);\n\n const [fileName, setFileName] = useState('');\n const [fileNameDebounced] = useDebounce(fileName, 800);\n\n const [customContentInput,setCustomContentInput]=useState('')\n const[customContentDebounced]=useDebounce(customContentInput,800)\n\n const [schemaCriteria,setSchemaCriteria]=useState({})\n const [schemCriteriaDebounced]=useDebounce(schemaCriteria,800)\n\n\n const [face, setFace] = useState(null)\n\n const [filters, dispatchFilter] = useReducer(\n filtersReducer,\n INITIAL_FILTERS,\n (state) => {\n const limit = localStorage.getItem(ITEMS_PER_PAGE_LOCAL_KEY)\n ? Number(localStorage.getItem(ITEMS_PER_PAGE_LOCAL_KEY))\n : state.limit_per_page;\n\n return { ...state, limit_per_page: limit, trashed: false };\n });\n const [selectedAssets, updateSelectedAssets] = useAtom(selectedAssetsAtom);\n const [deletedAssets, updateDeletedAssets] = useAtom(deletedAssetsAtom);\n const [startDateInputValue, setStartDateInputValue] = useState(undefined);\n const [endDateInputValue, setEndDateInputValue] = useState(undefined);\n const handleStartDateChange = (value: string) => {\n const newStartDate = value ? new Date(value).toISOString() : undefined;\n setStartDateInputValue(value || ''); // Update input state\n dispatchFilter({\n upload_time_range: {\n start: newStartDate,\n end: filters.upload_time_range?.end,\n },\n });\n };\n\n const clearStartDate = () => {\n setStartDateInputValue(''); \n dispatchFilter({\n page:1,hash:'',\n upload_time_range: {\n start: undefined,\n end: filters.upload_time_range?.end,\n },\n });\n };\n const handleEndDateChange = (value: string) => {\n const newEndDate = value ? new Date(value).toISOString() : undefined;\n setEndDateInputValue(value || ''); \n dispatchFilter({\n upload_time_range: {\n start: filters.upload_time_range?.start,\n end: newEndDate,\n },\n });\n };\n\n const clearEndDate = () => {\n setEndDateInputValue(''); \n dispatchFilter({\n page:1,hash:'',\n upload_time_range: {\n start: filters.upload_time_range?.start,\n end: undefined,\n },\n });\n };\n\n const clearRangeDate=()=>{\n setEndDateInputValue('')\n setStartDateInputValue('')\n let start=undefined\n let end=undefined\n dispatchFilter({\n page: 1, hash: '',\n upload_time_range:{\n start:start,\n end:end\n }\n })\n }\n \n const enhancedFaceSearch=(img:any,payload:any)=>{ \n payload.page=1\n payload.hash=''\n payload.face=img\n dispatchFilter(payload)\n }\n const enhancedDispatchFilter = (payload:any) => {\n delete payload?.schema_criteria\n delete payload?.filters\n payload.page=1\n payload.limit_per_page=30\n payload.hash=''\n dispatchFilter(payload)\n };\n\n const enhancedFaceRemoval=(payload:any)=>{\n delete payload?.filters\n payload.page=1\n payload.limit_per_page=30\n payload.face=null\n payload.hash=''\n dispatchFilter(payload)\n }\n\n\n return {\n startDateInputValue, handleStartDateChange, clearStartDate,enhancedDispatchFilter,enhancedFaceRemoval,enhancedFaceSearch,\n endDateInputValue,handleEndDateChange,clearEndDate,clearRangeDate,\n accessToken: useAccessToken(),\n roleManager: useRoleManager(),\n history: useHistory(),\n modal: useModal(),\n queryClient: useQueryClient(),\n alerts: useAlerts(),\n errorMessages: useErrorMessages(),\n \n searchDebounced,\n fileNameDebounced,\n schemCriteriaDebounced,\n customContentDebounced,\n reducer: { filters, dispatchFilter, },\n queries: {\n collections: useCollectionQuery(),\n },\n\n refs: {\n searchHash: useRef(''),\n },\n\n state: {\n fileName, setFileName,\n search, setSearch,\n face, setFace,\n isDeletingAssets, setIsDeletingAssets,\n sorting, setSorting,\n filtersVisible, setFiltersVisible,\n totalPages, setTotalPages,\n refreshValue: useAtomValue(refreshAtom),\n setIsRefetching: useUpdateAtom(isRefetchingAtom),\n selectedAssets, updateSelectedAssets,\n deletedAssets, updateDeletedAssets,\n schemaCriteria,setSchemaCriteria,\n customContentInput,setCustomContentInput\n }\n }\n}\n\n\nexport default useComponentHooks\n","import { FetchResult } from 'src/types/TApiQueries';\nimport { AssetSchema } from 'src/types/TSchemes';\nimport { config } from 'src/utils/config';\nimport { getStandardHeaders, performFetchWithLogging } from '../utils/helpers';\n\nexport async function getSchemas(accessToken: string): Promise> {\n const url = `${config.hostUrl}/api/v1/assetschemas`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n\nexport async function getSchema(accessToken: string, schemaId: number): Promise> {\n const url = `${config.hostUrl}/api/v1/assetschemas/${schemaId}`;\n\n return performFetchWithLogging(url, {\n method: 'GET',\n headers: getStandardHeaders(accessToken),\n credentials: 'include',\n });\n}\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from './SearchForm.module.scss';\n\nimport { ISubmitEvent, withTheme } from '@rjsf/core';\nimport Button from '../Button';\nimport InfoIcon from 'src/common/icons/Info';\nimport { motion, useAnimation, useMotionValue } from 'framer-motion';\nimport { FormattedMessage } from 'react-intl';\nimport { Plus, TrashSimple } from 'src/common/icons';\nimport DownArrow from 'src/common/icons/ArrowDown';\nimport UpArrow from 'src/common/icons/ArrowUp';\n\n\ntype SchemaFormProps = {\n className?: string;\n schema?: any;\n formData: any;\n onSubmit: ((e: ISubmitEvent, nativeEvent: React.FormEvent) => any) | undefined;\n onCancel: () => void;\n};\n\nconst constructUiSchema = (json: any) => {\n const uiSchema: { [key: string]: any } = {};\n // TODO: Replace en with actual language or fallback to browser or fallback to en\n Object.entries(json?.properties ?? {}).forEach(([key, value]: [string, any]) => {\n uiSchema[key] = {\n 'ui:placeholder': value?.filespin_properties?.placeholder?.en,\n 'ui:help': value?.filespin_properties?.hint?.en,\n 'ui:disabled': value?.filespin_properties?.ui?.disabled,\n 'ui:hidden': value?.filespin_properties?.ui?.hidden,\n 'ui:title': value?.filespin_properties?.title?.en || value?.title,\n };\n });\n uiSchema['ui:order'] = Object.entries(json?.properties ?? {})\n .sort(\n ([key_a, value_a]: [string, any], [key_b, value_b]: [string, any]) =>\n value_a?.filespin_properties?.ui?.order - value_b?.filespin_properties?.ui?.order,\n )\n .map(([key]) => key);\n\n return uiSchema;\n};\n\nconst ObjectFieldTemplate = ({ properties, title }: { TitleField: any; properties: any; title: string }) => {\n return (\n \n

{title}

\n
\n {properties.map((prop: any) => (\n {prop.content}\n ))}\n
\n
\n );\n};\n\nconst hintAnimation = {\n visible: {\n height: 'auto',\n opacity: 1,\n },\n hidden: {\n height: 0,\n opacity: 0,\n },\n};\n\nfunction CustomFieldTemplate(props: any) {\n const { label, help, description, errors, children, displayLabel, schema } = props;\n\n const showHint = useMotionValue('hidden');\n\n const controls = useAnimation();\n\n const toggleHint = () => {\n controls.start(showHint.get() === 'hidden' ? 'visible' : 'hidden');\n showHint.set(showHint.get() === 'hidden' ? 'visible' : 'hidden');\n };\n\n if (schema.type === 'object') {\n return children;\n }\n\n return (\n
\n {displayLabel && (\n \n )}\n {help && (\n \n
\n \n {help}\n
\n
\n )}\n {children}\n {/* {description &&
{description}
} */}\n {errors &&
{errors}
}\n
\n );\n}\nfunction ArrayFieldTemplate(props:any) {\n return (\n \n

{props.title}

\n
\n {props.items &&\n props.items.map((element:any) => (\n
\n
{element.children}
\n
\n {element.hasMoveDown && (\n \n \n \n )}\n {element.hasMoveUp && (\n \n \n \n )}\n \n
\n
\n
\n ))}\n\n {props.canAdd && (\n
\n

\n \n

\n
\n )}\n
\n
\n );\n}\n\nexport const SearchFormData: React.FC = ({ className, schema, formData, onSubmit, onCancel, ...rest }) => {\n const ThemedForm = withTheme({\n className: 'schemaForm',\n });\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport default SearchFormData;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './SearchForm.module.scss';\nimport messages from '../MetadataForm/messages';\nimport SchemaForm from '../SchemaForm';\nimport { ISubmitEvent } from '@rjsf/core';\nimport validateFormData from '@rjsf/core/lib/validate';\n// import * as Sentry from '@sentry/react';\nimport { useIntl } from 'react-intl';\nimport SearchFormData from './SearchFormData';\n\ntype SearchFormProps = {\n className?: string;\n schema?: any;\n metadata: any;\n onSubmit: ((e: ISubmitEvent, nativeEvent: React.FormEvent) => any) | undefined;\n onCancel: () => void;\n};\n\nconst inferType = (value: any): string => {\n if (typeof value === 'string') return 'string';\n if (typeof value === 'number') return 'number';\n if (typeof value === 'boolean') return 'boolean';\n if (Array.isArray(value)) return 'array';\n return 'string';\n};\nconst generateSchemaFromData = (title: string, data: any) => {\n const keys = Object.keys(data);\n\n const schema: any = {\n type: 'object',\n properties: {},\n title,\n };\n\n keys.forEach((key: string) => {\n schema.properties[key] = {\n type: inferType(data[key]),\n title: key,\n };\n });\n\n return schema;\n};\n\n\n\nconst appendNewProperties = (schema: any, metadata: any): any => {\n \n const updatedSchema: any = {\n ...schema,\n properties: { ...schema.properties },\n };\n\n\n for (const [key, value] of Object.entries(updatedSchema.properties)) {\n const property = value as any;\n\n \n if (!property.filespin_properties || property.filespin_properties.searchable !== true) {\n\n delete updatedSchema.properties[key];\n }\n }\n\n\n return updatedSchema;\n};\n\nconst ensureSchemaVersion = (schema: any) => {\n const updatedSchema = { ...schema };\n\n delete updatedSchema.$schema;\n\n // Add the Draft-07 schema identifier\n updatedSchema.$schema = 'http://json-schema.org/draft-07/schema#';\n\n return updatedSchema;\n};\nexport const SearchForm: React.FC = ({ className, schema, metadata, onSubmit, onCancel, ...rest }) => {\n const { formatMessage } = useIntl();\n\n let formSchema = schema;\n\n // console.log(schema)\n if (!schema) {\n const schemaTitle = formatMessage(messages.customSchema);\n formSchema = generateSchemaFromData(schemaTitle, metadata);\n } else {\n formSchema = appendNewProperties(schema, metadata);\n formSchema = ensureSchemaVersion(formSchema);\n const validation = validateFormData(metadata, formSchema);\n if (validation.errors.length > 0) {\n formSchema = appendNewProperties(schema, metadata);\n // Sentry.captureMessage(`Schema Errors: ${validation.errors.toString()}`, Sentry.Severity.Error);\n }\n }\n\n return (\n
\n \n
\n );\n};\n\nexport default SearchForm;\n","import {SearchForm} from \"./SearchForm\";\nexport default SearchForm","import { FormattedMessage, useIntl } from 'react-intl';\nimport cn from 'classnames';\nimport { useEffect, useState, useMemo, useRef } from 'react';\nimport {\n SearchBar,\n ListingCard,\n ListingRow,\n Input,\n PageTitle,\n Tag,\n Pager,\n Button,\n Checkbox,\n BatchActions,\n LayoutViewSwitcher,\n LayoutView,\n AddAssetsToCollections,\n Select,\n Dropdown,\n InfoSection,\n} from 'src/components';\nimport { useSearchQuery } from 'src/api/queries/assetsQueries';\nimport { getThumbnailUrl } from 'src/utils/previews';\nimport { CaretRight, CaretDown, FolderPlus, Stack, Trash } from 'src/common/icons';\nimport styles from './styles.module.scss';\nimport messages from './messages';\nimport useFileSpinPicker from 'src/hooks/useFileSpinPicker';\nimport { lockScroll, unlockScroll } from 'src/utils/bodyScroll';\nimport { useCollectionMutation } from 'src/api/mutations/collectionMutations';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { CollectionResponse } from 'src/types/TCollection';\nimport { deleteAsset } from 'src/api/functions/assetsApi';\nimport CreateCollectionModal from 'src/components/CreateCollectionModal';\nimport { useCachePreviewImages } from './hooks';\nimport useComponentHooks from './hooks';\nimport { ITEMS_PER_PAGE_LOCAL_KEY, PAGE_ACTIONS } from './constants';\nimport { statusOptions } from 'src/api/queries/assetsQueries';\nimport { getSchemas } from 'src/api/functions/schemaApi';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { ISubmitEvent } from '@rjsf/core';\nimport SearchForm from 'src/components/SearchForm';\nimport { useSettingsQuery } from 'src/api/queries/userQueries';\nimport { useIsAuthenticated } from 'react-auth-kit';\nimport SetupFreeFormSearchData from './SetupFreeFormSearch';\nimport { addonsSettingsAtom } from 'src/shared/settings/addons';\nimport { useAtom } from 'jotai';\n\n/**\n * @name Dashboard\n * @module pages/Dashboard\n *\n * @route GET /\n * @route GET /assets\n *\n * @description The Dashboard page.\n *\n * @summary\n * This page is the main page of the application. It displays the assets of the user.\n * It is possible to filter the assets by using the search bar, the filters and the sorting.\n * It is also possible to add assets to a collection, delete assets and create a new collection.\n * The assets are displayed in a list or in a grid. The user can switch between the two views.\n * The user can also select assets to perform batch actions on them.\n * The user can also navigate between the pages of the assets.\n *\n * @param {void}\n *\n * @returns {JSX.Element} The Dashboard page as a JSX.Element.\n *\n */\nexport const Dashboard = (): JSX.Element => {\n const hooks = useComponentHooks();\n const { filters, dispatchFilter } = hooks.reducer;\n const accessToken = useAccessToken();\n const [settingsData,setSettingData]=useAtom(addonsSettingsAtom)\n const {\n data: fetchedData,\n isLoading,\n refetch,\n isRefetching,\n } = useSearchQuery(filters, {\n onSuccess: (results) => {\n hooks.state.totalPages !== results.total_pages && hooks.state.setTotalPages(results.total_pages);\n hooks.refs.searchHash.current = results.search_result_id;\n },\n });\n\n const { formatMessage } = useIntl();\n const [schemaSearchMode, setSchemaSearchMode] = useState(false);\n const [schemaFaceSearchMode, setFaceSchemaSearchMode] = useState(false);\n const [schema, setSchema] = useState();\n const [faceSchema, setFaceSchema] = useState();\n const [selectedSchemaId, setSelectedSchemaId] = useState('-1');\n const [selectedSchemaIdFace, setSelectedSchemaIdFace] = useState('-1');\n const [selectSchemaOptions, setSelectSchemaOptions] = useState([]);\n const [selectSchemaOptionsFace, setSelectSchemaOptionsFace] = useState([]);\n const [schemaIdDataMapping, setSchemaIdDataMapping] = useState({});\n const [schemaIdDataMappingFace, setSchemaIdDataMappingFace] = useState({});\n const [schemaKeyValueMapping, setSchemaKeyValueMapping] = useState({});\n const [schemaKeyValueMappingFace, setSchemaKeyValueMappingFace] = useState({});\n const [metadata, setMetaData] = useState({});\n const [searchMetaData, setSearchMetaData] = useState({});\n\n const sortByKeyAscending = (options: Array<{ key: string | number; value: string }>) => {\n return options.sort((a, b) => Number(a.key) - Number(b.key));\n };\n\n const fetchSchemas = async () => {\n const result = await getSchemas(accessToken);\n if (!result.data) return;\n const keyValueMapping: any = {};\n const idSchemaMapping: any = {};\n let options = [\n { value: 'None Selected', key: '-1' },\n ...result.data.map((schema: any) => {\n keyValueMapping[schema.id.toString()] = schema.name.en;\n idSchemaMapping[schema.id] = schema;\n return {\n value: `${schema.name.en} (ID: ${schema.id.toString()})`,\n key: schema.id.toString(),\n };\n }),\n ];\n\n options = sortByKeyAscending(options)\n\n setSchemaKeyValueMapping(keyValueMapping);\n setSchemaIdDataMapping(idSchemaMapping);\n setSelectSchemaOptions(options);\n setSchemaKeyValueMappingFace(keyValueMapping);\n setSchemaIdDataMappingFace(idSchemaMapping);\n setSelectSchemaOptionsFace(options);\n };\n\n useEffect(() => {\n fetchSchemas();\n }, []);\n\n useEffect(() => {\n if (hooks.queries.collections.status === 'success' && hooks.queries.collections.data?.status === 'OK') {\n localStorage.setItem('assetCollection', JSON.stringify(hooks.queries.collections.data));\n }\n }, [hooks.queryClient, hooks.queries]);\n\n const basketMutation = useCollectionMutation(Number(hooks.queries.collections.data?.basketData?.data?.id), {\n onError: (error, newData, context: any) => {\n hooks.queryClient.setQueryData([queryNames.collection, null], context.previousData);\n\n hooks.alerts.showAlert(hooks.errorMessages.getErrorMessage(error.message));\n },\n onMutate: (data) => {\n const previousData = hooks.queryClient.getQueryData([queryNames.collection, null]);\n hooks.queryClient.setQueryData(\n [queryNames.collection, null],\n (old: CollectionResponse | undefined) => {\n if (typeof old !== 'undefined') {\n old.data.assets = (old?.data?.assets ?? [])\n .filter((id) => !(data?.deletions ?? []).includes(id))\n .concat(data?.additions ?? []);\n }\n return old;\n },\n );\n return { previousData };\n },\n onSuccess: () => {\n hooks.alerts.showSuccess('Request succeeded. Refreshing data...');\n },\n });\n\n const { uploadContent } = useFileSpinPicker({\n events: {\n complete: (d) => {\n console.log(data, d);\n // TODO: Implement a global search & pagination state handler\n refetch();\n },\n close: () => unlockScroll(),\n open: () => lockScroll(),\n },\n });\n\n useEffect(() => {\n hooks.state.updateDeletedAssets([]);\n }, []);\n\n const data = useMemo(() => {\n const result = fetchedData?.result.filter((asset: string) => !hooks.state.deletedAssets.includes(asset));\n return { ...fetchedData, result };\n }, [fetchedData, hooks.state.deletedAssets]);\n\n useCachePreviewImages(data);\n\n const handleAddAsset = () => {\n uploadContent();\n };\n\n const handleAddSelectedAssetsToBasket = () => {\n if (basketMutation.isLoading) return;\n basketMutation.mutateAsync({ additions: hooks.state.selectedAssets });\n hooks.state.updateSelectedAssets([]);\n };\n\n useEffect(() => {\n localStorage.setItem(ITEMS_PER_PAGE_LOCAL_KEY, String(hooks.reducer.filters.limit_per_page));\n }, [hooks.reducer.filters.limit_per_page]);\n\n useEffect(() => {\n hooks.reducer.dispatchFilter({ sort_by: [hooks.state.sorting.join('_')] });\n }, [hooks.state.sorting]);\n\n useEffect(() => {\n hooks.reducer.dispatchFilter({ keyword: hooks.searchDebounced, page: 1, hash: '' });\n }, [hooks.searchDebounced]);\n\n useEffect(() => {\n hooks.reducer.dispatchFilter({ file_name: hooks.fileNameDebounced, page: 1, hash: '' });\n }, [hooks.fileNameDebounced]);\n\n useEffect(() => {\n if (hooks.customContentDebounced !== '') {\n hooks.reducer.dispatchFilter({ custom_content_input: hooks.customContentDebounced, page: 1, hash: '' });\n } else {\n hooks.reducer.dispatchFilter({ custom_content_input: '', page: 1, hash: '' })\n }\n }, [hooks.customContentDebounced]);\n // useEffect(()=>{\n // hooks.reducer.dispatchFilter({schema_criteria:hooks.schemCriteriaDebounced,page:1,hash:''});\n // },[hooks.schemCriteriaDebounced])\n\n // needs bridge Layer for filters change (with debounce?), commit each change with hash -> '' and page -> 1\n\n useEffect(() => {\n if (isRefetching) return;\n refetch();\n }, [hooks.state.refreshValue]);\n\n useEffect(() => {\n hooks.state.setIsRefetching(isRefetching);\n }, [isRefetching]);\n\n const handleOnAssetSelectChange = (assetId: string) => {\n const newSelectedAssets = hooks.state.selectedAssets.includes(assetId)\n ? hooks.state.selectedAssets.filter((id) => id !== assetId)\n : [...hooks.state.selectedAssets, assetId];\n hooks.state.updateSelectedAssets(newSelectedAssets);\n };\n\n const handleSelectAllAssets = (selected: boolean) => {\n const newSelectedAssets = selected ? data.result : [];\n hooks.state.updateSelectedAssets(newSelectedAssets);\n };\n\n const handleMoveToTrash = async () => {\n if (hooks.state.isDeletingAssets) return;\n\n hooks.state.setIsDeletingAssets(true);\n\n try {\n const response: any = await Promise.all(\n hooks.state.selectedAssets.map((assetId) => deleteAsset(assetId, hooks.accessToken)),\n );\n\n if (typeof response.status === 'number' && ![200, 202].includes(response.status)) {\n throw response;\n }\n\n const newDeletedAssets = [...hooks.state.deletedAssets, ...hooks.state.selectedAssets];\n\n hooks.state.updateDeletedAssets(newDeletedAssets);\n hooks.alerts.showSuccess(`Successfully deleted selected assets`);\n } catch (error: any) {\n const errorMessage = hooks.errorMessages.getErrorMessage(error.message);\n hooks.alerts.showAlert(errorMessage);\n } finally {\n hooks.state.setIsDeletingAssets(false);\n hooks.state.updateSelectedAssets([]);\n }\n };\n\n useEffect(() => {\n return () => {\n console.log('clearing selected assets');\n hooks.state.updateSelectedAssets([]);\n };\n }, []);\n\n const handleOnClickAction = (option: string) => {\n switch (option) {\n case PAGE_ACTIONS.ADD_TO_COLLECTIONS:\n const addAssetsToCollectionsElement = ;\n return hooks.modal.showModal(addAssetsToCollectionsElement);\n case PAGE_ACTIONS.ADD_TO_BASKET:\n return handleAddSelectedAssetsToBasket();\n case PAGE_ACTIONS.MOVE_TO_TRASH:\n return handleMoveToTrash();\n case PAGE_ACTIONS.CREATE_COLLECTION:\n const routeToCollections = () => hooks.history.push('/collections');\n const element = ;\n return hooks.modal.showModal(element);\n }\n };\n\n const uploadDateRange = useMemo(() => {\n return {\n start: hooks.reducer.filters.upload_time_range.start,\n end: hooks.reducer.filters.upload_time_range.end,\n };\n }, [hooks.reducer.filters.upload_time_range.start, hooks.reducer.filters.upload_time_range.end]);\n\n useEffect(() => {\n if (uploadDateRange.start || uploadDateRange.end) {\n hooks.reducer.dispatchFilter({ page: 1, hash: '' });\n }\n }, [uploadDateRange]);\n // useEffect(() => {\n // const { start, end } = hooks.reducer.filters.upload_time_range;\n // if (start || end) {\n // hooks.reducer.dispatchFilter({ page: 1, hash: '' });\n // }\n // }, [hooks.reducer.filters.upload_time_range.start, hooks.reducer.filters.upload_time_range.end]);\n\n const pageActions = useMemo(() => {\n const actions = [\n {\n key: PAGE_ACTIONS.ADD_TO_COLLECTIONS,\n value: 'Add to Collections',\n noBorderBottom: false,\n icon: ,\n optionDisabled: hooks.state.selectedAssets.length === 0,\n },\n {\n key: PAGE_ACTIONS.CREATE_COLLECTION,\n value: 'Create new Collection',\n noBorderBottom: false,\n icon: ,\n optionDisabled: hooks.state.selectedAssets.length === 0,\n },\n {\n key: PAGE_ACTIONS.ADD_TO_BASKET,\n value: 'Add to Basket',\n noBorderBottom: false,\n icon: ,\n optionDisabled: hooks.state.selectedAssets.length === 0,\n },\n ];\n\n if (!hooks.roleManager.isUser) {\n actions.push({\n key: PAGE_ACTIONS.MOVE_TO_TRASH,\n value: 'Move to Trash',\n noBorderBottom: false,\n icon: ,\n optionDisabled: hooks.state.selectedAssets.length === 0,\n });\n }\n\n return actions;\n }, [hooks.roleManager.isUser, hooks.state.selectedAssets]);\n\n const handleFilenameChange = (value: string) => hooks.state.setFileName(value);\n\n const [showFreeFormData, setShowFreeFormData] = useState(false);\n const [showFreeFormFields, setShowFreeFormFields] = useState(false);\n\n type RenderSearchFormProps = {\n schema?: any;\n metadata: any;\n onSubmit: ((e: ISubmitEvent, nativeEvent: React.FormEvent) => any) | undefined;\n onCancel: () => void;\n };\n\n const handleSubmit = () => {\n document.getElementById('hiddenSubmitButton')?.click();\n };\n\n const RenderSearchForm: React.FC = ({ schema, metadata, onSubmit, onCancel }) => {\n return (\n <>\n {schemaSearchMode && (\n
\n \n
\n )}\n
\n \n \n
\n \n );\n };\n\n const RenderFaceSearchForm: React.FC = ({ schema, metadata, onSubmit, onCancel }) => {\n return (\n <>\n {!showFreeFormData && schemaFaceSearchMode && (\n <>\n
\n \n
\n
\n \n Cancel\n \n \n
\n \n )}\n \n );\n };\n\n const renderDropdownValue = (value: string) => {\n if (!value || value.length <= 28) {\n return value;\n }\n return `${value.slice(0, 25)}...`;\n };\n\n const processOptions = (data: any) => {\n const updatedData: any = {};\n\n for (const key in data) {\n const value = data[key];\n if (\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && value !== null && Object.keys(value).length === 0) || value === false\n ) {\n continue;\n }\n\n\n updatedData[key] = typeof value === 'object' ? JSON.stringify(value) : value;\n }\n\n return updatedData;\n }\n\n\n const submitSearchData = async (schemaObject: any) => {\n const options = processOptions(schemaObject?.formData);\n setMetaData(schemaObject?.formData);\n setSearchMetaData(schemaObject?.formData);\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n\n if (hooks.reducer.filters.face) {\n const newFilters = {\n ...filters,\n hash: '',\n page: 1,\n filters: options,\n };\n dispatchFilter(newFilters);\n } else {\n const newFilters = {\n ...filters,\n page: 1,\n hash: '',\n schema_criteria: {\n data_schema_id: Number(selectedSchemaId),\n fields: options,\n },\n extended_result: true,\n };\n dispatchFilter(newFilters);\n }\n };\n\n const formRef = useRef(null);\n\n useEffect(() => {\n if (schemaSearchMode && formRef.current) {\n const height = formRef.current.scrollHeight > 400 ? 400 : formRef.current.scrollHeight;\n formRef.current.style.maxHeight = `${height}px`;\n }\n }, [schemaSearchMode]);\n\n const handleCancel = () => {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n hooks.enhancedDispatchFilter(filters);\n setSchemaSearchMode(false);\n setSelectedSchemaId('-1');\n setSelectedSchemaIdFace('-1');\n setMetaData({});\n setSearchMetaData({});\n setShowFreeFormFields(false);\n };\n\n const onFaceSearchClose = () => {\n console.log('face search cancel');\n hooks.state.setFace(null);\n hooks.state.setSearch('');\n hooks.enhancedFaceRemoval(filters);\n setSchemaSearchMode(false);\n setSelectedSchemaId('-1');\n setSelectedSchemaIdFace('-1');\n setMetaData({});\n setSearchMetaData({});\n };\n\n const isFreeFormData = useMemo(() => selectedSchemaIdFace === '-1', [selectedSchemaIdFace]);\n\n useEffect(() => {\n setShowFreeFormData(isFreeFormData);\n }, [isFreeFormData]);\n\n const handleFreeFormSubmit = (fieldsData: Record) => {\n const newoptions = processOptions(fieldsData);\n const newFilters = {\n ...filters,\n hash: '',\n page: 1,\n filters: newoptions,\n };\n\n dispatchFilter(newFilters);\n };\n\n const handleCancelFreeFormData = () => {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n hooks.enhancedDispatchFilter(filters);\n setSchemaSearchMode(false);\n setSelectedSchemaId('-1');\n setSelectedSchemaIdFace('-1');\n setMetaData({});\n setSearchMetaData({});\n setShowFreeFormFields(false);\n };\n\n\n const foldableFilterComponent = (\n
\n\n {hooks.reducer.filters.face ? (\n <>\n \n
\n {\n if (key === '-1') {\n handleCancel();\n } else {\n setSelectedSchemaIdFace(key);\n setFaceSchema(schemaIdDataMappingFace[Number(key)]?.schema);\n setFaceSchemaSearchMode(true); // Ensuring it sets to true when an option is selected\n setSearchMetaData({});\n }\n }}\n reduceOptionSize={true}\n >\n {selectSchemaOptionsFace?.length > 0 ? (\n selectedSchemaIdFace === '-1' ? (\n 'None Selected'\n ) : (\n `${renderDropdownValue(schemaKeyValueMappingFace[selectedSchemaIdFace])} (ID: ${selectedSchemaIdFace})`\n )\n ) : (\n
\n )}\n \n
\n {schemaFaceSearchMode && !showFreeFormData && (\n
\n \n
\n )}\n {/*
\n {showFreeFormData && (\n
\n
\n \n
\n {showFreeFormFields && (\n setShowFreeFormFields(false)}\n onCancel={handleCancelFreeFormData}\n />\n )}\n
\n )}\n
*/}\n
\n \n ) : (\n
\n

\n {} {\"Filters\"}\n

\n
\n
\n )}\n\n
\n );\n\n\n\n const [isFaceSearchEnabled, setIsFaceSearchEnabled] = useState(false)\n const handleContentTypeInputChange = (value: string) => hooks.state.setCustomContentInput(value);\n\n\n return (\n
\n
\n \n \n \n )\n }\n />\n hooks.state.setSorting(sortKey)}\n onSearch={(searchTerm) => hooks.state.setSearch(searchTerm)}\n onSearchFace={(img) => {\n hooks.state.setFace(img);\n\n hooks.enhancedFaceSearch(img, filters);\n }}\n onSearchFaceCancel={onFaceSearchClose}\n onClickFiltersButton={() => hooks.state.setFiltersVisible(!hooks.state.filtersVisible)}\n searchFace={settingsData?.FACE_RECOGNITION?.added && settingsData?.FACE_RECOGNITION?.enabled}\n foldableFaceFilter={foldableFilterComponent}\n faceSearchEnabled={isFaceSearchEnabled}\n setFaceSearchEnabled={setIsFaceSearchEnabled}\n />\n
\n {hooks.state.filtersVisible && !isFaceSearchEnabled && (\n
\n \n \n \n \n {\n hooks.reducer.dispatchFilter({ content_type: '', page: 1, hash: '', custom_content_input: '' });\n hooks.state.setCustomContentInput('');\n }}\n radio={true}\n />\n {\n const isSelected = hooks.reducer.filters.content_type === 'image';\n hooks.reducer.dispatchFilter({\n content_type: isSelected ? '' : 'image',\n page: 1,\n hash: '',\n custom_content_input: '',\n });\n hooks.state.setCustomContentInput('');\n }}\n radio={true}\n datatest='image-click'\n />\n\n {\n const isSelected = hooks.reducer.filters.content_type === 'video';\n hooks.reducer.dispatchFilter({\n content_type: isSelected ? '' : 'video',\n page: 1,\n hash: '',\n custom_content_input: '',\n });\n hooks.state.setCustomContentInput('');\n }}\n radio={true}\n />\n\n {\n const isSelected = hooks.reducer.filters.content_type === 'audio';\n hooks.reducer.dispatchFilter({\n content_type: isSelected ? '' : 'audio',\n page: 1,\n hash: '',\n custom_content_input: '',\n });\n hooks.state.setCustomContentInput('');\n }}\n radio={true}\n />\n
\n {\n const isSelected =\n hooks.reducer.filters.content_type !== '' &&\n !['image', 'video', 'audio'].includes(hooks.reducer.filters.content_type);\n hooks.reducer.dispatchFilter({\n content_type: isSelected ? '' : '*',\n page: 1,\n hash: '',\n custom_content_input: '',\n });\n hooks.state.setCustomContentInput('');\n }}\n radio={true}\n />\n\n
\n \n
\n
\n
\n \n
\n \n \n
\n {/* TODO: 1. DOCUMENT DATES FILTER, 2. Dates manipulations needs proper abstraction */}\n
\n \n {\n hooks.reducer.dispatchFilter({\n status: v,\n });\n }}\n />\n \n \n
\n {\n if (key === '-1') {\n handleCancel();\n } else {\n setSelectedSchemaId(key);\n setSchema(schemaIdDataMapping[Number(key)]?.schema);\n setSchemaSearchMode(true);\n setMetaData({});\n }\n }}\n >\n {selectSchemaOptions?.length > 0 ? (\n selectedSchemaId === '-1' ? (\n 'None Selected'\n ) : (\n `${renderDropdownValue(schemaKeyValueMapping[selectedSchemaId])} (ID: ${selectedSchemaId})`\n )\n ) : (\n
\n )}\n \n
\n {\n handleCancel();\n\n // setSelectedSchemaId(asset.data_schema_id)\n // setSchema(schemaIdDataMapping[asset?.data_schema_id]?.schema)\n }}\n />\n
\n
\n
\n\n {/* )} */}\n
\n )}\n
\n
\n 0}\n onSelectAll={handleSelectAllAssets}\n pageActions={{\n options: pageActions,\n onClick: handleOnClickAction,\n }}\n />\n \n
\n\n
\n
\n {hooks.state.search !== '' && (\n hooks.state.setSearch('')} />\n )}\n {hooks.reducer.filters.file_name !== '' && (\n {\n hooks.reducer.dispatchFilter({ file_name: '', page: 1, hash: '' });\n hooks.state.setFileName('');\n }}\n />\n )}\n {hooks.reducer.filters.content_type !== '' &&\n hooks.reducer.filters.content_type !== '*' &&\n hooks.reducer.filters.custom_content_input === '' && (\n {\n hooks.reducer.dispatchFilter({ content_type: '', page: 1, hash: '' });\n hooks.state.setCustomContentInput('');\n }}\n />\n )}\n\n {hooks.reducer.filters.custom_content_input !== '' && (\n {\n hooks.reducer.dispatchFilter({ content_type: '*', page: 1, hash: '', custom_content_input: '' });\n hooks.state.setCustomContentInput('');\n }}\n />\n )}\n\n {(hooks.reducer.filters.upload_time_range.start || hooks.reducer.filters.upload_time_range.end) && (\n {\n if (\n hooks.reducer.filters.upload_time_range.start &&\n hooks.reducer.filters.upload_time_range.end\n ) {\n hooks.clearRangeDate();\n } else if (hooks.reducer.filters.upload_time_range.start) {\n hooks.clearStartDate();\n } else if (hooks.reducer.filters.upload_time_range.end) {\n hooks.clearEndDate();\n }\n }}\n />\n )}\n {hooks.reducer.filters.status !== '' && (\n {\n hooks.reducer.dispatchFilter({ status: '', page: 1, hash: '' });\n }}\n />\n )}\n {/**/}\n
\n
\n\n (\n handleOnAssetSelectChange(assetId)}\n isSelected={hooks.state.selectedAssets.includes(assetId)}\n error={data?.extended_result[assetId]?.errors}\n />\n )}\n listView={(assetId: string) => (\n handleOnAssetSelectChange(assetId)}\n isSelected={hooks.state.selectedAssets.includes(assetId)}\n error={data?.extended_result[assetId]?.errors}\n />\n )}\n />\n\n {hooks.state.totalPages > 1 ? (\n
\n hooks.reducer.dispatchFilter({ page, hash: hooks.refs.searchHash.current })}\n itemsPerPage={hooks.reducer.filters.limit_per_page}\n onItemsPerPageChange={(newLimit) =>\n hooks.reducer.dispatchFilter({ page: 1, hash: '', limit_per_page: newLimit })\n }\n datatest=\"pager-button-click\"\n />\n
\n ) : (
)}\n
\n
\n
\n
\n );\n};\n\nconst FoldableFilter: React.FC<{ title: string; dataTest?: string }> = ({ title, children, dataTest }) => {\n const [isRevealed, setIsRevealed] = useState(() => {\n return title === 'File Name' || title === 'Filters';\n });\n\n return (\n
\n

setIsRevealed(!isRevealed)}>\n {isRevealed ? : } {title}\n

\n {isRevealed &&
{children}
}\n
\n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n\tadd: {\n\t\tid: 'pages.collections.add',\n\t\tdefaultMessage: 'New Collection',\n\t},\n\tsaveSearch: {\n\t\tid: 'pages.collections.saveSearch',\n\t\tdefaultMessage: 'Save this search',\n\t},\n});\n","import { FormattedMessage, useIntl } from 'react-intl';\nimport cn from 'classnames';\nimport React, { useState, useMemo, useReducer, useEffect, useRef } from 'react';\nimport {\n CollectionCard,\n PageTitle,\n Tag,\n Button,\n LayoutView,\n CollectionRow,\n LayoutViewSwitcher,\n Dropdown,\n SearchBar,\n SearchFiltersSidebar,\n Pager,\n CreateCollectionModal,\n} from 'src/components';\nimport { useSearchCollectionsQuery } from 'src/api/queries/collectionsQueries';\n\nimport { Collection } from 'src/types/TCollection';\nimport styles from './Collections.module.scss';\nimport messages from './messages';\n\nimport useModal from 'src/hooks/useModal';\n\nimport { CollectionQuery } from 'src/api/functions/collectionsApi';\nimport { sortAtom } from 'src/shared/sort';\nimport { useAtomValue, useUpdateAtom } from 'jotai/utils';\nimport { filtersVisibleAtom } from 'src/shared/filters';\nimport { useAtom } from 'jotai';\nimport { useLocalStorage } from 'src/hooks/useLocalStorage';\nimport { isRefetchingAtom, refreshAtom } from 'src/shared/refresh';\nimport { searchAtom } from 'src/shared/search';\nimport { TSorting } from 'src/types/TSorting';\n\nconst initialSearchQuery: CollectionQuery = {\n sort_by: ['last_update DESC'],\n offset: 0,\n limit: 30,\n};\n\nconst searchQueryReducer = (state: CollectionQuery, payload: CollectionQuery) => ({ ...state, ...payload });\n\nexport const Collections = () => {\n const [itemsPerPage, setItemsPerPage] = useLocalStorage('collections.itemsPerPage', '30');\n const [sorting, setSorting] = useState(['last_update', 'DESC']);\n const [filtersVisible, setFiltersVisible] = useState(false);\n const [totalPages, setTotalPages] = useState(1);\n const [searchTerm, setSearchTerm] = useState('');\n\n const refreshValue = useAtomValue(refreshAtom);\n const setIsRefetching = useUpdateAtom(isRefetchingAtom);\n\n const [searchQuery, dispatchSearchQuery] = useReducer(searchQueryReducer, initialSearchQuery, (state) => {\n const limit = Number(itemsPerPage);\n return { ...state, limit: limit };\n });\n\n const currentPage = useMemo(() => {\n if (!searchQuery.offset || !searchQuery.limit) return 1;\n\n return Math.floor(searchQuery.offset / searchQuery.limit) + 1;\n }, [searchQuery]);\n\n const {\n data: allCollectionsResult,\n refetch,\n isLoading,\n isRefetching,\n error,\n } = useSearchCollectionsQuery(searchQuery, {\n onSuccess: (results) => {\n // TODO: handle pagination\n setTotalPages(Math.ceil(results.data.total_collections / (searchQuery.limit ?? 1)));\n },\n });\n\n const filtersSidebarRef = useRef(null);\n\n const { showModal } = useModal();\n\n const handleOnCreateCollection = () => window.location.reload();\n\n const showCreateCollectionModal = () =>\n showModal();\n\n const handleSearchCollection = (searchTerm: string) => {\n setSearchTerm(searchTerm);\n dispatchSearchQuery({\n keyword: searchTerm,\n });\n };\n\n const handleApplyFilters = (filters: any) => {\n dispatchSearchQuery({\n ...filters,\n });\n setFiltersVisible(false);\n };\n\n const handlePageChange = (page: number) => {\n dispatchSearchQuery({\n offset: (page - 1) * (searchQuery.limit ?? 30),\n });\n };\n\n const handleItemsPerPageChange = (newLimit: number) => {\n setItemsPerPage(newLimit.toString());\n dispatchSearchQuery({\n limit: newLimit,\n offset: 0,\n });\n };\n\n const handleClearSearch = () => {\n setSearchTerm('');\n dispatchSearchQuery({\n keyword: '',\n });\n };\n\n const handleClearDateFilter = (date: 'start' | 'end') => {\n const oppositeDate = date === 'start' ? 'end' : 'start';\n\n dispatchSearchQuery({\n last_update_range: {\n [date]: undefined,\n [oppositeDate]: searchQuery.last_update_range?.[oppositeDate],\n },\n });\n };\n\n useEffect(() => {\n dispatchSearchQuery({\n sort_by: [sorting.join(' ')],\n });\n }, [sorting]);\n\n useEffect(() => {\n if (isRefetching) return;\n refetch();\n }, [refreshValue]);\n\n useEffect(() => {\n setIsRefetching(isRefetching);\n }, [isRefetching]);\n\n return (\n
\n showCreateCollectionModal()} data-test=\"add-collection\">\n \n \n }\n />\n setFiltersVisible(!filtersVisible)}\n />\n
\n {filtersVisible && (\n
\n \n
\n )}\n\n
\n
\n
\n {searchQuery.keyword !== '' && (\n <>\n {searchQuery.keyword && searchQuery.keyword !== '' && (\n \n )}\n {searchQuery.private_only && (\n dispatchSearchQuery({ private_only: false })} />\n )}\n {searchQuery.last_update_range && (\n <>\n {searchQuery.last_update_range.start && (\n handleClearDateFilter('start')}\n />\n )}\n {searchQuery.last_update_range.end && (\n handleClearDateFilter('end')}\n />\n )}\n \n )}\n \n )}\n
\n
\n \n
\n
\n }\n listView={(collection: Collection) => }\n classNames={{\n cardView: 'listingGridWrapper',\n listView: styles.listWrapper,\n }}\n />\n\n {allCollectionsResult?.data?.total_collections > Number(itemsPerPage) && (\n
\n \n
\n )}\n
\n
\n
\n );\n};\n","import React from 'react';\n\nimport styles from '../Modal.module.scss';\n\ntype TFlatButton = {\n icon: React.ReactNode;\n onClick: (params?: any) => void;\n disabled?: boolean;\n lightIcon?: boolean;\n datatest?:string\n};\n\nexport const FlatButton: React.FC = ({ icon, lightIcon, disabled, onClick, children ,datatest}) => (\n \n);\n","import React, { useState, useRef, useEffect, useMemo } from 'react';\nimport { useAuthUser } from 'react-auth-kit';\n\nimport { getThumbnailUrl } from 'src/utils/previews';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { getAssetMediaUrl } from 'src/api/functions/assetsApi';\n\nimport * as ISOLocales from 'iso-locales';\n\nimport { Player, Video, DefaultUi, DefaultControls, Captions } from '@vime/react';\n\n// Default theme.\nimport '@vime/core/themes/default.css';\nimport { Loader } from 'src/components';\n\nimport styles from './Modal.module.scss';\n\ntype PreviewParams = {\n assetType: string;\n assetId: string;\n conversions: any;\n dimensions: [width?: number, height?: number];\n getURL: (url: string) => void;\n};\n\ntype TrackProps = {\n src: string;\n kind: string;\n label: string;\n default?: boolean;\n srcLang: string;\n};\n\nconst videoKeys = [\n '240p-video',\n '240p-wm-video',\n '320p-video',\n '320p-wm-video',\n '360p-video',\n '360p-wm-video',\n '480p-video',\n '480p-wm-video',\n '720p-video',\n '720p-wm-video',\n '1080p-video',\n '1080p-wm-video',\n];\n\nconst ModalPreview: React.FC = ({ assetType, assetId, conversions, dimensions, getURL }) => {\n const [datatype] = assetType.split('/') as ['image' | 'video' | 'video' | 'audio', string];\n\n const accessToken = useAccessToken();\n\n const auth = useAuthUser();\n\n const [mediaSrc, setMediaSrc] = useState('');\n const [tracks, setTracks] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n getURL(mediaThumbnail);\n loadMediaData();\n }, [assetId, assetType, conversions, accessToken]);\n\n useEffect(() => {\n setMediaSrc('');\n setTracks([]);\n loadMediaData();\n }, [assetId, assetType, conversions]);\n \n \n const mediaThumbnail = getThumbnailUrl({\n width: dimensions[0] ? Math.min(dimensions[0], 800) : 800,\n height: dimensions[1] ? Math.min(dimensions[1], 600) : 600,\n id: assetId,\n jwt: accessToken,\n });\n\n const possibleVideoKeys =\n datatype === 'video' ? videoKeys.filter((value) => Object.keys(conversions).includes(value)) : [];\n\n const getMediaUrl = async () => {\n setIsLoading(true);\n const url = await getAssetMediaUrl(\n assetId,\n possibleVideoKeys?.[0] ?? 'original',\n auth()!.accessId,\n 'display',\n accessToken,\n );\n setMediaSrc(url);\n };\n\n const setDefaultTrack = (srcLang: string) => {\n const { language } = navigator;\n\n const languages = [language, language.split('-')[0]].map((lang) => lang.toLowerCase());\n\n return languages.includes(srcLang.toLowerCase());\n };\n\n const processSubtitle = async ({ subtitle, bucket, key, ...rest }: any) => {\n const [, langCode] = subtitle.split('_');\n const locale = ISOLocales.findByTag(langCode);\n\n const src = await getAssetMediaUrl(assetId, subtitle, auth()!.accessId, 'download', accessToken);\n\n return {\n kind: 'subtitles',\n src,\n srcLang: langCode,\n label: `${locale?.language_local ?? locale?.language} ${locale?.region ? `(${locale?.region})` : ''}`,\n default: setDefaultTrack(langCode),\n };\n };\n\n const getMediaTracks = async () => {\n const subtitles = Object.entries(conversions)\n .filter(([key]) => key.includes('subtitles'))\n .map(([subtitle, value]: [string, any]) => ({ ...value, subtitle }));\n\n const trackSources = await Promise.all(subtitles.map((subtitle) => processSubtitle(subtitle)));\n\n setTracks(trackSources);\n };\n\n const loadMediaData = async () => {\n if (datatype === 'image') {\n setMediaSrc('')\n } else {\n await Promise.all([getMediaUrl(), getMediaTracks()]);\n }\n setIsLoading(false);\n };\n \n \n switch (datatype) {\n case 'video':\n case 'audio':\n return isLoading ? (\n
\n \n

Loading media...

\n
\n ) : (\n
\n \n \n \n \n \n \n
\n );\n \n case 'image':\n default:\n\n return <>\n {\n isLoading && \n }\n setIsLoading(false)}\n hidden={isLoading}\n />\n ;\n\n }\n};\n\nexport { ModalPreview };\n","import { ModalPreview} from \"./ModalPreview\";\n\nexport { ModalPreview }\n\nexport default ModalPreview;\n\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n add: {\n id: 'pages.modal.addtobasket',\n defaultMessage: 'Add to basket',\n },\n downloadContent: {\n id: 'pages.modal.downloadContent',\n defaultMessage: 'Download',\n },\n replaceContent: {\n id: 'pages.modal.replaceContent',\n defaultMessage: 'Replace Content',\n },\n editImage: {\n id: 'pages.modal.editImage',\n defaultMessage: 'Edit Image',\n },\n tools: {\n id: 'pages.modal.Tools',\n defaultMessage: ' Tools',\n },\n cancelEditImage: {\n id: 'pages.modal.cancelEditImage',\n defaultMessage: 'Close Edit Mode',\n },\n back: {\n id: 'pages.modal.back',\n defaultMessage: 'Back',\n },\n metadata: {\n id: 'pages.modal.metadata',\n defaultMessage: 'Metadata',\n },\n core: {\n id: 'pages.modal.core',\n defaultMessage: 'Core',\n },\n conversions: {\n id: 'pages.modal.conversions',\n defaultMessage: 'Conversions',\n },\n addon: {\n id: 'pages.modal.addOn',\n defaultMessage: 'Add-on',\n },\n customMetadata: {\n id: 'pages.modal.customMetadata',\n defaultMessage: 'Custom Metadata',\n },\n customMetadataContent: {\n id: 'pages.modal.customMetadataContent',\n defaultMessage: 'Dynamically create and display product images that highlight the product by perfectly blending.',\n },\n goBack: {\n id: 'pages.modal.goBack',\n defaultMessage: 'Go Back',\n },\n saveConversion: {\n id: 'pages.modal.saveConversion',\n defaultMessage: 'Save into Asset as a Conversion',\n },\n saveNewAsset: {\n id: 'pages.modal.saveNewAsset',\n defaultMessage: 'Save into New Asset ',\n },\n assetUpdateDialogTitle: {\n id: 'pages.modal.assetUpdateDialogTitle',\n defaultMessage: 'Edited Copy of Image',\n },\n replaceOriginalImageNote: {\n id: 'pages.modal.replaceOriginalImageNote',\n defaultMessage: `WARNING: This will remove all the conventions and start all the Conventions.`,\n },\n replaceOriginalImage: {\n id: 'pages.modal.replaceOriginalImage',\n defaultMessage: `Replace Original {assetType}`,\n },\n addAsAConversion: {\n id: 'pages.modal.addAsAConversion',\n defaultMessage: 'Add as a Conversion',\n },\n downloadEditedCopy: {\n id: 'pages.modal.downloadEditedCopy',\n defaultMessage: 'Download Edited Copy',\n },\n addonNotEnabled: {\n id: 'pages.modal.addonNotEnabled',\n defaultMessage: 'Addon Not Enabled Please Contact Support',\n },\n addAsNewAsset: {\n id: 'pages.modal.addAsNewAsset',\n defaultMessage: 'Add As New Asset',\n },\n cancel: {\n id: 'pages.modal.cancel',\n defaultMessage: 'Cancel',\n },\n addFreeFormData: {\n id: 'pages.modal.addFreeFormData',\n defaultMessage: 'Add Free Form Data',\n },\n assetMetadataSetupInfo: {\n id: 'pages.modal.assetMetadataSetupInfo',\n defaultMessage:\n \"It seems that you don't have any metadata nor any schema for your metadata, choose one of the two:\",\n },\n selectSchema: {\n id: 'pages.modal.selectSchema',\n defaultMessage: 'Select a schema for your metadata:',\n },\n submit: {\n id: 'pages.modal.submit',\n defaultMessage: 'Submit',\n },\n addField: {\n id: 'pages.modal.addField',\n defaultMessage: 'Add Field',\n },\n successfullyReplacedOriginalImage: {\n id: 'pages.modal.successfullyReplacedOriginalImage',\n defaultMessage:\n 'Sucessfuly replaced original asset, this might take a while to update, This will also remove all the conventions and start the reprocessing.',\n },\n newAssetcreated: {\n id: 'pages.modal.newAssetcreated',\n defaultMessage: 'The new asset is created successfully',\n },\n subtitleUpdated: {\n id: 'pages.modal.subtitleUpdated',\n defaultMessage: 'Subtitle updated successfully',\n },\n savedConversion: {\n id: 'pages.modal.savedConversion',\n defaultMessage: `Sucessfully saved {conversionName} as an asset conversion`,\n },\n addedNewAsset: {\n id: 'pages.modal.addedNewAsset',\n defaultMessage: `Sucessfully Added as New Asset in the Dashboard`,\n },\n replaceOriginal: {\n id: 'pages.modal.replaceOriginal',\n defaultMessage: `Sucessfuly replaced original {type}, this might take a while to update.`,\n },\n editConfirmDialogTitle: {\n id: 'pages.modal.editConfirmDialogTitle',\n defaultMessage: 'Do you want to edit another conversion?',\n },\n editConfirmDialogMessage: {\n id: 'pages.modal.editConfirmDialogMessage',\n defaultMessage: 'You will lose all your changes if you proceed.',\n },\n addedToBasket: {\n id: 'pages.modal.addedToBasket',\n defaultMessage: 'Sucessfully added asset to basket',\n },\n removedFromBasket: {\n id: 'pages.modal.removedFromBasket',\n defaultMessage: 'Sucessfully removed asset from basket',\n },\n});\n","import React from 'react';\nimport cn from 'classnames';\nimport { FormattedMessage } from 'react-intl';\n\nimport messages from '../messages';\nimport styles from '../Modal.module.scss';\n\nexport const TabTrigger = ({\n\tkeyName,\n\tactiveKey,\n\tsetKey,\n\ticon,\n}: {\n\tkeyName: string;\n\tactiveKey: string;\n\tsetKey: React.Dispatch>;\n\ticon?: React.ReactNode;\n}) => (\n\t\n);\n","import { humanFileSize, formatSeconds } from 'src/utils/transform';\n\nexport const formatCoreData = (key: string, value: string | number) => {\n switch (key) {\n case 'size':\n return humanFileSize(value as number);\n case 'width':\n case 'height':\n return value !== 0 ? `${value} px` : 'N/A';\n case 'duration':\n return value !== 0 ? formatSeconds(value as number) : 'N/A';\n default:\n return value !== 0 ? value : 'N/A';\n }\n};\n","import { useMemo } from 'react';\nimport { useMutation, UseMutationOptions, useQueryClient } from 'react-query';\nimport { queryFnFetchErrorWrapper } from '../utils/errorHandlers';\nimport { AuthTokenRequest, AuthTokenResponse, FetchError } from 'src/types/TApiQueries';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { updateAssetMetadata } from 'src/api/functions/assetsApi';\nimport { queryNames } from 'src/api/utils/queryNames';\n\nexport function useAssetMetadataMutation(assetId: string, mutationOptions?: UseMutationOptions) {\n const queryClient = useQueryClient();\n const accessToken = useAccessToken();\n\n const mutationFn = useMemo(\n () => queryFnFetchErrorWrapper((data: any) => updateAssetMetadata(assetId, data, accessToken)),\n [assetId, accessToken],\n );\n\n return useMutation(mutationFn, {\n ...mutationOptions,\n onSuccess: async (result, ...args) => {\n // TODO: Instead of revalidate - use local cache to store the metadata\n // await queryClient.invalidateQueries([queryNames.asset, assetId]);\n mutationOptions?.onSuccess?.(result, ...args);\n },\n });\n}\n","import { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useQueryClient } from 'react-query';\nimport { useAssetMetadataMutation } from 'src/api/mutations/assetMutations';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { Pencil, Trash } from 'src/common/icons';\nimport SvgPlus from 'src/common/icons/Plus';\nimport { Button, Input } from 'src/components';\nimport messages from '../messages';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport { Asset } from 'src/types/TAssets';\nimport { object, string } from 'yup';\nimport styles from '../Modal.module.scss';\n\nconst MAX_FIELDS_ALLOWED = 10;\nconst MAXIMUM_FIELD_NAME_LENGTH = 24;\n\ntype SetupFreeFormMetadataProps = {\n asset: Asset;\n onCancel: () => void;\n};\n\ntype MetadataFieldProps = {\n onRemoveField: () => void;\n onEditField: () => void;\n onAddField: (fieldName: string, fieldValue: string) => void;\n};\n\nconst fieldNameSchema = string()\n .max(MAXIMUM_FIELD_NAME_LENGTH, \"Field name can't be longer than 24 characters\")\n .required('Field name is required')\n .matches(\n /^[a-zA-Z0-9_]+$/,\n 'Field name must be alphanumeric name with no spaces, only underscores or dashes allowed',\n );\nconst fieldValueSchema = string().required('Field value is required');\n\nconst fieldSchema = object().shape({\n name: fieldNameSchema,\n value: fieldValueSchema,\n});\n\nconst MetadataField = ({ onRemoveField, onAddField, onEditField }: MetadataFieldProps) => {\n const [fieldName, setFieldName] = useState('');\n const [fieldValue, setFieldValue] = useState('');\n const [error, setError] = useState();\n const [editMode, setEditMode] = useState(true);\n\n const handleFinish = async () => {\n try {\n await fieldSchema.validate({\n name: fieldName,\n value: fieldValue,\n });\n\n setEditMode(false);\n onAddField(fieldName, fieldValue);\n } catch (error: any) {\n setError(error.message);\n }\n };\n\n const handleEditField = () => {\n onEditField();\n setEditMode(true);\n };\n\n return editMode ? (\n
\n {error &&

{error}

}\n
\n setFieldName(value)}\n />\n
\n
\n setFieldValue(value)}\n />\n
\n \n
\n ) : (\n
\n
\n

{fieldName}

\n
\n
{fieldValue}
\n
\n );\n};\n\nconst SetupFreeFormMetadata = ({ asset, onCancel }: SetupFreeFormMetadataProps) => {\n const [fields, setFields] = useState([]);\n const [isAddingField, setIsAddingField] = useState(false);\n\n const queryClient = useQueryClient();\n\n const { showSuccess, showAlert } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n\n const metadataMutation = useAssetMetadataMutation(asset.id, {\n onError: (error, newData, context: any) => {\n queryClient.setQueryData([queryNames.asset, asset.id], context.previousData);\n // TODO: Handle error, show feedback\n showAlert(getErrorMessage(error.message));\n },\n onMutate: (updated_data) => {\n let data = { ...updated_data.data }\n \n const previousData = queryClient.getQueryData([queryNames.asset, asset.id]);\n queryClient.setQueryData([queryNames.asset, asset.id], (old) => {\n if (typeof old !== 'undefined') {\n old.data = data;\n }\n return old;\n });\n\n showSuccess('Asset metadata updated sucessfully');\n\n return { previousData };\n },\n });\n\n const handleAddInput = () => {\n if (fields.length >= MAX_FIELDS_ALLOWED) return;\n\n setFields([...fields, {}]);\n setIsAddingField(true);\n };\n\n const handleFieldChange = (index: number, fieldName: any, fieldValue: any) => {\n setFields((currentFields: any) => {\n const newFields = [...currentFields];\n newFields[index] = { value: fieldValue, name: fieldName };\n return newFields;\n });\n setIsAddingField(false);\n };\n\n const handleRemoveField = (index: number) => {\n setFields((currentFields: any[]) => {\n const newFields = [...currentFields];\n newFields.splice(index, 1);\n return newFields;\n });\n setIsAddingField(false);\n };\n\n\n const handleSubmit = async () => {\n const metadata: any = {};\n\n fields.forEach((field: any) => {\n metadata[field.name] = field.value;\n });\n\n \n await metadataMutation.mutateAsync({\n data: metadata,\n mode: 'REPLACE',\n data_schema_id: asset?.data_schema_id\n });\n };\n\n return (\n
\n {fields.map((field: any, index: number) => (\n handleRemoveField(index)}\n onAddField={(fieldName, fieldValue) => handleFieldChange(index, fieldName, fieldValue)}\n onEditField={() => setIsAddingField(true)}\n />\n ))}\n\n {fields.length >= MAX_FIELDS_ALLOWED &&

You've reached a limit of {MAX_FIELDS_ALLOWED} fields allowed.

}\n {!isAddingField && (\n }\n mode=\"tertiary\"\n size=\"small\"\n onClick={handleAddInput}\n disabled={fields.length >= MAX_FIELDS_ALLOWED}\n className={styles.fullWidthButton}\n >\n \n \n )}\n
\n \n \n
\n
\n );\n};\n\nexport default SetupFreeFormMetadata;","import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { getSchemas } from 'src/api/functions/schemaApi';\nimport { Button, SchemaForm, Select } from 'src/components';\nimport InfoSection from 'src/components/InfoSection';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport SetupFreeFormMetadata from './SetupFreeFormData';\nimport useRoleManager from 'src/hooks/useRoleManager';\n\nimport styles from '../Modal.module.scss';\nimport { Asset } from 'src/types/TAssets';\nimport messages from '../messages';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\ntype AssetMetadataSetupProps = {\n asset: Asset;\n onSubmitSchema: (data: any, schemaId: number) => void;\n schemasData:any\n};\n\nconst AssetMetadataSetup = ({ asset,schemasData, onSubmitSchema }: AssetMetadataSetupProps) => {\n const [schemas, setSchemas] = useState();\n const accessToken = useAccessToken();\n const [selectedSchemaId, setSelectedSchemaId] = useState('');\n const [showSchemaForm, setShowSchemaForm] = useState(false);\n const [showFreeFormData, setShowFreeFormData] = useState(false);\n const { isUser } = useRoleManager();\n\n\n const { formatMessage } = useIntl();\n\n const schemaSelection = useMemo(() => {\n if (!schemas) return [];\n\n return schemas.map((schema: any) => ({ label: schema.name.en, value: schema.id.toString() }));\n }, [schemas]);\n\n const selectedSchema = useMemo(\n () => schemaSelection.find((schema: any) => schema.value === selectedSchemaId),\n [selectedSchemaId],\n );\n\n const fetchSchemas = async () => {\n // const result = await getSchemas(accessToken);\n\n // console.debug(result)\n\n if (!schemasData) return;\n\n setSchemas(schemasData);\n setSelectedSchemaId(schemasData[0].id.toString());\n };\n\n useEffect(() => {\n fetchSchemas();\n }, []);\n\n const handleUseSchema = () => {\n setShowSchemaForm(true);\n };\n\n const handleCancel = () => {\n setShowSchemaForm(false);\n };\n\n const handleCancelFreeForm = () => {\n setShowFreeFormData(false);\n };\n\n const getSelectedSchema = useCallback(() => {\n const {\n schema: { $schema, ...data },\n } = schemas.find((schema: any) => schema.id === parseInt(selectedSchemaId));\n\n return data;\n }, [selectedSchemaId]);\n\n const handleSubmitSchema = (schemaObject: any) => {\n const schemaId = parseInt(selectedSchemaId);\n onSubmitSchema(schemaObject, schemaId);\n };\n\n return (\n <>\n {!showSchemaForm && !showFreeFormData && !isUser && (\n
\n \n
\n \n {schemas && (\n <>\n

OR

\n
\n

\n \n

\n setSelectedSchemaId(value)}\n options={schemaSelection}\n />\n \n
\n \n )}\n
\n
\n )}\n {showSchemaForm && (\n \n )}\n {showFreeFormData && }\n \n );\n};\n\nexport default AssetMetadataSetup;\n","import { useEffect, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { useQueryClient } from 'react-query';\n// import * as Sentry from '@sentry/react';\nimport { useAssetMetadataMutation } from 'src/api/mutations/assetMutations';\nimport { useAssetSchemaQuery } from 'src/api/queries/schemesQueries';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { Pencil } from 'src/common/icons';\nimport { Asset } from 'src/types/TAssets';\n\nimport styles from '../Modal.module.scss';\nimport messages from '../messages';\nimport MetadataForm from 'src/components/MetadataForm';\n\nimport AssetMetadataSetup from './AssetMetadataSetup';\nimport { isEmpty, set } from 'lodash';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport useRoleManager from 'src/hooks/useRoleManager';\nimport { Dropdown, Loader } from 'src/components';\nimport { ISubmitEvent } from '@rjsf/core';\n\ntype TAssetMetadata = {\n asset: Asset;\n schemas: any;\n};\n\nconst renderMetadata = (isUser: any, schema: any, metadata: any, onEdit: any) => {\n \n return (\n <>\n
\n {/* {schema?.title} */}\n {(schema as any)?.title ?? }\n {isUser ? (\n <>\n ) : (\n \n )}\n
\n {Object.entries(metadata).map(\n ([k, v]) =>\n k !== 'data_schema_id' && (\n
\n

{k}

\n
{String(v)}
\n
\n ),\n )}\n \n );\n};\n\ntype RenderEditMetadataProps = {\n schema?: any;\n metadata: any;\n onSubmit: ((e: ISubmitEvent, nativeEvent: React.FormEvent) => any) | undefined;\n onCancel: () => void;\n};\n\nconst RenderEditMetadata: React.FC = ({ schema, metadata, onSubmit, onCancel }) => {\n return ;\n};\n\nexport const AssetMetadata: React.FC = ({ asset, schemas }) => {\n // const metadata = asset?.data ?? {}\n const data_schema_id = asset.data_schema_id ?? 0;\n\n const metadata =\n data_schema_id === 0\n ? Object.fromEntries(\n Object.entries(asset?.data ?? {})\n .filter(([k]) => k !== 'data_schema_id')\n .map(([k, v]) => [k, String(v)]),\n )\n : Object.fromEntries(Object.entries(asset?.data ?? {}).filter(([k]) => k !== 'data_schema_id'));\n\n const [metadataEditMode, setMetadataEditMode] = useState(false);\n const [schema, setSchema] = useState();\n\n const [selectedSchemaId, setSelectedSchemaId] = useState(asset?.data_schema_id ?? 0);\n const [selectSchemaOptions, setSelectSchemaOptions] = useState([]);\n const [schemaIdDataMapping, setSchemaIdDataMapping] = useState({});\n const [schemaKeyValueMapping, setSchemaKeyValueMapping] = useState({});\n\n const queryClient = useQueryClient();\n const { showSuccess, showAlert } = useAlerts();\n\n\n const { getErrorMessage } = useErrorMessages();\n const { isUser, isCreator } = useRoleManager();\n const metadataMutation = useAssetMetadataMutation(asset.id, {\n onError: (error, newData, context: any) => {\n setSelectedSchemaId(asset?.data_schema_id ? asset?.data_schema_id : 0);\n setSchema(schemaIdDataMapping?.[asset?.data_schema_id]?.schema);\n\n queryClient.setQueryData([queryNames.asset, asset.id], context.previousData);\n // TODO: Handle error, show feedback\n // Sentry.captureMessage(\n // `Failed metadata mutation for asset ${asset.id} with error: ${error.message}`,\n // Sentry.Severity.Error,\n // );\n\n showAlert(getErrorMessage('system.errorMessages.unknownError'));\n },\n onMutate: (updated_data) => {\n \n let data = { ...updated_data.data };\n setSelectedSchemaId(updated_data?.data_schema_id)\n \n setMetadataEditMode(false);\n const previousData = queryClient.getQueryData([queryNames.asset, asset.id]);\n queryClient.setQueryData([queryNames.asset, asset.id], (old) => {\n \n if (typeof old !== 'undefined') {\n old.data = data;\n old.data_schema_id=updated_data?.data_schema_id\n }\n return old;\n });\n \n return { previousData };\n },\n onSuccess: (updated_data) => {\n showSuccess('Asset metadata updated sucessfully');\n }\n });\n\n\n // query the metadata\n // const {\n // data: schemaData,\n // error: schemaError,\n // isLoading: isSchemaLoading,\n // } = useAssetSchemaQuery(\n // data_schema_id,\n // {\n // staleTime: 1000 * 60 * 5,\n // refetchOnMount: true,\n // },\n // { enabled: !!data_schema_id },\n // );\n\n const sortByKeyAscending = (options: Array<{ key: string | number; value: string }>) => {\n return options.sort((a, b) => Number(a.key) - Number(b.key));\n };\n\n useEffect(() => {\n // setSelectedSchemaId(asset?.data_schema_id);\n const keyValueMapping: any = {};\n const idSchemaMapping: any = {};\n\n if (!schemas) return;\n let options = schemas?.map((schema: any) => {\n keyValueMapping[schema.id] = schema.name.en;\n idSchemaMapping[schema.id] = schema;\n return { value: schema.name.en + ` (ID:${schema.id})`, key: schema.id };\n });\n\n options=sortByKeyAscending(options)\n \n\n setSchemaKeyValueMapping(keyValueMapping);\n setSchemaIdDataMapping(idSchemaMapping);\n setSchema(idSchemaMapping[data_schema_id]?.schema ?? {})\n setSelectSchemaOptions(options);\n }, [schemas, asset]);\n\n // useEffect(() => {\n // if (!schemaData) return;\n // console.log(schemaData)\n // const { $schema, ...data } = schemaData?.schema ?? { schema: {} };\n \n // setSchema(data);\n // }, [schemaData]);\n\n const submitMetadata = async (schemaObject: any) => {\n \n await metadataMutation.mutateAsync({\n data: schemaObject?.formData,\n mode: 'APPEND',\n data_schema_id: Number(selectedSchemaId),\n });\n };\n\n const submitSchema = async (schemaObject: any, schemaId: number) => {\n await metadataMutation.mutateAsync({\n data: schemaObject?.formData,\n mode: 'REPLACE',\n data_schema_id: schemaId,\n });\n };\n\n if (!schema && isEmpty(metadata)) {\n return (\n
\n \n
\n );\n }\n const renderDropdownValue = (value: string) => {\n if (!value || value.length <= 28) {\n return value;\n }\n return `${value.slice(0, 25)}...`;\n };\n\n return (\n <>\n {selectSchemaOptions?.length > 0 && schemas?.length > 0 ? (\n
\n
Asset Data Schema
\n {\n setSelectedSchemaId(key);\n setSchema(schemaIdDataMapping[Number(key)]?.schema);\n setMetadataEditMode(true);\n }}\n >\n {selectSchemaOptions?.length > 0 ? (\n `${renderDropdownValue(schemaKeyValueMapping[selectedSchemaId])} (ID: ${selectedSchemaId})`\n ) : (\n
\n )}\n \n {!metadataEditMode &&\n renderMetadata(isUser, schema, metadata, () => {\n setMetadataEditMode(true && !isUser);\n // setSelectedSchemaId(asset.data_schema_id)\n })}\n {/* {metadataEditMode && renderEditMetadata(schema, metadata, submitMetadata, () => setMetadataEditMode(false))} */}\n {metadataEditMode && (\n {\n setMetadataEditMode(false);\n // setSelectedSchemaId(asset.data_schema_id)\n // setSchema(schemaIdDataMapping[asset?.data_schema_id]?.schema)\n }}\n />\n )}\n
\n ) : (\n
No MetaData Available!
\n )}\n \n );\n};\n","import React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { ArrowLeftCircle } from 'src/common/icons';\nimport { Button, Input } from 'src/components';\n\nimport styles from '../Modal.module.scss';\n\nimport messages from '../messages';\n\ntype TAssetUpdatedConfirmationDialog = {\n onCreateNewAsset: (assetName: string, includeMetadata: boolean) => void;\n onReplaceOriginal: () => void;\n onCreateConversion: (conversionName: string) => void;\n onDownloadConversion: () => void;\n onCancel: () => void;\n assetType: 'original' | 'conversion';\n};\n\nexport const AssetUpdatedDialog: React.FC = ({\n onCreateNewAsset,\n onCreateConversion,\n onReplaceOriginal,\n onDownloadConversion,\n onCancel,\n assetType,\n}) => {\n const [showNewAssetOptions, setShowNewAssetOptions] = useState(false);\n const [showConversionOptions, setShowConversionOptions] = useState(false);\n const [showReplaceOptions, setShowReplaceOptions] = useState(false);\n const [saveMetadata, setSaveMetadata] = useState(false);\n const [conversionName, setConversionName] = useState('');\n const [assetName, setAssetName] = useState('');\n const [error, setError] = useState(undefined);\n const [loading, setLoading] = useState(false);\n\n const handleCreateConversion = () => {\n if (!conversionName) {\n setError('Conversion name is required');\n return;\n }\n\n if (conversionName.length > 20) {\n setError('Conversion name must be 20 characters or less');\n return;\n }\n\n if (!/^[a-zA-Z0-9_-]{1,}$/.test(conversionName)) {\n setError('Conversion name must be alphanumeric and can contain \"-\" and \"_\"');\n return;\n }\n\n onCreateConversion(conversionName);\n setLoading(true);\n };\n\n const handleAddAsset = () => {\n if (!assetName) {\n setError('Conversion name is required');\n return;\n }\n\n if (assetName.length > 20) {\n setError('Conversion name must be 20 characters or less');\n return;\n }\n\n if (!/^[a-zA-Z0-9_-]{1,}$/.test(assetName)) {\n setError('Conversion name must be alphanumeric and can contain \"-\" and \"_\"');\n return;\n }\n\n onCreateNewAsset(assetName, saveMetadata);\n setLoading(true);\n };\n\n const handleDownloadConversion = () => {\n setLoading(true);\n onDownloadConversion();\n };\n const handleReplaceOriginal = () => {\n if (assetType === 'original') {\n setShowReplaceOptions(true);\n } else {\n setLoading(true);\n onReplaceOriginal();\n }\n };\n const handleReplaceOriginalImage = () => {\n setLoading(true);\n onReplaceOriginal();\n };\n return (\n
\n
\n {showConversionOptions || showReplaceOptions || showNewAssetOptions ? (\n <>\n {showConversionOptions && (\n <>\n }\n mode=\"flat\"\n size=\"small\"\n onClick={() => setShowConversionOptions(false)}\n >\n \n \n
\n setConversionName(value)}\n placeholder=\"Type a name for the conversion\"\n label=\"Conversion Name\"\n className={styles.conversionFormInput}\n error={error}\n />\n\n \n
\n \n )}\n {showNewAssetOptions && (\n <>\n }\n mode=\"flat\"\n size=\"small\"\n onClick={() => setShowNewAssetOptions(false)}\n >\n \n \n
\n setAssetName(value)}\n placeholder=\"Type a name for the asset\"\n label=\"Asset Name\"\n className={styles.conversionFormInput}\n error={error}\n />\n
\n setSaveMetadata(e.target.checked)}\n className={styles.metadataCheckbox}\n />\n Include Metadata\n
\n\n \n
\n \n )}\n {showReplaceOptions && (\n <>\n }\n mode=\"flat\"\n size=\"small\"\n onClick={() => setShowReplaceOptions(false)}\n >\n \n \n
\n
\n \n
\n\n \n \n \n
\n \n )}\n \n ) : (\n <>\n

\n \n

\n
\n \n {/* {\n handleReplaceOriginal();\n }}\n >\n \n */}\n\n \n\n \n\n \n
\n \n )}\n
\n
\n );\n};\n","import { createContext } from 'react';\n\ntype AssetModalAPI = {\n handleOnFinishEditing: () => void;\n};\n\nconst AssetModalContext = createContext(undefined);\n\nexport default AssetModalContext;\n","import { PinturaEditor } from 'react-pintura';\nimport styles from './Modal.module.scss';\nimport { getEditorDefaults, createDefaultColorOptions } from 'pintura';\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { AssetUpdatedDialog } from './components/AssetUpdateDialog';\nimport { useQueryClient } from 'react-query';\nimport { useAlerts } from 'src/common/AlertManager';\nimport { updateAssetConversionMedia, updateAssetMedia, createNewAsset } from 'src/api/functions/assetsApi';\nimport { useAccessToken } from 'src/hooks/useAccessToken';\nimport { queryNames } from 'src/api/utils/queryNames';\nimport { Button, Loader } from 'src/components';\nimport { WebVTTParser } from 'webvtt-parser';\nimport AssetModalContext from './context';\nimport useErrorMessages from 'src/hooks/useErrorsMessage';\nimport { useIntl } from 'react-intl';\nimport useRoleManager from 'src/hooks/useRoleManager';\n\nimport messages from './messages';\n\nexport enum EDITION_MODE {\n SUBTITLE,\n CONVERSION,\n ORIGINAL,\n}\n\nexport enum IMAGE_TYPE {\n ORIGINAL,\n CONVERSION,\n}\n\nexport type ConversionData = {\n key: string;\n name: string;\n url: string;\n};\n\nexport type OriginalData = {\n url: string;\n name: string;\n};\n\nexport type SubtitleData = {\n key: string;\n url: string;\n};\n\ntype ModalEditorProps = {\n assetId: string;\n type: EDITION_MODE;\n data: ConversionData | SubtitleData | OriginalData;\n metadata: any;\n};\n\ntype ImageEditorProps = {\n assetId: string;\n imageType: IMAGE_TYPE;\n data: ConversionData | OriginalData;\n metadata: any;\n};\n\ntype SubtitleEditorProps = {\n assetId: string;\n data: SubtitleData;\n metadata: any;\n};\n\nconst vttParser = new WebVTTParser();\n\nconst SubtitleEditor = ({ assetId, data, metadata }: SubtitleEditorProps) => {\n const [subtitleText, setSubtitleText] = useState('');\n const [errors, setErrors] = useState(null);\n const linesRef = useRef(null);\n const [isSaving, setIsSaving] = useState(false);\n const accessToken = useAccessToken();\n const modalAPI = useContext(AssetModalContext);\n const [loading, setLoading] = useState(false);\n const { showSuccess, showAlert } = useAlerts();\n const { getErrorMessage } = useErrorMessages();\n const { formatMessage } = useIntl();\n const { isUser } = useRoleManager();\n\n const lines = useMemo(() => {\n const numberOfLines = subtitleText.split('\\n').length;\n\n return Array.from({ length: numberOfLines }, (_, i) => i).join('\\n');\n }, [subtitleText]);\n\n const isValid = useMemo(() => errors === null, [errors]);\n\n const fetchSubtitleFile = async () => {\n setLoading(true);\n const response = await fetch(data.url);\n const blob = await response.blob();\n\n const reader = new FileReader();\n await reader.readAsText(blob);\n\n reader.onloadend = () => {\n setSubtitleText(reader.result as string);\n };\n\n setLoading(false);\n };\n\n const handleOnChange = (event: React.ChangeEvent) => {\n const {\n target: { value },\n } = event;\n setSubtitleText(value);\n\n const result = vttParser.parse(value);\n\n if (result.errors.length > 0) {\n setErrors(result.errors.map((e: any) => `${e.message} at line ${e.line}`));\n } else {\n setErrors(null);\n }\n };\n\n const handleScroll: React.UIEventHandler = (e) => {\n if (!linesRef.current) return;\n\n linesRef.current.scrollTop = e.currentTarget.scrollTop;\n };\n\n const handleSave = async () => {\n setIsSaving(true);\n const vttBlob = new Blob([subtitleText], { type: 'text/vtt' });\n const vttFile = new File([vttBlob], `${data.key}.vtt`, { type: 'text/vtt' });\n\n try {\n const response = await updateAssetConversionMedia(\n assetId,\n (data as SubtitleData).key,\n {\n file: vttFile,\n filename: vttFile.name,\n },\n accessToken,\n );\n\n if (response.status === 500) {\n throw response;\n }\n\n modalAPI?.handleOnFinishEditing();\n showSuccess(formatMessage(messages.subtitleUpdated));\n } catch (error: any) {\n showAlert(getErrorMessage(error?.key));\n } finally {\n setIsSaving(false);\n }\n };\n\n useEffect(() => {\n fetchSubtitleFile();\n }, [data]);\n\n if (loading)\n return (\n
\n \n
\n );\n\n return (\n
\n
\n