{"version":3,"file":"475.js","mappings":"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","sources":["webpack:///./advancedSearch/AdvancedSearchEnums.ts?","webpack:///./advancedSearch/QuickFilterComandInput.tsx?","webpack:///./advancedSearch/advancedSearch.tsx?","webpack:///./advancedSearch/advancedSearchStateManager.ts?","webpack:///./advancedSearch/advancedSearchUtils.ts?","webpack:///./advancedSearch/profilePanel.tsx?","webpack:///./contentManager/Body/ContentBodyCommandBar.tsx?","webpack:///./contentManager/Body/ContentBodyFilesFolders.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Automation.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_CancelAssignment.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Checkin.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Checkout.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_ClearFilter.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_ClearSearch.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_CopyLink.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_CopyTo.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_CurrentLocation.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Delete.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_DiscardCheckout.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Download.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_DownloadAsPDF.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Error.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Filter.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_LoadingFiles.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_More.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_MoveTo.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_MoveToCancel.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_NewDatasourceFileTemplate.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Open.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_PII.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Pin.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Preview.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Properties.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Publish.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_QuickFilter.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Refresh.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Rename.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Replace.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_SaveAsPDF.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_SavingFiles.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_SelectedFileCount.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_SelectedMoveFileCount.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Share.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_ShareToTeams.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_SigningRequest.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Unpublish.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Upload.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_VersionAppRej.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_VersionHistory.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItem_Views.tsx?","webpack:///./contentManager/Body/MenuItems/useMenuItems.ts?","webpack:///./contentManager/Body/useContentManagerBody.tsx?","webpack:///./contentManager/Panels/CMDeleteModal.tsx?","webpack:///./contentManager/Panels/CMDuplicateFileVersionSelectorModal.tsx?","webpack:///./contentManager/Panels/CMEntireFolderChooseNameDialog.tsx?","webpack:///./contentManager/Panels/CMFileFilterPanel/CMFileFilterPanel.tsx?","webpack:///./contentManager/Panels/CMFilePreviewPanel.tsx?","webpack:///./contentManager/Panels/CMMoveFilesListPanel.tsx?","webpack:///./contentManager/Panels/CMNewLinkPanel.tsx?","webpack:///./contentManager/Panels/CMRenameModal.tsx?","webpack:///./contentManager/Panels/CMUploadFilesPanel.tsx?","webpack:///./contentManager/Panels/CMVersionAppRejModal.tsx?","webpack:///./contentManager/Panels/Nintex/CMCancelAssignmentModal.tsx?","webpack:///./src/taskpane/components/_v2/_shared/VersionSelector/DuplicatePDFFileVersionSelector.tsx?","webpack:///./src/taskpane/components/_v2/components/Explorer/FolderView/DraggableContainer.tsx?","webpack:///./src/taskpane/components/_v2/components/ImageRenderer/ImageRenderer.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/classifier/DataSourceInputFactory.ts?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/classifier/DocumentSearchRequestBuilder.ts?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/classifier/FieldHelper.ts?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/classifier/InputFactory.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/classifier/SearhApiInputResolver.ts?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/classifier/inputTypeFactory.ts?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/components/searchGrid.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Datasource/datasourceDropdownInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Datasource/datasourceMultiDropdownInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Datasource/datasourceTagPickerAdvancedSearch.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Datasource/datasourceTextTagPickerAdvancedSearch.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Normal/currencyFieldInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Normal/datePickerFieldInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Normal/numberFieldInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Normal/percentageFieldInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Normal/textFieldInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Normal/yesNoFieldInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Pickers/TaxonomyPickerInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Pickers/choicePicker.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Pickers/listLookupPicker.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Pickers/multiChoicePicker.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/Pickers/peoplePickerInput.tsx?","webpack:///./src/taskpane/components/directoryComponents/advancedSearch/inputs/factory/InputCreator.tsx?","webpack:///./src/taskpane/components/enums/BackgroundTaskStatusEnum.ts?","webpack:///./src/taskpane/components/enums/SearhApiInputEnum.ts?","webpack:///./src/taskpane/components/helpers/DetailListSearchColumnSorterGrid.tsx?","webpack:///./src/taskpane/components/helpers/SharepointDocumentLibraryHelper.ts?","webpack:///./src/taskpane/components/helpers/enumConvertor.ts?","webpack:///./src/taskpane/components/helpers/groupByHelper.ts?","webpack:///./src/taskpane/components/helpers/keyValuePairHelper.ts?","webpack:///./src/taskpane/components/mappers/recentFilesAdvancedSearchMapper.ts?","webpack:///./src/taskpane/interfaces/signalR/IItemHub.ts?","webpack:///./src/taskpane/interfaces/signalR/ItemStatusBroadcast.ts?","webpack:///./src/taskpane/services/SharePointCompositeService.ts?","webpack:///./src/taskpane/services/builders/advancedSearchRecentItemBuilder.ts?","webpack:///./src/taskpane/services/peopleCompositeServices.ts?","webpack:///./utilities/CheckinCheckoutHelper.ts?","webpack:///./utilities/DirectoryViewModule.ts?","webpack:///./utilities/ThemeHelper.ts?"],"sourcesContent":["export enum SearchReturnType {\r\n RecentItems,\r\n SearchResult,\r\n}\r\n\r\n// export enum SortValEnum { //lower case enum of all types + other\r\n// text = 1,\r\n// note = 2,\r\n// number = 3,\r\n// currency = 4,\r\n// numberpercentage = 5,\r\n// choice = 6,\r\n// multichoice = 7,\r\n// lookupsingle = 8,\r\n// lookupmulti = 9,\r\n// taxonomyfieldtype = 10,\r\n// taxonomyfieldtypemulti = 11,\r\n// datetime = 12,\r\n// user = 13,\r\n// usermulti = 14,\r\n// url = 15,\r\n// boolean = 16,\r\n// other = 17,\r\n// }\r\nexport const SortValEnum = { //lower case enum-like object (supporting duplicate values) of all types + other\r\n text: 1,\r\n note: 2,\r\n number: 3,\r\n currency: 4,\r\n numberpercentage: 5,\r\n choice: 6,\r\n multichoice: 6,\r\n lookupsingle: 7,\r\n lookupmulti: 7,\r\n taxonomyfieldtype: 8,\r\n taxonomyfieldtypemulti: 8,\r\n datetime: 9,\r\n user: 10,\r\n usermulti: 10,\r\n url: 11,\r\n boolean: 12,\r\n other: 13,\r\n}","import { IIconProps, ISearchBoxStyles, SearchBox } from \"@fluentui/react\"\r\nimport * as React from \"react\"\r\nimport { LanguageContext } from \"../utilities/LocalizationModule\";\r\n\r\nconst filterIcon: IIconProps = { iconName: \"PageListFilter\" };\r\nconst searchBoxStyles: Partial = {\r\n root: { width: 300, height: \"100%\" }\r\n};\r\n\r\nexport const useQuickFilterCommandInput = (setQuickFilterValue: (filterValue: string) => void) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const [privateQuickFilterValue, setPrivateQuickFilterValue] = React.useState();\r\n\r\n React.useEffect(() => {\r\n const timeOutId = setTimeout(() => {\r\n setQuickFilterValue(privateQuickFilterValue?.trim());\r\n }, 500);\r\n return () => clearTimeout(timeOutId);\r\n }, [privateQuickFilterValue]);\r\n\r\n const onChangeFilter = React.useCallback((event?: React.ChangeEvent, newValue?: string) => {\r\n setPrivateQuickFilterValue(newValue);\r\n }, []);\r\n\r\n const onSearchFilter = React.useCallback((filterText: any) => {\r\n setQuickFilterValue(filterText?.trim());\r\n }, []);\r\n\r\n const onClearFilter = React.useCallback(() => {\r\n setQuickFilterValue(\"\");\r\n }, []);\r\n\r\n const resetQuickFilterValue = React.useCallback(() => {\r\n setPrivateQuickFilterValue(null);\r\n setQuickFilterValue(null);\r\n }, []);\r\n\r\n const onQuickFilterCommandInputRender = React.useCallback(() => {\r\n return \r\n }, [privateQuickFilterValue]);\r\n\r\n const quickFilterCommandInput = React.useMemo(() => ({\r\n key: \"QuickFilter\",\r\n onRender: onQuickFilterCommandInputRender\r\n }), [privateQuickFilterValue]);\r\n\r\n return {\r\n quickFilterCommandInput,\r\n resetQuickFilterValue\r\n }\r\n}","// import path = require(\"path\");\r\nimport {\r\n IPersonaProps,\r\n DropdownMenuItemType,\r\n IDropdownStyles,\r\n Dropdown,\r\n ResponsiveMode,\r\n PrimaryButton,\r\n Spinner,\r\n SpinnerSize,\r\n IStackStyles,\r\n IStackItemStyles,\r\n Stack,\r\n IStackTokens,\r\n IBreadcrumbItem,\r\n Breadcrumb,\r\n getTheme,\r\n Icon,\r\n Persona,\r\n PersonaSize,\r\n Label,\r\n TooltipHost,\r\n ActionButton,\r\n IButtonStyles\r\n} from \"@fluentui/react\";\r\nimport * as React from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { DocumentSearchRequestBuilder } from \"../src/taskpane/components/directoryComponents/advancedSearch/classifier/DocumentSearchRequestBuilder\";\r\nimport { FieldHelper } from \"../src/taskpane/components/directoryComponents/advancedSearch/classifier/FieldHelper\";\r\nimport { InputTypeFactory } from \"../src/taskpane/components/directoryComponents/advancedSearch/classifier/inputTypeFactory\";\r\nimport InputCreator, {\r\n IInputCreator\r\n} from \"../src/taskpane/components/directoryComponents/advancedSearch/inputs/factory/InputCreator\";\r\nimport { GroupByHelper } from \"../src/taskpane/components/helpers/groupByHelper\";\r\nimport { KeyValuePairHelper } from \"../src/taskpane/components/helpers/keyValuePairHelper\";\r\nimport { SharepointDocumentLibraryHelper } from \"../src/taskpane/components/helpers/SharepointDocumentLibraryHelper\";\r\nimport {\r\n validPeoplePickerTypes,\r\n internalSharepointName,\r\n validPeopleInputTypes,\r\n advancedSearch,\r\n piiConfig,\r\n SharePointFolderContentTypeIds,\r\n extensions,\r\n sharePointInternalFileName\r\n} from \"../src/taskpane/config/constants\";\r\nimport { IDocumentSearchResult } from \"../src/taskpane/interfaces/advancedSearch/IDocumentSearchResult\";\r\nimport { ISharepointSearchInput } from \"../src/taskpane/interfaces/advancedSearch/ISharepointSearchInput\";\r\nimport { IDocUrlDropdown } from \"../src/taskpane/interfaces/IDocUrlDropdown\";\r\nimport { IDocUrlKeyNamePair } from \"../src/taskpane/interfaces/IDocUrlKeyNamePair\";\r\nimport { ISiteDriveItems } from \"../src/taskpane/interfaces/ISiteDriveItems\";\r\nimport { ISiteInfoUrl, ISubSiteInfo } from \"../src/taskpane/interfaces/ISiteInfo\";\r\nimport { IUrlDropdown } from \"../src/taskpane/interfaces/IUrlDropdown\";\r\nimport { IUrlKeyNamePair } from \"../src/taskpane/interfaces/IUrlKeyNamePair\";\r\nimport { AdvancedSearchRootState } from \"../src/taskpane/redux\";\r\nimport { setMode } from \"../src/taskpane/redux/modules/mode\";\r\nimport {\r\n getSiteDocumentLibraryDrives,\r\n getJoinedTeams,\r\n getSubSites,\r\n getUserProfilePicture,\r\n searchSharePointSites,\r\n getSharePointSubsite,\r\n getHubSiteSites,\r\n getSharePointSite,\r\n getTeamChannelSites,\r\n getTeamsChannelSites,\r\n getOneDriveRootDetails\r\n} from \"../src/taskpane/services/GraphService\";\r\nimport { PeopleCompositeServices } from \"../src/taskpane/services/peopleCompositeServices\";\r\nimport { SharePointCompositeService } from \"../src/taskpane/services/SharePointCompositeService\";\r\nimport authModule from \"../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../utilities/LocalizationModule\";\r\nimport SearchGrid from \"../src/taskpane/components/directoryComponents/advancedSearch/components/searchGrid\";\r\nimport { IAuthAccount, IAuthTokenResultDto } from \"../src/taskpane/interfaces/IAuthTokenResultDto\";\r\nimport { FontWeights, mergeStyles } from \"@fluentui/react/lib/Styling\";\r\nimport { ModeEnumConverter } from \"../src/taskpane/components/helpers/enumConvertor\";\r\nimport { ModeEnum } from \"../src/taskpane/components/enums/modeEnum\";\r\nimport { Text } from \"@fluentui/react\";\r\nimport { AdvancedSearchRecentItemBuilder } from \"../src/taskpane/services/builders/advancedSearchRecentItemBuilder\";\r\nimport { SharePointInputTypes } from \"../src/taskpane/config/sharepointConstants\";\r\nimport dayjs from 'dayjs';\r\nimport { logger } from \"../utilities/logger\";\r\nimport { ISiteBatchInfo } from \"../src/taskpane/interfaces/ISiteBatchInfo\";\r\nimport advancedSearchStateManager from \"./advancedSearchStateManager\";\r\nimport CacheHandler from \"./advancedSearchUtils\";\r\nimport { IAdvancedSearchFields } from \"../src/taskpane/interfaces/IAdvancedSearchFields\";\r\nimport { IUserProfile } from \"../src/taskpane/interfaces/IUserProfile\";\r\nimport { UserModule } from \"../utilities/UserModule\";\r\nimport ProfilePanel from \"./profilePanel\";\r\nimport { IAdvancedSearchLoading, IAdvancedSearchResult } from \"./AdvancedSearchInterfaces\";\r\nimport { SearchReturnType, SortValEnum } from \"./AdvancedSearchEnums\";\r\nimport { SharepointSpServices } from \"../src/taskpane/services/SharepointSpServices\";\r\nimport { parseString } from \"xml2js\"\r\nimport { IViewsDropdown } from \"../src/taskpane/interfaces/IViewsDropdown\";\r\nimport { IViewExtendedInfo } from \"../src/taskpane/interfaces/IViewExtendedInfo\";\r\nimport { useCheckPiiMutation } from \"../src/taskpane/components/_v2/redux/api/local/api-pii-slice\";\r\nimport { ApprovalPanel, IFileApproval } from \"../src/taskpane/components/_v2/components/Panels/ApprovalPanel/ApprovalPanel\";\r\nimport { WebPanel } from \"../src/taskpane/components/_v2/_shared/WebPanel/WebPanel\";\r\nimport { SharePointInputData } from \"../src/taskpane/interfaces/props/SharePointInputData\";\r\nimport { documentLibraryItem, SiteItem, TenantState } from \"../src/taskpane/redux/models/reduxModels\";\r\nimport { useQuickFilterCommandInput } from \"./QuickFilterComandInput\";\r\nimport { StorageHelper } from \"../utilities/StorageHelper\";\r\nimport { apiSearchDocuments } from \"../src/taskpane/services/ApiService\";\r\nimport { getTextColor } from \"../utilities/ThemeHelper\";\r\nimport { ITeamChannelSite } from \"../src/taskpane/interfaces/services/ITeamChannel\";\r\nimport { getLocalStorage, localStorageKeys, removeLocalStorage, setLocalStorage } from \"../src/taskpane/components/helpers/localStorageHelper\";\r\nimport { setOneDriveDetails } from \"../src/taskpane/redux/modules/workingDirectory\";\r\nconst searchIconSrc = require(\"../assets/empty_search.svg\");\r\n\r\nconst theme = getTheme();\r\n\r\nconst outerStackTokens: IStackTokens = {\r\n childrenGap: 20\r\n};\r\nconst inputStackTokens: IStackTokens = {\r\n childrenGap: 15\r\n};\r\n\r\nconst initStackStyles: Partial = {\r\n root: { width: \"100%\", height: \"100%\", margin: 0, padding: 0, overflow: \"auto\" }\r\n};\r\n\r\n// const headerStackStyles: IStackItemStyles = {\r\n// root: {\r\n// height: 50,\r\n// width: \"100%\",\r\n// // backgroundColor: theme.palette.themeDarkAlt\r\n// borderBottom: \"1px solid #edebe9\"\r\n// }\r\n// };\r\n\r\n// const headerTextStyles = mergeStyles({\r\n// fontWeight: FontWeights.semibold,\r\n// });\r\nconst getHeaderStackStyles = (appColor?: string) => {\r\n const headerStackStyles: IStackItemStyles = {\r\n root: {\r\n height: 50,\r\n width: \"100%\",\r\n borderBottom: \"1px solid #edebe9\",\r\n backgroundColor: appColor ? appColor : \"#0001FF\",\r\n color: getTextColor(appColor)\r\n }\r\n };\r\n return headerStackStyles;\r\n}\r\n\r\nconst getHeaderTextStyles = (appColor?: string) => {\r\n return mergeStyles({\r\n fontWeight: FontWeights.semibold,\r\n color: getTextColor(appColor)\r\n });\r\n}\r\n\r\nconst headerLogoStackItemStyles: IStackItemStyles = {\r\n root: {\r\n display: \"flex\",\r\n height: \"100%\",\r\n justifyContent: \"center\",\r\n marginLeft: 20,\r\n \"@media only screen and (max-width: 479px)\": { display: \"none\" },\r\n }\r\n};\r\n\r\nconst sharedStackItemStyles: IStackItemStyles = {\r\n root: {\r\n width: \"100%\"\r\n }\r\n};\r\nconst headerStackItemStyles: IStackItemStyles = {\r\n root: {\r\n // color: \"white\",\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n }\r\n};\r\n\r\nconst getCloseButtonStyles = (appColor?: string) => {\r\n let colorName: string = getTextColor(appColor);\r\n const color: string = colorName === \"white\" ? colorName : theme.palette.neutralPrimary;\r\n const closeButtonStyles: IButtonStyles = {\r\n root: {\r\n paddingRight: 12,\r\n },\r\n icon: {\r\n color: color,\r\n },\r\n iconHovered: {\r\n color: color,\r\n }\r\n };\r\n return closeButtonStyles;\r\n}\r\n\r\nconst inputStackItemStyles: Partial = { root: { width: \"100%\", margin: 0, paddingTop: 10, paddingRight: 20, paddingLeft: 20, paddingBottom: 20, overflow: \"auto\" } };\r\n\r\nconst dropdownStyles: Partial = {\r\n dropdown: { width: \"100%\" },\r\n dropdownItemsWrapper: { maxHeight: 500 }\r\n};\r\n\r\nconst inputContainerStackItemStyles: IStackItemStyles = {\r\n root: {\r\n height: \"calc(100vh - 50px)\", // Subtract header height\r\n width: 360,\r\n borderRight: \"1px solid #edebe9\",\r\n overflowY: \"auto\"\r\n }\r\n};\r\n\r\nconst getEventPathIdList = (e) => {\r\n if (\"composedPath\" in e) return e.composedPath()?.map(path => path?.id);\r\n if (\"path\" in e) return e.path?.map(path => path?.id);\r\n //polyfill\r\n const path = [];\r\n let currentElem = e.target;\r\n while (currentElem) {\r\n path.push(currentElem?.id);\r\n currentElem = currentElem.parentElement;\r\n }\r\n return path;\r\n}\r\n\r\nconst checkValueForUndefined = (value) => {\r\n if (value === \"undefined\") return undefined;\r\n return value;\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n setMode,\r\n setOneDriveDetails\r\n};\r\n\r\nconst mapStateToProps = (state: AdvancedSearchRootState) => {\r\n return {\r\n datasourceValues: state.datasource.values,\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\ninterface advancedSearchProps extends PropsFromRedux {\r\n account?: IAuthAccount;\r\n userProfile?: IUserProfile;\r\n tenantInfo?: TenantState;\r\n siteId?: string;\r\n isInConentMangerMode?: boolean;\r\n hubId?: string;\r\n teamGroupId?: string;\r\n teamDriveId?: string;\r\n teamsContext?: microsoftTeams.Context;\r\n}\r\n\r\nconst AdvancedSearch: React.FunctionComponent = props => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const [appLogo, setAppLogo] = React.useState(props.tenantInfo?.appLogo);\r\n const [appColor, setAppColor] = React.useState(props.tenantInfo?.appColor);\r\n const [headerStackStyles, setHeaderStackStyles] = React.useState(getHeaderStackStyles(props.tenantInfo?.appColor));\r\n const [headerTextStyles, setHeaderTextStyles] = React.useState(getHeaderTextStyles(props.tenantInfo?.appColor));\r\n const [loading, setLoading] = React.useState({ sites: true, documentLibraries: false, contentTypes: false, recentFiles: true, refreshingCache: false });\r\n const [sitesDropdown, setSitesDropdown] = React.useState([]);\r\n const [selectedSites, setSelectedSites] = React.useState([]);\r\n const [documentLibrariesDropdown, setDocumentLibrariesDropdown] = React.useState([]);\r\n const [selectedDocumentLibraries, _setSelectedDocumentLibraries] = React.useState([]);\r\n const [contentTypesDropdown, setContentTypesDropdown] = React.useState([]);\r\n const [selectedContentTypes, setSelectedContentTypes] = React.useState([]);\r\n const [fields, setFields] = React.useState([]);\r\n const [inputValuesToSearch, _setInputValuesToSearch] = React.useState([]);\r\n const [searchResult, setSearchResult] = React.useState({\r\n type: null,\r\n result: [],\r\n });\r\n const [searching, setSearching] = React.useState({ isSearching: false, hasSearchedBefore: false });\r\n const [allUsers, setAllUsers] = React.useState([]);\r\n const [isInputsLoading, setIsInputsLoading] = React.useState(false);\r\n // const [params] = React.useState(new URLSearchParams(window.location.search));\r\n\r\n const [loadUserRecentItems, _setLoadUserRecentItems] = React.useState(false);\r\n const [breadCrumbItems, setBreadCrumbItems] = React.useState([]);\r\n\r\n const [filterValue, setFilterValue] = React.useState();\r\n const [hasTeamsAccess, setHasTeamsAccess] = React.useState(true);\r\n const [allowOpenInSharePoint, setAllowOpenInSharePoint] = React.useState(true);\r\n const [profilePanelIsOpen, setProfilePanelIsOpen] = React.useState(false);\r\n const [profilePic, setProfilePic] = React.useState(\"\");\r\n const [viewsDropdownItems, setViewsDropdownItems] = React.useState([]);\r\n const [isApprovalsPanelOpen, setIsApprovalsPanelOpen] = React.useState(false);\r\n const [approvalFiles, setApprovalFiles] = React.useState([]);\r\n\r\n const [currentUserAccount, setCurrentUserAccount] = React.useState();\r\n\r\n const [checkPiiMutation] = useCheckPiiMutation();\r\n\r\n const loadUserRecentItemsRef = React.useRef(loadUserRecentItems);\r\n const setLoadUserRecentItems = (value: boolean) => {\r\n loadUserRecentItemsRef.current = value;\r\n _setLoadUserRecentItems(value);\r\n };\r\n\r\n const inputValuesToSearchRef = React.useRef(inputValuesToSearch);\r\n const setInputValuesToSearch = (data: ISharepointSearchInput[]) => {\r\n inputValuesToSearchRef.current = data;\r\n _setInputValuesToSearch(data);\r\n };\r\n\r\n const selectedDocumentLibrariesRef = React.useRef(selectedDocumentLibraries);\r\n const setSelectedDocumentLibraries = (data: IDocUrlKeyNamePair[]) => {\r\n selectedDocumentLibrariesRef.current = data;\r\n _setSelectedDocumentLibraries(data);\r\n };\r\n\r\n let initialSelectedSites: IUrlKeyNamePair[] = [];\r\n\r\n async function resetBreadCrumbs(): Promise {\r\n setBreadCrumbItems([{ text: languageStrings.Recent, key: \"Recent\", href: \"#\", onClick: resetBreadCrumbs }]);\r\n await getRecentItems(false, loadUserRecentItemsRef?.current);\r\n }\r\n\r\n React.useEffect(() => {\r\n\r\n const listener = event => {\r\n if (event.code === \"Enter\" || event.code === \"NumpadEnter\") {\r\n if (!advancedSearchStateManager.isDataSourcePanelActive && getEventPathIdList(event).some(pathId => pathId === \"searchFieldContainer\")) {\r\n event.preventDefault();\r\n search();\r\n }\r\n }\r\n };\r\n document.addEventListener(\"keydown\", listener);\r\n\r\n const setupAsyncWrapper = async () => {\r\n let authResult: IAuthTokenResultDto;\r\n\r\n setLoading(prevLoading => ({ ...prevLoading, sites: true, recentFiles: true }));\r\n\r\n if (!props.isInConentMangerMode) {\r\n const modeParam: string = checkValueForUndefined(await StorageHelper.getItemAsync(advancedSearch.params.mode));\r\n const mode = ModeEnumConverter.convertNumberToEnum(+(modeParam ?? \"0\"), ModeEnum);\r\n props.setMode(mode);\r\n\r\n const tenantId: string = checkValueForUndefined(!props.account ? await StorageHelper.getItemAsync(advancedSearch.params.tenantId) : props.account.tenantId);\r\n // [authResult] = await Promise.all([setupTokens(params), advancedSearchStateManager.getTenantInfo(tenantId)]);\r\n [authResult] = await Promise.all([authModule.getAuthData(), advancedSearchStateManager.getTenantInfo(tenantId)]);\r\n setAppLogo(advancedSearchStateManager.appLogo);\r\n setAppColor(advancedSearchStateManager.appColor);\r\n setHeaderStackStyles(getHeaderStackStyles(advancedSearchStateManager.appColor));\r\n setHeaderTextStyles(getHeaderTextStyles(advancedSearchStateManager.appColor));\r\n }\r\n else {\r\n advancedSearchStateManager.getTenantInfo(null, props.tenantInfo);\r\n }\r\n\r\n setCurrentUserAccount(props.account ?? authResult.account);\r\n\r\n let shouldLoadRecentItems: boolean = null;\r\n let allowOpenInSP: boolean = true;\r\n const initBreadCrumbsTmp = [\r\n { text: languageStrings.Recent, key: \"Recent\", href: \"#\", onClick: resetBreadCrumbs }\r\n ]; //same format as the state breadcrumbs above\r\n\r\n if (props.account) { //if we are in standalone mode\r\n //get user settings from API\r\n const userProfile: IUserProfile = props.userProfile ?? await UserModule.getUserProfile(authResult.account);\r\n shouldLoadRecentItems = !props.isInConentMangerMode && userProfile.settings.showRecent;\r\n allowOpenInSP = userProfile.tenantAllowOpenInSharePoint;\r\n setHasTeamsAccess(JSON.parse(await StorageHelper.getItemAsync(advancedSearch.params.hasTeamsAccess)) ?? userProfile.settings.enableTeams);\r\n const profileImageUrl: string = !props.isInConentMangerMode && await getUserProfilePicture(await authModule.getGraphAccessToken());\r\n if (profileImageUrl) {\r\n setProfilePic(profileImageUrl);\r\n }\r\n CacheHandler.setAccountId(props.account.accountId);\r\n } else {\r\n shouldLoadRecentItems = JSON.parse(await StorageHelper.getItemAsync(advancedSearch.params.loadUserRecentItems));\r\n allowOpenInSP = JSON.parse(await StorageHelper.getItemAsync(advancedSearch.params.allowOpenInSharePoint));\r\n }\r\n\r\n setAllowOpenInSharePoint(allowOpenInSP);\r\n\r\n setLoadUserRecentItems(shouldLoadRecentItems);\r\n if (shouldLoadRecentItems) {\r\n setBreadCrumbItems(initBreadCrumbsTmp);\r\n }\r\n\r\n getRecentItems(true, shouldLoadRecentItems);\r\n setLoading(prevLoading => ({ ...prevLoading, recentFiles: false }));\r\n\r\n await initSearchFields();\r\n setLoading(prevLoading => ({ ...prevLoading, sites: false }));\r\n };\r\n\r\n setupAsyncWrapper();\r\n return () => {\r\n document.removeEventListener(\"keydown\", listener);\r\n };\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (props.datasourceValues) {\r\n updateInputValuesFromDataSource(props.datasourceValues);\r\n }\r\n }, [props.datasourceValues]);\r\n\r\n React.useEffect(() => {\r\n if (!advancedSearchStateManager.enableAdvSearchMultiSites && selectedDocumentLibrariesRef?.current?.length > 0 && selectedSites?.length > 0) {\r\n const asyncWrapper = async () => {\r\n const sharePointAccessToken: string = await authModule.getSharePointAccessToken();\r\n const viewsPromises = await Promise.all(selectedDocumentLibrariesRef?.current?.map(async (lib) => {\r\n const spService = new SharepointSpServices(lib.webUrl, sharePointAccessToken);\r\n const views: IViewExtendedInfo[] = (await spService.getSharePointView(lib.sharePointListId)).map(view => {\r\n const currSite = selectedSites.find(site => site.siteId === lib.siteId);\r\n return ({\r\n ...view,\r\n Title: selectedDocumentLibrariesRef?.current?.length === 1 ? view.Title : `${view.Title} (${lib.documentLibrary})`,\r\n siteId: currSite?.siteId,\r\n });\r\n });\r\n return views;\r\n }));\r\n\r\n const views = viewsPromises.reduce((acc, val) => acc.concat(val), []);\r\n\r\n const xmlData: IViewsDropdown[] = [];\r\n // views?.filter(view => !view.Hidden)\r\n views?.forEach((view, index) => parseString(view.ListViewXml, (err, result) => {\r\n if (result) {\r\n xmlData.push(\r\n {\r\n Id: view.Id,\r\n text: view.Title,\r\n key: `${view.Title}-${index}`,\r\n query: result.View.Query[0],\r\n fields: result.View.ViewFields[0].FieldRef\r\n .map(f => f.$),\r\n siteId: view.siteId,\r\n webUrl: result.View.$.Url,\r\n });\r\n }\r\n if (err) {\r\n logger(err, \"advancedSearch.tsx (views init)\");\r\n }\r\n }));\r\n setViewsDropdownItems(xmlData);\r\n }\r\n asyncWrapper();\r\n }\r\n }, [selectedSites, selectedDocumentLibrariesRef?.current])\r\n\r\n const updateInputValuesFromDataSource = (values: any) => {\r\n const propertyKeys = Object.keys(values);\r\n const updatedinputValuesToSearch = [...inputValuesToSearchRef?.current];\r\n propertyKeys.forEach(propKey => updateDatasourceDisplayNameInputData(updatedinputValuesToSearch, propKey, values[propKey]));\r\n setInputValuesToSearch(updatedinputValuesToSearch);\r\n };\r\n\r\n const updateDatasourceDisplayNameInputData = (updatedinputValuesToSearch: ISharepointSearchInput[], propKey: string, value: any) => {\r\n let inputToUpdate = inputValuesToSearchRef?.current.find(\r\n item => item.displayName && item.displayName.split(\",\").some(name => name.trim().toLowerCase() === propKey.trim().toLowerCase())\r\n );\r\n\r\n if (inputToUpdate) {\r\n const validatedValue = validateAndTransformDatasourceValue(inputToUpdate, value);\r\n if (validatedValue) {\r\n updatedinputValuesToSearch[inputToUpdate.index].value = validatedValue;\r\n }\r\n }\r\n };\r\n\r\n const validateAndTransformDatasourceValue = (input: ISharepointSearchInput, value: any): any => {\r\n try {\r\n const inputType = input.xml?.Type?.toLowerCase();\r\n if (inputType == SharePointInputTypes.text.toLowerCase() || inputType == SharePointInputTypes.note.toLowerCase()) {\r\n return value;\r\n }\r\n\r\n if (inputType == SharePointInputTypes.choice.toLowerCase() || inputType == SharePointInputTypes.multiChoice.toLowerCase()) {\r\n if (Array.isArray(input.choices)) {\r\n const choiceValue = input.choices.find(choice => choice.toLowerCase().trim() === value.toLowerCase().trim());\r\n if (choiceValue) return choiceValue;\r\n }\r\n } else if (inputType == SharePointInputTypes.number.toLowerCase() || inputType == SharePointInputTypes.currency.toLowerCase()) {\r\n let numberValue: number = Number(value);\r\n if (numberValue) {\r\n // if (input.xml?.Min && numberValue < input.xml.Min) {\r\n // return null;\r\n // }\r\n // if (input.xml?.Max && numberValue > input.xml.Max) {\r\n // return null;\r\n // }\r\n if (input.xml?.Percentage === \"TRUE\") {\r\n return numberValue * 100;\r\n }\r\n return numberValue;\r\n }\r\n } else if (inputType == SharePointInputTypes.datetime.toLowerCase()) {\r\n return dayjs(value).isValid() ? dayjs(value).toDate() : null;\r\n } else if (inputType == SharePointInputTypes.Boolean.toLowerCase()) {\r\n switch (value.toLowerCase().trim()) {\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n case \"yes\":\r\n return true;\r\n case \"no\":\r\n return false;\r\n case \"ja\":\r\n return true;\r\n case \"nee\":\r\n return false;\r\n default:\r\n return null;\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (validateAndTransformDatasourceValue)\");\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const initSearchFields = async (isRefresh: boolean = false) => {\r\n try {\r\n const graphAccessToken: string = await authModule.getGraphAccessToken();\r\n const siteId: string = checkValueForUndefined(props.siteId ? props.siteId : await StorageHelper.getItemAsync(advancedSearch.params.siteId));\r\n const hubId: string = checkValueForUndefined(props.hubId ? props.hubId : await StorageHelper.getItemAsync(advancedSearch.params.hubId));\r\n const enableMultiSites: boolean = advancedSearchStateManager.enableAdvSearchMultiSites;\r\n\r\n let sites: ISiteInfoUrl[] = !isRefresh ? CacheHandler.getSiteAndSubsites(siteId, hubId, enableMultiSites) : [];\r\n if (sites.length === 0\r\n || CacheHandler.shouldUpdateCache()\r\n || (siteId && !sites.some(site => site.id === siteId))) {\r\n //if the current cache is out of date OR if there is no cache, we must do API call\r\n sites = await getCombinedSites(graphAccessToken, siteId, hubId);\r\n CacheHandler.setSites(sites);\r\n }\r\n\r\n setSitesDropdown(await buildSitesDropdown(sites, graphAccessToken));\r\n // if (!isRefresh && siteId) {\r\n // await setInitialSelectedSite(graphAccessToken, sites);\r\n // }\r\n if (!isRefresh) {\r\n let selectedSites: ISiteInfoUrl[] = [];\r\n\r\n if (!siteId || enableMultiSites) {\r\n const selectedSiteIdList: string[] = getLocalStorage(localStorageKeys.selectedAdvSearchSites) as string[];\r\n if (Array.isArray(selectedSiteIdList)) {\r\n selectedSites = sites.filter(site => selectedSiteIdList.some(siteId => siteId === site.id));\r\n }\r\n }\r\n\r\n // Ensure requested site is selected\r\n if (siteId && selectedSites.findIndex(selectedSite => selectedSite.id === siteId) === -1) {\r\n const requestedSite = sites.find(site => site.id === siteId);\r\n if (requestedSite) {\r\n selectedSites.push(requestedSite);\r\n // Ensure all sub/channel sites are selected\r\n const subSites = sites.filter(site => site.id !== requestedSite.id && ((site.isChannel && site.teamSiteId === requestedSite.id) || site.webUrl.includes(requestedSite.webUrl + '/')));\r\n for (let i = 0; i < subSites.length; i++) {\r\n selectedSites.push(subSites[i]);\r\n }\r\n }\r\n }\r\n\r\n if (selectedSites.length === 0) {\r\n selectedSites = sites;\r\n }\r\n\r\n await setInitialSelectedSite(graphAccessToken, selectedSites);\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (initSearchFields)\");\r\n }\r\n }\r\n\r\n const getCombinedSites = async (graphAccessToken: string, siteId: string, hubId: string): Promise => {\r\n let hasSharePointAccess: boolean;\r\n try {\r\n hasSharePointAccess = props.userProfile\r\n ? (props.userProfile?.settings?.enableSharePoint ?? true)\r\n : JSON.parse(await StorageHelper.getItemAsync(advancedSearch.params.hasSharePointAccess)) ?? true;\r\n } catch (error) {\r\n hasSharePointAccess = true;\r\n }\r\n\r\n let sites: ISiteInfoUrl[] = [];\r\n\r\n if (!siteId || advancedSearchStateManager.enableAdvSearchMultiSites) {\r\n const allowedSites: string[] = advancedSearchStateManager.allowedSiteCollections;\r\n let [siteResult, teams] = await Promise.all(\r\n [\r\n searchSharePointSites({ allowedSites }),\r\n getJoinedTeams(graphAccessToken)\r\n ]\r\n );\r\n\r\n const useDescriptiveName: boolean = siteResult?.sites?.length > 0 || teams?.length > 0;\r\n\r\n if (siteResult?.sites?.length > 0) {\r\n sites = siteResult.sites\r\n .map(site => {\r\n return {\r\n ...site,\r\n key: site.id\r\n };\r\n });\r\n\r\n // Get all main site subsites\r\n let subSites: ISubSiteInfo[] = await getSubSites(graphAccessToken, sites.filter(site => !site.isSubsite));\r\n if (subSites?.length > 0 && allowedSites?.length > 0) {\r\n subSites = subSites.filter(subSite => allowedSites.some(allowedSite => subSite.name?.trim().toLowerCase() === allowedSite.trim()));\r\n }\r\n\r\n subSites.forEach(subSite => {\r\n let existingSubSite: ISiteInfoUrl = sites.find(site => site.id === subSite.id);\r\n if (!existingSubSite) {\r\n const parentSiteName: string = sites.find(site => !site.isSubsite && site.id === subSite.parentSiteId)?.name;\r\n sites.push({\r\n id: subSite.id,\r\n name: useDescriptiveName && parentSiteName ? `${subSite.name} - ${parentSiteName}` : subSite.name,\r\n webUrl: subSite.webUrl,\r\n isSubsite: true,\r\n key: subSite.id\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (teams?.length > 0) {\r\n const allowedTeams: string[] = advancedSearchStateManager.allowedTeams;\r\n if (allowedTeams?.length > 0) {\r\n teams = teams.filter(team => allowedTeams.some(allowedTeam => team.displayName?.trim().toLowerCase() === allowedTeam.trim()));\r\n }\r\n\r\n const teamChannelSites: ITeamChannelSite[] = await getTeamsChannelSites(teams);\r\n teamChannelSites?.forEach(channelSite => {\r\n if (teams.findIndex(team => team.siteId === channelSite.id) === -1) {\r\n const parentSiteName: string = teams.find(team => team.siteId === channelSite.teamSiteId)?.displayName;\r\n sites.push({\r\n id: channelSite.id,\r\n isSubsite: true,\r\n isChannel: true,\r\n name: useDescriptiveName && parentSiteName ? `${channelSite.displayName} - ${parentSiteName}` : channelSite.displayName,\r\n webUrl: channelSite.webUrl,\r\n key: channelSite.id,\r\n teamSiteId: channelSite.teamSiteId\r\n });\r\n }\r\n });\r\n }\r\n\r\n teams?.forEach((team, index) => {\r\n let teamSite: ISiteInfoUrl = sites.find(site => site.id === team.siteId);\r\n if (teamSite) {\r\n teamSite.isTeam = true;\r\n }\r\n else {\r\n sites.push({\r\n id: team.siteId,\r\n name: team.displayName,\r\n webUrl: team.webUrl,\r\n isSubsite: false,\r\n isTeam: true,\r\n key: \"t\" + index\r\n });\r\n }\r\n });\r\n sites = sites.filter(site => ((site.isTeam || site.isChannel) && hasTeamsAccess) || (!site.isTeam && hasSharePointAccess));\r\n }\r\n\r\n if (siteId && (hubId || sites.findIndex(site => site.id === siteId) === -1)) {\r\n const teamGroupId = checkValueForUndefined(props.teamGroupId ? props.teamGroupId : await StorageHelper.getItemAsync(advancedSearch.params.teamGroupId));\r\n const isTeamSite: boolean = teamGroupId?.length > 0;\r\n\r\n let [mainSiteResult, hubSitesResult, subSitesResult, teamChannelSites] = await Promise.all([\r\n getSharePointSite(siteId),\r\n hubId ? getHubSiteSites(graphAccessToken, hubId, advancedSearchStateManager.allowedSiteCollections) : [],\r\n getSharePointSubsite(graphAccessToken, siteId, advancedSearchStateManager.allowedSiteCollections),\r\n isTeamSite ? getTeamChannelSites(teamGroupId) : []\r\n ]);\r\n\r\n if (mainSiteResult) {\r\n const useDescriptiveName: boolean = sites?.length > 0;\r\n\r\n const mainSite: ISiteInfoUrl = {\r\n id: mainSiteResult.id,\r\n isSubsite: false,\r\n name: mainSiteResult.name,\r\n webUrl: mainSiteResult.webUrl,\r\n isTeam: isTeamSite,\r\n key: mainSiteResult.id\r\n }\r\n\r\n const subSites: ISiteInfoUrl[] = (subSitesResult?.data ?? [])\r\n .concat(hubSitesResult ?? [])\r\n .map(subSite => {\r\n if (sites.findIndex(site => site.id === subSite.id) === -1) {\r\n const parentSiteName: string = useDescriptiveName\r\n ? sites.find(site => !site.isSubsite && site.id === subSite.parentSiteId)?.name\r\n : null;\r\n\r\n return {\r\n id: subSite.id,\r\n isSubsite: true,\r\n name: parentSiteName ? `${subSite.displayName} - ${parentSiteName}` : subSite.displayName,\r\n webUrl: subSite.webUrl,\r\n key: subSite.id\r\n };\r\n }\r\n return null;\r\n })\r\n .filter(subSite => subSite);\r\n\r\n const channelSites: ISiteInfoUrl[] =\r\n (teamChannelSites ?? [])\r\n .map(channelSite => {\r\n if (sites.findIndex(site => site.id === channelSite.id) === -1) {\r\n const parentSiteName: string = useDescriptiveName\r\n ? sites.find(site => !site.isSubsite && site.id === channelSite.teamSiteId)?.name\r\n : null;\r\n\r\n return {\r\n id: channelSite.id,\r\n isSubsite: true,\r\n isChannel: true,\r\n name: parentSiteName ? `${channelSite.displayName} - ${parentSiteName}` : channelSite.displayName,\r\n webUrl: channelSite.webUrl,\r\n key: channelSite.id,\r\n teamSiteId: channelSite.teamSiteId\r\n }\r\n }\r\n return null;\r\n })\r\n .filter(channelSite => channelSite);\r\n\r\n // sites = sites.concat(mainSite).concat(subSites).concat(channelSites);\r\n if (sites.findIndex(site => site.id === mainSite.id) === -1) {\r\n sites = sites.concat(mainSite);\r\n }\r\n sites = sites.concat(subSites).concat(channelSites);\r\n }\r\n }\r\n\r\n return sites;\r\n }\r\n\r\n const loadOneDriveRootDetails = async () => {\r\n try {\r\n const oneDriveRootDetails = await getOneDriveRootDetails();\r\n if (oneDriveRootDetails) {\r\n props.setOneDriveDetails(oneDriveRootDetails);\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (loadOneDriveRootDetails)\");\r\n }\r\n }\r\n\r\n const getRecentItems = async (initialLoad?: boolean, loadRecentItems?: boolean) => {\r\n try {\r\n if (loadRecentItems ?? loadUserRecentItemsRef?.current) {\r\n !initialLoad && setLoading(prevLoading => ({ ...prevLoading, recentFiles: true }));\r\n resetQuickFilterValue();\r\n const recentItemBuilder = new AdvancedSearchRecentItemBuilder();\r\n const [result] = await Promise.all([\r\n recentItemBuilder.getRecentItems(),\r\n loadOneDriveRootDetails()\r\n ]);\r\n setSearchResult({\r\n type: SearchReturnType.RecentItems,\r\n result: result\r\n });\r\n !initialLoad && setLoading(prevLoading => ({ ...prevLoading, recentFiles: false }));\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (getRecentItems)\");\r\n }\r\n };\r\n\r\n // const setupTokens = async (params: URLSearchParams) => {\r\n // let tokens: IAuthTokenResultDto;\r\n // const authAccount = await authModule.getAccount(false);\r\n // const accountId: string = !props.account ? params.get(shared.params.accountId) : props.account.accountId;\r\n // if (!authAccount || authAccount.accountId !== accountId) {\r\n // tokens = await authModule.requestTokenSilent(accountId);\r\n // }\r\n // else {\r\n // tokens = await authModule.signIn();\r\n // }\r\n // return tokens;\r\n // };\r\n\r\n const setInitialSelectedSite = async (graphToken: any, sites: ISiteInfoUrl[]) => {\r\n try {\r\n let uniqueSelectedSites: IUrlKeyNamePair[] = sites.map(site => ({\r\n key: site.key,\r\n value: site.name,\r\n webUrl: site.webUrl,\r\n siteId: site.id,\r\n isChannel: site.isChannel,\r\n teamSiteId: site.teamSiteId\r\n }));\r\n\r\n if (uniqueSelectedSites?.length > 0) {\r\n setSelectedSites(uniqueSelectedSites);\r\n initialSelectedSites = uniqueSelectedSites;\r\n const documentLibraries = await getDocumentLibraries(uniqueSelectedSites, graphToken);\r\n setInitialSelectedDocumentLibrary(documentLibraries);\r\n }\r\n // const siteId = props.siteId ? props.siteId : await StorageHelper.getItemAsync(advancedSearch.params.siteId);\r\n // if (siteId) {\r\n // // const initialSelectedSite = sites?.find(item => item.id === siteId);\r\n // // const currentselectedSites: IUrlKeyNamePair[] = initialSelectedSite\r\n // // ? [\r\n // // ...selectedSites,\r\n // // {\r\n // // key: initialSelectedSite.key,\r\n // // value: initialSelectedSite.name,\r\n // // webUrl: initialSelectedSite.webUrl,\r\n // // siteId: initialSelectedSite.id\r\n // // }\r\n // // ]\r\n // // : [];\r\n\r\n // // setSelectedSites(currentselectedSites);\r\n // // initialSelectedSites = currentselectedSites;\r\n // // const documentLibraries = await getDocumentLibraries(currentselectedSites, graphToken);\r\n // // setInitialSelectedDocumentLibrary(params, documentLibraries);\r\n // const initialSelectedSite = sites?.find(item => item.id === siteId);\r\n // if (initialSelectedSite) {\r\n // let selectedSubSites: ISiteInfoUrl[] = [];\r\n\r\n // if (!initialSelectedSite.isSubsite && initialSelectedSite.id) {\r\n // // Get all main site's subsites\r\n // const mainSiteUniqueIdSections: string[] = initialSelectedSite.id.split(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1,4c5fa046-b695-4b4b-86ef-b47bb86f7cbe \r\n // if (mainSiteUniqueIdSections?.length === 3) {\r\n // const mainSiteUniqueId: string = mainSiteUniqueIdSections.slice(0, 2).join(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1\r\n // selectedSubSites = sites.filter(site => site.isSubsite && site.id?.startsWith(mainSiteUniqueId));\r\n // }\r\n // }\r\n\r\n // const currentSelectedSites: IUrlKeyNamePair[] =\r\n // [\r\n // ...selectedSites,\r\n // {\r\n // key: initialSelectedSite.key,\r\n // value: initialSelectedSite.name,\r\n // webUrl: initialSelectedSite.webUrl,\r\n // siteId: initialSelectedSite.id\r\n // },\r\n // ...selectedSubSites.map(subSite => ({\r\n // key: subSite.key,\r\n // value: subSite.name,\r\n // webUrl: subSite.webUrl,\r\n // siteId: subSite.id\r\n // }))\r\n // ];\r\n // let uniqueSelectedSites: IUrlKeyNamePair[] = [];\r\n // currentSelectedSites.forEach((val) => {\r\n // if (uniqueSelectedSites.filter(site => site.siteId === val.siteId).length === 0) {\r\n // uniqueSelectedSites.push(val);\r\n // }\r\n // })\r\n // if (uniqueSelectedSites?.length > 0) {\r\n // setSelectedSites(uniqueSelectedSites);\r\n // initialSelectedSites = uniqueSelectedSites;\r\n // const documentLibraries = await getDocumentLibraries(uniqueSelectedSites, graphToken);\r\n // setInitialSelectedDocumentLibrary(documentLibraries);\r\n // }\r\n // }\r\n // }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (setInitialSelectedSite)\");\r\n }\r\n };\r\n\r\n const setInitialSelectedDocumentLibrary = async (documentLibraries: IDocUrlDropdown[]) => {\r\n try {\r\n const documentLibraryId = checkValueForUndefined(await StorageHelper.getItemAsync(advancedSearch.params.documentLibraryId));\r\n if (documentLibraryId) {\r\n const initialSelectedDocumentLibrary: IDocUrlDropdown = documentLibraries.find(\r\n item => item.driveId === documentLibraryId\r\n );\r\n\r\n if (initialSelectedDocumentLibrary) {\r\n initialSelectedDocumentLibrary.selected = true;\r\n const currentSelectedDocumentLibraries = getCurrentSelectedDocumentLibraries(initialSelectedDocumentLibrary);\r\n setSelectedDocumentLibraries(currentSelectedDocumentLibraries);\r\n await Promise.all([\r\n buildContentTypes(currentSelectedDocumentLibraries),\r\n buildFields(currentSelectedDocumentLibraries)\r\n ]);\r\n }\r\n }\r\n else {\r\n autoSelectDocumentLibraries(documentLibraries);\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (setInitialSelectedDocumentLibrary)\");\r\n }\r\n };\r\n\r\n const autoSelectDocumentLibraries = async (documentLibraries: IDocUrlDropdown[]) => {\r\n if (documentLibraries?.length > 0) {\r\n const selectedDocumentLibraries =\r\n [\r\n ...selectedDocumentLibrariesRef?.current,\r\n ...documentLibraries.map(docLib => ({\r\n key: docLib.key as string,\r\n driveId: docLib.driveId,\r\n value: docLib.text,\r\n webUrl: docLib.webUrl,\r\n siteId: docLib.siteId,\r\n documentLibrary: docLib.documentLibrary,\r\n sharePointListId: docLib.sharePointListId\r\n }))\r\n ];\r\n setSelectedDocumentLibraries(selectedDocumentLibraries);\r\n await Promise.all([\r\n buildContentTypes(selectedDocumentLibraries),\r\n buildFields(selectedDocumentLibraries)\r\n ]);\r\n }\r\n }\r\n\r\n const getCurrentSelectedDocumentLibraries = (selectedItem: IDocUrlDropdown): IDocUrlKeyNamePair[] => {\r\n try {\r\n return selectedItem && selectedItem.selected\r\n ? [\r\n ...selectedDocumentLibrariesRef?.current,\r\n {\r\n key: selectedItem.key as string,\r\n driveId: selectedItem.driveId,\r\n value: selectedItem.text,\r\n webUrl: selectedItem.webUrl,\r\n siteId: selectedItem.siteId,\r\n documentLibrary: selectedItem.documentLibrary,\r\n sharePointListId: selectedItem.sharePointListId\r\n }\r\n ]\r\n : selectedDocumentLibrariesRef?.current.filter(nameValuePair => nameValuePair.driveId !== selectedItem.driveId);\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (getCurrentSelectedDocumentLibraries)\");\r\n return [];\r\n }\r\n };\r\n\r\n const buildSitesDropdown = async (sites: ISiteInfoUrl[], graphToken: string) => {\r\n try {\r\n const dropdownItems: any[] = [];\r\n // const isTeams: boolean = !props.account ? JSON.parse((await StorageHelper.getItemAsync(advancedSearch.params.isTeams))?.toLowerCase()) : false; //must parse to get \"true\" string to the bool value\r\n const isTeams: boolean = !sites?.some(site => !site.isSubsite && !site.isTeam);\r\n const allTopSites = buildSection(\"mainSiteHeader\", isTeams ? \"Teams\" : \"Sites\", sites, item => !item.isSubsite);\r\n if (allTopSites?.items?.length > 0) {\r\n const teamSites = sites.filter(site => site.isTeam);\r\n\r\n const mainSiteSection = {\r\n header: allTopSites.header,\r\n items: allTopSites.items.filter(item => !teamSites.some(tsn => tsn.webUrl === item.webUrl))\r\n };\r\n if (mainSiteSection.items?.length > 0) {\r\n dropdownItems.push(...[mainSiteSection.header], ...mainSiteSection.items);\r\n }\r\n\r\n const TeamSiteSection =\r\n teamSites?.length > 0\r\n ? {\r\n header: { key: \"teamSiteHeader\", text: \"Teams\", itemType: DropdownMenuItemType.Header },\r\n items: allTopSites.items.filter(item => teamSites.some(tsn => tsn.webUrl === item.webUrl))\r\n }\r\n : undefined;\r\n\r\n if (TeamSiteSection) {\r\n dropdownItems.push(...[TeamSiteSection.header], ...TeamSiteSection.items);\r\n }\r\n\r\n const subSiteSection = buildSection(\"subSiteHeader\", (sites?.some(site => site.isChannel) ? \"Subsites / Channels\" : \"Subsites\"), sites, item => item.isSubsite);\r\n if (subSiteSection.items?.length > 0) {\r\n dropdownItems.push(\r\n ...[subSiteSection.header],\r\n ...subSiteSection.items\r\n .map(subSite => ({\r\n ...subSite,\r\n isSubSite: true\r\n }))\r\n .sort((a, b) => {\r\n\r\n // Sort subsites according to index of parent site.\r\n let aSortValue: number;\r\n let bSortValue: number;\r\n\r\n const aSubSiteUniqueIdSections: string[] = a.siteId.split(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1,4c5fa046-b695-4b4b-86ef-b47bb86f7cbe\r\n if (aSubSiteUniqueIdSections?.length === 3) {\r\n const aSubSiteUniqueId: string = aSubSiteUniqueIdSections.slice(0, 2).join(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1\r\n aSortValue = sites.findIndex(site => !site.isSubsite && site.id?.startsWith(aSubSiteUniqueId));\r\n }\r\n\r\n const bSubSiteUniqueIdSections: string[] = b.siteId.split(\",\");\r\n if (bSubSiteUniqueIdSections?.length === 3) {\r\n const bSubSiteUniqueId: string = bSubSiteUniqueIdSections.slice(0, 2).join(\",\");\r\n bSortValue = sites.findIndex(site => !site.isSubsite && site.id?.startsWith(bSubSiteUniqueId));\r\n }\r\n\r\n return (aSortValue ?? a.key) < (bSortValue ?? b.key) ? -1 : 1;\r\n\r\n }));\r\n }\r\n }\r\n return dropdownItems;\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (buildSitesDropdown)\");\r\n return [];\r\n }\r\n };\r\n\r\n const buildSection = (key: string, text: string, sites: ISiteInfoUrl[], predicate: (item) => unknown) => {\r\n const header = { key: key, text: text, itemType: DropdownMenuItemType.Header };\r\n const items = sites.filter(predicate).map(item => ({ key: item.key, text: item.name, webUrl: item.webUrl, siteId: item.id, isChannel: item.isChannel, teamSiteId: item.teamSiteId }));\r\n return { header: header, items: items };\r\n };\r\n\r\n const onChangeSites = async (event: React.FormEvent, item: IUrlDropdown): Promise => {\r\n try {\r\n if (item) {\r\n resetSitesSelection();\r\n\r\n let selectedSubSites: IUrlDropdown[] = [];\r\n if (!item.isSubSite && item.siteId) {\r\n // Get all main site's subsites\r\n const mainSiteUniqueIdSections: string[] = item.siteId.split(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1,4c5fa046-b695-4b4b-86ef-b47bb86f7cbe\r\n if (mainSiteUniqueIdSections?.length === 3) {\r\n const mainSiteUniqueId: string = mainSiteUniqueIdSections.slice(0, 2).join(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1\r\n selectedSubSites = sitesDropdown.filter(site => site.isSubSite && ((site.isChannel && site.teamSiteId === item.siteId) || site.siteId?.startsWith(mainSiteUniqueId)));\r\n }\r\n }\r\n\r\n let currentSelectedSites: IUrlKeyNamePair[];\r\n if (!item.selected && selectedSubSites?.length > 0) {\r\n // Auto deselect/filter out all the main site's sub sites.\r\n currentSelectedSites = selectedSites.filter(site => !selectedSubSites.some(subSite => site.siteId === subSite.siteId));\r\n }\r\n else {\r\n currentSelectedSites = selectedSites;\r\n }\r\n\r\n const updatedSelectedSites = item.selected\r\n ? [\r\n ...currentSelectedSites,\r\n { key: item.key as string, value: item.text, webUrl: item.webUrl, siteId: item.siteId, isChannel: item.isChannel, teamSiteId: item.teamSiteId },\r\n ...selectedSubSites.map(subSite => ({\r\n key: subSite.key as string,\r\n value: subSite.text,\r\n webUrl: subSite.webUrl,\r\n siteId: subSite.siteId,\r\n isChannel: subSite.isChannel,\r\n teamSiteId: subSite.teamSiteId\r\n }))\r\n ]\r\n : currentSelectedSites.filter(nameValuePair => nameValuePair.siteId !== item.siteId);\r\n\r\n setSelectedSites(updatedSelectedSites);\r\n setLocalStorage(localStorageKeys.selectedAdvSearchSites, updatedSelectedSites?.map(site => site.siteId));\r\n if (updatedSelectedSites?.length > 0) {\r\n const documentLibraries = await getDocumentLibraries(updatedSelectedSites, await authModule.getGraphAccessToken());\r\n autoSelectDocumentLibraries(documentLibraries);\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (onChangeSites)\");\r\n }\r\n };\r\n\r\n const getDocumentLibraries = async (currentSelectedSites: IUrlKeyNamePair[], graphToken: string) => {\r\n try {\r\n if (!currentSelectedSites.length) return [];\r\n let documentLibraryItems: IDocUrlDropdown[] = [];\r\n const emptySites: IUrlKeyNamePair[] = CacheHandler.sitesToUpdate(currentSelectedSites);\r\n if (emptySites?.length > 0) { //check if any libraries in sites are empty\r\n\r\n const siteLibraries: ISiteDriveItems[] = await getSiteDocumentLibraryDrives(\r\n graphToken,\r\n emptySites.map(site => ({ site: site.value, siteId: site.siteId, mainWebUrl: site.webUrl }))\r\n );\r\n\r\n documentLibraryItems = siteLibraries\r\n ?.filter(siteLib => siteLib)\r\n ?.reduce(\r\n (aggregate, siteLibrary) => [\r\n ...(aggregate ?? []),\r\n ...(siteLibrary.driveItems\r\n ?.filter(item => {\r\n const sites: SiteItem[] = advancedSearchStateManager.sites?.filter(site => site.displayName?.trim().toLowerCase() === siteLibrary.site?.trim().toLowerCase());\r\n if (sites?.length > 0) {\r\n const hiddenDocumentLibraries: documentLibraryItem[] = sites[0]?.documentLibraries?.filter(docLib => docLib.hidden === true);\r\n return !hiddenDocumentLibraries.some(hiddenLib => hiddenLib?.title?.trim().toLowerCase() === item.name?.trim().toLowerCase());\r\n }\r\n return true;\r\n })\r\n ?.map(item => ({\r\n text: item.name,\r\n key: item.id, // driveId\r\n driveId: item.id, // driveId\r\n webUrl: siteLibrary.mainUrl,\r\n siteId: siteLibrary.siteId,\r\n documentLibrary: item.name,\r\n sharePointListId: item.sharePointListId,\r\n })) ?? [])\r\n ],\r\n []\r\n );\r\n documentLibraryItems = documentLibraryItems.concat(CacheHandler.getCachedLibraries(currentSelectedSites));\r\n CacheHandler.setLibraries(currentSelectedSites, documentLibraryItems);\r\n\r\n } else {\r\n documentLibraryItems = CacheHandler.getCachedLibraries(currentSelectedSites);\r\n }\r\n const renameDocItems: IDocUrlDropdown[] = documentLibraryItems\r\n .filter(lib => {\r\n const librarySites: IUrlKeyNamePair[] = currentSelectedSites?.filter(site => site.siteId && site.siteId === lib.siteId);\r\n if (librarySites?.length > 0) {\r\n const librarySite: IUrlKeyNamePair = librarySites[0];\r\n const sites: SiteItem[] = advancedSearchStateManager.sites?.filter(site => site.displayName?.trim().toLowerCase() === librarySite.value?.trim().toLowerCase());\r\n if (sites?.length > 0) {\r\n const hiddenDocumentLibraries: documentLibraryItem[] = sites[0]?.documentLibraries?.filter(docLib => docLib.hidden === true);\r\n return !hiddenDocumentLibraries.some(hiddenLib => hiddenLib?.title?.trim().toLowerCase() === lib.documentLibrary?.trim().toLowerCase());\r\n }\r\n }\r\n return true;\r\n })\r\n .map(lib => {\r\n return {\r\n ...lib,\r\n text: currentSelectedSites?.length == 1 ? lib.text : lib.text + ' - ' + currentSelectedSites.find(s => s.siteId === lib.siteId).value,\r\n }\r\n })\r\n .sort((a, b) => (a.siteId?.localeCompare(b.siteId || \"\") || a.text?.localeCompare(b.text || \"\")));\r\n setDocumentLibrariesDropdown(renameDocItems);\r\n return documentLibraryItems;\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (getDocumentLibraries)\");\r\n return [];\r\n }\r\n };\r\n\r\n const resetSitesSelection = () => {\r\n setSelectedDocumentLibraries([]);\r\n resetDocumentLibrarySelection();\r\n };\r\n\r\n const refreshCache = async () => {\r\n setLoading(prevLoading => ({ ...prevLoading, refreshingCache: true }));\r\n CacheHandler.clearCache();\r\n removeLocalStorage(localStorageKeys.selectedAdvSearchSites);\r\n setSelectedSites([]);\r\n setSelectedDocumentLibraries([]);\r\n resetDocumentLibrarySelection();\r\n //now reload the rest of the cache\r\n await initSearchFields(true);\r\n // await Promise.all([\r\n // buildContentTypes([]),\r\n // buildFields([])\r\n // ]);\r\n setLoading(prevLoading => ({ ...prevLoading, refreshingCache: false }));\r\n }\r\n\r\n const sitesDropdownView = () => {\r\n return (\r\n {\r\n return loading.refreshingCache ?\r\n \r\n \r\n \r\n : defaultRender();\r\n }}\r\n onRenderLabel={() => {\r\n return (\r\n \r\n \r\n \r\n await refreshCache()}\r\n />\r\n \r\n \r\n )\r\n }}\r\n selectedKeys={selectedSites.map(site => site.key)}\r\n multiSelect\r\n onChange={onChangeSites}\r\n options={sitesDropdown}\r\n styles={dropdownStyles}\r\n // responsiveMode={ResponsiveMode.small}\r\n className=\"xb-sp-input\"\r\n />\r\n )\r\n };\r\n\r\n const onChangeDocumentLibraries = async (\r\n _event: React.FormEvent,\r\n item: IDocUrlDropdown\r\n ): Promise => {\r\n if (item) {\r\n setIsInputsLoading(true);\r\n resetDocumentLibrarySelection();\r\n const currentSelectedDocumentLibraries = getCurrentSelectedDocumentLibraries(item);\r\n setSelectedDocumentLibraries(currentSelectedDocumentLibraries);\r\n await Promise.all([\r\n buildContentTypes(currentSelectedDocumentLibraries),\r\n buildFields(currentSelectedDocumentLibraries)\r\n ]);\r\n setIsInputsLoading(false);\r\n }\r\n };\r\n\r\n const resetDocumentLibrarySelection = () => {\r\n setFields([]);\r\n setContentTypesDropdown([]);\r\n setSelectedContentTypes([]);\r\n setAllUsers([]);\r\n };\r\n\r\n const buildContentTypes = async (currentSelectedDocumentLibraries: IDocUrlKeyNamePair[]) => {\r\n if (advancedSearchStateManager.disableAdvSearchContentTypes) return;\r\n try {\r\n if (!(advancedSearchStateManager.allowedAdvancedSearchFields?.length > 0)\r\n || advancedSearchStateManager.allowedAdvancedSearchFields.find(allowedField => allowedField === \"contenttype\")) {\r\n let contentTypeItems: IDocUrlDropdown[] = [];\r\n const emptyLibs: IDocUrlDropdown[] = CacheHandler.getEmptyContentLibs(currentSelectedDocumentLibraries);\r\n const cachedContentTypeItems = CacheHandler.getCachedContentTypes(currentSelectedDocumentLibraries);\r\n if (emptyLibs.length > 0) {\r\n\r\n const documentLibraryWithContentTypes = await SharePointCompositeService.getDocumentLibrariesWithContentTypes(\r\n emptyLibs.map(item => ({\r\n webUrl: item.webUrl,\r\n documentLibrary: item.documentLibrary,\r\n siteId: item.siteId,\r\n sharePointListId: item.sharePointListId\r\n }))\r\n );\r\n\r\n contentTypeItems = documentLibraryWithContentTypes.reduce(\r\n (aggregate, docLibrary) => [\r\n ...aggregate,\r\n ...docLibrary.contentTypes.map(item => ({\r\n text: `${item.text} - ${docLibrary.documentLibrary}`,\r\n key: item.key,\r\n webUrl: docLibrary.webUrl,\r\n documentLibrary: docLibrary.documentLibrary,\r\n sharePointListId: docLibrary.sharePointListId\r\n }))\r\n ],\r\n []\r\n );\r\n\r\n contentTypeItems = contentTypeItems.concat(cachedContentTypeItems);\r\n CacheHandler.setContentTypeItems(contentTypeItems);\r\n } else {\r\n contentTypeItems = cachedContentTypeItems;\r\n }\r\n setContentTypesDropdown(contentTypeItems);\r\n\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (buildContentTypes)\");\r\n }\r\n };\r\n\r\n const buildFields = async (currentSelectedDocumentLibraries: IDocUrlKeyNamePair[]) => {\r\n try {\r\n const sharepointToken = await authModule.getSharePointAccessToken();\r\n\r\n let fields: IAdvancedSearchFields[][] = [];\r\n const emptyLibs: IDocUrlKeyNamePair[] = CacheHandler.getEmptyFieldsLibs(currentSelectedDocumentLibraries);\r\n const cachedFields = CacheHandler.getCachedFields(currentSelectedDocumentLibraries);\r\n if (emptyLibs.length > 0) {\r\n fields = await Promise.all(\r\n emptyLibs.map(\r\n async item =>\r\n await SharepointDocumentLibraryHelper.getDocumentLibraryFields(sharepointToken, {\r\n webUrl: item.webUrl,\r\n siteId: item.siteId,\r\n documentLibrary: item.documentLibrary,\r\n sharePointListId: item.sharePointListId\r\n })\r\n )\r\n );\r\n //concat fields with cache fields\r\n fields = fields.concat(cachedFields);\r\n //save fields to cache\r\n CacheHandler.setFields(fields);\r\n } else {\r\n //get searchFields from cache\r\n fields = cachedFields;\r\n }\r\n\r\n let uniqueFields = groupFields(fields).map(f => {\r\n return {\r\n ...f,\r\n sortVal: SortValEnum[f.xml?.Type?.toLowerCase().trim() !== \"calculated\"\r\n ? f.xml?.Type?.toLowerCase().trim()\r\n : f.xml.ResultType.toLowerCase()] ?? SortValEnum.other\r\n };\r\n });\r\n if (advancedSearchStateManager.allowedAdvancedSearchFields?.length > 0) {\r\n uniqueFields = advancedSearchStateManager.allowedAdvancedSearchFields\r\n .map(allowedField => {\r\n return uniqueFields.find(uniqueField => uniqueField?.xml?.DisplayName?.trim().toLowerCase() === allowedField.trim())\r\n })\r\n .filter(allowedField => allowedField);\r\n }\r\n else {\r\n // uniqueFields.sort((a, b) => a.sortVal < b.sortVal ? -1 : 1);\r\n uniqueFields.sort((a, b) => a.sortVal - b.sortVal || a.xml?.DisplayName - b.xml?.DisplayName);\r\n }\r\n if (uniqueFields?.length > 0) {\r\n uniqueFields = uniqueFields.map(f => {\r\n delete f.sortVal;\r\n return f;\r\n });\r\n setInputValues(uniqueFields);\r\n const peoplePickersFields = uniqueFields\r\n .map(item => item.xml.Type)\r\n .filter(item => validPeoplePickerTypes.some(vppt => vppt === item));\r\n\r\n const hasPeoplePickerFields = peoplePickersFields.length > 0;\r\n if (hasPeoplePickerFields) {\r\n await getAllUsers(!selectedSites.length ? initialSelectedSites : selectedSites);\r\n }\r\n\r\n advancedSearchStateManager.setDatasourceFields(!selectedSites.length ? initialSelectedSites : selectedSites, currentSelectedDocumentLibraries);\r\n setFields(uniqueFields);\r\n }\r\n\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (buildFields)\");\r\n }\r\n };\r\n\r\n const getAllUsers = async (selectedSites: IUrlKeyNamePair[]) => {\r\n try {\r\n const peopleService = new PeopleCompositeServices(selectedSites.map(site => site.webUrl));\r\n const users = await peopleService.getAllUsers();\r\n setAllUsers(users);\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (getAllUsers)\");\r\n }\r\n };\r\n\r\n const setInputValues = (fields: any[]) => {\r\n try {\r\n let inputValuesToSearchFields: ISharepointSearchInput[] = fields.map(FieldHelper.setupInputValues);\r\n const inputValuesToSearchFieldsupdated = FieldHelper.addMissingField(\r\n inputValuesToSearchFields,\r\n internalSharepointName.contentTypeId,\r\n \"Content\"\r\n );\r\n setInputValuesToSearch(inputValuesToSearchFieldsupdated);\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (setInputValues)\");\r\n }\r\n };\r\n\r\n const documentLibrariesDropdownView = selectedSites.length > 0 && (\r\n lib.key)}\r\n multiSelect\r\n onChange={onChangeDocumentLibraries}\r\n options={documentLibrariesDropdown}\r\n styles={dropdownStyles}\r\n // responsiveMode={ResponsiveMode.small}\r\n className=\"xb-sp-input\"\r\n />\r\n );\r\n\r\n const onChangeContentTypes = async (event: React.FormEvent, item: IDocUrlDropdown): Promise => {\r\n try {\r\n if (item) {\r\n const currentSelectedContentTypes = item.selected\r\n ? [\r\n ...selectedContentTypes,\r\n {\r\n key: item.key as string,\r\n value: item.text,\r\n webUrl: item.webUrl,\r\n documentLibrary: item.documentLibrary,\r\n sharePointListId: item.sharePointListId\r\n }\r\n ]\r\n : selectedContentTypes.filter(nameValuePair => nameValuePair.key !== item.key);\r\n\r\n setSelectedContentTypes(currentSelectedContentTypes);\r\n const index = inputValuesToSearchRef?.current.findIndex(item => item.internalName === internalSharepointName.contentTypeId);\r\n handleValueChange(\r\n index,\r\n currentSelectedContentTypes.map(item => item.key)\r\n );\r\n\r\n // const contentTypeFields = await getContentTypeFields(currentSelectedContentTypes);\r\n // compareFields(contentTypeFields);\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (onChangeContentTypes)\");\r\n }\r\n };\r\n\r\n const getContentTypeFields = async (currentSelectedContentTypes: IDocUrlKeyNamePair[]) => {\r\n try {\r\n const token = await authModule.getSharePointAccessToken();\r\n return await Promise.all(\r\n currentSelectedContentTypes.map(\r\n async item =>\r\n await SharepointDocumentLibraryHelper.getContentTypeFields(\r\n token,\r\n {\r\n webUrl: item.webUrl,\r\n siteId: item.siteId,\r\n documentLibrary: item.documentLibrary,\r\n sharePointListId: item.sharePointListId\r\n },\r\n item.key\r\n )\r\n )\r\n );\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (getContentTypeFields)\");\r\n return [];\r\n }\r\n };\r\n\r\n const compareFields = (contentTypeFields: any[]) => {\r\n const contentTypeFieldsReduced = contentTypeFields.reduce((pn, u) => [...pn, ...u], []);\r\n let missingFields: ISharepointSearchInput[] = contentTypeFieldsReduced\r\n .filter(contentTypeField => !fields.some(field => field.InternalName === contentTypeField.InternalName))\r\n .map(FieldHelper.setupInputValues);\r\n\r\n if (advancedSearchStateManager.allowedAdvancedSearchFields?.length > 0) {\r\n missingFields = advancedSearchStateManager.allowedAdvancedSearchFields\r\n .map(allowedField => missingFields.find(uniqueField => uniqueField?.xml?.DisplayName?.trim().toLowerCase() === allowedField.trim()))\r\n .filter(allowedField => allowedField);\r\n }\r\n\r\n if (missingFields?.length > 0) {\r\n setFields([...fields, ...missingFields]);\r\n }\r\n };\r\n\r\n const groupFields = (fields: any[]) => {\r\n const normalFields = fields.reduce((agg, current) => [...agg, ...current], []);\r\n const values = GroupByHelper.groupBy(normalFields, current => {\r\n return `${current.xml.DisplayName}${current.xml.Type}`;\r\n });\r\n\r\n return GroupByHelper.getUniqueValues(values);\r\n };\r\n\r\n const contentTypesDropdownView = !advancedSearchStateManager.disableAdvSearchContentTypes && selectedDocumentLibrariesRef?.current.length > 0 && contentTypesDropdown.length > 0 && (\r\n lib.key)}\r\n multiSelect\r\n onChange={onChangeContentTypes}\r\n options={contentTypesDropdown}\r\n styles={dropdownStyles}\r\n // responsiveMode={ResponsiveMode.small}\r\n className=\"xb-sp-input\"\r\n />\r\n );\r\n\r\n const search = async () => {\r\n try {\r\n resetQuickFilterValue();\r\n if (!inputValuesToSearchRef?.current.filter(item => item.value).length) {\r\n setSearching({ isSearching: false, hasSearchedBefore: true });\r\n setSearchResult({\r\n type: null,\r\n result: [],\r\n });\r\n loadUserRecentItemsRef?.current && setBreadCrumbItems([\r\n { text: languageStrings.Recent, key: \"Recent\", href: \"#\", onClick: resetBreadCrumbs },\r\n { text: languageStrings.Search, key: \"Search\", href: \"#\" }\r\n ]);\r\n return;\r\n }\r\n\r\n setSearching(prevSearching => ({ ...prevSearching, isSearching: true }));\r\n const token = await authModule.getSharePointAccessToken();\r\n const builder = new DocumentSearchRequestBuilder();\r\n const result = await Promise.all(\r\n selectedDocumentLibrariesRef?.current.map(item => getDocumentSearchResult(builder, item, token))\r\n );\r\n\r\n const gridData = result\r\n .reduce((pn, u) => [...pn, ...u], [])\r\n .map(item => {\r\n const { fields, ...restOfProperties } = item;\r\n return { ...restOfProperties, ...KeyValuePairHelper.buildKeyValuePairs(fields) };\r\n });\r\n if (loadUserRecentItemsRef?.current) {\r\n setBreadCrumbItems([\r\n { text: languageStrings.Recent, key: \"Recent\", href: \"#\", onClick: resetBreadCrumbs },\r\n { text: languageStrings.Search, key: \"Search\", href: \"#\" },\r\n ]\r\n );\r\n }\r\n\r\n // gridData.forEach(data => {\r\n // const site = selectedDocumentLibrariesRef?.current.find(x => x.driveId === data.driveId);\r\n // data['siteUrl'] = site.webUrl;\r\n // });\r\n\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: gridData,\r\n });\r\n\r\n // if (advancedSearchStateManager.enablePII === true) {\r\n // for (let index = 0; index < gridData.length; index++) {\r\n // const selectedFile = gridData[index];\r\n\r\n // if (selectedFile && selectedFile[piiConfig.privacySentitiveDataColumnName]?.value === null) {\r\n // checkPiiMutation({\r\n // accessToken: await authModule.getSharePointAccessToken(),\r\n // fileUrl: selectedFile.webUrl,\r\n // siteUrl: selectedFile['siteUrl'],\r\n // forceRecheck: true\r\n // })\r\n // .unwrap()\r\n // .then(res => {\r\n // selectedFile[piiConfig.privacySentitiveColumnName].value = res.piiDetected ? \"True\" : \"False\";\r\n // selectedFile[piiConfig.privacySentitiveDataColumnName].value = res.pii;\r\n // setSearchResult({\r\n // type: SearchReturnType.SearchResult,\r\n // result: [...gridData],\r\n // });\r\n // }).catch(error => {\r\n // selectedFile[piiConfig.privacySentitiveColumnName].value = \"False\";\r\n // selectedFile[piiConfig.privacySentitiveDataColumnName].value = languageStrings.PrivacySensitiveCheckError\r\n // setSearchResult({\r\n // type: SearchReturnType.SearchResult,\r\n // result: [...gridData],\r\n // });\r\n // });\r\n // }\r\n // }\r\n // }\r\n\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (search)\");\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: [],\r\n });\r\n }\r\n\r\n setSearching({ isSearching: false, hasSearchedBefore: true });\r\n };\r\n\r\n const recheckPii = async (selectedFiles: any, redactPiiData: boolean) => {\r\n selectedFiles.items.forEach(async selectedFile => {\r\n\r\n if (selectedFile[piiConfig.privacySentitiveColumnName.toLowerCase()] !== undefined && !selectedFile.contenttypeid?.startsWith(SharePointFolderContentTypeIds.folder)) {\r\n const gridFile = searchResult.result.find(x => x.driveId === selectedFile.driveid && x.webUrl === selectedFile.weburl);\r\n if ((gridFile && !redactPiiData) || (gridFile && redactPiiData && gridFile[piiConfig.privacySentitiveColumnName].value === 'True' && getFileExtension(gridFile.name)?.toLowerCase() === extensions.pdf)) {\r\n gridFile[piiConfig.privacySentitiveColumnName].value = \"False\";\r\n gridFile[piiConfig.privacySentitiveDataColumnName].value = null;\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: [...searchResult.result],\r\n });\r\n\r\n try {\r\n const piiResults = await checkPiiMutation({\r\n accessToken: await authModule.getSharePointAccessToken(),\r\n fileUrl: selectedFile.weburl,\r\n siteUrl: selectedFile['siteurl'],\r\n forceRecheck: true,\r\n redactPiiData\r\n })\r\n .unwrap();\r\n\r\n gridFile[piiConfig.privacySentitiveColumnName].value = piiResults.piiDetected ? \"True\" : \"False\";\r\n\r\n if (piiResults.piiError) {\r\n gridFile[piiConfig.privacySentitiveDataColumnName].value = languageStrings.PrivacySensitiveCheckError\r\n } else {\r\n gridFile[piiConfig.privacySentitiveDataColumnName].value = piiResults.pii;\r\n }\r\n } catch (error) {\r\n gridFile[piiConfig.privacySentitiveColumnName].value = \"False\";\r\n gridFile[piiConfig.privacySentitiveDataColumnName].value = languageStrings.PrivacySensitiveCheckError\r\n }\r\n\r\n\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: [...searchResult.result],\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n const getFileExtension = (name: string) => {\r\n let extention = '';\r\n\r\n const fileParts = name.split('.');\r\n if (fileParts.length > 1) {\r\n extention = fileParts[fileParts.length - 1];\r\n }\r\n\r\n return extention;\r\n }\r\n\r\n const metaDataUpdated = async (selectedItem: any, inputValuesToSave: SharePointInputData[]) => {\r\n try {\r\n const gridFile = searchResult.result.find(x => x.driveId === selectedItem.driveid && x.webUrl === selectedItem.weburl);\r\n if (gridFile) {\r\n inputValuesToSave.forEach(inputValue => {\r\n if (inputValue.internalName === sharePointInternalFileName) {\r\n if (!selectedItem.contenttypeid?.startsWith(SharePointFolderContentTypeIds.folder)) {\r\n gridFile.name = `${inputValue.value}.${getFileExtension(selectedItem.name)}`;\r\n } else {\r\n gridFile.name = inputValue.value;\r\n }\r\n } else {\r\n // if (gridFile[inputValue.internalName]) {\r\n // gridFile[inputValue.internalName].value = inputValue.value;\r\n // }\r\n const propertyInternalName: string = inputValue.internalName.replaceAll(\"_x0020_\", \" \");\r\n if (gridFile[propertyInternalName]) {\r\n gridFile[propertyInternalName].value = inputValue.value;\r\n }\r\n }\r\n });\r\n\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: [...searchResult.result],\r\n });\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (metaDataUpdated)\");\r\n }\r\n }\r\n\r\n const fileRenamed = async (selectedItem: any, updatedValue: string) => {\r\n try {\r\n const gridFile = searchResult.result.find(x => x.driveId === selectedItem.driveid && x.webUrl === selectedItem.weburl);\r\n if (gridFile) {\r\n gridFile.name = updatedValue;\r\n\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: [...searchResult.result],\r\n });\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (fileRenamed)\");\r\n }\r\n }\r\n\r\n const filesDeleted = async (selectedItems: any[]) => {\r\n try {\r\n const newRows: any[] = [];\r\n searchResult.result.forEach((item, index) => {\r\n const isSelected = selectedItems.find(x => x.key === index);\r\n if (!isSelected) {\r\n newRows.push(item);\r\n }\r\n });\r\n\r\n setSearchResult({\r\n type: SearchReturnType.SearchResult,\r\n result: [...newRows],\r\n });\r\n } catch (error) {\r\n logger(error, \"advancedSearch.tsx (filesDeleted)\");\r\n }\r\n }\r\n\r\n const openApprovalsPanel = async (selectedFiles: any) => {\r\n setApprovalFiles(selectedFiles);\r\n setIsApprovalsPanelOpen(true);\r\n }\r\n\r\n const { quickFilterCommandInput, resetQuickFilterValue } = useQuickFilterCommandInput(setFilterValue);\r\n\r\n const searchGrid =\r\n {\r\n const resultProperties = Object.keys(result);\r\n return resultProperties.some(property => {\r\n try {\r\n let propertyValue: string;\r\n const propertyType: string = result[property]?.type;\r\n if (propertyType && (propertyType === \"DateTime\" || propertyType === \"DateOnly\")) {\r\n const unixValue: number = Number(result[property]?.value);\r\n if (unixValue) {\r\n const unixDate = dayjs.unix(unixValue);\r\n propertyValue = propertyType === \"DateOnly\" ? unixDate.format(\"L\") : unixDate.format(\"L LT\");;\r\n }\r\n }\r\n else {\r\n propertyValue = (result[property].value !== undefined ? result[property].value.toString() : result[property].toString()).toLowerCase();\r\n }\r\n return propertyValue?.includes(filterValue.trim().toLowerCase());\r\n } catch (error) {\r\n // Do not log to generic logger as it may flood the db.\r\n console.error(error);\r\n }\r\n return true;\r\n });\r\n })\r\n }\r\n : searchResult\r\n }\r\n viewsDropdownItems={viewsDropdownItems}\r\n fields={fields}\r\n selectedSites={[...selectedSites].sort((a, b) => {\r\n return a.webUrl.split('/').length - b.webUrl.split('/').length\r\n })} //this sorts the sites based on how \"nested\" the site is. main sites are 1st, sub sub sub sites are at the bottom.\r\n allowOpenInSharePoint={allowOpenInSharePoint}\r\n enablePII={advancedSearchStateManager.enablePII}\r\n enableRedaction={advancedSearchStateManager.enableRedaction}\r\n tenantEnableApprovalHooks={advancedSearchStateManager.tenantEnableApprovalHooks}\r\n recheckPii={recheckPii}\r\n openApprovalsPanel={openApprovalsPanel}\r\n isInConentMangerMode={props.isInConentMangerMode}\r\n openDocumentsInClientApp={advancedSearchStateManager.openDocumentsInClientApp}\r\n enableSharing={advancedSearchStateManager.enableSharing}\r\n metaDataUpdated={metaDataUpdated}\r\n documentLibraries={documentLibrariesDropdown}\r\n filesDeleted={filesDeleted}\r\n fileRenamed={fileRenamed}\r\n filterCommandItem={searchResult?.result?.length > 0 && quickFilterCommandInput}\r\n userAccount={currentUserAccount}\r\n />;\r\n\r\n const getDocumentSearchResult = async (\r\n builder: DocumentSearchRequestBuilder,\r\n docLib: IDocUrlKeyNamePair,\r\n accessToken: string\r\n ) => {\r\n const documentSearchRequest = builder.build(\r\n docLib,\r\n inputValuesToSearchRef?.current.filter(item => item.value),\r\n accessToken\r\n );\r\n\r\n try {\r\n const result: IDocumentSearchResult[] = await apiSearchDocuments(documentSearchRequest);\r\n\r\n return !result ? [] : result.map(item => ({ ...item, driveId: docLib.driveId, siteUrl: docLib.webUrl }));\r\n } catch (error) {\r\n logger(error?.response?.data, \"advancedSearch.tsx (getDcoumentSearchResult)\");\r\n return [];\r\n }\r\n };\r\n\r\n const searchButton = selectedDocumentLibrariesRef?.current.length > 0 && fields.length > 0 && (\r\n search()} allowDisabledFocus>\r\n {searching.isSearching && }\r\n \r\n );\r\n\r\n const handleValueChange = (index: number, value: any) => {\r\n if (index >= 0 && inputValuesToSearchRef?.current?.length > 0) {\r\n const updatedInputValuesToSearch = [...inputValuesToSearchRef?.current];\r\n updatedInputValuesToSearch[index].value = value;\r\n setInputValuesToSearch(updatedInputValuesToSearch);\r\n }\r\n };\r\n\r\n const fieldInputs = fields.map((item, index) => {\r\n const factory = new InputTypeFactory();\r\n const inputType = factory.getInputType(item.xml, advancedSearchStateManager.datasourceFields ?? []);\r\n const users = validPeopleInputTypes.some(item => item === inputType) ? allUsers : [];\r\n const properties: IInputCreator = {\r\n type: inputType,\r\n info: factory.getInfo(\r\n item,\r\n inputType,\r\n inputValuesToSearchRef?.current[index],\r\n users,\r\n handleValueChange,\r\n selectedSites?.map(s => s?.value?.trim())?.filter(s => s),\r\n selectedDocumentLibrariesRef.current?.map(l => l?.documentLibrary?.trim())?.filter(l => l))\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n const inputsLoader = isInputsLoading && (\r\n
\r\n \r\n
\r\n );\r\n\r\n const ProfileIcon = (profilePicURL: string) => {\r\n return (\r\n { setProfilePanelIsOpen(true) }}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n return loading.sites ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {appLogo && \r\n \r\n }\r\n \r\n {languageStrings.AdvancedSearch}\r\n \r\n {props.account && !props.isInConentMangerMode && ProfileIcon(profilePic)}\r\n {props.account && props.isInConentMangerMode &&\r\n { props.setMode(!props?.teamsContext ? ModeEnum.contentManager : ModeEnum.contentManagerTeams) }} styles={getCloseButtonStyles(appColor)} />\r\n }\r\n \r\n \r\n \r\n \r\n {sitesDropdownView()}\r\n {documentLibrariesDropdownView}\r\n {contentTypesDropdownView && {contentTypesDropdownView}}\r\n {fieldInputs}\r\n {inputsLoader}\r\n {searchButton}\r\n \r\n \r\n \r\n {loadUserRecentItemsRef?.current && }\r\n {!searching.isSearching && !loading.recentFiles && !searchResult?.result?.length ? (\r\n \r\n \r\n \r\n \r\n {searching.hasSearchedBefore && \r\n {languageStrings.NoItemsFound}\r\n }\r\n \r\n ) : (\r\n searchGrid\r\n )}\r\n \r\n \r\n {profilePanelIsOpen &&\r\n setProfilePanelIsOpen(false)}\r\n profilePicURL={profilePic}\r\n />\r\n }\r\n {isApprovalsPanelOpen && setIsApprovalsPanelOpen(false)} headerText={languageStrings.AutomationFlowRequest} styles={{ main: { overflow: \"unset\" } }}>\r\n setIsApprovalsPanelOpen(false)}\r\n tenantGuid={currentUserAccount.tenantId}\r\n requestor={currentUserAccount.username}\r\n />\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default connector(AdvancedSearch);\r\n","import { IKeyNamePair } from \"../src/taskpane/interfaces/IKeyNamePair\";\r\nimport { ITenantInfo } from \"../src/taskpane/interfaces/ITenantInfo\";\r\nimport { boundField, dataSourceItem, SiteItem, TenantState } from \"../src/taskpane/redux/models/reduxModels\";\r\nimport { apiGetTenantInfo } from \"../src/taskpane/services/ApiService\";\r\nimport authModule from \"../utilities/AuthModule\";\r\nimport { logger } from \"../utilities/logger\";\r\n\r\nclass AdvancedSearchStateManager {\r\n dataSourceItems: dataSourceItem[];\r\n sites: SiteItem[];\r\n // boundedFields: boundField[];\r\n allowedAdvancedSearchFields: string[];\r\n allowedSiteCollections: string[];\r\n allowedTeams: string[];\r\n enablePII?: boolean;\r\n tenantEnableApprovalHooks?: boolean;\r\n enableRedaction?: boolean;\r\n isDataSourcePanelActive: boolean = false;\r\n replaceFileNameWithGUID?: boolean;\r\n disableFileRename?: boolean;\r\n openDocumentsInClientApp?: boolean;\r\n enableSharing?: boolean;\r\n datasourceFields?: boundField[];\r\n appLogo?: string;\r\n appColor?: string;\r\n enableAdvSearchMultiSites?: boolean;\r\n disableAdvSearchContentTypes?: boolean;\r\n\r\n async getTenantInfo(tenantId?: string, tenantState?: TenantState): Promise {\r\n try {\r\n if (!tenantState) {\r\n const tenantInfo: ITenantInfo = await apiGetTenantInfo(tenantId);\r\n this.dataSourceItems = tenantInfo.datasources;\r\n this.sites = tenantInfo.sites;\r\n\r\n // this.boundedFields = tenantInfo.datasources\r\n // ?.map(item => item.boundFields)\r\n // .reduce((acc, current) => {\r\n // return acc.concat(current);\r\n // }, [])\r\n // ?? [];\r\n\r\n this.allowedAdvancedSearchFields = tenantInfo.allowedAdvancedSearchFields?.toLowerCase()\r\n .split(\";\")\r\n .map(allowedField => allowedField.trim())\r\n .filter(allowedField => allowedField.length > 0);\r\n\r\n this.allowedSiteCollections = tenantInfo.allowedSiteCollections?.toLowerCase()\r\n .split(\";\")\r\n .map(allowedSite => allowedSite.trim())\r\n .filter(allowedSite => allowedSite.length > 0);\r\n\r\n this.allowedTeams = tenantInfo.allowedTeams?.toLowerCase()\r\n .split(\";\")\r\n .map(allowedTeam => allowedTeam.trim())\r\n .filter(allowedTeam => allowedTeam.length > 0);\r\n\r\n this.enablePII = tenantInfo.enablePII;\r\n this.tenantEnableApprovalHooks = tenantInfo.tenantEnableApprovalHooks;\r\n this.enableRedaction = tenantInfo.enableRedaction;\r\n this.replaceFileNameWithGUID = tenantInfo.replaceFileNameWithGUID;\r\n this.disableFileRename = tenantInfo.disableFileRename;\r\n this.openDocumentsInClientApp = tenantInfo.openDocumentsInClientApp;\r\n this.enableSharing = tenantInfo.enableSharing;\r\n this.appColor = tenantInfo.appColor;\r\n this.appLogo = tenantInfo.appLogo;\r\n this.enableAdvSearchMultiSites = tenantInfo.enableAdvSearchMultiSites;\r\n this.disableAdvSearchContentTypes = tenantInfo.disableAdvSearchContentTypes;\r\n\r\n authModule.setTenantApiKey(tenantInfo.apiKey);\r\n } else {\r\n this.dataSourceItems = tenantState.datasources;\r\n this.sites = tenantState.sites;\r\n\r\n // this.boundedFields = tenantState.datasources\r\n // ?.map(item => item.boundFields)\r\n // .reduce((acc, current) => {\r\n // return acc.concat(current);\r\n // }, [])\r\n // ?? [];\r\n\r\n this.allowedAdvancedSearchFields = tenantState.allowedAdvancedSearchFields;\r\n this.allowedSiteCollections = tenantState.allowedSiteCollections;\r\n this.allowedTeams = tenantState.allowedTeams;\r\n\r\n this.enablePII = tenantState.enablePII;\r\n this.tenantEnableApprovalHooks = tenantState.tenantEnableApprovalHooks;\r\n this.enableRedaction = tenantState.enableRedaction;\r\n this.replaceFileNameWithGUID = tenantState.replaceFileNameWithGUID;\r\n this.disableFileRename = tenantState.disableFileRename;\r\n this.openDocumentsInClientApp = tenantState.openDocumentsInClientApp;\r\n this.enableSharing = tenantState.enableSharing;\r\n this.enableAdvSearchMultiSites = tenantState.enableAdvSearchMultiSites;\r\n this.disableAdvSearchContentTypes = tenantState.disableAdvSearchContentTypes;\r\n\r\n authModule.setTenantApiKey(tenantState.apiKey);\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearchStateManager.ts (getTenantInfo)\");\r\n }\r\n };\r\n\r\n setDatasourceFields(selectedSites: IKeyNamePair[], selectedLibraries: IKeyNamePair[]): void {\r\n this.datasourceFields = this.dataSourceItems\r\n .filter(item => this.checkDatasourceAllowed(selectedSites, selectedLibraries, item))\r\n .map(item => item.boundFields)\r\n .reduce((acc, current) => acc.concat(current), []);\r\n }\r\n\r\n private checkDatasourceAllowed(selectedSites: IKeyNamePair[], selectedLibraries: IKeyNamePair[], datasource: dataSourceItem): boolean {\r\n let siteAllowed: boolean = true;\r\n let libraryAllowed: boolean = true;\r\n\r\n if (datasource?.site\r\n && selectedSites?.length > 0\r\n && !datasource.site.split(\";\").some(site => selectedSites.some(selectedSite => selectedSite?.value?.trim() && site?.trim().toUpperCase() === selectedSite.value.trim().toUpperCase()))) {\r\n siteAllowed = false;\r\n }\r\n\r\n if (siteAllowed\r\n && datasource?.library\r\n && selectedLibraries?.length > 0\r\n && !datasource.library.split(\";\").some(library => selectedLibraries.some(selectedLibrary => selectedLibrary?.value?.trim() && library?.trim().toUpperCase() === selectedLibrary.value.trim().toUpperCase()))) {\r\n libraryAllowed = false;\r\n }\r\n\r\n return (siteAllowed && libraryAllowed);\r\n }\r\n}\r\n\r\nconst advancedSearchStateManager = new AdvancedSearchStateManager();\r\nexport default advancedSearchStateManager;","import { ISiteInfoUrl } from \"../src/taskpane/interfaces/ISiteInfo\";\r\nimport { logger } from \"../utilities/logger\";\r\nimport dayjs from \"dayjs\";\r\nimport { IUrlKeyNamePair } from \"../src/taskpane/interfaces/IUrlKeyNamePair\";\r\nimport { IAdvancedSearchFields } from \"../src/taskpane/interfaces/IAdvancedSearchFields\"\r\nimport { IDocUrlKeyNamePair } from \"../src/taskpane/interfaces/IDocUrlKeyNamePair\";\r\nimport { shared } from \"../src/taskpane/config/constants\";\r\nimport { IDocUrlDropdown } from \"../src/taskpane/interfaces/IDocUrlDropdown\";\r\nimport LZString = require(\"lz-string\");\r\nimport { StorageHelper } from \"../utilities/StorageHelper\";\r\n\r\ninterface ICacheLibrary extends IDocUrlDropdown {\r\n contentTypes: IDocUrlDropdown[];\r\n fields: IAdvancedSearchFields[];\r\n}\r\ninterface IAdvancedSearchSite extends ISiteInfoUrl {\r\n libraries: ICacheLibrary[];\r\n}\r\n\r\ninterface IAdvancedSearchCache {\r\n sites: IAdvancedSearchSite[];\r\n lastUpdate: Date;\r\n}\r\n\r\nexport class AdvancedSearchCacheHandler {\r\n private static readonly cacheKeyBase: string = \"@advancedSearchCache.\";\r\n private storageKey: string = AdvancedSearchCacheHandler.cacheKeyBase;\r\n private now: dayjs.Dayjs;\r\n private cache: IAdvancedSearchCache;\r\n\r\n constructor(accountId: string) {\r\n this.now = dayjs.utc();\r\n try {\r\n if (accountId) {\r\n this.storageKey = AdvancedSearchCacheHandler.cacheKeyBase + accountId;\r\n this.getLocalStorage();\r\n } else {\r\n this.cache = null;\r\n }\r\n } catch (error) {\r\n logger(error, \"advancedSearchUtils.ts (constructor)\")\r\n this.cache = null;\r\n }\r\n }\r\n\r\n public setAccountId = (accountId: string) => {\r\n this.storageKey = AdvancedSearchCacheHandler.cacheKeyBase + accountId;\r\n this.getLocalStorage();\r\n // this.getUsedLocalStorageSpace();\r\n }\r\n\r\n private getLocalStorage = () => {\r\n const compressedCache = localStorage.getItem(this.storageKey);\r\n const decompressedCache = compressedCache ? LZString.decompressFromUTF16(compressedCache) : null;\r\n this.cache = JSON.parse(decompressedCache);\r\n }\r\n\r\n public setCache = (sites: IAdvancedSearchSite[]) => {\r\n try {\r\n const cache: IAdvancedSearchCache = {\r\n sites,\r\n lastUpdate: this.now.toDate(),\r\n };\r\n this.cache = cache;\r\n\r\n const stringCache = JSON.stringify(cache);\r\n const compressedCache = LZString.compressToUTF16(stringCache);\r\n localStorage.setItem(this.storageKey, compressedCache);\r\n } catch (error) {\r\n logger(error, \"advancedSearchUtils.ts (setCache)\")\r\n }\r\n }\r\n\r\n public getCache = (): IAdvancedSearchCache => {\r\n return this.cache;\r\n }\r\n\r\n public shouldUpdateCache = (): boolean => {\r\n try {\r\n if (!this.cache || this.now.diff(this.cache.lastUpdate, \"day\") > 7) {\r\n //if cache does not exist OR if cache has expired, refresh cache\r\n return true;\r\n }\r\n return false;\r\n } catch (error) {\r\n logger(error, \"advancedSearchUtils.ts (shouldUpdateCache)\");\r\n return false;\r\n }\r\n }\r\n\r\n public getSiteAndSubsites = (siteId: string, hubId: string, enableMultiSites: boolean): ISiteInfoUrl[] => {\r\n const sites: ISiteInfoUrl[] = this.getSites();\r\n\r\n if (!siteId || enableMultiSites) {\r\n return sites;\r\n }\r\n\r\n let mainSite: ISiteInfoUrl = sites.find(site => site.id === siteId);\r\n if (mainSite) {\r\n mainSite = { ...mainSite, isSubsite: false };\r\n const subsites = hubId\r\n ? sites.filter(site => site.id !== mainSite.id)\r\n : sites.filter(site => site.id !== mainSite.id && ((site.isChannel && site.teamSiteId === mainSite.id) || site.webUrl.includes(mainSite.webUrl + '/')));\r\n const mappedSubsites = subsites.map(s => {\r\n return ({\r\n ...s,\r\n isSubsite: true\r\n })\r\n });\r\n return [mainSite, ...mappedSubsites];\r\n }\r\n\r\n return [];\r\n\r\n // let mainSite: ISiteInfoUrl = sites.find(site => site.id === siteId);\r\n // if (mainSite) {\r\n // mainSite = { ...mainSite, isSubsite: false };\r\n // const subsites = sites.filter(site => {\r\n // return (\r\n // site.id !== mainSite.id\r\n // && site.webUrl.includes(mainSite.webUrl + '/')\r\n // )\r\n // });\r\n // const mappedSubsites = subsites.map(s => {\r\n // return ({\r\n // ...s,\r\n // isSubsite: true\r\n // })\r\n // });\r\n // return [mainSite, ...mappedSubsites];\r\n // }\r\n\r\n // return [];\r\n }\r\n\r\n public getSites = (): ISiteInfoUrl[] => {\r\n let sites: ISiteInfoUrl[] = [];\r\n if (this.cache) {\r\n this.cache.sites?.forEach(site => sites = sites.concat(site));\r\n }\r\n return sites;\r\n }\r\n\r\n public setSites = (newSites: ISiteInfoUrl[]) => {\r\n const sites = this.getCache()?.sites ?? [];\r\n const newSitesCache: IAdvancedSearchSite[] = newSites.map(site => ({\r\n ...site,\r\n libraries: null,\r\n }));\r\n\r\n const newAndOldSites = newSitesCache.concat(sites);\r\n const isUnique = (new Set(newAndOldSites.map(s => s.id))).size === newAndOldSites.length;\r\n if (isUnique) {\r\n this.setCache(newAndOldSites);\r\n return;\r\n }\r\n\r\n // //if we have duplicates in the new and the old sites we need to remove the duplicates, keep the old info, but add the new ones\r\n // let updatedCacheSites: IAdvancedSearchSite[] = [];\r\n // newAndOldSites.forEach(site => {\r\n // const ids = updatedCacheSites.map(s => s.id);\r\n // if (!(ids.includes(site.id) && site.libraries === null)) {\r\n // updatedCacheSites.push(site);\r\n // }\r\n // });\r\n\r\n let unique = {};\r\n let distinct: IAdvancedSearchSite[] = [];\r\n for (let i = 0; i < newAndOldSites.length; i++) {\r\n if (!unique[newAndOldSites[i].id]) {\r\n distinct.push(newAndOldSites[i]);\r\n unique[newAndOldSites[i].id] = 1;\r\n }\r\n }\r\n\r\n this.setCache(distinct);\r\n }\r\n\r\n public getCachedLibraries = (selectedSites: IUrlKeyNamePair[]): IDocUrlDropdown[] => {\r\n let libraries: ICacheLibrary[] = [];\r\n const selectedSiteIds = selectedSites.map(site => site.siteId);\r\n this.cache.sites.forEach(site => {\r\n if (selectedSiteIds.includes(site.id)) {\r\n libraries = libraries.concat(site.libraries ?? []);\r\n }\r\n });\r\n let uniqueLibraries: ICacheLibrary[] = [];\r\n\r\n let libIds = libraries.map(lib => lib.driveId);\r\n const uniqueIds = new Set(libIds);\r\n uniqueIds.forEach(id => {\r\n uniqueLibraries.push(libraries.find(l => l.driveId === id));\r\n });\r\n\r\n if (uniqueLibraries.length != libraries.length) { //if we found duplicates, resave the library cache so that we don't have to do this unique-ify again\r\n // const uniqueDocUrlDropDown: IDocUrlDropdown[] = uniqueLibraries.map(lib => {\r\n // delete lib.fields;\r\n // return lib;\r\n // })\r\n this.setLibraries(selectedSites, uniqueLibraries);\r\n }\r\n\r\n return uniqueLibraries;\r\n }\r\n\r\n public sitesToUpdate = (currentSites: IUrlKeyNamePair[]): IUrlKeyNamePair[] => {\r\n if (this.cache) {\r\n const selectedIds: string[] = currentSites.map(s => s.siteId);\r\n const selectedCachedSites: IAdvancedSearchSite[] = this.cache.sites.filter(site => selectedIds.includes(site.id));\r\n const emptySites: IUrlKeyNamePair[] = selectedCachedSites.filter(site => !site.libraries).map(site => (\r\n { //see advanced search \"setInitialSelectedSite\" function for why this structure looks this way\r\n webUrl: site.webUrl,\r\n siteId: site.id,\r\n key: site.key,\r\n value: site.name,\r\n }\r\n ));\r\n return emptySites;\r\n } else {\r\n return currentSites;\r\n }\r\n }\r\n\r\n public setLibraries = (selectedSites: IUrlKeyNamePair[], libraries: IDocUrlDropdown[]) => {\r\n const selectedSiteIds = selectedSites.map(site => site.siteId);\r\n const newLibraries: ICacheLibrary[] = libraries.map(library => {\r\n return ({\r\n ...library,\r\n contentTypes: null,\r\n fields: null,\r\n })\r\n })\r\n\r\n const cachedSites: IAdvancedSearchSite[] = this.cache.sites.map(site => {\r\n if (selectedSiteIds.includes(site.id)) {\r\n return {\r\n ...site,\r\n libraries: newLibraries.filter(lib => lib.siteId === site.id),\r\n }\r\n } else {\r\n return site;\r\n }\r\n\r\n })\r\n\r\n this.setCache(cachedSites);\r\n return libraries;\r\n }\r\n\r\n private getLibraries = (): ICacheLibrary[] => {\r\n let libs: ICacheLibrary[] = [];\r\n this.cache.sites\r\n .filter(s => s.libraries !== null)\r\n .forEach(s => {\r\n libs = libs.concat(s.libraries);\r\n })\r\n\r\n return libs;\r\n }\r\n\r\n public getEmptyContentLibs = (currentLibs: IDocUrlKeyNamePair[]): IDocUrlDropdown[] => {\r\n let emptyCachedLibs: ICacheLibrary[] = this.getLibraries().filter(l => !l.contentTypes);\r\n const currentLibsIds = currentLibs.map(l => l.sharePointListId);\r\n emptyCachedLibs = emptyCachedLibs.filter(l => currentLibsIds.includes(l.sharePointListId));\r\n\r\n return emptyCachedLibs;\r\n }\r\n\r\n public getCachedContentTypes = (currentLibs: IDocUrlKeyNamePair[]): IDocUrlDropdown[] => {\r\n let cachedContent: IDocUrlDropdown[] = [];\r\n this.getLibraries()\r\n .filter(l => l.contentTypes)\r\n .forEach(l => {\r\n cachedContent = cachedContent.concat(l.contentTypes);\r\n })\r\n const currentLibsIds = currentLibs.map(l => l.sharePointListId);\r\n cachedContent = cachedContent.filter(l => currentLibsIds.includes(l.sharePointListId));\r\n\r\n return cachedContent;\r\n }\r\n\r\n public setContentTypeItems = (contentTypeItems: IDocUrlDropdown[]) => {\r\n let updatedLibraries: ICacheLibrary[] = this.getLibraries()\r\n .map(l => {\r\n const updatedContentType = contentTypeItems.filter(c => c.sharePointListId === l.sharePointListId);\r\n return ({\r\n ...l,\r\n contentTypes: updatedContentType.length > 0 ? updatedContentType : l.contentTypes\r\n })\r\n });\r\n const updatedSites: IAdvancedSearchSite[] = this.cache.sites.map(site => {\r\n const libsToUpdate = updatedLibraries.filter(l => l.siteId === site.id);\r\n return ({\r\n ...site,\r\n libraries: libsToUpdate.length > 0 ? libsToUpdate : site.libraries,\r\n })\r\n })\r\n\r\n this.setCache(updatedSites);\r\n }\r\n\r\n public getEmptyFieldsLibs = (currentLibs: IDocUrlKeyNamePair[]): IDocUrlKeyNamePair[] => {\r\n let emptyCachedLibs: ICacheLibrary[] = this.getLibraries().filter(l => !l.fields);\r\n const emptyLibsIds: string[] = emptyCachedLibs.map(l => l.sharePointListId);\r\n const emptySelectedLibs: IDocUrlKeyNamePair[] = currentLibs.filter(l => emptyLibsIds.includes(l.sharePointListId));\r\n\r\n return emptySelectedLibs;\r\n }\r\n\r\n public getCachedFields = (currentLibs: IDocUrlKeyNamePair[]): IAdvancedSearchFields[][] => {\r\n let cachedLibs: ICacheLibrary[] = this.getLibraries().filter(l => l.fields);\r\n const currentLibsIds = currentLibs.map(l => l.sharePointListId);\r\n const fields = cachedLibs.map(l => l.fields).filter(f => f?.length > 0 ? currentLibsIds.includes(f[0].sharePointListId) : false);\r\n return fields;\r\n }\r\n\r\n public setFields = (fields: IAdvancedSearchFields[][]) => {\r\n let updatedLibraries: ICacheLibrary[] = this.getLibraries()\r\n .map(l => {\r\n const fieldRefIndex = fields.findIndex(f => f[0].sharePointListId === l.sharePointListId);\r\n if (Number.isSafeInteger(fieldRefIndex)) {\r\n return ({\r\n ...l,\r\n fields: fields[fieldRefIndex],\r\n })\r\n }\r\n return ({\r\n ...l,\r\n fields: l.fields,\r\n })\r\n });\r\n\r\n const updatedSites: IAdvancedSearchSite[] = this.cache.sites.map(site => {\r\n const libsToUpdate = updatedLibraries.filter(l => l.siteId === site.id);\r\n return ({\r\n ...site,\r\n libraries: libsToUpdate.length > 0 ? libsToUpdate : site.libraries,\r\n })\r\n })\r\n this.setCache(updatedSites);\r\n }\r\n\r\n public clearCache = () => {\r\n localStorage.removeItem(this.storageKey);\r\n this.cache = null;\r\n }\r\n\r\n private getUsedLocalStorageSpace() {\r\n const stringStorage = localStorage.getItem(this.storageKey);\r\n const tmp = stringStorage ? ((stringStorage.length * 16) / (8 * 1024)) : 0;\r\n var space = tmp.toFixed(2);\r\n console.log(\"space used:\", space + \" KB\")\r\n };\r\n}\r\n\r\n// const params = new URLSearchParams(window.location.search);\r\n// const CacheHandler: AdvancedSearchCacheHandler = params.has(shared.params.accountId)\r\n// ? new AdvancedSearchCacheHandler(params.get(shared.params.accountId))\r\n// : new AdvancedSearchCacheHandler(\"\");\r\nconst CacheHandler: AdvancedSearchCacheHandler = new AdvancedSearchCacheHandler(StorageHelper.getItem(shared.params.accountId) ?? \"\");\r\nexport default CacheHandler;\r\n","import * as React from \"react\";\r\nimport { Panel, PrimaryButton, Stack, Persona, PersonaSize, ILabelStyles, FontSizes } from \"@fluentui/react\";\r\nimport authModule from \"../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../utilities/LocalizationModule\";\r\nimport { IAuthAccount } from \"../src/taskpane/interfaces/IAuthTokenResultDto\";\r\nimport { panelStyles } from \"../src/taskpane/config/controlStyles\";\r\n\r\ninterface MainHeadingProps {\r\n isOpen: boolean,\r\n closePanel: () => void,\r\n profilePicURL: string,\r\n}\r\n\r\nconst ProfilePanel: React.FunctionComponent = ({\r\n isOpen,\r\n closePanel,\r\n profilePicURL,\r\n}: MainHeadingProps) => {\r\n\r\n const [authAccount, setAuthAccount] = React.useState(null);\r\n\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n React.useEffect(() => {\r\n const setupAsyncWrapper = async () => {\r\n const account: IAuthAccount = await authModule.getAccount();\r\n setAuthAccount(account);\r\n };\r\n setupAsyncWrapper();\r\n }, []);\r\n\r\n return (\r\n closePanel()}\r\n >\r\n
\r\n
\r\n \r\n \r\n {\r\n authModule.clearPersistedAuthState();\r\n window.location.replace(process.env.baseUri + \"/auth.html\");\r\n }}\r\n allowDisabledFocus\r\n />\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst preferencesLabelStyle: ILabelStyles = {\r\n root: {\r\n fontSize: FontSizes.size18,\r\n lineHeight: \"24px\",\r\n }\r\n};\r\n\r\nexport default ProfilePanel;","import { CommandBar, ICommandBarStyles } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { ICommandBarMenuProps } from \"./MenuItems/useMenuItems\";\r\n\r\nconst commandBarStyle: Partial = {\r\n root: {\r\n borderTop: '1px solid rgb(237, 235, 233);',\r\n borderBottom: '1px solid rgb(237, 235, 233);',\r\n paddingLeft: 0,\r\n paddingRight: 10,\r\n paddingBottom: 3,\r\n paddingTop: 3\r\n }\r\n};\r\n\r\nexport interface IContentBodyCommandBarProps {\r\n commandBarMenu: ICommandBarMenuProps;\r\n}\r\n\r\nexport const ContentBodyCommandBar = ({ commandBarMenu }: IContentBodyCommandBarProps) => {\r\n return (\r\n \r\n )\r\n};","import { ConstrainMode, DetailsListLayoutMode, DetailsRow, IColumn, IDetailsFooterProps, IDetailsListProps, IDetailsListStyles, IDetailsRowStyles, IGroup, IGroupDividerProps, IGroupHeaderProps, IRenderFunction, IStyle, mergeStyleSets, ScrollablePane, ScrollbarVisibility, Selection, SelectionMode, ShimmeredDetailsList, Stack, StackItem, IStackStyles, Label, DetailsHeader, IDetailsRowProps, IDetailsList, ContextualMenu, IContextualMenuProps, DirectionalHint, Point, Sticky, StickyPositionType, IDragDropContext, MarqueeSelection } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { SearchOpenExtensionHelper } from \"../../src/taskpane/components/helpers/SearchOpenExtensionHelper\";\r\nimport NewFolderPanel from \"../../src/taskpane/components/panels/NewFolderPanel\";\r\nimport { ApprovalPanel, IFileApproval } from \"../../src/taskpane/components/_v2/components/Panels/ApprovalPanel/ApprovalPanel\";\r\nimport { useLazyGetItemWebUrlQuery } from \"../../src/taskpane/components/_v2/redux/api/graph/api-graph-slice\";\r\nimport { useLazyRenderListAsStreamByIDQuery } from \"../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { WebPanel } from \"../../src/taskpane/components/_v2/_shared/WebPanel/WebPanel\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { displayHeight, piiConfig, SharePointFolderContentTypeIds } from \"../../src/taskpane/config/constants\";\r\nimport { detailRowPiiDetectedStylesCM, detailRowPiiNotDetectedStylesCM, previewWebPanelStyles } from \"../../src/taskpane/config/controlStyles\";\r\nimport { ISearchOpenFileInfo } from \"../../src/taskpane/interfaces/ISearchOpenFileInfo\";\r\nimport authModule from \"../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { CMCheckinModal } from \"../Panels/CMCheckinModal\";\r\nimport { CMDeleteModal } from \"../Panels/CMDeleteModal\";\r\nimport { CMFileInfoPanel, InfoPanelMode } from \"../Panels/CMFileInfoPanel\";\r\nimport { CMFilePreviewPanel, MoveDirection, SearchSource } from \"../Panels/CMFilePreviewPanel\";\r\nimport { CMRenameModal } from \"../Panels/CMRenameModal\";\r\nimport { CMUploadFilesPanel } from \"../Panels/CMUploadFilesPanel\";\r\nimport { CMVersionHistoryModal } from \"../Panels/CMVersionHistoryModal\";\r\nimport { ContentBodyCommandBar } from \"./ContentBodyCommandBar\";\r\nimport { gridSelectedItems } from \"./ContentManagerBody\";\r\nimport { useContentManagerBody } from \"./useContentManagerBody\";\r\nimport { useMenuItems } from \"./MenuItems/useMenuItems\";\r\nimport { logger } from \"../../utilities/logger\";\r\nimport { CMErrorModal } from \"../Panels/CMErrorModal\";\r\nimport { CMVersionAppRejModal } from \"../Panels/CMVersionAppRejModal\";\r\nimport { CMFileFilterPanel } from \"../Panels/CMFileFilterPanel/CMFileFilterPanel\";\r\nimport { tryDecodeUriComponent } from \"../../utilities/EncodeDecode\";\r\nimport dayjs from \"dayjs\";\r\nimport utc from \"dayjs/plugin/utc\"; // import plugin\r\nimport { useMenuItem_QuickFilter } from \"./MenuItems/useMenuItem_QuickFilter\";\r\nimport { SharePointInputData } from \"../../src/taskpane/interfaces/props/SharePointInputData\";\r\nimport { IFileToUpload } from \"../../src/taskpane/interfaces/IFileToUpload\";\r\nimport { RootState } from \"../../src/taskpane/redux\";\r\nimport { resetContentManagerMoveTo, setContentManagerExchangeProgress, setContentManagerMoveTo, setContentManagerMoveToCopyJobResults, setContentManagerMoveToError, setContentManagerMoveToSelectedFilesIsBusyProgress, setContentManagerSearchValue, toggleContentManagerReload } from \"../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { CMMoveFilesListPanel } from \"../Panels/CMMoveFilesListPanel\";\r\nimport { CMConfirmModal } from \"../Panels/CMConfirmModal\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\nimport { createCopyJobs, getListSettings } from \"../../src/taskpane/services/SharePointRestServices\";\r\nimport { CMFileSharePanel, SharePanelMode } from \"../Panels/CMFileSharePanel\";\r\nimport { CMCancelAssignmentModal } from \"../Panels/Nintex/CMCancelAssignmentModal\";\r\nimport { setLastApprovalLoad } from \"../../src/taskpane/redux/modules/approvals\";\r\nimport { CMDuplicateFileVersionSelectorModal } from \"../Panels/CMDuplicateFileVersionSelectorModal\";\r\nimport { DraggableContainer } from \"../../src/taskpane/components/_v2/components/Explorer/FolderView/DraggableContainer\";\r\nimport { IPageSettings } from \"../../src/taskpane/interfaces/IPageSettings\";\r\nimport { addWorkingDirectory } from \"../../src/taskpane/redux/modules/workingDirectory\";\r\nimport generalModule from \"../../utilities/GeneralModule\";\r\nimport { DragAndDropHelper, DragMode } from \"../../utilities/DragAndDropHelper\";\r\nimport { addUploadedFiles } from \"../../src/taskpane/redux/modules/file\";\r\nimport { getListItemWebUrl } from \"../../src/taskpane/services/GraphService\";\r\nimport { SigningPanel } from \"../../src/taskpane/components/_v2/components/Panels/SigningPanel/SigningPanel\";\r\nimport { BackgroundTaskStatusEnum } from \"../../src/taskpane/components/enums/BackgroundTaskStatusEnum\";\r\nimport { CMFilesUpdatePanel } from \"../Panels/CMFilesUpdatePanel\";\r\nimport { NewDocumentTemplate } from \"../../src/taskpane/interfaces/IDocumentTemplate\";\r\nimport { DatasourceTypeEnum } from \"../../src/taskpane/components/enums/datasourceTypeEnum\";\r\nimport { CMNewLinkPanel } from \"../Panels/CMNewLinkPanel\";\r\nconst searchIconSrc = require(\"../../assets/empty_search.svg\");\r\ndayjs.extend(utc);\r\n\r\nconst classNames = {\r\n row: \"listRow\",\r\n optionButton: \"listRowOptionButton\",\r\n gripperIcon: \"gripperIcon\"\r\n};\r\n\r\nexport const detailsListClassNames = mergeStyleSets({\r\n wrapper: {\r\n height: displayHeight,\r\n position: \"relative\",\r\n },\r\n\r\n row: [classNames.row, {}],\r\n\r\n optionButton: [\r\n classNames.optionButton,\r\n {\r\n visibility: \"hidden\",\r\n display: \"none\",\r\n [`.${classNames.row}:hover &`]: {\r\n visibility: \"visible\",\r\n display: \"block\",\r\n },\r\n [`.${classNames.row}.is-selected &`]: {\r\n visibility: \"visible\",\r\n display: \"block\",\r\n },\r\n },\r\n ],\r\n\r\n gripperIcon: [\r\n classNames.gripperIcon,\r\n {\r\n visibility: \"hidden\",\r\n [`.${classNames.row}:hover &`]: {\r\n visibility: \"visible\"\r\n },\r\n [`.${classNames.row}.is-selected &`]: {\r\n visibility: \"visible\"\r\n },\r\n },\r\n ],\r\n});\r\n\r\nexport const detailListStyles: Partial = {\r\n root: {\r\n margin: \"0 0 0 0\",\r\n padding: \"0px\",\r\n MsOverflowStyle: \"scrollbar\"\r\n },\r\n headerWrapper: {\r\n paddingTop: 0\r\n }\r\n};\r\n\r\nconst noResultsStackStyles: Partial = {\r\n root: { width: \"100%\", height: \"calc(100vh - 250px)\", margin: 0, padding: 0, overflow: \"auto\" }\r\n};\r\n\r\nconst headerCountStyle: IStyle = { display: 'none' };\r\n\r\nexport interface IContentBodyFilesFoldersProps {\r\n}\r\n\r\nexport interface IGridColumn extends IColumn {\r\n internalName: string;\r\n}\r\n\r\nexport const ContentBodyFilesFolders = (props: IContentBodyFilesFoldersProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const tenantEnablePII = useSelector((state: RootState) => state.user.tenantEnablePII);\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const filterFields = useSelector((state: RootState) => state.contentManagerDirectory.filterFields);\r\n const moveToEnabled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.moveToEnabled);\r\n const moveToDirectory = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.workingDirectories.length > 0 ? state.contentManagerDirectory.moveTo.workingDirectories[state.contentManagerDirectory.moveTo.workingDirectories.length - 1] : null);\r\n const moveToIsMoveComplete = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.isMoveComplete);\r\n const moveToMode = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.mode);\r\n const moveTo = useSelector((state: RootState) => state.contentManagerDirectory.moveTo);\r\n const moveToSourceServerRelPath = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.sourceServerRelPath);\r\n const exchangeProgress = useSelector((state: RootState) => state.contentManagerDirectory.exchange.progress);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const mode = useSelector((state: RootState) => state.mode.mode);\r\n\r\n const [selectedItemInfo, setSelectedItemInfo] = React.useState(null);\r\n const [selectedItem, setSelectedItem] = React.useState();\r\n const [openContextMenu, setOpenContextMenu] = React.useState(false);\r\n const [contextualMenuProps, setContextualMenuProps] = React.useState();\r\n const [selectedItems, setSelectedItems] = React.useState({ items: [], count: 0 });\r\n const [selectionCleared, setSelectionCleared] = React.useState(false);\r\n const [waitFor, setWaitFor] = React.useState();\r\n const [waitForContext, setWaitForContext] = React.useState(languageStrings?.LoadingOnly)\r\n const [isCMCreateFolderPanelOpen, setIsCMCreateFolderPanelOpen] = React.useState(false);\r\n const [isCMCreateLinkPanelOpen, setIsCMCreateLinkPanelOpen] = React.useState(false);\r\n const [isCMUploadFilesPanelOpen, setIsCMUploadFilesPanelOpen] = React.useState(false);\r\n const [showRenameDialog, setShowRenameDialog] = React.useState(false);\r\n const [isCMFileInfoPanelOpen, setIsCMFileInfoPanelOpen] = React.useState(false);\r\n const [infoPanelMode, setInfoPanelMode] = React.useState();\r\n const [isApprovalsPanelOpen, setIsApprovalsPanelOpen] = React.useState(false);\r\n const [isSigninPanelOpen, setIsSigningPanelOpen] = React.useState(false);\r\n const [approvalFiles, setApprovalFiles] = React.useState([]);\r\n const [showDeleteDialog, setShowDeleteDialog] = React.useState(false);\r\n const [showCancelAssignmentDialog, setShowCancelAssignmentDialog] = React.useState(false);\r\n const [showVersionHistoryDialog, setShowVersionHistoryDialog] = React.useState(false);\r\n const [showDuplicateFileVersionSelectorModal, setShowDuplicateFileVersionSelectorModal] = React.useState(false);\r\n const [isPublish, setIsPublish] = React.useState(false);\r\n const [showCheckinDialog, setShowCheckinDialog] = React.useState(false);\r\n const [isCMFilePreviewPanelOpen, setIsCMFilePreviewPanelOpen] = React.useState(false);\r\n const [isCMVersionAppRejModalOpen, setIsCMVersionAppRejModalOpen] = React.useState(false);\r\n const [isCMErrorModalOpen, setIsCMErrorModalOpen] = React.useState(false);\r\n const [errorMessage, setErrorMessage] = React.useState('');\r\n const [isCMFileFilterPanelOpen, setIsCMFileFilterPanelOpen] = React.useState(false);\r\n const [isCMFileSharePanelOpen, setIsCMFileSharePanelOpen] = React.useState(false);\r\n const [isCMMoveFilesListPanelOpen, setIsCMMoveFilesListPanelOpen] = React.useState(false);\r\n const [selectedNewDocumentTemplate, setSelectedNewDocumentTemplate] = React.useState();\r\n const [quickFilterValue, setQuickFilterValue] = React.useState(\"\");\r\n const [showConfirmMoveToDialog, setShowConfirmMoveToDialog] = React.useState(false);\r\n const [isBusyCreatingMoveToJobQue, setIsBusyCreatingMoveToJobQue] = React.useState(false);\r\n const [htmlConfirmMessage, setHtmlConfirmMessage] = React.useState();\r\n const [isMarqueeEnabled, setIsMarqueeEnabled] = React.useState(true);\r\n\r\n const [renderListAsStreamByID] = useLazyRenderListAsStreamByIDQuery();\r\n const [getItemWebUrl] = useLazyGetItemWebUrlQuery();\r\n\r\n const mousePosition = React.useRef();\r\n const detailsListRef = React.useRef();\r\n const focusZoneRef = React.useRef();\r\n const isInOneDrive = React.useRef(false);\r\n const _selection = React.useRef(new Selection({\r\n onSelectionChanged: () => getSelectionDetails()\r\n }));\r\n const masterIdsRemoved = React.useRef([]);\r\n\r\n const getSelectionDetails = () => {\r\n const filteredSelectedItems = _selection.current.getSelection().filter(x => x);\r\n\r\n setSelectedItems({ items: filteredSelectedItems, count: filteredSelectedItems ? filteredSelectedItems.length : 0 });\r\n\r\n if (filteredSelectedItems?.length === 1) {\r\n let selectedItem: any = filteredSelectedItems[0];\r\n setSelectedItemInfo(SearchOpenExtensionHelper.determineOfficeFileType(selectedItem[\".fileType\"]));\r\n setSelectedItem(selectedItem);\r\n } else {\r\n setSelectedItemInfo(null);\r\n setSelectedItem(null);\r\n }\r\n }\r\n\r\n const fileInputRef = React.useRef();\r\n const folderInputRef = React.useRef();\r\n\r\n React.useEffect(() => {\r\n if (focusZoneRef.current) {\r\n focusZoneRef.current.addEventListener(\"mouseenter\", handleMouseEnter);\r\n focusZoneRef.current.addEventListener(\"mouseleave\", handleMouseLeave);\r\n }\r\n\r\n return () => {\r\n if (focusZoneRef.current) {\r\n focusZoneRef.current.removeEventListener(\"mouseenter\", handleMouseEnter);\r\n focusZoneRef.current.removeEventListener(\"mouseleave\", handleMouseLeave);\r\n }\r\n };\r\n }, []);\r\n\r\n const sharePanelModeRef = React.useRef(SharePanelMode.Share);\r\n const openSharePanel = React.useCallback((mode: SharePanelMode) => {\r\n sharePanelModeRef.current = mode;\r\n setIsCMFileSharePanelOpen(true);\r\n }, []);\r\n\r\n const pickFiles = React.useCallback(() => {\r\n fileInputRef.current?.click();\r\n }, [fileInputRef.current]);\r\n\r\n const pickFolder = React.useCallback(() => {\r\n folderInputRef.current?.click();\r\n }, [folderInputRef.current]);\r\n\r\n const handleSelectedFiles = React.useCallback((event: React.ChangeEvent) => {\r\n const filesToUpload: IFileToUpload[] = DragAndDropHelper.handleSelectedFiles(event);\r\n if (filesToUpload?.length > 0) {\r\n dispatch(addUploadedFiles(filesToUpload));\r\n setIsCMUploadFilesPanelOpen(true);\r\n }\r\n (event.target as HTMLInputElement).value = null;\r\n }, []);\r\n\r\n const handleMouseEnter = React.useCallback((ev: any) => {\r\n setIsMarqueeEnabled(false);\r\n }, []);\r\n\r\n const handleMouseLeave = React.useCallback((ev: any) => {\r\n setIsMarqueeEnabled(true);\r\n }, []);\r\n\r\n const triggerContextMenu = (ev: any, position?: Point) => {\r\n mousePosition.current = position ? position : { left: ev.clientX, top: ev.clientY };\r\n setOpenContextMenu(true);\r\n }\r\n\r\n const setGridItemIsBusy = (items: any[], isBusy: boolean) => {\r\n const newGridProps = { ...gridProps };\r\n let newRows = [];\r\n newGridProps.items.forEach(gridItem => {\r\n let foundItem = false;\r\n items.forEach(item => {\r\n if (!foundItem && gridItem && gridItem.ID === item.ID) {\r\n newRows.push({ ...item, isBusy });\r\n foundItem = true;\r\n }\r\n });\r\n if (!foundItem) {\r\n newRows.push(gridItem);\r\n }\r\n });\r\n\r\n newGridProps.items = [...newRows];\r\n\r\n setGridProps(newGridProps);\r\n }\r\n\r\n const updateGridItems = async (items: any[]) => {\r\n let serverRelativePath = '';\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath) {\r\n serverRelativePath = currentDirectory?.serverRelativePath;\r\n }\r\n else if (currentDirectory?.directory?.length > 0 && currentDirectory?.parentId) {\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n const results = await getItemWebUrl({ driveId, itemId: currentDirectory?.id, accessToken: await authModule.getGraphAccessToken() }).unwrap();\r\n serverRelativePath = tryDecodeUriComponent(new URL(results.listItem?.webUrl || results.webUrl).pathname);\r\n }\r\n\r\n const updatedItems: any[] = await Promise.all(items.map(async item => {\r\n return renderListAsStreamByID({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n viewId: selectedView?.Id,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n Id: item.ID,\r\n serverRelativePath\r\n }).unwrap();\r\n }));\r\n\r\n const newGridProps = { ...gridProps };\r\n\r\n const newRows = [];\r\n newGridProps.items.forEach(item => {\r\n let foundItem = false;\r\n updatedItems.forEach(updatedItem => {\r\n if (!foundItem && item && item.ID === updatedItem.ListData.Row[0].ID) {\r\n newRows.push({ ...updatedItem.ListData.Row[0], isBusy: false });\r\n setSelectedItem({ ...updatedItem.ListData.Row[0], isBusy: false });\r\n foundItem = true\r\n }\r\n });\r\n\r\n if (!foundItem) {\r\n newRows.push(item);\r\n }\r\n });\r\n\r\n newGridProps.items = [...newRows];\r\n setGridProps({ ...newGridProps, items: [...newGridProps.items] });\r\n getSelectionDetails();\r\n }\r\n\r\n // const nintexDialogRef = React.useRef();\r\n const [isReloadWatcherActive, setIsReloadWatcherActive] = React.useState(false);\r\n const openCreateTemplateModal = (selectedTemplate: NewDocumentTemplate) => {\r\n setSelectedNewDocumentTemplate(selectedTemplate);\r\n\r\n if (selectedTemplate?.contentTypeId === \"0x0120D520006AAF2894D132DC4490C0776F6D6D2CA40035E1CF0A0F777246BCE4531413CFCF86\") {\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n const winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n const winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n const height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n const left = Math.max(0, ((width / 2) - (600 / 2)) + winLeft);\r\n const top = Math.max(0, ((height / 2) - (800 / 2)) + winTop);\r\n\r\n //const nintexFormUrl: URL = new URL(\"https://xblox-574017.workflowcloud.com/forms/be3952f0-9079-4612-b518-9d5cf947b8f6\");\r\n const nintexFormUrl: URL = new URL(\"https://xblox-574017.workflowcloud.com/forms/17f995a0-fbab-4cef-b89b-0c0e0b2a8f0a\");\r\n // nintexDialogRef.current = window.open(nintexFormUrl.href, \"Docubird.Nintex\", `width=615, height=800, top=${top}, left=${left}, scrollbars=yes`);\r\n\r\n const nintexWin = window.open(nintexFormUrl.href, \"Docubird.Nintex\", `width=615, height=800, top=${top}, left=${left}, scrollbars=yes`);\r\n\r\n // const reloadInterval: number = 25000;\r\n // const reloadLimit: number = 2;\r\n // const timer = setInterval(() => {\r\n // if (nintexWin.closed) {\r\n // clearInterval(timer);\r\n // let x = 0;\r\n // let timeOutId = setTimeout(function reload() {\r\n // // dispatch(toggleReload());\r\n // if (++x === reloadLimit) {\r\n // clearTimeout(timeOutId);\r\n // } else {\r\n // timeOutId = setTimeout(reload, reloadInterval);\r\n // }\r\n // }, reloadInterval);\r\n // }\r\n // }, 1000);\r\n const intervalId = setInterval(() => {\r\n if (nintexWin.closed) {\r\n clearInterval(intervalId);\r\n setIsReloadWatcherActive(true);\r\n }\r\n }, 1000);\r\n\r\n } else if (selectedTemplate?.templateId === \"NewFolder\" || selectedTemplate?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)) {\r\n setIsCMCreateFolderPanelOpen(true);\r\n } else if (selectedTemplate?.templateId === \"NewLink\") {\r\n setIsCMCreateLinkPanelOpen(true);\r\n } else if (workingDirectories?.some(x => x.type === ComponentTypes.SharePointList)) {\r\n setIsCMUploadFilesPanelOpen(true);\r\n }\r\n else {\r\n setInfoPanelMode(InfoPanelMode.NewTemplate);\r\n setIsCMFileInfoPanelOpen(true);\r\n }\r\n }\r\n\r\n const openFilePreviewFromLink = (item: any) => {\r\n setSelectedItem({ ...item });\r\n setIsCMFilePreviewPanelOpen(true);\r\n }\r\n\r\n const openFileInfoPanel = React.useCallback((itemIndex: number) => {\r\n _selection.current.setAllSelected(false);\r\n _selection.current.setIndexSelected(itemIndex, true, true);\r\n setInfoPanelMode(InfoPanelMode.Update);\r\n setIsCMFileInfoPanelOpen(true);\r\n }, []);\r\n\r\n const [pdfConvertIsDuplicate, setPdfConvertIsDuplicate] = React.useState(false);\r\n const [pdfConvertShowVersion, setPdfConvertShowVersion] = React.useState(false);\r\n\r\n const openDuplicateFileVersionSelectorModal = (isDuplicate: boolean, showVersion: boolean) => {\r\n setPdfConvertIsDuplicate(isDuplicate);\r\n setPdfConvertShowVersion(showVersion);\r\n setShowDuplicateFileVersionSelectorModal(true);\r\n }\r\n\r\n const {\r\n isFetchingData,\r\n gridProps,\r\n viewsWithColumns,\r\n selectedView,\r\n scrollToTopToggle,\r\n isAllCollapsedRef,\r\n serverRelPath,\r\n folderPath,\r\n newDocumentTemplates,\r\n libraryMinVerEnabled,\r\n listTitle,\r\n listFields,\r\n setSelectedView,\r\n fetchGroupedDrillDownData,\r\n fetchGroupedDrillDownDataAllGroups,\r\n onSortColumn,\r\n reloadGrid,\r\n fetchListStreamNextPage,\r\n setGridProps,\r\n setIsFetchingData\r\n } = useContentManagerBody(triggerContextMenu, openFilePreviewFromLink, openFileInfoPanel);\r\n\r\n const { menuItem_QuickFilter, resetQuickFilterValue } = useMenuItem_QuickFilter(setQuickFilterValue);\r\n\r\n const { contextMenu, commandBarMenu, deleteSuccess } = useMenuItems(\r\n mode,\r\n selectedItems.items,\r\n waitFor,\r\n setWaitFor,\r\n waitForContext,\r\n setWaitForContext,\r\n isInOneDrive.current,\r\n listFields,\r\n selectedItemInfo,\r\n setIsCMCreateFolderPanelOpen,\r\n setIsCMUploadFilesPanelOpen,\r\n setShowRenameDialog,\r\n setIsCMFileInfoPanelOpen,\r\n setInfoPanelMode,\r\n setApprovalFiles,\r\n setIsApprovalsPanelOpen,\r\n setShowDeleteDialog,\r\n setShowVersionHistoryDialog,\r\n setIsPublish,\r\n setShowCheckinDialog,\r\n gridProps,\r\n setGridProps,\r\n setSelectedItems,\r\n setIsCMFilePreviewPanelOpen,\r\n setSelectionCleared,\r\n setGridItemIsBusy,\r\n updateGridItems,\r\n viewsWithColumns,\r\n selectedView,\r\n setSelectedView,\r\n setIsCMErrorModalOpen,\r\n setErrorMessage,\r\n setIsCMVersionAppRejModalOpen,\r\n setIsCMFileFilterPanelOpen,\r\n newDocumentTemplates,\r\n openCreateTemplateModal,\r\n quickFilterValue,\r\n gridProps?.items?.length > 0 && selectedItems.count === 0 && menuItem_QuickFilter,\r\n setIsCMMoveFilesListPanelOpen,\r\n setShowConfirmMoveToDialog,\r\n isFetchingData,\r\n openSharePanel,\r\n setShowCancelAssignmentDialog,\r\n libraryMinVerEnabled,\r\n openDuplicateFileVersionSelectorModal,\r\n reloadGrid,\r\n pickFiles,\r\n pickFolder,\r\n setIsSigningPanelOpen\r\n );\r\n\r\n React.useEffect(() => {\r\n if (moveTo.busyMovingFiles\r\n && moveTo.sourceDirectory?.id\r\n && currentDirectory?.id\r\n && moveTo.sourceDirectory.id === currentDirectory.id\r\n && moveTo.copyJobResultsCompletedIds?.length > 0) {\r\n\r\n let filteredList = moveTo.copyJobResultsCompletedIds?.filter(id => !masterIdsRemoved.current.includes(id));\r\n if (filteredList?.length > 0) {\r\n masterIdsRemoved.current.push(...moveTo.copyJobResultsCompletedIds);\r\n if (gridProps?.items?.length > 0) {\r\n const newRows: any[] = [];\r\n\r\n gridProps.items.forEach((item) => {\r\n //check for virtual scrolling null item\r\n if (item) {\r\n const shouldRemoveItemFromGrid = filteredList.includes(item.UniqueId?.toLowerCase().replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (!shouldRemoveItemFromGrid) {\r\n newRows.push(item);\r\n }\r\n }\r\n });\r\n\r\n setGridProps({ ...gridProps, items: [...newRows] });\r\n }\r\n }\r\n }\r\n }, [moveTo.busyMovingFiles, moveTo.copyJobResultsCompletedIds, moveTo.sourceDirectory, currentDirectory, gridProps]);\r\n\r\n React.useEffect(() => {\r\n if (currentDirectory) {\r\n isInOneDrive.current = currentDirectory.type == ComponentTypes.OneDrive || currentDirectory.type == ComponentTypes.OneDriveSubFolder;\r\n DragAndDropHelper.destinationDirectory = currentDirectory;\r\n if (generalModule.getOpenPanelUploadPanel()) {\r\n generalModule.setOpenPanelUploadPanel(false);\r\n setIsCMUploadFilesPanelOpen(true);\r\n }\r\n }\r\n }, [currentDirectory]);\r\n\r\n const reloadTimoutId = React.useRef();\r\n const stopReloadWatcher = () => {\r\n if (reloadTimoutId.current) {\r\n clearTimeout(reloadTimoutId.current);\r\n reloadTimoutId.current = null;\r\n }\r\n setIsReloadWatcherActive(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n const reloadInterval: number = 10000;\r\n const reloadLimit: number = 3;\r\n if (isReloadWatcherActive) {\r\n let x = 0;\r\n reloadTimoutId.current = setTimeout(function reload() {\r\n reloadGrid();\r\n if (++x === reloadLimit) {\r\n clearTimeout(reloadTimoutId.current);\r\n stopReloadWatcher();\r\n } else {\r\n reloadTimoutId.current = setTimeout(reload, reloadInterval);\r\n }\r\n }, reloadInterval);\r\n }\r\n else if (reloadTimoutId?.current) {\r\n stopReloadWatcher();\r\n }\r\n\r\n return () => {\r\n if (reloadTimoutId?.current) {\r\n stopReloadWatcher();\r\n }\r\n }\r\n }, [currentDirectory, isReloadWatcherActive]);\r\n\r\n // React.useEffect(() => {\r\n // if (!isFetchingData && selectedItems.items?.length === 0 && moveToEnabled && currentDirectory.id === moveToDirectory?.id && (moveToMode === ContentManagerCopyMoveModeEnum.Copy || moveToMode === ContentManagerCopyMoveModeEnum.Move)) {\r\n // //browsing back to move/copy source directory - reselecting items\r\n // const moveToSelectedItems: any[] = [];\r\n\r\n // gridProps?.items?.forEach((item, index) => {\r\n // const fileSelected = moveTo.selectedFiles.find(x => x.UniqueId === item?.UniqueId);\r\n // if (fileSelected) {\r\n // _selection.current.setIndexSelected(index, true, false);\r\n // moveToSelectedItems.push({ ...fileSelected });\r\n // }\r\n // });\r\n\r\n // getSelectionDetails();\r\n // }\r\n // }, [selectedItems?.items, isFetchingData, moveToEnabled, currentDirectory, moveToDirectory]);\r\n\r\n React.useEffect(() => {\r\n if (!isBusySaving) {\r\n reloadGrid();\r\n }\r\n }, [isBusySaving]);\r\n\r\n React.useEffect(() => {\r\n DragAndDropHelper.canCreateFolder = currentSharepointFolder.canCreateFolder;\r\n }, [currentSharepointFolder.canCreateFolder]);\r\n\r\n React.useEffect(() => {\r\n if (moveToIsMoveComplete) {\r\n masterIdsRemoved.current = [];\r\n }\r\n if (moveToIsMoveComplete && moveTo.destinationDirectory?.id === currentDirectory?.id) {\r\n reloadGrid();\r\n }\r\n }, [moveToIsMoveComplete, moveTo.destinationDirectory, currentDirectory]);\r\n\r\n React.useEffect(() => {\r\n if (moveToIsMoveComplete && moveTo.sourceDirectory?.id === currentDirectory?.id) {\r\n setSelectionCleared(true);\r\n }\r\n }, [moveToIsMoveComplete, moveTo.sourceDirectory, currentDirectory]);\r\n\r\n React.useEffect(() => {\r\n if (openContextMenu) {\r\n const menuProps: IContextualMenuProps = {\r\n target: mousePosition.current,\r\n directionalHint: DirectionalHint.rightTopEdge,\r\n directionalHintFixed: true,\r\n items: contextMenu,\r\n onDismiss: () => {\r\n setOpenContextMenu(false);\r\n setContextualMenuProps(undefined);\r\n },\r\n };\r\n setContextualMenuProps(menuProps);\r\n }\r\n }, [openContextMenu, contextMenu]);\r\n\r\n React.useEffect(() => {\r\n detailsListRef?.current?.scrollToIndex(0);\r\n }, [scrollToTopToggle]);\r\n\r\n React.useEffect(() => {\r\n if (selectionCleared) {\r\n _selection.current.setAllSelected(false);\r\n setSelectedItems({ items: _selection.current.getSelection(), count: _selection.current.getSelectedCount() });\r\n setSelectedItem(null);\r\n setSelectionCleared(false);\r\n }\r\n }, [selectionCleared]);\r\n\r\n React.useEffect(() => {\r\n if (exchangeProgress && exchangeProgress.status === BackgroundTaskStatusEnum.Completed && !isCMMoveFilesListPanelOpen) {\r\n dispatch(setContentManagerExchangeProgress(undefined));\r\n }\r\n else if (!moveTo.busyFetchingFiles && !moveTo.busyMovingFiles && !isCMMoveFilesListPanelOpen) {\r\n dispatch(setContentManagerMoveTo({ isMoveInProgress: false }));\r\n }\r\n }, [exchangeProgress, isCMMoveFilesListPanelOpen, moveTo.busyFetchingFiles, !moveTo.busyMovingFiles]);\r\n\r\n const onColumnHeaderClicked = (ev?: React.MouseEvent, column?: IGridColumn) => {\r\n onSortColumn(column, quickFilterValue ? true : false);\r\n }\r\n\r\n const onRenderHeader = (headerProps: IGroupDividerProps, defaultRender: IRenderFunction) => {\r\n return (\r\n \r\n {defaultRender(\r\n {\r\n ...headerProps,\r\n styles: { headerCount: headerCountStyle }\r\n })}\r\n \r\n );\r\n }\r\n\r\n const onGroupToggle = (group: IGroup) => {\r\n if (!group.children && group.count === 0) {\r\n fetchGroupedDrillDownData(group);\r\n }\r\n }\r\n\r\n const _onRenderDetailsFooter = (detailsFooterProps: IDetailsFooterProps): JSX.Element => {\r\n return (\r\n <>\r\n {!isFetchingData && gridProps?.items.length === 0 && gridProps?.groups.length === 0 && \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n }\r\n\r\n const _onRenderRow: IDetailsListProps['onRenderRow'] = rowProps => {\r\n const privacySensitive = rowProps.item[piiConfig.privacySentitiveColumnName];\r\n const privacySensitiveData = rowProps.item[piiConfig.privacySentitiveDataColumnName];\r\n\r\n let rowStyles: Partial = {\r\n cell: {\r\n display: \"inline-flex\",\r\n alignItems: \"center\"\r\n },\r\n checkCell: {\r\n height: \"100%\"\r\n }\r\n };\r\n\r\n if (tenantEnablePII && privacySensitive !== undefined) {\r\n if (privacySensitive === 'True' || privacySensitive === 'Yes') {\r\n rowStyles = { ...detailRowPiiDetectedStylesCM }\r\n }\r\n else if (privacySensitiveData === \"-\") {\r\n rowStyles = { ...detailRowPiiNotDetectedStylesCM }\r\n }\r\n }\r\n\r\n return (\r\n setIsFetchingData(true)}\r\n onDropAfterFiles={(selectedGridItems?: any[]) => onGridItemDrop(rowProps.item, true, selectedGridItems)}\r\n onDragHover={() => onGridItemDrop(rowProps.item, false)}\r\n gridItem={rowProps.item}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n const _onRenderDetailsHeader: IDetailsListProps['onRenderDetailsHeader'] = props => {\r\n if (props) {\r\n const listRef = detailsListRef?.current as any;\r\n return \r\n !x.isCollapsed)} />\r\n ;\r\n }\r\n return null;\r\n }\r\n\r\n const onRenderCustomPlaceholder = (rowProps: IDetailsRowProps, index?: number, defaultRender?: (props: IDetailsRowProps) => React.ReactNode) => {\r\n if (rowProps.item === null) {\r\n fetchListStreamNextPage();\r\n }\r\n return defaultRender(rowProps);\r\n }\r\n\r\n const onToggleCollapseAll = async (isAllCollapsed: boolean) => {\r\n if (!isAllCollapsed) {\r\n const groupingCount = gridProps.groupProps.names.length;\r\n if (groupingCount === 1) {\r\n await fetchGroupedDrillDownDataAllGroups();\r\n }\r\n }\r\n\r\n isAllCollapsedRef.current = isAllCollapsed;\r\n }\r\n\r\n const metaDataUpdated = async (item: any, inputValuesToSave: SharePointInputData[], selectedContentTypeId: string, extention?: string, replacementFile?: IFileToUpload) => {\r\n try {\r\n if (infoPanelMode === InfoPanelMode.NewTemplate) {\r\n reloadGrid();\r\n setInfoPanelMode(null);\r\n setIsCMFileInfoPanelOpen(false);\r\n setSelectedNewDocumentTemplate(null);\r\n return;\r\n }\r\n\r\n if (infoPanelMode === InfoPanelMode.Replace && replacementFile && replacementFile.extension !== extention) {\r\n reloadGrid();\r\n setInfoPanelMode(null);\r\n setIsCMFileInfoPanelOpen(false);\r\n return;\r\n }\r\n\r\n let serverRelativePath = '';\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath) {\r\n serverRelativePath = currentDirectory?.serverRelativePath;\r\n }\r\n else if (currentDirectory?.directory?.length > 0 && currentDirectory?.parentId) {\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n const results = await getItemWebUrl({ driveId, itemId: currentDirectory?.id, accessToken: await authModule.getGraphAccessToken() }).unwrap();\r\n serverRelativePath = tryDecodeUriComponent(new URL(results.listItem?.webUrl || results.webUrl).pathname);\r\n }\r\n\r\n setInfoPanelMode(null);\r\n setIsCMFileInfoPanelOpen(false);\r\n setSelectedNewDocumentTemplate(null);\r\n setShowRenameDialog(false);\r\n let listStreamByID = await renderListAsStreamByID({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n viewId: selectedView?.Id,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n Id: selectedItem.ID,\r\n serverRelativePath\r\n }).unwrap();\r\n\r\n if (listStreamByID.ListData?.Row?.length > 0) {\r\n const newGridProps = { ...gridProps };\r\n\r\n const newRows = [];\r\n newGridProps.items.forEach(item => {\r\n if (item && item.ID === listStreamByID.ListData.Row[0].ID) {\r\n newRows.push(listStreamByID.ListData.Row[0]);\r\n setSelectedItem({ ...listStreamByID.ListData.Row[0] });\r\n } else {\r\n newRows.push(item);\r\n }\r\n });\r\n\r\n setSelectedItems({ items: [listStreamByID.ListData.Row[0]], count: 1 });\r\n\r\n newGridProps.items = [...newRows];\r\n setGridProps(newGridProps);\r\n }\r\n else {\r\n reloadGrid();\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodyFilesFolders.tsx (metaDataUpdated)\");\r\n }\r\n }\r\n\r\n const onFolderCreated = () => {\r\n setIsCMCreateFolderPanelOpen(false);\r\n setSelectedNewDocumentTemplate(null);\r\n reloadGrid();\r\n }\r\n\r\n const onDeleteCloseSuccess = (successIds: string[], hasError: boolean) => {\r\n deleteSuccess(successIds)\r\n\r\n if (hasError) {\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(languageStrings.ErrorDeletingFiles);\r\n }\r\n }\r\n\r\n const onCancelAssignmentSuccess = (hasError: boolean) => {\r\n setShowCancelAssignmentDialog(false)\r\n\r\n if (hasError) {\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(languageStrings.ErrorDeletingFiles);\r\n } else {\r\n reloadGrid();\r\n setTimeout(() => {\r\n dispatch(setLastApprovalLoad());\r\n }, 3000);\r\n }\r\n }\r\n\r\n const quickFilterPredicate = React.useCallback((result: any) => {\r\n if (result === undefined || result === null) {\r\n // Limit continuous auto paging to a max of 300 items\r\n return gridProps?.items?.length > 1 && gridProps.items.length < 300;\r\n }\r\n else {\r\n const resultProperties = Object.keys(result);\r\n return resultProperties.some(property => {\r\n return quickFilterPropValPredicate(result, property);\r\n });\r\n }\r\n }, [gridProps, filterFields, quickFilterValue]);\r\n\r\n const quickFilterPropValPredicate = React.useCallback((result: any, property: any) => {\r\n try {\r\n const propertyField: any = filterFields?.find(field => field.RealFieldName?.toLowerCase() === property.toLowerCase());\r\n const propertyType: string = propertyField?.FieldType ?? propertyField?.Type;\r\n let propertyValue: string;\r\n if (propertyType) {\r\n switch (propertyType) {\r\n case \"DateTime\":\r\n case \"DateOnly\":\r\n propertyValue = result[property] ? dayjs(result[property]).utc().local().format(\"L LT\")?.toLowerCase() : null;\r\n break;\r\n\r\n case \"User\":\r\n case \"UserMulti\":\r\n propertyValue = Array.isArray(result[property]) ? result[property].map(item => item?.title?.toLowerCase())?.join(\";\") : null;\r\n break;\r\n\r\n case \"TaxonomyFieldType\":\r\n propertyValue = result[property]?.Label?.toLowerCase();\r\n break;\r\n\r\n case \"TaxonomyFieldTypeMulti\":\r\n propertyValue = Array.isArray(result[property]) ? result[property].map(item => item?.Label?.toLowerCase())?.join(\";\") : null;\r\n break;\r\n\r\n case \"MultiChoice\":\r\n propertyValue = Array.isArray(result[property]) ? result[property].map(item => item?.toString()?.toLowerCase())?.join(\";\") : null;\r\n break;\r\n\r\n case \"LookupMulti\":\r\n propertyValue = Array.isArray(result[property]) ? result[property].map(item => item?.lookupValue?.toLowerCase())?.join(\";\") : null;\r\n break;\r\n\r\n default:\r\n propertyValue = result[property]?.toString().toLowerCase();\r\n break;\r\n }\r\n }\r\n return propertyValue?.includes(quickFilterValue.toLowerCase());\r\n } catch (error) {\r\n // Do not log to generic logger as it may flood the db.\r\n console.error(error);\r\n }\r\n return true;\r\n }, [filterFields, quickFilterValue]);\r\n\r\n const onConfirmMoveFiles = async (isSaving: boolean) => {\r\n if (!isSaving) {\r\n let progressCountTotal = moveTo.selectedFiles ? moveTo.selectedFiles.length : 0;\r\n if (moveToMode === ContentManagerCopyMoveModeEnum.CopyAll || moveToMode === ContentManagerCopyMoveModeEnum.MoveAll) {\r\n if (folderPath?.length === 0) {\r\n const settings = await getListSettings(isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(), moveTo.sourceSiteUrl, currentDirectory.sharePointListId);\r\n progressCountTotal = settings.ItemCount;\r\n } else {\r\n progressCountTotal = gridProps?.items?.length\r\n }\r\n }\r\n\r\n dispatch(setContentManagerMoveTo({\r\n moveToEnabled: true,\r\n sourceServerRelPath: serverRelPath,\r\n progressCountTotal\r\n }));\r\n setShowConfirmMoveToDialog(false);\r\n }\r\n else if (moveToMode === ContentManagerCopyMoveModeEnum.CopyAll || moveToMode === ContentManagerCopyMoveModeEnum.MoveAll) {\r\n const siteUrl = isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n\r\n dispatch(setContentManagerMoveTo({\r\n siteUrl,\r\n isMoveInProgress: true,\r\n busyFetchingFiles: true,\r\n destinationServerRelPath: serverRelPath,\r\n destinationDirectory: currentDirectory\r\n }));\r\n setShowConfirmMoveToDialog(false);\r\n dispatch(setContentManagerMoveToSelectedFilesIsBusyProgress([], true));\r\n setIsCMMoveFilesListPanelOpen(true);\r\n }\r\n else {\r\n try {\r\n const siteUrl = isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n\r\n setIsBusyCreatingMoveToJobQue(true); //Confirm move to modal spinner\r\n const copyRequest = {\r\n siteUrl,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n files: moveTo.selectedFiles,\r\n sourceSiteUrl: moveTo.sourceSiteUrl,\r\n sourceServerRelPath: moveTo.sourceServerRelPath,\r\n destinationServerRelPath: serverRelPath,\r\n isMoveMode: (moveTo.mode === ContentManagerCopyMoveModeEnum.Move || moveTo.mode === ContentManagerCopyMoveModeEnum.MoveAll) ? true : false\r\n }\r\n\r\n let copyJobResults = await createCopyJobs(copyRequest);\r\n if (copyJobResults?.success) {\r\n dispatch(setContentManagerMoveToSelectedFilesIsBusyProgress([], true));\r\n dispatch(setContentManagerMoveTo({\r\n siteUrl,\r\n busyMovingFiles: true,\r\n isMoveInProgress: true,\r\n moveToEnabled: false,\r\n destinationDirectory: currentDirectory\r\n }));\r\n dispatch(setContentManagerMoveToCopyJobResults(copyJobResults?.jobs))\r\n\r\n setIsCMMoveFilesListPanelOpen(true);\r\n }\r\n else {\r\n dispatch(resetContentManagerMoveTo());\r\n dispatch(setContentManagerMoveToError(copyJobResults.error));\r\n }\r\n\r\n setIsBusyCreatingMoveToJobQue(false);\r\n setShowConfirmMoveToDialog(false);\r\n\r\n } catch (error) {\r\n setIsBusyCreatingMoveToJobQue(false);\r\n setShowConfirmMoveToDialog(false);\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(error.data[\"odata.error\"][\"message\"][\"value\"]);\r\n\r\n logger(error, \"ContentBodyFilesFolders.tsx (onConfirmMoveFiles (else))\");\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (showConfirmMoveToDialog) {\r\n let confirmMessage = (moveTo.mode === ContentManagerCopyMoveModeEnum.Move || moveTo.mode === ContentManagerCopyMoveModeEnum.MoveAll)\r\n ? languageStrings.SelectDestinationDirectoryConfirmMove\r\n : languageStrings.SelectDestinationDirectoryConfirmCopy\r\n\r\n const partsAmountSplit = confirmMessage.split(\"{amount}\");\r\n const partsSourceSplit = partsAmountSplit[1].split(\"{source}\");\r\n\r\n let amountStr = (moveTo.mode === ContentManagerCopyMoveModeEnum.CopyAll || moveTo.mode === ContentManagerCopyMoveModeEnum.MoveAll)\r\n ? languageStrings.All.toLowerCase()\r\n : moveTo.selectedFiles?.length?.toString();\r\n\r\n setHtmlConfirmMessage(
{partsAmountSplit[0]}{amountStr}{partsSourceSplit[0]}{moveToSourceServerRelPath}{partsSourceSplit[1]}
);\r\n }\r\n }, [showConfirmMoveToDialog, moveToSourceServerRelPath]);\r\n\r\n const onGridDrop = React.useCallback(async () => {\r\n if (DragAndDropHelper.mode === DragMode.gridItems && DragAndDropHelper.selectedGridItems?.length > 0) {\r\n let serverRelativePath: string = serverRelPath ? serverRelPath : currentDirectory?.serverRelativePath;\r\n if (!serverRelativePath && currentDirectory?.directory?.length > 0 && currentDirectory?.id) {\r\n const driveId = isInOneDrive.current && oneDriveRootDetails ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n const webUrl = await getListItemWebUrl(await authModule.getGraphAccessToken(), driveId, currentDirectory.parentId ? currentDirectory.id : null);\r\n if (webUrl) {\r\n serverRelativePath = tryDecodeUriComponent(new URL(webUrl).pathname);\r\n }\r\n }\r\n const siteUrl = isInOneDrive.current && oneDriveRootDetails ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory?.webUrl;\r\n DragAndDropHelper.handleGridMove(dispatch, siteUrl, workingDirectories, isInOneDrive.current, serverRelativePath);\r\n } else if (DragAndDropHelper.mode === DragMode.files) {\r\n setIsCMUploadFilesPanelOpen(true);\r\n }\r\n }, [oneDriveRootDetails, currentDirectory, workingDirectories, serverRelPath]);\r\n\r\n const onGridItemDrop = React.useCallback(async (item, hasDropContent: boolean = true, selectedGridItems?: any[]) => {\r\n try {\r\n let itemid = \"\";\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n\r\n const spItemUrlparts = item['.spItemUrl']?.split('/');\r\n if (spItemUrlparts) {\r\n itemid = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n }\r\n\r\n const siteUrlPath: string = new URL(currentDirectory.webUrl)?.pathname + \"/\";\r\n\r\n const itemToAdd: IPageSettings = {\r\n id: itemid,\r\n parentId: driveId,\r\n type: isInOneDrive.current ? ComponentTypes.OneDrive : ComponentTypes.SharePointFolders,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n webUrl: currentDirectory.webUrl,\r\n fileTitle: item.FileLeafRef,\r\n directory: item.FileRef.replace(siteUrlPath, \"\"),\r\n DocumentLibrary: currentDirectory.DocumentLibrary,\r\n displayName: item.FileLeafRef,\r\n isTeamsFolder: currentDirectory.isTeamsFolder,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n contentTypeId: item.ContentTypeId,\r\n serverRelativePath: item.FileRef,\r\n sharePointUniqueId: item.UniqueId?.replace(\"{\", \"\").replace(\"}\", \"\")\r\n };\r\n\r\n if (DragAndDropHelper.mode === DragMode.files || !hasDropContent) {\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(toggleContentManagerReload());\r\n setIsFetchingData(false);\r\n }\r\n\r\n if (hasDropContent) {\r\n if (DragAndDropHelper.mode === DragMode.gridItems && selectedGridItems?.length > 0) {\r\n const siteUrl = isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n DragAndDropHelper.destinationDirectory = itemToAdd;\r\n DragAndDropHelper.handleGridMove(dispatch, siteUrl, workingDirectories, isInOneDrive?.current);\r\n }\r\n else if (DragAndDropHelper.mode === DragMode.files) {\r\n setIsCMUploadFilesPanelOpen(true);\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodyFilesFolders.tsx (onGridItemDrop)\");\r\n }\r\n }, [oneDriveRootDetails, currentDirectory, workingDirectories]);\r\n\r\n const dragEvents = React.useCallback(() => {\r\n return {\r\n canDrop: (dropContext?: IDragDropContext, dragContext?: IDragDropContext) => {\r\n return true;\r\n },\r\n canDrag: (item?: any) => {\r\n return !moveTo.busyMovingFiles;\r\n },\r\n onDragStart: (item?: any, itemIndex?: number, selectedItems?: any[], event?: DragEvent) => {\r\n let selectedGridItems: any[] = selectedItems?.filter(selectedItem => selectedItem);\r\n if (!Array.isArray(selectedGridItems)) {\r\n selectedGridItems = [];\r\n }\r\n\r\n if (gridProps?.items?.length > 0\r\n && item\r\n && (selectedGridItems.length === 0 || selectedGridItems.findIndex(selectedItem => selectedItem.ID === item.ID) === -1)) {\r\n const draggedItemIndex: number = gridProps.items.findIndex(x => x.ID === item.ID);\r\n if (draggedItemIndex > -1) {\r\n selectedGridItems.push(item);\r\n _selection.current.setAllSelected(false);\r\n _selection.current.setIndexSelected(draggedItemIndex, true, true);\r\n }\r\n }\r\n\r\n if (selectedGridItems?.length > 0) {\r\n event.dataTransfer.setData(DragAndDropHelper.gridDataTransferType, JSON.stringify(selectedGridItems));\r\n\r\n DragAndDropHelper.mode = DragMode.gridItems;\r\n DragAndDropHelper.sourceDirectory = currentDirectory;\r\n DragAndDropHelper.destinationDirectory = currentDirectory;\r\n DragAndDropHelper.sourceServerRelPath = serverRelPath;\r\n DragAndDropHelper.selectedGridItems = selectedGridItems.filter(selectedItem => selectedItem);\r\n }\r\n }\r\n }\r\n }, [currentDirectory, moveTo.busyMovingFiles, serverRelPath, gridProps?.items]);\r\n\r\n const getSelectedIndex = React.useCallback(() => {\r\n const selectedIndices: number[] = _selection.current?.getSelectedIndices();\r\n if (Array.isArray(selectedIndices) && selectedIndices.length > 0 && gridProps?.items?.length > 0) {\r\n return selectedIndices[0];\r\n }\r\n return -1;\r\n }, [gridProps?.items]);\r\n\r\n const move = React.useCallback((direction: MoveDirection) => {\r\n const currentSelectedIndex: number = getSelectedIndex();\r\n if (currentSelectedIndex !== -1) {\r\n let nextSelectedIndex: number;\r\n if (direction === MoveDirection.Back) {\r\n nextSelectedIndex = currentSelectedIndex - 1;\r\n }\r\n else {\r\n nextSelectedIndex = currentSelectedIndex + 1;\r\n }\r\n\r\n if ((gridProps.items.length - 1) >= nextSelectedIndex) {\r\n _selection.current.setAllSelected(false);\r\n _selection.current.setIndexSelected(nextSelectedIndex, true, true);\r\n detailsListRef.current?.focusIndex(nextSelectedIndex);\r\n }\r\n }\r\n }, [gridProps?.items]);\r\n\r\n const getIsPreviewNotSupported = () => {\r\n try {\r\n return selectedItem?.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) === true;\r\n } catch (error) {\r\n // ignore\r\n }\r\n return false;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {/* @ts-expect-error */}\r\n \r\n \r\n
{\r\n if (event.key === 'Delete' || event.keyCode === 46) {\r\n const selectedItems = _selection.current.getSelection();\r\n if (selectedItems.length > 0) {\r\n setShowDeleteDialog(true);\r\n }\r\n }\r\n }}>\r\n \r\n \r\n \r\n 0\r\n ? quickFilterValue\r\n ? gridProps.items.filter(quickFilterPredicate)\r\n : gridProps.items\r\n : []}\r\n focusZoneProps={{\r\n elementRef: focusZoneRef\r\n }}\r\n columns={gridProps?.columns?.length > 0 ? gridProps.columns : []}\r\n onRenderDetailsHeader={_onRenderDetailsHeader}\r\n selectionMode={!moveToEnabled ? SelectionMode.multiple : SelectionMode.none}\r\n constrainMode={ConstrainMode.unconstrained}\r\n onColumnHeaderClick={onColumnHeaderClicked}\r\n setKey=\"multiple\"\r\n enableShimmer={isFetchingData}\r\n dragDropEvents={dragEvents()}\r\n layoutMode={DetailsListLayoutMode.justified}\r\n isHeaderVisible={true}\r\n selectionPreservedOnEmptyClick={true}\r\n selection={_selection.current}\r\n ariaLabelForSelectionColumn=\"Toggle selection\"\r\n ariaLabelForSelectAllCheckbox=\"Toggle selection for all items\"\r\n checkButtonAriaLabel=\"Row checkbox\"\r\n onItemContextMenu={(item?: any, index?: number, ev?: MouseEvent) => triggerContextMenu(ev)}\r\n groupProps={{\r\n showEmptyGroups: true,\r\n onRenderHeader,\r\n headerProps: {\r\n onToggleCollapse: onGroupToggle\r\n },\r\n onToggleCollapseAll\r\n }}\r\n onRenderDetailsFooter={_onRenderDetailsFooter}\r\n groups={!isFetchingData && gridProps?.groups?.length > 0 && !quickFilterValue ? gridProps?.groups : null}\r\n onRenderCustomPlaceholder={onRenderCustomPlaceholder}\r\n />\r\n \r\n {contextualMenuProps && }\r\n \r\n \r\n
\r\n {showVersionHistoryDialog && setShowVersionHistoryDialog(false)} selectedItem={selectedItem} isInOneDrive={isInOneDrive.current} />}\r\n {showDuplicateFileVersionSelectorModal && { setShowDuplicateFileVersionSelectorModal(false); setWaitFor(false); }} closeOnSuccess={() => { setShowDuplicateFileVersionSelectorModal(false); reloadGrid(); setWaitFor(false); }} selectedItem={selectedItem} isDuplicate={pdfConvertIsDuplicate} showSelectVersion={pdfConvertShowVersion} />}\r\n {showCheckinDialog && setShowCheckinDialog(false)} closeOnSuccess={() => { updateGridItems(selectedItems.items); setShowCheckinDialog(false) }} selectedItems={selectedItems.items} isInOneDrive={isInOneDrive.current} />}\r\n {isCMVersionAppRejModalOpen && setIsCMVersionAppRejModalOpen(false)} closeOnSuccess={() => { updateGridItems(selectedItems.items); setIsCMVersionAppRejModalOpen(false) }} selectedItems={selectedItems.items} isInOneDrive={isInOneDrive.current} />}\r\n {isApprovalsPanelOpen && setIsApprovalsPanelOpen(false)} headerText={languageStrings.AutomationFlowRequest} styles={{ main: { overflow: \"unset\" } }}>\r\n setIsApprovalsPanelOpen(false)}\r\n tenantGuid={userAccount.tenantId}\r\n requestor={userAccount.username}\r\n isContentManager={true}\r\n listName={listTitle}\r\n />\r\n }\r\n {isSigninPanelOpen && setIsSigningPanelOpen(false)} headerText={languageStrings.SigningRequest} styles={{ main: { overflow: \"unset\" } }}>\r\n setIsSigningPanelOpen(false)}\r\n tenantGuid={userAccount.tenantId}\r\n requestor={userAccount.username}\r\n isContentManager={true}\r\n listName={listTitle}\r\n />\r\n }\r\n {isCMFilePreviewPanelOpen && setIsCMFilePreviewPanelOpen(false)} headerText={selectedItem?.FileLeafRef} styles={previewWebPanelStyles}>\r\n {selectedItem && }\r\n }\r\n {showRenameDialog && setShowRenameDialog(false)} selectedItem={selectedItem} closeOnSuccess={() => metaDataUpdated(null, null, null)} />}\r\n {isCMFileInfoPanelOpen && (selectedItem || selectedNewDocumentTemplate) && { setIsCMFileInfoPanelOpen(false); setSelectedNewDocumentTemplate(null); }} item={selectedItem} infoPanelMode={infoPanelMode} selectedTemplate={selectedNewDocumentTemplate} folderPath={folderPath} userPermissions={selectedItem?.EffectiveBasePermissions} />}\r\n {!isInOneDrive.current && isCMFileInfoPanelOpen && (selectedItems?.items?.length > 1) && 1)} closePanel={() => setIsCMFileInfoPanelOpen(false)} reloadGrid={reloadGrid} selectedItems={selectedItems?.items} />}\r\n {isCMCreateFolderPanelOpen && { setIsCMCreateFolderPanelOpen(false); setSelectedNewDocumentTemplate(null); }} onFolderCreated={onFolderCreated} serverRelPath={serverRelPath} />}\r\n {isCMCreateLinkPanelOpen && { setIsCMCreateLinkPanelOpen(false); }} reloadGrid={reloadGrid} serverRelPath={serverRelPath} />}\r\n {isCMUploadFilesPanelOpen && { setIsCMUploadFilesPanelOpen(false); DragAndDropHelper.reset(); }} reloadGrid={reloadGrid} serverRelPath={serverRelPath} />}\r\n {isCMFileFilterPanelOpen && setIsCMFileFilterPanelOpen(false)} isInOneDrive={isInOneDrive.current} serverRelPath={serverRelPath} selectedView={selectedView} />}\r\n {isCMFileSharePanelOpen && setIsCMFileSharePanelOpen(false)} items={sharePanelModeRef.current === SharePanelMode.Share ? [selectedItem] : selectedItems?.items} mode={sharePanelModeRef.current} />}\r\n {showDeleteDialog && setShowDeleteDialog(false)} selectedItems={selectedItems?.items} closeOnSuccess={onDeleteCloseSuccess} />}\r\n {showCancelAssignmentDialog && setShowCancelAssignmentDialog(false)} closeOnSuccess={onCancelAssignmentSuccess} selectedItem={selectedItem} />}\r\n {isCMErrorModalOpen && setIsCMErrorModalOpen(false)} />}\r\n {isCMMoveFilesListPanelOpen && setIsCMMoveFilesListPanelOpen(false)} />}\r\n {showConfirmMoveToDialog && !moveTo.moveToEnabled && {\r\n dispatch(setContentManagerMoveTo({\r\n moveToEnabled: false,\r\n workingDirectories: [],\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0\r\n }));\r\n setShowConfirmMoveToDialog(false)\r\n }}\r\n closeText=\"\"\r\n confirmText={languageStrings.Ok}\r\n onConfirm={() => { onConfirmMoveFiles(false) }}\r\n />}\r\n {showConfirmMoveToDialog\r\n && moveTo.moveToEnabled\r\n && (moveTo.mode === ContentManagerCopyMoveModeEnum.Copy || moveTo.mode === ContentManagerCopyMoveModeEnum.CopyAll || currentDirectory?.id !== moveToDirectory?.id)\r\n && setShowConfirmMoveToDialog(false)}\r\n closeText={languageStrings.Cancel}\r\n confirmText={languageStrings.Yes}\r\n onConfirm={() => { onConfirmMoveFiles(true) }}\r\n isBusy={isBusyCreatingMoveToJobQue}\r\n />}\r\n \r\n )\r\n};","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { DocubirdCache, SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { getValidHooks } from \"../../../src/taskpane/services/HooksService\";\r\nimport { CacheHelper } from \"../../../utilities/CacheHelper\";\r\nimport { HookType } from \"../../../src/taskpane/components/_v2/redux/api/local/api-local-interfaces\";\r\n\r\nexport function useMenuItem_Automation(selectedItems: any[], waitFor: boolean, setApprovalFiles: (approvalFiles: any[]) => void, setIsApprovalsPanelOpen: (isApprovalsPanelOpen: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const tenantEnableApprovalHooks = useSelector((state: RootState) => state.user.tenantEnableApprovalHooks);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n\r\n const [automationFlowsAvailable, setAutomationFlowsAvailable] = React.useState(false);\r\n const [menuItem_Automation, setMenuItem_Automation] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (!tenantEnableApprovalHooks || !currentDirectory?.siteDisplayName || !currentDirectory?.DocumentLibrary) return;\r\n const validHooks = getValidHooks(CacheHelper.get(DocubirdCache.hooks)?.filter(h => h.typeId === HookType.Approval || h.typeId === HookType.BatchApproval || h.typeId === HookType.Generic), currentDirectory);\r\n setAutomationFlowsAvailable(validHooks?.length > 0);\r\n }, [tenantEnableApprovalHooks, currentDirectory]);\r\n\r\n React.useEffect(() => {\r\n const hasFolderOrOneNoteFolder = selectedItems?.some(x => x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)) || selectedItems?.some(x => x.ProgId === \"OneNote.Notebook\");\r\n if (selectedItems.length > 0\r\n && tenantEnableApprovalHooks\r\n && !hasFolderOrOneNoteFolder\r\n && currentDirectory.type !== ComponentTypes.SharePointList\r\n && automationFlowsAvailable) {\r\n setMenuItem_Automation(\r\n {\r\n key: \"approvalHooks\",\r\n disabled: waitFor === true,\r\n text: languageStrings.Automation,\r\n iconProps: { iconName: \"DocumentApproval\" },\r\n onClick: () => {\r\n setApprovalFiles(selectedItems);\r\n setIsApprovalsPanelOpen(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Automation(null);\r\n }\r\n }, [selectedItems, waitFor, tenantEnableApprovalHooks, currentDirectory, automationFlowsAvailable])\r\n\r\n return {\r\n menuItem_Automation\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_CancelAssignment(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setShowCancelAssignmentDialog: (showCancelAssignmentDialog: boolean) => void,\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const [menuItem_CancelAssignment, setMenuItem_CancelAssignment] = React.useState();\r\n\r\n const opdrachtDocSetContentTypeId = \"0x0120D520006AAF2894D132DC4490C0776F6D6D2CA40035E1CF0A0F777246BCE4531413CFCF86\";\r\n\r\n React.useEffect(() => { \r\n if (selectedItems?.length === 1 && selectedItems[0].ContentTypeId == opdrachtDocSetContentTypeId) {\r\n setMenuItem_CancelAssignment(\r\n {\r\n key: \"cancelOpdracht\",\r\n disabled: waitFor === true,\r\n text: `${languageStrings.CancelAssignment}`,\r\n iconProps: { iconName: \"Cancel\" },\r\n onClick: () => {\r\n setShowCancelAssignmentDialog(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_CancelAssignment(null);\r\n }\r\n }, [selectedItems, waitFor]);\r\n\r\n return {\r\n menuItem_CancelAssignment\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { CheckinCheckoutHelper } from \"../../../utilities/CheckinCheckoutHelper\";\r\n\r\nexport function useMenuItem_Checkin(selectedItems: any[], waitFor: boolean, setWaitFor: (waitFor: boolean) => void, setIsPublish: (isPublish: boolean) => void, setShowCheckinDialog: (showCheckinDialog: boolean) => void, isInOneDrive: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n\r\n const [menuItem_Checkin, setMenuItem_Checkin] = React.useState();\r\n\r\n const menuItem: IContextualMenuItem = {\r\n key: 'checkin',\r\n disabled: waitFor === true,\r\n name: languageStrings.CheckIn,\r\n iconProps: { iconName: \"CheckedOutByOther12\" },\r\n onClick: () => {\r\n setIsPublish(false);\r\n setShowCheckinDialog(true);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!isInOneDrive && selectedItems.length > 0 && !(selectedItems.some(x => x?.EffectiveBasePermissions?.canEditListItem === false)) &&\r\n (checkedOutAllItems() || (selectedItems.every(x => x.CheckoutUser) && !selectedItems.some(x => x?.EffectiveBasePermissions?.canCancelCheckout === false))) &&\r\n selectedItems?.some(x => !x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder))\r\n ) {\r\n setMenuItem_Checkin(menuItem);\r\n }\r\n else {\r\n setMenuItem_Checkin(null);\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive, currentSharepointFolder, userAccount]);\r\n\r\n const checkedOutAllItems = () => {\r\n let results = true;\r\n\r\n try {\r\n if (selectedItems.every(x => x.CheckoutUser)) {\r\n selectedItems.forEach(item => {\r\n item.CheckoutUser.forEach(checkedOutUser => {\r\n results = CheckinCheckoutHelper.compareCurrentUser(checkedOutUser, userAccount.username);\r\n });\r\n });\r\n } else {\r\n results = false;\r\n }\r\n } catch (error) {\r\n // Ignore\r\n }\r\n\r\n return results;\r\n }\r\n\r\n return {\r\n menuItem_Checkin\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLazyCheckoutItemQuery } from \"../../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Checkout(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n isInOneDrive: boolean,\r\n setGridItemIsBusy: (items: any[], isBusy: boolean) => void,\r\n updateGridItems: (items: any[]) => void,\r\n setIsCMErrorModalOpen: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage?: (errorMessage: string) => void,\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n\r\n const [menuItem_Checkout, setMenuItem_Checkout] = React.useState();\r\n\r\n const [checkoutItem] = useLazyCheckoutItemQuery();\r\n\r\n const menuItem: IContextualMenuItem = {\r\n key: 'checkout',\r\n disabled: waitFor === true,\r\n name: languageStrings.CheckOut,\r\n iconProps: { iconName: \"CheckedOutByOther12\" },\r\n onClick: () => {\r\n onCheckoutItem();\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!isInOneDrive &&\r\n selectedItems.length > 0 && currentDirectory.type !== ComponentTypes.SharePointList &&\r\n selectedItems?.every(x => !x?.CheckoutUser) &&\r\n !(selectedItems?.some(x => x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)) || selectedItems?.some(x => x.ProgId === \"OneNote.Notebook\")) &&\r\n !(selectedItems.some(x => x?.EffectiveBasePermissions?.canEditListItem === false))\r\n ) {\r\n setMenuItem_Checkout(menuItem)\r\n }\r\n else {\r\n setMenuItem_Checkout(null)\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive, currentDirectory, currentSharepointFolder]);\r\n\r\n const onCheckoutItem = async () => {\r\n setGridItemIsBusy(selectedItems, true);\r\n setWaitFor(true);\r\n await Promise.all(selectedItems.map(async item => {\r\n try {\r\n await checkoutItem({\r\n siteUrl: currentDirectory.webUrl,\r\n uniqueId: item.UniqueId.replace(\"{\", \"\").replace(\"}\", \"\"),\r\n accessToken: isInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n }).unwrap();\r\n } catch (error) {\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(error['data']['odata.error']['message']['value']);\r\n }\r\n }));\r\n\r\n updateGridItems(selectedItems);\r\n setWaitFor(false);\r\n }\r\n\r\n return {\r\n menuItem_Checkout\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { setContentManagerFilterSectionsReset, setContentManagerSearchFilterType } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { toggleReload } from \"../../../src/taskpane/redux/modules/reload\";\r\n\r\nexport function useMenuItem_ClearFilter(waitFor: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const filterSections = useSelector((state: RootState) => state.contentManagerDirectory?.filterSections);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue);\r\n\r\n const [filterSelected, setFilterSelected] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n if (filterSections || (searchValue && !searchValue.value && searchValue.filterType !== \"\")) {\r\n setFilterSelected((searchValue && !searchValue.value && searchValue.filterType !== \"\")\r\n || (filterSections?.some(section => section.items.some(item => item.selected === true)) || filterSections?.some(x => (x.daysOffset || x.daysOffset === 0))))\r\n } else {\r\n setFilterSelected(false);\r\n }\r\n }, [filterSections, searchValue]);\r\n\r\n const [menuItem_ClearFilter, setMenuItem_ClearFilter] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (filterSelected) {\r\n setMenuItem_ClearFilter(\r\n {\r\n key: \"clearFilter\",\r\n text: `${languageStrings.ClearFilter}`,\r\n disabled: waitFor === true,\r\n iconProps: { iconName: \"ClearFilter\" },\r\n onClick: () => {\r\n dispatch(setContentManagerFilterSectionsReset());\r\n dispatch(setContentManagerSearchFilterType(\"\"));\r\n dispatch(toggleReload());\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_ClearFilter(null);\r\n }\r\n }, [waitFor, filterSelected]);\r\n\r\n return {\r\n menuItem_ClearFilter\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { setContentManagerSearchFilterType, setContentManagerSearchValue } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_ClearSearch(selectedItems: any[], waitFor: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n\r\n const [menuItem_ClearSearch, setMenuItem_ClearSearch] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (searchValue) {\r\n setMenuItem_ClearSearch(\r\n {\r\n key: \"clearSearch\",\r\n text: `${languageStrings.ClearSearch}`,\r\n disabled: waitFor === true,\r\n iconProps: { iconName: \"ClearFilter\" },\r\n onClick: () => {\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(setContentManagerSearchFilterType(\"\"));\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_ClearSearch(null);\r\n }\r\n }, [selectedItems, waitFor, searchValue]);\r\n\r\n return {\r\n menuItem_ClearSearch\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { SharePanelMode } from \"../../Panels/CMFileSharePanel\";\r\n\r\nexport function useMenuItem_CopyLink(selectedItems: any[], openSharePanel: (mode: SharePanelMode) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const tenantSharingEnabled = useSelector((state: RootState) => state.tenantInfo?.enableSharing);\r\n\r\n const [menuItem_CopyLink, setMenuItem_CopyLink] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length > 0 && tenantSharingEnabled) {\r\n setMenuItem_CopyLink(\r\n {\r\n key: \"copyLink\",\r\n iconProps: { iconName: \"Link\" },\r\n text: `${languageStrings.CopyLink}`,\r\n onClick: () => openSharePanel(SharePanelMode.Copy)\r\n }\r\n );\r\n }\r\n else {\r\n setMenuItem_CopyLink(null);\r\n }\r\n }, [selectedItems, tenantSharingEnabled]);\r\n\r\n return {\r\n menuItem_CopyLink\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { setContentManagerMoveTo } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_CopyTo(\r\n itemCount: number | undefined, selectedItems: any[],\r\n setShowConfirmMoveToDialog: (isShowConfirmMoveToDialog: boolean) => void,\r\n isInOneDrive: boolean,\r\n isFetchingData: boolean,\r\n setIsCMUploadFilesPanelOpen: (isCMUploadFilesPanelOpen: boolean) => void\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const moveToEnabled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.moveToEnabled);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const moveToDirectory = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.workingDirectories.length > 0 ? state.contentManagerDirectory.moveTo.workingDirectories[state.contentManagerDirectory.moveTo.workingDirectories.length - 1] : null);\r\n const moveToMode = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.mode);\r\n const moveToBusyMovingFiles = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.busyMovingFiles);\r\n const moveToBusyFetchingFiles = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.busyFetchingFiles);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const tenantCopyMoveToEnabled = useSelector((state: RootState) => state.tenantInfo?.enableCopyMoveTo);\r\n\r\n const [menuItem_CopyTo, setMenuItem_CopyTo] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (tenantCopyMoveToEnabled && itemCount > 0 && selectedItems.length === 0 && !moveToEnabled && currentSharepointFolder?.userPermissions?.canOpenItems && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n setMenuItem_CopyTo(\r\n {\r\n key: \"copyTo\",\r\n text: `${languageStrings.CopyAll}`,\r\n disabled: isFetchingData || moveToBusyMovingFiles || moveToBusyFetchingFiles,\r\n iconProps: { iconName: \"Copy\" },\r\n onClick: () => {\r\n const sourceSiteUrl = isInOneDrive ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n\r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.CopyAll,\r\n moveToEnabled: false,\r\n workingDirectories: workingDirectories,\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceSiteUrl,\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }\r\n )\r\n }\r\n else if (tenantCopyMoveToEnabled\r\n && itemCount > 0\r\n && selectedItems.length > 0\r\n && !moveToEnabled\r\n && currentDirectory.type !== ComponentTypes.SharePointList\r\n && !(selectedItems.some(x => x?.EffectiveBasePermissions?.canOpenItems === false))) {\r\n setMenuItem_CopyTo(\r\n {\r\n key: \"copyTo\",\r\n text: `${languageStrings.CopyTo}`,\r\n iconProps: { iconName: \"Copy\" },\r\n onClick: () => {\r\n const sourceSiteUrl = isInOneDrive ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n\r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.Copy,\r\n moveToEnabled: false,\r\n workingDirectories: workingDirectories,\r\n selectedFiles: selectedItems,\r\n siteUrl: \"\",\r\n sourceSiteUrl,\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n isMoveInProgress: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }\r\n )\r\n } else if (moveToEnabled\r\n && (moveToMode === ContentManagerCopyMoveModeEnum.Copy || moveToMode === ContentManagerCopyMoveModeEnum.CopyAll\r\n || (currentDirectory.type !== ComponentTypes.SharePointList && (moveToMode === ContentManagerCopyMoveModeEnum.CopySelectedEmails || moveToMode === ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails)))) {\r\n setMenuItem_CopyTo(\r\n {\r\n key: \"copyTo\",\r\n text: `${languageStrings.Confirm} ${languageStrings.SaveTo}`,\r\n disabled: !currentSharepointFolder?.userPermissions?.canEditListItem || isFetchingData,\r\n iconProps: { iconName: \"Copy\" },\r\n onClick: () => {\r\n if (moveToMode === ContentManagerCopyMoveModeEnum.CopySelectedEmails || moveToMode === ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails) {\r\n setIsCMUploadFilesPanelOpen(true);\r\n } else {\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_CopyTo(null);\r\n }\r\n }, [itemCount, selectedItems, moveToEnabled, currentDirectory, moveToDirectory, moveToMode, isInOneDrive, isFetchingData, moveToBusyMovingFiles, moveToBusyFetchingFiles, currentSharepointFolder?.userPermissions])\r\n\r\n return {\r\n menuItem_CopyTo\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { getItemWebViewUrl, getSPListItemWebUrl } from \"../../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\n\r\nexport function useMenuItem_CurrentLocation(selectedItems: any[], isInOneDrive: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories?.workingDirectories);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const allowOpenInSharePoint = useSelector((state: RootState) => state.user.tenantAllowOpenInSharePoint ?? true);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n\r\n const [menuItem_CurrentLocation, setMenuItem_CurrentLocation] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (!searchValue && selectedItems?.length === 0 && allowOpenInSharePoint) {\r\n setMenuItem_CurrentLocation(\r\n {\r\n key: \"openCurrentLocation\",\r\n iconProps: { iconName: !isInOneDrive ? \"SharepointLogo\" : \"OneDriveLogo\" },\r\n text: !isInOneDrive ? `${languageStrings.OpenIn} SharePoint` : `${languageStrings.OpenIn} OneDrive`,\r\n onClick: openLocationInBrowser\r\n }\r\n )\r\n } else {\r\n setMenuItem_CurrentLocation(null)\r\n }\r\n }, [selectedItems, workingDirectories, currentDirectory, isInOneDrive, searchValue]);\r\n\r\n const openLocationInBrowser = React.useCallback((ev?: React.MouseEvent | React.KeyboardEvent, item?: IContextualMenuItem) => {\r\n (async () => {\r\n if (isInOneDrive && !currentDirectory.directory) {\r\n window.open(currentDirectory.webUrl);\r\n }\r\n else {\r\n const driveId = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n\r\n let itemId: string;\r\n if (isInOneDrive) {\r\n itemId = currentDirectory.id;\r\n }\r\n else {\r\n itemId = currentDirectory.parentId && currentDirectory.id;\r\n }\r\n\r\n let url: string;\r\n try {\r\n if (workingDirectories && workingDirectories.some(x => x.type === ComponentTypes.SharePointList)) {\r\n if (!itemId && currentDirectory.serverRelativePath) {\r\n url = new URL(currentDirectory.webUrl).origin + currentDirectory.serverRelativePath;\r\n }\r\n else {\r\n url = await getSPListItemWebUrl(await authModule.getGraphAccessToken(), currentDirectory.siteId, driveId, itemId)\r\n }\r\n }\r\n else {\r\n url = await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, itemId)\r\n } \r\n } catch (error) {\r\n // Ignore\r\n }\r\n\r\n if (url) {\r\n window.open(url);\r\n }\r\n }\r\n })();\r\n }, [workingDirectories, currentDirectory, isInOneDrive]);\r\n\r\n return {\r\n menuItem_CurrentLocation\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FolderViewWrapper } from \"../../../src/taskpane/components/helpers/folderViewWrapper\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { GridProps } from \"../useContentManagerBody\";\r\n\r\nexport function useMenuItem_Delete(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n setShowDeleteDialog: (showDeleteDialog: boolean) => void,\r\n gridProps: GridProps,\r\n setGridProps: (newGridProps: GridProps) => void,\r\n setSelectionCleared: (selectionCleared: boolean) => void,\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo.sites);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n\r\n const [menuItem_Delete, setMenuItem_Delete] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length > 0 && !(selectedItems.some(x => x?.EffectiveBasePermissions?.canDeleteListItem === false))) {\r\n var folderViewWrapper = new FolderViewWrapper(siteInfo, currentDirectory);\r\n const canViewFolder = folderViewWrapper.canViewFolder();\r\n\r\n if (canViewFolder || selectedItems.every(x => !x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder))) {\r\n setMenuItem_Delete(\r\n {\r\n key: \"delete\",\r\n disabled: waitFor === true,\r\n text: `${languageStrings.Delete}`,\r\n iconProps: { iconName: \"Delete\" },\r\n onClick: () => {\r\n setShowDeleteDialog(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Delete(null);\r\n }\r\n } else {\r\n setMenuItem_Delete(null);\r\n }\r\n }, [selectedItems, waitFor, currentSharepointFolder, siteInfo, currentDirectory]);\r\n\r\n const deleteSuccess = (successIds: string[]) => {\r\n setShowDeleteDialog(false);\r\n filesDeleted(successIds);\r\n }\r\n\r\n const filesDeleted = async (successIds: string[]) => {\r\n try {\r\n setWaitFor(true)\r\n const newGridProps: GridProps = { ...gridProps };\r\n\r\n const deletedIndexes = [];\r\n const newRows = [];\r\n\r\n newGridProps.items.forEach((item, index) => {\r\n const isSelected = item && successIds.find(x => x === item.ID);\r\n if (isSelected) {\r\n deletedIndexes.push(index);\r\n } else {\r\n newRows.push(item);\r\n }\r\n });\r\n\r\n const newGroups = newGridProps.groups.map(group => {\r\n let startIndexChange = 0;\r\n let countChange = 0;\r\n deletedIndexes.forEach(index => {\r\n if (index >= group.startIndex && index < group.startIndex + group.totalCount) {\r\n countChange++;\r\n if (index === group.startIndex) {\r\n startIndexChange++;\r\n }\r\n } else if (index < group.startIndex) {\r\n startIndexChange--;\r\n }\r\n });\r\n const numIndex = group.name.search(/\\d(?!.*\\d)/);\r\n return {\r\n ...group,\r\n startIndex: group.startIndex + startIndexChange,\r\n totalCount: group.totalCount - countChange,\r\n count: group.count - countChange,\r\n name: group.name.substring(0, numIndex) + (group.totalCount - countChange) + \")\"\r\n };\r\n });\r\n\r\n setSelectionCleared(true);\r\n setGridProps({\r\n ...newGridProps,\r\n items: [...newRows],\r\n groups: newGroups\r\n });\r\n setWaitFor(false);\r\n } catch (error) {\r\n logger(error, \"useMenuItem_Delete.tsx (filesDeleted)\");\r\n }\r\n }\r\n\r\n return {\r\n menuItem_Delete,\r\n deleteSuccess\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLazyUndoCheckoutQuery } from \"../../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_DiscardCheckout(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n isInOneDrive: boolean,\r\n setGridItemIsBusy: (items: any[], isBusy: boolean) => void,\r\n updateGridItems: (items: any[]) => void,\r\n setIsCMErrorModalOpen: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage: (errorMessage: string) => void,\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n\r\n const [menuItem_DiscardCheckout, setMenuItem_DiscardCheckout] = React.useState();\r\n\r\n const [undoCheckout] = useLazyUndoCheckoutQuery();\r\n\r\n const menuItem: IContextualMenuItem = {\r\n key: 'discardCheckout',\r\n disabled: waitFor === true,\r\n name: languageStrings.DiscardCheckOut,\r\n iconProps: { iconName: \"Undo\" },\r\n onClick: () => {\r\n onDiscardCheckoutItem();\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (selectedItems.length > 0 &&\r\n (checkedOutAllItems() || (selectedItems.every(x => x.CheckoutUser) && !selectedItems.some(x => x?.EffectiveBasePermissions?.canCancelCheckout === false))) &&\r\n !selectedItems?.some(x => x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder))\r\n ) {\r\n setMenuItem_DiscardCheckout(menuItem);\r\n }\r\n else {\r\n setMenuItem_DiscardCheckout(null);\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive, userAccount, currentDirectory, currentSharepointFolder]);\r\n\r\n const checkedOutAllItems = () => {\r\n let results = true;\r\n if (selectedItems.every(x => x.CheckoutUser)) {\r\n selectedItems.forEach(item => {\r\n item.CheckoutUser.forEach(checkedOutUser => {\r\n if (checkedOutUser.email !== userAccount.username) {\r\n results = false;\r\n }\r\n });\r\n });\r\n } else {\r\n results = false;\r\n }\r\n\r\n return results;\r\n }\r\n\r\n const onDiscardCheckoutItem = async () => {\r\n setGridItemIsBusy(selectedItems, true);\r\n setWaitFor(true);\r\n await Promise.all(selectedItems.map(async item => {\r\n try {\r\n await undoCheckout({\r\n siteUrl: currentDirectory.webUrl,\r\n uniqueId: item.UniqueId.replace(\"{\", \"\").replace(\"}\", \"\"),\r\n accessToken: isInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n }).unwrap();\r\n } catch (error) {\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(error['data']['odata.error']['message']['value']);\r\n }\r\n }));\r\n\r\n updateGridItems(selectedItems);\r\n setWaitFor(false);\r\n }\r\n\r\n return {\r\n menuItem_DiscardCheckout\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FileDownLoader } from \"../../../src/taskpane/components/helpers/fileDownloader\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { getFileItemIdFromRelativePath, getItemWebViewUrl } from \"../../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { getFileNameDownloadTemplate, getItemCurrentVersion, getItemFieldTextValue, getWildcardValues, versionLabelInternalName } from \"../../../utilities/FileNameDownloadTemplateHelper\";\r\n\r\nexport function useMenuItem_Download(listFields: any, selectedItems: any[], waitFor: boolean, setWaitFor: (waitFor: boolean) => void, isInOneDrive: boolean, setWaitForContext) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo?.sites);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n\r\n const [menuItem_Download, setMenuItem_Download] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length > 0\r\n && !(selectedItems.some(x => x?.File_x0020_Type === \"url\"))\r\n && !(selectedItems.some(x => x?.EffectiveBasePermissions?.canOpenItems === false))\r\n && !(selectedItems.some(x => x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)) || selectedItems.some(x => x.ProgId === \"OneNote.Notebook\")) && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n setMenuItem_Download(\r\n {\r\n key: \"download\",\r\n disabled: (waitFor === true || isBusySaving === true),\r\n text: `${languageStrings.Download}`,\r\n iconProps: { iconName: \"Download\" },\r\n onClick: () => {\r\n downloadFile();\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Download(null);\r\n }\r\n }, [selectedItems, waitFor, currentDirectory]);\r\n\r\n const downloadFile = async () => {\r\n setWaitForContext(languageStrings.Downloading);\r\n setWaitFor(true);\r\n\r\n try {\r\n let listId: string;\r\n let webUrl: string;\r\n let fileNameTemplateString: string;\r\n let wildcardValues: string[];\r\n if (!isInOneDrive) {\r\n listId = currentSharepointFolder?.sharepointListId ?? currentDirectory?.sharePointListId;\r\n webUrl = currentDirectory?.webUrl;\r\n\r\n fileNameTemplateString = getFileNameDownloadTemplate(siteInfo, currentDirectory?.siteDisplayName, currentDirectory?.DocumentLibrary);\r\n if (fileNameTemplateString) {\r\n wildcardValues = getWildcardValues(fileNameTemplateString);\r\n }\r\n }\r\n\r\n const driveId = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n const driveItems = await Promise.all(selectedItems.map(async (item) => {\r\n const spItemUrlparts = item['.spItemUrl'].split('/');\r\n let itemId: string = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + item.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n\r\n let fileName: string;\r\n if (fileNameTemplateString && Array.isArray(wildcardValues) && wildcardValues.length > 0 && listFields) {\r\n let itemValues: any;\r\n if (item && webUrl && listId) {\r\n const itemUniqueId: string = item?.UniqueId?.replace(\"{\", \"\").replace(\"}\", \"\");\r\n if (itemUniqueId) {\r\n const itemCurrentVersion = await getItemCurrentVersion(await authModule.getSharePointAccessToken(), webUrl, listId, itemUniqueId);\r\n if (itemCurrentVersion) {\r\n itemValues = itemCurrentVersion;\r\n }\r\n }\r\n }\r\n\r\n fileName = fileNameTemplateString;\r\n wildcardValues.forEach(wildcardValue => {\r\n const field = wildcardValue === versionLabelInternalName\r\n ? { InternalName: versionLabelInternalName }\r\n : listFields.value.find(x => x.Title === wildcardValue || x.InternalName === wildcardValue);\r\n\r\n fileName = fileName.replaceAll(`<<[${wildcardValue}]>>`, getItemFieldTextValue(itemValues ?? item, field) ?? \"\");\r\n });\r\n fileName += \".\" + item[\".fileType\"];\r\n }\r\n else {\r\n fileName = item.FileLeafRef;\r\n }\r\n\r\n return {\r\n driveId: driveId,\r\n itemId: itemId,\r\n name: fileName\r\n };\r\n }));\r\n\r\n const downloadRequestPayload = {\r\n accessToken: await authModule.getGraphAccessToken(),\r\n items: driveItems\r\n };\r\n\r\n await FileDownLoader.downloadFileStream(downloadRequestPayload);\r\n } catch (error) {\r\n logger(error, \"useMenuItem_Download.tsx (downloadFile)\");\r\n }\r\n\r\n setWaitFor(false);\r\n setWaitForContext(languageStrings?.LoadingOnly);\r\n }\r\n\r\n return {\r\n menuItem_Download\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FileDownLoader } from \"../../../src/taskpane/components/helpers/fileDownloader\";\r\nimport { removeExtension } from \"../../../src/taskpane/components/helpers/stringHelper\";\r\nimport { extensions, SharePointFolderContentTypeIds, validPdfExtensions } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { getFileItemIdFromRelativePath, getFilePdfByteContent, getItemWebViewUrl } from \"../../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { getFileNameDownloadTemplate, getItemCurrentVersion, getItemFieldTextValue, getWildcardValues, versionLabelInternalName } from \"../../../utilities/FileNameDownloadTemplateHelper\";\r\n\r\nexport function useMenuItem_DownloadAsPDF(\r\n listFields: any,\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n isInOneDrive: boolean,\r\n setIsCMErrorModalOpen: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage?: (errorMessage: string) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo?.sites);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n\r\n const [menuItem_DownloadAsPDF, setMenuItem_DownloadAsPDF] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 1\r\n && selectedItems[0].EffectiveBasePermissions?.canOpenItems\r\n && !selectedItems[0].ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)\r\n && validPdfExtensions.some(validExt => selectedItems[0][\".fileType\"]?.replace(\".\", \"\")?.toLowerCase() === validExt)) {\r\n setMenuItem_DownloadAsPDF(\r\n {\r\n key: \"downloadAsPDF\",\r\n disabled: (waitFor === true || isBusySaving === true),\r\n text: `${languageStrings.DownloadAsPdf}`,\r\n iconProps: { iconName: \"PDF\" },\r\n onClick: () => {\r\n downloadFileAsPDF(selectedItems[0]);\r\n }\r\n }\r\n );\r\n } else {\r\n setMenuItem_DownloadAsPDF(null);\r\n }\r\n }, [selectedItems, waitFor, currentDirectory, oneDriveRootDetails]);\r\n\r\n const downloadFileAsPDF = async (selectedItem: any) => {\r\n setWaitFor(true);\r\n\r\n try {\r\n let listId: string;\r\n let webUrl: string;\r\n let fileNameTemplateString: string;\r\n let wildcardValues: string[];\r\n if (!isInOneDrive) {\r\n listId = currentSharepointFolder?.sharepointListId ?? currentDirectory?.sharePointListId;\r\n webUrl = currentDirectory?.webUrl;\r\n\r\n fileNameTemplateString = getFileNameDownloadTemplate(siteInfo, currentDirectory?.siteDisplayName, currentDirectory?.DocumentLibrary);\r\n if (fileNameTemplateString) {\r\n wildcardValues = getWildcardValues(fileNameTemplateString);\r\n }\r\n }\r\n\r\n const driveId = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n const spItemUrlparts = selectedItem['.spItemUrl'].split('/');\r\n let itemId: string = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + selectedItem.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n\r\n const [pdfContent, fileName] = await Promise.all([\r\n getFilePdfByteContent({ id: itemId, driveId: driveId }),\r\n (async () => {\r\n if (fileNameTemplateString && Array.isArray(wildcardValues) && wildcardValues.length > 0 && listFields) {\r\n let itemValues: any;\r\n if (selectedItem && webUrl && listId) {\r\n const itemUniqueId: string = selectedItem?.UniqueId?.replace(\"{\", \"\").replace(\"}\", \"\");\r\n if (itemUniqueId) {\r\n const itemCurrentVersion = await getItemCurrentVersion(await authModule.getSharePointAccessToken(), webUrl, listId, itemUniqueId);\r\n if (itemCurrentVersion) {\r\n itemValues = itemCurrentVersion;\r\n }\r\n }\r\n }\r\n\r\n let fileName: string = fileNameTemplateString;\r\n wildcardValues.forEach(wildcardValue => {\r\n const field = wildcardValue === versionLabelInternalName\r\n ? { InternalName: versionLabelInternalName }\r\n : listFields.value.find(x => x.Title === wildcardValue || x.InternalName === wildcardValue);\r\n\r\n fileName = fileName.replaceAll(`<<[${wildcardValue}]>>`, getItemFieldTextValue(itemValues ?? selectedItem, field) ?? \"\");\r\n });\r\n return (fileName += \".\" + extensions.pdf);\r\n }\r\n else {\r\n return `${removeExtension(selectedItem.FileLeafRef)}.${extensions.pdf}`;\r\n }\r\n })()\r\n ]);\r\n\r\n if (!pdfContent) {\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(languageStrings.DownloadAsPdfFailure);\r\n }\r\n else {\r\n FileDownLoader.downloadFile(pdfContent, fileName);\r\n }\r\n } catch (error) {\r\n logger(error, \"useMenuItem_DownloadAsPDF.tsx (downloadFileAsPDF)\");\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(languageStrings.DownloadAsPdfFailure);\r\n }\r\n\r\n setWaitFor(false);\r\n }\r\n\r\n return {\r\n menuItem_DownloadAsPDF\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\n\r\nexport function useMenuItem_Error(setIsCMUploadFilesPanelOpen: (isCMUploadFilesPanelOpen: boolean) => void, setIsCMMoveFilesListPanelOpen: (isCMMoveFilesListPanelOpen: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const errorMessages = useSelector((state: RootState) => state.savingInBackground.errorMessages); \r\n const exchangeProgress = useSelector((state: RootState) => state.contentManagerDirectory.exchange.progress);\r\n const moveToMode = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.mode);\r\n\r\n const [menuItem_Error, setMenuItem_Error] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (errorMessages?.length > 0) {\r\n setMenuItem_Error(\r\n {\r\n key: \"errorMessage\",\r\n text: `${languageStrings.ErrorMessageGeneric}`,\r\n iconProps: { iconName: \"Error\" },\r\n onClick: () => {\r\n if ((exchangeProgress && exchangeProgress.status) || moveToMode === ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails) {\r\n setIsCMMoveFilesListPanelOpen(true);\r\n } else {\r\n setIsCMUploadFilesPanelOpen(true);\r\n }\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Error(null)\r\n }\r\n }, [errorMessages, exchangeProgress, moveToMode])\r\n\r\n return {\r\n menuItem_Error\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Filter(setIsCMFileFilterPanelOpen: (isCMFileFilterPanelOpen: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n const filterFields = useSelector((state: RootState) => state.contentManagerDirectory.filterFields);\r\n const filterSections = useSelector((state: RootState) => state.contentManagerDirectory.filterSections);\r\n\r\n const [menuItem_Filter, setMenuItem_Filter] = React.useState();\r\n\r\n React.useEffect(() => {\r\n setMenuItem_Filter(\r\n {\r\n key: \"filter\",\r\n disabled: (!filterFields || filterFields?.length === 0) && (!filterSections || filterSections?.length === 0),\r\n iconProps: { iconName: \"Filter\" },\r\n iconOnly: true,\r\n tooltipHostProps: {\r\n content: {languageStrings.Filter}\r\n },\r\n onClick: () => {\r\n setIsCMFileFilterPanelOpen(true);\r\n }\r\n }\r\n );\r\n }, [searchValue, filterFields, filterSections]);\r\n\r\n return {\r\n menuItem_Filter\r\n }\r\n}","import { IContextualMenuItem, Spinner, SpinnerSize } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_LoadingFiles(selectedItems: any[], waitFor: boolean, waitForContext: string) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const [menuItem_LoadingFiles, setMenuItem_LoadingFiles] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (waitFor === true) {\r\n setMenuItem_LoadingFiles(\r\n {\r\n key: \"loadingFiles\",\r\n text: `${waitForContext} ${selectedItems.length} ${selectedItems.length === 1 ? languageStrings.Item.toLowerCase() : languageStrings.Items.toLowerCase()}`,\r\n disabled: true,\r\n onRenderIcon: () => {\r\n return \r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_LoadingFiles(null)\r\n }\r\n }, [selectedItems, waitFor]);\r\n\r\n \r\n return {\r\n menuItem_LoadingFiles\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_More(\r\n selectedItems: any[],\r\n isInOneDrive: boolean,\r\n menuItem_Checkout: IContextualMenuItem,\r\n menuItem_Checkin: IContextualMenuItem,\r\n menuItem_DiscardCheckout: IContextualMenuItem,\r\n menuItem_Publish: IContextualMenuItem,\r\n menuItem_Unpublish: IContextualMenuItem,\r\n menuItem_VersionAppRej: IContextualMenuItem,\r\n ) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n \r\n const [menuItem_More, setMenuItem_More] = React.useState();\r\n\r\n React.useEffect(() => {\r\n const moreItem: IContextualMenuItem = {\r\n key: \"more\",\r\n disabled: isBusySaving === true,\r\n text: languageStrings.More,\r\n iconProps: { iconName: \"MoreVertical\" },\r\n subMenuProps: {\r\n items: []\r\n }\r\n }\r\n\r\n if (menuItem_Checkout) {\r\n moreItem.subMenuProps.items.push(menuItem_Checkout);\r\n }\r\n \r\n if (menuItem_Checkin) {\r\n moreItem.subMenuProps.items.push(menuItem_Checkin);\r\n }\r\n\r\n if (menuItem_DiscardCheckout) {\r\n moreItem.subMenuProps.items.push(menuItem_DiscardCheckout);\r\n }\r\n\r\n if (menuItem_Publish) {\r\n moreItem.subMenuProps.items.push(menuItem_Publish);\r\n }\r\n\r\n if (menuItem_Unpublish) {\r\n moreItem.subMenuProps.items.push(menuItem_Unpublish);\r\n }\r\n\r\n if (menuItem_VersionAppRej) {\r\n moreItem.subMenuProps.items.push(menuItem_VersionAppRej);\r\n }\r\n\r\n setMenuItem_More(moreItem.subMenuProps.items.length > 0 ? moreItem : null);\r\n }, [selectedItems, currentSharepointFolder, menuItem_Checkout, menuItem_Checkin, menuItem_DiscardCheckout, menuItem_Publish, menuItem_Unpublish, menuItem_VersionAppRej, isInOneDrive])\r\n \r\n return {\r\n menuItem_More\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { setContentManagerMoveTo } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_MoveTo(itemCount: number | undefined, selectedItems: any[], setShowConfirmMoveToDialog: (isShowConfirmMoveToDialog: boolean) => void, isInOneDrive: boolean, isFetchingData: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const dispatch = useDispatch();\r\n\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const moveToEnabled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.moveToEnabled);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const moveToDirectory = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.workingDirectories.length > 0 ? state.contentManagerDirectory.moveTo.workingDirectories[state.contentManagerDirectory.moveTo.workingDirectories.length - 1] : null);\r\n const moveToMode = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.mode);\r\n const moveToBusyMovingFiles = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.busyMovingFiles);\r\n const moveToBusyFetchingFiles = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.busyFetchingFiles);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const tenantCopyMoveToEnabled = useSelector((state: RootState) => state.tenantInfo?.enableCopyMoveTo);\r\n\r\n const [menuItem_MoveTo, setMenuItem_MoveTo] = React.useState();\r\n\r\n React.useEffect(() => { \r\n if (tenantCopyMoveToEnabled && itemCount > 0 && selectedItems.length === 0 && !moveToEnabled && currentSharepointFolder?.userPermissions?.canDeleteListItem && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n setMenuItem_MoveTo(\r\n {\r\n key: \"moveTo\",\r\n text: `${languageStrings.MoveAll}`,\r\n disabled: isFetchingData || moveToBusyMovingFiles || moveToBusyFetchingFiles,\r\n iconProps: { iconName: \"FabricMovetoFolder\" },\r\n onClick: () => {\r\n const sourceSiteUrl = isInOneDrive ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n \r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.MoveAll,\r\n moveToEnabled: false,\r\n workingDirectories: workingDirectories,\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceSiteUrl,\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0, \r\n error: \"\"\r\n }));\r\n\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }\r\n )\r\n }\r\n else if (tenantCopyMoveToEnabled\r\n && !moveToEnabled\r\n && itemCount > 0\r\n && selectedItems.length > 0\r\n && !selectedItems.some(x => x?.EffectiveBasePermissions?.canDeleteListItem === false)\r\n && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n setMenuItem_MoveTo(\r\n {\r\n key: \"moveTo\",\r\n text: `${languageStrings.MoveTo}`,\r\n iconProps: { iconName: \"FabricMovetoFolder\" },\r\n onClick: () => {\r\n const sourceSiteUrl = isInOneDrive ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl;\r\n\r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.Move,\r\n moveToEnabled: false,\r\n workingDirectories: workingDirectories,\r\n selectedFiles: selectedItems,\r\n siteUrl: \"\",\r\n sourceSiteUrl,\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n isMoveInProgress: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n \r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }\r\n )\r\n } else if (moveToEnabled && (moveToMode === ContentManagerCopyMoveModeEnum.Move || moveToMode === ContentManagerCopyMoveModeEnum.MoveAll)) {\r\n setMenuItem_MoveTo(\r\n {\r\n key: \"moveTo\",\r\n text: `${languageStrings.Confirm} ${languageStrings.MoveTo}`,\r\n disabled: currentDirectory?.id === moveToDirectory?.id || !currentSharepointFolder?.userPermissions?.canEditListItem || isFetchingData,\r\n iconProps: { iconName: \"FabricMovetoFolder\" },\r\n onClick: () => {\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_MoveTo(null);\r\n }\r\n }, [itemCount, selectedItems, moveToEnabled, currentDirectory, moveToDirectory, moveToMode, isInOneDrive, workingDirectories, isFetchingData, moveToBusyMovingFiles, moveToBusyFetchingFiles, currentSharepointFolder?.userPermissions])\r\n\r\n return {\r\n menuItem_MoveTo\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { setContentManagerExchange, setContentManagerMoveTo } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { setFiles } from \"../../../src/taskpane/redux/modules/file\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_MoveToCancel(selectedItems: any[], waitFor: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const dispatch = useDispatch();\r\n \r\n const moveToEnabled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.moveToEnabled);\r\n\r\n const [menuItem_MoveToCancel, setMenuItem_MoveToCancel] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (moveToEnabled) {\r\n setMenuItem_MoveToCancel(\r\n {\r\n key: \"moveToCancel\",\r\n text: `${languageStrings.Cancel}`,\r\n iconProps: { iconName: \"ChromeClose\" },\r\n onClick: () => {\r\n dispatch(setContentManagerMoveTo({\r\n moveToEnabled: false,\r\n workingDirectories: [],\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n }));\r\n dispatch(setContentManagerExchange({selectedFolderId: \"\", selectedFolderName: \"\", selectedAccount: \"\" }));\r\n dispatch(setFiles([]));\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_MoveToCancel(null)\r\n }\r\n }, [selectedItems, moveToEnabled])\r\n\r\n return {\r\n menuItem_MoveToCancel\r\n }\r\n\r\n}","import { Icon, IContextualMenuItem, IIconStyles } from \"@fluentui/react\";\r\nimport { getFileTypeIconProps } from \"@fluentui/react-file-type-icons\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { newTemplateFilterEnum } from \"../../../src/taskpane/components/enums/newTemplateFilterEnum\";\r\nimport { FolderViewWrapper } from \"../../../src/taskpane/components/helpers/folderViewWrapper\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { DocubirdCache, SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { NewDocumentTemplate } from \"../../../src/taskpane/interfaces/IDocumentTemplate\";\r\nimport { CacheHelper } from \"../../../utilities/CacheHelper\";\r\nimport { DatasourceFieldHelper } from \"../../../src/taskpane/components/helpers/dataSourceFieldHelper\";\r\n\r\nconst rootContentType: string = \"root\";\r\n\r\nconst iconStyles: IIconStyles = {\r\n root: {\r\n display: \"flex\",\r\n marginLeft: 4,\r\n marginRight: 4\r\n }\r\n}\r\n\r\nexport function useMenuItem_NewDatasourceDocumentTemplate(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n newDocumentTemplates: NewDocumentTemplate[],\r\n openCreateTemplateModal: (selectedTemplate: NewDocumentTemplate) => void\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo.sites);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n const enableNewTemplateFilters = useSelector((state: RootState) => state.tenantInfo.enableNewTemplateFilters);\r\n const newTemplateDocumentSetFilters = useSelector((state: RootState) => state.tenantInfo.newTemplateDocumentSetFilters);\r\n const newTemplateFolderFilters = useSelector((state: RootState) => state.tenantInfo.newTemplateFolderFilters);\r\n const newTemplateLibraryFilters = useSelector((state: RootState) => state.tenantInfo.newTemplateLibraryFilters);\r\n const enforceStrictDocumentSetsOnly = useSelector((state: RootState) => state.tenantInfo.enforceStrictDocumentSetsOnly);\r\n\r\n const [menuItem_NewDatasourceDocumentTemplate, setMenuItem_NewDatasourceDocumentTemplate] = React.useState();\r\n const [datasourceDocumentTemplates] = React.useState(() => {\r\n const dsDocTemplates = CacheHelper.get(DocubirdCache.datasourceDocumentTemplates);\r\n if (Array.isArray(dsDocTemplates)) {\r\n return dsDocTemplates as NewDocumentTemplate[];\r\n }\r\n return [];\r\n });\r\n\r\n const newDatasourceDocumentTemplateItem: IContextualMenuItem = {\r\n key: \"newDatasourceFileTemplate\",\r\n disabled: !currentDirectory?.sharePointListId || waitFor === true || isBusySaving === true,\r\n text: languageStrings.Templates,\r\n iconProps: { iconName: \"FileTemplate\" },\r\n subMenuProps: {\r\n items: []\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 0\r\n && datasourceDocumentTemplates.length > 0\r\n && currentSharepointFolder?.userPermissions?.canAddListItem\r\n && currentSharepointFolder?.userPermissions?.canEditListItem\r\n && !searchValue\r\n && !workingDirectories.some(x => x.type === ComponentTypes.SharePointList)) {\r\n\r\n var folderViewWrapper = new FolderViewWrapper(siteInfo, currentDirectory);\r\n const canViewFolder = folderViewWrapper.canViewFolder();\r\n\r\n const isInFolder = ((currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath) || (currentDirectory?.directory?.length > 0 && currentDirectory.parentId));\r\n\r\n let currentContentype: string;\r\n if (enforceStrictDocumentSetsOnly || enableNewTemplateFilters) {\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet)) {\r\n currentContentype = SharePointFolderContentTypeIds.documentSet;\r\n } else if (isInFolder) {\r\n currentContentype = SharePointFolderContentTypeIds.folder;\r\n } else {\r\n currentContentype = rootContentType;\r\n }\r\n }\r\n\r\n if (enableNewTemplateFilters) {\r\n if ((currentContentype === rootContentType && !newTemplateLibraryFilters?.includes(newTemplateFilterEnum.file))\r\n || (currentContentype === SharePointFolderContentTypeIds.folder && !newTemplateFolderFilters?.includes(newTemplateFilterEnum.file))\r\n || (currentContentype === SharePointFolderContentTypeIds.documentSet && newTemplateDocumentSetFilters?.includes(newTemplateFilterEnum.file))) {\r\n setMenuItem_NewDatasourceDocumentTemplate(null);\r\n return;\r\n }\r\n }\r\n\r\n if (enforceStrictDocumentSetsOnly\r\n && currentContentype === rootContentType\r\n && newDocumentTemplates?.some(template => template?.templateId?.startsWith(SharePointFolderContentTypeIds.documentSet))) {\r\n setMenuItem_NewDatasourceDocumentTemplate(null);\r\n return;\r\n }\r\n\r\n if (canViewFolder || (!canViewFolder && !isInFolder)) {\r\n const currentSite: string[] = [currentDirectory?.siteDisplayName ?? \"\"];\r\n const currentLibrary: string[] = [currentDirectory?.DocumentLibrary ?? \"\"];\r\n\r\n datasourceDocumentTemplates\r\n .filter(template => DatasourceFieldHelper.checkDatasourceAllowed(currentSite, currentLibrary, template.datasource))\r\n .map(template => {\r\n const subMenuItem: IContextualMenuItem = {\r\n key: `new-${template.templateId}`,\r\n text: template.title,\r\n iconProps: {},\r\n onRenderIcon: () => ,\r\n onClick: () => {\r\n openCreateTemplateModal(template);\r\n }\r\n }\r\n newDatasourceDocumentTemplateItem.subMenuProps?.items?.push(subMenuItem);\r\n });\r\n\r\n if (newDatasourceDocumentTemplateItem.subMenuProps?.items?.length > 0) {\r\n setMenuItem_NewDatasourceDocumentTemplate(newDatasourceDocumentTemplateItem);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n setMenuItem_NewDatasourceDocumentTemplate(null);\r\n\r\n }, [selectedItems, waitFor, newDocumentTemplates, currentSharepointFolder, workingDirectories, currentDirectory, siteInfo, datasourceDocumentTemplates, searchValue, enableNewTemplateFilters, newTemplateLibraryFilters, newTemplateFolderFilters, newTemplateDocumentSetFilters]);\r\n\r\n return {\r\n menuItem_NewDatasourceDocumentTemplate\r\n }\r\n}","import { IContextualMenuItem, IContextualMenuItemProps, IRenderFunction } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { officeFileType } from \"../../../src/taskpane/config/constants\";\r\nimport { ISearchOpenFileInfo } from \"../../../src/taskpane/interfaces/ISearchOpenFileInfo\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { getFileItemIdFromRelativePath, getItemCustomSelect, getItemWebViewUrl, getListItemWebUrl } from \"../../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { brandedCommandbarIconStyles } from \"../../../src/taskpane/config/controlStyles\";\r\nimport { OneDriveUrlHelper } from \"../../../src/taskpane/components/helpers/oneDriveUrlHelper\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { getGridItemUrl } from \"../../../src/taskpane/components/helpers/UrlHelper\";\r\nimport { CacheHelper } from \"../../../utilities/CacheHelper\";\r\n\r\nexport function useMenuItem_Open(selectedItems: any[], waitFor: boolean, setWaitFor: (waitFor: boolean) => void, isInOneDrive: boolean, selectedItemInfo: ISearchOpenFileInfo) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const allowOpenInSharePoint = useSelector((state: RootState) => state.user.tenantAllowOpenInSharePoint ?? true);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n\r\n const [menuItem_Open, setMenuItem_Open] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 1 && !(selectedItemInfo?.type == officeFileType.Browser && allowOpenInSharePoint === false) && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n const subMenuItems: IContextualMenuItem[] = getOpenButtonItems(selectedItems[0], isInOneDrive, selectedItemInfo);\r\n setMenuItem_Open(subMenuItems?.length > 0\r\n ? {\r\n key: 'open',\r\n disabled: waitFor === true || isBusySaving === true,\r\n name: languageStrings.Open,\r\n iconProps: { iconName: \"FolderOpen\" },\r\n subMenuProps: {\r\n items: subMenuItems\r\n }\r\n }\r\n : null\r\n );\r\n } else {\r\n setMenuItem_Open(null);\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive, selectedItemInfo, isBusySaving, allowOpenInSharePoint, currentDirectory, oneDriveRootDetails, userAccount, currentSharepointFolder]);\r\n\r\n const getOpenButtonItems = (selectedItem: any, isInOneDrive: boolean, selectedItemInfo: ISearchOpenFileInfo): IContextualMenuItem[] => {\r\n const isFolder: boolean = selectedItem?.FSObjType === \"1\";\r\n\r\n const browser: IContextualMenuItem = {\r\n key: \"browser\",\r\n text: isFolder\r\n ? !isInOneDrive ? `${languageStrings.OpenIn} SharePoint` : `${languageStrings.OpenIn} OneDrive`\r\n : `${languageStrings.OpenIn} ${languageStrings.Browser}`,\r\n iconProps: { iconName: !isFolder ? \"BrowserTab\" : !isInOneDrive ? \"SharepointLogo\" : \"OneDriveLogo\" },\r\n onClick: () => {\r\n (async () => {\r\n if (selectedItem?.File_x0020_Type === \"url\") {\r\n const itemUrl: string = selectedItem._ShortcutUrl ?? CacheHelper.get(`shortcutLink_${selectedItem.UniqueId?.replace(\"{\", \"\").replace(\"}\", \"\")}`);\r\n if (itemUrl) {\r\n const url = await getGridItemUrl(selectedItem, itemUrl);\r\n window.open(url, \"_blank\");\r\n return;\r\n }\r\n }\r\n\r\n setWaitFor(true);\r\n try {\r\n const item = selectedItem;\r\n const driveId = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n\r\n const spItemUrlparts = item['.spItemUrl'].split('/');\r\n let itemId = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n\r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + item.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n\r\n const url = await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, itemId);\r\n window.open(url, \"_blank\");\r\n } catch (error) {\r\n logger(error, \"useMenuItem_Open.tsx (open in browser)\");\r\n }\r\n setWaitFor(false);\r\n })();\r\n },\r\n onRenderIcon: (props: IContextualMenuItemProps, defaultRender?: IRenderFunction) => {\r\n return selectedItemInfo && selectedItemInfo.iconSrc ? : defaultRender({ ...props })\r\n },\r\n };\r\n\r\n const app: IContextualMenuItem = selectedItemInfo && selectedItem?.EffectiveBasePermissions?.canOpenItems && (!currentSharepointFolder.disableOpenInApp || selectedItemInfo.isOfficeFile) && selectedItem?.File_x0020_Type !== \"url\" && {\r\n key: \"app\",\r\n text: `${languageStrings.OpenIn} ${languageStrings.App}`,\r\n iconProps: { iconName: \"CloneToDesktop\" },\r\n onClick: () => {\r\n (async () => {\r\n setWaitFor(true);\r\n try {\r\n let openSelf: boolean = true;\r\n let url: string;\r\n if (!selectedItemInfo.isOfficeFile) {\r\n const fileId: string = selectedItem.UniqueId?.replace(\"{\", \"\").replace(\"}\", \"\");\r\n const fileName: string = selectedItem.FileLeafRef;\r\n const userEmail: string = userAccount.username;\r\n const userId: string = userAccount.uniqueId;\r\n\r\n let siteId: string;\r\n let listId: string;\r\n let webUrl: string;\r\n if (!isInOneDrive) {\r\n const siteIdParts: string[] = currentDirectory.siteId?.split(\",\"); // xblox.sharepoint.com,058798cc-59c1-451f-8957-49e32c49aeb1,4c5fa046-b695-4b4b-86ef-b47bb86f7cbe\r\n if (Array.isArray(siteIdParts) && siteIdParts.length > 1 && siteIdParts[1]) {\r\n siteId = siteIdParts[1];\r\n }\r\n\r\n listId = currentSharepointFolder?.sharepointListId ?? currentDirectory?.sharePointListId;\r\n webUrl = currentDirectory?.webUrl;\r\n }\r\n\r\n if (!siteId || !listId || !webUrl) {\r\n const driveId: string = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n let itemId: string = await getItemId(selectedItem, driveId);\r\n\r\n const file = driveId && itemId && await getItemCustomSelect(await authModule.getGraphAccessToken(), driveId, itemId, \"sharepointIds\");\r\n if (file?.sharepointIds) {\r\n siteId = file.sharepointIds.siteId;\r\n listId = file.sharepointIds.listId;\r\n webUrl = file.sharepointIds.siteUrl;\r\n }\r\n }\r\n\r\n url = OneDriveUrlHelper.getOpenInOneDriveDesktopUrl(fileId, siteId, listId, userEmail, userId, webUrl, fileName);\r\n }\r\n else {\r\n const driveId: string = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n let itemId: string = await getItemId(selectedItem, driveId);\r\n const fileWebUrl: string = await getListItemWebUrl(await authModule.getGraphAccessToken(), driveId, itemId);\r\n url = `${selectedItemInfo.localUrlPrepended}${fileWebUrl}`;\r\n\r\n if (!selectedItemInfo.localUrlPrepended) {\r\n openSelf = false;\r\n }\r\n }\r\n\r\n window.open(url, openSelf ? \"_self\" : \"_blank\");\r\n } catch (error) {\r\n logger(error, \"useMenuItem_Open.tsx (open in app)\");\r\n }\r\n setWaitFor(false);\r\n })();\r\n },\r\n onRenderIcon: (props: IContextualMenuItemProps, defaultRender?: IRenderFunction) => {\r\n return selectedItemInfo && selectedItemInfo.iconSrc ? : defaultRender({ ...props })\r\n },\r\n };\r\n\r\n let openOptions: IContextualMenuItem[];\r\n if (selectedItem?.EffectiveBasePermissions?.canEditListItem || selectedItem?.EffectiveBasePermissions?.canOpenItems) {\r\n if (selectedItemInfo?.type == officeFileType.Browser) {\r\n openOptions = allowOpenInSharePoint === false\r\n ? []\r\n : [browser];\r\n }\r\n else {\r\n openOptions = [browser, app].filter(x => x);\r\n }\r\n }\r\n return openOptions ?? [];\r\n };\r\n\r\n const getItemId = React.useCallback(async (selectedItem: any, driveId: string) => {\r\n let itemId: string;\r\n try {\r\n const spItemUrlparts = selectedItem[\".spItemUrl\"]?.split(\"/\");\r\n if (Array.isArray(spItemUrlparts) && spItemUrlparts.length > 0) {\r\n itemId = spItemUrlparts[spItemUrlparts.length - 1]?.split(\"?\")[0];\r\n }\r\n\r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + selectedItem.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n } catch (error) {\r\n // Ignore\r\n }\r\n return itemId;\r\n }, []);\r\n\r\n return {\r\n menuItem_Open\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useCheckPiiMutation } from \"../../../src/taskpane/components/_v2/redux/api/local/api-pii-slice\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { extensions, piiConfig, SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { gridSelectedItems } from \"../ContentManagerBody\";\r\nimport { GridProps } from \"../useContentManagerBody\";\r\n\r\n\r\nexport function useMenuItem_PII(selectedItems: any[], waitFor: boolean, gridProps: GridProps, setGridProps: (gridProps:GridProps) => void, setSelectedItems: (selectedItems: gridSelectedItems) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const tenantEnableRedaction = useSelector((state: RootState) => state.user.tenantEnableRedaction);\r\n const tenantEnablePII = useSelector((state: RootState) => state.user.tenantEnablePII);\r\n \r\n const [menuItem_PII, setMenuItem_PII] = React.useState();\r\n\r\n const [checkPiiMutation] = useCheckPiiMutation();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length > 0 && tenantEnablePII && currentDirectory.type !== ComponentTypes.SharePointList &&\r\n !(selectedItems.every(x => x?.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder))) &&\r\n !(selectedItems.some(x => x?.ProgId === \"OneNote.Notebook\")) &&\r\n selectedItems.some(item => item && item[piiConfig.privacySentitiveColumnName] !== undefined) &&\r\n selectedItems.some(item => item && item[piiConfig.privacySentitiveDataColumnName] !== undefined) &&\r\n !selectedItems.some(x => x?.EffectiveBasePermissions?.canEditListItem === false)) {\r\n\r\n const piiItem: IContextualMenuItem = {\r\n key: \"privacy\",\r\n disabled: waitFor === true,\r\n text: languageStrings.PrivacySensitiveDisplay,\r\n iconProps: { iconName: \"Unlock\" },\r\n subMenuProps: {\r\n items: [\r\n {\r\n key: \"link\",\r\n text: languageStrings.Recheck,\r\n iconProps: { iconName: \"Refresh\" },\r\n onClick: () => {\r\n recheckPii(false);\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n\r\n if (tenantEnableRedaction) {\r\n let showRedactButton = false;\r\n selectedItems?.forEach(selectedFile => {\r\n if (\r\n selectedFile.File_x0020_Type === extensions.pdf &&\r\n selectedFile[piiConfig.privacySentitiveDataColumnName] !== undefined &&\r\n selectedFile[piiConfig.privacySentitiveColumnName] === 'Yes'\r\n ) {\r\n showRedactButton = true;\r\n }\r\n });\r\n\r\n if (showRedactButton) {\r\n\r\n piiItem.subMenuProps.items.push({\r\n key: \"redact\",\r\n text: languageStrings.Redact,\r\n iconProps: { iconName: \"PageEdit\" },\r\n onClick: () => {\r\n recheckPii(true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n setMenuItem_PII(piiItem);\r\n } else {\r\n setMenuItem_PII(null);\r\n }\r\n }, [selectedItems, waitFor, currentDirectory]);\r\n\r\n const recheckPii = async (redactPiiData: boolean) => {\r\n const newGridProps: GridProps = { ...gridProps };\r\n let newSelectedFiles: any[] = [...selectedItems];\r\n \r\n let newRows: any[] = []\r\n try {\r\n newGridProps.items.forEach(item => {\r\n const newItem = item ? { ...item } : item;\r\n \r\n const isSelected = item && newSelectedFiles.find(x => x.ID === item.ID);\r\n \r\n if ((isSelected && isSelected.FSObjType === '0' && !redactPiiData) || (isSelected && isSelected.FSObjType === '0' && redactPiiData && isSelected.File_x0020_Type === extensions.pdf && isSelected[piiConfig.privacySentitiveColumnName] === 'Yes')) {\r\n newItem[piiConfig.privacySentitiveColumnName] = \"No\";\r\n newItem[piiConfig.privacySentitiveDataColumnName] = \"\";\r\n newItem['isBusy'] = true;\r\n }\r\n newRows.push(newItem);\r\n });\r\n \r\n newGridProps.items = [...newRows];\r\n \r\n setGridProps(newGridProps);\r\n \r\n const domain = `https://${currentDirectory.webUrl.split('//')[1].split('/')[0]}`;\r\n \r\n await Promise.all(newGridProps.items.map(async (item) => {\r\n const isSelected = { ...newSelectedFiles.find(x => x.ID === item.ID) };\r\n \r\n if ((isSelected && isSelected.FSObjType === '0' && !redactPiiData) || (isSelected && isSelected.FSObjType === '0' && redactPiiData && isSelected.File_x0020_Type === extensions.pdf && isSelected[piiConfig.privacySentitiveColumnName] === 'Yes')) {\r\n try {\r\n const piiResults = await checkPiiMutation({\r\n accessToken: await authModule.getSharePointAccessToken(),\r\n fileUrl: `${domain}${item['FileRef']}`,\r\n siteUrl: currentDirectory.webUrl,\r\n forceRecheck: true,\r\n redactPiiData\r\n }).unwrap();\r\n \r\n try {\r\n item[piiConfig.privacySentitiveColumnName] = piiResults.piiDetected ? \"Yes\" : \"No\";\r\n isSelected[piiConfig.privacySentitiveColumnName] = piiResults.piiDetected ? \"Yes\" : \"No\";\r\n \r\n if (piiResults.piiError) {\r\n item[piiConfig.privacySentitiveDataColumnName] = languageStrings.PrivacySensitiveCheckError\r\n isSelected[piiConfig.privacySentitiveDataColumnName] = languageStrings.PrivacySensitiveCheckError\r\n } else {\r\n item[piiConfig.privacySentitiveDataColumnName] = piiResults.pii;\r\n isSelected[piiConfig.privacySentitiveDataColumnName] = piiResults.pii;\r\n }\r\n \r\n item['isBusy'] = false;\r\n \r\n setGridProps({ ...newGridProps, items: [...newGridProps.items] });\r\n \r\n const newSelectedItems: any[] = [];\r\n newSelectedFiles.forEach(selectedFile => {\r\n if (selectedFile.ID === isSelected.ID) {\r\n newSelectedItems.push({ ...isSelected });\r\n }\r\n else {\r\n newSelectedItems.push({ ...selectedFile });\r\n }\r\n });\r\n \r\n \r\n newSelectedFiles = [...newSelectedItems];\r\n setSelectedItems({ ...selectedItems, items: [...newSelectedFiles], count: selectedItems.length });\r\n \r\n } catch (error) {\r\n logger(error, \"useMenuItem_PII.tsx (recheckPii promise map)\");\r\n }\r\n \r\n } catch (error) {\r\n item[piiConfig.privacySentitiveColumnName] = \"No\";\r\n item[piiConfig.privacySentitiveDataColumnName] = languageStrings.PrivacySensitiveCheckError;\r\n item['isBusy'] = false;\r\n \r\n setGridProps({ ...newGridProps, items: [...newGridProps.items] });\r\n }\r\n }\r\n }));\r\n \r\n } catch (error) {\r\n logger(error, \"useMenuItem_PII.tsx (recheckPii)\");\r\n }\r\n }\r\n \r\n return {\r\n menuItem_PII\r\n }\r\n\r\n}","import { IContextualMenuItem, IIconProps } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { FileTypeEnum } from \"../../../src/taskpane/components/enums/fileTypeEnum\";\r\nimport { FolderTypeIconEnum } from \"../../../src/taskpane/components/enums/FolderTypeIconEnum\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { IPageSettings } from \"../../../src/taskpane/interfaces/IPageSettings\";\r\nimport { ISearchOpenFileInfo } from \"../../../src/taskpane/interfaces/ISearchOpenFileInfo\";\r\nimport { IStoreItem } from \"../../../src/taskpane/interfaces/IStoredItem\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { addPinnedItem, isFilePinned, isFolderPinned, removePinnedItem } from \"../../../src/taskpane/redux/modules/pinnedItems\";\r\nimport { getFileItemIdFromRelativePath, getItemWebViewUrl, getListItemWebUrl } from \"../../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\n\r\nconst unpinIconProps: IIconProps = { iconName: \"Unpin\" };\r\nconst pinIconProps: IIconProps = { iconName: \"Pin\" };\r\n\r\nexport function useMenuItem_Pin(selectedItems: any[], waitFor: boolean, isInOneDrive: boolean, selectedItemInfo?: ISearchOpenFileInfo) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n \r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const pinnedItems = useSelector((state: RootState) => state.pinned?.pinnedItems);\r\n\r\n const [isSelectedItemPinned, setIsSelectedItemPinned] = React.useState(false);\r\n const [menuItem_Pin, setMenuItem_Pin] = React.useState();\r\n \r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n \r\n React.useEffect(() => {\r\n (async () => {\r\n if (selectedItems?.length === 1 && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n let isItemPinned: boolean;\r\n \r\n const selectedGridItem = selectedItems[0];\r\n let driveId: string = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n let itemId: string;\r\n const spItemUrlparts = selectedGridItem[\".spItemUrl\"]?.split('/');\r\n if (spItemUrlparts?.length > 2) {\r\n if (!driveId) {\r\n driveId = spItemUrlparts[spItemUrlparts.length - 2]?.trim();\r\n }\r\n itemId = spItemUrlparts[spItemUrlparts.length - 1]?.split('?')[0];\r\n }\r\n \r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const itemUrl = new URL(driveUrl.origin + selectedGridItem.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, itemUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n \r\n switch (selectedGridItem.FSObjType) {\r\n case \"0\": // File\r\n isItemPinned = isFilePinned(itemId, pinnedItems);\r\n break;\r\n \r\n case \"1\": // Folder\r\n isItemPinned = isFolderPinned(driveId, itemId, pinnedItems);\r\n break;\r\n }\r\n \r\n setIsSelectedItemPinned(isItemPinned);\r\n }\r\n })();\r\n }, [pinnedItems, selectedItems, currentDirectory]);\r\n \r\n React.useEffect(() => {\r\n if (selectedItems.length === 1 && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n setMenuItem_Pin(\r\n {\r\n key: \"pin\",\r\n disabled: waitFor === true,\r\n text: selectedItems[0]?.FSObjType === \"0\"\r\n ? (isSelectedItemPinned ? languageStrings.UnpinFile : languageStrings.PinThisFile)\r\n : (isSelectedItemPinned ? languageStrings.UnpinFolder : languageStrings.PinThisFolder),\r\n iconProps: isSelectedItemPinned ? unpinIconProps : pinIconProps,\r\n onClick: pinUnpinItem,\r\n }\r\n )\r\n }\r\n else {\r\n setMenuItem_Pin(null);\r\n }\r\n }, [selectedItems, isSelectedItemPinned, waitFor, currentDirectory]);\r\n\r\n const pinUnpinItem = React.useCallback((ev?: React.MouseEvent | React.KeyboardEvent, item?: IContextualMenuItem) => {\r\n (async () => {\r\n try {\r\n let driveId: string = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n let itemId: string;\r\n const spItemUrlparts = selectedItems[0][\".spItemUrl\"]?.split('/');\r\n if (spItemUrlparts?.length > 2) {\r\n if (!driveId) {\r\n driveId = spItemUrlparts[spItemUrlparts.length - 2]?.trim();\r\n }\r\n itemId = spItemUrlparts[spItemUrlparts.length - 1]?.split('?')[0];\r\n }\r\n \r\n const accountId: string = (await authModule.getAccount())?.accountId;\r\n \r\n if (isSelectedItemPinned) {\r\n dispatch(removePinnedItem(accountId, { driveId: driveId, itemId: itemId }, selectedItems[0].FSObjType === \"0\" ? FileTypeEnum.file : FileTypeEnum.folder));\r\n setIsSelectedItemPinned(false);\r\n }\r\n else {\r\n let itemToPin: IStoreItem;\r\n switch (selectedItems[0].FSObjType) {\r\n case \"0\": // File\r\n itemToPin = {\r\n driveId: driveId,\r\n name: selectedItems[0].FileLeafRef,\r\n extension: selectedItems[0].File_x0020_Type,\r\n itemId: itemId,\r\n folderId: !currentDirectory?.parentId ? null : currentDirectory.id,\r\n fileType: FileTypeEnum.file,\r\n filePath: `[${languageStrings.Files}] ${workingDirectories.map(x => x.displayName).join(\"/\")}/${selectedItems[0].FileLeafRef}`,\r\n lastModifiedDateTime: selectedItems[0].Modified,\r\n datePinned: new Date(),\r\n modifiedBy: Array.isArray((selectedItems[0].Editor ?? selectedItems[0].Author)) && (selectedItems[0].Editor ?? selectedItems[0].Author).length > 0 && (selectedItems[0].Editor ?? selectedItems[0].Author)[0]?.title\r\n };\r\n break;\r\n \r\n case \"1\": // Folder\r\n let locations: IPageSettings[] = [...workingDirectories];\r\n if (isInOneDrive) {\r\n locations.push({\r\n id: itemId,\r\n parentId: driveId,\r\n fileTitle: selectedItems[0].FileLeafRef,\r\n displayName: selectedItems[0].FileLeafRef,\r\n webUrl: currentDirectory.webUrl,\r\n type: ComponentTypes.OneDriveSubFolder,\r\n directory: !currentDirectory.directory\r\n ? `${selectedItems[0].FileLeafRef}`\r\n : `${currentDirectory.directory}/${selectedItems[0].FileLeafRef}`,\r\n DocumentLibrary: \"\",\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n });\r\n }\r\n else {\r\n locations.push({\r\n id: itemId,\r\n parentId: driveId,\r\n fileTitle: selectedItems[0].FileLeafRef,\r\n displayName: selectedItems[0].FileLeafRef,\r\n webUrl: currentDirectory.webUrl,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n type: ComponentTypes.SharePointFolders,\r\n directory: !currentDirectory.directory\r\n ? `${selectedItems[0].FileLeafRef}`\r\n : `${currentDirectory.directory}/${selectedItems[0].FileLeafRef}`,\r\n DocumentLibrary: currentDirectory.DocumentLibrary?.length > 0 ? currentDirectory.DocumentLibrary : selectedItems[0].FileLeafRef,\r\n isTeamsFolder: currentDirectory.isTeamsFolder,\r\n isTeamsRootFolder: false,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n contentTypeId: selectedItems[0].ContentTypeId\r\n });\r\n }\r\n \r\n itemToPin = {\r\n driveId: driveId,\r\n locations: [...locations],\r\n name: selectedItems[0].FileLeafRef,\r\n itemId: itemId,\r\n fileType: FileTypeEnum.folder,\r\n folderTypeIcon: isInOneDrive ? FolderTypeIconEnum.oneDriveSubFolder : FolderTypeIconEnum.sharepointFolder,\r\n datePinned: new Date(),\r\n folderId: itemId,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n contentTypeId: selectedItems[0].ContentTypeId\r\n };\r\n break;\r\n }\r\n \r\n dispatch(addPinnedItem(accountId, itemToPin));\r\n setIsSelectedItemPinned(true);\r\n } \r\n } catch (error) {\r\n logger(error, \"useMenuItem_Pin.tsx (pinUnpinItem)\");\r\n }\r\n })();\r\n }, [currentDirectory, selectedItems, isSelectedItemPinned]);\r\n \r\n return {\r\n menuItem_Pin\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Preview(selectedItems: any[], setIsCMFilePreviewPanelOpen: (isCMFilePreviewPanelOpen: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n \r\n const [menuItem_Preview, setMenuItem_Preview] = React.useState();\r\n const [menuItem_Preview_IconOnly, setMenuItem_Preview_IconOnly] = React.useState();\r\n\r\n React.useEffect(() => {\r\n setMenuItem_Preview_IconOnly(\r\n {\r\n key: \"preview\",\r\n disabled: selectedItems?.length !== 1 || selectedItems[0].ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) || currentDirectory.type === ComponentTypes.SharePointList,\r\n iconProps: { iconName: \"PreviewLink\" },\r\n iconOnly: true,\r\n tooltipHostProps: {\r\n content: Preview\r\n },\r\n onClick: () => {\r\n setIsCMFilePreviewPanelOpen(true);\r\n }\r\n }\r\n )\r\n\r\n if (selectedItems?.length === 1 && !selectedItems[0].ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n setMenuItem_Preview(\r\n {\r\n key: 'preview',\r\n name: languageStrings.ShowPreview,\r\n iconProps: { iconName: \"PreviewLink\" },\r\n onClick: () => {\r\n setIsCMFilePreviewPanelOpen(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Preview(null)\r\n setMenuItem_Preview_IconOnly(null)\r\n }\r\n }, [selectedItems])\r\n \r\n return {\r\n menuItem_Preview,\r\n menuItem_Preview_IconOnly\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { InfoPanelMode } from \"../../Panels/CMFileInfoPanel\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\n\r\nexport function useMenuItem_Properties(selectedItems: any[], setIsCMFileInfoPanelOpen: (isCMFileInfoPanelOpen: boolean) => void, setInfoPanelMode: (infoPanelMode: InfoPanelMode) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n\r\n const [menuItem_Properties, setMenuItem_Properties] = React.useState();\r\n const [menuItem_Properties_IconOnly, setMenuItem_Properties_IconOnly] = React.useState();\r\n\r\n const checkForFolders = () => {\r\n const containsInvalidContentId = selectedItems?.some(item => {\r\n return (\r\n (item.ContentTypeId && item.ContentTypeId.startsWith(SharePointFolderContentTypeIds.folder) && !item.ContentTypeId.startsWith(SharePointFolderContentTypeIds.documentSet)) ||\r\n (item.EffectiveBasePermission && item.EffectiveBasePermission.canEditListItem === false)\r\n )\r\n });\r\n if (containsInvalidContentId) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (selectedItems.length > 0 && checkForFolders()) {\r\n setMenuItem_Properties_IconOnly(\r\n {\r\n key: \"info\",\r\n disabled: isBusySaving === true,\r\n iconProps: { iconName: \"Info\" },\r\n iconOnly: true,\r\n tooltipHostProps: {\r\n content: {languageStrings.Properties}\r\n },\r\n onClick: () => {\r\n setInfoPanelMode(InfoPanelMode.Update)\r\n setIsCMFileInfoPanelOpen(true);\r\n }\r\n }\r\n );\r\n\r\n setMenuItem_Properties(\r\n {\r\n key: \"properties\",\r\n text: languageStrings.Properties,\r\n iconProps: { iconName: \"Info\" },\r\n onClick: () => {\r\n setInfoPanelMode(InfoPanelMode.Update)\r\n setIsCMFileInfoPanelOpen(true);\r\n }\r\n }\r\n );\r\n } else {\r\n setMenuItem_Properties_IconOnly(null);\r\n setMenuItem_Properties(null);\r\n }\r\n }, [selectedItems]);\r\n\r\n return {\r\n menuItem_Properties,\r\n menuItem_Properties_IconOnly\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLazyPublishItemQuery } from \"../../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Publish(\r\n selectedItems: any[], \r\n waitFor: boolean, \r\n setWaitFor: (waitFor: boolean) => void, \r\n setIsPublish: (isPublish: boolean) => void, \r\n setShowCheckinDialog: (showCheckinDialog: boolean) => void, \r\n isInOneDrive: boolean,\r\n setGridItemIsBusy: (items: any[], isBusy: boolean) => void, \r\n updateGridItems: (items: any[]) => void,\r\n setIsCMErrorModalOpen: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage?: (errorMessage: string) => void\r\n ) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const [menuItem_Publish, setMenuItem_Publish] = React.useState();\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n\r\n const [publishItem] = useLazyPublishItemQuery();\r\n\r\n React.useEffect(() => {\r\n if (!isInOneDrive && \r\n selectedItems.length === 1 && \r\n !selectedItems[0].CheckoutUser &&\r\n !selectedItems[0]?.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)\r\n ) {\r\n const minorVersion = +selectedItems[0]._UIVersion % 512;\r\n \r\n if (minorVersion > 0 && !isInPending()) { \r\n setMenuItem_Publish(\r\n {\r\n key: 'publish',\r\n disabled: waitFor === true,\r\n name: isInDraftOrRejected() ? languageStrings.SubmitForApproval : languageStrings.Publish,\r\n iconProps: { iconName: \"PublishContent\" },\r\n onClick: () => {\r\n if (isInDraftOrRejected()) {\r\n submitForApproval();\r\n } else {\r\n setIsPublish(true);\r\n setShowCheckinDialog(true);\r\n }\r\n\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Publish(null)\r\n }\r\n } else {\r\n setMenuItem_Publish(null)\r\n }\r\n \r\n }, [selectedItems, waitFor, isInOneDrive, currentDirectory]);\r\n\r\n const isInDraftOrRejected = () => {\r\n if (selectedItems[0]['_ModerationStatus.']) {\r\n return selectedItems[0]['_ModerationStatus.'] === '3' || selectedItems[0]['_ModerationStatus.'] === '1';\r\n }\r\n return false; \r\n }\r\n\r\n const isInPending = () => {\r\n if (selectedItems[0]['_ModerationStatus.']) {\r\n return selectedItems[0]['_ModerationStatus.'] === '2';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n const submitForApproval = async () => {\r\n setGridItemIsBusy(selectedItems, true);\r\n setWaitFor(true);\r\n\r\n try {\r\n await publishItem({\r\n siteUrl: currentDirectory?.webUrl,\r\n uniqueId: selectedItems[0].UniqueId.replace(\"{\", \"\").replace(\"}\", \"\"),\r\n accessToken: isInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n comment: ''\r\n }).unwrap();\r\n } catch (error) {\r\n setIsCMErrorModalOpen(true); \r\n setErrorMessage(error['data']['odata.error']['message']['value']);\r\n }\r\n\r\n updateGridItems(selectedItems);\r\n setWaitFor(false);\r\n }\r\n\r\n return {\r\n menuItem_Publish\r\n }\r\n\r\n}","import { IIconProps, ISearchBoxStyles, SearchBox } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nconst filterIcon: IIconProps = { iconName: \"PageListFilter\" };\r\nconst searchBoxStyles: Partial = {\r\n root: { width: 300, height: \"100%\" }\r\n};\r\n\r\nexport const useMenuItem_QuickFilter = (setQuickFilterValue: (filterValue: string) => void) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n\r\n const [privateQuickFilterValue, setPrivateQuickFilterValue] = React.useState();\r\n\r\n React.useEffect(() => {\r\n resetQuickFilterValue();\r\n }, [searchValue, currentDirectory]);\r\n\r\n React.useEffect(() => {\r\n const timeOutId = setTimeout(() => {\r\n setQuickFilterValue(privateQuickFilterValue?.trim());\r\n }, 500);\r\n return () => clearTimeout(timeOutId);\r\n }, [privateQuickFilterValue]);\r\n\r\n const onChangeFilter = React.useCallback((event?: React.ChangeEvent, newValue?: string) => {\r\n setPrivateQuickFilterValue(newValue);\r\n }, []);\r\n\r\n const onSearchFilter = React.useCallback((filterText: any) => {\r\n setQuickFilterValue(filterText?.trim());\r\n }, []);\r\n\r\n const onClearFilter = React.useCallback(() => {\r\n setQuickFilterValue(\"\");\r\n }, []);\r\n\r\n const resetQuickFilterValue = React.useCallback(() => {\r\n setPrivateQuickFilterValue(null);\r\n setQuickFilterValue(null);\r\n }, []);\r\n\r\n const onMenuItem_QuickFilterRender = React.useCallback(() => {\r\n return \r\n }, [privateQuickFilterValue]);\r\n\r\n const menuItem_QuickFilter = React.useMemo(() => ({\r\n key: \"QuickFilter\",\r\n onRender: onMenuItem_QuickFilterRender\r\n }), [privateQuickFilterValue]);\r\n\r\n return {\r\n menuItem_QuickFilter,\r\n resetQuickFilterValue\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, } from \"react-redux\";\r\nimport { toggleReload } from \"../../../src/taskpane/redux/modules/reload\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Refresh(selectedItems: any[]) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n \r\n const [menuItem_Refresh, setMenuItem_Refresh] = React.useState();\r\n\r\n React.useEffect(() => {\r\n setMenuItem_Refresh(\r\n {\r\n key: \"refresh\",\r\n iconProps: { iconName: \"Refresh\" },\r\n iconOnly: true,\r\n tooltipHostProps: {\r\n content: {languageStrings.Refresh},\r\n },\r\n onClick: () => {\r\n dispatch(toggleReload());\r\n }\r\n }\r\n )\r\n }, [selectedItems])\r\n\r\n return {\r\n menuItem_Refresh\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { FolderViewWrapper } from \"../../../src/taskpane/components/helpers/folderViewWrapper\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Rename(selectedItems: any[], waitFor: boolean, setShowRenameDialog: (showRenameDialog: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n \r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo.sites);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const tenantDisableFileRename = useSelector((state: RootState) => state.tenantInfo?.disableFileRename);\r\n \r\n const [menuItem_Rename, setMenuItem_Rename] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (!tenantDisableFileRename && selectedItems?.length === 1 && selectedItems[0]?.EffectiveBasePermissions?.canDeleteListItem && currentDirectory.type !== ComponentTypes.SharePointList) {\r\n var folderViewWrapper = new FolderViewWrapper(siteInfo, currentDirectory);\r\n const canViewFolder = folderViewWrapper.canViewFolder();\r\n\r\n if (canViewFolder || selectedItems[0].FSObjType === '0') {\r\n setMenuItem_Rename(\r\n {\r\n key: \"rename\",\r\n disabled: waitFor === true || isBusySaving === true,\r\n text: `${languageStrings.RenameOnly}`,\r\n iconProps: { iconName: \"Rename\" },\r\n onClick: () => {\r\n setShowRenameDialog(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Rename(null)\r\n }\r\n } else {\r\n setMenuItem_Rename(null);\r\n }\r\n }, [selectedItems, waitFor, siteInfo, currentDirectory, tenantDisableFileRename]);\r\n \r\n return {\r\n menuItem_Rename\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { InfoPanelMode } from \"../../Panels/CMFileInfoPanel\";\r\nimport { CheckinCheckoutHelper } from \"../../../utilities/CheckinCheckoutHelper\";\r\n\r\nexport function useMenuItem_Replace(selectedItems: any[], waitFor: boolean, setIsCMFileInfoPanelOpen: (isCMFileInfoPanelOpen: boolean) => void, setInfoPanelMode: (infoPanelMode: InfoPanelMode) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n\r\n const [menuItem_Replace, setMenuItem_Replace] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 1 &&\r\n ((Array.isArray(selectedItems[0].CheckoutUser) && selectedItems[0].CheckoutUser?.length > 0 && CheckinCheckoutHelper.compareCurrentUser(selectedItems[0].CheckoutUser[0], userAccount.username)) || selectedItems[0].CheckoutUser === '') &&\r\n selectedItems[0]?.EffectiveBasePermissions?.canDeleteListItem &&\r\n !selectedItems[0]?.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) &&\r\n selectedItems[0]?.ProgId !== \"OneNote.Notebook\") {\r\n setMenuItem_Replace(\r\n {\r\n key: \"replace\",\r\n disabled: waitFor === true || isBusySaving === true,\r\n text: `${languageStrings.ReplaceOnly}`,\r\n iconProps: { iconName: \"PostUpdate\" },\r\n onClick: () => {\r\n setInfoPanelMode(InfoPanelMode.Replace)\r\n setIsCMFileInfoPanelOpen(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Replace(null);\r\n }\r\n }, [selectedItems, waitFor, userAccount, isBusySaving]);\r\n\r\n return {\r\n menuItem_Replace\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { changeExtensionToPdf } from \"../../../src/taskpane/components/helpers/stringHelper\";\r\nimport { SharePointFolderContentTypeIds, validPdfExtensions } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { ConvertAndSaveAsPDFRequest, FilePreCommitRequest } from \"../../../src/taskpane/components/_v2/redux/api/local/api-local-interfaces\";\r\nimport { IFilePreCommitResult } from \"../../../src/taskpane/interfaces/IFilePreCommitResult\";\r\nimport { getFilePreCommitInfo } from \"../../../src/taskpane/services/SharePointRestServices\";\r\nimport { GridProps } from \"../useContentManagerBody\";\r\nimport { apiFileConvertAndSaveAsPDF } from \"../../../src/taskpane/services/ApiService\";\r\nimport { getDriveRootWebUrl, getOneDriveRootDetails } from \"../../../src/taskpane/services/GraphService\";\r\nimport { IOneDriveRootDetails } from \"../../../src/taskpane/interfaces/IOneDriveRootDetails\";\r\n\r\nexport function useMenuItem_SaveAsPDF(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n isInOneDrive: boolean,\r\n setIsCMErrorModalOpen: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage?: (errorMessage: string) => void,\r\n openDuplicateFileVersionSelectorModal?: (isDuplicate: boolean, showVersion: boolean) => void,\r\n reloadGrid?: (gridData?: GridProps) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const tenantId = useSelector((state: RootState) => state.user?.account?.tenantId);\r\n const accountId = useSelector((state: RootState) => state.user?.account?.accountId);\r\n\r\n const [menuItem_SaveAsPDF, setMenuItem_SaveAsPDF] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 1\r\n && selectedItems[0].EffectiveBasePermissions?.canOpenItems\r\n && !selectedItems[0].ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)\r\n && validPdfExtensions.some(validExt => selectedItems[0][\".fileType\"]?.replace(\".\", \"\")?.toLowerCase() === validExt)) {\r\n setMenuItem_SaveAsPDF(\r\n {\r\n key: \"saveAsPDF\",\r\n disabled: (waitFor === true || isBusySaving === true),\r\n text: `${languageStrings.SaveAsPdf}`,\r\n iconProps: { iconName: \"PDF\" },\r\n onClick: () => {\r\n initiateSaveAndConvertAsPdfFile(selectedItems[0]);\r\n }\r\n }\r\n );\r\n } else {\r\n setMenuItem_SaveAsPDF(null);\r\n }\r\n }, [selectedItems, waitFor, currentDirectory, oneDriveRootDetails]);\r\n\r\n const initiateSaveAndConvertAsPdfFile = async (selectedItem: any) => {\r\n setWaitFor(true);\r\n\r\n let driveId: string;\r\n let siteUrl: string;\r\n let sharePointToken: string;\r\n\r\n if (isInOneDrive || currentDirectory.webUrl?.includes(\"sharepoint.com/personal/\")) {\r\n let oneDriveDetails: IOneDriveRootDetails = oneDriveRootDetails;\r\n if (!oneDriveDetails) {\r\n oneDriveDetails = await getOneDriveRootDetails();\r\n }\r\n\r\n driveId = oneDriveDetails.driveId;\r\n siteUrl = oneDriveDetails.sharePointSiteUrl;\r\n sharePointToken = await authModule.getOneDriveAccessToken();\r\n }\r\n else {\r\n driveId = !currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId;\r\n siteUrl = currentDirectory.webUrl;\r\n sharePointToken = await authModule.getSharePointAccessToken();\r\n }\r\n\r\n const spItemUrlparts = selectedItem['.spItemUrl'].split('/');\r\n let itemId: string = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n\r\n let pdfFileName = changeExtensionToPdf(selectedItem?.FileLeafRef);\r\n\r\n let destinationUrl: string;\r\n if (isInOneDrive) {\r\n destinationUrl = `${currentDirectory?.webUrl}${currentDirectory.directory ? `${currentDirectory.directory}` : ''}`\r\n } else if (currentDirectory?.isTeamsRootFolder && !currentDirectory.parentId) {\r\n destinationUrl = await getDriveRootWebUrl(currentDirectory.id);\r\n } else {\r\n destinationUrl = `${currentDirectory.webUrl}${currentDirectory.directory ? `/${currentDirectory.directory}` : ''}`;\r\n }\r\n\r\n const fileRequest: FilePreCommitRequest = {\r\n accessToken: sharePointToken,\r\n destinationUrl,\r\n siteUrl,\r\n fileName: pdfFileName,\r\n autoFolderCreation: false\r\n }\r\n\r\n const preCommitResult: IFilePreCommitResult = await getFilePreCommitInfo(fileRequest);\r\n\r\n let saveAndConvert = true;\r\n let isDuplicate = false;\r\n if (!preCommitResult || preCommitResult.exists === true) {\r\n isDuplicate = true;\r\n saveAndConvert = false;\r\n }\r\n\r\n if (currentSharepointFolder?.enableMinorVersions === true || isDuplicate) {\r\n openDuplicateFileVersionSelectorModal(isDuplicate, currentSharepointFolder?.enableMinorVersions === true);\r\n saveAndConvert = false;\r\n }\r\n\r\n if (saveAndConvert) {\r\n const request: ConvertAndSaveAsPDFRequest = {\r\n graphToken: await authModule.getGraphAccessToken(),\r\n sharePointToken,\r\n tenantGuid: tenantId,\r\n accountId,\r\n driveId,\r\n itemId,\r\n siteUrl,\r\n listId: currentDirectory.sharePointListId,\r\n teamId: workingDirectories?.find(dir => dir.teamGroupId)?.teamGroupId,\r\n channelId: workingDirectories?.find(dir => dir.teamChannelId)?.teamChannelId,\r\n fileUniqueId: selectedItem?.UniqueId.replace(\"{\", \"\").replace(\"}\", \"\"),\r\n EnsureUniqueFilename: false,\r\n checkinType: null,\r\n }\r\n try {\r\n await apiFileConvertAndSaveAsPDF(request);\r\n reloadGrid();\r\n } catch (error) {\r\n logger(error, \"FileOptionsPanel.tsx (saveAsPdfFile)\");\r\n }\r\n setWaitFor(false);\r\n }\r\n }\r\n\r\n return {\r\n menuItem_SaveAsPDF\r\n }\r\n}","import { Icon, IContextualMenuItem, Spinner, SpinnerSize } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { BackgroundTaskStatusEnum } from \"../../../src/taskpane/components/enums/BackgroundTaskStatusEnum\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { setContentManagerExchangeProgress } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { setIsBusySaving } from \"../../../src/taskpane/redux/modules/savingInBackground\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { apiGetBackgroundTaskProgess } from \"../../../src/taskpane/services/ApiService\";\r\n\r\nexport function useMenuItem_SavingFiles(setIsCMMoveFilesListPanelOpen: (isCMMoveFilesListPanelOpen: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const exchangeProgress = useSelector((state: RootState) => state.contentManagerDirectory.exchange.progress);\r\n\r\n const [menuItem_SavingFiles, setMenuItem_SavingFiles] = React.useState();\r\n const [hasError, setHasError] = React.useState(false);\r\n\r\n const [fetchProgress, setFetchProgress] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n if (isBusySaving === true && (!exchangeProgress || (exchangeProgress && !exchangeProgress.status))) {\r\n setMenuItem_SavingFiles(\r\n {\r\n key: \"savingFiles\",\r\n text: languageStrings.SavingFiles,\r\n disabled: true,\r\n onRenderIcon: () => {\r\n return \r\n }\r\n }\r\n )\r\n } else if (isBusySaving === true && exchangeProgress && exchangeProgress.status) {\r\n setMenuItem_SavingFiles(\r\n {\r\n key: \"savingFilesCount\",\r\n text: exchangeProgress.message ? exchangeProgress.message : languageStrings.SavingFiles,\r\n disabled: false,\r\n onRenderIcon: () => {\r\n return <>\r\n {(exchangeProgress.status === BackgroundTaskStatusEnum.Inprogress || exchangeProgress.status === BackgroundTaskStatusEnum.Queued) && }\r\n {exchangeProgress.status === BackgroundTaskStatusEnum.Completed && }\r\n {exchangeProgress.status === BackgroundTaskStatusEnum.Failure && }\r\n \r\n },\r\n onClick: () => {\r\n setIsCMMoveFilesListPanelOpen(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_SavingFiles(null)\r\n }\r\n }, [isBusySaving, exchangeProgress]);\r\n\r\n React.useEffect(() => {\r\n if (!hasError && fetchProgress === 0 && exchangeProgress && exchangeProgress.status && exchangeProgress.status !== BackgroundTaskStatusEnum.Completed && exchangeProgress.status !== BackgroundTaskStatusEnum.Failure) {\r\n setFetchProgress(prev => prev + 1);\r\n }\r\n }, [fetchProgress, exchangeProgress]);\r\n\r\n React.useEffect(() => {\r\n let timer;\r\n if (fetchProgress > 0) {\r\n timer = setTimeout(() => {\r\n updateProgress();\r\n }, 3000);\r\n }\r\n\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }, [fetchProgress]);\r\n\r\n const updateProgress = async () => {\r\n try {\r\n const progressRes = await apiGetBackgroundTaskProgess(exchangeProgress.taskId);\r\n dispatch(setContentManagerExchangeProgress(progressRes));\r\n\r\n if (progressRes.status === BackgroundTaskStatusEnum.Inprogress || progressRes.status === BackgroundTaskStatusEnum.Queued) {\r\n setFetchProgress(prev => prev + 1);\r\n } else {\r\n setFetchProgress(0);\r\n dispatch(setIsBusySaving({ isBusySaving: false, isSuccess: true }));\r\n }\r\n } catch (error) {\r\n let message = error.data?.title ? `${languageStrings.Error}: ${error.data?.title}` : languageStrings.ErrorMessageGeneric;\r\n logger(error, \"useMenuItem_SavingFiles.tsx (updateProgress)\");\r\n setFetchProgress(0);\r\n setHasError(true);\r\n dispatch(setIsBusySaving({ isBusySaving: false, isSuccess: false, errorMessages: [message] }));\r\n }\r\n }\r\n\r\n\r\n return {\r\n menuItem_SavingFiles\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_SelectedFileCount(selectedItems: any[], waitFor: boolean, setSelectionCleared: (selectionCleared: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const moveToMode = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.mode);\r\n\r\n const [menuItem_SelectedFileCount, setMenuItem_SelectedFileCount] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems.length > 0 && !waitFor) {\r\n setMenuItem_SelectedFileCount(\r\n {\r\n key: \"selectedFileCount\",\r\n text: `${selectedItems.length} ${languageStrings.Selected.toLowerCase()}`,\r\n disabled: waitFor === true,\r\n iconProps: { iconName: \"Clear\" },\r\n onClick: () => {\r\n setSelectionCleared(true)\r\n }\r\n }\r\n )\r\n } \r\n // else if (moveToMode === ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails) {\r\n // setMenuItem_SelectedFileCount(\r\n // {\r\n // key: \"selectedFileCountEntireFolder\",\r\n // text: languageStrings.EntireFolderSelected,\r\n // disabled: true\r\n // }\r\n // )\r\n // } \r\n else {\r\n setMenuItem_SelectedFileCount(null)\r\n }\r\n }, [selectedItems, waitFor, moveToMode]);\r\n\r\n\r\n return {\r\n menuItem_SelectedFileCount\r\n }\r\n\r\n}","import { IContextualMenuItem, Spinner, SpinnerSize } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\nimport { useLazyGetCopyJobProgressQuery, useLazyRenderListAsStreamQuery } from \"../../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { DocubirdCache, sharepoint } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { resetContentManagerMoveTo, setContentManagerMoveTo, incrementContentManagerMoveToCompletedItemCount, setContentManagerMoveToCopyJobResults, setContentManagerMoveToCopyJobResultsIdsToRemove, setContentManagerMoveToError, setContentManagerMoveToSelectedFilesIsBusyProgress } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { GridProps } from \"../useContentManagerBody\";\r\nimport { createCopyJobs } from \"../../../src/taskpane/services/SharePointRestServices\";\r\nimport { CacheHelper } from \"../../../utilities/CacheHelper\";\r\n\r\nexport function useMenuItem_SelectedMoveFileCount(setIsCMMoveFilesListPanelOpen: (isCMMoveFilesListPanelOpen: boolean) => void, isInOneDrive: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const moveToEnabled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.moveToEnabled);\r\n const moveToProgressCountTotal = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.progressCountTotal);\r\n const moveTobusyMovingFiles = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.busyMovingFiles);\r\n const moveTobusyFetchingFiles = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.busyFetchingFiles);\r\n const moveToIsMoveCancelled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.isMoveCancelled);\r\n const moveToCopyJobResults = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.copyJobResults);\r\n const moveToMode = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.mode);\r\n const moveToIsMoveInProgress = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.isMoveInProgress);\r\n const moveTo = useSelector((state: RootState) => state.contentManagerDirectory.moveTo);\r\n const moveToSourceDirectory = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.workingDirectories.length > 0 ? state.contentManagerDirectory.moveTo.workingDirectories[state.contentManagerDirectory.moveTo.workingDirectories.length - 1] : null);\r\n const moveToError = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.error);\r\n\r\n const [menuItem_SelectedMoveFileCount, setMenuItem_SelectedMoveFileCount] = React.useState();\r\n\r\n const [getCopyJobProgress] = useLazyGetCopyJobProgressQuery();\r\n const [getListAsStream] = useLazyRenderListAsStreamQuery();\r\n\r\n React.useEffect(() => {\r\n //Move/Copy All - Fetching all files to create CopyJob\r\n let nextHref = \"\";\r\n let totalCount = 0;\r\n let cancelled = moveToIsMoveCancelled;\r\n\r\n if (moveTobusyFetchingFiles && !cancelled) {\r\n dispatch(setContentManagerMoveTo({ moveToEnabled: false }));\r\n (async () => {\r\n const gridProps: GridProps = {\r\n sort: []\r\n }\r\n\r\n const sourceIsInOneDrive = moveToSourceDirectory?.type == ComponentTypes.OneDrive || moveToSourceDirectory?.type == ComponentTypes.OneDriveSubFolder;\r\n\r\n let filesToMoveCopy: any[] = [];\r\n do {\r\n const listStream = await getListAsStream({\r\n siteUrl: moveTo.sourceSiteUrl,\r\n sharePointListId: moveToSourceDirectory?.sharePointListId,\r\n viewXml: sharepoint.moveCopyAllViewXml,\r\n gridProps,\r\n accessToken: sourceIsInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n serverRelativePath: moveTo.sourceServerRelPath,\r\n filterSections: [],\r\n nextPageUrl: nextHref\r\n }).unwrap();\r\n\r\n filesToMoveCopy = filesToMoveCopy.concat(listStream.ListData?.Row);\r\n\r\n totalCount = listStream.ListData?.Row ? totalCount + listStream.ListData?.Row.length : totalCount + 0;\r\n dispatch(setContentManagerMoveTo({ progressCountTotal: totalCount }));\r\n\r\n nextHref = listStream.ListData?.NextHref ? listStream.ListData?.NextHref : \"\";\r\n } while (nextHref.length > 0 && !cancelled);\r\n\r\n dispatch(setContentManagerMoveTo({ isPreparingJobs: true }));\r\n\r\n let copyJobResults = await createCopyJobs({\r\n siteUrl: moveTo.siteUrl,\r\n accessToken: isInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n files: filesToMoveCopy,\r\n sourceSiteUrl: moveTo.sourceSiteUrl,\r\n sourceServerRelPath: moveTo.sourceServerRelPath,\r\n destinationServerRelPath: moveTo.destinationServerRelPath,\r\n isMoveMode: (moveTo.mode === ContentManagerCopyMoveModeEnum.Move || moveTo.mode === ContentManagerCopyMoveModeEnum.MoveAll) ? true : false\r\n });\r\n\r\n dispatch(setContentManagerMoveTo({ busyFetchingFiles: false, busyMovingFiles: true, moveToEnabled: false, isPreparingJobs: false }));\r\n\r\n if (copyJobResults?.success) {\r\n dispatch(setContentManagerMoveToCopyJobResults(copyJobResults?.jobs))\r\n } else {\r\n dispatch(resetContentManagerMoveTo());\r\n dispatch(setContentManagerMoveToError(copyJobResults.error));\r\n }\r\n })();\r\n }\r\n\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [moveTobusyFetchingFiles, isInOneDrive, moveToSourceDirectory, moveToIsMoveCancelled]);\r\n\r\n const [fetchProgress, setFetchProgress] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n if (moveTobusyMovingFiles && moveToCopyJobResults?.length > 0) {\r\n setFetchProgress(prev => prev + 1);\r\n }\r\n }, [moveTobusyMovingFiles, moveToCopyJobResults]);\r\n\r\n React.useEffect(() => {\r\n let timer;\r\n if (fetchProgress > 0) {\r\n timer = setTimeout(() => {\r\n updateProgress();\r\n }, 1000);\r\n }\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }, [fetchProgress]);\r\n\r\n const updateProgress = async () => {\r\n const copyJobResultsToCheck = CacheHelper.get(DocubirdCache.copyJobResults);\r\n const jobCount: number = Array.isArray(copyJobResultsToCheck) ? copyJobResultsToCheck.length : 0;\r\n\r\n let completedItems = 0;\r\n let completedJobs = 0;\r\n let completedJobsResults: any[] = [];\r\n\r\n await Promise.all(copyJobResultsToCheck.map(async (copyJobResults, index) => {\r\n try {\r\n const destinationDirInOneDrive = moveTo.destinationDirectory.type == ComponentTypes.OneDrive || moveTo.destinationDirectory.type == ComponentTypes.OneDriveSubFolder\r\n const progressResults = await getCopyJobProgress({\r\n siteUrl: moveTo.siteUrl,\r\n accessToken: destinationDirInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n copyJobInfo: copyJobResults\r\n }).unwrap();\r\n\r\n if (progressResults.JobState === 0) {\r\n const jobItemCount = copyJobResults.SourceListItemUniqueIds?.length;\r\n if (jobItemCount) {\r\n completedJobs++;\r\n completedItems += jobItemCount;\r\n completedJobsResults.push(copyJobResults);\r\n dispatch(incrementContentManagerMoveToCompletedItemCount(jobItemCount));\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"useMenuItem_SelectedMoveFileCount.tsx (await getCopyJobProgress)\");\r\n }\r\n }));\r\n\r\n if (completedJobsResults?.length > 0) {\r\n // Remove completed jobs from the cache\r\n const allCopyJobResults = CacheHelper.get(DocubirdCache.copyJobResults);\r\n const remainingCopyJobResults = allCopyJobResults.filter(job =>\r\n !completedJobsResults.some(completedJob => completedJob.JobId === job.JobId)\r\n );\r\n\r\n // Update the cache with the remaining job results\r\n CacheHelper.set(DocubirdCache.copyJobResults, remainingCopyJobResults);\r\n\r\n const moveCompleteItemIds = completedJobsResults.reduce((acc, job) => acc.concat(job.SourceListItemUniqueIds), []);\r\n\r\n dispatch(setContentManagerMoveToSelectedFilesIsBusyProgress(moveCompleteItemIds, false));\r\n }\r\n\r\n if (completedJobs < jobCount) {\r\n setFetchProgress(prev => prev + 1);\r\n } else {\r\n dispatch(setContentManagerMoveTo({ isMoveComplete: true, busyMovingFiles: false, copyJobResults: [], copyJobResultsCompletedIds: [] }));\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (moveToError) {\r\n setMenuItem_SelectedMoveFileCount(\r\n {\r\n key: \"errorMove\",\r\n text: languageStrings.ErrorMessageGeneric,\r\n iconProps: { iconName: \"ErrorBadge\", style: { color: \"red\" } },\r\n onClick: () => {\r\n setIsCMMoveFilesListPanelOpen(true);\r\n }\r\n }\r\n );\r\n }\r\n else if (moveToProgressCountTotal > 0 && !moveTobusyMovingFiles && moveToEnabled) {\r\n let displayText = \"\";\r\n\r\n if (moveToMode === ContentManagerCopyMoveModeEnum.Move) {\r\n displayText = `${moveToProgressCountTotal} ${moveToProgressCountTotal === 1 ? languageStrings.ItemToMove.toLowerCase() : languageStrings.ItemsToMove.toLowerCase()}`;\r\n } \r\n else if (moveToMode === ContentManagerCopyMoveModeEnum.Copy) {\r\n displayText = `${moveToProgressCountTotal} ${moveToProgressCountTotal === 1 ? languageStrings.ItemToCopy.toLowerCase() : languageStrings.ItemsToCopy.toLowerCase()}`;\r\n } \r\n else if (moveToMode === ContentManagerCopyMoveModeEnum.CopyAll || moveToMode === ContentManagerCopyMoveModeEnum.MoveAll) {\r\n displayText = `${languageStrings.All} ${languageStrings.ItemsSelected}`\r\n }\r\n\r\n setMenuItem_SelectedMoveFileCount(\r\n {\r\n key: \"selectedMoveFileCount\",\r\n text: displayText,\r\n disabled: (moveToMode === ContentManagerCopyMoveModeEnum.CopyAll || moveToMode === ContentManagerCopyMoveModeEnum.MoveAll) && !moveToIsMoveInProgress,\r\n iconProps: { iconName: \"Info\" },\r\n onClick: () => {\r\n setIsCMMoveFilesListPanelOpen(true);\r\n }\r\n }\r\n );\r\n } else if (moveTobusyMovingFiles) {\r\n setMenuItem_SelectedMoveFileCount(\r\n {\r\n key: \"selectedMoveFileCount\",\r\n text: (moveToMode === ContentManagerCopyMoveModeEnum.Move || moveToMode === ContentManagerCopyMoveModeEnum.MoveAll) ? languageStrings.MovingItems : languageStrings.CopyingItems,\r\n iconProps: { iconName: \"Info\" },\r\n onRenderIcon: () => {\r\n return \r\n },\r\n onClick: () => {\r\n setIsCMMoveFilesListPanelOpen(true);\r\n }\r\n }\r\n );\r\n }\r\n else {\r\n setMenuItem_SelectedMoveFileCount(null);\r\n }\r\n }, [moveToEnabled, moveTobusyMovingFiles, moveToMode, moveToProgressCountTotal, moveToIsMoveInProgress, moveToError]);\r\n\r\n return {\r\n menuItem_SelectedMoveFileCount\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { SharePanelMode } from \"../../Panels/CMFileSharePanel\";\r\n\r\nexport function useMenuItem_Share(selectedItems: any[], openSharePanel: (mode: SharePanelMode) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const tenantSharingEnabled = useSelector((state: RootState) => state.tenantInfo?.enableSharing);\r\n\r\n const [menuItem_Share, setMenuItem_Share] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 1 && tenantSharingEnabled) {\r\n setMenuItem_Share(\r\n {\r\n key: \"share\",\r\n iconProps: { iconName: \"Share\" },\r\n text: `${languageStrings.Share}`,\r\n onClick: () => openSharePanel(SharePanelMode.Share)\r\n }\r\n );\r\n }\r\n else {\r\n setMenuItem_Share(null);\r\n }\r\n }, [selectedItems, tenantSharingEnabled]);\r\n\r\n return {\r\n menuItem_Share\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { ModeEnum } from \"../../../src/taskpane/components/enums/modeEnum\";\r\nimport shareToTeams from \"../../Services/ShareToTeamsService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { getFileItemIdFromRelativePath, getItemWebViewUrl } from \"../../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\n\r\nexport function useMenuItem_ShareToTeams(selectedItems, isInOneDrive, setWaitFor, setWaitForContext, mode) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n\r\n const [menuItem_ShareToTeams, setMenuItem_ShareToTeams] = React.useState();\r\n\r\n const getItemId = React.useCallback(async (selectedItem: any, driveId: string) => {\r\n let itemId: string;\r\n try {\r\n const spItemUrlparts = selectedItem[\".spItemUrl\"]?.split(\"/\");\r\n if (Array.isArray(spItemUrlparts) && spItemUrlparts.length > 0) {\r\n itemId = spItemUrlparts[spItemUrlparts.length - 1]?.split(\"?\")[0];\r\n }\r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + selectedItem.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n } catch (error) {\r\n // Ignore\r\n }\r\n return itemId;\r\n }, []);\r\n\r\n const shareToTeamsHandler = async () => {\r\n setWaitForContext(languageStrings.Sending);\r\n setWaitFor(true);\r\n const item = selectedItems[0];\r\n const driveId = !isInOneDrive ? (!currentDirectory.parentId ? currentDirectory.id : currentDirectory.parentId) : oneDriveRootDetails.driveId;\r\n const itemId: string = await getItemId(item, driveId);\r\n const isDocument = item?.File_x0020_Type !== \"\";\r\n const fileName = item?.FileLeafRef;\r\n const contentTypeId = item?.ContentTypeId;\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const url = new URL(driveUrl.origin + item.FileRef).href;\r\n\r\n shareToTeams(\r\n driveId,\r\n itemId,\r\n isDocument,\r\n fileName,\r\n contentTypeId,\r\n url\r\n );\r\n\r\n setWaitFor(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (mode === ModeEnum.contentManagerTeams) {\r\n setMenuItem_ShareToTeams(\r\n {\r\n key: \"SendAsMessage\",\r\n text: `${languageStrings.ShareToTeams}`,\r\n iconProps: { iconName: \"TeamsLogo\" },\r\n onClick: () => { shareToTeamsHandler() }\r\n }\r\n );\r\n } else {\r\n setMenuItem_ShareToTeams(null);\r\n }\r\n }, [mode, selectedItems]);\r\n\r\n return {\r\n menuItem_ShareToTeams\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { DocubirdCache, SharePointFolderContentTypeIds, validSigningRequestExtensions } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { CacheHelper } from \"../../../utilities/CacheHelper\";\r\nimport { getValidHooks } from \"../../../src/taskpane/services/HooksService\";\r\nimport { HookType } from \"../../../src/taskpane/components/_v2/redux/api/local/api-local-interfaces\";\r\n\r\nexport function useMenuItem_SigningRequest(selectedItems: any[], waitFor: boolean, setApprovalFiles: (approvalFiles: any[]) => void, setIsSigningPanelOpen: (isSigningPanelOpen: boolean) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n\r\n const [signingFlowsAvailable, setSigningFlowsAvailable] = React.useState(false);\r\n const [menuItem_SigningRequest, setMenuItem_SigningRequest] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (CacheHelper.get(DocubirdCache.signingEnabled) !== true || !currentDirectory?.siteDisplayName || !currentDirectory?.DocumentLibrary) return;\r\n\r\n const validHooks = getValidHooks(CacheHelper.get(DocubirdCache.hooks)?.filter(h => h.typeId === HookType.Sign), currentDirectory);\r\n setSigningFlowsAvailable(validHooks?.length > 0);\r\n }, [currentDirectory]);\r\n\r\n React.useEffect(() => {\r\n if (CacheHelper.get(DocubirdCache.signingEnabled) !== true) return;\r\n\r\n const hasFolderOrOneNoteFolder = selectedItems?.some(x => x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder)) || selectedItems?.some(x => x.ProgId === \"OneNote.Notebook\");\r\n const allExtensionsValid = selectedItems?.every(x => {\r\n const extension = x.File_x0020_Type?.toUpperCase();\r\n return validSigningRequestExtensions.includes(extension);\r\n });\r\n\r\n if (selectedItems.length > 0 && allExtensionsValid && !hasFolderOrOneNoteFolder && signingFlowsAvailable) {\r\n setMenuItem_SigningRequest(\r\n {\r\n key: \"signinRequest\",\r\n disabled: waitFor === true,\r\n text: languageStrings.SigningRequest,\r\n iconProps: { iconName: \"InsertSignatureLine\" },\r\n onClick: () => {\r\n setApprovalFiles(selectedItems);\r\n setIsSigningPanelOpen(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_SigningRequest(null);\r\n }\r\n }, [selectedItems, waitFor, currentDirectory, signingFlowsAvailable])\r\n\r\n return {\r\n menuItem_SigningRequest\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLazyUnpublishItemQuery } from \"../../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport authModule from \"../../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\n\r\nexport function useMenuItem_Unpublish(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n isInOneDrive: boolean,\r\n setGridItemIsBusy: (items: any[], isBusy: boolean) => void,\r\n updateGridItems: (items: any[]) => void,\r\n setIsCMErrorModalOpen: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage?: (errorMessage: string) => void\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n\r\n const [menuItem_Unpublish, setMenuItem_Unpublish] = React.useState();\r\n\r\n const [unpublishItem] = useLazyUnpublishItemQuery();\r\n\r\n const isAllInPending = () => {\r\n let results = true;\r\n selectedItems.forEach(item => {\r\n if (results && !(item['_ModerationStatus.'] && item['_ModerationStatus.'] === '2')) {\r\n results = false;\r\n }\r\n });\r\n\r\n return results;\r\n }\r\n\r\n const menuItem: IContextualMenuItem = {\r\n key: 'unpublish',\r\n disabled: waitFor === true,\r\n name: isAllInPending() ? languageStrings.CancelApproval : languageStrings.Unpublish,\r\n iconProps: { iconName: \"UnpublishContent\" },\r\n onClick: () => {\r\n onUnpublishItem();\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!isInOneDrive && selectedItems.length === 1 &&\r\n (selectedItems.every(x => !x.CheckoutUser) || isAllInPending()) &&\r\n currentSharepointFolder?.userPermissions?.canEditListItem &&\r\n selectedItems?.some(x => !x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder))) {\r\n\r\n const majorVersion = Math.floor(+selectedItems[0]._UIVersion / 512);\r\n const minorVersion = +selectedItems[0]._UIVersion % 512;\r\n\r\n if ((majorVersion > 0 && minorVersion === 0) || isAllInPending()) {\r\n setMenuItem_Unpublish(menuItem);\r\n }\r\n else {\r\n setMenuItem_Unpublish(null)\r\n }\r\n }\r\n else {\r\n setMenuItem_Unpublish(null)\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive, currentDirectory, currentSharepointFolder]);\r\n\r\n const onUnpublishItem = async () => {\r\n setWaitFor(true);\r\n setGridItemIsBusy(selectedItems, true);\r\n\r\n try {\r\n await Promise.all(selectedItems.map(async item => {\r\n try {\r\n await unpublishItem({\r\n siteUrl: currentDirectory.webUrl,\r\n uniqueId: item.UniqueId.replace(\"{\", \"\").replace(\"}\", \"\"),\r\n accessToken: isInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n }).unwrap();\r\n\r\n\r\n } catch (error) {\r\n setIsCMErrorModalOpen(true);\r\n setErrorMessage(error['data']['odata.error']['message']['value']);\r\n }\r\n\r\n }))\r\n\r\n setWaitFor(false);\r\n updateGridItems(selectedItems);\r\n } catch (error) {\r\n logger(error, \"useMenuItem_Unpublish (onUnpublishItem)\");\r\n setWaitFor(false);\r\n updateGridItems(selectedItems);\r\n }\r\n }\r\n\r\n return {\r\n menuItem_Unpublish\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { newTemplateFilterEnum } from \"../../../src/taskpane/components/enums/newTemplateFilterEnum\";\r\nimport { FolderViewWrapper } from \"../../../src/taskpane/components/helpers/folderViewWrapper\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { setIsBusySaving, setIsSavingInBackground } from \"../../../src/taskpane/redux/modules/savingInBackground\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { NewDocumentTemplate } from \"../../../src/taskpane/interfaces/IDocumentTemplate\";\r\n\r\nconst rootContentType: string = \"root\";\r\n\r\nexport function useMenuItem_Upload(\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n newDocumentTemplates: NewDocumentTemplate[],\r\n pickFiles: () => void,\r\n pickFolder: () => void,\r\n setIsCMUploadFilesPanelOpen: (isCMUploadFilesPanelOpen: boolean) => void\r\n) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const currentDirectory = useSelector((state: RootState) =>\r\n state.workingDirectories.workingDirectories.length > 0\r\n ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1]\r\n : null\r\n );\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo.sites);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n const enableNewTemplateFilters = useSelector((state: RootState) => state.tenantInfo.enableNewTemplateFilters);\r\n const newTemplateDocumentSetFilters = useSelector((state: RootState) => state.tenantInfo.newTemplateDocumentSetFilters);\r\n const newTemplateFolderFilters = useSelector((state: RootState) => state.tenantInfo.newTemplateFolderFilters);\r\n const newTemplateLibraryFilters = useSelector((state: RootState) => state.tenantInfo.newTemplateLibraryFilters);\r\n const enforceStrictDocumentSetsOnly = useSelector((state: RootState) => state.tenantInfo.enforceStrictDocumentSetsOnly);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [menuItem_Upload, setMenuItem_Upload] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (\r\n !selectedItems ||\r\n (selectedItems?.length === 0 && currentSharepointFolder?.userPermissions?.canAddListItem && currentSharepointFolder?.userPermissions?.canEditListItem && !searchValue && currentDirectory.type !== ComponentTypes.SharePointList)\r\n ) {\r\n var folderViewWrapper = new FolderViewWrapper(siteInfo, currentDirectory);\r\n const canViewFolder = folderViewWrapper.canViewFolder();\r\n\r\n const isInFolder = (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath)\r\n || (currentDirectory?.directory?.length > 0 && currentDirectory?.parentId);\r\n\r\n let currentContentype: string;\r\n if (enforceStrictDocumentSetsOnly || enableNewTemplateFilters) {\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet)) {\r\n currentContentype = SharePointFolderContentTypeIds.documentSet;\r\n } else if (isInFolder) {\r\n currentContentype = SharePointFolderContentTypeIds.folder;\r\n } else {\r\n currentContentype = rootContentType;\r\n }\r\n }\r\n\r\n let canUploadFolders = false;\r\n let canUploadFiles = false;\r\n\r\n if (enableNewTemplateFilters) {\r\n if (currentContentype === rootContentType && newTemplateLibraryFilters?.includes(newTemplateFilterEnum.file)) {\r\n canUploadFiles = true;\r\n } else if (currentContentype === SharePointFolderContentTypeIds.folder && newTemplateFolderFilters?.includes(newTemplateFilterEnum.file)) {\r\n canUploadFiles = true;\r\n } else if (currentContentype === SharePointFolderContentTypeIds.documentSet && newTemplateDocumentSetFilters?.includes(newTemplateFilterEnum.file)) {\r\n canUploadFiles = true;\r\n }\r\n\r\n if (currentContentype === rootContentType && newTemplateLibraryFilters?.includes(newTemplateFilterEnum.folder)) {\r\n canUploadFolders = true;\r\n } else if (currentContentype === SharePointFolderContentTypeIds.folder && newTemplateFolderFilters?.includes(newTemplateFilterEnum.folder)) {\r\n canUploadFolders = true;\r\n } else if (currentContentype === SharePointFolderContentTypeIds.documentSet && newTemplateDocumentSetFilters?.includes(newTemplateFilterEnum.folder)) {\r\n canUploadFolders = true;\r\n }\r\n } else {\r\n canUploadFiles = true;\r\n canUploadFolders = true;\r\n }\r\n\r\n if (enforceStrictDocumentSetsOnly\r\n && currentContentype === rootContentType\r\n && (canUploadFiles || canUploadFolders)\r\n && newDocumentTemplates?.some(template => template?.templateId?.startsWith(SharePointFolderContentTypeIds.documentSet))) {\r\n canUploadFiles = false;\r\n canUploadFolders = false;\r\n }\r\n\r\n if (canUploadFiles && (canViewFolder || (!canViewFolder && !isInFolder))) {\r\n const menuItems: IContextualMenuItem[] = [{\r\n key: \"uploadfiles\",\r\n text: languageStrings.Files,\r\n onClick: () => {\r\n dispatch(setIsSavingInBackground(false));\r\n dispatch(setIsBusySaving({ isBusySaving: false, isSuccess: null, errorMessages: null }));\r\n pickFiles();\r\n }\r\n }];\r\n\r\n if (currentSharepointFolder.canCreateFolder && canUploadFolders) {\r\n menuItems.push({\r\n key: \"uploadFolders\",\r\n text: languageStrings.Folder,\r\n onClick: () => {\r\n dispatch(setIsSavingInBackground(false));\r\n dispatch(setIsBusySaving({ isBusySaving: false, isSuccess: null, errorMessages: null }));\r\n pickFolder();\r\n },\r\n })\r\n }\r\n\r\n setMenuItem_Upload({\r\n key: \"uploadfilesfolders\",\r\n disabled: !currentDirectory?.sharePointListId || waitFor === true || isBusySaving === true,\r\n text: languageStrings.Upload,\r\n iconProps: { iconName: \"Upload\" },\r\n subMenuProps: {\r\n items: menuItems\r\n }\r\n });\r\n } else {\r\n setMenuItem_Upload(null);\r\n }\r\n } else {\r\n setMenuItem_Upload(null);\r\n }\r\n }, [\r\n selectedItems,\r\n waitFor,\r\n newDocumentTemplates,\r\n currentSharepointFolder,\r\n isBusySaving,\r\n currentDirectory,\r\n siteInfo,\r\n searchValue,\r\n enableNewTemplateFilters,\r\n newTemplateLibraryFilters,\r\n newTemplateFolderFilters,\r\n newTemplateDocumentSetFilters,\r\n ]);\r\n\r\n return {\r\n menuItem_Upload,\r\n };\r\n}\r\n","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_VersionAppRej(selectedItems: any[], waitFor: boolean, setIsCMVersionAppRejModalOpen: (isCMVersionAppRejModalOpen: boolean) => void, isInOneDrive: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n\r\n const [menuItem_VersionAppRej, setMenuItem_VersionAppRej] = React.useState();\r\n\r\n const menuItem: IContextualMenuItem = {\r\n key: 'approveReject',\r\n disabled: waitFor === true,\r\n name: `${languageStrings.Approve}/${languageStrings.Reject}`,\r\n iconProps: { iconName: \"CheckedOutByOther12\" },\r\n onClick: () => {\r\n setIsCMVersionAppRejModalOpen(true);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!isInOneDrive && selectedItems.length > 0) {\r\n if (!selectedItems.some(x => x?.EffectiveBasePermissions?.canApproveItems === false) &&\r\n !selectedItems.some(x => x?.EffectiveBasePermissions?.canCancelCheckout === false) &&\r\n isAllInPending() &&\r\n (checkedOutAllItems() || (selectedItems.every(x => x.CheckoutUser) && !selectedItems.some(x => x?.EffectiveBasePermissions?.canCancelCheckout === false))) &&\r\n selectedItems?.some(x => !x.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder))\r\n ) {\r\n setMenuItem_VersionAppRej(menuItem);\r\n }\r\n else {\r\n setMenuItem_VersionAppRej(null);\r\n }\r\n }\r\n else {\r\n setMenuItem_VersionAppRej(null);\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive, currentSharepointFolder, userAccount])\r\n\r\n const isAllInPending = () => {\r\n let results = true;\r\n selectedItems.forEach(item => {\r\n if (results && !(item['_ModerationStatus.'] && item['_ModerationStatus.'] === '2')) {\r\n results = false;\r\n }\r\n });\r\n\r\n return results;\r\n }\r\n\r\n const checkedOutAllItems = () => {\r\n let results = true;\r\n if (selectedItems.every(x => x.CheckoutUser)) {\r\n selectedItems.forEach(item => {\r\n item.CheckoutUser.forEach(checkedOutUser => {\r\n if (checkedOutUser.email !== userAccount.username) {\r\n results = false;\r\n }\r\n });\r\n });\r\n } else {\r\n results = false;\r\n }\r\n\r\n return results;\r\n }\r\n\r\n return {\r\n menuItem_VersionAppRej\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { SharePointFolderContentTypeIds } from \"../../../src/taskpane/config/constants\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_VersionHistory(selectedItems: any[], waitFor: boolean, setShowVersionHistoryDialog: (showVersionHistoryDialog: boolean) => void, isInOneDrive: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n\r\n const [menuItem_VersionHistory, setMenuItem_VersionHistory] = React.useState();\r\n\r\n React.useEffect(() => {\r\n if (selectedItems?.length === 1 && currentDirectory.type !== ComponentTypes.SharePointList &&\r\n !selectedItems[0]?.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) &&\r\n selectedItems[0]?.ProgId !== \"OneNote.Notebook\" &&\r\n selectedItems[0]?.EffectiveBasePermissions?.canViewVersions) {\r\n setMenuItem_VersionHistory(\r\n {\r\n key: 'versions',\r\n disabled: waitFor === true,\r\n name: languageStrings.VersionHistory,\r\n iconProps: { iconName: \"History\" },\r\n onClick: () => {\r\n setShowVersionHistoryDialog(true);\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_VersionHistory(null)\r\n }\r\n }, [selectedItems, waitFor, isInOneDrive])\r\n\r\n return {\r\n menuItem_VersionHistory\r\n }\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { IViewsDropdown } from \"../../../src/taskpane/interfaces/IViewsDropdown\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\n\r\nexport function useMenuItem_Views(viewsWithColumns: IViewsDropdown[], selectedView: IViewsDropdown, setSelectedView: (view: IViewsDropdown) => void, quickFilterValue: string, libraryMinVerEnabled: boolean) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const isBusySaving = useSelector((state: RootState) => state.savingInBackground.isBusySaving);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue?.value);\r\n const minVersionLimit = useSelector((state: RootState) => state.tenantInfo?.minVersionLimit);\r\n\r\n const [menuItem_Views, setMenuItem_Views] = React.useState();\r\n const [viewItems, setViewItems] = React.useState([]);\r\n\r\n React.useEffect(() => { \r\n if (!searchValue && !quickFilterValue) {\r\n setMenuItem_Views(\r\n {\r\n key: \"views\",\r\n disabled: viewsWithColumns.length === 0 || isBusySaving === true,\r\n text: selectedView ? selectedView.text : languageStrings.Views,\r\n iconProps: { iconName: \"List\" },\r\n subMenuProps: {\r\n items: viewItems\r\n }\r\n }\r\n )\r\n } else {\r\n setMenuItem_Views(null);\r\n }\r\n }, [viewItems, viewsWithColumns, isBusySaving, searchValue, quickFilterValue]);\r\n\r\n React.useEffect(() => {\r\n const views: IContextualMenuItem[] = [];\r\n\r\n viewsWithColumns.forEach(view => {\r\n const viewItem: IContextualMenuItem = {\r\n key: view.key.toString(),\r\n canCheck: true,\r\n checked: view.key === selectedView?.key,\r\n text: view.text,\r\n onClick: () => setSelectedView(view)\r\n }\r\n\r\n if (!view.isReport || (view.isReport && libraryMinVerEnabled && minVersionLimit)) {\r\n views.push(viewItem);\r\n }\r\n });\r\n\r\n setViewItems([...views])\r\n\r\n }, [viewsWithColumns, selectedView, libraryMinVerEnabled, minVersionLimit]);\r\n\r\n return {\r\n menuItem_Views\r\n }\r\n\r\n}","import { IContextualMenuItem } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ISearchOpenFileInfo } from \"../../../src/taskpane/interfaces/ISearchOpenFileInfo\";\r\nimport { IViewsDropdown } from \"../../../src/taskpane/interfaces/IViewsDropdown\";\r\nimport { RootState } from \"../../../src/taskpane/redux\";\r\nimport { InfoPanelMode } from \"../../Panels/CMFileInfoPanel\";\r\nimport { gridSelectedItems } from \"../ContentManagerBody\";\r\nimport { GridProps } from \"../useContentManagerBody\";\r\nimport { useMenuItem_Automation } from \"./useMenuItem_Automation\";\r\nimport { useMenuItem_Checkin } from \"./useMenuItem_Checkin\";\r\nimport { useMenuItem_Checkout } from \"./useMenuItem_Checkout\";\r\nimport { useMenuItem_ClearSearch } from \"./useMenuItem_ClearSearch\";\r\nimport { useMenuItem_CopyTo } from \"./useMenuItem_CopyTo\";\r\nimport { useMenuItem_CurrentLocation } from \"./useMenuItem_CurrentLocation\";\r\nimport { useMenuItem_Delete } from \"./useMenuItem_Delete\";\r\nimport { useMenuItem_CancelAssignment } from \"./useMenuItem_CancelAssignment\";\r\nimport { useMenuItem_DiscardCheckout } from \"./useMenuItem_DiscardCheckout\";\r\nimport { useMenuItem_Download } from \"./useMenuItem_Download\";\r\nimport { useMenuItem_DownloadAsPDF } from \"./useMenuItem_DownloadAsPDF\";\r\nimport { useMenuItem_Error } from \"./useMenuItem_Error\";\r\nimport { useMenuItem_Filter } from \"./useMenuItem_Filter\";\r\nimport { useMenuItem_LoadingFiles } from \"./useMenuItem_LoadingFiles\";\r\nimport { useMenuItem_More } from \"./useMenuItem_More\";\r\nimport { useMenuItem_MoveTo } from \"./useMenuItem_MoveTo\";\r\nimport { useMenuItem_MoveToCancel } from \"./useMenuItem_MoveToCancel\";\r\nimport { useMenuItem_New } from \"./useMenuItem_New\";\r\nimport { useMenuItem_Open } from \"./useMenuItem_Open\";\r\nimport { useMenuItem_PII } from \"./useMenuItem_PII\";\r\nimport { useMenuItem_Pin } from \"./useMenuItem_Pin\";\r\nimport { useMenuItem_Preview } from \"./useMenuItem_Preview\";\r\nimport { useMenuItem_Properties } from \"./useMenuItem_Properties\";\r\nimport { useMenuItem_Publish } from \"./useMenuItem_Publish\";\r\nimport { useMenuItem_Refresh } from \"./useMenuItem_Refresh\";\r\nimport { useMenuItem_Rename } from \"./useMenuItem_Rename\";\r\nimport { useMenuItem_Replace } from \"./useMenuItem_Replace\";\r\nimport { useMenuItem_SavingFiles } from \"./useMenuItem_SavingFiles\";\r\nimport { useMenuItem_SelectedFileCount } from \"./useMenuItem_SelectedFileCount\";\r\nimport { useMenuItem_SelectedMoveFileCount } from \"./useMenuItem_SelectedMoveFileCount\";\r\nimport { useMenuItem_Share } from \"./useMenuItem_Share\";\r\nimport { useMenuItem_Unpublish } from \"./useMenuItem_Unpublish\";\r\nimport { useMenuItem_Upload } from \"./useMenuItem_Upload\";\r\nimport { useMenuItem_VersionAppRej } from \"./useMenuItem_VersionAppRej\";\r\nimport { useMenuItem_VersionHistory } from \"./useMenuItem_VersionHistory\";\r\nimport { useMenuItem_Views } from \"./useMenuItem_Views\";\r\nimport { useMenuItem_ClearFilter } from \"./useMenuItem_ClearFilter\";\r\nimport { useMenuItem_SaveAsPDF } from \"./useMenuItem_SaveAsPDF\";\r\nimport { useMenuItem_SigningRequest } from \"./useMenuItem_SigningRequest\";\r\nimport { useMenuItem_ShareToTeams } from \"./useMenuItem_ShareToTeams\";\r\nimport { ModeEnum } from \"../../../src/taskpane/components/enums/modeEnum\";\r\nimport { useMenuItem_NewDatasourceDocumentTemplate } from \"./useMenuItem_NewDatasourceFileTemplate\";\r\nimport { NewDocumentTemplate } from \"../../../src/taskpane/interfaces/IDocumentTemplate\";\r\nimport { SharePanelMode } from \"../../Panels/CMFileSharePanel\";\r\nimport { useMenuItem_CopyLink } from \"./useMenuItem_CopyLink\";\r\n\r\nexport interface ICommandBarMenuProps {\r\n items: IContextualMenuItem[];\r\n farItems: IContextualMenuItem[];\r\n}\r\n\r\nexport function useMenuItems(\r\n mode: ModeEnum,\r\n selectedItems: any[],\r\n waitFor: boolean,\r\n setWaitFor: (waitFor: boolean) => void,\r\n waitForContext: string,\r\n setWaitForContext: (waitForContext: string) => void,\r\n isInOneDrive: boolean,\r\n listFields: any,\r\n selectedItemInfo?: ISearchOpenFileInfo,\r\n setIsCMCreateFolderPanelOpen?: (isCMCreateFolderPanelOpen: boolean) => void,\r\n setIsCMUploadFilesPanelOpen?: (isCMUploadFilesPanelOpen: boolean) => void,\r\n setShowRenameDialog?: (showRenameDialog: boolean) => void,\r\n setIsCMFileInfoPanelOpen?: (isCMFileInfoPanelOpen: boolean) => void,\r\n setInfoPanelMode?: (infoPanelMode: InfoPanelMode) => void,\r\n setApprovalFiles?: (approvalFiles: any[]) => void,\r\n setIsApprovalsPanelOpen?: (isApprovalsPanelOpen: boolean) => void,\r\n setShowDeleteDialog?: (showDeleteDialog: boolean) => void,\r\n setShowVersionHistoryDialog?: (showVersionHistoryDialog) => void,\r\n setIsPublish?: (isPublish: boolean) => void,\r\n setShowCheckinDialog?: (showCheckinDialog: boolean) => void,\r\n gridProps?: GridProps,\r\n setGridProps?: (gridProps: GridProps) => void,\r\n setSelectedItems?: (selectedItems: gridSelectedItems) => void,\r\n setIsCMFilePreviewPanelOpen?: (isCMFilePreviewPanelOpen: boolean) => void,\r\n setSelectionCleared?: (selectionCleared: boolean) => void,\r\n setGridItemIsBusy?: (items: any[], isBusy: boolean) => void,\r\n updateGridItems?: (items: any[]) => void,\r\n viewsWithColumns?: IViewsDropdown[],\r\n selectedView?: IViewsDropdown,\r\n setSelectedView?: (view: IViewsDropdown) => void,\r\n setIsCMErrorModalOpen?: (isCMErrorModalOpen: boolean) => void,\r\n setErrorMessage?: (errorMessage: string) => void,\r\n setIsCMVersionAppRejModalOpen?: (isCMVersionAppRejModalOpen: boolean) => void,\r\n setIsCMFileFilterPanelOpen?: (isCMFileFilterPanelOpen: boolean) => void,\r\n newDocumentTemplates?: NewDocumentTemplate[],\r\n openCreateTemplateModal?: (selectedTemplate: NewDocumentTemplate) => void,\r\n quickFilterValue?: string,\r\n menuItem_QuickFilter?: IContextualMenuItem,\r\n setIsCMMoveFilesListPanelOpen?: (isCMMoveFilesListPanelOpen: boolean) => void,\r\n setShowConfirmMoveToDialog?: (isShowConfirmMoveToDialog: boolean) => void,\r\n isFetchingData?: boolean,\r\n openSharePanel?: (mode: SharePanelMode) => void,\r\n setShowCancelAssignmentDialog?: (showCancelAssignmentDialog: boolean) => void,\r\n libraryMinVerEnabled?: boolean,\r\n openDuplicateFileVersionSelectorModal?: (isDuplicate: boolean, showVersion: boolean) => void,\r\n reloadGrid?: (gridData?: GridProps) => void,\r\n pickFiles?: () => void,\r\n pickFolder?: () => void,\r\n setIsSigningPanelOpen?: (isSigningPanelOpen: boolean) => void,\r\n) {\r\n const { menuItem_Automation } = useMenuItem_Automation(selectedItems, waitFor, setApprovalFiles, setIsApprovalsPanelOpen);\r\n const { menuItem_Checkin } = useMenuItem_Checkin(selectedItems, waitFor, setWaitFor, setIsPublish, setShowCheckinDialog, isInOneDrive);\r\n const { menuItem_Checkout } = useMenuItem_Checkout(selectedItems, waitFor, setWaitFor, isInOneDrive, setGridItemIsBusy, updateGridItems, setIsCMErrorModalOpen, setErrorMessage);\r\n const { menuItem_ClearSearch } = useMenuItem_ClearSearch(selectedItems, waitFor);\r\n const { menuItem_ClearFilter } = useMenuItem_ClearFilter(waitFor);\r\n const { menuItem_CopyTo } = useMenuItem_CopyTo(gridProps?.items?.length, selectedItems, setShowConfirmMoveToDialog, isInOneDrive, isFetchingData, setIsCMUploadFilesPanelOpen);\r\n const { menuItem_CurrentLocation } = useMenuItem_CurrentLocation(selectedItems, isInOneDrive);\r\n const { menuItem_Delete, deleteSuccess } = useMenuItem_Delete(selectedItems, waitFor, setWaitFor, setShowDeleteDialog, gridProps, setGridProps, setSelectionCleared);\r\n const { menuItem_CancelAssignment } = useMenuItem_CancelAssignment(selectedItems, waitFor, setShowCancelAssignmentDialog);\r\n const { menuItem_DiscardCheckout } = useMenuItem_DiscardCheckout(selectedItems, waitFor, setWaitFor, isInOneDrive, setGridItemIsBusy, updateGridItems, setIsCMErrorModalOpen, setErrorMessage);\r\n const { menuItem_Download } = useMenuItem_Download(listFields, selectedItems, waitFor, setWaitFor, isInOneDrive, setWaitForContext);\r\n const { menuItem_DownloadAsPDF } = useMenuItem_DownloadAsPDF(listFields, selectedItems, waitFor, setWaitFor, isInOneDrive, setIsCMErrorModalOpen, setErrorMessage);\r\n const { menuItem_Error } = useMenuItem_Error(setIsCMUploadFilesPanelOpen, setIsCMMoveFilesListPanelOpen);\r\n const { menuItem_Filter } = useMenuItem_Filter(setIsCMFileFilterPanelOpen);\r\n const { menuItem_LoadingFiles } = useMenuItem_LoadingFiles(selectedItems, waitFor, waitForContext);\r\n const { menuItem_MoveTo } = useMenuItem_MoveTo(gridProps?.items?.length, selectedItems, setShowConfirmMoveToDialog, isInOneDrive, isFetchingData);\r\n const { menuItem_MoveToCancel } = useMenuItem_MoveToCancel(selectedItems, waitFor);\r\n const { menuItem_New } = useMenuItem_New(selectedItems, waitFor, setIsCMCreateFolderPanelOpen, newDocumentTemplates, openCreateTemplateModal);\r\n const { menuItem_Open } = useMenuItem_Open(selectedItems, waitFor, setWaitFor, isInOneDrive, selectedItemInfo);\r\n const { menuItem_PII } = useMenuItem_PII(selectedItems, waitFor, gridProps, setGridProps, setSelectedItems);\r\n const { menuItem_Pin } = useMenuItem_Pin(selectedItems, waitFor, isInOneDrive, selectedItemInfo);\r\n const { menuItem_Preview, menuItem_Preview_IconOnly } = useMenuItem_Preview(selectedItems, setIsCMFilePreviewPanelOpen);\r\n const { menuItem_Properties, menuItem_Properties_IconOnly } = useMenuItem_Properties(selectedItems, setIsCMFileInfoPanelOpen, setInfoPanelMode);\r\n const { menuItem_Publish } = useMenuItem_Publish(selectedItems, waitFor, setWaitFor, setIsPublish, setShowCheckinDialog, isInOneDrive, setGridItemIsBusy, updateGridItems, setIsCMErrorModalOpen, setErrorMessage);\r\n const { menuItem_Refresh } = useMenuItem_Refresh(selectedItems);\r\n const { menuItem_Rename } = useMenuItem_Rename(selectedItems, waitFor, setShowRenameDialog);\r\n const { menuItem_Replace } = useMenuItem_Replace(selectedItems, waitFor, setIsCMFileInfoPanelOpen, setInfoPanelMode);\r\n const { menuItem_SaveAsPDF } = useMenuItem_SaveAsPDF(selectedItems, waitFor, setWaitFor, isInOneDrive, setIsCMErrorModalOpen, setErrorMessage, openDuplicateFileVersionSelectorModal, reloadGrid);\r\n const { menuItem_SavingFiles } = useMenuItem_SavingFiles(setIsCMMoveFilesListPanelOpen);\r\n const { menuItem_SelectedFileCount } = useMenuItem_SelectedFileCount(selectedItems, waitFor, setSelectionCleared);\r\n const { menuItem_SelectedMoveFileCount } = useMenuItem_SelectedMoveFileCount(setIsCMMoveFilesListPanelOpen, isInOneDrive);\r\n const { menuItem_Share } = useMenuItem_Share(selectedItems, openSharePanel);\r\n const { menuItem_CopyLink } = useMenuItem_CopyLink(selectedItems, openSharePanel);\r\n const { menuItem_SigningRequest } = useMenuItem_SigningRequest(selectedItems, waitFor, setApprovalFiles, setIsSigningPanelOpen);\r\n const { menuItem_Unpublish } = useMenuItem_Unpublish(selectedItems, waitFor, setWaitFor, isInOneDrive, setGridItemIsBusy, updateGridItems, setIsCMErrorModalOpen, setErrorMessage);\r\n const { menuItem_Upload } = useMenuItem_Upload(selectedItems, waitFor, newDocumentTemplates, pickFiles, pickFolder, setIsCMUploadFilesPanelOpen);\r\n const { menuItem_VersionAppRej } = useMenuItem_VersionAppRej(selectedItems, waitFor, setIsCMVersionAppRejModalOpen, isInOneDrive);\r\n const { menuItem_VersionHistory } = useMenuItem_VersionHistory(selectedItems, waitFor, setShowVersionHistoryDialog, isInOneDrive);\r\n const { menuItem_Views } = useMenuItem_Views(viewsWithColumns, selectedView, setSelectedView, quickFilterValue, libraryMinVerEnabled);\r\n const { menuItem_More } = useMenuItem_More(selectedItems, isInOneDrive, menuItem_Checkout, menuItem_Checkin, menuItem_DiscardCheckout, menuItem_Publish, menuItem_Unpublish, menuItem_VersionAppRej);\r\n const { menuItem_ShareToTeams } = useMenuItem_ShareToTeams(selectedItems, isInOneDrive, setWaitFor, setWaitForContext, mode);\r\n const { menuItem_NewDatasourceDocumentTemplate } = useMenuItem_NewDatasourceDocumentTemplate(selectedItems, waitFor, newDocumentTemplates, openCreateTemplateModal);\r\n\r\n const [contextMenuState, _setContextMenuState] = React.useState();\r\n\r\n const contextMenuRef = React.useRef(contextMenuState);\r\n const setContextMenu = (data: IContextualMenuItem[]) => {\r\n contextMenuRef.current = data;\r\n _setContextMenuState(data);\r\n };\r\n\r\n const moveToEnabled = useSelector((state: RootState) => state.contentManagerDirectory.moveTo.moveToEnabled);\r\n\r\n const [commandBarMenuState, _setCommandBarMenuState] = React.useState();\r\n\r\n const commandBarMenuRef = React.useRef(commandBarMenuState);\r\n const setCommandBarMenu = (data: ICommandBarMenuProps) => {\r\n commandBarMenuRef.current = data;\r\n _setCommandBarMenuState(data);\r\n };\r\n\r\n React.useEffect(() => {\r\n const menu: IContextualMenuItem[] = [];\r\n const commandbarMenu: ICommandBarMenuProps = {\r\n items: [],\r\n farItems: []\r\n }\r\n\r\n moveToEnabled ? moveToEnabledCommandBar(menu, commandbarMenu) : moveToDisabledCommandBar(menu, commandbarMenu);\r\n\r\n setContextMenu(menu);\r\n setCommandBarMenu(commandbarMenu);\r\n }, [\r\n mode,\r\n moveToEnabled,\r\n selectedItems,\r\n menuItem_Automation,\r\n menuItem_Checkin,\r\n menuItem_Checkout,\r\n menuItem_ClearSearch,\r\n menuItem_ClearFilter,\r\n menuItem_CopyTo,\r\n menuItem_CurrentLocation,\r\n menuItem_Delete,\r\n menuItem_CancelAssignment,\r\n menuItem_DiscardCheckout,\r\n menuItem_Download,\r\n menuItem_DownloadAsPDF,\r\n menuItem_Error,\r\n menuItem_Filter,\r\n menuItem_LoadingFiles,\r\n menuItem_MoveTo,\r\n menuItem_MoveToCancel,\r\n menuItem_More,\r\n menuItem_New,\r\n menuItem_Open,\r\n menuItem_PII,\r\n menuItem_Pin,\r\n menuItem_Preview,\r\n menuItem_Preview_IconOnly,\r\n menuItem_Properties,\r\n menuItem_Properties_IconOnly,\r\n menuItem_Publish,\r\n menuItem_QuickFilter,\r\n menuItem_Refresh,\r\n menuItem_Rename,\r\n menuItem_Replace,\r\n menuItem_SavingFiles,\r\n menuItem_SelectedFileCount,\r\n menuItem_SelectedMoveFileCount,\r\n menuItem_Share,\r\n menuItem_SigningRequest,\r\n menuItem_Unpublish,\r\n menuItem_Upload,\r\n menuItem_VersionAppRej,\r\n menuItem_VersionHistory,\r\n menuItem_Views,\r\n menuItem_ShareToTeams\r\n ]);\r\n\r\n const moveToDisabledCommandBar = (menu: IContextualMenuItem[], commandbarMenu: ICommandBarMenuProps) => {\r\n\r\n if (mode === ModeEnum.contentManagerTeams && menuItem_ShareToTeams) {\r\n menu.push(menuItem_ShareToTeams);\r\n }\r\n\r\n if (menuItem_New) {\r\n commandbarMenu.items.push(menuItem_New);\r\n }\r\n\r\n if (menuItem_Upload) {\r\n commandbarMenu.items.push(menuItem_Upload);\r\n }\r\n\r\n if (menuItem_NewDatasourceDocumentTemplate) {\r\n commandbarMenu.items.push(menuItem_NewDatasourceDocumentTemplate);\r\n }\r\n\r\n if (menuItem_CurrentLocation) {\r\n menu.push(menuItem_CurrentLocation);\r\n commandbarMenu.items.push(menuItem_CurrentLocation);\r\n }\r\n\r\n if (menuItem_Open) {\r\n menu.push(menuItem_Open);\r\n commandbarMenu.items.push(menuItem_Open);\r\n }\r\n\r\n if (menuItem_Preview) {\r\n menu.push(menuItem_Preview);\r\n }\r\n\r\n if (menuItem_Share) {\r\n menu.push(menuItem_Share);\r\n commandbarMenu.items.push(menuItem_Share);\r\n }\r\n\r\n if (menuItem_CopyLink) {\r\n menu.push(menuItem_CopyLink);\r\n commandbarMenu.items.push(menuItem_CopyLink);\r\n }\r\n\r\n if (menuItem_Rename) {\r\n menu.push(menuItem_Rename);\r\n commandbarMenu.items.push(menuItem_Rename);\r\n }\r\n\r\n if (menuItem_Replace) {\r\n menu.push(menuItem_Replace);\r\n commandbarMenu.items.push(menuItem_Replace);\r\n }\r\n\r\n if (menuItem_Download) {\r\n menu.push(menuItem_Download);\r\n commandbarMenu.items.push(menuItem_Download);\r\n }\r\n\r\n if (menuItem_CopyTo) {\r\n menu.push(menuItem_CopyTo);\r\n commandbarMenu.items.push(menuItem_CopyTo);\r\n }\r\n\r\n if (menuItem_MoveTo) {\r\n menu.push(menuItem_MoveTo);\r\n commandbarMenu.items.push(menuItem_MoveTo);\r\n }\r\n\r\n if (menuItem_DownloadAsPDF) {\r\n menu.push(menuItem_DownloadAsPDF);\r\n commandbarMenu.items.push(menuItem_DownloadAsPDF);\r\n }\r\n\r\n if (menuItem_SaveAsPDF) {\r\n menu.push(menuItem_SaveAsPDF);\r\n commandbarMenu.items.push(menuItem_SaveAsPDF);\r\n }\r\n\r\n if (menuItem_Delete) {\r\n menu.push(menuItem_Delete);\r\n commandbarMenu.items.push(menuItem_Delete);\r\n }\r\n\r\n if (menuItem_CancelAssignment) {\r\n menu.push(menuItem_CancelAssignment);\r\n commandbarMenu.items.push(menuItem_CancelAssignment);\r\n }\r\n\r\n if (menuItem_PII) {\r\n menu.push(menuItem_PII);\r\n commandbarMenu.items.push(menuItem_PII);\r\n }\r\n\r\n if (menuItem_Automation) {\r\n menu.push(menuItem_Automation);\r\n commandbarMenu.items.push(menuItem_Automation);\r\n }\r\n\r\n if (menuItem_SigningRequest) {\r\n menu.push(menuItem_SigningRequest);\r\n commandbarMenu.items.push(menuItem_SigningRequest);\r\n }\r\n\r\n if (menuItem_Pin) {\r\n menu.push(menuItem_Pin);\r\n commandbarMenu.items.push(menuItem_Pin);\r\n }\r\n\r\n if (menuItem_VersionHistory) {\r\n menu.push(menuItem_VersionHistory);\r\n }\r\n\r\n if (menuItem_More) {\r\n menu.push(menuItem_More);\r\n }\r\n\r\n if (menuItem_Properties) {\r\n menu.push(menuItem_Properties);\r\n }\r\n\r\n if (menuItem_VersionHistory) {\r\n commandbarMenu.items.push(menuItem_VersionHistory);\r\n }\r\n\r\n if (menuItem_Checkout) {\r\n commandbarMenu.items.push(menuItem_Checkout);\r\n }\r\n\r\n if (menuItem_Checkin) {\r\n commandbarMenu.items.push(menuItem_Checkin);\r\n }\r\n\r\n if (menuItem_DiscardCheckout) {\r\n commandbarMenu.items.push(menuItem_DiscardCheckout);\r\n }\r\n\r\n if (menuItem_Publish) {\r\n commandbarMenu.items.push(menuItem_Publish);\r\n }\r\n\r\n if (menuItem_Unpublish) {\r\n commandbarMenu.items.push(menuItem_Unpublish);\r\n }\r\n\r\n if (menuItem_VersionAppRej) {\r\n commandbarMenu.items.push(menuItem_VersionAppRej);\r\n }\r\n\r\n if (menuItem_QuickFilter) {\r\n commandbarMenu.items.push(menuItem_QuickFilter);\r\n }\r\n\r\n //far items\r\n if (menuItem_SelectedFileCount) {\r\n commandbarMenu.farItems.push(menuItem_SelectedFileCount);\r\n }\r\n\r\n if (menuItem_ClearSearch) {\r\n commandbarMenu.farItems.push(menuItem_ClearSearch);\r\n }\r\n\r\n if (menuItem_ClearFilter) {\r\n commandbarMenu.farItems.push(menuItem_ClearFilter);\r\n }\r\n\r\n if (menuItem_Error) {\r\n commandbarMenu.farItems.push(menuItem_Error);\r\n }\r\n\r\n if (menuItem_SavingFiles) {\r\n commandbarMenu.farItems.push(menuItem_SavingFiles);\r\n }\r\n\r\n if (menuItem_SelectedMoveFileCount) {\r\n commandbarMenu.farItems.push(menuItem_SelectedMoveFileCount);\r\n }\r\n\r\n if (menuItem_LoadingFiles) {\r\n commandbarMenu.farItems.push(menuItem_LoadingFiles);\r\n }\r\n\r\n if (menuItem_Properties_IconOnly) {\r\n commandbarMenu.farItems.push(menuItem_Properties_IconOnly);\r\n }\r\n\r\n if (menuItem_Preview_IconOnly) {\r\n commandbarMenu.farItems.push(menuItem_Preview_IconOnly);\r\n }\r\n\r\n if (menuItem_Views) {\r\n commandbarMenu.farItems.push(menuItem_Views);\r\n }\r\n\r\n if (menuItem_Filter) {\r\n commandbarMenu.farItems.push(menuItem_Filter);\r\n }\r\n\r\n if (menuItem_Refresh) {\r\n commandbarMenu.farItems.push(menuItem_Refresh);\r\n }\r\n }\r\n\r\n const moveToEnabledCommandBar = (menu: IContextualMenuItem[], commandbarMenu: ICommandBarMenuProps) => {\r\n if (menuItem_CopyTo) {\r\n menu.push(menuItem_CopyTo);\r\n commandbarMenu.items.push(menuItem_CopyTo);\r\n }\r\n\r\n if (menuItem_MoveTo) {\r\n menu.push(menuItem_MoveTo);\r\n commandbarMenu.items.push(menuItem_MoveTo);\r\n }\r\n\r\n if (menuItem_MoveToCancel) {\r\n menu.push(menuItem_MoveToCancel);\r\n commandbarMenu.items.push(menuItem_MoveToCancel);\r\n }\r\n\r\n //far items\r\n if (menuItem_SelectedMoveFileCount) {\r\n commandbarMenu.farItems.push(menuItem_SelectedMoveFileCount);\r\n }\r\n }\r\n\r\n const contextMenu = contextMenuRef.current;\r\n const commandBarMenu = commandBarMenuRef.current;\r\n\r\n return {\r\n contextMenu,\r\n commandBarMenu,\r\n deleteSuccess\r\n }\r\n}","import React from \"react\";\r\nimport { parseString } from \"xml2js\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { IViewsDropdown } from \"../../src/taskpane/interfaces/IViewsDropdown\";\r\nimport authModule from \"../../utilities/AuthModule\";\r\nimport { useLazyGetListColumnsSchemaQuery, useLazyRenderListAsStreamByIDQuery, useLazyRenderListAsStreamGroupDrilldown2Query, useLazyRenderListAsStreamGroupDrilldownQuery, useLazyRenderListAsStreamNextPageQuery, useLazyRenderListAsStreamQuery } from \"../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { IColumn, Icon, IconButton, IGroup, IIconStyles, IPersonaStyles, ISpinnerStyles, IStackItemStyles, IStackTokens, Link, Persona, PersonaSize, Point, Spinner, SpinnerSize, Stack, TooltipHost, TooltipOverflowMode } from \"@fluentui/react\";\r\nimport { FileIconType, getFileTypeIconProps } from \"@fluentui/react-file-type-icons\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { addWorkingDirectory } from \"../../src/taskpane/redux/modules/workingDirectory\";\r\nimport { IPageSettings } from \"../../src/taskpane/interfaces/IPageSettings\";\r\nimport { useLazyGetItemWebUrlQuery } from \"../../src/taskpane/components/_v2/redux/api/graph/api-graph-slice\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { recentFilesAdvancedSearchMapper } from \"../../src/taskpane/components/mappers/recentFilesAdvancedSearchMapper\";\r\nimport { getDriveItemSharepointUniqueId, getFileItemIdFromRelativePath, getItemWebViewUrl, getListItemWebUrl } from \"../../src/taskpane/services/GraphService\";\r\nimport { DocubirdCache, extensions, officeFileType, pdfEmbed, shared, SharePointFolderContentTypeIds, sharePointInternalFileName } from \"../../src/taskpane/config/constants\";\r\nimport { setContentManagerFilterFields, setContentManagerFilterSections, setContentManagerFilterValue, setContentManagerSearchValue, toggleContentManagerReload } from \"../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { detailRowLinkStyles, fileIconHeaderIcon } from \"../../src/taskpane/config/controlStyles\";\r\nimport { getSharePointContentTypesWithFields, getSharepointListSchema, getSharePointListViews, getSiteIANATimeZoneName, getUserEffectivePermissions } from \"../../src/taskpane/services/SharePointRestServices\";\r\nimport { setCanViewFolder } from \"../../src/taskpane/redux/modules/currentSharepointFolder\";\r\nimport { detailsListClassNames } from \"./ContentBodyFilesFolders\";\r\nimport { logger } from \"../../utilities/logger\";\r\nimport { SearchOpenExtensionHelper } from \"../../src/taskpane/components/helpers/SearchOpenExtensionHelper\";\r\nimport { currentSharepointFolderUserPermissions } from \"../../src/taskpane/redux/models/reduxModels\";\r\nimport { tryDecodeUriComponent } from \"../../utilities/EncodeDecode\";\r\nimport dayjs from \"dayjs\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\nimport { DocumentTemplateTypes } from \"./MenuItems/useMenuItem_New\";\r\nimport { ISearchOpenFileInfo } from \"../../src/taskpane/interfaces/ISearchOpenFileInfo\";\r\nimport { SharepointContentTypeHelper } from \"../../src/taskpane/components/helpers/sharepointContentTypeHelper\";\r\nimport directoryViewModule from \"../../utilities/DirectoryViewModule\";\r\nimport { splitStringByNewline } from \"../../src/taskpane/components/helpers/stringHelper\";\r\nimport { generateRandomString } from \"../../src/taskpane/components/helpers/treeHelperGeneral\";\r\nimport { IMetaTextColor } from \"../../src/taskpane/interfaces/ITenantInfo\";\r\nimport { getTextColor } from \"../../utilities/ThemeHelper\";\r\nimport { getGridItemUrl } from \"../../src/taskpane/components/helpers/UrlHelper\";\r\nimport { NewDocumentTemplate } from \"../../src/taskpane/interfaces/IDocumentTemplate\";\r\nimport { CacheHelper } from \"../../utilities/CacheHelper\";\r\nimport { CheckinCheckoutHelper } from \"../../utilities/CheckinCheckoutHelper\";\r\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\r\nimport { ItemBroadcastStatus, ItemStatusBroadcast } from \"../../src/taskpane/interfaces/signalR/ItemStatusBroadcast\";\r\nimport { ImageRenderer } from \"../../src/taskpane/components/_v2/components/ImageRenderer/ImageRenderer\";\r\nimport { ItemHubEvents, ItemHubMethods } from \"../../src/taskpane/interfaces/signalR/IItemHub\";\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\n\r\nconst iconStyles: IIconStyles = {\r\n root: {\r\n display: \"block\"\r\n }\r\n}\r\n\r\nconst spinnerStyles: ISpinnerStyles = {\r\n root: {\r\n height: 20\r\n }\r\n}\r\n\r\nconst gridFileNameStackTokens: IStackTokens = {\r\n childrenGap: 5\r\n};\r\n\r\nconst gridFileNameStackItemStyles: IStackItemStyles = {\r\n root: {\r\n textOverflow: \"ellipsis\",\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\"\r\n }\r\n}\r\n\r\nconst gridOptionButtonStackItemStyles: IStackItemStyles = {\r\n root: {\r\n height: \"100%\",\r\n marginTop: -11,\r\n marginBottom: -11\r\n }\r\n}\r\n\r\nconst gridColumnMultiValueContainer: React.CSSProperties = {\r\n display: \"inline-flex\",\r\n flexDirection: \"column\",\r\n maxWidth: \"100%\"\r\n}\r\n\r\nconst gridRowMultiValueStyle: React.CSSProperties = {\r\n display: \"inline-flex\",\r\n alignItems: \"center\"\r\n}\r\n\r\nconst pillContainer: React.CSSProperties = {\r\n display: \"inline-flex\",\r\n flexWrap: \"wrap\",\r\n gap: 5,\r\n maxWidth: \"100%\"\r\n}\r\n\r\nconst pillStyle: React.CSSProperties = {\r\n boxSizing: \"border-box\",\r\n padding: \"4px 8px 5px 8px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n height: 24,\r\n borderRadius: 16,\r\n display: \"inline-flex\",\r\n alignItems: \"center\"\r\n};\r\n\r\nconst peoplePill: React.CSSProperties = {\r\n backgroundColor: \"#edebe9\",\r\n height: 24,\r\n borderRadius: 12,\r\n display: \"inline-flex\",\r\n alignItems: \"center\"\r\n}\r\n\r\nconst peoplePillPersonaStyles: Partial = {\r\n details: {\r\n paddingLeft: 5\r\n },\r\n primaryText: {\r\n fontSize: 12,\r\n lineHeight: 18\r\n }\r\n}\r\n\r\nexport interface GridSortProps {\r\n field: string,\r\n decending: boolean\r\n}\r\n\r\nexport interface GridSortProps {\r\n field: string,\r\n decending: boolean\r\n}\r\n\r\nexport interface GridGroupProps {\r\n collapse?: boolean,\r\n limit?: number\r\n names?: string[]\r\n}\r\n\r\nexport interface IGridGroup extends IGroup {\r\n totalCount?: number;\r\n urlencoded?: string;\r\n parentKey?: string;\r\n filterField?: string;\r\n filterValue?: string;\r\n}\r\n\r\nexport interface IGridColumn extends IColumn {\r\n internalName: string;\r\n}\r\n\r\nexport interface GridProps {\r\n sort: GridSortProps[],\r\n columns?: IGridColumn[];\r\n items?: any[];\r\n groups?: IGridGroup[];\r\n groupProps?: GridGroupProps;\r\n lastIndex?: number;\r\n nextUrl?: string;\r\n hasMoreResults?: boolean;\r\n}\r\n\r\ninterface IDocumentSetDefaultView {\r\n contentTypeId: string;\r\n viewId: string;\r\n}\r\n\r\ninterface ColorPair {\r\n backgroundColor: string;\r\n textColor: string;\r\n};\r\n\r\nconst hslToHex = (h: number, s: number, l: number): string => {\r\n l /= 100;\r\n const a = s * Math.min(l, 1 - l) / 100;\r\n const f = (n: number): string => {\r\n const k = (n + h / 30) % 12;\r\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\r\n return Math.round(255 * color).toString(16).padStart(2, '0'); // Convert to Hex and ensure 2 digits\r\n };\r\n return `#${f(0)}${f(8)}${f(4)}`;\r\n}\r\n\r\nconst generateColor = (colorMap): ColorPair => {\r\n const isCloseToPreviousHues = (newHue: number, threshold: number = 15): boolean => {\r\n for (const colorPair of colorMap.values()) {\r\n const prevHue = parseInt(colorPair.backgroundColor.slice(1, 3), 16);\r\n if (Math.abs(newHue - prevHue) < threshold) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n // Generate a random pastel color\r\n let hue: number;\r\n do {\r\n hue = Math.floor(Math.random() * 360);\r\n if (hue >= 25 && hue <= 180) {\r\n hue += 65;\r\n }\r\n } while (isCloseToPreviousHues(hue));\r\n\r\n const backgroundColor = hslToHex(hue, 100, 35);\r\n const textColor = \"white\";\r\n\r\n return { backgroundColor, textColor };\r\n};\r\n\r\nconst staticColors: ColorPair[] = [\r\n { backgroundColor: \"#D4E7F6\", textColor: \"#0068B8\" },\r\n { backgroundColor: \"#CAF0CC\", textColor: \"#437406\" },\r\n { backgroundColor: \"#FFEBC0\", textColor: \"#8F6200\" },\r\n { backgroundColor: \"#FABBC3\", textColor: \"#A4262C\" },\r\n { backgroundColor: \"#F5CCCF\", textColor: \"#AA272B\" },\r\n { backgroundColor: \"#C3F8F9\", textColor: \"#03787C\" },\r\n { backgroundColor: \"#FED5D1\", textColor: \"#A0410D\" },\r\n { backgroundColor: \"#CAEEE9\", textColor: \"#007564\" },\r\n { backgroundColor: \"#C3CAF9\", textColor: \"#183EE7\" },\r\n { backgroundColor: \"#D8D8EE\", textColor: \"#373277\" },\r\n { backgroundColor: \"#80C6FF\", textColor: \"#004E8C\" },\r\n { backgroundColor: \"#E6E0F0\", textColor: \"#7252AA\" },\r\n { backgroundColor: \"#E5D2E3\", textColor: \"#86417B\" },\r\n { backgroundColor: \"#E5E5E5\", textColor: \"#666666\" },\r\n];\r\n\r\nconst generateColorForValue = (() => {\r\n const colorMap: Map = new Map();\r\n let staticIndex = 0;\r\n\r\n return (value: string, metadataTextColors: IMetaTextColor[], isFromText?: boolean, newColumn?: any) => {\r\n let colorPair: ColorPair = colorMap.get(value);\r\n try {\r\n if (!colorPair) {\r\n if (isFromText) {\r\n const findCol = metadataTextColors?.filter(m => m.value?.trim().toLowerCase() === value?.trim().toLowerCase());\r\n if (Array.isArray(findCol) && findCol.length > 0) {\r\n const hexColor: string = findCol[0].hexColor.trim();\r\n colorPair = {\r\n backgroundColor: hexColor,\r\n textColor: getTextColor(hexColor)\r\n }\r\n colorMap.set(value, colorPair);\r\n } else {\r\n colorPair = {\r\n backgroundColor: \"\",\r\n textColor: \"\"\r\n }\r\n colorMap.set(value, colorPair);\r\n return colorPair;\r\n }\r\n } else {\r\n const metaColor: IMetaTextColor = metadataTextColors?.filter(m => m.value?.trim())?.find(m => m.value?.trim().toLowerCase() === value?.trim().toLowerCase());\r\n if (metaColor && metaColor.hexColor.trimStart().startsWith(\"#\")) {\r\n const hexColor: string = metaColor.hexColor.trim();\r\n colorPair = {\r\n backgroundColor: hexColor,\r\n textColor: getTextColor(hexColor)\r\n }\r\n colorMap.set(value, colorPair);\r\n }\r\n }\r\n\r\n if (!colorPair) {\r\n if (staticIndex < staticColors.length) {\r\n const staticColor = staticColors[staticIndex];\r\n staticIndex++;\r\n colorPair = staticColor;\r\n colorMap.set(value, staticColor);;\r\n } else {\r\n colorPair = generateColor(colorMap);\r\n colorMap.set(value, colorPair);\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (generateColorForValue)\");\r\n }\r\n return colorPair\r\n ?? (isFromText\r\n ? { backgroundColor: \"\", textColor: \"\" }\r\n : generateColor(colorMap));\r\n };\r\n})();\r\n\r\nfunction _copyAndSort(items: T[], columnKey: string, isSortedDescending?: boolean): T[] {\r\n const key = columnKey as keyof T;\r\n return items.slice(0).sort((a: T, b: T) => a && b && ((isSortedDescending ? a[key] < b[key] : a[key] > b[key]) ? 1 : -1));\r\n}\r\n\r\nconst checkedOutByYouIconStyle: React.CSSProperties = { color: \"#A4262C\" };\r\nconst missingMetadataIconStyle: React.CSSProperties = {\r\n color: \"#cf3902\",\r\n cursor: \"pointer\"\r\n};\r\n\r\ninterface IListDetails {\r\n forceCheckout: boolean;\r\n}\r\n\r\nconst enlistClientConnection = async (connection: HubConnection, listId: string, connectionId?: string) => {\r\n try {\r\n await connection.invoke(ItemHubMethods.EnlistClientConnection, connectionId ?? connection.connectionId, listId);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n}\r\n\r\nexport function useContentManagerBody(triggerContextMenu: (ev: any, mousePosition: Point) => void, openFilePreviewFromLink: (item: any) => void, openFileInfoPanel: (itemIndex: number) => void) {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories?.workingDirectories);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories?.workingDirectories?.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories?.oneDriveRootDetails);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue);\r\n const toggleReload = useSelector((state: RootState) => state.reload.toggle);\r\n const toggleCMReload = useSelector((state: RootState) => state.contentManagerDirectory?.toggleReload);\r\n const currentSharepointFolder = useSelector((state: RootState) => state.currentSharepointFolder);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n const filterSections = useSelector((state: RootState) => state.contentManagerDirectory.filterSections);\r\n const tenantOpenDocumentsInClientApp = useSelector((state: RootState) => state.tenantInfo?.openDocumentsInClientApp);\r\n const metadataTextColors = useSelector((state: RootState) => state.tenantInfo?.metadataTextColors);\r\n\r\n const listFields = React.useRef(null);\r\n const listColumnsSchema = React.useRef(null);\r\n const selectedViewId = React.useRef('');\r\n const selectedViewDirectoryId = React.useRef(\"\");\r\n const currentDirectoryId = React.useRef('');\r\n const isAllCollapsedRef = React.useRef(false);\r\n const isFetchingNextPage = React.useRef(false);\r\n const serverRelativePathRef = React.useRef(\"\");\r\n\r\n const [gridProps, setGridProps] = React.useState(null);\r\n const [rawViews, setRawViews] = React.useState(null);\r\n const [contentTypes, setContentTypes] = React.useState([]);\r\n const [isFetchingData, setIsFetchingData] = React.useState(false);\r\n const [viewsWithColumns, setViewsWithColumns] = React.useState([]);\r\n const [selectedView, setSelectedView] = React.useState();\r\n const [scrollToTopToggle, setScrollToTopToggle] = React.useState(false);\r\n const [serverRelPath, setServerRelPath] = React.useState('');\r\n const [listTitle, setListTitle] = React.useState('');\r\n const [folderPath, setFolderPath] = React.useState('');\r\n const [newDocumentTemplates, setNewDocumentTemplates] = React.useState();\r\n const [libraryMinVerEnabled, setLibraryMinVerEnabled] = React.useState(false);\r\n\r\n const [getListColumnsSchema] = useLazyGetListColumnsSchemaQuery();\r\n const [getListAsStream] = useLazyRenderListAsStreamQuery();\r\n const [getListAsStreamGroupDrillDown] = useLazyRenderListAsStreamGroupDrilldownQuery();\r\n const [getListAsStreamGroupDrillDown2] = useLazyRenderListAsStreamGroupDrilldown2Query();\r\n const [getListAsStreamNextPage] = useLazyRenderListAsStreamNextPageQuery();\r\n const [getItemWebUrl] = useLazyGetItemWebUrlQuery();\r\n const [renderListAsStreamByID] = useLazyRenderListAsStreamByIDQuery();\r\n\r\n const userPermissions = React.useRef();\r\n const isInDocumentSet = React.useRef(false);\r\n const documentSetDefaultViews = React.useRef([]);\r\n\r\n const isInOneDrive = React.useRef(false);\r\n const isFirstRun = React.useRef(true);\r\n const siteIANATimeZoneName = React.useRef(null);\r\n const listHttpRoot = React.useRef();\r\n\r\n React.useEffect(() => {\r\n if (isFirstRun.current) {\r\n isFirstRun.current = false;\r\n return;\r\n }\r\n\r\n reloadGrid();\r\n }, [toggleReload, toggleCMReload]);\r\n\r\n React.useEffect(() => {\r\n currentDirectoryId.current = currentDirectory?.id ?? \"\";\r\n dispatch(setContentManagerFilterSections([]));\r\n dispatch(setContentManagerFilterFields([]));\r\n }, [currentDirectory?.id]);\r\n\r\n React.useEffect(() => {\r\n if (currentDirectory) {\r\n isInOneDrive.current = (currentDirectory.type == ComponentTypes.OneDrive || currentDirectory.type == ComponentTypes.OneDriveSubFolder);\r\n\r\n (async () => {\r\n userPermissions.current = await getUserPermissions();\r\n })();\r\n }\r\n }, [currentDirectory]);\r\n\r\n React.useEffect(() => {\r\n if (currentDirectory && currentDirectory.webUrl) {\r\n (async () => {\r\n siteIANATimeZoneName.current = await getSiteIANATimeZoneName(\r\n isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl\r\n );\r\n })();\r\n }\r\n }, [currentDirectory?.webUrl]);\r\n\r\n React.useEffect(() => {\r\n let connection: HubConnection;\r\n if (currentDirectory && currentDirectory.sharePointListId?.length > 0) {\r\n (async () => {\r\n const listDetails = await getViewsAndColumns();\r\n\r\n if (listDetails?.forceCheckout || CacheHelper.get(DocubirdCache.signalREnabled) === true) {\r\n connection = new HubConnectionBuilder()\r\n .withUrl(`${process.env.HUB_URL}/itemhub`, { withCredentials: false })\r\n .withAutomaticReconnect()\r\n .withStatefulReconnect()\r\n .configureLogging(LogLevel.None)\r\n .build();\r\n\r\n const startSignalRConnection = async (connection: HubConnection) => {\r\n try {\r\n await connection.start();\r\n enlistClientConnection(connection, currentDirectory.sharePointListId);\r\n } catch (err) {\r\n setTimeout(() => startSignalRConnection(connection), 5000);\r\n }\r\n }\r\n\r\n connection.onreconnected((connectionId?: string) => {\r\n enlistClientConnection(connection, currentDirectory.sharePointListId, connectionId);\r\n });\r\n\r\n connection.on(ItemHubEvents.ReceiveStatusUpdate, (broadcast: ItemStatusBroadcast) => {\r\n if (broadcast?.itemId > 0) {\r\n const itemIdString: string = broadcast.itemId.toString();\r\n if (broadcast.status === ItemBroadcastStatus.Created) {\r\n addRow(itemIdString);\r\n }\r\n else if (broadcast.status === ItemBroadcastStatus.Deleted) {\r\n removeRow(itemIdString);\r\n }\r\n else {\r\n reloadRow(itemIdString);\r\n }\r\n }\r\n });\r\n\r\n startSignalRConnection(connection);\r\n }\r\n })();\r\n }\r\n\r\n return () => {\r\n connection?.stop();\r\n }\r\n }, [currentDirectory?.sharePointListId]);\r\n\r\n React.useEffect(() => {\r\n reloadGrid();\r\n }, [searchValue?.value]);\r\n\r\n React.useEffect(() => {\r\n if (selectedView) {\r\n if (selectedView.isReport) {\r\n const defaultView = viewsWithColumns?.find(x => x.default);\r\n selectedViewId.current = defaultView?.Id ?? selectedView.Id;\r\n } else {\r\n selectedViewId.current = selectedView.Id;\r\n }\r\n } else {\r\n selectedViewId.current = \"\";\r\n }\r\n\r\n selectedViewDirectoryId.current = currentDirectory?.id;\r\n\r\n dispatch(setContentManagerFilterSections([]));\r\n dispatch(setContentManagerFilterFields([]));\r\n\r\n if (selectedView) {\r\n\r\n if (!isInOneDrive.current) {\r\n directoryViewModule.addDirectoryView({ directoryId: currentDirectory?.id, viewId: selectedView.Id, timestamp: new Date().getTime() });\r\n }\r\n\r\n try {\r\n const newGridProps = { ...gridProps };\r\n newGridProps.items = [];\r\n newGridProps.groups = [];\r\n newGridProps.sort = [];\r\n newGridProps.nextUrl = '';\r\n newGridProps.hasMoreResults = false;\r\n\r\n getOrderByGroupByFromView(newGridProps);\r\n\r\n let viewsColsToRender = []\r\n if (isInOneDrive.current) {\r\n viewsColsToRender.push({ Name: 'DocIcon' });\r\n viewsColsToRender.push({ Name: 'LinkFilename' });\r\n viewsColsToRender.push({ Name: 'Modified' });\r\n viewsColsToRender.push({ Name: 'Editor' });\r\n viewsColsToRender.push({ Name: 'FileSizeDisplay' });\r\n viewsColsToRender.push({ Name: 'SharedWith' });\r\n } else {\r\n viewsColsToRender = [...selectedView.fields];\r\n }\r\n\r\n const newCols: IGridColumn[] = [];\r\n\r\n viewsColsToRender.forEach((col) => {\r\n const listCol = listColumnsSchema.current?.value.find((x) => x.InternalName === col?.Name);\r\n if (listCol) {\r\n const colSchema: any = convertMetadataToFields(listCol);\r\n const isInSPList = currentDirectory.type === ComponentTypes.SharePointList;\r\n\r\n let originalColName = colSchema.xml.Name;\r\n let colName = colSchema.xml.Name;\r\n\r\n if (currentDirectory.type === ComponentTypes.SharePointList && colSchema.xml.DisplayNameSrcField) {\r\n colName = colSchema.xml.DisplayNameSrcField\r\n }\r\n\r\n const colType = colSchema.xml.Type;\r\n const colFormat = colSchema.xml.Format;\r\n const colResultType = colSchema.xml.ResultType;\r\n\r\n const newColumn: IGridColumn = {\r\n key: colSchema.xml.DisplayName,\r\n name: colSchema.xml.Name === 'DocIcon' ? '\\u00A0' : colSchema.xml.DisplayName,\r\n fieldName: colSchema.xml.DisplayName,\r\n internalName: colSchema.InternalName,\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isResizable: true\r\n }\r\n\r\n updateColumnSortProps(newColumn, newGridProps, colSchema);\r\n\r\n if (colName === 'DocIcon') {\r\n newColumn.iconClassName = fileIconHeaderIcon;\r\n newColumn.iconName = 'Page';\r\n newColumn.isIconOnly = true;\r\n newColumn.minWidth = 20;\r\n newColumn.maxWidth = 20;\r\n\r\n newColumn.onRender = item => {\r\n return (\r\n <>\r\n {item.FSObjType === '0' && !item.isBusy && !isInSPList && }\r\n {item.FSObjType === '0' && item.isBusy === true && }\r\n {item.FSObjType === '0' && !item.isBusy && isInSPList && }\r\n {item.FSObjType === '1' && item.ProgId !== 'OneNote.Notebook' &&\r\n \r\n }\r\n {item.FSObjType === '1' && item.ProgId === 'OneNote.Notebook' &&\r\n \r\n }\r\n \r\n )\r\n }\r\n }\r\n else if (colName === 'LinkFilename' || originalColName === 'LinkTitle') {\r\n newColumn.minWidth = 225;\r\n newColumn.maxWidth = 300;\r\n newColumn.isRowHeader = true;\r\n newColumn.onRender = (item: any, index: number) => {\r\n return (\r\n <>\r\n {\r\n item.FSObjType === '0' && originalColName !== 'LinkTitle' &&\r\n \r\n \r\n {\r\n if (item && item.File_x0020_Type === \"url\") {\r\n const url = await getGridItemUrl(item, item._ShortcutUrl ?? CacheHelper.get(`shortcutLink_${item.UniqueId?.replace(\"{\", \"\")?.replace(\"}\", \"\")?.toLowerCase()}`));\r\n window.open(url, \"_blank\");\r\n return;\r\n }\r\n\r\n let openFile = true;\r\n let fileInfo: ISearchOpenFileInfo;\r\n if (!userPermissions?.current?.canOpenItems && item.File_x0020_Type?.toLowerCase() !== extensions.pdf) {\r\n fileInfo = SearchOpenExtensionHelper.determineOfficeFileType(item.File_x0020_Type);\r\n if (fileInfo?.type === officeFileType.Browser) {\r\n openFile = false;\r\n }\r\n }\r\n\r\n if (openFile) {\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n\r\n const spItemUrlparts = item['.spItemUrl'].split('/');\r\n let itemId = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n if (!itemId) {\r\n setIsFetchingData(true);\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + item.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n setIsFetchingData(false);\r\n }\r\n\r\n if (item.File_x0020_Type?.toLowerCase() === extensions.pdf) {\r\n window.open(`${process.env.PDF_URL}?${shared.params.accountId}=${userAccount.accountId}&${shared.params.username}=${userAccount.username}&${shared.params.itemId}=${itemId}&${shared.params.driveId}=${driveId}&${pdfEmbed.params.isInOneDrive}=${isInOneDrive.current === true ? '1' : '0'}&${shared.params.language}=${dayjs.locale() ?? navigator.language}`);\r\n }\r\n else if (tenantOpenDocumentsInClientApp && userPermissions?.current?.canOpenItems) {\r\n const url = await getListItemWebUrl(await authModule.getGraphAccessToken(), driveId, itemId);\r\n\r\n if (!fileInfo) {\r\n fileInfo = SearchOpenExtensionHelper.determineOfficeFileType(item.File_x0020_Type);\r\n }\r\n\r\n window.open(`${fileInfo.localUrlPrepended}${url}`, fileInfo.localUrlPrepended ? \"_self\" : \"_blank\");\r\n } else {\r\n const url = await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, itemId);\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n } else {\r\n openFilePreviewFromLink(item);\r\n }\r\n\r\n }}\r\n >\r\n \r\n {item.FileLeafRef}\r\n \r\n \r\n \r\n {item.EffectiveBasePermissions?.canEditListItem === false && \r\n \r\n \r\n \r\n }\r\n {Array.isArray(item.CheckoutUser) && item.CheckoutUser?.length > 0 && CheckinCheckoutHelper.compareCurrentUser(item.CheckoutUser[0], userAccount.username) && \r\n \r\n \r\n \r\n }\r\n {Array.isArray(item.CheckoutUser) && item.CheckoutUser?.length > 0 && !CheckinCheckoutHelper.compareCurrentUser(item.CheckoutUser[0], userAccount.username) && \r\n \r\n \r\n \r\n }\r\n {checkMissingMetadata(item) && \r\n \r\n openFileInfoPanel(index)} />\r\n \r\n }\r\n \r\n \r\n {\r\n const pos: Point = { left: ev.clientX, top: ev.clientY };\r\n triggerContextMenu(ev, pos);\r\n }}\r\n />\r\n \r\n \r\n \r\n }\r\n {item.FSObjType === '0' && originalColName === 'LinkTitle' && {item[colName]}}\r\n {\r\n item.FSObjType === '1' &&\r\n \r\n \r\n {\r\n const isInList = currentDirectory.type === ComponentTypes.SharePointList;\r\n let itemid = \"\";\r\n // let sharepointId = item.UniqueId.replace('{', '').replace('}', '');\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n\r\n const spItemUrlparts = item['.spItemUrl']?.split('/');\r\n if (spItemUrlparts) {\r\n itemid = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n }\r\n\r\n let fetchDocumentSetSettings: boolean = false;\r\n let documentSetContentTypeId: string;\r\n if (!isInOneDrive.current) {\r\n if (item.ContentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet)) {\r\n documentSetContentTypeId = item.ContentTypeId;\r\n }\r\n else {\r\n documentSetContentTypeId =\r\n currentDirectory?.parentDocumentSetContentTypeId\r\n ??\r\n workingDirectories?.find(dir => dir?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet))?.contentTypeId;\r\n }\r\n\r\n if (documentSetContentTypeId && !(documentSetDefaultViews.current?.findIndex(docSet => docSet.contentTypeId === documentSetContentTypeId) > -1)) {\r\n fetchDocumentSetSettings = true;\r\n }\r\n }\r\n\r\n if (fetchDocumentSetSettings || !itemid) {\r\n setIsFetchingData(true);\r\n if (fetchDocumentSetSettings) {\r\n const documentSetSettings = await SharepointContentTypeHelper.getDocumentSetSettings(await authModule.getSharePointAccessToken(), currentDirectory.webUrl, currentDirectory.sharePointListId, documentSetContentTypeId)\r\n if (documentSetSettings) {\r\n const docSetDefaultViews: IDocumentSetDefaultView[] = [...documentSetDefaultViews.current];\r\n docSetDefaultViews.push({ contentTypeId: documentSetContentTypeId, viewId: documentSetSettings.viewId });\r\n documentSetDefaultViews.current = docSetDefaultViews;\r\n }\r\n }\r\n if (!itemid && !isInList) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + item.FileRef);\r\n itemid = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n setIsFetchingData(false);\r\n }\r\n\r\n const siteUrlPath: string = new URL(currentDirectory.webUrl)?.pathname + \"/\";\r\n\r\n const itemToAdd: IPageSettings = {\r\n id: itemid,\r\n parentId: driveId,\r\n type: isInOneDrive.current ? ComponentTypes.OneDrive : ComponentTypes.SharePointFolders,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n webUrl: currentDirectory.webUrl,\r\n fileTitle: item.FileLeafRef,\r\n directory: item.FileRef.replace(siteUrlPath, \"\"),\r\n DocumentLibrary: currentDirectory.DocumentLibrary,\r\n displayName: item.FileLeafRef,\r\n isTeamsFolder: currentDirectory.isTeamsFolder,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n contentTypeId: item.ContentTypeId,\r\n serverRelativePath: item.FileRef,\r\n sharePointUniqueId: item.UniqueId?.replace(\"{\", \"\").replace(\"}\", \"\")\r\n };\r\n\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(setContentManagerFilterValue(\"\"));\r\n dispatch(toggleContentManagerReload());\r\n }}\r\n >\r\n \r\n {item.FileLeafRef}\r\n \r\n \r\n \r\n {item.EffectiveBasePermissions?.canEditListItem === false && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n {\r\n const pos: Point = { left: ev.clientX, top: ev.clientY };\r\n triggerContextMenu(ev, pos);\r\n }}\r\n />\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n }\r\n else if (colName === 'FileSizeDisplay') {\r\n newColumn.onRender = item => {\r\n let fileSizeDisplay = '';\r\n if (item.FSObjType === '1') {\r\n let childFolderCount = item.FolderChildCount ? +item.FolderChildCount : 0;\r\n let childItemsCount = item.ItemChildCount ? +item.ItemChildCount : 0;\r\n\r\n fileSizeDisplay = `${childFolderCount + childItemsCount} items`\r\n } else {\r\n fileSizeDisplay = recentFilesAdvancedSearchMapper.convertBytes(isInOneDrive.current ? +item.FileSizeDisplay : +item.File_x0020_Size);\r\n }\r\n\r\n return (\r\n {fileSizeDisplay}\r\n )\r\n }\r\n }\r\n else if (colType === 'MultiChoice') {\r\n newColumn.onRender = (item) => {\r\n if (!Array.isArray(item[colName])) return <>;\r\n\r\n if (listCol.CustomFormatter) {\r\n return
\r\n {item[colName].map((item, index) => {\r\n const valueColor: ColorPair = generateColorForValue(item, metadataTextColors);\r\n return
\r\n {item}\r\n
\r\n })}\r\n
\r\n }\r\n\r\n return
\r\n {item[colName].map((item, index) => (\r\n
\r\n {item}\r\n
\r\n ))}\r\n
\r\n }\r\n }\r\n else if (colType === \"Choice\") {\r\n newColumn.onRender = (item) => {\r\n if (item[colName] === '') return <>;\r\n\r\n if (listCol.CustomFormatter) {\r\n const valueColor: ColorPair = generateColorForValue(item[colName], metadataTextColors);\r\n return
\r\n
\r\n {item[colName]}\r\n
\r\n
\r\n }\r\n\r\n return {item[colName]}\r\n }\r\n }\r\n else if (colType === \"Text\") {\r\n newColumn.onRender = (item) => {\r\n if (item[colName] === '') return <>;\r\n\r\n if (listCol.CustomFormatter) {\r\n const valueColor: ColorPair = generateColorForValue(item[colName], metadataTextColors, true);\r\n return
\r\n
\r\n {item[colName]}\r\n
\r\n
\r\n }\r\n\r\n return {item[colName]}\r\n }\r\n }\r\n else if (colType === 'Lookup' || colType === 'LookupMulti') {\r\n newColumn.onRender = (item) => (\r\n <>\r\n {Array.isArray(item[colName]) &&
\r\n {item[colName].map((item, index) => (\r\n
\r\n {item.lookupValue}\r\n
\r\n ))}\r\n
}\r\n \r\n )\r\n }\r\n else if (colType === 'TaxonomyFieldType') {\r\n newColumn.onRender = item => {\r\n return (\r\n {item[colName]?.Label}\r\n )\r\n }\r\n }\r\n else if (colType === 'TaxonomyFieldTypeMulti') {\r\n newColumn.onRender = (item) => (\r\n <>\r\n {Array.isArray(item[colName]) &&
\r\n {item[colName].map((item, index) => (\r\n
\r\n {item.Label}\r\n
\r\n ))}\r\n
}\r\n \r\n )\r\n }\r\n else if (colType === 'DateTime') {\r\n newColumn.onRender = (item) => (\r\n <>\r\n {/* {item[colName] && {colFormat === 'DateOnly' ? dayjs(item[colName]).utc().local().format(\"L\") : dayjs(item[colName]).utc().local().format(\"L LT\")}} */}\r\n {item[colName] && {colFormat === 'DateOnly' ? getTimeZoneFormattedDate(item[colName], \"L\") : getTimeZoneFormattedDate(item[colName], \"L LT\")}}\r\n \r\n )\r\n }\r\n else if (colType === 'URL') {\r\n newColumn.onRender = (item) => {\r\n const colUrl = item[colName];\r\n return (\r\n <>\r\n {colUrl && {\r\n e.preventDefault();\r\n const url = await getGridItemUrl(item, colUrl, listHttpRoot.current);\r\n window.open(url, \"_blank\");\r\n })}>{item[`${colName}.desc`]}}\r\n \r\n )\r\n }\r\n }\r\n else if (colType === 'Calculated' && (colResultType === 'DateOnly' || colResultType === 'DateTime')) {\r\n newColumn.onRender = (item) => (\r\n <>\r\n {/* {item[colName] && {colFormat === 'DateOnly' ? dayjs(item[colName]).utc().local().format(\"L\") : dayjs(item[colName]).utc().local().format(\"L LT\")}} */}\r\n {item[colName] && {colFormat === 'DateOnly' ? getTimeZoneFormattedDate(item[colName], \"L\") : getTimeZoneFormattedDate(item[colName], \"L LT\")}}\r\n \r\n )\r\n }\r\n else if (colType === 'User' || colType === 'UserMulti') {\r\n newColumn.onRender = (item) => {\r\n if (listCol.UserDisplayOptions === \"NamePhoto\") {\r\n return
\r\n
\r\n {Array.isArray(item[colName]) && item[colName].map(item => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n }\r\n\r\n return
\r\n {Array.isArray(item[colName]) && item[colName].map(item => (\r\n
\r\n {item.value || item.title}\r\n
\r\n ))}\r\n
\r\n }\r\n }\r\n else if (colType === 'Note') {\r\n newColumn.minWidth = 150;\r\n newColumn.onRender = item => {\r\n const lines = splitStringByNewline(item[colName]);\r\n return (\r\n <>\r\n {Array.isArray(lines) && lines.map((line, index) => (\r\n
\r\n
{line}
\r\n
\r\n ))}\r\n \r\n )\r\n }\r\n }\r\n else if (colType === \"Thumbnail\") {\r\n newColumn.onRender = item => {\r\n const thumbData = item[colName];\r\n if (thumbData?.thumbnailRenderer && thumbData.thumbnailRenderer.spItemUrl) {\r\n return \r\n }\r\n return <>;\r\n }\r\n }\r\n else {\r\n newColumn.onRender = item => (\r\n {item[colName]}\r\n )\r\n }\r\n newCols.push(newColumn);\r\n }\r\n });\r\n\r\n newGridProps.columns = newCols;\r\n\r\n setGridProps(newGridProps);\r\n\r\n reloadGrid({ ...newGridProps });\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (Selected view column init)\");\r\n }\r\n }\r\n }, [selectedView]);\r\n\r\n const checkMissingMetadata = React.useCallback((item: any): boolean => {\r\n if (item?.ContentTypeId) {\r\n const itemContentType: any = contentTypes?.find(ct => ct.Id.StringValue === item.ContentTypeId);\r\n if (Array.isArray(itemContentType?.RequiredFields) && itemContentType.RequiredFields.length > 0) {\r\n try {\r\n for (let i = 0; i < itemContentType.RequiredFields.length; i++) {\r\n const propName: string = itemContentType.RequiredFields[i].InternalName;\r\n const propValue = item[propName];\r\n if (typeof propValue === \"undefined\"\r\n || propValue === null\r\n || (Array.isArray(propValue) && propValue.length === 0)\r\n || !propValue\r\n ) {\r\n return true;\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (checkMissingMetadata)\");\r\n }\r\n }\r\n }\r\n return false;\r\n }, [contentTypes]);\r\n\r\n const getTimeZoneFormattedDate = (dateString: string, format: string): string => {\r\n if (siteIANATimeZoneName.current !== null) {\r\n return dayjs(dateString).tz(siteIANATimeZoneName.current).format(format);\r\n }\r\n else {\r\n return dayjs.utc(dateString).local().format(format);\r\n }\r\n }\r\n\r\n const addRow = async (itemId: string) => {\r\n try {\r\n let listStreamByID = await renderListAsStreamByID({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n viewId: selectedViewId.current,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n Id: itemId,\r\n serverRelativePath: serverRelativePathRef.current\r\n }).unwrap();\r\n\r\n if (listStreamByID.ListData?.Row?.length === 1) {\r\n setGridProps(prevGridProps => {\r\n if (prevGridProps.items.findIndex(item => item && item.ID === listStreamByID.ListData.Row[0].ID) === -1) {\r\n const newRows = [listStreamByID.ListData.Row[0]];\r\n prevGridProps.items.forEach(item => {\r\n newRows.push(item);\r\n });\r\n return { ...prevGridProps, items: newRows };\r\n }\r\n else {\r\n const updatedRows = [];\r\n prevGridProps.items.forEach(item => {\r\n if (item && item.ID === listStreamByID.ListData.Row[0].ID) {\r\n updatedRows.push(listStreamByID.ListData.Row[0]);\r\n } else {\r\n updatedRows.push(item);\r\n }\r\n });\r\n return { ...prevGridProps, items: updatedRows };\r\n }\r\n });\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (addRow)\");\r\n }\r\n }\r\n\r\n const reloadRow = async (itemId: string) => {\r\n try {\r\n let listStreamByID = await renderListAsStreamByID({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n viewId: selectedViewId.current,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n Id: itemId,\r\n serverRelativePath: serverRelativePathRef.current\r\n }).unwrap();\r\n\r\n if (listStreamByID.ListData?.Row?.length === 1) {\r\n setGridProps(prevGridProps => {\r\n if (prevGridProps.items.findIndex(item => item && item.ID === listStreamByID.ListData.Row[0].ID) !== -1) {\r\n const newRows = [];\r\n prevGridProps.items.forEach(item => {\r\n if (item && item.ID === listStreamByID.ListData.Row[0].ID) {\r\n newRows.push(listStreamByID.ListData.Row[0]);\r\n } else {\r\n newRows.push(item);\r\n }\r\n });\r\n return { ...prevGridProps, items: newRows };\r\n }\r\n return prevGridProps;\r\n });\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (reloadRow)\");\r\n }\r\n }\r\n\r\n const removeRow = (itemId: string) => {\r\n try {\r\n setGridProps(prevGridProps => {\r\n return { ...prevGridProps, items: prevGridProps.items.filter(item => item.ID !== itemId) };\r\n });\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (removeRow)\");\r\n }\r\n }\r\n\r\n const reloadGrid = (gridData?: GridProps) => {\r\n if (!isInOneDrive.current && !gridData && currentDirectory?.id !== selectedViewDirectoryId.current) {\r\n let updatedViewId: string = directoryViewModule.getDirectoryView(currentDirectory?.id)?.viewId;\r\n if (updatedViewId && rawViews && !(rawViews.findIndex(view => view.Id === updatedViewId) > -1)) {\r\n directoryViewModule.removeDirectoryView(updatedViewId);\r\n updatedViewId = null;\r\n }\r\n\r\n let documentSetContentTypeId: string;\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet)) {\r\n documentSetContentTypeId = currentDirectory.contentTypeId;\r\n }\r\n else {\r\n documentSetContentTypeId =\r\n currentDirectory?.parentDocumentSetContentTypeId\r\n ??\r\n workingDirectories?.find(dir => dir?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet))?.contentTypeId;\r\n\r\n if (!updatedViewId && currentDirectory?.contentTypeId) {\r\n const contentTypeName: string = contentTypes?.find(contentType => contentType.Id?.StringValue === currentDirectory.contentTypeId)?.Name;\r\n if (contentTypeName) {\r\n updatedViewId = rawViews?.find(view => view.Title === contentTypeName)?.Id;\r\n }\r\n }\r\n }\r\n\r\n if (!isInDocumentSet.current && documentSetContentTypeId) {\r\n isInDocumentSet.current = true;\r\n if (!updatedViewId) {\r\n updatedViewId = documentSetDefaultViews.current?.find(docSet => docSet.contentTypeId === documentSetContentTypeId)?.viewId;\r\n }\r\n }\r\n else if (isInDocumentSet.current && !documentSetContentTypeId) {\r\n isInDocumentSet.current = false;\r\n if (!updatedViewId) {\r\n updatedViewId = rawViews?.find(view => view.DefaultView === true)?.Id;\r\n }\r\n }\r\n\r\n if (updatedViewId && updatedViewId !== selectedViewId.current) {\r\n const updatedView: IViewsDropdown = viewsWithColumns?.find(view => view.Id === updatedViewId);\r\n if (updatedView) {\r\n setSelectedView(updatedView);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if ((gridData ?? gridProps)?.columns?.length > 0) {\r\n fetchListStream(gridData);\r\n }\r\n }\r\n\r\n const fetchListStream = async (gridData?: GridProps) => {\r\n try {\r\n const newGridProps: GridProps = gridData ? { ...gridData } : { ...gridProps };\r\n setIsFetchingData(true);\r\n\r\n let serverRelativePath = '';\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath) {\r\n serverRelativePath = currentDirectory?.serverRelativePath;\r\n }\r\n else if (currentDirectory?.directory?.length > 0 && currentDirectory?.parentId) {\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n const results = await getItemWebUrl({ driveId, itemId: currentDirectory?.id, accessToken: await authModule.getGraphAccessToken() }).unwrap();\r\n serverRelativePath = tryDecodeUriComponent(new URL(results.listItem?.webUrl || results.webUrl).pathname);\r\n if (serverRelativePath.includes('.aspx')) {\r\n serverRelativePath = currentDirectory?.serverRelativePath;\r\n }\r\n }\r\n\r\n let requestCurrentDirectoryId = currentDirectory.id;\r\n\r\n let listStream;\r\n\r\n let viewId = \"\";\r\n let viewXml = \"\";\r\n\r\n if (selectedView?.isReport) {\r\n const defaultView = rawViews?.find(x => x.DefaultView === true);\r\n if (defaultView) {\r\n viewId = defaultView.Id;\r\n viewXml = defaultView.ListViewXml;\r\n }\r\n } else {\r\n viewId = selectedView?.Id;\r\n viewXml = !selectedView ? rawViews?.find(x => x.DefaultView === true).ListViewXml : rawViews?.find(x => x.Title === selectedView?.text).ListViewXml;\r\n }\r\n\r\n try {\r\n listStream = await getListAsStream({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n viewId,\r\n viewXml,\r\n gridProps: { ...newGridProps },\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n serverRelativePath,\r\n filterSections,\r\n searchValue,\r\n isReport: selectedView.isReport\r\n }).unwrap();\r\n } catch (error) {\r\n // SPQueryThrottledException\r\n let isThrottled: boolean = false;\r\n try {\r\n if (error?.data && error.data[\"odata.error\"]?.code?.startsWith(\"-2147024860\")) {\r\n isThrottled = true;\r\n }\r\n } catch (e) {\r\n if (error && JSON.stringify(error)?.indexOf(\"-2147024860\") > -1) {\r\n isThrottled = true;\r\n }\r\n }\r\n\r\n if (isThrottled) {\r\n listStream = await getListAsStream({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: currentDirectory?.sharePointListId,\r\n viewId,\r\n viewXml,\r\n gridProps: { ...newGridProps },\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n serverRelativePath,\r\n filterSections,\r\n includeReplaceGroup: true,\r\n isReport: selectedView.isReport\r\n }).unwrap();\r\n }\r\n }\r\n\r\n if (listStream) {\r\n setLibraryMinVerEnabled(listStream.EnableMinorVersions ? listStream.EnableMinorVersions : false);\r\n\r\n listHttpRoot.current = listStream.HttpRoot;\r\n\r\n if (!serverRelativePath) {\r\n serverRelativePath = listStream.ListUrl;\r\n }\r\n\r\n setFolderPath(serverRelativePath.replace(listStream.ListUrl, ''));\r\n\r\n serverRelativePathRef.current = serverRelativePath;\r\n setServerRelPath(serverRelativePath);\r\n setListTitle(listStream.ListTitle);\r\n\r\n if (listStream.ListData.Row?.length > 0) {\r\n dispatch(setContentManagerFilterFields(listStream.ListSchema?.Field));\r\n } else {\r\n dispatch(setContentManagerFilterFields([]));\r\n }\r\n\r\n dispatch(setCanViewFolder({\r\n ...currentSharepointFolder,\r\n sharepointListId: currentDirectory?.sharePointListId || listStream.listName?.replace(\"{\", \"\").replace(\"}\", \"\"),\r\n sharePointUniqueId: currentDirectory?.sharePointUniqueId,\r\n canCreateFolder: listStream.AllowCreateFolder,\r\n contentTypesEnabled: listStream.ContentTypesEnabled,\r\n enableMinorVersions: listStream.EnableMinorVersions,\r\n disableOpenInApp: listStream.ExcludeFromOfflineClient === true,\r\n forceCheckout: listStream.isForceCheckout == true,\r\n userPermissions: userPermissions.current ? userPermissions.current : { ...currentSharepointFolder.userPermissions }\r\n }));\r\n\r\n if (newGridProps.groupProps) { //Sharepoint Grouping applied\r\n if (newGridProps.groupProps.collapse) {\r\n //Groups are collapsed \r\n buildGroupFromTableData(newGridProps, listStream.ListData.Row as any[], true);\r\n if (listStream.ListData.Row.length === 0) {\r\n newGridProps.items = [];\r\n }\r\n setGridProps({ ...newGridProps });\r\n setIsFetchingData(false);\r\n\r\n let nextPageUrl: string = listStream.ListData.NextHref ? listStream.ListData.NextHref : '';\r\n\r\n while (nextPageUrl) {\r\n const listStreamNextPage = await getListAsStreamNextPage({\r\n siteUrl: currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n nextPageUrl,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n filterSections\r\n }).unwrap();\r\n\r\n buildGroupFromTableData(newGridProps, listStreamNextPage.ListData.Row as any[], false);\r\n setGridProps({ ...newGridProps });\r\n\r\n nextPageUrl = listStreamNextPage.ListData.NextHref ? listStreamNextPage.ListData.NextHref : '';\r\n }\r\n\r\n }\r\n else {\r\n //Groups are expanded \r\n let nextPageUrl: string = '';\r\n let responseViewId = listStream.view.replace('{', '').replace('}', '').toLowerCase();\r\n\r\n if ((!selectedViewId.current || responseViewId === selectedViewId.current) && (requestCurrentDirectoryId === currentDirectoryId.current)) {\r\n newGridProps.items = [];\r\n newGridProps.groups = [];\r\n\r\n buildExpandedGroupsFromData(newGridProps, [...listStream.ListData.Row], false);\r\n setGridProps({ ...newGridProps });\r\n\r\n nextPageUrl = listStream.ListData.NextHref ? listStream.ListData.NextHref : '';\r\n }\r\n\r\n setIsFetchingData(false);\r\n\r\n let count = 1;\r\n while (nextPageUrl) {\r\n if (nextPageUrl.includes(selectedViewId.current) && requestCurrentDirectoryId === currentDirectoryId.current) {\r\n const listStreamExpandedNextPage = await getListAsStreamNextPage({\r\n siteUrl: currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n nextPageUrl,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n filterSections\r\n }).unwrap();\r\n\r\n responseViewId = listStreamExpandedNextPage.view.replace('{', '').replace('}', '').toLowerCase();\r\n\r\n if (responseViewId === selectedViewId.current && requestCurrentDirectoryId === currentDirectoryId.current) {\r\n\r\n buildExpandedGroupsFromData(newGridProps, listStreamExpandedNextPage.ListData.Row, true)\r\n nextPageUrl = listStreamExpandedNextPage.ListData.NextHref ? listStreamExpandedNextPage.ListData.NextHref : '';\r\n\r\n (count % 3 === 0 || !nextPageUrl) && setGridProps({ ...newGridProps });\r\n }\r\n else {\r\n nextPageUrl = '';\r\n }\r\n\r\n count += 1;\r\n } else {\r\n nextPageUrl = '';\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n //No groupings\r\n newGridProps.nextUrl = listStream.ListData.NextHref;\r\n newGridProps.items = [...listStream.ListData.Row as any[]];\r\n newGridProps.hasMoreResults = listStream.ListData.NextHref ? true : false;\r\n\r\n if (newGridProps.hasMoreResults) {\r\n newGridProps.items.push(null);\r\n }\r\n\r\n setGridProps({ ...newGridProps });\r\n setIsFetchingData(false);\r\n setScrollToTopToggle(prev => !prev);\r\n }\r\n }\r\n else {\r\n setIsFetchingData(false);\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (fetchListStream)\");\r\n }\r\n }\r\n\r\n const getNewDocumentTemplates = (newDocTemplates: string, contentTypes: any[]) => {\r\n const defaultTemplates: NewDocumentTemplate[] = [\r\n { templateId: \"NewFolder\", title: languageStrings.Folder, visible: true },\r\n { templateId: 'NewDOC', title: 'Word document', visible: true, extention: 'docx', documentTemplateType: DocumentTemplateTypes.docx },\r\n { templateId: 'NewXSL', title: 'Excel workbook', visible: true, extention: 'xlsx', documentTemplateType: DocumentTemplateTypes.xlsx },\r\n { templateId: 'NewPPT', title: 'PowerPoint presentation', visible: true, extention: 'pptx', documentTemplateType: DocumentTemplateTypes.pptx },\r\n { templateId: 'NewONE', title: 'OneNote notebook', visible: true, extention: 'onetoc', documentTemplateType: DocumentTemplateTypes.one },\r\n { templateId: 'NewXSLSurvey', title: 'Excel survey', visible: false, extention: 'xlsx' },\r\n { templateId: 'NewXSLForm', title: 'Forms for Excel', visible: false, extention: 'xlsx' },\r\n { templateId: 'NewVSDX', title: 'Visio drawing', visible: true, extention: 'vsdx', documentTemplateType: DocumentTemplateTypes.vsdx },\r\n { templateId: \"NewLink\", title: languageStrings.Link, visible: true }\r\n ];\r\n\r\n const documentSetContentTypes = Array.isArray(contentTypes) && contentTypes.length > 0 && contentTypes.filter(x => x.Id?.StringValue?.startsWith(SharePointFolderContentTypeIds.documentSet));\r\n if (Array.isArray(documentSetContentTypes) && documentSetContentTypes.length > 0) {\r\n const documentSetTemplates = documentSetContentTypes.map(contentType => {\r\n const newDocSetTemplate: NewDocumentTemplate = {\r\n templateId: contentType.Id?.StringValue,\r\n title: contentType.Name,\r\n visible: true,\r\n isContentType: true,\r\n contentTypeId: contentType.Id?.StringValue\r\n }\r\n return newDocSetTemplate;\r\n });\r\n\r\n defaultTemplates.splice(1, 0, ...documentSetTemplates);\r\n }\r\n\r\n if (newDocTemplates) {\r\n try {\r\n const templates: NewDocumentTemplate[] = JSON.parse(newDocTemplates);\r\n\r\n setNewDocumentTemplates(templates\r\n .map(template => {\r\n const selectedTemplate = defaultTemplates.find(x => x.templateId === template.templateId);\r\n if (selectedTemplate) {\r\n return {\r\n ...selectedTemplate,\r\n ...template\r\n }\r\n } else if (template.url) {\r\n const extention = getFileExtension(template.url);\r\n const documentTemplateType = DocumentTemplateTypes[extention];\r\n if (documentTemplateType) {\r\n return {\r\n ...template,\r\n extention,\r\n documentTemplateType\r\n }\r\n }\r\n }\r\n return null;\r\n })\r\n .filter(template => template !== null && (template.visible === undefined || template.visible === true))\r\n .concat({ templateId: \"NewLink\", title: languageStrings.Link, visible: true })\r\n );\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (getNewDocumentTemplates)\");\r\n setNewDocumentTemplates(defaultTemplates);\r\n }\r\n } else {\r\n setNewDocumentTemplates(defaultTemplates);\r\n }\r\n }\r\n\r\n const getFileExtension = (name: string) => {\r\n let extention = '';\r\n\r\n const fileParts = name.split('.');\r\n if (fileParts) {\r\n extention = fileParts[fileParts.length - 1];\r\n }\r\n\r\n return extention\r\n }\r\n\r\n const getUserPermissions = async () => {\r\n let uniqueId = currentDirectory?.sharePointUniqueId;\r\n if (currentDirectory?.parentId && !uniqueId) {\r\n uniqueId = await getDriveItemSharepointUniqueId(currentDirectory.parentId, currentDirectory.id);\r\n }\r\n\r\n return await getUserEffectivePermissions(\r\n isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n currentDirectory?.sharePointListId,\r\n uniqueId\r\n );\r\n }\r\n\r\n const fetchListStreamNextPage = async () => {\r\n if (!isFetchingNextPage.current) {\r\n try {\r\n if (gridProps.nextUrl) {\r\n isFetchingNextPage.current = true;\r\n\r\n const newGridProps: GridProps = { ...gridProps };\r\n\r\n let fetchListStreamNextPage = await getListAsStreamNextPage({\r\n siteUrl: isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n nextPageUrl: newGridProps.nextUrl,\r\n accessToken: isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n filterSections,\r\n searchValue\r\n }).unwrap();\r\n\r\n let updatedItems = [...newGridProps.items];\r\n updatedItems.pop();\r\n\r\n newGridProps.items = updatedItems.concat(fetchListStreamNextPage.ListData.Row as any[]);\r\n newGridProps.nextUrl = fetchListStreamNextPage.ListData?.NextHref;\r\n newGridProps.hasMoreResults = fetchListStreamNextPage.ListData?.NextHref ? true : false;\r\n\r\n if (newGridProps.hasMoreResults) {\r\n newGridProps.items.push(null);\r\n }\r\n\r\n isFetchingNextPage.current = false;\r\n setGridProps({ ...newGridProps })\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (fetchListStreamNextPage)\");\r\n }\r\n }\r\n }\r\n\r\n const buildGroupFromTableData = (newGridProps: GridProps, groupRows: any[], resetGroups: boolean) => {\r\n try {\r\n const groups: IGridGroup[] = resetGroups ? [] : newGridProps.groups;\r\n const groupingCount = newGridProps.groupProps.names.length;\r\n\r\n groupRows?.forEach((row, index) => {\r\n if (groupingCount === 1) {\r\n const groupName = newGridProps.groupProps.names[0];\r\n let groupNameValue = getGroupNameValue(groupName, row);\r\n let group1NameDisplay = getGroupDisplayName(groupName);\r\n\r\n let parentGroup: IGroup = groups.find(x => x.key === `g1_${groupNameValue.toLowerCase()}`);\r\n\r\n if (!parentGroup) {\r\n const newGroup: IGridGroup = {\r\n key: `g1_${groupNameValue.toLowerCase()}`,\r\n name: `${group1NameDisplay}: ${groupNameValue} (${row[`${groupName}.COUNT.group`]})`,\r\n startIndex: 0,\r\n count: 0,\r\n totalCount: +row[`${groupName}.COUNT.group`],\r\n level: 0,\r\n isCollapsed: true,\r\n urlencoded: row[`${groupName}.urlencoded`],\r\n filterField: groupName,\r\n // filterValue: row[`${groupName}.singleurlencoded`] ? row[`${groupName}.singleurlencoded`] : row[`${groupName}.urlencoded`]\r\n filterValue: row[`${groupName}.singleurlencoded`] ?? \"\"\r\n }\r\n\r\n groups.push(newGroup)\r\n }\r\n }\r\n else if (groupingCount === 2) {\r\n const group1Name = newGridProps.groupProps.names[0];\r\n const group2Name = newGridProps.groupProps.names[1];\r\n\r\n const group1NameValue = getGroupNameValue(group1Name, row);\r\n const group2NameValue = getGroupNameValue(group2Name, row);\r\n\r\n const group1NameDisplay = getGroupDisplayName(group1Name);\r\n const group2NameDisplay = getGroupDisplayName(group2Name);\r\n\r\n let parentGroup: IGroup = groups.find(x => x.key === `g1_${group1NameValue}`);\r\n\r\n if (!parentGroup) {\r\n const childGroup: IGridGroup = {\r\n key: `g2_${group2NameValue}`,\r\n name: `${group2NameDisplay}: ${group2NameValue} (${row[`${group2Name}.COUNT.group2`]})`,\r\n startIndex: 0,\r\n count: 0,\r\n totalCount: +row[`${group2Name}.COUNT.group`],\r\n level: 1,\r\n isCollapsed: true,\r\n urlencoded: row[`${group2Name}.urlencoded`],\r\n filterField: group2Name,\r\n // filterValue: row[`${group2Name}.singleurlencoded`] ? row[`${group2Name}.singleurlencoded`] : row[`${group2Name}.urlencoded`],\r\n filterValue: row[`${group2Name}.singleurlencoded`] ?? \"\",\r\n parentKey: `g1_${group1NameValue}`\r\n }\r\n\r\n const newParentGroup: IGridGroup = {\r\n key: `g1_${group1NameValue}`,\r\n name: `${group1NameDisplay}: ${group1NameValue} (${row[`${group1Name}.COUNT.group`]})`,\r\n startIndex: 0,\r\n count: 0,\r\n totalCount: +row[`${group1Name}.COUNT.group`],\r\n level: 0,\r\n isCollapsed: true,\r\n urlencoded: row[`${group1Name}.urlencoded`],\r\n filterField: group1Name,\r\n // filterValue: row[`${group1Name}.singleurlencoded`] ? row[`${group1Name}.singleurlencoded`] : row[`${group1Name}.urlencoded`],\r\n filterValue: row[`${group1Name}.singleurlencoded`] ?? \"\",\r\n children: [childGroup]\r\n }\r\n\r\n groups.push(newParentGroup);\r\n } else {\r\n //const parentGroup = groups.find(x => x.key === `g1_${row[`${group1Name}.groupindex`]}`);\r\n let childGroup: IGroup = parentGroup.children?.find(x => x.key === `g2_${group2NameValue}`);\r\n\r\n if (!childGroup) {\r\n const newChildGroup: IGridGroup = {\r\n key: `g2_${group2NameValue}`,\r\n name: `${group2NameDisplay}: ${group2NameValue} (${row[`${group2Name}.COUNT.group2`]})`,\r\n startIndex: 0,\r\n count: 0,\r\n totalCount: +row[`${group2Name}.COUNT.group`],\r\n level: 1,\r\n isCollapsed: true,\r\n urlencoded: row[`${group2Name}.urlencoded`],\r\n filterField: group2Name,\r\n // filterValue: row[`${group2Name}.singleurlencoded`] ? row[`${group2Name}.singleurlencoded`] : row[`${group2Name}.urlencoded`],\r\n filterValue: row[`${group2Name}.singleurlencoded`] ?? \"\",\r\n parentKey: `g1_${group1NameValue}`\r\n }\r\n\r\n parentGroup.children.push(newChildGroup);\r\n }\r\n }\r\n }\r\n })\r\n\r\n newGridProps.groups = [...groups];\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (buildGroupFromTableData)\");\r\n }\r\n }\r\n\r\n const buildExpandedGroupsFromData = (gridProps: GridProps, newItems: any[], isPagedResults: boolean = false, resestGroups: boolean = false, limitToOneGrouping: boolean = false) => {\r\n let groups: IGroup[] = [...gridProps.groups];\r\n\r\n if (resestGroups === false) {\r\n groups = gridProps.groups ? [...gridProps.groups] : [];\r\n }\r\n\r\n const groupingCount = gridProps.groupProps.names.length;\r\n\r\n if (groupingCount === 1) {\r\n const groupName = gridProps.groupProps.names[0];\r\n\r\n newItems.forEach((row, index) => {\r\n const groupNameValue = getGroupNameValue(groupName, row);\r\n const groupNameDisplay = getGroupDisplayName(groupName);\r\n let parentGroup: IGroup = groups.find(x => x.key === `g1_${groupNameValue.toLowerCase()}`);\r\n\r\n if (!parentGroup) {\r\n const newGroup: IGridGroup = {\r\n key: `g1_${groupNameValue.toLowerCase()}`,\r\n name: `${groupNameDisplay}: ${groupNameValue} (${row[`${groupName}.COUNT.group`]})`,\r\n startIndex: gridProps.items.length + index,\r\n totalCount: +row[`${groupName}.COUNT.group`],\r\n count: 1,\r\n level: 0,\r\n isCollapsed: false,\r\n urlencoded: row[`${groupName}.urlencoded`]\r\n }\r\n\r\n groups.push(newGroup)\r\n }\r\n else {\r\n parentGroup.count = parentGroup.count + 1;\r\n }\r\n });\r\n }\r\n else if (groupingCount === 2) {\r\n const groupName = gridProps.groupProps.names[0];\r\n const groupName2 = gridProps.groupProps.names[1];\r\n\r\n newItems.forEach((row, index) => {\r\n const groupNameValue = getGroupNameValue(groupName, row);\r\n const groupName2Value = getGroupNameValue(groupName2, row);\r\n\r\n const groupNameDisplay = getGroupDisplayName(groupName);\r\n const groupName2Display = getGroupDisplayName(groupName2);\r\n\r\n let parentGroup: IGroup = groups.find(x => x.key === `g1_${groupNameValue.toLowerCase()}`);\r\n\r\n if (!parentGroup) {\r\n const newChildGroup: IGridGroup = {\r\n key: `g2_${groupName2Value.toLowerCase()}`,\r\n name: `${groupName2Display}: ${groupName2Value} (${row[`${groupName2}.COUNT.group2`]})`,\r\n startIndex: gridProps.items.length + index,\r\n totalCount: +row[`${groupName2}.COUNT.group`],\r\n count: 1,\r\n level: 1,\r\n isCollapsed: false,\r\n urlencoded: row[`${groupName2}.urlencoded`],\r\n }\r\n\r\n const newParentGroup: IGridGroup = {\r\n key: `g1_${groupNameValue.toLowerCase()}`,\r\n name: `${groupNameDisplay}: ${groupNameValue} (${row[`${groupName}.COUNT.group`]})`,\r\n startIndex: 0,\r\n totalCount: +row[`${groupName}.COUNT.group`],\r\n count: 0,\r\n level: 0,\r\n isCollapsed: false,\r\n children: [newChildGroup],\r\n urlencoded: row[`${groupName}.urlencoded`]\r\n }\r\n\r\n groups.push(newParentGroup)\r\n }\r\n else {\r\n let childGroup: IGroup = parentGroup.children?.find(x => x.key === `g2_${groupName2Value.toLowerCase()}`);\r\n if (!childGroup) {\r\n const newChildGroup: IGridGroup = {\r\n key: `g2_${groupName2Value.toLowerCase()}`,\r\n name: `${groupName2Display}: ${groupName2Value} (${row[`${groupName2}.COUNT.group2`]})`,\r\n startIndex: gridProps.items.length + index,\r\n totalCount: +row[`${groupName2}.COUNT.group`],\r\n count: 1,\r\n level: 1,\r\n isCollapsed: false,\r\n urlencoded: row[`${groupName2}.urlencoded`],\r\n }\r\n parentGroup.children?.push(newChildGroup)\r\n }\r\n else {\r\n childGroup.count = childGroup.count + 1;\r\n }\r\n }\r\n });\r\n }\r\n\r\n gridProps.items = [...gridProps.items].concat(newItems);\r\n gridProps.groups = [...groups];\r\n }\r\n\r\n const fetchGroupedDrillDownData = async (group: IGridGroup) => {\r\n const groupingCount = gridProps.groupProps.names.length;\r\n\r\n try {\r\n if (gridProps.groupProps.collapse) {\r\n const newGridProps = { ...gridProps }\r\n const sortProps = [...gridProps.sort];\r\n\r\n let serverRelativePath = '';\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath) {\r\n serverRelativePath = currentDirectory.serverRelativePath\r\n }\r\n else if (currentDirectory?.directory?.length > 0 && currentDirectory?.parentId) {\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n const results = await getItemWebUrl({ driveId, itemId: currentDirectory?.id, accessToken: await authModule.getGraphAccessToken() }).unwrap();\r\n serverRelativePath = tryDecodeUriComponent(new URL(results.listItem?.webUrl || results.webUrl).pathname);\r\n }\r\n\r\n let nextHref = '';\r\n\r\n if (groupingCount === 1) {\r\n do {\r\n const listStreamDrilldown = await getListAsStreamGroupDrillDown({\r\n siteUrl: isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n viewId: selectedView.Id,\r\n groupString: group.urlencoded,\r\n sortProps: sortProps,\r\n accessToken: isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n serverRelativePath,\r\n filterField: group.filterField,\r\n filterValue: group.filterValue,\r\n nextHref,\r\n filterSections,\r\n searchValue\r\n }).unwrap();\r\n\r\n newGridProps.items = newGridProps.items ? [...newGridProps.items].concat(listStreamDrilldown.ListData.Row as any[]) : [...listStreamDrilldown.ListData.Row as any[]];\r\n\r\n nextHref = listStreamDrilldown.ListData.NextHref ? listStreamDrilldown.ListData.NextHref : '';\r\n\r\n let currentGroup: IGroup = null;\r\n\r\n if (!group.parentKey) {\r\n currentGroup = newGridProps.groups.find(x => x.key === group.key);\r\n }\r\n else {\r\n const parentGroup = newGridProps.groups.find(x => x.key === group.parentKey);\r\n if (parentGroup) {\r\n currentGroup = parentGroup.children.find(x => x.key === group.key);\r\n }\r\n }\r\n\r\n if (currentGroup) {\r\n const allItemsCount = newGridProps.items?.length > 0 ? newGridProps.items?.length : 0;\r\n const newItemsCount = (listStreamDrilldown.ListData.Row as any[]).length;\r\n\r\n currentGroup.startIndex = currentGroup.count === 0 ? allItemsCount - newItemsCount : currentGroup.startIndex\r\n currentGroup.count = currentGroup.count + newItemsCount;\r\n }\r\n\r\n setGridProps({ ...newGridProps, items: [...newGridProps.items] });\r\n\r\n } while (nextHref.length > 0);\r\n }\r\n else {\r\n const listStreamDrilldown = await getListAsStreamGroupDrillDown({\r\n siteUrl: isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n viewId: selectedView.Id,\r\n groupString: group.urlencoded,\r\n sortProps: sortProps,\r\n accessToken: isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n serverRelativePath,\r\n nextHref,\r\n filterSections,\r\n searchValue\r\n }).unwrap();\r\n\r\n newGridProps.items = newGridProps.items ? [...newGridProps.items].concat(listStreamDrilldown.ListData.Row as any[]) : [...listStreamDrilldown.ListData.Row as any[]];\r\n\r\n nextHref = listStreamDrilldown.ListData.NextHref ? listStreamDrilldown.ListData.NextHref : '';\r\n\r\n let currentGroup: IGroup = null;\r\n\r\n if (!group.parentKey) {\r\n currentGroup = newGridProps.groups.find(x => x.key === group.key);\r\n }\r\n else {\r\n const parentGroup = newGridProps.groups.find(x => x.key === group.parentKey);\r\n if (parentGroup) {\r\n currentGroup = parentGroup.children.find(x => x.key === group.key);\r\n }\r\n }\r\n\r\n if (currentGroup) {\r\n const allItemsCount = newGridProps.items?.length > 0 ? newGridProps.items?.length : 0;\r\n const newItemsCount = (listStreamDrilldown.ListData.Row as any[]).length;\r\n\r\n currentGroup.startIndex = allItemsCount - newItemsCount\r\n currentGroup.count = newItemsCount;\r\n }\r\n\r\n setGridProps({ ...newGridProps, items: [...newGridProps.items] });\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (fetchGroupedDrillDownData)\");\r\n }\r\n }\r\n\r\n const fetchGroupedDrillDownDataAllGroups = async () => {\r\n try {\r\n await fetchGroupedDataInBatches();\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (fetchGroupedDrillDownDataAllGroups)\");\r\n }\r\n }\r\n\r\n const fetchGroupedDataInBatches = async () => {\r\n let batchSize = 4;\r\n const newGridProps = { ...gridProps }\r\n\r\n let requestCurrentDirectoryId = currentDirectory.id;\r\n let requestViewId = selectedView.Id;\r\n\r\n let position = 0;\r\n let results = [];\r\n let items: any[] = [];\r\n\r\n while (position < newGridProps.groups.length) {\r\n if (requestCurrentDirectoryId === currentDirectoryId.current && requestViewId === selectedViewId.current && !isAllCollapsedRef.current) {\r\n const itemsForBatch = newGridProps.groups.slice(position, position + batchSize);\r\n\r\n results = await Promise.all(itemsForBatch.map(item => fetchSingleGroupData(item)));\r\n position += batchSize;\r\n\r\n for (let index = 0; index < itemsForBatch.length; index++) {\r\n let batchGroup = itemsForBatch[index];\r\n let currentGroup: IGroup = null;\r\n\r\n if (!batchGroup.parentKey) {\r\n currentGroup = newGridProps.groups.find(x => x.key === batchGroup.key);\r\n }\r\n else {\r\n const parentGroup = newGridProps.groups.find(x => x.key === batchGroup.parentKey);\r\n if (parentGroup) {\r\n currentGroup = parentGroup.children.find(x => x.key === batchGroup.key);\r\n }\r\n }\r\n\r\n if (currentGroup) {\r\n const allItemsCount = items?.length > 0 ? items?.length : 0;\r\n const newItemsCount = (results[index]).length;\r\n\r\n currentGroup.startIndex = allItemsCount\r\n currentGroup.count = newItemsCount;\r\n }\r\n\r\n items = items.concat(results[index]);\r\n }\r\n setGridProps({ ...newGridProps, items: [...items] });\r\n\r\n }\r\n else {\r\n position = newGridProps.groups.length\r\n }\r\n }\r\n\r\n return results;\r\n }\r\n\r\n const fetchSingleGroupData = async (group: IGridGroup) => {\r\n if (group.count === group.totalCount) {\r\n return gridProps.items.slice(group.startIndex, group.startIndex + group.count);\r\n }\r\n\r\n let nextHref = '';\r\n let requestCurrentDirectoryId = currentDirectory.id;\r\n let requestViewId = selectedView.Id;\r\n let items: any[] = [];\r\n\r\n let serverRelativePath = '';\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.folder) && currentDirectory.serverRelativePath) {\r\n serverRelativePath = currentDirectory.serverRelativePath\r\n }\r\n else if (currentDirectory?.directory?.length > 0 && currentDirectory?.parentId) {\r\n let driveId = isInOneDrive.current ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n const results = await getItemWebUrl({ driveId, itemId: currentDirectory?.id, accessToken: await authModule.getGraphAccessToken() }).unwrap();\r\n serverRelativePath = tryDecodeUriComponent(new URL(results.listItem?.webUrl || results.webUrl).pathname);\r\n }\r\n\r\n do {\r\n if (requestCurrentDirectoryId === currentDirectoryId.current && requestViewId === selectedViewId.current && !isAllCollapsedRef.current) {\r\n const listStreamDrilldown = await getListAsStreamGroupDrillDown2({\r\n siteUrl: isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n viewId: selectedView.Id,\r\n sortProps: gridProps.sort,\r\n accessToken: isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n serverRelativePath,\r\n filterField: group.filterField,\r\n filterValue: group.filterValue,\r\n nextHref,\r\n searchValue\r\n }).unwrap();\r\n\r\n items = items ? [...items].concat(listStreamDrilldown.ListData.Row as any[]) : [...listStreamDrilldown.ListData.Row as any[]];\r\n nextHref = listStreamDrilldown.ListData.NextHref ? listStreamDrilldown.ListData.NextHref : '';\r\n }\r\n else {\r\n nextHref = '';\r\n }\r\n } while (nextHref.length > 0);\r\n\r\n return items;\r\n }\r\n\r\n const getGroupNameValue = (groupName: string, groupRow: any) => {\r\n const isObject = typeof groupRow[groupName] === 'object';\r\n\r\n if (isObject && groupRow[groupName].length > 0) {\r\n return groupRow[groupName][0].title ?? groupRow[groupName][0].lookupValue;\r\n }\r\n\r\n if (groupRow[`${groupName}.groupdisp`]) {\r\n const isValidDate = dayjs(groupRow[`${groupName}.groupdisp`]).isValid();\r\n return isValidDate ? dayjs(groupRow[`${groupName}.groupdisp`]).format('D-M-YYYY') : groupRow[`${groupName}.groupdisp`];\r\n }\r\n\r\n if (groupRow[groupName] && groupRow[groupName].length > 0) {\r\n return groupRow[groupName];\r\n }\r\n\r\n if (groupRow[`${groupName}.singleurlencoded`] && groupRow[`${groupName}.singleurlencoded`].length > 0) {\r\n return tryDecodeUriComponent(groupRow[`${groupName}.singleurlencoded`]);\r\n }\r\n\r\n return languageStrings.Unassigned;\r\n }\r\n\r\n const getGroupDisplayName = (groupName: string): string => {\r\n const groupDisplayName: string = listFields.current?.find(x => x.RealFieldName === groupName)?.DisplayName\r\n ?? listColumnsSchema.current?.value.find(x => x.InternalName === groupName)?.Title;\r\n\r\n return groupDisplayName ?? languageStrings.Unassigned;\r\n }\r\n\r\n const getViewsAndColumns = async (): Promise => {\r\n setIsFetchingData(true);\r\n\r\n let documentSetContentTypeId: string;\r\n if (!isInOneDrive.current) {\r\n if (currentDirectory?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet)) {\r\n documentSetContentTypeId = currentDirectory.contentTypeId;\r\n }\r\n else {\r\n documentSetContentTypeId =\r\n currentDirectory?.parentDocumentSetContentTypeId\r\n ??\r\n workingDirectories?.find(dir => dir?.contentTypeId?.startsWith(SharePointFolderContentTypeIds.documentSet))?.contentTypeId;\r\n }\r\n }\r\n\r\n const accessToken: string = isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken();\r\n const [listColumns, views, contentTypes, listSchema, documentSetSettings] = await Promise.all(\r\n [\r\n getListColumns(),\r\n getRawViews(accessToken),\r\n !isInOneDrive.current ? getSharePointContentTypesWithFields(accessToken, currentDirectory.webUrl, currentDirectory.sharePointListId) : null,\r\n !isInOneDrive.current ? getSharepointListSchema(accessToken, currentDirectory.webUrl, currentDirectory.sharePointListId) : null,\r\n documentSetContentTypeId ? SharepointContentTypeHelper.getDocumentSetSettings(accessToken, currentDirectory.webUrl, currentDirectory.sharePointListId, documentSetContentTypeId) : null\r\n ]\r\n );\r\n\r\n if (Array.isArray(listSchema?.Field)) {\r\n listFields.current = listSchema.Field;\r\n }\r\n listColumnsSchema.current = listColumns;\r\n\r\n if (documentSetContentTypeId) {\r\n isInDocumentSet.current = true;\r\n documentSetDefaultViews.current = [{ contentTypeId: documentSetContentTypeId, viewId: documentSetSettings?.viewId }];\r\n }\r\n\r\n const defaultViewId: string = directoryViewModule.getDirectoryView(currentDirectory?.id)?.viewId ?? documentSetSettings?.viewId;\r\n\r\n setRawViews(views);\r\n if (Array.isArray(contentTypes) && contentTypes.length > 0) {\r\n // setContentTypes(contentTypes);\r\n setContentTypes(contentTypes.map(ct => ({ Id: ct.Id, Name: ct.Name, Sealed: ct.Sealed, RequiredFields: ct.Fields?.filter(field => field.InternalName !== sharePointInternalFileName && field.Required && !field.Hidden && field.Group !== \"_Hidden\") })));\r\n }\r\n getNewDocumentTemplates(listSchema?.NewDocumentTemplates, contentTypes);\r\n getViewsWithColumns(views, defaultViewId);\r\n\r\n return { forceCheckout: listSchema?.ForceCheckout === \"1\" };\r\n }\r\n\r\n const getRawViews = async (accessToken: string) => {\r\n try {\r\n if (currentDirectory && currentDirectory.sharePointListId) {\r\n return (await getSharePointListViews(\r\n accessToken,\r\n isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n currentDirectory.sharePointListId\r\n ))\r\n ?.map(view => {\r\n return ({\r\n ...view,\r\n Title: view.Title,\r\n DefaultView: view['DefaultView'],\r\n Id: view.Id\r\n })\r\n });\r\n }\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (getRawViews)\");\r\n }\r\n return null;\r\n }\r\n\r\n const getViewsWithColumns = (views: any[], defaultViewId: string) => {\r\n const viewsColumns: IViewsDropdown[] = [];\r\n views?.forEach((view, index) => parseString(view.ListViewXml, (err, result) => {\r\n if (result) {\r\n viewsColumns.push(\r\n {\r\n Id: view.Id,\r\n text: view.Title,\r\n key: `${view.Title}-${index}`,\r\n query: result.View.Query[0],\r\n fields: result.View.ViewFields[0].FieldRef\r\n .map(f => f.$),\r\n siteId: '',\r\n webUrl: result.View.$.Url,\r\n default: view.DefaultView\r\n });\r\n }\r\n if (err) {\r\n logger(err, \"useContentManagerBody.tsx (getViewsWithColumns)\");\r\n }\r\n }));\r\n\r\n let defaultView: IViewsDropdown;\r\n if (defaultViewId) {\r\n defaultView = viewsColumns.find(x => x.Id === defaultViewId);\r\n }\r\n if (!defaultView) {\r\n defaultView = viewsColumns.find(x => x.default === true);\r\n }\r\n\r\n const reportView: IViewsDropdown = {\r\n ...defaultView,\r\n default: false,\r\n key: \"Minor_Draft_Versions\",\r\n text: languageStrings.MinorVersions,\r\n isReport: true\r\n };\r\n\r\n setViewsWithColumns([...viewsColumns, reportView]);\r\n\r\n setSelectedView(defaultView ? defaultView : viewsColumns[0]);\r\n }\r\n\r\n const getListColumns = async () => {\r\n try {\r\n return await getListColumnsSchema({\r\n siteUrl: isInOneDrive.current ? oneDriveRootDetails.sharePointSiteUrl : currentDirectory.webUrl,\r\n sharePointListId: currentDirectory.sharePointListId,\r\n accessToken: isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken()\r\n }).unwrap();\r\n } catch (error) {\r\n logger(error, \"useContentManagerBody.tsx (getListColumns)\");\r\n }\r\n return null;\r\n }\r\n\r\n const getOrderByGroupByFromView = (gridProps: GridProps) => {\r\n const sortProps: GridSortProps[] = [];\r\n gridProps.sort = null;\r\n gridProps.groupProps = null;\r\n\r\n const orderBy = selectedView?.query?.OrderBy;\r\n orderBy?.forEach(ref => {\r\n ref.FieldRef.forEach(fieldRef => {\r\n sortProps.push({\r\n decending: fieldRef?.$?.Ascending === 'FALSE' ? true : false,\r\n field: (fieldRef?.$?.Name as string)\r\n });\r\n });\r\n });\r\n\r\n gridProps.sort = sortProps;\r\n\r\n\r\n //Groups\r\n const groupProps: GridGroupProps = { names: [] }\r\n const groupBy = selectedView?.query?.GroupBy;\r\n if (groupBy?.length > 0) {\r\n const grouping = groupBy[0];\r\n groupProps.collapse = grouping.$?.Collapse === 'TRUE';\r\n groupProps.limit = +grouping.$?.GroupLimit;\r\n\r\n grouping.FieldRef.forEach(fieldRef => {\r\n groupProps.names.push(fieldRef?.$?.Name as string);\r\n });\r\n\r\n gridProps.groupProps = groupProps;\r\n }\r\n }\r\n\r\n const updateColumnSortProps = (column: IGridColumn, gridProps: GridProps, colSchema: any) => {\r\n gridProps.sort.forEach(sortProp => {\r\n if ((sortProp.field === colSchema.InternalName) || (sortProp.field === colSchema.xml.DisplayNameSrcField)) {\r\n column.isSorted = true;\r\n column.isSortedDescending = sortProp.decending === true\r\n }\r\n });\r\n }\r\n\r\n const convertMetadataToFields = item => {\r\n let xmlData: any = {};\r\n parseString(item.SchemaXml, (err, result) => {\r\n if (result) {\r\n xmlData = result.Field.$;\r\n }\r\n });\r\n\r\n if (item.Title) {\r\n xmlData.DisplayName = item.Title;\r\n }\r\n\r\n return {\r\n Choices: item.Choices,\r\n DefaultValue: item.DefaultValue,\r\n CurrentValue: item.DefaultValue,\r\n isValid: true,\r\n Id: item.Id,\r\n InternalName: item.InternalName,\r\n xml: xmlData\r\n };\r\n }\r\n\r\n const onSortColumn = (column?: IGridColumn, uiSearch?: boolean) => {\r\n const newGridProps: GridProps = { ...gridProps };\r\n newGridProps.sort = [];\r\n let isSortDesc = column.isSortedDescending ? !column.isSortedDescending : true;\r\n\r\n const newColumns: IGridColumn[] = []\r\n\r\n newGridProps.columns.forEach(col => {\r\n let newCol: IGridColumn = { ...col };\r\n\r\n if (newCol.internalName === column.internalName) {\r\n newCol.isSorted = true;\r\n newCol.isSortedDescending = isSortDesc;\r\n newGridProps.sort.push({\r\n field: column.internalName,\r\n decending: isSortDesc\r\n });\r\n } else {\r\n newCol.isSorted = null;\r\n newCol.isSortedDescending = null\r\n }\r\n\r\n newColumns.push(newCol);\r\n });\r\n\r\n newGridProps.columns = [...newColumns];\r\n\r\n if (!uiSearch) {\r\n setGridProps({ ...newGridProps });\r\n dispatch(toggleContentManagerReload());\r\n } else {\r\n const newItems = _copyAndSort([...newGridProps.items], newGridProps.sort[0].field!, newGridProps.sort[0].decending);\r\n setGridProps({ ...newGridProps, items: [...newItems] });\r\n }\r\n }\r\n\r\n return {\r\n isFetchingData,\r\n gridProps,\r\n viewsWithColumns,\r\n selectedView,\r\n listColumnsSchema,\r\n scrollToTopToggle,\r\n isAllCollapsedRef,\r\n serverRelPath,\r\n folderPath,\r\n newDocumentTemplates,\r\n libraryMinVerEnabled,\r\n listTitle,\r\n listFields: listColumnsSchema.current,\r\n setSelectedView,\r\n fetchGroupedDrillDownData,\r\n fetchGroupedDrillDownDataAllGroups,\r\n onSortColumn,\r\n reloadGrid,\r\n fetchListStreamNextPage,\r\n setGridProps,\r\n setIsFetchingData\r\n }\r\n}","import { DefaultButton, Dialog, DialogFooter, DialogType, IDialogContentProps, PrimaryButton, Spinner, SpinnerSize } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLazyGetItemByUniqueIDQuery, useLazySendSharepointItemToRecyclebinQuery } from \"../../src/taskpane/components/_v2/redux/api/sharepoint/api-sharepoint-slice\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { IDocUrlDropdown } from \"../../src/taskpane/interfaces/IDocUrlDropdown\";\r\nimport authModule from \"../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { getSharePointSite } from \"../../src/taskpane/services/GraphService\";\r\n\r\nexport interface ICMDeleteModalProps {\r\n selectedItems?: any[];\r\n selectedGraphItem?: any;\r\n showDialog: boolean;\r\n selectedDocumentLibraries?: IDocUrlDropdown[];\r\n closeDialog: () => void;\r\n closeOnSuccess: (successIds: string[], hasError: boolean) => void;\r\n}\r\n\r\nexport const CMDeleteModal = ({ selectedItems, selectedGraphItem, showDialog, selectedDocumentLibraries, closeDialog, closeOnSuccess }: ICMDeleteModalProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories?.workingDirectories.length > 0 ? state.workingDirectories?.workingDirectories[state.workingDirectories?.workingDirectories?.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories?.oneDriveRootDetails);\r\n const oneDriveWebUrl = useSelector((state: RootState) => state.user.oneDriveWebUrl);\r\n\r\n const [isBusy, setIsBusy] = React.useState(false);\r\n\r\n const isInOneDrive = React.useRef(currentDirectory?.type == ComponentTypes.OneDrive || currentDirectory?.type == ComponentTypes.OneDriveSubFolder);\r\n\r\n const [sendSharepointItemToRecyclebin] = useLazySendSharepointItemToRecyclebinQuery();\r\n const [getItemByUniqueId] = useLazyGetItemByUniqueIDQuery();\r\n\r\n const dialogContentProps: IDialogContentProps = {\r\n type: DialogType.normal,\r\n title: languageStrings.Delete,\r\n subText: languageStrings.DeleteSPItemConfirmMessage,\r\n showCloseButton: true,\r\n closeButtonAriaLabel: 'Close'\r\n };\r\n\r\n const onConfirmDelete = async () => {\r\n setIsBusy(true);\r\n if (selectedItems?.length > 0) {\r\n let count = 0;\r\n let hasError = false;\r\n let successIds: string[] = [];\r\n\r\n await Promise.all(selectedItems.map(async (item) => {\r\n if (selectedDocumentLibraries) {\r\n const selectedLibrary = selectedDocumentLibraries.find(x => x.driveId === item?.driveid);\r\n\r\n let file = await getItemByUniqueId({\r\n siteUrl: selectedLibrary.webUrl,\r\n sharePointListId: selectedLibrary.sharePointListId,\r\n uniqueId: item.uniqueid,\r\n accessToken: isInOneDrive.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n }).unwrap();\r\n\r\n try {\r\n await sendSharepointItemToRecyclebin({\r\n siteUrl: selectedLibrary.webUrl,\r\n sharePointListId: selectedLibrary.sharePointListId,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n itemId: file.ID\r\n }).unwrap();\r\n\r\n count = count + 1;\r\n successIds.push(file.ID)\r\n } catch (error) {\r\n hasError = true;\r\n }\r\n\r\n } else {\r\n try {\r\n await sendSharepointItemToRecyclebin({\r\n siteUrl: isInOneDrive?.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl,\r\n sharePointListId: isInOneDrive?.current ? oneDriveRootDetails?.sharePointListId : currentDirectory.sharePointListId,\r\n accessToken: isInOneDrive?.current ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n itemId: item.ID\r\n }).unwrap();\r\n\r\n successIds.push(item.ID);\r\n } catch (error) {\r\n hasError = true;\r\n }\r\n }\r\n }));\r\n setIsBusy(false);\r\n closeOnSuccess(successIds, hasError);\r\n } else if (selectedGraphItem) {\r\n let hasError = false;\r\n try {\r\n const isInOneDrive: boolean = selectedGraphItem.resource.webUrl?.startsWith(oneDriveWebUrl);\r\n const sharePointSite = await getSharePointSite(selectedGraphItem.resource.parentReference.siteId);\r\n\r\n await sendSharepointItemToRecyclebin({\r\n siteUrl: sharePointSite.webUrl,\r\n sharePointListId: selectedGraphItem.resource.parentReference.sharepointIds?.listId,\r\n accessToken: isInOneDrive ? await authModule.getOneDriveAccessToken() : await authModule.getSharePointAccessToken(),\r\n itemId: selectedGraphItem.resource.parentReference.sharepointIds?.listItemId\r\n }).unwrap();\r\n } catch (error) {\r\n hasError = true;\r\n }\r\n setIsBusy(false);\r\n closeOnSuccess([], hasError);\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n};","import { Dialog, DialogType, IDialogContentProps } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { DuplicatePDFFileVersionSelector } from \"../../src/taskpane/components/_v2/_shared/VersionSelector/DuplicatePDFFileVersionSelector\";\r\n\r\nexport interface ICMDuplicateFileVersionSelectorModalProps {\r\n selectedItem: any;\r\n showDialog: boolean;\r\n closeDialog: () => void;\r\n closeOnSuccess: () => void;\r\n showSelectVersion: boolean;\r\n isDuplicate: boolean;\r\n}\r\n\r\nexport const CMDuplicateFileVersionSelectorModal = ({ selectedItem, showDialog, closeDialog, closeOnSuccess, showSelectVersion, isDuplicate }: ICMDuplicateFileVersionSelectorModalProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dialogContentProps: IDialogContentProps = {\r\n type: DialogType.normal,\r\n title: languageStrings.SaveAsPdf,\r\n showCloseButton: true,\r\n closeButtonAriaLabel: 'Close'\r\n };\r\n\r\n return (\r\n \r\n )\r\n};","import { DefaultButton, Dialog, DialogFooter, DialogType, IDialogContentProps, PrimaryButton, TextField } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\n\r\nexport interface ICMEntireFolderChooseNameDialogProps {\r\n showDialog: boolean;\r\n closeDialog: () => void;\r\n closeOnSelection: (folderName: string) => void;\r\n}\r\n\r\nexport const CMEntireFolderChooseNameDialog = ({ showDialog, closeDialog, closeOnSelection }: ICMEntireFolderChooseNameDialogProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const exchangeFolderName = useSelector((state: RootState) => state.contentManagerDirectory?.exchange?.selectedFolderName);\r\n\r\n const [folderName, setFolderName] = React.useState(\"\");\r\n const [errorMessage, setErrorMessage] = React.useState(\"\");\r\n\r\n React.useEffect(() => {\r\n setFolderName(exchangeFolderName);\r\n }, [exchangeFolderName]);\r\n\r\n const dialogContentProps: IDialogContentProps = {\r\n type: DialogType.normal,\r\n title: languageStrings.FolderName,\r\n showCloseButton: true,\r\n closeButtonAriaLabel: 'Close',\r\n subText: languageStrings.DoYouWantToCreateFolder\r\n };\r\n\r\n const onChange = React.useCallback(async (event?: React.ChangeEvent, newValue?: string) => {\r\n setErrorMessage(\"\");\r\n setFolderName(newValue);\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n};","import { DefaultButton, IButtonStyles, IPanelStyles, IStackStyles, Label, mergeStyles, Panel, PanelType, ScrollablePane, ScrollbarVisibility, Stack } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { setContentManagerFilterSections, setContentManagerFilterSectionsReset } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { toggleReload } from \"../../../src/taskpane/redux/modules/reload\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { CMFileFilterPanelSection } from \"./CMFileFilterPanelSection\";\r\nimport Loader from \"../../../src/taskpane/components/Loader\";\r\nimport { IViewsDropdown } from \"../../../src/taskpane/interfaces/IViewsDropdown\";\r\nimport { setFilterSectionsFromFields } from \"./FileFilterHelper\";\r\n\r\nexport const scrollStyle = mergeStyles({\r\n position: \"relative\",\r\n height: \"calc(100vh - 140px)\",\r\n marginTop: 5,\r\n marginBottom: 10\r\n});\r\n\r\nexport const panelActionButtonStyle: Partial = {\r\n root: {\r\n marginTop: 20,\r\n }\r\n}\r\n\r\nconst panelStyles: Partial = {\r\n main: {\r\n overflow: \"hidden\"\r\n },\r\n content: {\r\n paddingLeft: 5,\r\n paddingRight: 5,\r\n paddingBottom: 0\r\n }\r\n}\r\n\r\nconst noFiltersStackStyles: Partial = {\r\n root: { width: \"100%\", height: \"100%\", margin: 0, padding: 0, overflow: \"auto\" }\r\n};\r\n\r\nconst stackTokens = { childrenGap: 25 };\r\n\r\nexport interface ICMFileFilterPanelProps {\r\n closePanel?: () => void;\r\n panelIsOpen: boolean;\r\n isInOneDrive: boolean;\r\n serverRelPath: string;\r\n selectedView?: IViewsDropdown;\r\n}\r\n\r\nexport const CMFileFilterPanel = ({ closePanel, panelIsOpen, isInOneDrive, serverRelPath, selectedView }: ICMFileFilterPanelProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const filterFields = useSelector((state: RootState) => state.contentManagerDirectory.filterFields);\r\n const filterSections = useSelector((state: RootState) => state.contentManagerDirectory.filterSections);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories?.oneDriveRootDetails);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories?.workingDirectories?.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n // const datasourceItems = useSelector((state: RootState) => state.tenantInfo.datasources);\r\n const [isLoadingFilters, setIsLoadingFilters] = React.useState(false);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [filterSelected, setFilterSelected] = React.useState(false);\r\n const [hasFilters, setHasFilters] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n setIsLoadingFilters(true);\r\n if (filterSections.length === 0) {\r\n (async () => {\r\n try {\r\n const displayFilterSections = await setFilterSectionsFromFields(isInOneDrive,\r\n oneDriveRootDetails,\r\n currentDirectory,\r\n userAccount,\r\n filterFields,\r\n serverRelPath,\r\n languageStrings.Me,\r\n selectedView\r\n );\r\n\r\n dispatch(setContentManagerFilterSections(displayFilterSections));\r\n setHasFilters(displayFilterSections.some(section => section.items?.length > 0));\r\n } catch (error) {\r\n // Ignore\r\n }\r\n setIsLoadingFilters(false);\r\n })();\r\n }\r\n else {\r\n setIsLoadingFilters(false);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setFilterSelected(hasFilters && (filterSections?.some(section => section.daysOffset || section.daysOffset === 0) || filterSections?.some(section => section.items.some(item => item.selected === true))));\r\n }, [hasFilters, filterSections]);\r\n\r\n return (\r\n {\r\n closePanel();\r\n }}\r\n isLightDismiss={true}\r\n closeButtonAriaLabel=\"Close\"\r\n type={PanelType.custom}\r\n customWidth={'350px'}\r\n styles={panelStyles}\r\n >\r\n
\r\n \r\n
\r\n {isLoadingFilters && }\r\n {!hasFilters && \r\n \r\n \r\n \r\n }\r\n {hasFilters && \r\n {filterSections?.length > 0\r\n && filterSections\r\n .map((section, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })}\r\n }\r\n
\r\n
\r\n
\r\n {filterSections?.length > 0 && hasFilters && \r\n {\r\n dispatch(setContentManagerFilterSectionsReset());\r\n dispatch(toggleReload());\r\n }}\r\n text={languageStrings.Reset}\r\n />\r\n }\r\n \r\n )\r\n};","import { ActionButton, FontSizes, FontWeights, getTheme, IButton, IIconProps, IIconStyles, mergeStyles, Spinner, SpinnerSize, Stack, StackItem, Text } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { getFileItemIdFromRelativePath, getFilePreview, getItemWebViewUrl } from \"../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../utilities/logger\";\r\nconst notFoundIconSrc = require(\"../../assets/not_found.svg\");\r\n\r\nconst theme = getTheme();\r\nconst textNotAvailable = mergeStyles({\r\n color: theme.palette.neutralPrimary,\r\n fontSize: FontSizes.size18,\r\n fontWeight: FontWeights.light\r\n});\r\n\r\nconst contentStyles = mergeStyles({\r\n height: 'calc(100vh - 80px)',\r\n marginTop: 10,\r\n width: \"100%\",\r\n \"iframe\": {\r\n height: \"100%\",\r\n width: \"100%\",\r\n border: \"none\",\r\n overflow: \"hidden\",\r\n }\r\n});\r\n\r\nconst notFoundContentStyles = mergeStyles({\r\n height: 'calc(100vh - 80px)',\r\n marginTop: 10,\r\n width: \"100%\"\r\n});\r\n\r\nconst navigationButtonIcon: IIconStyles = { root: { fontSize: 32 } };\r\nconst backButtonIcon: IIconProps = { iconName: \"NavigateBack\", styles: navigationButtonIcon };\r\nconst forwardButtonIcon: IIconProps = { iconName: \"NavigateBackMirrored\", styles: navigationButtonIcon };\r\n\r\nexport enum SearchSource {\r\n Sharepoint,\r\n Graph,\r\n Api\r\n}\r\n\r\nexport enum MoveDirection {\r\n Back,\r\n Forward\r\n}\r\n\r\nexport interface ICMFilePreviewPanelProps {\r\n selectedItem: any;\r\n searchSource: SearchSource;\r\n isInOneDrive?: boolean;\r\n totalItemCount?: number;\r\n selectedItemIndex?: number;\r\n previewNotSupported?: boolean;\r\n move?: (direction: MoveDirection) => void;\r\n}\r\n\r\nexport const CMFilePreviewPanel = ({ selectedItem, searchSource, isInOneDrive, totalItemCount, selectedItemIndex, previewNotSupported, move }: ICMFilePreviewPanelProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories?.workingDirectories?.length > 0 ? state.workingDirectories?.workingDirectories[state.workingDirectories?.workingDirectories?.length - 1] : null);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories?.oneDriveRootDetails);\r\n\r\n const [previewURL, setPreviewURL] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [hasPreviewLoaded, _setHasPreviewLoaded] = React.useState(false);\r\n\r\n const hasPreviewLoadedRef = React.useRef(false);\r\n const setHasPreviewLoaded = (hasLoaded: boolean) => {\r\n hasPreviewLoadedRef.current = hasLoaded;\r\n _setHasPreviewLoaded(hasLoaded);\r\n };\r\n\r\n const forwardNavButtonRef = React.useRef();\r\n\r\n const onKeyDown = React.useCallback((event: KeyboardEvent) => {\r\n switch (event.key) {\r\n case \"ArrowLeft\":\r\n if (selectedItemIndex > 0) {\r\n move(MoveDirection.Back);\r\n }\r\n break;\r\n case \"ArrowRight\":\r\n if (!((selectedItemIndex + 1) >= totalItemCount)) {\r\n move(MoveDirection.Forward);\r\n }\r\n break;\r\n default:\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }, [totalItemCount, selectedItemIndex, move]);\r\n\r\n React.useEffect(() => {\r\n document.addEventListener(\"keydown\", onKeyDown);\r\n return () => {\r\n document.removeEventListener(\"keydown\", onKeyDown);\r\n };\r\n }, [onKeyDown]);\r\n\r\n React.useEffect(() => {\r\n setHasPreviewLoaded(false);\r\n if (previewNotSupported === true) {\r\n setPreviewURL(null);\r\n setIsLoading(false);\r\n setHasPreviewLoaded(true);\r\n return;\r\n }\r\n\r\n const asyncWrapper = async () => {\r\n setIsLoading(true);\r\n try {\r\n if (selectedItem) {\r\n let itemId = '';\r\n let driveId = '';\r\n\r\n if (searchSource === SearchSource.Sharepoint) {\r\n driveId = isInOneDrive ? oneDriveRootDetails.driveId : (currentDirectory.parentId ? currentDirectory.parentId : currentDirectory.id);\r\n\r\n const spItemUrlparts = selectedItem['.spItemUrl'].split('/');\r\n itemId = spItemUrlparts[spItemUrlparts.length - 1].split('?')[0];\r\n\r\n if (!itemId) {\r\n const driveUrl = new URL(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, null));\r\n const folderUrl = new URL(driveUrl.origin + selectedItem.FileRef);\r\n itemId = await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, folderUrl.pathname.replace(driveUrl.pathname, \"\"), false);\r\n }\r\n }\r\n else if (searchSource === SearchSource.Graph) {\r\n itemId = selectedItem.resource.id;\r\n driveId = selectedItem.resource.parentReference?.driveId;\r\n }\r\n else if (searchSource === SearchSource.Api) {\r\n driveId = selectedItem.driveid;\r\n itemId = selectedItem.itemid ?? await getFileItemIdFromRelativePath(await authModule.getGraphAccessToken(), driveId, selectedItem.serverrelativepath);\r\n }\r\n\r\n if (itemId && driveId) {\r\n const preview = await getFilePreview(driveId, itemId);\r\n if (preview) {\r\n const previewUrl = new URL(preview);\r\n previewUrl.searchParams.append(\"nb\", \"true\");\r\n setPreviewURL(previewUrl.href);\r\n }\r\n } else {\r\n setPreviewURL(null);\r\n }\r\n }\r\n } catch (error) {\r\n setHasPreviewLoaded(true);\r\n logger(error, \"CMFilePreviewPanel.tsx (init)\");\r\n }\r\n setIsLoading(false);\r\n }\r\n asyncWrapper();\r\n }, [selectedItem, previewNotSupported]);\r\n\r\n React.useEffect(() => {\r\n let intervalId: NodeJS.Timeout;\r\n if (!isLoading && !hasPreviewLoadedRef.current) {\r\n let counter: number = 0;\r\n intervalId = setInterval(() => {\r\n forwardNavButtonRef.current?.focus();\r\n if (++counter >= 20) {\r\n clearInterval(intervalId);\r\n }\r\n }, 250);\r\n }\r\n return () => {\r\n clearInterval(intervalId);\r\n };\r\n }, [isLoading, hasPreviewLoaded]);\r\n\r\n const handleIframeLoad = () => {\r\n setTimeout(() => setHasPreviewLoaded(true), 2000);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n move(MoveDirection.Back)} />\r\n
\r\n {!isLoading && previewURL && <>\r\n