{"version":3,"sources":["components/Loading/Loading.module.css","config/msalConfig.js","config/queryClientConfig.js","helpers/log.js","contexts/AppInsightsContext.js","contexts/LoadingContext.js","components/Constants/Constants.js","components/Constants/Errors.js","services/rp-service.js","helpers/ArticleHelpers.js","helpers/UtilitiesHelper.js","helpers/SearchHelpers.js","helpers/StorageHelpers.js","helpers/ProfileHelpers.js","helpers/LinkHelpers.js","helpers/TierHelpers.js","helpers/IndustryHelpers.js","helpers/ContextHelpers.js","hooks/useFetchWithMsal.js","services/useUserProfileService.js","contexts/PageContext.js","helpers/TocHelpers.js","contexts/TocContext.js","contexts/GuidebookTocContext.js","contexts/SearchResultContext.js","contexts/ResearchAssistantContext.js","middleware/HandleError.js","middleware/ErrorHandler.js","components/Common/ShowIf.js","contexts/ReadingModeContext.js","components/Loading/Loading.js","components/Common/Layout/LayoutChildren.js","components/Common/Layout/PageTitle.js","components/Common/HTMLContent.js","contexts/ThemeContext.js","components/Common/Layout/Footer.js","components/Common/Layout/Layout.js","components/Common/PrivateRoute.js","contexts/ArticleContext.js","contexts/AnnotationsContext.js","helpers/AnnotationServices.js","helpers/BookmarkServices.js","components/Annotations/AnnotationsDeletedArticlesModal.js","components/Notification/WormholeNotification.js","components/Common/RecentSearches.js","components/Constants/SCSConstants.js","components/Catalog/CollectionSearchbar.js","helpers/RecentlyViewedServices.js","helpers/RecentlyViewedHelper.js","components/Article/PDF.js","helpers/getTextWithSearchHighlight.js","components/Article/File.js","components/Common/ListItem.js","components/Common/ViewAll.js","components/Catalog/CollectionDropdown.js","services/useDCSService.js","hooks/useCatalogSectionsQuery.js","components/Catalog/CatalogBox.js","components/Catalog/CatalogCards.js","services/useSearchService.js","hooks/useCatalogSearchQuery.js","components/ChatBot/ChatBotCatalogSearchResultItem.js","components/Common/AskFolllowUpButton.js","components/ChatBot/GotoIcon.js","components/ChatBot/DocumentSource.js","hooks/useOutsideClick.js","components/Article/RedirectModal.js","components/Article/ContentItem.js","components/Article/Copyright.js","components/Article/Figure.js","helpers/getComponentInfo.js","components/Article/StructuredSection.js","components/Article/Annotations.js","components/Article/AssociatedContent.js","components/Article/RelatedLinks.js","components/Article/StructuredPanel.js","components/Article/StructuredArticle.js","contexts/EmbeddedModeContext.js","components/Common/IconX.js","components/Common/NavigableSearchbar.js","components/Article/ArticleSearch.js","components/Article/ArticleTag.js","components/Article/ArticleTitle.js","components/Article/JumpLinkMain.js","components/Article/JumpLinkSub.js","components/Article/Footnote.js","components/Article/Footnotes.js","components/Article/RenderAllContainer.js","components/Article/JumpLinksList.js","helpers/JumpLinkHelpers.js","components/Article/ArticleTOC.js","components/Publication/EmbeddedArticleBlockSubsection.js","components/Publication/EmbeddedArticleBlockSection.js","components/Publication/EmbeddedArticleBlock.js","components/Publication/EmbeddedArticle.js","helpers/getIconSrc.js","components/Publication/SidebarIconNextToTitle.js","contexts/FolioPickerContext.js","components/Common/Dropdown/Trigger.js","components/Common/Dropdown/Dropdown.js","components/Common/Dropdown/Panel.js","components/Common/Dropdown/ScrollArea.js","components/Common/Dropdown/index.js","components/Folio/FolioPickerDropdown.js","components/Publication/SidebarTocTitle.js","components/Publication/FixedNavArticle.js","components/Article/FootnotePopup.js","components/Article/HorizontalScrollbar.js","components/Publication/WideModeIconTOC.js","components/Modal/Modal.js","components/Publication/PrevNextArticle.js","components/Breadcrumb/Crumbtrail.js","components/ChatBot/FilterValue.js","components/ChatBot/ResearchAssistantMessage.js","components/Article/ShareModal.js","helpers/CategoryServices.js","components/Toolbar/Toolbar.js","components/Common/Checkbox.js","components/Annotations/AnnotationPanelDropdown.js","helpers/DownloadHelpers.js","components/Article/DownloadPanel.js","components/Article/ToggleReadingMode.js","components/Notification/ArticleNotification.js","components/Annotations/Dropdown/Trigger.js","components/Annotations/Dropdown/Dropdown.js","components/Annotations/Dropdown/Panel.js","components/Annotations/Dropdown/ScrollArea.js","components/Annotations/Dropdown/index.js","components/Annotations/CategoryDropdown.js","components/Annotations/ColorPicker.js","components/Annotations/AnnotationDelete.js","components/Annotations/AnnotationNotification.js","helpers/AnnotationHighlightHelper.js","components/Annotations/AnnotationModal.js","components/Annotations/AnnotationCommentIcon.js","components/Annotations/AnnotationSidePanelEdit.js","components/Annotations/Annotation.js","components/Annotations/AnnotationPanel.js","components/Annotations/BookmarkCategory.js","components/Annotations/BookmarkIcon.js","components/Publication/HiddenMetadata.js","components/Article/PublicationDetailsModal.js","components/Publication/Article.js","components/Article/RenderFormsAndTemplates.js","components/ChatBot/RaFormsAndTemplatesModal.js","components/ChatBot/FormsAndTemplatesSource.js","components/ChatBot/ResolveSources.js","components/ChatBot/ResearchAssistantForms.js","components/Common/ShareIcon.js","components/Common/ThumbsDownIcon.js","components/Common/ThumbsUpIcon.js","components/Common/ShareReactionPanel/index.js","components/ChatBot/FootNotePopup.js","components/ChatBot/ResearchAssistantSources.js","components/ChatBot/UserFeedbackModal.js","components/ChatBot/ResearchAssistantNotableExclusions.js","components/ChatBot/ResearchAssistantInfoModal.js","components/ChatBot/ChatbotResearchAssistant.js","components/ChatBot/TosDeclaration.js","components/ChatBot/ChatbotModal.js","components/Common/ResearchAssistantErrorMessage.js","components/Catalog/index.js","components/Catalog/CollectionItemExpandable.js","components/Catalog/CollectionTocSearchBadge.js","components/Catalog/CollectionTOC.js","components/Catalog/CollectionSearchResultItem.js","components/Catalog/SearchTemplateModal.js","components/Catalog/CollectionSearchResult.js","components/Notification/InfoNotifiation.js","components/Publication/ResearchAssistantTile.js","components/Catalog/CollectionSearch.js","components/Common/MainPannel.js","components/Publication/TocBody.js","components/Publication/SidebarTOC.js","components/Common/ContentErrorMessage.js","components/Notification/MessageNotification.js","components/Publication/PublicationLayout.js","components/Common/SidePannel.js","components/Catalog/Collection.js","components/ContentArticle/index.js","components/Common/Layout/HeaderImage.js","components/Common/Layout/PreferencesDropdown/TriggerValue.js","components/Common/Layout/PreferencesDropdown/DropdownPreferences.js","contexts/LogoutContext.js","components/Common/Layout/DropdownPageSettings.js","components/Common/Layout/DropdownMemberFirm/AddButton.js","components/Common/Layout/DropdownMemberFirm/OptionList.js","components/Common/Layout/DropdownMemberFirm/Option.js","contexts/RecentViewContext.js","components/Home/MemberFirmItem.js","components/Common/Layout/DropdownMemberFirm/ListItem.js","components/Common/Layout/DropdownMemberFirm/List.js","components/Home/ManagePanel.js","components/Home/MemberFirmSelector.js","components/Common/LanguageSelector.js","components/Common/OutageNotification.js","components/Common/Layout/HeaderLayout.js","components/Common/Layout/Header.js","components/Home/HomeHeader.js","components/Home/HomeLayout.js","components/Home/HomeScreen.js","components/Common/LinkResolver.js","components/ResearchDashboard/AnnotationItem.js","components/ResearchDashboard/AnnotationDeleteModal.js","components/Common/CommonSearchbar.js","components/Common/CategoryDropdown.js","components/Common/CalendarIcon.js","components/Common/DateSelector.js","components/ResearchDashboard/AnnotationsDashboard.js","components/ResearchDashboard/RecentlyViewedItem.js","components/ResearchDashboard/RecentlyViewed.js","components/ResearchDashboard/BookmarksListItems.js","components/ResearchDashboard/BookmarksDashboard.js","components/ResearchDashboard/index.js","components/Common/ReactSelectDropdown.js","components/Settings/index.js","components/Common/Unauthorized.js","components/Publication/ArticleReadingMode.js","components/Publication/ArticleResolver.js","components/Manual/ManualArticle.js","components/Common/Searchbar.js","components/Publication/PublicationLandingMainPannel.js","components/Common/SearchResult.js","components/Publication/PublicationSearch.js","components/Publication/PublicationListingSearch.js","components/Publication/PublicationListingResults.js","components/Publication/PublicationListing.js","components/Publication/TocSearchBadge.js","components/Publication/TocAnnotationBadge.js","components/Publication/TableOfContentsItem.js","components/Folio/FolioTableOfContentsItem.js","components/RelatedContent/TocItemRelatedContent.js","components/ArticleCompareVersions/ArticleCompareVersionDropdown.js","components/ArticleCompareVersions/index.js","components/Publication/index.js","components/Manual/index.js","components/Journal/JournalArticle.js","components/Journal/index.js","components/Guidebook/GuidebookSectionTOC.js","components/Guidebook/GuidebookArticle.js","components/Guidebook/index.js","components/Folio/FolioSectionTOC.js","components/Folio/FolioArticle.js","components/Folio/index.js","components/ChatBot/ChatBot.js","components/Common/ResearchAssistantConversation/ResearchAssistantResponse.js","components/Common/ResearchAssistantConversation/ResearchAssistantQuery.js","components/ChatBot/FollowUpQuestions.js","components/ChatBot/TriggerValueResearchAssistant.js","components/ChatBot/DropdownPreferncesRA.js","components/ChatBot/ChatbotIntroduction.js","components/ChatBot/ConversationMode.js","Routes.js","components/PreviewWarning/PreviewWarning.js","components/Loading/SessionExpiredModal.js","App.js","services/useOPMService.js","noAccess.js","indexApp.js","index.js"],"names":["module","exports","msalConfig","auth","tenant","window","DART","ENV","REACT_APP_TENANT","clientId","REACT_APP_CLIENTID","redirectUri","REACT_APP_REDIRECTURI","authority","cache","cacheLocation","REACT_APP_CACHELOCATION","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","message","containsPii","LogLevel","Error","console","error","Info","info","Verbose","debug","Warning","warn","queryClient","QueryClient","defaultOptions","queries","refetchOnMount","refetchOnWindowFocus","refetchOnReconnect","staleTime","cacheTime","href","location","localDebug","indexOf","appInsightUIMapping","None","Critical","Debug","Information","Trace","page","Annotation","Article","Catalog","Collection","DCSService","Folio","FolioSectionTOC","FolioArticle","GuidebookSectionTOC","GuidebookArticle","Header","Link","PageContext","Publication","Search","History","JournalArticle","RPService","Highlight","Bookmark","Login","ai","reactPlugin","ReactPlugin","Boolean","AppInsight","InstrumentationKey","globalHistory","EnableTracking","ApplicationInsights","config","instrumentationKey","extensions","extensionConfig","identifier","history","loggingLevelTelemetry","disableFetchTracking","disableTelemetry","enableAutoRouteTracking","loadAppInsights","appInsights","addTelemetryInitializer","envelope","tags","data","timeNow","Date","now","toString","logs","timeDistance","date1","date2","distance","Math","abs","hours","floor","minutes","seconds","slice","trackEvent","results","trackPageView","trackPageViewPerformance","trackException","trackTrace","trackMetric","trackPageVisitTime","startTrackPage","stopTrackPage","name","url","startTrackEvent","stopTrackEvent","flush","addTelemetryInitializerTags","key","component","_len","arguments","length","properties","Array","_key","details","severityLevel","SeverityLevel","log","warning","_properties$","_properties$2","_properties$3","_len2","_key2","eventId","undefined","critical","event","AppInsightsContext","createContext","AppInsightsContextProvider","_ref","children","store","React","createElement","Provider","value","LoadingContext","useLoadingContext","useContext","LoadingContextProvider","isLoading","setIsLoading","useState","MEMBERFIRM_CONSTANTS","KNOWLEDGE_DOMAIN","KNOWLEDGE_DOMAIN_ID","FOLIO_SUBJECT_ACCOUNT","PUBLICATIONTYPE_IDS","CONTENT_TYPE_IDS","section","sectionWithIntro","article","externalArticle","template","ARTICLE_TYPES","FOLIO_SUBJECT_NON_ACCOUNT","PAGE_CONTROLLER_TYPE","deloitteCommunications","folio","journals","manual","professionalNews","roadmap","standards","standard","guidance","collection","FOLIO_SECTION_TYPE","alerts","qna","templates","other","related","disclosures","modelfs","dww","gra","investment","objectives","embedded","examples","questionsandanswers","scenarios","omniatemplates","rptemplates","PUBTYPES_CATALOG_PAGE","TEMPLATE_REPOSITORY_PUBLICATION_TYPES","REGEX_PATTERN","doubleQuoted","wildcards","homePageUrl","DoubleForwardSlash","error4xxSeries","error5xxSeries","anyDigit","ARTICLE_DOWNLOAD","RESEARCH_ASSISTANT_FILTERS","RESEARCH_ASSISTANT","RESEARCH_ASSISTANT_SOURCE_TYPES","APPLICATION_INSIGHTS_CONSTANTS","SESSION_STORAGE_CONSTANTS","LOCAL_STORAGE_CONSTANTS","RESEARCH_ASSISTANT_ERROR_TYPES","COUNTRY_LANGUAGE","MemberFirmID","REVISION_HISTORY","LINK_REDIRECTION_CONSTANTS","Link_Redirection_URL_Identifier","ErrorCodes","Default","LoginPage","Common","Guidebook","Home","Journal","Loading","Manual","RelatedContent","ResearchBoard","Settings","Toolbar","Context","Helpers","Services","ErrorTypes","ErrorMessages","opmInfo","tokenAquisitionError","userRoles","retrieveWholePublicationDownload","downloadWord","downloadBinary","downloadZip","convertWord","shareModalCopyText","collectionData","searchResultsCollection","catalogData","recentHistoryData","catalogSections","folioSections","linkTopic","header","industryList","contentArticle","recentlyViewed","guidebookArticle","publicationSearch","guidebookSection","guidebookPublication","homeScreen","annotationTOC","bookmarkTOC","journalPublication","recentlyViewedUpdate","journalSearch","ManualPublication","manualArticle","manualSearch","highlightOverlay","pdfHandler","PublicationListing","tocItem","settings","resource","footer","annotationFetch","annotationCreate","annnotationUpdate","annotationDelete","tocSectionTitle","bookmarkFetch","bookmarkCreate","bookmarkDelete","categoryFetch","categoryCreate","categoryDelete","categoryUpdate","jumplinks","searchLinkResolve","folioLinkResolve","searchLinkResolve_Folio","tocLinkResolve","linkResolver","recentlyViewedFetch","fetchHandleError","contentErrorMessage","ResearchAssisantErrorMessages","UPSEndPoint","REACT_APP_UPS_ENDPOINT_API","DCSEndPoint","REACT_APP_DCS_ENDPOINT_API","INK_CONTENT_PRERELEASE","RP_REACT_INK_CONTENT_PRERELEASE","RP_REACT_APP_PREVIEW","AbortController","cleanEndpoint","endpoint","replace","defaultHeaders","defaultheaders","Headers","append","origin","defaultPostRequestOptions","urlOverride","contextOverride","CONTEXTHELPERS","generateContext","contextPostRequestOptions","JSON","stringify","context","contextAsJSONOverride","method","headers","mode","body","signal","contextPutRequestOptions","contextDeleteRequestOptions","contextGetRequestOptions","async","getTokenFromMsal","REACT_APP_ACCESSTOKEN","msalInstance","accounts","getAllAccounts","acquireTokenSilent","scopes","account","accessToken","InteractionRequiredAuthError","acquireTokenPopup","fetchAndHandleErrors","requestOptions","token","fetch","then","response","status","UTILITIESHELPER","isHistoryRequest","setLocalStorage","ok","text","Promise","reject","json","result","catch","fetchDefaultAndHandleErrors","getResponseObject","fileName","blob","URL","createObjectURL","a","document","download","appendChild","click","remove","RETRIEVALSERVICES","addToCache","requestUrl","checkCache","checkWhitelistForUser","email","htmlPackage","toLowerCase","HtmlBodyHashCode","generateHash","HtmlBody","FileName","createAnnotation","request","createBookmark","createCategory","createComment","comment","createHighlight","highlight","createOrUpdateRecentSearch","model","deleteAnnotation","deleteBookmark","deleteCategory","getBookmarksForUser","userId","getCatagories","preference","getOpmInfoByEmail","getRecentHistory","getRecentHistoryDashbaord","getRecentSearches","requestFile","fileUri","fileInfo","requestPdfLoading","requestZip","fileList","zipPackage","articleHtml","fileRequests","articleTitle","content","resolveTopic","target","topicId","pageHashTag","pageRequestURL","pageSelectedPublicationGUID","pageSelectedContentItemGUID","retreiveCollectionSearchLimit","retreiveSettings","retrieveAllContentsGuidebookPublication","pageSelectedSpineTargetPublicationGUID","PageSelectedPublicationTitle","PageSelectedContentItemTitle","pageSearchPhrase","pageSelectedSpineTargetPublicationGUIDList","retrieveAllContentsManual","selectedSpinePubGuidList","retrieveAnnotation","retrieveBookmark","retrieveCatalog","retrieveCategories","retrieveCollection","retrieveContentArticle","retrieveEmbedded","retrieveFooter","retrieveFrameworkList","memberFirm","language","knowledgeDomain","retrieveGuidebook","retrieveGuidebookPublication","retrieveGuidebookSection","currentGuidebookSection","guidebookSectionRequest","pageContext","contextAsJSON","guidebookSectionPostOptions","retrieveHeader","retrieveIndustryList","retrieveJournal","retrieveJournalPublication","retrieveLanding","retrieveManual","retrieveManualPublication","responseStatus","fetchAndHandleErrorsWithStatusCode","retrieveManualPublicationVersions","retrieveResource","retrieveSearchResults","searchPhrase","searchParams","retrieveSearchResultsCatalog","pubtype","updateAnnotation","annotation_guid","updateCategory","category_guid","updateRecentHistory","updateRecentSearches","UPSUserID","isStringNullorEmpty","localStorage","getItem","debugUserId","retrieveResearchAssistantCollection","pageCollectionName","pageControllerType","pageFileName","pageType","resolveTargetLink","targetElement","publicationId","opmMF","urlMemberFirm","country_code","opm_country_code","knowledge_domain","default_language","effective_date","publication_Id","url_memberfirm","requestBody","retrieveAllContentsStandardPublication","retrieveCatalogFolio","RESERVED_FOOTNOTE_CALLOUT_VALUES","extractRelationFromResources","targetId","resources","relationArray","l","id","push","subItems","isReservedFootnoteCalloutValue","createMarkupFootnote","label","getNextValueKey","generator","reservedValues","valid","next","encodeKeyString","input","split","map","x","charCodeAt","join","getContentHtmlDocument","safeContent","DOMParser","parseFromString","parseFootnoteCallouts","htmlDoc","from","getElementsByTagName","el","getAttribute","extractFootnoteRTTCallouts","_item","calloutArray","item","cloneDeep","filter","updateFootnoteContent","htmlContent","footnoteArray","numberGenerator","ignoreDiv","xmlDoc","fnElements","fn","forEach","labelForEncoding","footnoteArrayElementCount","e","idOfRTT","find","obj","footnote","innerHTML","number","outerHTML","findElementInArticleArea","hashTag","foundElementInArticleArea","articleContainer","querySelector","hashlessTag","startsWith","toLocaleUpperCase","toLocaleLowerCase","getSearchresultUrl","flattenedToc","tocObject","_ref14","publicationObjectId","encodeURIComponent","fullTitle","ARTICLEHELPERS","createMarkup","content_type","containsBinary","format","binaryLocation","pub_additional_text","contentItem","first","objective","title","why","createMarkupProcessFlow","question","answer","createMarkupQuestionAndAnswer","_item$content6","_item$content7","_item$content7$sub_to","_item$content8","i","extractSubSubTopics","subtopic","includes","sub_topics","elementID","__html","createTitleMarkupFootnote","titleFnArray","isreserved","nextVal","regex","RegExp","removeLargeSpacesFromRichText","extractAnnotationOrAssociatedContent","publication","publicationContent","relations","j","currentRelation","table","rows","k","currentRow","columns","values","extractFootnotes","_item$content4","_item$content5","rich_text_title","IsTextHavingFnTag","subItem","idx","sourceArr","extractedFootnotes","processedItem","flat","extractFootnoteCallouts","_item$content","_item$content2","_item$content3","extractFootnotesFromRTT","footnoteNumberGenerator","iterationCount","Infinity","getBreadcrumbData","elBreadcrumbdata","querySelectorAll","arrBreadCrumb","scrollToHashTag","elemToScrollTo","decodeURI","hashes","y","getBoundingClientRect","top","scrollY","scroll","behavior","block","getpubIdsToQuery","pubData","isSpinePage","pubIdsToQuery","guideBook","Content","guidebookSections","sectionContainsPublications","sectionFriendlyPath","idsFromToc","tocHash","_ref2","test","_ref3","matches","match","_ref4","pop","_ref5","_ref6","pubItem","guids","spinePublicationId","_ref7","Set","getSessionStorage","mapSearchResultsToSelectedToc","isJournalPage","getMFLabel","toc","getGuidebookSectionData","currentsearchPhrase","pageSelectedSection","_ref8","_ref9","_ref10","_ref11","publicationContextId","_ref12","_ref13","isObjectNullorEmpty","publicationTitle","ti","navTitle","nav_title","branchSegments","branch","guid","tocobject","_ref15","_ref16","ex","getTocSectionTitle","crumb","extendedResults","isArrayNullorEmpty","getHighlightedText","highlights","_highlights$","propertyName","highlightedText","getFilterPubData","publication_type","isSpinePageController","pageController","dynamicSort","property","b","dynamicSortDesc","getFootnoteDetailsFromRichText","contentItemRichTextTitle","footnoteRttArray","fnNumberGenerator","sessionStorage","getLocalStorage","setItem","getAccessToken","generateRandomNumber","array","Uint32Array","crypto","getRandomValues","isNullOrUndefined","stickyBarResizing","stickyBar","tocHeader","cfLeft","classList","contains","articleWidthCalc","outerWidth","style","width","tocWidthCalc","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","formatDate","date","contextLanguage","formatSpecifier","formattedDate","getFullYear","getMonth","getDate","toLocaleDateString","year","month","day","getContentItemTitle","skipFootNote","contentItemTitle","itemReferenceID","reference_id","itemParaNumber","para_number","regExpressionToTestIfIncludeFnTag","fnMarkup","fnEl","parentNode","trim","getContentItemNavTitle","getLocalStorageJSON","parse","setLocalStorageJSON","annotationDisplayStatus","annotationCookie","highlightsDisplayStatus","highlightsCookie","commentsDisplayStatus","commentsCookie","embeddedDisplayStatus","embeddedCookie","sectionExpandDisplayStatus","sectionExpandCookie","getAuthToken","setSessionStorage","removeSessionStorage","removeItem","generateFriendlyDate","_date","_date2","_date3","getBaseDomain","baseDomain","protocol","hostname","port","setMemberFirmLocalStorage","getMemberFirmLocalStorage","setDarkModePrefLocalStorage","bool","getDarkModePrefLocalStorage","getCurrentLanguageLocalStorage","urlLanguage","ssName","abbreviation","languageCodeFE","lsName","getIsDebugMTLocalStorage","generateUUID","randomUUID","encodeSpecialCharacters","decodeSpecialCharacters","titleCase","s","letter","toUpperCase","capitalize","getIntFromStr","stringVal","sortArray","isArray","sort","getContentItemContentAsFlat","list","getContentItemSubItem","sortAlphaNumericArray","localeCompare","numeric","sensitivity","removeNewLineCharacter","removeNonBreakingSpaces","truncateText","substring","removeSpecialCharacterFromFileName","restrictLengthOfFileName","sortAlphaCaseInsensitive","checkStringIsHtml","str","handleSpaceBarOnSearchSubmit","startPos","currentTarget","selectionStart","startString","endString","selectionEnd","isValidDate","d","isNaN","replaceGlobalWithDTTFromPath","pathname","pathArray","sortArrayDesc","getDCSAccessToken","REACT_APP_DCS_CLIENT_ACCESSTOKEN","_JSON$parse","msalkeys","msalaccessToken","_JSON$parse2","accessTokenKey","secret","removeLocalStorage","checkIsProdSite","ReplaceSpecialCharacterInURL","removeBrackets","inputString","replaceAll","isEmptyObject","Object","keys","constructor","isValidAccessToken","replaceFootnoteWithLinkInChat","chatDetails","_chatDetails$response","_chatDetails$document","chatDetailsWithFootnote","documentSource","index","footnoteValue","extractNumber","currentFootnote","_footnote$footnote","createFootNoteHtml","setRATakeOverData","tier","researchAssistantResponse","memberfirmId","tiers","isResearchAssistantEnabledForKD","kdSettings","country","_kdSettings$filter$","_kdSettings$filter$$k","_kdSettings$filter$$k2","_kdSettings$filter$$k3","_kdSettings$filter$$k4","siteFeatures","Enabled","htmlString","utf8","TextEncoder","encode","RP_SECRET_ENCRYPTION_KEY","hashBuffer","subtle","digest","Uint8Array","padStart","removeSpecialCharacterFromUrlText","CheckIfContainsUnicodes","getLanguageListByMFandKD","_kdSettings$filter$2","_kdSettings$filter$2$","_kdSettings$filter$2$2","lang","defaultLanguage","publicationID","getMmeberFirmSettingByTlTaxonomyId","memberFirmSettings","MF_TaxonomyId","filteredItems","ReplaceSpecialCharacterInURLForShareModel","removeSpecialCharacterFromTitle","hasExcludedContentType","items","some","pluralSuffix","escapeRegExp","string","IsSearchTextPresentInNeighbors","textItems","textItem","splittedSearch","postIndex","preIndex","extractTextByIndexValue","itemIndex","textValue","mark","isPDF","splitArray","words","word","markWithWildChars","markWithOperators","markSearchPhrase","htmlSting","m","pre","post","resString","firstOccuranceSearchString","isSearchStarted","isContainsSearchString","markAll","terms","doubleQuoteRegex","doubleQuotedTermList","regexToCheckSpecialCharacter","element","lastIndexOf","markSearchTermsIgnoringPluralEndings","getRegex","phrase","apply","rawSearchPhrase","parsedPhrase","fromQueryString","params","URLSearchParams","get","hasSearchResults","hasResults","resultItem","_resultItem$highlight","toHumanReadable","_searchPhrase$replace","toQueryString","parseSearchPhrase","separator","pattern","operator","replaceOperator","getCollectionSearchLimitFromAppSettings","REACT_APP_COLLECTION_SEARCH_LIMIT","IsSearchPrefixWithWildcards","SanitizeSpecialCharacters","getSessionStorageJSON","setSessionStorageJSON","lc","w","String","sorter","initializeProfile","countryCode","serviceArea","SH","getMemberFirm","getFallbackMemberFirm","getMFSubs","getLastorDefaultMemberFirm","last","defaultMem","ProfileHelpers","getServiceArea","getLevel","addMFSub","subs","removeMFSub","mf","getAllMemberFirms","setLastMemberFirm","getFallbackLanguageByMemberFirm","languageSettings","getLanguageConfig","langVar","setSelectedMemberFirmTaxonomyId","memberFirmId","getSelectedMemberFirmTaxonomyId","setLastMemberFirmResearchAssistant","isSelectedMFAndOPMMemberFirmAreSame","KnowledgeDomainInSequence","cleanGUID","cleanedGuid","guidArr","cleanLocationURL","targetBaseUrl","deturmineJournalType","journalBrand","extractGUIDs","hrefValue","_targetElementGuid","isLinkCT","targetTopicGuid","targetElementGuid","urlArr","existsInsideParentClass","child","classname","hasClass","TypeError","className","isFootnoteTopLink","getClosestLinkElement","ev","Element","prototype","closest","tagName","getDynamicFolioSectionOrType","GetTargetTopicOrSpineTargetPublicationGUID","_publication$spine","spine","object_id","getNavigatableLinkFromTOC","tocUrls","findSpineTarget","targetUrl","targetUrlParts","isElementInPage","elementInPage","isFolioTargetTemplateType","CheckLinkForTL","messageCannotResolve","isResearchAssistant","alert","getDynamicFolioWithSubjectUrl","publicationUrlPart","taggedArray","subjectArray","firstSubject","matchedSubject","SearchHelpers","resolveLink","datasetPublication","isSearchResultLink","memberFirms","tlMemberFirmTaxonomyId","navigatableLink","_publication","_publication$content","memberFirmSettingObjectByTL","tlMemberFirm","reference","isExternalCollection","nested_topic_id","potentialTargetElementGuid","_publication2","_publication$content$","_publication$content2","_publication$content$2","_publication$content$3","_publication$content3","_publication3","_publication3$spine","_publication4","_publication4$content","_publication6","_publication6$content","_publication5","_publication5$spine","_publication7","_publication7$content","_publication8","_publication8$spine","_publication9","_publication9$content","errormessage","topicUrlPart","_publication$spine2","_publication$spine3","_publication$spine4","_publication$spine5","targetMemberFirm","target_country_code","targetKnowledgeDomain","target_knowledge_domain","targetLanguage","target_language","journal_brand","current_date","dynamicFolioSectionOrType","taxonomyname","err","LINKHELPERS","getDataSource","_el$dataset","dataset","scope","getGUID","locationUrl","arry","getNavigatableLink","_el$dataset2","messageCannotOpenTab","popupContent","prefixLocation","preventDefault","shiftKey","getTocUrls","_document$querySelect","linksNodeList","call","link","isLocalToThisPageLink","resolveLandingPageLink","linkTarget","resolveMemberFirmUrl","baseUrl","currentLocation","urlArray","newLink","resolveMemberFirmUrlBackToHome","resolveSearchLink","catalogCollection","_item$document18","publicationOnly","publicationType","urlPrefix","_item$document21","_item$document22","publicationJournalBrand","_item$document23","_item$document24","_item$document25","_item$document26","_item$document27","publicationNavTitle","_item$document28","_item$document29","_item$document30","_item$document19","_item$document20","folioSection","_get","_get$filter$","_get2","_get2$filter$","dynamicFolioUrl","taxonomyAuditWorkflowAreaNonAccountitems","taxonomyAuditWorkflowAreaAccountitems","auditWorkflowNonAccount","auditWorkflowAccount","publicationAuditWorkflowNonAccount","publicationAuditWorkflowAccount","resolveCollectionPageSearchLink","_item$document","_item$document8","_item$document9","_item$document10","_item$document11","_item$document12","_item$document13","_item$document14","_item$document15","_item$document16","_item$document17","_item$document2","_item$document3","_item$document4","_item$document5","_item$document6","_item$document7","publicationAlertsUrlPart","sanitizeUrl","TocUrlContainsText","searchText","getTargetKnowledgeDomain","_publication$metadata","_publication$metadata2","_publication$metadata3","currentKnowledgeDomain","metadata","dynamicTierArray","_publication$metadata4","_publication$metadata5","resolveRAFormsAndTemplatesLink","setLocalStorageResearchAssistant","removeLocalStorageWithValue","kd","finalTier","removeWithValueResearchAssistant","generateContextPosition","position","defaultValue","searchResults","_url","offSet","userToken","uid","resolverUserId","globalPersonUid","urlHash","urlQuestion","queryParams","compareVersion","versionCompare","pageControllerTypeOrSelectedSection","allParams","extractQueryParameterValues","languageDebugMT","fallbackLanguage","sessionValue","TierHelpers","hasOwnProperty","mfValue","getTier","industry","IndustryHelpers","getIndustry","pageSelectedPublicationTitle","pageSelectedContentItemTitle","version","versionBase","pageBaseURL","pageSearchParameters","pageSearchResponse","getLanguageByMemberFirm","user","getAccountID","getknowledgeDomainId","generateFolioTitleFromFilename","folioTitle","getFallbackUrl","parentLevel","includeDomain","fallBackUrl","whereAreWe","composedUrl","sanitizedUrl","LinkHelpers","getNewLanguageUrl","newLanguage","isSameLanguage","previousLanguage","currentLanguage","resolveMemberFirmPath","contextPath","targetKD","getUPSQuerySpecBaseModel","opm_user_identifier","member_firm_id","knowledge_domain_id","getTimezoneOffset","sortCategories","categories","latestUsedCategoryGuid","findIndex","selectedcategory","splice","getGUIDFromContext","getknowledgeDomain","knowledgeDomainId","getMemberFirmTaxonomyId","getMemberFirmWithTaxonomyId","getTierIds","getIndustryIds","useFetchWithMsal","instance","useMsal","setError","process","handleResponse","handleSuccess","handleNoContent","handleClientError","handleServerError","resolve","apiCall","useCallback","customheaders","accesstoken","options","responseData","accesstokennotavailable","useUserProfileService","getUserProfileInfo","getCountryKDSettings","usePageContext","usePageContextLabels","sitesLabels","debugLabelsAndMT","setSitesLabelsLoaded","region","useEffect","getLabel","fallback","ignoreMF","memberFirmOverride","sourceCode","usePageContextSettings","Feature","MemberFirmFeature","isMemberFirmFeatureEnabled","featureName","_currentMemberFirm","_currentMemberFirm$0$","userMemberFirm","StorageHelpers","currentMemberFirm","UserFeatures","f","isAnnotationsEnabled","isBookmarksEnabled","isCompareEnabled","compareConfigEnabled","isDashboardEnabled","isRecentlyViewedEnabled","isRestrictedAccessMemberfirm","RP_REACT_APP_RESTRICTACCESSBYMEMBERFIRM","isRecentSearchEnabled","getMemberFirmSettings","defaultMemberFirm","PageContextProvider","_location$pathname","useLocation","memberFirmParam","languageParam","knowledgeDomainParam","pageControllerTypeParam","pageControllerTypeCollection","useParams","search","currentSearch","compareVersionParam","setSearchPhrase","pageURLWhereSearchInnitiated","setPageURLWhereSearchInnitiated","setContext","contextMemberFirm","setContextMemberFirm","taxonomyMemberFirmContext","setTaxonomyMemberFirmContext","isCatalogPage","endsWith","isSearchPage","isFolioPage","isJournalListing","isFolioSectionlisting","isRelatedLinksPage","isWormholeActive","setPreviousLanguage","footerLinks","setFooterLinks","backChannel","BroadcastChannel","annotationPanelOpen","setAnnotationPanelOpen","annotateTerms","setAnnotateTerms","hasPeers","setHasPeers","categoryOn","setCategoryOn","downloadPanelOpen","setDownloadPanelOpen","bookmarkOpen","setBookmarkOpen","setMemberFirms","pageDescription","setPageDescription","pageTitle","setPageTitle","peerTestCompleted","setPeerTestCompleted","selectedCatalogs","setSelectedCatalogs","selectedLanguageObject","setSelectedLanguageObject","setSettings","sitesLabelsLoaded","setSitesLabels","synonyms","setSynonyms","isMemberFirmsLoaded","setIsMemberFirmsLoaded","setTier","currentTier","setCurrentTier","hasGottenCorrectTierValue","setHasGottenCorrectTierValue","tierVal","setIndustry","currentIndustry","setCurrentIndustry","hasVerifiedIndustry","setHasVerifiedIndustry","industryVal","allIndustry","setAllIndustry","allTier","setAllTier","isNavigatedFromCollectionSearch","setIsNavigatedFromCollectionSearch","setRegion","notification","setNotification","type","display","isResearchAssistantEnabled","setIsResearchAssistantEnabled","countryKDSettings","setCountryKDSettings","isUserProfileLoaded","setUserProfileLoaded","isCountryKDSettingsLoaded","setCountryKDSettingsLoaded","researchAssistantMemeberfirms","setResearchAssistantMemberfirms","userCountry","setUserCountry","selectedLanguage","setSelectedLanguage","userProfileInfo","CanSeeRA","Country","getUserProfileCanSeeRA","onmessage","postMessage","setTimeout","close","settingData","taxonomyMemberFirm","mfIdx","_taxonomyMemberFirm$m","publicationName","_country$","_memberfirmSettings$f","_memberfirmSettings$f2","_memberfirmSettings$f3","memberfirmSettings","member_firm","filteredData","filteredItem","domain","countrieslist","TaxonomyMemberfirmValue","taxonomyArray","fetchSettings","_currentMF$memberFirm","currentMF","res","labels","retreiveResourceLabels","links","retreiveResourceFooter","useLayoutEffect","defaultVal","setCorrectVal","sessionVal","getMemberFirmID","getMemberFirmIDs","_contextMemberFirm$me6","_contextMemberFirm$me7","_contextMemberFirm$me8","_contextMemberFirm$me9","getMemberFirmLanguages","_contextMemberFirm$me","_contextMemberFirm$me2","_contextMemberFirm$me3","_contextMemberFirm$me4","getMemberFirmDefaultLanguage","_contextMemberFirm$me5","getItemsArray","node","agg","getSelectedTocNode","root","isSelected","selectedNode","getSelectedTocNodeByContext","contextHash","flattenedHashes","getFlatTocArray","_content$tableOfConte","tableOfContents","tocContent","_value$tableOfContent","buildTocHashes","hash","generateHashes","nodes","buildFolioTocHashes","basePath","getTocBranchFromHash","selectedGuid","_flatNodeArray$find","flatNodeArray","getFlatNodeArray","unshift","scrollParentToChild","parent","parentRect","parentViewableArea","height","clientHeight","clientWidth","childRect","bottom","scrollTop","scrollBot","TocContext","useTocContext","TocContextProvider","props","setToc","hasSelectedTocItems","setHasSelectedTocItems","tocAnnotations","setTocAnnotations","tocIconBookmark","setTocIconBookmark","setFlattenedToc","pubInfo","setPubInfo","selectedItemTOC","setSelectedItemTOC","isLandingPageSelected","setIsLandingPageSelected","tocItemTogglesStatus","setTocItemTogglesStatus","TocHelpers","_selectedItemTOC$item","matchedTocItem","GuidebookTocContext","useGuidebookTocContext","GuidebookTocContextProvider","navigate","useNavigate","guidebookSectionsLoaded","setGuidebookSectionsLoaded","setGuidebookPublication","setGuidebookSections","guidebookTocLoaded","setGuidebookTocLoaded","guidebookToc","setGuidebookToc","setGuidebookArticle","allSectionsLoadedAndHaveToc","sectionItem","hasBeenFetched","atLeastOneSectionHasToc","setGuidebookSectionData","newSectionData","oldSection","tocs","TOCHELPERS","SearchResultContext","useSearchResultContext","SearchResultContextProvider","setSearchResults","filteredSearchResults","setFilteredSearchResults","activeFilters","setActiveFilters","areSearchResultsLoading","setAreSearchResultsLoading","searchTimeStamp","setSearchTimeStamp","tocControl","setTocControl","showCollectionSearchLimitNotification","setShowCollectionSearchLimitNotification","collectionSearchLimit","setCollectionSearchLimit","allButtonsOn","setAllButtonsOn","allButtonText","setAllButtonText","isTriggerAllOnOff","setIsTriggerAllOnOff","isShowAllOnOffButton","setIsShowAllOnOffButton","latestRetrieveSearchResultsTimeStampRef","useRef","searchProps","eventType","searchLocation","jobTitle","rpMemberFirm","query","tmeplaterepositories","tempTocControl","indexA","filterItem","filterAppliedStateOn","UpdateTocControlByActiveFilter","resultArray","folioSubjectItemTOC","visible","resultCount","searchResult","_result$document","tempIndex","tocIndex","parseInt","hasVisibleTocs","ResearchAssistantContext","useResearchAssistantContext","ACTIONS","initialState","tierSelected","selectedInfoIndex","errorType","hasError","reducer","state","action","payload","RAContextProvider","dispatch","useReducer","tosAgreed","setTosAgreed","RA_TOSDESC_VERSION","HandleError","errorHeading","errorMessage","ErrorHandler","ShowIf","condition","ReadingModeContext","useReadingModeContext","ReadingModeContextProvider","isReadingMode","setIsReadingMode","val","isTrue","delete","cx","data-testid","viewBox","xmlns","fill","strokeWidth","strokeLinecap","cy","r","LayoutChildren","PageTitle","Fragment","HTMLContent","ReactHtmlParser","ThemeContext","useThemeContext","ThemeContextProvider","_routeMatchInfo$param","hasDarkModePreference","setHasDarkModePreference","routeMatchInfo","useMatch","researchAssistantRouteMatch","shouldPreventDarkMode","isDarkMode","documentElement","theme","Footer","isFooterLinksAnArray","createMarkupLink","_link$linkInternal","linkInternal","BinaryContent","xss","Url","linkText","linkExternal","linkSanitized","Layout","includesTitleRow","searchParam","defaultProps","DO_NOT_LOGIN","PrivateRoute","Navigate","to","ArticleContext","useArticleContext","ArticleContextProvider","isArticle","setIsArticle","setSearchText","selectedFootnotePopup","setSelectedFootnotePopup","footNotesContentRef","expandedSections","setExpandedSections","pdfPage","setPdfPage","isArticleDeleted","setIsArticleDeleted","articleVersion","setArticleVersion","articleTags","setArticleTags","getIsSectionExpanded","sectionId","setOpenMultipleExpandedSections","sectionIds","prevExpandedSections","newExpandedSections","removeExpandedSectionKey","uuid","AnnotationsContext","useUserPreferencesContext","annotations","isPanelVisible","isModalVisible","tempAnnotation","bookmarks","recentHistory","recentSearch","categoryList","book","cat","ann","annotationAfterUpdatess","annot","sidePanelEdit","annotationAfterDelete","isSidePanelDelete","deleteId","annotationAfterDeletes","bookmarksList","bookmark_guid","bookmarkAfterDelete","bookmarkAfterbulkDelete","historyAfterCreate","historyAfterLoad","historyAfterUpdate","historyAfterDelete","searchAfterCreate","searchAfterUpdate","searchAfterDelete","rSearch","AnnotationsContextProvider","selectedAnnotation","setSelectedAnnotation","selectedId","setSelectedId","isDropDownCategoryOpen","setIsDropDownCategoryOpen","viewedAnnotation","setViewedAnnotation","viewClickedAnnotation","setViewClickedAnnotation","viewedBookmark","setViewedBookmark","ANNSERVICES","query_spec_base_model","fetchAnnotations","timezone_offset","guidArray","BookmarkService","fetchBookmarkDashboard","fetchBookmarks","reference_identifier","page_url","deleteBookmarks","AnnotationsDeletedArticlesModal","bookmarkPage","DeleteModalRef","deleteStarted","setDeleteStarted","deleteProgress","setDeleteProgress","deleteProgressChange","setDeleteProgressChange","deletedCount","setDeletedCount","deletedAnnotations","setDeletedAnnotations","shouldShowDeleteModal","setShouldShowDeleteModal","shouldShowOverlay","setShouldShowOverlay","deletedAnnotationsCount","setDeletedAnnotationsCount","viewCount","deleteCount","deletedAnnot","ele","prev","setDialogClosed","closeModal","overflow","round","ref","src","alt","onClick","align","counter","singledelete","annId","bookDelete","annDelete","deleteSingleAnnotation","ProgressBar","completed","bgColor","WormholeNotification","annState","_annState$bookmarks","bookmarktoDelete","is_filtered","RecentSearches","handleClick","recentHistoryList","globalRecentSearches","styling","mem","memberfirm","boxShadow","maxWidth","textAlign","background","marginTop","search_phrase","RecentSearchClickHandler","searchphrase","textOverflow","whiteSpace","SCS_KEYS","SCS_FALLBACKS","getFallback","foundItem","CollectionSearchbar","placeholder","classNameForm","autocomplete","parentOnTrigger","parentOnSubmit","showRecentSearches","calledFrom","setSearchTrigger","showRecentHistory","setShowRecentHistory","wildcardsPrefixSearchLimitationNotification","showRecentSearch","RecentSearchdata","recentSearchList","recentSearchData","onSubmit","_searchPhrase","componentName","parsedSearchPhrase","qs","htmlFor","onChange","autoComplete","onKeyDown","onFocus","handleFocus","current","dispatchEvent","Event","cancelable","bubbles","setRecentSearchesData","_recentHistory","_recentHistoryList","RecentViewedService","fetchHistory","recentSearchUserPreference","updateHistoryObject","recentViewHistory","relative_url","created_date","currentHistoryObj","recentlyViewCount","REACT_APP_RECENTLY_VIEWED_LIMIT","parseData","_parseData$memberFirm","previosKdList","currentData","fetchHistoryDashboard","request_count","fetchCatalogHistory","resultLimit","RecentlyViewedHelper","generateRecentHistoryLinks","PublicationGUID","PublicationType","linkAltText","decodeURIComponent","linkDocs","setRecentHistoryLinks","recentdata","CatalogCollection","SinglePdfDownload","file","sanitizedFileUri","PDF","uri","fileTitle","composedTitle","numPages","setNumPages","pageNumber","setPageNumber","pageWidth","setPageWidth","setTextItems","pdfDoc","setPdfDoc","composedUri","setComposedUri","blobUri","setBlobUri","isPDFRendered","setIsPDFRendered","inputRef","handleResize","entries","entry","contentRect","loadPdf","base64String","reader","FileReader","readAsDataURL","onloadend","_base64String","_base64String2","substr","RO","ResizeObserver","observe","disconnect","onDocumentLoadSuccess","loadedPdfDoc","getPage","texts","getTextContent","fetchPageContent","onNavigableItemClick","scrollIntoView","inline","onKeyboardUp","keyCode","max","min","stopPropagation","addEventListener","removeEventListener","textRenderer","marked","Key","Document","externalLinkTarget","renderMode","onLoadSuccess","onItemClick","Page","renderAnnotationLayer","customTextRenderer","onGetTextSuccess","getTextSuccess","getTextWithSearchHighlight","markup","_htmlContent","getIconSrc","_format","File","binaryItemGUID","displayName","description","templateNote","hasSubItemsOrSiblings","shouldIndent","isDownloadPdfView","displayDownload","pdfProps","filename","dateValue","sanitizedDownloadLink","ListItem","ViewAll","TriggerEl","getSearchWord","searchValue","showContainerValue","handleOutsideClick","tabIndex","preVal","blur","onKeyPress","focus","autoCapitalize","autoCorrect","spellCheck","aria-autocomplete","CollectionDropdown","setValue","isShowContainer","setIsShowContainer","OptionsList","filteredList","option","onKeyboardUpAndDown","itemList","addFocusStyleSheet","add","dropdownListContainer","isShow","useDCSService","KnowledgeDomain","SearchEndPoint","REACT_APP_SEARCH_ENDPOINT_API","mounted","raErrorHandler","generateQuerySpec","result_limit","isTaxonomy","knowledgeDomainID","audit_workflow_area_account","audit_workflow_area_nonaccount","pageDynamicQuery","pageDynamicCategory","languages","getQueryKey","querySpec","keyprefix","queryKey","getCatalogSections","requestbody","collectionType","dataFormated","formatLink","Id","LinkUrl","alt_title","getFolioSection","retrieveChatBotSearchResult","researchAssistantUserFeedback","retrievePublicationForTopic","getDelCummAndProfNewsCollectionSections","collectionName","formatDelCummAndProfNewsCollectionLink","collectionObject","alllinkItems","allcollectionsItems","allLinksItems","_data$flatMap","flatMap","journal","retrieveFolioTaxonomyLists","pubLandingUrl","taxonomyType","taxonomyTypeId","retrieveFolioLists","useCatalogSectionsQuery","useQuery","linksFromService","retrieveLinks","CatalogBox","_catalogBoxLinks4","currentPosition","friendlyUrl","taxonomylists","icon","altText","viewAllLabel","viewAllText","viewAllLink","listTitle","maxItems","catalogBoxLinks","sanitizedViewAllLink","taxonomylistitem","shouldShowLinks","_catalogBoxLinks","_catalogBoxLinks2","_catalogBoxLinks3","listItems","CatalogCards","catalogs","renderCatalogBox","currentCollection","column","useSearchService","publicationTypes","knowledge_domain_from_url","publication_id","getSearchParamsQuerySpec","searchQuerySpec","pubIDs","getCatalogSearchResponses","catalogSection","getCollectionSearchResponses","searchquerySpec","getPublicationSearchResponses","useCatalogSearchQuery","catalogSearchPhrase","isSearchSubmit","searchService","normalizedCatalogSearchPhrase","Manuals","Standards","Journals","ExternalNews","all","Folios","retrieveCatalogSearchResults","enabled","ChatBotCatalogSearchResultItem","viewAllResultsUrl","isFormatBinary","documentformatarray","getDocumentTitle","documenttitle","AskFollowUpButton","handleAskFollowUpButton","GotoIcon","shapeRendering","textRendering","imageRendering","fillRule","clipRule","cursor","DocumentSource","isPopupFootnote","uniqueIdentifier","pubGuid","open","color","fontSize","fontWeight","pointerEvents","data-footnote-num","getIcons","useOutsideClick","callback","handleClickOutside","RedirectModal","shouldShowRedirectModal","setShouldShowRedirectModal","redirectURL","messageRedirectTL","redirectModalRef","win","openInNewTab","ContentItem","_props$subItem","_props$subItem$conten","_props$subItem2","_props$subItem2$conte","setmarkup","isPdf","createTitle","propsTypes","typeName","Copyright","defaultCopyright","htmlText","Figure","html","getDecoratorClass","getComponentInfo","contentTypeId","decoratorInfo","isInPilot","variant","varian","isStructuredArticle","isFigureOrSidebar","isSection","isIndexedComponent","isFile","StructuredSection","structuredSectionTitle","titleRendered","isSectionExpanded","isIndexed","isDefaultExpanded","sections","renderTitle","jumpClass","data-expandable-uuid","StructuredPanel","parentTitle","isEmbedded","PropTypes","Annotations","firstUpdate","cookieAnnotationDisplay","override","setOpen","associations","annotation_links","annotation","anindex","annotationText","lead_in_text","link_target","link_text","AssociatedContent","associated_content","association","RelatedLinks","rellinks","related_links","OBJECT_TYPES","RPGuidanceContentBody","PolicyContentBody","RequirementsContentBody","RenderAnnotations","RenderRelatedLinks","RenderAssociatedContent","RenderItemContent","_props$item","object_type","RenderStructuredSections","_props$item2","_panels","panels","_props$item3","_props$item3$subItems","_props$item4","_props$item4$subItems","figures","clone","cloneNode","mainDiv","imageDiv","image","div","para","innerText","replaceWith","display_name","display_name_desc","template_note","binary_length","display_download","ARTICLEHELPER","indexTitle","tmpFragment","createDocumentFragment","tmpMountPoint","tmpTitle","firstContentElement","childNodes","firstChild","prepend","StructuredArticleTitleButton","renderingCount","structuredArticleTitle","StructuredArticle","detailsFromMatchingFN","jumpLinkClass","EmbeddedModeContext","useEmbeddedModeContext","EmbeddedModeContextProvider","isEmbeddedMode","setIsEmbeddedMode","IconX","NavigableSearchbar","isExpanded","isFixed","showSearchLink","onClose","triggerUpdateRecentSearches","submitFromRecentSearch","disableRecentSearch","isActive","setIsActive","localValue","setLocalValue","searchTermIndex","setSearchTermIndex","searchTerms","setSearchTerms","hasChanged","setHasChanged","isProdSite","setHeight","handleClickOutsideSearchInput","handlePrevNext","direction","offsetParent","expandParentSections","resultsContainer","moveTo","sectionsToExpand","currentEl","hasAttribute","expandableUuid","parentElement","offset","scrollTo","left","_previousRecentSearch","_previousRecentSearch2","updatedRecentSearchList","previousRecentSearch","recentsearch","existingIndex","REACT_APP_RECENTLY_SEARCH_LIMIT","allRecentSearches","_document","filteredResultCount","getElementsByClassName","_document$getElements","_document$getElements2","previewHeight","heightOfCrum","searchIconStyling","imageStyling","margin","inputSearchboxStyling","padding","updatedSearchURL","disabled","handleClose","prevVal","searchSelected","_pubInfo$title","getTitle","returnUrl","ArticleSearch","ArticleTag","classNames","tagRef","isOpen","setIsOpen","iconClass","toggleTag","marginRight","getFrameWork","_articleTags$tier","addTiers","tierElement","gaasItems","assuranceItems","_articleTags$industry","_articleTags$auditWor","auditWorkflowAreaAccount","WaElement","auditWorkflowAreaNonAccount","nawElement","ArticleTitle","enableArticleTag","shouldBeFixed","titleContent","setTitleContent","isSearchResult","setIsSearchResult","reactElement","setReactElement","JumpLinkMain","jumpClickHandler","data-jumplink","JumpLinkSub","Footnote","internalHref","footnoteElem","getClosestExpandableSection","elem","expandableSectionElem","sectionUUID","getAllExpandableSectionIds","scrollToSection","bodyRect","offsetCalc","Footnotes","jumplinkClickHandler","getOffsetTop","offsetTop","RenderAllContainer","_pubData$context","excludeBinaries","isScrollDisabled","pubContext","isSingleTopic","getComponentArray","componentArray","_processedItem$conten","_processedItem$conten2","_processedItem$conten3","_processedItem$conten4","_processedItem$conten5","_processedItem$conten6","_processedItem$conten7","getIsArticlePdf","pub_notices_text","scrollElementIntoView","offsetCompensation","JumpLinksList","closeToc","jumpLinks","scrollOffsetCompensation","jumpHandler","targetEl","scrollToTarget","jumpLink","createJumpLinksSubTree","createJumpLink","getChildren","rootEl","preventAddDetailsOnlyChild","childrenStructuredArticleSection","childrenStructuredArticleSubSection","childrenArticleDetailsSubtopicHeading","childrenStructuredArticleTechSpeaking","childrenDetails","nodeName","buildAndGetChildrenFromStructuredSubArticle","subtopicHeading","textContent","filteredChildren","processChildren","buildAndGetChildrenFromStructuredArticle","buildAndGetChildrenFromSubtopicHeading","parentEl","buildAndGetChildrenFromDetails","buildAndGetChildrenFromTechnicallySpeakingHeading","orderLinks","rootHtml","linksWithoutActiveLink","compareLinks","getPosition","getJumpLinks","_isGuidebook","contentSelector","containerEl","containerElStructuredArticlePanel","hasJumpLinks","tocHeadingNodeList","subTopic","setAttribute","tsSection","_subTopic$querySelect","_subTopic$querySelect2","tspSection","addClassInTechSpeakingDoc","subTopicHeadingNodeList","summaryTag","titleTag","replaceChild","detailsTag","subTopicId","subTopicAriaLabelled","addCollapsibleSectionsToSubtopics","_pubData$content","_pubData$content$","pubText","pubParsedText","c","parser","ArticleTOC","classNameContainer","tocRef","isGuidebook","setJumpLinks","containsJumpLinks","toggleToc","EmbeddedArticleBlockSubsection","_innerSubItem$content","_innerSubItem$content2","_innerSubItem$content3","_innerSubItem$content4","_innerSubItem$content5","_innerSubItem$content6","_innerSubItem$content7","subsectionOpen","toggleSubsection","isQnA","isObjective","innerSubItem","EmbeddedArticleBlockSection","EmbeddedArticleBlock","blockOpen","toggleBlock","EmbeddedArticle","guideOpen","toggleGuidance","rel","_icon","SidebarIconNextToTitle","FolioPickerContext","useFolioPickerContext","ACTION","taxonomyLists","selected","taxonomyId","folioLists","taxonomyNonAccountList","allFolio","FolioPickerContextProvider","folioDispatch","isDropdownOpen","setIsDropdownOpen","Trigger","Dropdown","ddClassNames","triggerText","triggerEl","triggerClassNames","triggerDot","containerClassNames","isFolioDropdown","sidebarHeight","controlledOpen","setControlledOpen","handleTriggerClick","newState","nextOptionItem","trigger","useMemo","triggerClasses","Panel","additionalClassNames","ScrollArea","maxHeight","styles","FolioTrigger","searchQuery","setSearchQuery","isFocused","setIsFocused","onBlur","handleBlur","FolioItem","selectedString","folioString","FolioDropdown","_folioPickerLists$ite","folioPickerLists","onSelect","setSideBarHeight","handleSelect","newList","selectedItem","moveSelectedToTop","sidePannelBody","breadCrumbHeight","offsetHeight","offsetWidth","FolioPickerDropdown","folioPickerId","selectedFolio","setSelectedFolio","_tier$context$memberF","_industry$context$mem","clearTierList","clearIndustryList","folioLabel","SidebarTocTitle","_taxonomyListItems$fo","taxonomyListItems","folioObject","getFolioId","renderFolioPickerDropdown","folioPickerListsID","_folioPickerLists","isAccountORNonAccount","FixedNavArticle","isWideMode","setIsWideMode","isJumpLinksOpen","setIsJumpLinksOpen","showInArticleTOC","removeInArticleTOC","paddingLeft","FootnotePopup","dependenciesToRecalculatePosition","footnotePopupCoords","setFootnotePopupCoords","footnoteVerticalPosition","setFootnoteVerticalPosition","isFootnotePositionedBelow","currentFootNotesText","modalDimensions","setPopupPosition","_footnoteNum","popupBounds","amountPastViewportY","innerHeight","amountPastViewportXLeft","amountPastViewportXRight","right","innerWidth","offsetXLeft","offsetXRight","bounds","handleDocumentClick","footnoteNum","handleDocumentResize","transform","footnoteToScrollTo","getElementById","HorizontalScrollbar","_document$querySelect2","isRedingMode","heightWarningNotProd","heightHeader","defaultTopSize","heightPixelsToHideImageHeader","topSizeAfterScrollHeader","scale","setScale","setTop","pixelsUserHasScrolled","calculateScrollDistance","pageYOffset","totalDocScrollLength","scrollHeight","newScrollPostion","throttledHandler","throttle","passive","horizontalContainer","transformStyle","IconWideModeTOC","Modal","modalHeader","modalBody","PrevNextArticle","_hrefs$prev","_hrefs$next","_hrefs$prev2","_hrefs$prev3","_hrefs$next2","_hrefs$next3","articleHasLoaded","hrefs","setHrefs","prevHref","nextHref","sectionNodes","selectedLinkIndex","isWithinSection","getsectionHref","_sectionNodes$previou","previousSibling","prevLink","nextLink","canDisplayInReadingMode","constructPath","queryString","generateMiniCrumbtrailText","crumbtrailArray","linkUrl","isDynamicFolio","generatedLabel","generateLabel","_section$tableOfConte","selectedTocHash","sectionKey","tocId","currentToc","segment","Crumbtrail","crumbs","setCrumbs","cumbTopHeight","setCumbTopHeight","decodedtext","getSelectedSection","selectedSection","currentSection","newCrumbs","collectionTitle","_section$tableOfConte2","_section$tableOfConte3","generateCrumbtrail","trail","linked","active","renderedCrumbs","_c$linkUrl","activeCrumb","renderCrumbs","FilterValue","getFilterValuesString","filterType","filterValueString","inputFields","userFilterSelected","_item$filterID","_item$filterID2","filterField","filterID","getTierValues","tierValues","tierData","tierString","firsts","_researchAssistantRes","userLibrariesSelected","ResearchAssistantMessage","messageLabel","sanitizedData","DOMPurify","sanitize","Markdown","ShareModal","_researchAssistantRes2","_researchAssistantRes3","_researchAssistantRes4","shouldShowShareModal","setShouldShowShareModal","setIsSectionPath","isSectionPath","setClosedToolbar","isResearhAssistant","researchAssistantResponseData","researchAssistantTitle","researchAssistantQuestion","shareModalRef","shouldShowSuccessMessage","setShouldShowSuccessMessage","shareProps","pageUrl","selectedTocItem","divref","shareUrl","tempShareUrl","sharedLink","selection","getSelection","selectionStr","outerParentId","baseNode","sectionParentId","shareModalField","fontFamily","paddingBottom","marginBottom","lineHeight","paddingTop","marginLeft","wordBreak","textDecoration","RA_IS_FORMS_AND_TEMPLATES_ENABLED","formSource","alignItems","fontStyle","paragraph","combinedContent","clipboardData","setData","sharedUrl","once","execCommand","removeAllRanges","copyText","encodedurl","encodedTitle","encodedCopyright","CategoryService","fetchCategories","target_category_guid","delete_confirmation","closedToolbar","isDupAnnotation","isSearchActive","closeToolbar","hide","selectedText","rangeCount","_selectedText$baseNod","range","getRangeAt","cloned","cloneContents","preSelectionRange","cloneRange","tmpEl","rawContent","selectedTextLength","closestGuid","_tmpEl$querySelector","modalContainer","stylingElem","urlPara","visibility","urlLink","datePara","pubTitle","expandedSelRange","collapse","lastNode","frag","insertNode","setEndAfter","addRange","data-title","docsPubDisplayTitle","Checkbox","isChecked","classNameCheckboxContainer","classNameCheckmark","showBinaryPanel","displayBinaryHadler","parentId","binaryCount","accordianState","checked","CategoryTrigger","category","modifiedCategories","isAllCategorySelected","getCategoriesLabel","selectedLabels","CategoryItem","_category$label","_category$label2","_category$label3","_category$label4","backgroundColorStyle","backgroundColor","concat","AnnotationPanelDropdown","isCheckedValue","DOWNLOADHELPERS","getSectionTitle","parentGuid","getBinaryList","selectedList","_article$binaries","_article$content","_article$content$bina","binaries","binary","fileNameFormat","binaryTitle","object","binaryFormat","binaryURI","renameDuplicateFileNames","binariesList","articleTextFileName","tempUniqueFileName","newFileName","fileElements","renameFile","checkIfDisplayDownloadEnable","_pubData","getHeaderTitleNameInReadingName","_document$querySelect3","_document$querySelect4","_document$querySelect5","_document$querySelect6","replaceDivWithHeaderTag","levelAdjustmentforHTag","isPublication","parentClassElements","parentClassElement","currentElement","identifyHierarchyLevelOfParent","divElement","heading","DownloadPanel","_annState$categories","_articleContentCopy$c2","_articleContentCopy$c3","_articleContentCopy$c4","_articleContentCopy$c5","_articleContentCopy$c6","selectedDownloadType","setSelectedDownloadType","setPublication","foliopublication","setFolioPublication","articleLabels","setArticleLabels","selectAllChecked","setSelectAllChecked","downloadClicked","setDownloadClicked","isBinaryLoaded","setIsBinaryLoaded","displayBinary","setDisplayBinary","showHideBinary","setShowHideBinary","listToDownload","setListToDownload","showArticleBinaries","setShowArticleBinaries","articleContent","tempArticleContent","includeArticleText","tempBinaries","object_title","contentGUID","tempBinariesRecursive","AddRecursiveSubItem","recurseBinaryList","subBinaryList","AddBinariesInArticleContentCopy","setSelectedList","articleTitleRaw","disableDownloadButtonClassName","enableDownloadButtonClassName","downloadButtonClassName","setDownloadButtonClassName","articleContentCopy","setArticleContentCopy","selectedAnnotationType","setSelectedAnnotationType","selectedAnnotationList","setSelectedAnnotationList","selectedCategory","setSelectedCategory","setIsAllCategorySelected","includeAnnotationsChecked","setIncludeAnnotationsChecked","setSelectedSpinePubGuidList","downloadAlert","setDownloadAlert","downloadProps","templateRepositoryPublicationTypeList","breadcrumbheight","topicsToAddToDownload","publicationContentItems","annnotationCategories","setAnnnotationCategories","is_specific_to_bookmark","panel","setpPanelHeight","RP_Preview_Env","createHtmlBodyArticle","elements","pElement","toolbardivs","removeChild","fixedToolsDiv","fixedToolsDivBottom","modaldivs","nextPrevDivs","shareModaldivs","miscImagesDivs","downloadPanelDivs","notificationDivs","footnotedivs","removalAnnotationIds","markTagg","createTextNode","spanid","spanTag","ResolveLinks","anchors","_decodeURI","_a$childNodes$","_a$childNodes$$tagNam","imgNodes","uTagSingleDownload","textNode","generateAndResolveLinks","_industry$context$mem2","_industry$context$mem3","_industry$context$mem4","_industry$context$mem5","_tier$context$memberF2","_tier$context$memberF3","_tier$context$memberF4","_tier$context$memberF5","industries","accounting","auditing","framework","getAppliedFilterMessage","hrefArray","anchorURL","pid","_document$getElements3","_document$getElements4","crumbtail","heightOfHorizontalScroll","fixedarticlenav","tocData","_tocData$tableOfConte","_tocData","selectedpublication","retrieveWholePublication","_annState$categories2","downloadCurrentArticle","filteredContent","newPublication","contents","downloadMultipleArticles","targetParent","articleIndex","_item$binaries","currentBinaries","currentBinary","getChildrenArticles","selectedBinariesList","tempSelectedSpinePubGuidList","SetSelectedBinariesToDownload","handleCheckboxClick","setDownloadButtonState","filterAnnotations","annotation_type","_articleContentCopy$c","trimmedTitle","unescape","annContent","annComment","annText","documentName","parentCollectionName","binaryRequest","showSearchbar","_body","_item$children2","_item$children3","recurseSelectedChildren","_item$children5","childItem","recurseSelectedContentItem","_topicsToAddToDownloa","publicationDuplicate","renderedArticles","selectedSectionTitle","renderToString","Router","wordString","allHrefs","linksModifiedArticle","spiltedLink","Blob","size","endNotesContainers","articleContainers","spansOfEndnoteText","counterForCurrentUpdation","endnoteTextDivs","currentDiv","footnotedivsnew","createHtmlBodyPublication","multipleDocuments","generateLabelCheckboxes","marginLeftStyling","_item$children4","isArticleSelected","accessibleCheckbox","getUniqueFormat","formatArr","msg","removeArticleFromSelectedList","_item$binaries2","_item$children","newArray","selectRecursively","_child$children","addArticleToSelectedList","handleSelectAllCheckboxClick","newSelectedList","checkAllArticles","idArray","idsToRemove","getItemChildrenIds","accessibleCheck","searchbar","downloadLoaderStyle","downloadLoaderForBinaries","readOnly","parentItem","_newList$articleIndex","_newList$articleIndex2","binarySelectedIndex","handleIncludeArticleTextForArticleOnlClick","binaryIndex","binaryItem","selectedBinaryIndex","handleBinaryCheckboxForArticleOnlyClick","CustomEvent","accessibleCheckboxAll","_item$binaries3","_item$binaries4","_item$binaries5","isArticleSelectedState","handleIncludeArticleTextClick","grandchild","ContentGUID","articleLableArray","handleBinaryCheckboxClick","currentArticleHtml","ToggleReadingMode","fixedToolContainerStyleTop","toggleReadingbutton","ArticleNotification","parentGuide","selectedCategories","onEditClick","onDeleteClick","nextIndex","handleEditClick","handleDeleteClick","CategoryDropdown","onAddClick","ColorPicker","onUpdate","onSave","labelTxt","colour","isUpdate","isSidePanel","setLabel","setColor","isValidHex","setIsValidHex","btnRef","regToCheckHex","maxLength","HexColorPicker","changedColor","annotationNumber","bookmarkNumber","selectedCategoryId","shouldShowDarkOverlay","setshouldShowDarkOverlay","annotationNumbers","handleCloseClick","AnnotationDelete","onDelete","selectedCategoryid","sidePanelClose","isSidePanelOpen","annotationCount","bookmarkCount","categorydropdown","setCategorydropdown","_annState$annotations","updatedBookmarks","updatedAnnotations","AnnotationNotification","notificationText","closeNotification","AnnotationHighlighter","annotationRange","annotationColor","prefId","NODE_TYPE","ELEMENT_NODE","TEXT_NODE","IGNORE_TAGS","wrapper","timestamp","highlightOptions","highlightedClass","contextClass","onRemoveHighlight","onBeforeHighlight","onAfterHighlight","dom","addClass","removeClass","nodesToPrepend","insertBefore","nodesToAppend","len","insertAfter","refEl","nextSibling","wrap","unwrap","parents","path","normalizeTextNodes","nodeType","nodeValue","fromHTML","getRange","getWindow","getDocument","defaultView","ownerDocument","collapsed","foreColor","hRed","h","cutHex","hGreen","hexToG","hBlue","hexToB","charAt","textColor","createWrapper","normalizedHighlights","again","flattenOnce","hl","parentPrev","parentNext","isHighlight","hasChildNodes","arr","descending","flattenNestedHighlights","self","unique","offsetLeft","normalizeHighlights","wrapperClone","nodeParent","startContainer","endContainer","ancestor","commonAncestorContainer","goDeeper","endOffset","splitText","startOffset","refineRangeBoundaries","done","_node","_node5","_node6","_node7","_node9","_node8","_node2","_node3","_node4","_node10","_node11","highlightRange","rebuildRange","rangePos","charIndex","createRange","setStart","nodeStack","foundStart","stop","_node12","_node13","nextCharIndex","start","end","setEnd","_node14","_node15","getTextLength","selRange","sel","rangeStartEndPosition","rangePosition","selectNodeContents","textLength","textSelLength","AnnotationModal","_editableCategory$cat","_editableCategory$cat2","annotationCategories","setAnnotationCategories","editableCategory","setEditableCategory","isEditable","isPickerShown","setPickerShown","isDeleteAnnotationShown","setDeleteAnnotationShown","setComment","showNotification","setShowNotification","PageURL","annotationsCount","setAnnotationsCount","bookmarksCount","setBookmarksCount","annotationProps","number_annotation_linked","number_Bookmark_linked","_guidebookArticle$ver","raw_content","range_position_start","range_position_end","closest_guid","page_bread_crumb","is_annotations_version_updated","empty","AnnotationCommentIcon","fillColor","preferenceId","AnnotationSidePanelEdit","_editableCategory$cat3","categoryselected","comments","editOpen","setEditOpen","annotationSidePanelEdit","removeAttribute","getTriggerElClose","categoryName","annotationUpdate","range_position","isAnnotationsVersionUpdated","isContentOnly","hover","setHover","Annotateitems","getMarkTag","Contents","isDeleted","setIsDeleted","isValid","setIsValid","generateTextTruncate","ending","categoryArr","handleCategorySelect","annotationPanelNodeList","annotatedSelected","sidePanelWindow","editUpdate","setHoverValue","hoverValue","boderLeftStyle","borderLeft","categoryColor","onMouseEnter","onMouseLeave","annData","show","q","assign","AnnotationPanel","articleAnnotations","isAnnotationList","setIsAnnotationList","count","setCount","shouldBeFix","containsInvalidAnnotations","setContainsInvalidAnnotations","containsDeletedAnnotations","setContainsDeletedAnnotations","navigateToDashboard","annotationsHighlighter","highlighterDOM","articleOffset","BookmarkCategory","bookmarkProps","BookmarkIcon","fillcolor","stroke","HiddenMetadata","_metadata$metadata","_metadata$metadata2","hidden","loaded_on","published_on","PublicationDetailsModal","setShouldShowArticlePubModal","publicationData","setShouldShowDarkOverlay","publicationReleaseDate","publicationVersion","getArticleTitle","embeddedPubData","contentType","setMaxHeightTocBody","rect","elemTop","fullScrollOffset","maxHeightValue","_pubData$content$2","setShouldBeFixed","hasFetchedArticleData","showSearch","showFixedTools","secondMostRecentVersion","isFiltered","yAxisOfToc","isArticlePdf","isArticleBinary","annotationTexts","setAnnotationTexts","isSearchExpanded","setIsSearchExpanded","isDownloadableArticle","isRedirectModalVisible","setIsRedirectModalVisible","setRedirectURL","shouldShowOverlayRedirect","setShouldShowOverlayRedirect","setMessageRedirectTL","setIsDupAnnotation","isArticleUpdated","setIsArticleUpdated","fillColors","setFillColors","bookmarkId","setBookmarkId","offsetWhenAnnPanelOpened","setOffsetWhenAnnPanelOpened","heighttoset","isArticleSearchActive","setIsArticleSearchActive","taxnomyList","linkProps","sourceURL","articleAnnotation","setArticleAnnotation","annotationUpdateStyling","paddingRight","flexDirection","articleNotificationStyle","handlePickerClose","isScrolledIntoView","_isArticlePdf","articleTagValue","buildFolioContentTagList","auditWorkFlowAccount","articleFolioList","nonaccount","sub_items","wa","buildFrameWorkContentTagList","tierList","tierValue","parentTier","toolBar","closeCopyOverlay","scrollToAnnotation","targetURL","isKeyPressed","interactiveToolbar","toolbarContainer","textStr","recursiveItemElements","childItemArray","_cloned","_cloned$children","extentOffset","recursiveReduceSelection","modify","isCollapsed","duplicateSelection","duplicateAnnSelection","clientX","clientY","ANN_ACTIONS","articleContainerElem","_shouldBeFixed","throttledScroll","oncontextmenu","currentHref","industryValue","parentIndustory","parentFilterIndustory","aw","auditNonAccount","assuranceNonAccount","auditAccount","accountingAccount","prepareAndSetArtileTags","sidePanelSmall","sidePanelSmallDim","getClientRects","maxHeightCalc","tocBody","dir","scrollTocToKnowLocation","publicationDisplayTitle","getDisplayTitle","FixedToolContainerStyleTop","setFixedToolContainerStyleTop","setVisible","shouldShowArticlePubModal","publicationModalDetails","setPublicationModalDetails","annotationPanelHandler","removeTextFromTextAnnotations","deletedId","spanId","getLastMarkTag","getSpanTag","commentIcon","annotationTextsCopy","annotationTextIndexToRemove","cleanHighlights","annotateitems","highlightedItems","_articleAnnotation$ma","_Annotateitems$objInd","objIndex","removeLinkStyleSheet","resetDownloadpanelHeight","adjustOnScroll","debounce","scrolled","setFixButtonOverlap","elAnnatationPanel","elbreadcrumb","heightofcrumb","resetannotationpanelHeight","_StyleTop","ceil","_annState$categories$","commentEle","ReactDOMServer","highlightedDOM","after","addCommentToHighlighter","currContentVersion","renderAnnotations","selectedElement","bookmarkData","bookmarked","catColor","handleKeyDown","altKey","release_date","toLocaleString","elDownloadPanel","headerheight","crumbtrail","args","setIsExpanded","onMouseDown","onMouseUp","role","bookmarkHandler","delegate","wordHandler","scrollToTop","isBinary","setHasFetchedArticleData","setScrollPosition","RenderFormsAndTemplates","fileGuid","RaFormsAndTemplatesModal","setPublicationData","_pubData$content$$con","_pubData$content$$con2","retrievePublication","errorPayload","content_item","resolveFormsAndTemplatesUrl","contentItemGuid","isCancelled","searchTemplateModalStyle","FormsAndTemplatesSource","showModal","setShowModal","openFormsAndTemplatesModal","ResolveSources","sourceType","ResearchAssistantForms","_researchAssistantRes5","_researchAssistantRes6","_researchAssistantRes7","_researchAssistantRes8","_researchAssistantRes9","_researchAssistantRes10","_researchAssistantRes11","_researchAssistantRes12","_researchAssistantRes13","_researchAssistantRes14","_researchAssistantRes15","isResearchAssistantLoading","isExpand","setIsExpand","_item$format","pubID","ShareIcon","shareHandlerClick","ThumbsDownIcon","feedBackButtonClick","ThumbsUpIcon","ShareReactionPanel","currentIndex","isChat","myElem","citation","ResearchAssistantSources","UserFeedbackModal","userFeedBackType","setIsFeedBackModalOpen","isFeedBackModalOpen","selectedOptons","setSelectedOptons","handleChange","selected_Options","ResearchAssistantNotableExclusions","ResearchAssistantInfoModal","handlePopup","raInfoModalRef","showTermsAndCondition","setShowTermsAndCondition","ChatbotResearchAssistant","expandMore","setExpandMore","isConversationalMode","countId","messgaeResponse","questiontitle","setquestionTitle","raState","converstionpageQuestion","setConverstionpageQuestion","researchAssitantResponse","setresearchAssitantResponse","interval","setIntervalLimit","questions","setMessage","chatResponse","setChatResponse","setDocumentSource","isFeedBackType","setFeedBackType","callDynamicText","searchinfo","container","animationDuration","RA_LOADER_ANIMATION_TIME_DIFFERENCE","char","span","animationDelay","infoElement","clearInterval","loaderInterval","setInterval","popupIndex","feedBackType","RA_FEEDBACK_URL","questionResponse","TosDeclaration","handleIAgreeClick","isConvoPage","ChatbotModal","isResultLoading","searchOrder","counterSectionsResult","showResults","showResaechAssistantModal","setshowResaechAssistantModal","searchResearchAssistant","setSearchResearchAssistant","searchTrigger","setResearchAssistantResponse","searchContent","setSearchContent","setIsResearchAssistantLoading","raApiFailure","setRaApiFailure","getCatalogTitleByKey","catalogTitle","isFolio","catalog","controller","consentToRetainData","currentMessage","previousMessages","chatbotres","aborted","fetchChatBotResponse","abort","_filteredSearchResult","ResearchAssistantErrorMessage","errorCode","errorMapping","closeErrorNotification","setCatalogs","setIsResultLoading","setIsSearchActive","setSearchSubmit","showNoResults","setShowNoResults","setShowResults","setSearchOrder","setCounterSectionsResult","setCatalogSearchPhrase","isSearchPhraseExist","setIsSearchPhraseExist","isResearchAssistantActiveForUser","searchValueRA","taxonomylist","fetchCatalogData","shouldShowCard","memberFirmID","catalogCollections","_data$CatalogCollecti","_data$CatalogCollecti2","_recentHistoryList$co","_recentHistoryList$co2","_data","resCatalogHistory","dataWithHistory","filteredCatalogs","handleSearchTrigger","fetchCatalogHistoryData","typedSearchPhrase","_String","catalogSearchQueryresults","every","_String2","_Object$keys","_counterSectionsResult","_results$key$length","_results$key","sectionResultCount","determineCounterSectionsResult","backgroundImageUrl","CollectionItemExpandable","collectionArrowStyling","CollectionTocSearchBadge","searchResultCount","tempActiveFilter","prevFilters","CollectionTOC","pubType","GetIconByPubType","CollectionSearchResultItem","SearchTemplateModal","setEmbeddedPubData","embeddedRes","CollectionSearchResult","GenerateCrumbFromURL","crumnArray","MfKd","urlItem","_urlItem$toLowerCase2","_urlItem$toLowerCase3","GenerateCrumbForFolios","processedCrumb","_urlItem$toLowerCase","resultTitle","crumtrailDecoded","decoded","GenerateSearchResultIteam","InfoNotifiation","ResearchAssistantTile","handleOpenNewTab","CollectionSearch","handleSearchSubmit","setIsFixed","setUpdateRecentSearches","onscroll","catalogCollectionLinks","getSearchResults","isAllOnOffButtonExist","handleRecentSearchBarSubmit","searchPhraseFromNavigationBarRecentSearches","readableSearchPhrase","resolvedUrlForCollectionSearchResult","idCount","resolveUrlForCollectionSearchResult","MainPannel","TocBody","classNameList","tocMaxHeight","calcMaxHeight","SidebarTOC","isHidden","toggleOneWideMode","inArticle","handleToggleAllButtons","ContentErrorMessage","_UTILITIESHELPER$getL","_UTILITIESHELPER$getL2","showHideErrorMessage","setShowHideErrorMessage","MessageNotification","PublicationLayout","isArticlePage","SidePannel","isFixedSearchBar","setIsFixedSearchBar","collectionItems","collectionIcon","listType","recentListType","isJournalCollection","_listType","getIsJournalCollection","sidePanelHeading","recentLinks","maxRecentLinksToDisplay","groupList","setGroupList","accountBalanceOptions","nonAccountBalanceOptions","assuranceOptions","SidePanelComponent","_item$context","display_title","tocArray","nonAccountSubject","nonAccountSubjectTOC","getSubjectTOC","accountSubject","accountSubjectTOC","assuranceSubject","assuranceSubjectTOC","uniqueID","accountIndex","_searchResult$documen","_searchResult$documen2","nonAccountIndex","_searchResult$documen3","_searchResult$documen4","hasFTEOGuide","filteredTocResults","_result$document4","_result$document5","_result$document2","_result$document3","_result$document6","filteredTocsearchresults","_result$document7","itemTOC","getItemTOC","publicationItem","publicationTOC","getPublicationTOC","getTocArray","collectionSearchlimitTemp","getCollectionData","limit","getJournalCollectionData","formatteddata","linkItems","linkTextTitle","siteLinkText","linkObj","FormateDelCummAndProfNewsCollectionData","set","Guidance","getData","newObject","subject","renderSearchResultTocBody","searchTocBody","collectionTocArray","displayCollectionToc","pubLandingUrls","pageProps","hasAllTocDataLoaded","collectionSearcResult","getLinkInternal","TOCitems","group","handlePublicationResult","publicationlink","topicIndex","collectionSearchResultItemList","flag","onSelectLanguage","handleViewAllResult","viewAll","ContentArticle","isCookiesPage","CookiesServices","Cookie_Service_Url","dataDomainScript","Cookie_Data_Domain_Script","script","InjectOneTrustCookieServiceIfItDoesntExist","fetchArticle","articleModel","headline","_articleModel$Metadat","_articleModel$Metadat2","_articleModel$Metadat3","_articleModel$Metadat4","Metadata","standardMeta","dateCreated","renderArticleDate","articleBody","abi","_articleBody$image","_articleBody$image$Bi","_articleBody$image2","_articleBody$image2$B","_articleBody$image3","_articleBody$image3$M","intro","Fragments","fragmentsText","fragment","renderArticleBody","HeaderImage","_headerData$BinaryCon","headerData","hasFetchedHeaderData","aria-label","TriggerValue","Title","defaultTitle","buildTitle","parts","isTierHasValue","isIndustryHasValue","sortDisplayOrderAsc","display_order","sortFrameworksOrderAsc","MenuListItem","setIsShown","onMouseHover","handleKeyPress","SubMenu","_selected$filter","SubMenuItem","DropdownPreferences","isShown","parseResults","frameworks","narrowScope","gaapItems","assurance","_countryKDSettings$fi","_countryKDSettings$fi2","_countryKDSettings$fi3","resIndustry","resFramework","parsed","fetchData","clearCheckList","MenuList","onTierChange","mfTier","getMfPrefs","tierObject","prefs","mfIndustry","industryObject","LogoutContext","logoutKey","setLogoutKey","DropdownPageSettings","userSettingsRef","isUserSettingsOpen","setIsUserSettingsOpen","setLogoutState","firstName","lastName","userProfileInside","logout","currentAccount","getActiveAccount","idTokenClaims","login_hint","logoutRedirect","logoutHint","AddButton","isHome","isDisabled","OptionList","Option","RecentlyViewContext","useRecentViewContext","RecentViewContextProvider","setRecentViewHistory","MemberFirmItem","collapsible","activeDelete","showKnowledgeDomains","setShowKnowledgeDomains","handleShowKnowledgeDomains","targetPath","handleOptionClick","clearSearchMemberFirm","List","ManagePanel","searchMemberFirm","setSearchMemberFirm","handleAddMemberFirm","dropdownScrollAreaMaxHeight","filteredMemberFirms","setFilteredMemberFirms","delayDebounceFnInputId","_","clearTimeout","class","tabindex","MemberFirmSelector","manageActive","setManageActive","profileMemberFirms","setProfileMemberFirms","memberFirmWithoutActive","setMemberFirmWithoutActive","globalAuditMapping","Map","getAndFormatMemberFirms","_profileMemberFirms","profileMemberFirmsList","resultProfileMemberFirms","findIndexAndUnshift","userProfileMemberFirm","disableDeleteMemberFirmToActiveMemberFirmAndUserMemberFirm","_memberFirmWithoutActive","changeValueForGlobalMF","memberFirmIndex","activeMemberFirm","memberFirmLabel","handleRemoveMemberFirm","activeMemberFirms","mfName","managePanel","mfKey","addCurrentMemberFirmIfNotActive","getTrigger","willBeOpen","LanguageSelector","languageDropdownData","setLanguageDropdownData","LanguageListItem","allLanguageForCountry","_allLanguageForCountr","_allLanguageForCountr3","_allLanguageForCountr4","_allLanguageForCountr5","_allLanguageForCountr6","_allLanguageForCountr2","languageInfo","currentLanguageInfo","OutageNotification","_filteredNotification","isNotificationOpen","setIsNotificationOpen","outageNotification","setOutageNotification","REACT_APP_OUTAGE_NOTIFICATION_MESSAGES","currentDate","filteredNotification","notificationDate","UpdateNotificationDisplayStatus","updatedNotifications","isNew","notificationListLocatState","notificationList","viewedNotificationString","userViewedNotification","updatedList","updateNotificationAvailable","update","notificationId","HeaderLayout","_headerData$Content","_headerData$Content$l","_headerData$Content$l2","_headerData$Content2","_headerData$Content2$","_headerData$Content2$2","_headerData$Content3","_headerData$Content3$","_headerData$Content3$2","_headerData$Content4","_headerData$Content4$","_headerData$Content4$2","_headerData$Content5","_headerData$Content5$","_headerData$Content5$2","_headerData$Content6","_headerData$Content6$","_headerData$Content6$2","logoDark","logo","createMarkupSupportLinkSanitized","whiteList","REACT_APP_OUTAGE_NOTIFICATION_ENABLED","setHeaderData","setHasFetchedHeaderData","shouldShowCrumbtrail","setShouldShowCrumbtrail","retreiveResource","HomeHeader","HomeLayout","HomeScreen","fetchLanding","catalogSelectorContent","handleKnowledgeDomainClick","knowledgeDomains","_knowledgeDomain$Cont","linkTitle","LinkHandler","targetIdentifier","_context$knowledgeDom","encodeURI","AnnotationItem","modifyDeleteGuids","annotItem","setAnnotItem","articleGuid","defaultChecked","AnnotationDeleteModal","deleteAnnotationMessage","deleteGuids","deleteItems","isBookmarkDelete","selectedHeading","closeMessage","CommonSearchbar","searchLink","term","elementToScroll","scrollToSelectedSearch","dropDownCategories","customClass","styledCheckbox","categoryBackgroundColor","last_referenced_date","IsSpecificToBookmark","CalendarIcon","DateSelector","reset","selectedTypeDate","setSelectedTypeDate","singleDate","setSingleDate","rangeDate","setRangeDate","displayText","setDisplayText","today","minDate","dateSelection","handleDateSelection","selectedType","handleSelectedType","DateTrigger","DatePicker","calendarIcon","dateFormat","dayPlaceholder","monthPlaceholder","yearPlaceholder","maxDate","clearIcon","onCalendarOpen","DateRangePicker","AnnotationsDashboard","setAnnotations","filteredAnnotations","setFilteredAnnotations","setDeleteGuids","isDeleteModalVisible","setIsDeleteModalVisible","shouldShowOverlayDelete","setShouldShowOverlayDelete","messageDelete","setMessageDelete","selectedDate","setSelectedDate","filteredViewedAnnotation","setFilteredViewedAnnotation","resetDates","setResetDates","dateFilter","setDatefilter","modifyDeleteGuidsHandler","opr","newAnnotData","fromDate","toDate","setHours","RecentlyViewedItem","_item$title","getTitleToDisplay","finalHeader","breadcrumb","RecentlyViewed","setList","getTime","todayDate","yesterday","dateCopy","setDate","YesterdayDate","dayBeforeYesterday","dayBeforeYesterdayDate","thisweek","currDate","yesterdaycopy","firstday","getDay","lastday","getThisWeek","lastweek","t","sunday","todaydate","saturday","getLastWeek","_recentHistoryDetails","recentHistoryDetails","todaylist","yesterdaylist","thisweeklist","lastweeklist","earlierlist","singleEl","dataList","p","BookmarksListItems","BookmarkItem","setBookmarkItem","bookmarkTitle","BookmarksDashboard","setBookmarks","filteredBookmarks","setFilteredBookmarks","filteredViewedBookmark","setFilteredViewedBookmark","setCategories","newBookData","fetchBookmark","filterBookmarks","ResearchDashboard","navigateTo","dashboard","menuIsOpenStyle","openStyle","closedStyle","selectProps","menuIsOpen","ReactSelectDropdown","selectedDisplayValue","onAfterChange","renderOptionsAsLinks","shouldUseWindowedSelect","classNamePrefix","getIsOptionSelected","customComponents","isSearchable","selectedOption","setSelectedOption","isOptionDisabled","provided","transition","valueContainer","singleValue","_styles","flexGrow","control","minHeight","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundSize","backgroundImage","backgroundPosition","backgroundRepeat","indicatorsContainer","indicatorSeparator","dropdownIndicator","menu","menuList","_styles2","_styles3","groupHeading","_styles4","components","SingleValue","WindowedSelect","Select","valuesContainer","ControlForPreventingTransitionOnMenuOpenChange","shouldPreventTransition","setShouldPreventTransition","Control","initCatalogs","updatedCatalog","tempDarkModePreference","setTempDarkModePrefrerence","initialValuesGlobal","setInitialValuesGlobal","initialValuesPage","setInitialValuesPage","createDropdownStyles","borderColor","_catalogs$find","_catalog","prevCatalogs","newCatalogs","renderCatalogCheckboxes","hasChangeBeenMadeGlobal","_initCatalogs$i","_catalogs$i","handleSaveChangesGlobal","selectedCatalogsObj","reduce","accumlator","handleSaveChangesPage","Unauthorized","getInArticleTOCReadingModeElem","ReadingModeHeader","setShowInArticleTOC","overrideShowInArticleTOC","adjustSidebarHeight","inArticleTocElem","eldarkoverlay","tempThrottledScroll","deaultProps","ArticleReadingMode","_showInArticleTOC","articleTitleReplaced","txt","decodeHtml","removeRMAnchorClick","toggleVisible","guidebookDisplayTitle","ArticleResolver","memo","renderArticleContent","getArticleHasLoaded","additionalProps","ManualArticle","manualTitle","manualGUID","setPubData","publicationVersions","setPublicationVersions","selectedItemTitle","selectedItemGUID","selectedSpineTargetPublicationGUID","recentViewUpdatedHistory","retrievePubVersions","currentReqTime","_tocControl$find","searchresults","highlightsCount","MapSearchResults","getSecondMostRecentVersion","_publicationVersions$","Searchbar","disableState","setRecentHistory","navigateToPage","PublicationLandingMainPannel","_pubData$publicationT","_pubData$publicationT2","pubLandingTitle","preface","currentAsOfDate","UtilitiesHelper","pubNoticesText","SearchResult","processedHighlights","toCrumbString","documentFormatArray","urlWithSearchPhrase","PublicationSearch","currentSearchPhrase","setCurrentSearchPhrase","isValidSearchPhrase","setIsValidSearchPhrase","queryparamsearchphrase","handleScroll","isTitleFixed","pubIds","getSearchTitle","handleSubmit","filteredResults","matchedFilters","resolvedSearchResultSet","PublicationListingSearch","searchLabel","_selectedItemTOC$item2","_selectedItemTOC$item3","getPlaceholder","PublicationListingResults","searchPhraseParam","paramSessStore","searchVal","_selectedItemTOC$item4","tocItems","mainPannelStyling","articleTitleStyling","tocBodyStyling","listingPageTitle","_selectedItemTOC","relatedContext","Description","abstract","sectionIntro","additional","notices","TocSearchBadge","tocChildren","toggleOff","toggleOn","childArr","getSubItems","notUndefinedToc","combinedArr","allFilterStatesAreFalse","item_id","filterState","_childArr","getParentOfToc","prevArray","lastItemAdded","updateToggleListItemStatus","idToUpdate","newStatus","getChildrenTocHashes","currentTocItem","tocItemHash","lastIndexParent","disableParentIfIsAllChildDisabled","tempChildMergedArray","parentArr","filterChildrenIds","parent_id","tocItemChildren","filtersWithoutCurrentTocItem","enableParentIfIsAnyChildEnabled","newParent","TocAnnotationBadge","tocAnnotationcount","setTocAnnotationCount","isFolioSection","checkIfAnnotationHasMatchAndAddToCount","tocItemUrl","referenceIdentifier","incrementCount","newCount","tocItemChild","_item$page_url$split","TableOfContentsItem","_item$subItems","shouldHighlightSelected","includeSubItems","isListingPage","setIsSelected","isExpandable","isAnnotationAvailable","setIsAnnotationAvailable","itemURL","clickProps","TableOfContentsItems","parentNavTitle","titleSelected","bookmark","_isExpandable","_isExpanded","data-parent-id","pre_title","isBadged","getClassNameExpanded","expandTocSection","FolioTableOfContentsItem","isPubExpandable","itemID","itemTitle","_itemURL","checkIsSelected","itemHref","currentPathname","TocItemRelatedContent","includeRoot","sectionData","isOpenContainer","compareVersionRef","ArticleCompareVersionDropdown","VersionsItem","ArticleCompareVersions","_pubData$publicationV","navElemRef","shouldCompareVersions","setShouldCompareVersions","pastVersions","setPastVersions","isNavFixed","setIsNavFixed","mostRecentVersion","mostRecentDate","compareVersionDate","compareTitle","articlebody","isNavFixedUpdated","calcIfNavShouldBeFixed","retrieveArticleVersions","renderPastVersionsDropdown","versionOptions","versionNum","getVersion","_selectedItemTOC$item7","_selectedItemTOC$item8","_selectedItemTOC$item9","_selectedItemTOC$item10","_selectedItemTOC$item11","_selectedItemTOC$item12","_selectedItemTOC$item13","isExact","renderArticle","routeInfo","isLandingPage","selectedItemContentType","hasSubItems","overrideIsExpandable","isListingCandidate","isSectionlisting","isJournalArticle","validSelectedItem","renderMainPannel","_isSearchPage","_isListingPage","_isArticlePage","_isReadingMode","_isRelatedLinksPage","wormHole","_tocArray","_TocHelpers$getFlatTo","getTocItems","_context","tableOfContentsItem","_selectedItemTOC$item5","_selectedItemTOC$item6","included","tableOfContentItem","tocID","_getArticleTitle","retreiveAnnotationList","retreiveBookmarkList","_res$tableOfContents","_res$tableOfContents$","hashedToc","renderTocBody","contextTOC","_contextTOC$subItems","currentPageContext","journalType","_res$content$","_res$content$$content","journalTitle","_routeInfo2$params","routeInfo2","volume","currentSectionData","sectionTitle","_sectionData","_sectionData$tableOfC","sectionDataContext","allRelatedContent","publicationLists","relatedContentToc","hrefOverride","isRelatedContentListingPage","handleDocumentKeyPress","setHasAllTocDataLoaded","hasLogged","setHasLogged","guidebookFileName","getFolioTitle","currentGuidebookTocBody","_sectionItem","_sectionItem$item","_sectionItem$item$tab","_sectionItem$item2","_sectionItem$item2$ta","_sectionData$context","urlContext","selectCurrentTemplate","recurseSelectedCurrentPublication","selectedPublication","currentContent","_currentContent$subIt","currentTemplate","getSectionData","wasReadingModeOn","folioTaxonomy","setFolioTaxonomy","_state$folioLists","taxnomyListpayload","retrieveTaxonomyFolioPickerLists","retriveAllFolio","QueryClientProvider","client","ChatBot","chatbotSearchText","setChatBotSearchText","searchResultdata","setSearchResultsData","chatBotSearchHandler","_industry$us$auditing","_tier$us$auditing$","us","required","onKeyUp","handleEnterEvent","suggestedQuestions","iteam","conversationBox","loader","FollowUpQuestions","handleFollowUpClick","setisOpen","followUpClick","TriggerValueResearchAssistant","DropdownPreferencesRA","_frameworks$gaapItems","_frameworks$gaasItems","_frameworks$assurance","TierArray","subObject","subKey","subArray","ChatbotIntroduction","ConversationMode","_userInputRef$current4","userInputRef","isResearchAssistantChat","setIsResearchAssistantChat","memberFirmSelected","setMemberFirmSelected","messages","setMessages","showRPInfoMessage","setShowRPInfoMessage","showTextAreaWithScroll","setShowTextAreaWithScroll","chatTextCount","setChatTextCount","isPageSettingsOpen","setIsPageSettingsOpen","conversationStarted","setConversationStarted","filterApplied","setfilterApplied","previousMessage","setPreviousMessage","isRAFooter","researchAssistantResponseLocal","CurrentfilterData","raTakeOverData","newmsg","updatedMessages","shift","addmessage","_userInputRef$current","_userInputRef$current2","_userInputRef$current3","scrlHeight","overflowY","conversation","filterData","newconversation","contexts","handleOptionsClick","researchAssistant","Height","_currentAccount$idTok","ResearchAssistantQuery","ResearchAssistantResponse","_userInputRef$current5","AppRoutes","campaign","campaignId","Routes","Route","exact","classNameBody","PreviewWarning","SessionExpiredModal","isModalOpen","SetIsModalOpen","App","logoutState","shouldShowOverlayModal","setShouldShowOverlayModal","handler","evt","newValue","PublicClientApplication","clear","idleWait","_currentAccount$idTok2","handleActivity","resetTimeout","RP_REACT_SESSION_EXPIRTAION","useOPMService","getOpmInfo","NoAccess","serviceNowUrl","REACT_APP_SUPPORT_SERVICENOW","require","IndexApp","DoNotLogin","inProgress","accountData","isValidLogin","setIsValidLogin","setAccessToken","InteractionStatus","accessTokenRequest","accessTokenResponse","username","RP_ISRESTRICTENV","userRoleExists","RP_ISEXCEPTIONLIST","isUserProfileEnabled","RP_ISCIAMACCESS","restrictAccess","roles","Index","roleIdentiFier","userInfoPromise","memberFirmCode","levelGlobalDesc","countryDesc","isExternalUser","canSeeRA","_userInfoPromise$firs","_userInfoPromise$last","_instance$getActiveAc","_instance$getActiveAc2","SetUserInfoInLocalStorage","opmId","CONSOLE_MESSAGES_ENABLED","setActiveAccount","enableAccountStorageEvents","addEventCallback","EventType","LOGIN_SUCCESS","handleRedirectPromise","authResult","tokenKey","homeAccountId","aud","tid","acquireTokenRedirect","loginRedirect","AppWithAuthentication","MsalProvider","AuthenticatedTemplate","UnauthenticatedTemplate","createRoot","render"],"mappings":"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ASmpC,GACxGlG,EAAekG,EAAIG,MAAMA,OAE1B,MAAOzW,GACNzhC,EAAK7E,MAAM0B,EAAKa,YAAa,yBAA0B2L,GAAcwC,OAAQ41B,EAAI,CAAC3+B,QAAQsF,GAAW1K,gBAMtGy6C,CAAuB,UAEvBxG,EAAoBr7B,KAGnB,CAACA,EAASk9B,KAIbtF,oBAAU,KAITyF,GAAY,CACX,wCACA,4BACA,mEACA,6BACA,0CACA,2DACA,uCACA,2CACA,gCACA,2BACA,oCACA,wBACA,wCACA,+BACA,kCACA,sBACA,2CACA,8BACA,8BACA,wCACA,2BACA,2BACA,6CACA,wCACA,2BACA,iCACA,yCACA,yCACA,+BACA,wCACA,8CACA,2BACA,6BACA,wCACA,yCACA,gCACA,yDACA,yCACA,6BACA,wBACA,2CACA,yCACA,+BACA,kCACA,oBACA,kCACA,kCACA,wDACA,0BACA,2BACA,kCACA,mCACA,wCACA,mCACA,2BACA,+BACA,gBACA,gDACA,+CACA,yCACA,+BACA,kCACA,8BACA,8BACA,4CACA,gDACA,sCACA,6BACA,oCACA,6BACA,uBACA,iEACA,iDACA,yCACA,gDACA,oDACA,iCACA,+CACA,oEACA,mDACA,0BACA,yCACA,eACA,yCACA,gDACA,wDACA,+BACA,0CACA,0DACA,wDACA,iDACA,oDACA,mDACA,4BACA,6CACA,4BACA,8BACA,mBACA,uBACA,mCACA,sCACA,yBACA,+BACA,oCACA,wBACA,gCACA,6BACA,+EACA,sBACA,4BACA,+CACA,2BACA,6CACA,iCACA,8BACA,kDACA,0CACA,6BACA,sCACA,+BACA,+BACA,4BACA,+BACA,kCACA,iCACA,oCACA,iCACA,8BACA,2BACA,gCACA,4BACA,2BACA,qCACA,yBACA,iCACA,+BACA,gCACA,qCACA,wCACA,wBACA,sCACA,yCACA,yCACA,8BACA,4BACA,6BACA,0DACA,kEACA,wBACA,sCACA,uBACA,uBACA,8BACA,gBACA,2CACA,gDACA,uCACA,sBACA,+BACA,oBACA,oBACA,sBACA,4CACA,sBACA,uBAC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","file":"static/js/main.f62c18db.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"component\":\"Loading_component__3Wl_I\"};","import { LogLevel } from \"@azure/msal-browser\";\r\n\r\nexport const msalConfig = {\r\n auth: {\r\n tenant: window.DART.ENV.REACT_APP_TENANT,\r\n clientId: window.DART.ENV.REACT_APP_CLIENTID,\r\n redirectUri: window.DART.ENV.REACT_APP_REDIRECTURI,\r\n authority: `https://login.microsoftonline.com/${ window.DART.ENV.REACT_APP_TENANT}`,\r\n // endpoints: {\r\n // api: window.DART.ENV.REACT_APP_ENDPOINT_API\r\n // },\r\n cache: {\r\n cacheLocation: window.DART.ENV.REACT_APP_CACHELOCATION,\r\n storeAuthStateInCookie: true,\r\n },\r\n system: {\t\r\n loggerOptions: {\t\r\n loggerCallback: (level, message, containsPii) => {\t\r\n if (containsPii) {\t\t\r\n return;\t\t\r\n }\t\t\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n default:\r\n return;\r\n }\t\r\n }\t\r\n }\t\r\n }\r\n // whitelist: window.DART.ENV.RP_REACT_APP_WHITELIST\r\n }\r\n};\r\nexport const loginRequest = {\r\n scopes: [\"User.Read\"]\r\n};\r\n\r\n// Add here the endpoints for MS Graph API services you would like to use.\r\nexport const graphConfig = {\r\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\"\r\n};","import {QueryClient} from \"react-query\";\r\n\r\nconst STALE_TIME = 10 * (60 * 1000); // 10 mins\r\nconst CACHE_TIME = 15 * (60 * 1000); // 15 mins\r\n\r\nexport const queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n refetchOnMount:false,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false,\r\n staleTime: STALE_TIME,\r\n cacheTime: CACHE_TIME\r\n }\r\n }\r\n});\r\n","import { ApplicationInsights, SeverityLevel } from '@microsoft/applicationinsights-web'\r\nimport { ReactPlugin, withAITracking } from '@microsoft/applicationinsights-react-js'\r\nimport { globalHistory } from '@reach/router'\r\n\r\nconst href = window.location.href;\r\nconst localDebug = (href.indexOf(\"localhost\") > 0 || href.indexOf(\"devndinkrpservice\") > 0);\r\n\r\nconst appInsightUIMapping = {\r\n None: 0,\r\n Critical: 0,\r\n Error: 1,\r\n Debug: 2,\r\n Information: 2,\r\n Trace: 2,\r\n Warning: 2\r\n}\r\n\r\nconst page = {\r\n Annotation: 'Annotation',\r\n Article: 'Article',\r\n Catalog: 'Catalog',\r\n Collection: 'Collection',\r\n DCSService: 'DCSService',\r\n Folio: 'Folio',\r\n FolioSectionTOC: 'FolioSectionTOC',\r\n FolioArticle: 'FolioArticle',\r\n GuidebookSectionTOC: 'GuidebookSectionTOC',\r\n GuidebookArticle: 'GuidebookArticle',\r\n Header: 'Header',\r\n Link:'LinkResolver',\r\n PageContext: 'PageContext',\r\n Publication: 'Publication',\r\n Search: 'Search',\r\n History: 'History',\r\n JournalArticle: 'JournalArticle',\r\n RPService:'RPService',\r\n Highlight: 'highlight',\r\n Bookmark:'Bookmark',\r\n Login:'Login'\r\n}\r\n\r\n//object message = { page: string, section: 'welcome section', component: 'banner', action: 'click', exception , message }\r\n\r\nvar ai = null;\r\nconst reactPlugin = new ReactPlugin()\r\nif (Boolean(window.AppInsight) && Boolean(window.AppInsight.ENV.InstrumentationKey) && Boolean(globalHistory) && Boolean(window.AppInsight.ENV.EnableTracking)) {\r\n ai = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: window.AppInsight.ENV.InstrumentationKey,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history: globalHistory }\r\n },\r\n loggingLevelTelemetry: appInsightUIMapping[window.AppInsight.ENV.LogLevel] ? appInsightUIMapping[window.AppInsight.ENV.LogLevel] : 0,\r\n disableFetchTracking: false,\r\n disableTelemetry: !(window.AppInsight.ENV.EnableTracking),\r\n enableAutoRouteTracking: true\r\n }\r\n })\r\n ai.loadAppInsights()\r\n\r\n ai.appInsights.addTelemetryInitializer((envelope) => {\r\n envelope.tags['ai.cloud.role'] = window.AppInsight.ENV.LogLevel\r\n envelope.tags[\"ai.cloud.roleInstance\"] = 'ResearchPortal_Instance'\r\n envelope.data.timeNow = Date(Date.now()).toString()\r\n })\r\n\r\n}\r\n\r\n\r\nexport const { appInsights } = ai || {}\r\n\r\nconst logs = {\r\n timeDistance: function (date1, date2) {\r\n let distance = Math.abs(date1 - date2);\r\n const hours = Math.floor(distance / 3600000);\r\n distance -= hours * 3600000;\r\n const minutes = Math.floor(distance / 60000);\r\n distance -= minutes * 60000;\r\n const seconds = Math.floor(distance / 1000);\r\n return `${hours}:${('0' + minutes).slice(-2)}:${('0' + seconds).slice(-2)}`;\r\n },\r\n trackEvent: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackEvent === 'function') {\r\n ai.appInsights.trackEvent(results);\r\n }\r\n },\r\n trackPageView: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackPageView === 'function') {\r\n ai.appInsights.trackPageView(results);\r\n }\r\n },\r\n trackPageViewPerformance: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackPageViewPerformance === 'function') {\r\n ai.appInsights.trackPageViewPerformance(results);\r\n }\r\n },\r\n trackException: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackException === 'function') {\r\n ai.appInsights.trackException(results);\r\n }\r\n },\r\n trackTrace: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackTrace === 'function') {\r\n ai.appInsights.trackTrace(results);\r\n }\r\n },\r\n trackMetric: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackMetric === 'function') {\r\n ai.appInsights.trackMetric(results);\r\n }\r\n },\r\n trackPageVisitTime: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.trackPageVisitTime === 'function') {\r\n ai.appInsights.trackPageVisitTime(results);\r\n }\r\n },\r\n startTrackPage: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.startTrackPage === 'function') {\r\n ai.appInsights.startTrackPage(results);\r\n }\r\n },\r\n stopTrackPage: function (name, url, results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.stopTrackPage === 'function') {\r\n ai.appInsights.stopTrackPage(name, results);\r\n }\r\n },\r\n startTrackEvent: function (results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.startTrackEvent === 'function') {\r\n ai.appInsights.startTrackEvent(results);\r\n }\r\n },\r\n stopTrackEvent: function (name, results) {\r\n if (ai && ai.appInsights && typeof ai.appInsights.stopTrackEvent === 'function') {\r\n ai.appInsights.stopTrackEvent(name, results);\r\n }\r\n },\r\n flush: function () {\r\n if (ai && ai.appInsights && typeof ai.appInsights.flush === 'function') {\r\n ai.appInsights.flush();\r\n }\r\n },\r\n addTelemetryInitializerTags: function (results) {\r\n if (results && ai && ai.appInsights) {\r\n ai.appInsights.addTelemetryInitializer((envelope) => {\r\n for (const key in results) {\r\n envelope.tags[key] = results[key]\r\n }\r\n })\r\n }\r\n },\r\n\r\n debug: function (page, component, message, ...properties) {\r\n logs.trackTrace({ message: page, properties: { component: component, details: message, properties }, severityLevel: SeverityLevel.Debug });\r\n if (localDebug) console.log(message, ...properties);\r\n },\r\n info: function (page, component, message) {\r\n logs.trackTrace({ message: page, properties: { component: component, details: message }, severityLevel: SeverityLevel.Information });\r\n if (localDebug) console.log(message);\r\n },\r\n warning: function (page, component, message) {\r\n logs.trackTrace({ message: page, properties: { component: component, details: message }, severityLevel: SeverityLevel.Warning });\r\n if (localDebug) console.log(message);\r\n },\r\n error: function (page, component, message, error, ...properties) {\r\n logs.trackException({ message: page, properties: { component: component, details: message, properties },eventId:properties[0]?.eventId !== undefined || null ? properties[0].eventId :1000, error: new Error(error), severityLevel: SeverityLevel.Error });\r\n if (localDebug) console.log(message, error,properties[0]?.eventId !==undefined || null ? properties[0]?.eventId :1000);\r\n },\r\n critical: function (page, component, message, error) {\r\n logs.trackException({ message: page, properties: { component: component, details: message }, error: new Error(error), severityLevel: SeverityLevel.Error });\r\n if (localDebug) console.log(message, error);\r\n },\r\n event:function (name,properties){\r\n logs.trackEvent({name: name, properties: properties })\r\n }\r\n \r\n}\r\n\r\nexport { logs, ai, reactPlugin, page, appInsightUIMapping }\r\n\r\nexport const logLevels = SeverityLevel\r\n\r\nexport default (Component) => withAITracking(reactPlugin, Component)\r\n\r\n","import React, { createContext, useContext } from 'react'\r\nimport { reactPlugin ,logs,ai } from \"../helpers/log\";\r\n\r\nexport const AppInsightsContext = createContext()\r\nexport const usePageContext = () => useContext(AppInsightsContext)\r\n\r\nconst AppInsightsContextProvider = ({children}) => {\r\n \r\n\r\n const store = {\r\n reactPlugin,\r\n logs,\r\n ai \r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default AppInsightsContextProvider","\r\nimport React, { useState, createContext, useContext } from 'react'\r\n\r\nexport const LoadingContext = createContext()\r\nexport const useLoadingContext = () => useContext(LoadingContext)\r\n\r\nconst LoadingContextProvider = ({children}) => {\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const store = {\r\n isLoading,\r\n setIsLoading,\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default LoadingContextProvider","export const MEMBERFIRM_CONSTANTS = {\r\n global: \"global\",\r\n dtt: \"dtt\",\r\n us: \"us\"\r\n}\r\n\r\nexport const KNOWLEDGE_DOMAIN = {\r\n accounting: \"accounting\",\r\n assurance: \"assurance\",\r\n auditing: \"auditing\"\r\n}\r\n\r\nexport const KNOWLEDGE_DOMAIN_ID = {\r\n accountingId: \"17573178\",\r\n assuranceId: \"68489712\",\r\n auditingId: \"17573941\"\r\n}\r\n\r\n//querySpec.AuditWorkflowAreaAccount\r\nexport const FOLIO_SUBJECT_ACCOUNT = {\r\n accountBalance: \"17653684\",\r\n accountingFolios: \"66029487\",\r\n auditingAccountingFolios: \"66019138\"\r\n}\r\n\r\nexport const PUBLICATIONTYPE_IDS = {\r\n manual : \"60194866\",\r\n standards : \"60194865\",\r\n deloitteCommunications:\"60194864\",\r\n professionalNews: \"65511719\",\r\n externalCollection: \"86191938\"\r\n}\r\n\r\nexport const CONTENT_TYPE_IDS = {\r\n section: \"17377912\",\r\n sectionWithIntro: \"65469055\",\r\n article: \"63887580\",\r\n externalArticle: \"86191937\",\r\n template: \"17323604\",\r\n}\r\n\r\nexport const ARTICLE_TYPES = [CONTENT_TYPE_IDS.article, CONTENT_TYPE_IDS.externalArticle];\r\n\r\n//querySpec.AuditWorkflowAreaNonAccount\r\nexport const FOLIO_SUBJECT_NON_ACCOUNT = {\r\n assuranceFolios: \"69200678\",\r\n auditingNonAccountFolios: \"66019141\",\r\n nonAccountBalance: \"48082103\"\r\n}\r\n\r\nexport const PAGE_CONTROLLER_TYPE = {\r\n deloitteCommunications: \"deloitte-communications\",\r\n folio: \"folio\",\r\n journals: \"journals\",\r\n manual: \"manual\",\r\n professionalNews: \"professional-news\",\r\n roadmap: \"roadmap\",\r\n standards: \"standards\",\r\n standard : \"standard\", //Introduced a new value for all External Standards \r\n guidance: \"guidance\",\r\n collection: \"collection\"\r\n\r\n}\r\n\r\nexport const FOLIO_SECTION_TYPE = {\r\n alerts: \"alerts\",\r\n guidance: \"guidance\",\r\n qna: \"qna\",\r\n templates: \"templates\",\r\n other: \"other\",\r\n related: \"related\",\r\n //Potentially depretiated, but these are the ones that we had in folios...\r\n disclosures: \"disclosures\",\r\n modelfs: \"modelfs\",\r\n dww: \"dww\",\r\n roadmap: \"roadmap\",\r\n gra: \"gra\",\r\n investment: \"investment\",\r\n objectives: \"objectives\",\r\n embedded: \"embedded\",\r\n examples: \"examples\",\r\n questionsandanswers: \"questions-and-answers\",\r\n scenarios: \"scenarios\",\r\n omniatemplates: \"omnia-templates\",\r\n rptemplates:\"rp-templates\"\r\n}\r\n\r\nexport const PUBTYPES_CATALOG_PAGE = [\"folio\", \"manual\", \"standards\", \"deloitte-communications\", \"professional-news\"]\r\n\r\nexport const TEMPLATE_REPOSITORY_PUBLICATION_TYPES = {\r\n template_repository_publicaton_type: \"68169717\",\r\n template_repository_omnia_publicaton_type: \"58035381\",\r\n template_repository_account_publicaton_type: \"68489711\"\r\n}\r\n\r\nexport const REGEX_PATTERN = {\r\n doubleQuoted: /^\"([^\"]*)\"$/,\r\n wildcards: /^[\\*,\\/,\\?].*/, //eslint-disable-line\r\n homePageUrl: /^\\/{1}[a-z]{1,}\\/{1}[a-z \\- A-Z]+$/,\r\n DoubleForwardSlash: /(\\/{2,3})/g,\r\n error4xxSeries: /4\\d{2}/,\r\n error5xxSeries: /5\\d{2}/,\r\n anyDigit: /\\d/\r\n}\r\n\r\nexport const ARTICLE_DOWNLOAD = {\r\n HEADER: \"Download Alert\",\r\n BODY: \"Recommended download size has exceeded. Please select fewer items to download.\",\r\n SIZE_LIMIT: 40428800\r\n}\r\n\r\nexport const RESEARCH_ASSISTANT_FILTERS = {\r\n Frameworks: \"Frameworks\",\r\n KnowledgeDomain: \"KnowledgeDomain\"\r\n}\r\n\r\n\r\nexport const RESEARCH_ASSISTANT = {\r\n FEEDBACK_URL: \"https://deloitteus.service-now.com/sp?id=kb_article&sys_id=51414a5d1b8dc1d49cbfa8e82d4bcb33\",\r\n RA_CONVO_URL: \"/researchassistant\",\r\n AMBIGUOUS: \"AMBIGUOUS\",\r\n UNANSWERABLE: \"UNANSWERABLE\",\r\n raIntroduction: 'Hello! I am the Research Assistant. I am a generative AI assistant that can help research audit-related questions based on content in Research Portal. I have access to Deloitte guidance, including manuals, guides, practice aids, and Q&As.',\r\n unableToAnswerText: 'For very detailed questions on what audit procedures you need to perform, you will need to refer to Omnia (and/or Levvia). I am also not going to answer questions related to internal Deloitte policies (talent, independence etc.).',\r\n conditionalStringINT: \"Be sure to review any local requirements, policies, and/or guidance that may be relevant to an engagement in your jurisdiction.\",\r\n conditionalStringUS : \"Securities and Exchange Commission(SEC) statements\",\r\n contentExclustionProfessionalStandard : 'Professional standards and other external materials',\r\n contentExclustionDeloitteCommunication : 'Deloitte communications',\r\n termsofuse: \"

Purpose

Research Assistant is an integrated search and conversational AI tool within Research Portal. It enables Deloitte professionals to efficiently search for information within Research Portal. By using this tool, you agree to these terms. If you do not agree, do not use the tool.

Internal Use Only

Research Assistant is intended solely for the internal use for Deloitte professionals.

Descriptive of Service

Output Quality

Output quality is your responsibility. You must ensure the accuracy, completeness and relevance of any output generated. Responses from Research Assistant may be inaccurate, unclear, incomplete, or out of date. Users must review all outputs and associated source material thoroughly.

\"\r\n}\r\n\r\nexport const RESEARCH_ASSISTANT_SOURCE_TYPES = {\r\n DOCUMENT: \"DOCUMENT\",\r\n FORMS_AND_TEMPLATES: \"FORMS_AND_TEMPLATES\"\r\n}\r\n \r\n\r\nexport const APPLICATION_INSIGHTS_CONSTANTS = {\r\n annotation_name: \"ANNOTATION\",\r\n annotation_eventType: \"annotation\",\r\n bookmark_name: \"BOOKMARK\",\r\n bookmark_eventType: \"bookmark\"\r\n}\r\n\r\nexport const SESSION_STORAGE_CONSTANTS = {\r\n selected_content: \"SelectedContent\",\r\n page_type: \"PageType\",\r\n level: \"Level\"\r\n}\r\n\r\nexport const LOCAL_STORAGE_CONSTANTS = {\r\n research_portal_memberfirm: \"research-portal-member-firm\"\r\n}\r\n\r\nexport const RESEARCH_ASSISTANT_ERROR_TYPES = {\r\n NO_CONTENT:\"NO_CONTENT\"\r\n}\r\n\r\nexport const COUNTRY_LANGUAGE = {\r\n DEFAULT_LANGUAGE: \"en-US\"\r\n}\r\n\r\nexport const MemberFirmID = {\r\n dtt: '17573177'\r\n}\r\nexport const REVISION_HISTORY = {\r\n revision_history: '67748346'\r\n}\r\nexport const Learning_Api_Call = {\r\n \"title\": {\r\n \"Content\": {\r\n \"icon\": null,\r\n \"preTitle\": null,\r\n \"title\": \"Learning Resorces\",\r\n \"intro\": \"Learning Resorces\",\r\n \"body\": null\r\n },\r\n \"SchemaId\": 1721,\r\n \"Metadata\": {\r\n \"view\": null,\r\n \"altText\": null,\r\n \"standardMeta\": {\r\n \"friendlyPath\": \"learning\",\r\n \"dateCreated\": \"0001-01-01T00:00:00\",\r\n \"description\": null,\r\n \"name\": null,\r\n \"introText\": null,\r\n \"author\": null\r\n }\r\n },\r\n \"Id\": 1811,\r\n \"ContextId\": 0,\r\n \"Namespace\": \"tcm\",\r\n \"Folder\": {\r\n \"Id\": 465,\r\n \"Title\": \"Sections\"\r\n },\r\n \"LinkUrl\": null,\r\n \"BinaryContent\": null,\r\n \"XpmMetadata\": null,\r\n \"MvcData\": null,\r\n \"ComponentTemplate\": null,\r\n \"PublicationGUID\": null\r\n },\r\n \"context\": [\r\n {\r\n \"resultLimit\": 0,\r\n \"publicationType\": {\r\n \"Metadata\": null,\r\n \"Id\": 1751,\r\n \"Namespace\": \"1\",\r\n \"Description\": \"Announcements\",\r\n \"Key\": \"60194864\",\r\n \"TaxonomyId\": 442,\r\n \"Title\": \"Announcement\"\r\n },\r\n \"auditWorkflowArea\": null,\r\n \"auditWorkflowAreaAccount\": null,\r\n \"industry\": null,\r\n \"contentType\": null,\r\n \"contextFilterArea\": null,\r\n \"knowledgeDomainFilterArea\": null,\r\n \"publicationLists\": null,\r\n \"viewAllLinkText\": null,\r\n \"publicationListsQuerySpec\": null\r\n },\r\n {\r\n \"resultLimit\": 0,\r\n \"publicationType\": {\r\n \"Metadata\": null,\r\n \"Id\": 2489,\r\n \"Namespace\": \"1\",\r\n \"Description\": \"Announcements\",\r\n \"Key\": \"65511719\",\r\n \"TaxonomyId\": 442,\r\n \"Title\": \"Announcement - External\"\r\n },\r\n \"auditWorkflowArea\": null,\r\n \"auditWorkflowAreaAccount\": null,\r\n \"industry\": null,\r\n \"contentType\": null,\r\n \"contextFilterArea\": null,\r\n \"knowledgeDomainFilterArea\": null,\r\n \"publicationLists\": null,\r\n \"viewAllLinkText\": null,\r\n \"publicationListsQuerySpec\": null\r\n }\r\n ],\r\n \"tableOfContents\": null,\r\n \"embeddedPublication\": null,\r\n \"sectionFriendlyPath\": \"learning\",\r\n \"sectionContainsPublications\": true\r\n}\r\nexport const LINK_REDIRECTION_CONSTANTS = {\r\n Link_Redirection_URL_Identifier: \"/content/docid=\"\r\n}\r\n","export const ErrorCodes = {\r\n Default:1000,\r\n LoginPage: 1,\r\n Annotation: 1010,\r\n Highlight: 1011,\r\n Bookmark: 1012,\r\n Article: 1020,\r\n Catalog: 1030,\r\n Collection: 1031,\r\n Common:1040,\r\n Header: 1041,\r\n Link: 1042,\r\n Search: 1043,\r\n Folio:1050,\r\n FolioSectionTOC: 1051,\r\n FolioArticle: 1052,\r\n Guidebook:1050,\r\n GuidebookSectionTOC: 1051,\r\n GuidebookArticle: 1052,\r\n Home:1060,\r\n Journal:1070,\r\n JournalArticle: 1071,\r\n Loading:1080,\r\n Manual:1090, \r\n Publication:2000,\r\n RelatedContent:2010,\r\n ResearchBoard:2020,\r\n Search:2025,\r\n Settings:2030,\r\n Toolbar:2040,\r\n Context: 2050,\r\n PageContext: 2051,\r\n Helpers:2060,\r\n History: 2061,\r\n Services:3000,\r\n RPService: 3001,\r\n};\r\n\r\nexport const ErrorTypes = {\r\n Error: 'error',\r\n Warning: 'warning',\r\n}\r\n\r\nexport const ErrorMessages = {\r\n opmInfo: 'Error checking user profile access',\r\n tokenAquisitionError : 'Error Acquiring Token for logged in User',\r\n userRoles : 'Error fetching user roles',\r\n //download file\r\n retrieveWholePublicationDownload: \"DownloadPanel:Error retreiving whole publication for download:\",\r\n downloadWord: \"DownloadPanel:Error converting package to a word document:\",\r\n downloadBinary: \"DownloadPanel:Error requesting a binary:\",\r\n downloadZip: \"DownloadPanel:Error converting package to a zip document:\",\r\n convertWord : \"RP-Services:: Error in Convert word api\", \r\n\r\n //ShareModal\r\n shareModalCopyText: \"CopyText:Unable to copy text:\",\r\n\r\n //Collection\r\n collectionData: \"getData::Collection:Error loading collection data\",\r\n //collectionSearch\r\n searchResultsCollection: \"Error loading search results for collection\",\r\n\r\n //Catalog/index\r\n catalogData: \"fetchCatalog::Catalog:Error fetching Catalog data\",\r\n recentHistoryData: \"fetchRecentHistory::Catalog:Error fetching recent history data\",\r\n catalogSections:\"getCatalogSections:Error fetching Catalog data\",\r\n folioSections: \"getFolioSections:Error fetching Folio Section data\",\r\n linkTopic:\"retrieveTopic:Error fetching Topic data\",\r\n\r\n //linkResolver\r\n //linkResolver: \"LinkHandler::Error resolving link:\",\r\n\r\n //header\r\n header: \"retreiveResource::Error getting resource\",\r\n\r\n //dropdownPreference\r\n industryList: \"Framework and/or Industry Taxonomy was not able to be loaded\",\r\n\r\n //contentArticle/index\r\n contentArticle: \"fetchArticle::Error getting content article \",\r\n\r\n //guidebokArticle\r\n recentlyViewed: \"RecentlyViewedHistory:Error Processing RecentlyViewed:\",\r\n guidebookArticle: \"retrievePublication::Error getting guidebook publication\",\r\n publicationSearch: \"PublicationSearch: Error retreiving search results\",\r\n\r\n //guidebbokSectionTOC\r\n guidebookSection: \"Error Getting GuideBookSection\",\r\n\r\n //guidebook/index\r\n guidebookPublication: \"retrieveGuidebook::Error setting GuidebookPublication, tPubInfo\",\r\n\r\n //homeScreen\r\n homeScreen: \"fetchLanding::Error tracking PageView\",\r\n\r\n //journal/index\r\n annotationTOC: \"retreiveAnnotationList::Error setting TocAnnotations\",\r\n bookmarkTOC: \"Error setting TocIconBookmark\",\r\n journalPublication: \"retrieveJournal::Error getting Journals\",\r\n\r\n //journalArticle\r\n recentlyViewedUpdate: \"RecentlyViewedHistory:Error Updating RecentlyViewed\",\r\n journalSearch: \"JournalSearch: Error mapping search results\",\r\n\r\n //Manual/index\r\n ManualPublication: \"retrieveManual:Error retrieving manual\",\r\n\r\n //ManualArticle\r\n manualArticle: \"retrievePublication:Error setting PubData\",\r\n manualSearch: \"ManualSearch: Error mapping search results\",\r\n\r\n //HighlightOverlay\r\n highlightOverlay: \"saveHighlightHandler:Error saving highlights\",\r\n\r\n //ArticlereadingMode\r\n pdfHandler: \"pdfHandler:Error No download delegate is available on page\",\r\n\r\n //publicationListing\r\n PublicationListing: \"getTocSectionTitle:Error getGuidebookSectionData\", //original\r\n \r\n //PublicationListingresults\r\n // tocSectionTitle: \"getTocSectionTitle: Error retreiving TocSectionTitle\",\r\n //publicationSearch: \"PublicationSearch: Error retreiving search results\",\r\n\r\n //publicationSearch\r\n // publicationSearch: \"PublicationSearch: Error retreiving search results\",\r\n\r\n //tocItem\r\n tocItem: \"expandIfChildIsSelected:Error expandIfChildIsSelected\",\r\n\r\n //pageCOntext\r\n settings: \"Settings and Member Firms cannot be loaded.\",\r\n resource: \"Resource cannot be loaded.\",\r\n footer: \"Footer Cannot be Retrieved\",\r\n\r\n //annotationServices\r\n annotationFetch: \"Error while retrieving the annotation\",\r\n annotationCreate: \"Error while creating the annotation\",\r\n annnotationUpdate: \"Error while updating the annotation\",\r\n annotationDelete: \"Error while deleting the annotation\",\r\n\r\n //ArticleHelper\r\n tocSectionTitle: \"getTocSectionTitle: Error retreiving TocSectionTitle\",\r\n\r\n //BookmarkServices\r\n bookmarkFetch: \"Error while retrieving the Bookmark\",\r\n bookmarkCreate: \"Error while creating the Bookmark\",\r\n bookmarkDelete: \"Error while deleting the Bookmark\",\r\n\r\n //CategoryServices\r\n categoryFetch: \"Error while retrieving the Categories\",\r\n categoryCreate: \"Error while creating the Categories\",\r\n categoryDelete: \"Error while deleting the Categories\",\r\n categoryUpdate: \"Error while updating the Categories\",\r\n\r\n //JumpLinkHelpers\r\n jumplinks: \"[Error JumpLinkHelpers:hasJumpLinks]\",\r\n\r\n //LinkHelper\r\n searchLinkResolve: \"resolveSearchLink::result does NOT have a subject, so cannot be resolved:\",\r\n folioLinkResolve: \"Error trying to resolve Folio Link:\",\r\n searchLinkResolve_Folio: \"resolveSearchLink::Folio search result does NOT have a found subject, so search result link cannot be resolved:\",\r\n tocLinkResolve: \"Cannot find target in the current Table Of Contents on this Page. Therefore cannot resolve/navigate to that location.\",\r\n linkResolver: \"LinkHelper:Error resolving Link:\",\r\n\r\n //RecentlyViewedServices\r\n recentlyViewedFetch: \"Error while retrieving the recently viewed history\",\r\n\r\n //RP-service\r\n fetchHandleError: \"RPService::fetchAndHandleErrors:Error\",\r\n contentErrorMessage: \"Oh no, something has gone wrong! Please try again later. If the problem persists, please contact support. Code – \",\r\n\r\n};\r\n\r\nexport const ResearchAssisantErrorMessages = {\r\n ra_errormessage_500: \"Research Assistant is unavailable, please try back shortly\",\r\n ra_errormessage_400: \"Research Assistant is unavailable, please try back shortly\"\r\n}","import { ErrorCodes, ErrorMessages } from '../components/Constants/Errors';\r\nimport CONTEXTHELPERS from '../helpers/ContextHelpers'\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\nimport { logs, page } from '../helpers/log.js';\r\nimport { InteractionRequiredAuthError } from \"@azure/msal-browser\";\r\n\r\n\r\n//TODO:\r\n// let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n// Some functions have the context as a param, we should use that instead of RE-generating it every single time we make a call!\r\n\r\nconst cache = {};\r\nconst UPSEndPoint = window.DART && window.DART.ENV ? window.DART.ENV.REACT_APP_UPS_ENDPOINT_API : null;\r\nconst DCSEndPoint = window.DART && window.DART.ENV ? window.DART.ENV.REACT_APP_DCS_ENDPOINT_API : null;\r\nconst INK_CONTENT_PRERELEASE = (window.DART && window.DART.ENV) && (window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE ? window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE : window.DART.ENV.RP_REACT_APP_PREVIEW);\r\n\r\nvar controller = new AbortController();\r\nfunction cleanEndpoint(endpoint) {\r\n return endpoint.replace(/[^\\x20-\\x7E]/g, ''); //removes hidden characters that were being picked up and causing issues with the url. If no hidden characters this does nothing.\r\n}\r\n\r\nfunction defaultHeaders() {\r\n let defaultheaders = new Headers();\r\n defaultheaders.append(\"Content-Type\", \"application/json\");\r\n defaultheaders.append(\"Access-Control-Allow-Origin\", window.location.origin);\r\n defaultheaders.append(\"api-version\", \"1\");\r\n defaultheaders.append(\"INK_CONTENT_PRERELEASE\", INK_CONTENT_PRERELEASE);\r\n return defaultheaders;\r\n}\r\n\r\nfunction defaultPostRequestOptions(urlOverride = \"\", searchPhrase, searchParams, searchResults, pubtype) {\r\n if (urlOverride !== \"\") {\r\n let contextOverride = CONTEXTHELPERS.generateContext(urlOverride);\r\n return contextPostRequestOptions(JSON.stringify(contextOverride));\r\n }\r\n else {\r\n const context = CONTEXTHELPERS.generateContext(window.location.href);\r\n return contextPostRequestOptions(JSON.stringify(context));\r\n }\r\n}\r\n\r\nconst UPSUserID = () => {\r\n const userIdentifier = UTILITIESHELPER.isStringNullorEmpty(localStorage.getItem(\"globalPersonUid\")) ? CONTEXTHELPERS.debugUserId : localStorage.getItem(\"globalPersonUid\");\r\n return userIdentifier\r\n}\r\n\r\nfunction contextPostRequestOptions(contextAsJSONOverride) {\r\n var requestOptions = {\r\n method: 'POST',\r\n headers: defaultHeaders(),\r\n mode: 'cors',\r\n body: contextAsJSONOverride,\r\n signal:null\r\n \r\n };\r\n return requestOptions;\r\n}\r\n\r\nfunction contextPutRequestOptions(contextAsJSONOverride) {\r\n return {\r\n method: 'PUT',\r\n headers: defaultHeaders(),\r\n mode: 'cors',\r\n body: contextAsJSONOverride\r\n };\r\n}\r\n\r\nfunction contextDeleteRequestOptions(contextAsJSONOverride) {\r\n return {\r\n method: 'DELETE',\r\n headers: defaultHeaders(),\r\n mode: 'cors',\r\n body: contextAsJSONOverride\r\n };\r\n}\r\n\r\nfunction contextGetRequestOptions() {\r\n return {\r\n method: 'GET',\r\n headers: defaultHeaders(),\r\n mode: 'cors',\r\n };\r\n}\r\n\r\n\r\nfunction guidebookSectionPostOptions(currentGuidebookSection) {\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n var guidebookSectionRequest = { guidebookSection: currentGuidebookSection, pageContext: context };\r\n var contextAsJSON = JSON.stringify(guidebookSectionRequest);\r\n\r\n //To not have decerialization issues on the BE, we Need to change the format of the request to match more of what Sites returned...\r\n /* wrap the contects:\r\n \"context\": [\r\n { .. }\r\n\r\n -->\r\n \"context\": {\r\n \"$type\": \"ContentModelData[]\",\r\n \"$values\": [\r\n { ... }\r\n */\r\n contextAsJSON = contextAsJSON\r\n .replace('\"context\":[{', '\"context\":{\"$type\":\"ContentModelData[]\",\"$values\":[{')\r\n .replace('}],', '}]},');\r\n\r\n return contextPostRequestOptions(contextAsJSON);\r\n}\r\nasync function resolveTopic(target, topicId = null) {\r\n if (!target) { return null; }\r\n\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n context.pageHashTag = \"\";\r\n context.pageRequestURL = target;\r\n\r\n if (topicId) {\r\n //BE Looks at this: pageContext.PageRequestURL\r\n context.pageSelectedPublicationGUID = \"\";\r\n context.pageSelectedContentItemGUID = \"\"\r\n context.pageRequestURL = topicId\r\n //context.pageSearchPhrase = \"publication-context\";\r\n }\r\n\r\n return fetchAndHandleErrors(\"/api/link/resolvetopic\", contextPostRequestOptions(JSON.stringify(context)), true);\r\n}\r\n\r\n\r\n//retrieval functions\r\nasync function retrieveContentArticle() {\r\n return fetchAndHandleErrors(\"/api/article\", defaultPostRequestOptions());\r\n}\r\n\r\nasync function retrieveLanding(context) {\r\n return fetchAndHandleErrors(\"/api/landing\", contextPostRequestOptions(JSON.stringify(context)), false);\r\n}\r\n\r\nasync function retrieveCatalog() {\r\n return fetchAndHandleErrors(\"/api/catalog\", defaultPostRequestOptions(), false);\r\n}\r\n\r\nasync function retrieveCatalogFolio() {\r\n return fetchAndHandleErrors(\"/api/catalog/folio\", defaultPostRequestOptions(), false);\r\n}\r\n\r\nasync function retrieveCollection() {\r\n return fetchAndHandleErrors(\"/api/collection\", defaultPostRequestOptions(), false);\r\n}\r\n\r\nasync function retrieveResearchAssistantCollection(requestOptions) {\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n context.memberFirm = requestOptions.memberFirm;\r\n context.knowledgeDomain = requestOptions.knowledgeDomain;\r\n context.language = requestOptions.language;\r\n context.pageCollectionName = requestOptions.pageCollectionName;\r\n context.pageControllerType = requestOptions.pageControllerType;\r\n context.pageFileName = requestOptions.pageFileName;\r\n context.pageType = requestOptions.pageType;\r\n return fetchAndHandleErrors(\"/api/collection\", contextPostRequestOptions(JSON.stringify(context)), false)\r\n}\r\n\r\nasync function retrieveManual() {\r\n return fetchAndHandleErrors(\"/api/manual\", defaultPostRequestOptions(), true);\r\n}\r\n\r\nasync function retrieveManualPublication() {\r\n var requestOptions = defaultPostRequestOptions();\r\n return fetchAndHandleErrorsWithStatusCode(\"/api/manual/publication\",requestOptions, true)\r\n}\r\n\r\nasync function retreiveSettings() {\r\n return fetchAndHandleErrors(\"/api/settings\",contextGetRequestOptions());\r\n}\r\n\r\nasync function retreiveCollectionSearchLimit() {\r\n return fetchAndHandleErrors(\"/api/settings/CollectionSearchLimit\");\r\n}\r\n\r\n//Note: this retrieves the whole publication and all of its contents.\r\nasync function retrieveAllContentsManual(selectedSpinePubGuidList) {\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n\r\n //We clear all the GUIDS except for the SPine (which we need to then ge the whole publication content for)\r\n context.pageSelectedSpineTargetPublicationGUID = context.pageSelectedPublicationGUID;\r\n context.pageSelectedPublicationGUID = null;\r\n context.PageSelectedPublicationTitle = \"\";\r\n context.pageSelectedContentItemGUID = null;\r\n context.PageSelectedContentItemTitle = \"\";\r\n context.pageSearchPhrase = \"\";\r\n context.pageSelectedSpineTargetPublicationGUIDList = selectedSpinePubGuidList;\r\n\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(context))\r\n return fetchAndHandleErrors(\"/api/manual/publication\", requestOptions, true);\r\n}\r\n\r\n\r\n\r\n//Note: this retrieves the whole publication and all of its contents.\r\nasync function retrieveAllContentsStandardPublication() {\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n context.pageSelectedSpineTargetPublicationGUID = \"\";\r\n context.pageSelectedPublicationGUID = context.pageSelectedPublicationGUID;\r\n context.PageSelectedPublicationTitle = \"\";\r\n context.pageSelectedContentItemGUID = \"\";\r\n context.PageSelectedContentItemTitle = \"\";\r\n context.pageSearchPhrase = \"\";\r\n context.pageSelectedSpineTargetPublicationGUIDList = \"\";\r\n\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(context));\r\n return fetchAndHandleErrors(\"/api/manual/publication\", requestOptions, true);\r\n}\r\n\r\n//Note: this retrieves the whole publication and all of its contents.\r\nasync function retrieveAllContentsGuidebookPublication() {\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n\r\n //We clear all the GUIDS except for the SPine (which we need to then ge the whole publication content for)\r\n context.pageSelectedSpineTargetPublicationGUID = \"\";\r\n context.pageSelectedPublicationGUID = context.pageSelectedPublicationGUID;\r\n context.PageSelectedPublicationTitle = \"\";\r\n context.pageSelectedContentItemGUID = \"\";\r\n context.PageSelectedContentItemTitle = \"\";\r\n context.pageSearchPhrase = \"\";\r\n context.pageSelectedSpineTargetPublicationGUIDList = \"\";\r\n\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(context));\r\n return fetchAndHandleErrors(\"/api/guidebook/publication\", requestOptions, true);\r\n}\r\n\r\nasync function retrieveManualPublicationVersions() {\r\n return fetchAndHandleErrors(\"/api/manual/publicationversions\", defaultPostRequestOptions(), true)\r\n}\r\n\r\nasync function retrieveJournal() {\r\n return fetchAndHandleErrors(\"/api/journal\", defaultPostRequestOptions(), true);\r\n}\r\n\r\nasync function retrieveJournalPublication() {\r\n return fetchAndHandleErrors(\"/api/journal/publication\", defaultPostRequestOptions(), true);\r\n}\r\n\r\nasync function retrieveGuidebook() {\r\n return fetchAndHandleErrors(\"/api/guidebook\", defaultPostRequestOptions(), true);\r\n}\r\n\r\nasync function retrieveGuidebookSection(currentGuidebookSection) {\r\n return fetchAndHandleErrors(\"/api/guidebook/section\", guidebookSectionPostOptions(currentGuidebookSection), true);\r\n}\r\n\r\nasync function retrieveGuidebookPublication(url = \"\") {\r\n return fetchAndHandleErrors(\"/api/guidebook/publication\", defaultPostRequestOptions(url), true);\r\n}\r\n\r\nasync function retrieveEmbedded() {\r\n return fetchAndHandleErrors(\"/api/embedded\", defaultPostRequestOptions(), true);\r\n}\r\n\r\nasync function retrieveHeader() {\r\n return fetchAndHandleErrors(\"/api/globalcomponents/header\", defaultPostRequestOptions(), false);\r\n}\r\n\r\nasync function retrieveFooter() {\r\n return fetchAndHandleErrors(\"/api/globalcomponents/footer\", defaultPostRequestOptions(), false);\r\n}\r\n\r\nasync function retrieveBlob(fileUrl, testToken = \"\") {\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n var splitUrl = fileUrl.split('/');\r\n //Need to strip out https://localhost:44330/\r\n if (splitUrl.length >= 7) {\r\n for (var i = 0; i < 3; i++) {\r\n splitUrl.shift();\r\n }\r\n }\r\n fileUrl = splitUrl.join('/');\r\n if (!fileUrl) { return \"\"; }\r\n\r\n context.pageRequestURL = fileUrl;\r\n\r\n //CHECK IF WE HAVE TO HAVE THE TOKEN HERE?\r\n if (testToken) {\r\n context.userToken = testToken;\r\n }\r\n\r\n // Fetch the original image\r\n return fetch('/api/file', contextPostRequestOptions(JSON.stringify(context)))\r\n // Retrieve its body as ReadableStream\r\n .then(response => response.body)\r\n .then(rs => {\r\n const reader = rs.getReader();\r\n return new ReadableStream({\r\n async start(controller) {\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n // When no more data needs to be consumed, break the reading\r\n if (done) {\r\n break;\r\n }\r\n // Enqueue the next data chunk into our target stream\r\n controller.enqueue(value);\r\n }\r\n // Close the stream\r\n controller.close();\r\n reader.releaseLock();\r\n }\r\n })\r\n })\r\n // Create a new response out of the stream\r\n .then(rs => new Response(rs))\r\n // Create an object URL for the response\r\n .then(response => { return response.blob(); })\r\n .catch(error => {\r\n logs.error(page.RPService, 'RPService', ErrorMessages.fetchHandleError, error, { eventId: ErrorCodes.RPService });\r\n });\r\n}\r\n\r\n/*NO LONGER USED/COMMENTED OUT IN CODE\r\nasync function retrieveBlobAsUrl(fileUrl, testToken = \"\") {\r\n return retrieveBlob(fileUrl, testToken)\r\n .then(blob => {\r\n return URL.createObjectURL(blob);\r\n })\r\n}*/\r\n\r\n/*NO LONGER USED/COMMENTED OUT IN CODE\r\nasync function retrieveBlobAsBase64(fileUrl, testToken) {\r\n return retrieveBlob(fileUrl, testToken).then(blob => {\r\n return new Promise((resolve, reject) => {\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(blob);\r\n\r\n reader.onloadend = () => {\r\n resolve(reader.result);\r\n };\r\n\r\n reader.onerror = reject;\r\n })\r\n })\r\n}*/\r\n\r\nasync function retrieveResource(context, resource) {\r\n //For resources, we do NOT care about \"knowledgeDomain\" so we do not \"need\" it, but it has to be in the URL, to be disected correctly into the context object.\r\n let url = `/${context.memberFirm}/${context.language}/knowledgeDomain/resource/${resource}`;\r\n return fetchAndHandleErrors(\"/api/resource\", defaultPostRequestOptions(url));\r\n}\r\n\r\nasync function retrieveSearchResults(searchPhrase, searchParams) {\r\n var postRequestOptions = defaultPostRequestOptions(\"\", searchPhrase, searchParams);\r\n return fetchAndHandleErrors(\"/api/search\", postRequestOptions);\r\n}\r\n\r\nasync function retrieveSearchResultsCatalog(searchPhrase, searchParams, pubtype) {\r\n var postRequestOptions = defaultPostRequestOptions(\"\", searchPhrase, searchParams, null, pubtype);\r\n return fetchAndHandleErrors(\"/api/search\", postRequestOptions);\r\n}\r\n\r\nasync function createComment(comment) {\r\n //depreciated\r\n return null;\r\n}\r\n\r\nasync function createHighlight(highlight) {\r\n //depreciated\r\n return null;\r\n}\r\n\r\nasync function getBookmarksForUser(userId) {\r\n //depreciated\r\n return null;\r\n}\r\n\r\nasync function updateRecentSearches(preference) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(preference));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/recentsearch/create\", requestOptions, false);\r\n}\r\n\r\nasync function getRecentSearches(preference) {\r\n const requestOptions = contextPostRequestOptions(JSON.stringify(preference));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/recentsearch/retrieve\", requestOptions, false);\r\n}\r\n\r\nasync function getRecentHistory(preference) {\r\n const requestOptions = contextPostRequestOptions(JSON.stringify(preference));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/RecentView/retrieve\", requestOptions, false);\r\n}\r\n\r\nasync function getRecentHistoryDashbaord(preference) {\r\n const requestOptions = contextPostRequestOptions(JSON.stringify(preference));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/RecentView/Dashboard\", requestOptions, false);\r\n}\r\n\r\nasync function updateRecentHistory(preference) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(preference));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/RecentView/create\", requestOptions, false);\r\n}\r\n\r\nasync function getCatagories(preference) {\r\n const reqturl = UPSEndPoint + \"/Category?opm_user_identifier=24601&member_firm_id=17573163&knowledge_domain_id=17573941\";\r\n const requestOptions = contextGetRequestOptions();\r\n return fetchAndHandleErrors(reqturl, requestOptions, false);\r\n}\r\n\r\nasync function getTokenFromMsal() {\r\n const DO_NOT_LOGIN = (window.location.href.indexOf('localhost') > 0);\r\n\r\n if (DO_NOT_LOGIN) {\r\n return window.DART.ENV.REACT_APP_ACCESSTOKEN;\r\n }\r\n\r\n const msalInstance = window.msalInstance;\r\n const accounts = msalInstance?.getAllAccounts();\r\n\r\n if (accounts?.length > 0) {\r\n try {\r\n const response = await msalInstance.acquireTokenSilent({\r\n scopes: [`${window.DART.ENV.REACT_APP_CLIENTID}/.default`],\r\n account: accounts[0]\r\n });\r\n return response.accessToken;\r\n } catch (error) {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n const response = await msalInstance.acquireTokenPopup({\r\n scopes: [`${window.DART.ENV.REACT_APP_CLIENTID}/.default`]\r\n });\r\n return response.accessToken;\r\n }\r\n }\r\n }\r\n\r\n return null\r\n}\r\n\r\nasync function fetchAndHandleErrors(endpoint, requestOptions) {\r\n let token = await getTokenFromMsal();\r\n requestOptions.headers.append(\"Authorization\", `Bearer ${token}`);\r\n\r\n //console.log(\"RP-Service::fetchAndHandleErrors:endpoint\",endpoint,requestOptions);\r\n return fetch(endpoint, requestOptions)\r\n .then(async response => {\r\n //console.log(\"RP-Service::fetchAndHandleErrors:response\", endpoint, response);\r\n if ((response.status === 204 || response.status > 400) && (!UTILITIESHELPER.isHistoryRequest(requestOptions))) {\r\n UTILITIESHELPER.setLocalStorage(\"isContentLoadError\", true);\r\n }\r\n if (!response.ok) {\r\n const text = await response.text();\r\n //const error = (data && data.message) || response.status;\r\n return Promise.reject(text);\r\n }\r\n const data = await response.json();\r\n //console.log(\"RP-Service::fetchAndHandleErrors:response.json()\", endpoint, JSON.stringify(data));\r\n return data;\r\n })\r\n .then(result => result)\r\n //.then(result => {\r\n // console.log(\"RP-Service::fetchAndHandleErrors:Result\", endpoint, result);\r\n // return result;\r\n //})\r\n .catch(error => {\r\n //When we get a NULL response, we just want to continue. The caller needs to handle the \"empty/null\" response.\r\n if (error.toString() === \"SyntaxError: Unexpected end of JSON input\") {\r\n return null;\r\n }\r\n\r\n //console.error('RP-Service::fetchAndHandleErrors:Error', endpoint, error);\r\n logs.error(page.RPService, 'RPService', ErrorMessages.fetchHandleError, endpoint, { eventId: ErrorCodes.RPService });\r\n return Promise.reject(error);\r\n });\r\n}\r\n\r\nasync function fetchAndHandleErrorsWithStatusCode(endpoint, requestOptions) {\r\n const token = await getTokenFromMsal();\r\n requestOptions.headers.append(\"Authorization\", `Bearer ${token}`);\r\n \r\n return fetch(endpoint, requestOptions)\r\n .then(async response => {\r\n if (response.status !== 200) {\r\n return {\r\n data: null,\r\n responseStatus: response.status\r\n };\r\n }\r\n \r\n const data = await response.json();\r\n return {\r\n data: data,\r\n responseStatus: response.status\r\n };\r\n })\r\n .then(result => result)\r\n .catch(error => {\r\n\r\n //default status as 0 for hiding status notification\r\n var res={\r\n data: null,\r\n responseStatus: 0 \r\n }\r\n //When we get a NULL response, we just want to continue. The caller needs to handle the \"empty/null\" response.\r\n if (error.toString() === \"SyntaxError: Unexpected end of JSON input\") {\r\n return null;\r\n }\r\n if(error.toString() === \"AbortError: signal is aborted without reason\"){\r\n return res;\r\n }\r\n \r\n logs.error(page.RPService, 'RPService', ErrorMessages.fetchHandleError, endpoint, { eventId: ErrorCodes.RPService });\r\n return Promise.reject(error);\r\n });\r\n}\r\n\r\nasync function fetchDefaultAndHandleErrors(endpoint, requestOptions) {\r\n const token = await getTokenFromMsal();\r\n requestOptions.headers.append(\"Authorization\", `Bearer ${token}`);\r\n\r\n return fetch(endpoint, requestOptions)\r\n .then(async response => {\r\n const data = await response.json();\r\n if (!response.ok) {\r\n // get error message from body or default to response status\r\n //console.error('RP-Service::fetchDefaultAndHandleErrors', error);\r\n return [];\r\n }\r\n //Logs too many times here!\r\n //console.log(\"RP-Service::fetchDefaultAndHandleErrors:data\",data);\r\n\r\n return data;\r\n })\r\n .then(result => result)\r\n .catch(() => {\r\n //console.warn('RP-Service::fetchDefaultAndHandleErrors', error);\r\n return [];\r\n });\r\n}\r\n\r\nfunction checkCache(requestUrl) {\r\n if (cache[requestUrl]) {\r\n const data = cache[requestUrl];\r\n return data;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction addToCache(requestUrl, data) {\r\n cache[requestUrl] = data;\r\n}\r\nasync function convertWord(htmlPackage) {\r\n const token = await getTokenFromMsal();\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(htmlPackage));\r\n requestOptions.headers.append(\"Authorization\", `Bearer ${token}`);\r\n if((window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE).toLowerCase()===\"true\"){\r\n const HtmlBodyHashCode=await UTILITIESHELPER.generateHash(htmlPackage.HtmlBody)\r\n requestOptions.headers.append(\"EncodedHtmlBody\", `${HtmlBodyHashCode}`);\r\n }\r\n let endpoint = '/api/word/';\r\n //retrieve file and trigger download on user's side\r\n //Added a try catch and await ,since Promise .then is not resolving here \r\n try {\r\n var response = await fetch(cleanEndpoint(endpoint), requestOptions);\r\n if (response) {\r\n const blob = await response.blob();\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = htmlPackage.FileName;\r\n document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\r\n a.click();\r\n a.remove(); //afterwards we remove the element again\r\n }\r\n }\r\n catch {\r\n logs.error(page.RPService, 'RPService', ErrorMessages.convertWord, endpoint, { eventId: ErrorCodes.RPService });\r\n }\r\n finally {\r\n return response.ok;\r\n }\r\n}\r\n\r\nasync function getResponseObject(endpoint, requestOptions, fileName) {\r\n const token = await getTokenFromMsal();\r\n requestOptions.headers.append(\"Authorization\", `Bearer ${token}`);\r\n try {\r\n var response = await fetch(cleanEndpoint(endpoint), requestOptions);\r\n if (response) {\r\n const blob = await response.blob();\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a); // we need to append the element to the dom -> otherwise it will not work in firefox\r\n a.click();\r\n a.remove(); //afterwards we remove the element again\r\n }\r\n }\r\n catch {\r\n logs.error(page.RPService, 'RPService', ErrorMessages.convertWord, endpoint, { eventId: ErrorCodes.RPService });\r\n }\r\n finally {\r\n return response.ok;\r\n }\r\n}\r\n\r\n//A generic file request function to be used in the downloadPanel or wherever else it needs to be used.\r\n//TODO: Change file.js and elsewhere to use this\r\nasync function requestFile(fileUri, fileName) {\r\n let fileInfo = {\r\n fileName: fileName,\r\n fileUri: fileUri\r\n };\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(fileInfo));\r\n return getResponseObject(cleanEndpoint('/secure/download/binaryfile'), requestOptions, fileName);\r\n}\r\n\r\nasync function requestPdfLoading(fileUri, fileName) {\r\n const token = await getTokenFromMsal();\r\n let fileInfo = {\r\n fileName: fileName,\r\n fileUri: fileUri\r\n };\r\n let requestOptions = contextPostRequestOptions(JSON.stringify(fileInfo));\r\n requestOptions.headers.append(\"Authorization\", `Bearer ${token}`)\r\n return await fetch(cleanEndpoint('/secure/download/binaryfile'), requestOptions)\r\n .then(response => response.blob())\r\n .then(blob => {\r\n return blob;\r\n });\r\n}\r\n\r\nasync function requestZip(htmlPackage, fileList, fileName) {\r\n var zipPackage = {\r\n articleHtml: htmlPackage.HtmlBody,\r\n fileRequests: fileList,\r\n articleTitle: fileName,\r\n content: htmlPackage.content,\r\n comment: htmlPackage.comment\r\n };\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(zipPackage));\r\n return getResponseObject(cleanEndpoint('/secure/download/zip'), requestOptions, htmlPackage.FileName);\r\n}\r\n\r\nasync function checkWhitelistForUser(email) {\r\n var requestOptions = contextPostRequestOptions(`{\"email\":\"${email}\"}`);\r\n return fetchDefaultAndHandleErrors(cleanEndpoint('/api/Whitelist'), requestOptions, false);\r\n}\r\n\r\n//Post method to get opm information\r\nasync function getOpmInfoByEmail(email) {\r\n var requestOptions = contextPostRequestOptions(`{\"email\":\"${email}\"}`);\r\n return fetchDefaultAndHandleErrors(cleanEndpoint(DCSEndPoint + '/api/OPM/opminfo'), requestOptions, false);\r\n}\r\n\r\n//Get method to get OPM information\r\nasync function getOpmInfo() {\r\n return fetchDefaultAndHandleErrors(cleanEndpoint(DCSEndPoint + '/api/OPM/opminfo'), contextGetRequestOptions(), false);\r\n}\r\n\r\nasync function retrieveFrameworkList(context, taxonomyMemberFirmContext = null) {\r\n let url = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/api/resource/taxonomy/framework`;\r\n return fetchAndHandleErrors(\"/api/resource/taxonomy/framework\", defaultPostRequestOptions(url));\r\n}\r\n\r\nasync function retrieveIndustryList(context) {\r\n //let url = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/api/resource/taxonomy/industry`;\r\n return fetchAndHandleErrors(\"/api/settings/industry\", contextGetRequestOptions());\r\n}\r\n\r\nasync function createOrUpdateRecentSearch(model) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(model));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/recentsearch/create\", requestOptions, false);\r\n}\r\n\r\n//Category Start\r\nasync function retrieveCategories(request) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/category/retrieve\", requestOptions, false);\r\n}\r\n\r\nasync function createCategory(request) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/category/create\", requestOptions, false);\r\n}\r\n\r\nasync function updateCategory(request, category_guid) {\r\n var requestOptions = contextPutRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + `/category/update?category_guid=${category_guid}`, requestOptions, false);\r\n}\r\n\r\nasync function deleteCategory(request) {\r\n var requestOptions = contextDeleteRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/category/delete\", requestOptions, false);\r\n}\r\n//Category End\r\n\r\n//Bookmark Start\r\nasync function retrieveBookmark(request) {\r\n const requestOptions = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/Bookmark/retrieve\", requestOptions, false);\r\n}\r\n\r\nasync function createBookmark(request) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/Bookmark/create\", requestOptions, false);\r\n}\r\n\r\nasync function deleteBookmark(request) {\r\n var requestOptions = contextDeleteRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/Bookmark/delete\", requestOptions, false);\r\n}\r\n//Bookmark End\r\n\r\n//AnnotationStart\r\nasync function retrieveAnnotation(request) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/annotation/retrieve\", requestOptions, false);\r\n}\r\n\r\nasync function createAnnotation(request) {\r\n var requestOptions = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/annotation/create\", requestOptions, false);\r\n}\r\n\r\nasync function updateAnnotation(request, annotation_guid) {\r\n var requestOptions = contextPutRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + `/annotation/update?annotation_guid=${annotation_guid}`, requestOptions, false);\r\n}\r\n\r\nasync function deleteAnnotation(request) {\r\n var requestOptions = contextDeleteRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(UPSEndPoint + \"/annotation/delete\", requestOptions, false);\r\n}\r\n//Annotation End\r\n\r\n//DCS START\r\nasync function resolveTargetLink(target, memberFirm, targetElement = \"\", publicationId = null, opmMF = null, knowledgeDomain = null, urlMemberFirm =null) {\r\n if (!target) { return null; }\r\n if (targetElement) {\r\n target = `${target}%23${targetElement}`;\r\n }\r\n\r\n let context = CONTEXTHELPERS.generateContext(window.location.href);\r\n var request = {\r\n country_code: memberFirm,\r\n opm_country_code: opmMF,\r\n knowledge_domain: knowledgeDomain,\r\n default_language: context.language,\r\n effective_date: new Date(),\r\n publication_Id: publicationId,\r\n url_memberfirm: urlMemberFirm\r\n }\r\n var requestBody = contextPostRequestOptions(JSON.stringify(request));\r\n return fetchAndHandleErrors(DCSEndPoint + `/links/${target}`, requestBody);\r\n}\r\n//DCS END\r\n\r\nconst RETRIEVALSERVICES = {\r\n addToCache,\r\n checkCache,\r\n checkWhitelistForUser,\r\n contextPostRequestOptions,\r\n convertWord,\r\n createAnnotation,\r\n createBookmark,\r\n createCategory,\r\n createComment,//depreciated-but still used in the code?!\r\n createHighlight,//depreciated-but still used in the code?!\r\n createOrUpdateRecentSearch,\r\n deleteAnnotation,\r\n deleteBookmark,\r\n deleteCategory,\r\n getBookmarksForUser,//depreciated-but still used in the code?!\r\n getCatagories,\r\n getOpmInfoByEmail,\r\n getRecentHistory,\r\n getRecentHistoryDashbaord,\r\n getRecentSearches,\r\n requestFile,\r\n requestPdfLoading,\r\n requestZip,\r\n resolveTopic,\r\n retreiveCollectionSearchLimit,\r\n retreiveSettings,\r\n retrieveAllContentsGuidebookPublication,\r\n retrieveAllContentsManual,\r\n retrieveAnnotation,\r\n retrieveBookmark,\r\n retrieveCatalog,\r\n retrieveCategories,\r\n retrieveCollection,\r\n retrieveContentArticle,\r\n retrieveEmbedded,\r\n retrieveFooter,\r\n retrieveFrameworkList,\r\n retrieveGuidebook,\r\n retrieveGuidebookPublication,\r\n retrieveGuidebookSection,\r\n retrieveHeader,\r\n retrieveIndustryList,\r\n retrieveJournal,\r\n retrieveJournalPublication,\r\n retrieveLanding,\r\n retrieveManual,\r\n retrieveManualPublication,\r\n retrieveManualPublicationVersions,\r\n retrieveResource,\r\n retrieveSearchResults,\r\n retrieveSearchResultsCatalog,\r\n updateAnnotation,\r\n updateCategory,\r\n updateRecentHistory,\r\n updateRecentSearches,\r\n UPSUserID, \r\n retrieveResearchAssistantCollection,\r\n resolveTargetLink,\r\n retrieveAllContentsStandardPublication,\r\n retrieveCatalogFolio\r\n}\r\n\r\nexport default RETRIEVALSERVICES;","//component-processing functions\r\n\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\nimport { cloneDeep } from \"lodash\";\r\nimport { logs, page } from '../helpers/log.js';\r\nimport { PAGE_CONTROLLER_TYPE, PUBLICATIONTYPE_IDS } from '../components/Constants/Constants';\r\nimport RETRIEVALSERVICES from '../services/rp-service';\r\nimport { ErrorCodes, ErrorMessages } from '../components/Constants/Errors';\r\n\r\nconst RESERVED_FOOTNOTE_CALLOUT_VALUES = [\r\n null,\r\n undefined,\r\n 'xref',\r\n 'ordered list',\r\n 'unordered list'\r\n]\r\n\r\n\r\nfunction extractAnnotationOrAssociatedContent(item, publication) {\r\n var relationArray = [];\r\n\r\n //Loop through the relationship tables, see if any of the guids match this item's guid.\r\n var i;\r\n if (publication.publicationContent !== undefined && publication.publicationContent.relations !== undefined) {\r\n for (i = 0; i < publication.publicationContent.relations.length; i++) {\r\n var currentRelation = publication.publicationContent.relations[i];\r\n var j;\r\n for (j = 0; j < currentRelation.content.table.rows.length; j++) {\r\n var currentRow = currentRelation.content.table.rows[j];\r\n\r\n var k;\r\n for (k = 0; k < currentRow.columns[0].values.length; k++) {\r\n if (currentRow.columns[0].values[k] === item.id) {\r\n //We have an annotation or a related link to generate.\r\n //Look at the publication's resources, find the one with the matching guid from the table.\r\n\r\n //logs.debug(page.Article, 'ArticleHelper', \"Annotation caught!\", currentRow.columns[0].values[0], props.item.id);\r\n var relatedId = currentRow.columns[1].values[k];\r\n var resources = publication.publicationContent.resources;\r\n\r\n extractRelationFromResources(relatedId, resources, relationArray);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return relationArray;\r\n}\r\n\r\nfunction extractRelationFromResources(targetId, resources, relationArray) {\r\n var l;\r\n for (l = 0; l < resources.length; l++) {\r\n if (resources[l].id === targetId) {\r\n //logs.debug(page.Article, 'ArticleHelper', \"Test\", resources[k].id, relatedId);\r\n relationArray.push(resources[l]);\r\n break;\r\n }\r\n else if (resources[l].subItems.length > 0) {\r\n extractRelationFromResources(targetId, resources[l].subItems, relationArray);\r\n }\r\n }\r\n}\r\n\r\n// #region Footnote Extraction Helpers\r\n\r\n/**\r\n * Generator function that counts up from 1\r\n * @returns Generator object\r\n */\r\nfunction* footnoteNumberGenerator() {\r\n let iterationCount = 0;\r\n for (let i = 1; i < Infinity; i++) {\r\n iterationCount++;\r\n yield i;\r\n }\r\n return iterationCount++;\r\n}\r\n\r\n/**\r\n * Test if a value is a reserved Footnote Callout value\r\n * @param {String|nul} value \r\n * @returns Boolean\r\n */\r\nfunction isReservedFootnoteCalloutValue(value) {\r\n return RESERVED_FOOTNOTE_CALLOUT_VALUES.indexOf(value) > -1;\r\n}\r\n\r\n/**\r\n * Creates markup for a footnote link in content\r\n * @param {String} key \r\n * @param {String} label \r\n * @returns String HTML String replesenting an inline footnote\r\n */\r\nfunction createMarkupFootnote(key, label) {\r\n return `\r\n ${label}\r\n
\r\n
`;\r\n}\r\n\r\n/**\r\n * Gets the next numeric value key\r\n * \r\n * Being the that an author can add their own numeric callout values to a \r\n * footnote, we need to ensure that we skip those values when generating \r\n * numeric values for footnotes with no callout\r\n * \r\n * @param {Generator} generator numeric generator\r\n * @param {Array} reservedValues List of values to avoid\r\n * @returns \r\n */\r\nfunction getNextValueKey(generator, reservedValues) {\r\n let key;\r\n let valid = false;\r\n do {\r\n key = generator.next().value;\r\n valid = reservedValues.indexOf(key.toString()) === -1;\r\n } while (!valid);\r\n return key;\r\n}\r\n\r\nfunction getBreadcrumbData() {\r\n const elBreadcrumbdata = document.querySelectorAll(\".breadcrumb\");\r\n const arrBreadCrumb = [];\r\n if (elBreadcrumbdata !== null) {\r\n elBreadcrumbdata.forEach((el) => { arrBreadCrumb.push(el.innerHTML) })\r\n }\r\n return arrBreadCrumb.join(' / ')\r\n}\r\n\r\n/**\r\n * Encodes input as a underscode sperated charCode string (ex: 51_53)\r\n * This will handle most locales\r\n * @param {String|Int|Number} input \r\n * @returns String\r\n */\r\nfunction encodeKeyString(input) {\r\n return input\r\n .toString()\r\n .split('')\r\n .map(x => x.charCodeAt(0))\r\n .join('_');\r\n}\r\n\r\n/**\r\n * @param {String} content \r\n * @returns HTMLDocument\r\n */\r\nfunction getContentHtmlDocument(content) {\r\n var safeContent = \"
\" + content + \"
\";\r\n var parser = new DOMParser();\r\n return parser.parseFromString(safeContent, \"text/html\");\r\n}\r\n\r\n/**\r\n * Parse content for footnotes and retreive callout attr, or null if non-existent \r\n * @param {String} content \r\n * @returns Array An array of callouts\r\n */\r\nfunction parseFootnoteCallouts(content) {\r\n var htmlDoc = getContentHtmlDocument(content);\r\n return Array.from(htmlDoc.getElementsByTagName(\"fn\")).map(el => el.getAttribute('callout'));\r\n}\r\n\r\n/**\r\n * Extracts author defined footnote callouts from rich text title\r\n * @param {Object} _item current content item\r\n * @param {Array} calloutArray Array for callouts extractedfrom footnotes\r\n * @returns Array containing foonnote callout values\r\n */\r\nfunction extractFootnoteRTTCallouts(_item, calloutArray) {\r\n const item = cloneDeep(_item);\r\n\r\n // parse current item callouts \r\n calloutArray = [...calloutArray, ...parseFootnoteCallouts(item)];\r\n\r\n // filter out reserved callout values \r\n const filteredCalloutArray = calloutArray.filter(x => !isReservedFootnoteCalloutValue(x));\r\n\r\n return filteredCalloutArray;\r\n}\r\n\r\n/**\r\n * Recursively extracts author defined footnote callouts\r\n * @param {Object} _item current content item\r\n * @param {Array} calloutArray Array for callouts extractedfrom footnotes\r\n * @returns Array containing foonnote callout values\r\n */\r\nfunction extractFootnoteCallouts(_item, calloutArray) {\r\n const item = cloneDeep(_item);\r\n\r\n //parse the title first\r\n if (item.content && item.content?.rich_text_title && UTILITIESHELPER.IsTextHavingFnTag(item.content?.rich_text_title)) {\r\n calloutArray = [...calloutArray, ...parseFootnoteCallouts(item.content?.rich_text_title)];\r\n }\r\n\r\n // parse current item callouts\r\n if (item.content && item.content.text) {\r\n calloutArray = [...calloutArray, ...parseFootnoteCallouts(item.content.text)];\r\n }\r\n\r\n // parse child items callouts\r\n if (item.subItems) {\r\n item.subItems.forEach(subItem => {\r\n calloutArray = extractFootnoteCallouts(subItem, calloutArray);\r\n })\r\n }\r\n\r\n // filter out reserved callout values \r\n const filteredCalloutArray = calloutArray.filter(x => !isReservedFootnoteCalloutValue(x));\r\n\r\n return filteredCalloutArray;\r\n}\r\n\r\n// #endregion\r\n\r\n\r\nfunction updateFootnoteContent(htmlContent, footnoteArray, calloutArray, numberGenerator, ignoreDiv = false) {\r\n if(ignoreDiv){\r\n let parser = new DOMParser();\r\n var xmlDoc = parser.parseFromString(htmlContent, \"text/html\");\r\n } else {\r\n xmlDoc = getContentHtmlDocument(htmlContent)\r\n }\r\n\r\n // retreive all fn elements\r\n var fnElements = Array.from(xmlDoc.getElementsByTagName('fn'));\r\n\r\n // filter out undefined fn elements and then process each fn element\r\n fnElements.filter(fn => fn !== undefined)\r\n .forEach(fn => {\r\n // Footnote label (superscript)\r\n // retrieve authored label\r\n let label = fn.getAttribute('callout')\r\n\r\n // if authored label is not a reserved value\r\n label = !isReservedFootnoteCalloutValue(label)\r\n // use the authored label\r\n ? label\r\n // else use the next valid numeric value key\r\n : getNextValueKey(numberGenerator, calloutArray);\r\n\r\n let labelForEncoding = label;\r\n let footnoteArrayElementCount = footnoteArray.filter(e => e.label === label).length;\r\n if (footnoteArrayElementCount > 0) {\r\n labelForEncoding = labelForEncoding + ' ' + footnoteArrayElementCount;\r\n }\r\n \r\n // Footnote key for linking\r\n const key = encodeKeyString(labelForEncoding);\r\n const idOfRTT = fn.children[0] ? !UTILITIESHELPER.isStringNullorEmpty(fn.children[0].id) ? fn.children[0].id :fn.id : fn.id;\r\n const existingFootnote = footnoteArray.find(obj=>obj.idOfRTT===idOfRTT);\r\n if(!existingFootnote || UTILITIESHELPER.isStringNullorEmpty(idOfRTT)){\r\n // Footnote text (content)\r\n // remove the xml tags, if they exist.\r\n const text = fn.innerHTML.replace(/|<\\/cite>/gi, \"\");\r\n var footnote = { text, number: key, label, idOfRTT };\r\n // Create Footnote object and push to footnoteArray\r\n footnoteArray.push(footnote);\r\n }\r\n \r\n // Replace fn element with footnote markup\r\n fn.outerHTML = createMarkupFootnote(key, label);\r\n });\r\n return xmlDoc.body.innerHTML;\r\n}\r\n/**\r\n * Recursively extract footnotes from content\r\n * @param {Object} _item Item to parse\r\n * @param {Array} footnoteArray Array of footnote objects\r\n * @param {Array} calloutArray Array of authored callouts\r\n * @param {Generator} numberGenerator \r\n * @returns Array An array containing footnotes [0] and the processed item [1]\r\n */\r\nfunction extractFootnotes(_item, footnoteArray, calloutArray, numberGenerator) {\r\n let item = cloneDeep(_item);\r\n\r\n // item has content & content text, extractfootnotes\r\n if (item.content && item.content.text) {\r\n item.content.text = updateFootnoteContent(item.content.text, footnoteArray, calloutArray, numberGenerator);\r\n }\r\n\r\n //parse rich text in title\r\n if (item.content?.rich_text_title && UTILITIESHELPER.IsTextHavingFnTag(item.content?.rich_text_title)) {\r\n // update item.content.rich_text_title with processed xml serialized to a string\r\n item.content.rich_text_title = updateFootnoteContent(item.content.rich_text_title, footnoteArray, calloutArray, numberGenerator, true);\r\n }\r\n\r\n // if item has subItems, recursively extract footnotes for each item\r\n if (item.subItems) {\r\n item.subItems.forEach((subItem, idx, sourceArr) => {\r\n const [\r\n extractedFootnotes,\r\n processedItem\r\n ] = extractFootnotes(subItem, footnoteArray, calloutArray, numberGenerator);\r\n footnoteArray = extractedFootnotes.flat();\r\n sourceArr[idx] = processedItem;\r\n });\r\n }\r\n\r\n return ([footnoteArray, item]);\r\n}\r\n\r\n//process and create super script using rich text title\r\nfunction createTitleMarkupFootnote(_item, numberGenerator) {\r\n let item = cloneDeep(_item);\r\n let calloutArray = [];\r\n let titleFnArray = [];\r\n calloutArray = extractFootnoteRTTCallouts(item, calloutArray);\r\n // get content as html\r\n var htmlDoc = getContentHtmlDocument(item)\r\n\r\n // retreive all fn elements\r\n var fnElements = Array.from(htmlDoc.getElementsByTagName('fn'));\r\n\r\n // filter out undefined fn elements and then process each fn element\r\n fnElements.filter(fn => fn !== undefined)\r\n .forEach(fn => {\r\n // Footnote label (superscript)\r\n // retrieve authored label\r\n let label = fn.getAttribute('callout')\r\n // if authored label is not a reserved value\r\n let isreserved = isReservedFootnoteCalloutValue(label);\r\n let nextVal = getNextValueKey(numberGenerator, calloutArray);\r\n label = !isreserved\r\n // use the authored label\r\n ? label\r\n // else use the next valid numeric value key\r\n : nextVal\r\n\r\n // Footnote key for linking\r\n const key = encodeKeyString(label);\r\n\r\n titleFnArray.push(createMarkupFootnote(key, label));\r\n });\r\n\r\n let regex = new RegExp(\"()(.*)(<\\/fn>)\", \"g\"); // eslint-disable-line\r\n let num = 0;\r\n item = UTILITIESHELPER.removeLargeSpacesFromRichText(item);\r\n let ArticleTitle = item.replace(regex, titleFnArray[num]);\r\n return ArticleTitle;\r\n}\r\n\r\nfunction extractFootnotesFromRTT(_item, numberGenerator) {\r\n let item = cloneDeep(_item);\r\n let calloutArray = [];\r\n let footnoteArray = [];\r\n calloutArray = extractFootnoteRTTCallouts(item, calloutArray);\r\n // get content as html\r\n var htmlDoc = getContentHtmlDocument(item)\r\n\r\n // retreive all fn elements\r\n var fnElements = Array.from(htmlDoc.getElementsByTagName('fn'));\r\n\r\n // filter out undefined fn elements and then process each fn element\r\n fnElements.filter(fn => fn !== undefined)\r\n .forEach(fn => {\r\n // Footnote label (superscript)\r\n // retrieve authored label\r\n let label = fn.getAttribute('callout')\r\n // if authored label is not a reserved value\r\n let isreserved = isReservedFootnoteCalloutValue(label);\r\n label = !isreserved\r\n // use the authored label\r\n ? label\r\n // else use the next valid numeric value key\r\n : getNextValueKey(numberGenerator, calloutArray);\r\n\r\n // Footnote key for linking\r\n const key = encodeKeyString(label);\r\n\r\n // Footnote text (content)\r\n // remove the xml tags, if they exist.\r\n const text = fn.innerHTML.replace(/|<\\/cite>/gi, \"\");\r\n const idOfRTT = fn.children[0] ? fn.children[0].id : fn.id;\r\n\r\n // Create Footnote object and push to footnoteArray\r\n var footnote = { text, number: key, label, idOfRTT };\r\n footnoteArray.push(footnote);\r\n });\r\n\r\n return footnoteArray;\r\n}\r\n\r\nfunction resolveImages(text) {\r\n //convert the text into a document so that it can be parsed.\r\n //function stringToHTML(str) {\r\n // var parser = new DOMParser();\r\n // var doc = parser.parseFromString(str, 'text/html');\r\n // return doc.body;\r\n //};\r\n\r\n //var doc = stringToHTML(text);\r\n //const promises = []\r\n ////for each image tag in the text, fetch the image and get it back as a base64 image.\r\n //let images = doc.getElementsByTagName(\"img\");\r\n //for (var img of images) {\r\n // // If the img src includes 'blob:https:' the original image has already been replaced\r\n // if (img.src.includes('blob:https:')) return doc.innerHTML\r\n // const imgPromise = RETRIEVALSERVICES.retrieveBlobAsUrl(img.src)\r\n // promises.push(imgPromise)\r\n //}\r\n //const resolvesPromises = await Promise.all(promises)\r\n //resolvesPromises.forEach((url, i) => {\r\n // images[i].src = url\r\n //})\r\n //return doc.innerHTML;\r\n return text;\r\n}\r\n\r\nfunction createMarkupProcessFlow(contentItem, first) {\r\n var content = \"\";\r\n\r\n if (contentItem.content.objective) {\r\n content = \"

\" + contentItem.content.objective.title + \"

\";\r\n content += contentItem.content.objective.text;\r\n }\r\n\r\n if (contentItem.content.why) {\r\n content += \"

\" + contentItem.content.why.title + \"

\";\r\n content += contentItem.content.why.text;\r\n }\r\n\r\n if (contentItem.content.text) {\r\n content += contentItem.content.text;\r\n }\r\n\r\n return resolveImages(content);\r\n}\r\n\r\nfunction createMarkupQuestionAndAnswer(contentItem) {\r\n var content = \"

\" + contentItem.content.question.title + \"

\";\r\n content += contentItem.content.question.text;\r\n content += \"

\" + contentItem.content.answer[0].title + \"

\";\r\n\r\n contentItem.content.answer.map((answer) =>\r\n content += answer.text\r\n );\r\n\r\n return resolveImages(content);\r\n}\r\n\r\nfunction createMarkup(item) {\r\n if (item.content_type === \"17377912\") {\r\n //logs.debug(page.Article, 'ArticleHelper', \"ArticleHelper::createMarkup:Parent Binary Item:\",item);\r\n return null;\r\n }\r\n else if ((item.content_type === '60194857') || (item.content_type === '48693746')) {\r\n if (item.containsBinary) {\r\n var htmlContent = \"\";\r\n if (item.content.format === \".pdf\") {\r\n htmlContent += \"\";\r\n }\r\n\r\n return htmlContent;\r\n }\r\n else {\r\n return item.content.text;\r\n }\r\n }\r\n else if (item.content_type === \"60247324\") {\r\n //const __html = await resolveImages(item.content.pub_additional_text);\r\n const html = resolveImages(item.content.pub_additional_text);\r\n return html;\r\n }\r\n else if (item.content_type === \"63781319\") { //Objective & Why\r\n //return { __html: await createMarkupProcessFlow(item, true) };\r\n return createMarkupProcessFlow(item, true);\r\n\r\n }\r\n else if (item.content_type === \"60194856\") { //Question & Answer\r\n //return { __html: await createMarkupQuestionAndAnswer(item) };\r\n return createMarkupQuestionAndAnswer(item);\r\n }\r\n\r\n else {\r\n //Handle subtopics if any exist.\r\n\r\n //function to handle sub-subtopics, if any exist, called recursively.\r\n function extractSubSubTopics(subtopic) {\r\n if (!item.content.text.includes(subtopic.title)) {\r\n item.content.text += (\"\" + subtopic.title + \"
\");\r\n item.content.text += subtopic.text;\r\n }\r\n\r\n //handle deeper layers of subtopics.\r\n if (subtopic.sub_topics && subtopic.sub_topics.length > 0) {\r\n var i;\r\n for (i = 0; i < subtopic.sub_topics.length; i++) {\r\n extractSubSubTopics(subtopic.sub_topics[i]);\r\n }\r\n }\r\n }\r\n\r\n if (item.content?.sub_topics && item.content?.sub_topics?.length > 0) {\r\n var i;\r\n for (i = 0; i < item.content.sub_topics.length; i++) {\r\n //do not add to the text if we already had previously, as this createMarkup function is called multiple times.\r\n //todo: prevent createMarkup from being called multiple times per item if not needed.\r\n\r\n if (!item.content.text.includes(item.content.sub_topics[i].title)) {\r\n item.content.text += (\"\" + item.content.sub_topics[i].title + \"
\");\r\n item.content.text += item.content.sub_topics[i].text;\r\n }\r\n\r\n if (item.content.sub_topics && item.content.sub_topics.length > 0) {\r\n var elementID;\r\n for (elementID = 0; elementID < item.content.sub_topics.length; elementID++) {\r\n extractSubSubTopics(item.content.sub_topics[elementID]);\r\n }\r\n }\r\n }\r\n }\r\n return { __html: item.content?.text };\r\n }\r\n}\r\n\r\nfunction findElementInArticleArea(hashTag) {\r\n let foundElementInArticleArea = null;\r\n const articleContainer = document.querySelector('.article-content-container');\r\n\r\n if (!articleContainer) {\r\n logs.debug(page.Article, 'ArticleHelper', \"findElementInArticleArea:#0:We cannot find the article container on this page, so are not going to look for target element on page!\");\r\n return foundElementInArticleArea;\r\n }\r\n\r\n try {\r\n foundElementInArticleArea = articleContainer.querySelector(hashTag);\r\n //logs.debug(page.Article, 'ArticleHelper', \"findElementInArticleArea:#1:Did we find the element on the page with the hashtag of \", hashTag, foundElementInArticleArea)\r\n }\r\n catch {\r\n //logs.debug(page.Article, 'ArticleHelper', \"Issue locating the element to scroll to with the hashtag of \", hashTag)\r\n }\r\n\r\n //If we did not find an exact match, we look for a \"ending with\" or a \"partial match\" thereafter.\r\n if (!foundElementInArticleArea) {\r\n let hashlessTag = hashTag.replace(\"#\", \"\");\r\n\r\n foundElementInArticleArea = articleContainer.querySelector(\"[id$='\" + hashlessTag + \"']\");\r\n //logs.debug(page.Article, 'ArticleHelper', \"findElementInArticleArea:#2:Did we find the element on the page with the hashtag of \", \"[id$='\" + hashlessTag + \"']\", foundElementInArticleArea)\r\n\r\n //If we did not find an exact match, \"partial match\" thereafter.\r\n if (!foundElementInArticleArea) {\r\n foundElementInArticleArea = articleContainer.querySelector(\"[id*='\" + hashlessTag + \"']\");\r\n //logs.debug(page.Article, 'ArticleHelper', \"findElementInArticleArea:#3:Did we find the element on the page with the hashtag of \", \"[id*='\" + hashlessTag + \"']\", foundElementInArticleArea)\r\n\r\n //If we did not find an exact match, and if this is a legacy link, then we may find it with uppercase...\r\n if (!foundElementInArticleArea && !hashlessTag.startsWith(\"GUID\")) {\r\n foundElementInArticleArea = articleContainer.querySelector(\"[id*='\" + hashlessTag.toLocaleUpperCase() + \"']\");\r\n //logs.debug(page.Article, 'ArticleHelper', \"findElementInArticleArea:#4:Did we find the element on the page with the hashtag of \", \"[id*='\" + hashlessTag.toLocaleUpperCase() + \"']\", foundElementInArticleArea)\r\n\r\n //If we did not find an exact match, (inferred: and if this is a legacy link), then we may find it with lowercase...\r\n if (!foundElementInArticleArea) {\r\n foundElementInArticleArea = articleContainer.querySelector(\"[id*='\" + hashlessTag.toLocaleLowerCase() + \"']\");\r\n //logs.debug(page.Article, 'ArticleHelper', \"findElementInArticleArea:#5:Did we find the element on the page with the hashtag of \", \"[id*='\" + hashlessTag.toLocaleLowerCase() + \"']\", foundElementInArticleArea)\r\n }\r\n }\r\n }\r\n }\r\n return foundElementInArticleArea;\r\n}\r\n\r\nfunction scrollToHashTag(hashTag) {\r\n if (!hashTag) {\r\n return\r\n }\r\n hashTag = decodeURI(hashTag);\r\n let elemToScrollTo = null;\r\n const linkHashSeparator = \"_|RP-HASH|_\";\r\n\r\n //If we have a hash-seperator (two possible targets)\r\n if (hashTag.indexOf(linkHashSeparator) > 0) {\r\n const hashes = hashTag.split(linkHashSeparator);\r\n\r\n elemToScrollTo = findElementInArticleArea(\"#\" + hashes[1]);\r\n\r\n if (!elemToScrollTo) {\r\n elemToScrollTo = findElementInArticleArea(hashes[0]);\r\n }\r\n }\r\n else {\r\n elemToScrollTo = findElementInArticleArea(hashTag);\r\n }\r\n \r\n //If we have not found it - then we cannot scroll\r\n if (!elemToScrollTo) {\r\n logs.debug(page.Article, 'ArticleHelper', \"scrollToHashTag:element(s) cannot be found for target hashtag\", hashTag)\r\n return;\r\n }\r\n\r\n //logs.debug(page.Article, 'ArticleHelper', \"Prepping to scroll down to element: \", elemToScrollTo);\r\n \r\n const y = elemToScrollTo.getBoundingClientRect().top + window.scrollY;\r\n window.scroll({\r\n top: y - 130,\r\n behavior: 'smooth',\r\n block: 'start'\r\n });\r\n}\r\n\r\nfunction getpubIdsToQuery(pubData, flattenedToc, isSpinePage, context) {\r\n\r\n let pubIdsToQuery = [];\r\n\r\n if (pubData?.guideBook) {\r\n pubData.guideBook.Content.guidebookSections.forEach((section) => {\r\n //Excelude sections that we are searching inside of for this folio !== \"related\"\r\n if (section.sectionContainsPublications && (\"excludeSectionNames|related\".indexOf(section.sectionFriendlyPath) === -1)) {\r\n const idsFromToc = flattenedToc\r\n .filter(({ tocHash }) => tocHash.startsWith(section.sectionFriendlyPath))\r\n .filter(({ url }) => /GUID/g.test(url))\r\n .map(({ url }) => {\r\n const matches = url.match(/GUID-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/gi);\r\n return matches && matches.length ? matches[0] : null;\r\n })\r\n .filter(x => x !== null);\r\n pubIdsToQuery = [...pubIdsToQuery, ...idsFromToc];\r\n }\r\n });\r\n }\r\n else if (isSpinePage) {\r\n //if publication is a manual spine pub, we need to send the spine publication ids\r\n pubIdsToQuery = flattenedToc\r\n .filter(({ tocHash }) => (tocHash.includes(context.pageSelectedPublicationGUID)))\r\n .map(x => x.tocHash.split('_').pop());\r\n\r\n //if not and the pubIdsToQuery is empty\r\n if (pubIdsToQuery.length === 0) {\r\n pubIdsToQuery = flattenedToc\r\n .filter(({ url }) => (url.match(/GUID/g) || []).length === 1)\r\n .map(x => \"GUID-\" + x.url.split('GUID-')[1]);\r\n }\r\n }\r\n else {\r\n //TODO: Use the tocContextProvidor and do this differently\r\n //if publication is a manual spine pub, we need to send the spine publication ids\r\n pubIdsToQuery = flattenedToc\r\n .filter(({ url }) => (url.match(/GUID/g) || []).length === 3)\r\n .map(x => \"GUID-\" + x.url.split('GUID-')[3]);\r\n\r\n if (pubIdsToQuery.length > 0) {\r\n //add in the pub Id to the toc items to make them easier to reference later when matching up the results to toc items\r\n //this should just be undefined or null for non-spine pubs.\r\n //TODO: Move this to the BE later.\r\n flattenedToc.forEach((pubItem) => {\r\n let guids = pubItem.url.split('GUID-');\r\n if (guids.length > 3) {\r\n pubItem.spinePublicationId = \"GUID-\" + guids[3].split('/')[0];\r\n }\r\n })\r\n //We need to add in the GUID of the Spine pub that points to all the above Spine-Target-Pubs added above.\r\n pubIdsToQuery = [...pubIdsToQuery, context.pageSelectedPublicationGUID];\r\n }\r\n //if not and the pubIdsToQuery is empty\r\n else if (pubIdsToQuery.length === 0) {\r\n pubIdsToQuery = flattenedToc\r\n .filter(({ url }) => (url.match(/GUID/g) || []).length === 1)\r\n .map(x => \"GUID-\" + x.url.split('GUID-')[1]);\r\n }\r\n }\r\n\r\n if (!pubIdsToQuery.length) {\r\n logs.debug(page.Publication, 'PublicationSearch', 'Publication ID Array is empty. Awaiting required data', { memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'), knowledgeDomain: context.knowledgeDomain })\r\n return null;\r\n }\r\n\r\n // Get unique list of publication ids\r\n pubIdsToQuery = [...new Set(pubIdsToQuery)];\r\n let pubIds = 'publication_id/' + pubIdsToQuery.join('/');\r\n\r\n return pubIds;\r\n}\r\n\r\nfunction mapSearchResultsToSelectedToc(results, context, isJournalPage, flattenedToc, isSpinePage, getMFLabel, toc, getGuidebookSectionData, currentsearchPhrase) {\r\n results.forEach(result => {\r\n let tocObject = null;\r\n\r\n //NOTE: we would only have alerts if we were on the folio, but not sure if we only do this in a listing!?\r\n // isFolioSectionlisting\r\n if ((context.pageSelectedSection === \"alerts\")) {\r\n // for Alerts --> its PublicationObjectId\r\n tocObject = flattenedToc?.find(({ id }) => result.document.publicationId.startsWith(id));\r\n }\r\n else if (isJournalPage) {\r\n tocObject = flattenedToc?.find(({ id }) => (result.document.publicationId.startsWith(id)));\r\n }\r\n else if(context.pageControllerType ===\"standard\")\r\n {\r\n tocObject =flattenedToc?.filter(({ id }) => (result.document.id.startsWith(id)));\r\n }\r\n // only for manual,standards\r\n else if (isSpinePage) {\r\n tocObject = flattenedToc?.find(({ id }) => { //eslint-disable-line\r\n if (result.document.publicationContextId) {\r\n return result.document.publicationContextId.startsWith(id) || (result.document.id.startsWith(id));\r\n }\r\n else{\r\n return (result.document.id.startsWith(id));\r\n }\r\n });\r\n //the else above does the same thign as this loop...\r\n /*if (UTILITIESHELPER.isNullOrUndefined(tocObject)) {\r\n tocObject = flattenedToc?.find(({ id }) => {//eslint-disable-line\r\n if (result.document.id) {\r\n return result.document.id.startsWith(id);\r\n }\r\n });\r\n }*/\r\n }\r\n else {\r\n tocObject = flattenedToc?.find(({ id }) => (result.document.id.startsWith(id)));\r\n if (!tocObject) {\r\n tocObject = flattenedToc?.find(({ id }) => (result.document.publicationId.startsWith(id)));\r\n }\r\n }\r\n\r\n // ideally we can't even show a search results if it doesnt exist in our TOC\r\n if (!UTILITIESHELPER.isObjectNullorEmpty(tocObject)) {\r\n\r\n if(context.pageControllerType===\"standard\")\r\n {\r\n result.document.fullTitle = tocObject ? tocObject[0].title : result.document.publicationTitle;\r\n result.url = tocObject[0].url ? tocObject[0].url : getSearchresultUrl(flattenedToc,result);\r\n tocObject.forEach(ti=>{\r\n result.tocHash=result.tocHash ? result.tocHash +'_'+ ti.tocHash : ti.tocHash;\r\n })\r\n result.document.navTitle = tocObject ? (tocObject[0].nav_title ? tocObject[0].title : tocObject[0].nav_title) : (result.document.navTitle ? result.document.publicationTitle : result.document.navTitle);\r\n }\r\n else{\r\n result.document.fullTitle = tocObject ? tocObject.title : result.document.publicationTitle;\r\n result.url = tocObject.url ? tocObject.url : getSearchresultUrl(flattenedToc,result);\r\n result.tocHash = tocObject ? tocObject.tocHash : '';\r\n result.document.navTitle = tocObject ? (tocObject.nav_title ? tocObject.title : tocObject.nav_title) : (result.document.navTitle ? result.document.publicationTitle : result.document.navTitle);\r\n }\r\n \r\n if(currentsearchPhrase)\r\n result.searchPhrase = currentsearchPhrase;\r\n\r\n const branchSegments = result.tocHash.split('_');\r\n branchSegments.pop(); // remove target page\r\n const branch = branchSegments\r\n .map(guid => {\r\n return flattenedToc.find(x => x.id === guid);\r\n\r\n })\r\n .map((x, i) => x !== undefined ? x.nav_title : getTocSectionTitle(branchSegments[i], context, flattenedToc, getMFLabel, toc, getGuidebookSectionData));\r\n\r\n result.crumb = branch;\r\n\r\n return result;\r\n }\r\n });\r\n let extendedResults = results.filter(x => !UTILITIESHELPER.isStringNullorEmpty(x.url));\r\n return UTILITIESHELPER.isArrayNullorEmpty(extendedResults) ? null : extendedResults;\r\n}\r\n\r\nfunction getSearchresultUrl(flattenedToc, result){\r\n let tocObject = flattenedToc?.find(({ id }) => { //eslint-disable-line\r\n if (result.document.publicationObjectId) {\r\n return result.document.publicationObjectId.startsWith(id);\r\n }\r\n });\r\n\r\n let url = result.document.publicationId === result.document.id ? `${tocObject.url}` \r\n : `${tocObject.url}/${encodeURIComponent(result.document.fullTitle)}/${result.document.id}`;\r\n return url;\r\n}\r\n\r\nfunction getTocSectionTitle(sectionFriendlyPath, context, flattenedToc, getMFLabel, toc, getGuidebookSectionData) {\r\n if (context && flattenedToc && getMFLabel && toc && getGuidebookSectionData) {\r\n try {\r\n if (\"manual|standards\".indexOf(context.pageControllerType) > -1) {\r\n // you are already on Section of Manuls/standards\r\n // TODO : is it necessary to get the Spine Title ??\r\n let tocobject = flattenedToc.find(({ id }) => sectionFriendlyPath.startsWith(id));\r\n if (tocobject) {\r\n return getMFLabel(tocobject.title, \"tocobject.title\");\r\n }\r\n return toc.nav_title ? toc.nav_title : toc.title;\r\n }\r\n else if (\"guidance\".indexOf(context.pageControllerType) > -1 && \"accounting\".indexOf(context.knowledgeDomain) > -1) {\r\n \r\n let tocobject = flattenedToc.find(({ id }) => sectionFriendlyPath.startsWith(id));\r\n if (tocobject) {\r\n return getMFLabel(tocobject.title, \"tocobject.title\");\r\n }\r\n return toc.title;\r\n }\r\n else {\r\n // this is for folio's since we should find the Pub name\r\n const section = getGuidebookSectionData(sectionFriendlyPath);\r\n if (section) {\r\n return getMFLabel(section.title.Content.title, \"section.title.Content.title\");\r\n }\r\n return sectionFriendlyPath;\r\n }\r\n }\r\n catch (ex) {\r\n \r\n logs.error(page.Publication, 'ArticleHelper',ErrorMessages.tocSectionTitle , ex, { memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'), knowledgeDomain: context.knowledgeDomain,eventId:ErrorCodes.Publication })\r\n\r\n return sectionFriendlyPath;\r\n }\r\n }\r\n}\r\n\r\nfunction getHighlightedText(highlights) {\r\n var result = highlights.find(function (obj) {\r\n return obj.propertyName === \"Content\";\r\n });\r\n if (result) {\r\n return result.highlightedText;\r\n } else {\r\n return highlights[0]?.highlightedText;\r\n }\r\n}\r\n\r\nfunction getFilterPubData(pubData) {\r\n if (pubData) {\r\n //For external collections, we will display content related only to specific topic, without integrating the content from subitems.\r\n if (pubData.publication_type === PUBLICATIONTYPE_IDS.externalCollection) {\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(pubData.content)) {\r\n pubData.content[0].subItems = [];\r\n }\r\n }\r\n }\r\n return pubData;\r\n}\r\n\r\nfunction isSpinePageController(pageController) {\r\n return [PAGE_CONTROLLER_TYPE.manual,\r\n PAGE_CONTROLLER_TYPE.standards].includes(pageController)\r\n}\r\n\r\n\r\nconst ARTICLEHELPERS = {\r\n createMarkup,\r\n createTitleMarkupFootnote,\r\n extractAnnotationOrAssociatedContent,\r\n extractFootnotes,\r\n extractFootnoteCallouts,\r\n extractFootnotesFromRTT,\r\n findElementInArticleArea,\r\n footnoteNumberGenerator,\r\n getBreadcrumbData,\r\n getContentHtmlDocument,\r\n scrollToHashTag,\r\n getpubIdsToQuery,\r\n mapSearchResultsToSelectedToc,\r\n getHighlightedText,\r\n getFilterPubData,\r\n isSpinePageController\r\n}\r\n\r\nexport default ARTICLEHELPERS;","\r\nimport { CONTENT_TYPE_IDS, MEMBERFIRM_CONSTANTS } from '../components/Constants/Constants';\r\nimport ARTICLEHELPERS from './ArticleHelpers';\r\n\r\n\r\n\r\nfunction log(message) {\r\n if (window.DART.ENV.RP_REACT_APP_PREVIEW === 'true') {\r\n //For when we want to have a stacktrace to see where the message is coming from use this:\r\n console.log(message);\r\n }\r\n}\r\n\r\nfunction getIntFromStr(stringVal) {\r\n const matches = stringVal.match(/(\\d+)/);\r\n if (matches) {\r\n return matches[0];\r\n }\r\n}\r\n\r\nfunction sortArray(array, property){\r\n if(Array.isArray(array) && array.length > 0) {\r\n return array.sort(dynamicSort(property)).sort(dynamicSort(property));\r\n }else {\r\n return array;\r\n }\r\n}\r\n\r\nfunction dynamicSort(property) {\r\n return function(a, b) {\r\n return (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;\r\n }\r\n}\r\n\r\nfunction sortArrayDesc(array, property) {\r\n if (Array.isArray(array) && array.length > 0) {\r\n return array.sort(dynamicSortDesc(property));\r\n }\r\n else {\r\n return array;\r\n }\r\n}\r\nfunction dynamicSortDesc(property) {\r\n return function (a, b) {\r\n return (a[property] > b[property]) ? -1 : (a[property] < b[property]) ? 1 : 0;\r\n }\r\n}\r\n\r\n\r\nfunction sortAlphaNumericArray(array) {\r\n return array.sort((a, b) => {\r\n return a.localeCompare(b, undefined, {\r\n numeric: true,\r\n sensitivity: \"base\",\r\n });\r\n });\r\n}\r\nfunction sortAlphaCaseInsensitive(array,property) {\r\n return array.sort((a, b) => {\r\n return a[property].localeCompare(b[property], undefined, {\r\n sensitivity: \"base\",\r\n });\r\n });\r\n }\r\nfunction stickyBarResizing() {\r\n const stickyBar = document.querySelector('.sticky-bar');\r\n const tocHeader = document.querySelector('.toc-header');\r\n const cfLeft = document.querySelector('.cf-left');\r\n const articleContainer = document.querySelector('.article-container');\r\n if (stickyBar !== null && stickyBar.classList.contains('fixed')) {\r\n const articleWidthCalc = (window.outerWidth(articleContainer) + 27);\r\n stickyBar.style.width = articleWidthCalc + 'px';\r\n if (cfLeft !== null && tocHeader !== null) {\r\n const tocWidthCalc = (window.outerWidth(cfLeft) - 20);\r\n tocHeader.style.width = tocWidthCalc + 'px';\r\n }\r\n } else if (stickyBar !== null && !stickyBar.classList.contains('fixed')) {\r\n stickyBar.style.width = '';\r\n if (cfLeft !== null && tocHeader !== null) {\r\n tocHeader.style.width = '';\r\n }\r\n }\r\n}\r\n\r\nfunction formatBytes(bytes, decimals) {\r\n\r\n if (bytes === undefined || bytes === null || bytes === \"\") return '2 MB';\r\n\r\n if (bytes === 0) return '0 Bytes';\r\n\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n}\r\n\r\nfunction formatDate(date, contextLanguage = \"en-US\", formatSpecifier = '') {\r\n if (date && date !== \"\") {\r\n var formattedDate = new Date(date);\r\n if (formattedDate.getFullYear() < 1000) {\r\n return \"\";\r\n }\r\n if (formatSpecifier === \"shortDate\") {\r\n return (formattedDate.getMonth() + 1) + \"-\" + formattedDate.getDate() + \"-\" + formattedDate.getFullYear();\r\n }else if (formatSpecifier !== \"\" && ['numeric', '2-digit','short', 'narrow', 'long'].indexOf(formatSpecifier) !== -1) {\r\n return formattedDate.toLocaleDateString(contextLanguage, { year: 'numeric', month: formatSpecifier, day: 'numeric' });\r\n }\r\n return formattedDate.toLocaleDateString(contextLanguage, { year: 'numeric', month: 'long', day: 'numeric' });\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction getContentItemTitle(contentItem, skipFootNote = false) {\r\n //Commenting this out for now, as it removes h3s. Saving first line of the function to show parentItem, and then if parentItem === null. Dev to revisit\r\n //function getContentItemTitle(contentItem, parentItem) {\r\n //If we are on the first level, then the parentItem is null as we have\r\n //already written out the current item as the page title, so we do not write a title for this item!*/}\r\n //if (parentItem === null) {\r\n // return \"\";\r\n //}\r\n\r\n var contentItemTitle = ((contentItem === null || contentItem.title === null)) ? \"\" : contentItem.title;\r\n var contentItemRichTextTitle = ((contentItem === null || contentItem.rich_text_title === null)) ? \"\" : contentItem.rich_text_title;\r\n const itemReferenceID = (contentItem?.reference_id) ? contentItem.reference_id : \"\";\r\n const itemParaNumber = (contentItem?.para_number) ? contentItem.para_number : \"\";\r\n\r\n if (itemParaNumber !== \"\") {\r\n contentItemTitle = itemParaNumber;\r\n }\r\n else {\r\n contentItemTitle = itemReferenceID + \" \" + contentItemTitle;\r\n }\r\n\r\n // Regular expression to test if content is between and <\\/fn>\r\n const regExpressionToTestIfIncludeFnTag = /()([\\s\\S]*)(<\\/fn>)/g\r\n\r\n //Check if it contains footnotes\r\n if (regExpressionToTestIfIncludeFnTag.test(contentItemRichTextTitle)) {\r\n if(skipFootNote){ //This will remove the footnote if the skip foot note flag is true.\r\n contentItemRichTextTitle = contentItemRichTextTitle.replace(regExpressionToTestIfIncludeFnTag,\"\")\r\n }\r\n else{\r\n let footnoteRttArray = getFootnoteDetailsFromRichText(contentItemRichTextTitle);\r\n\r\n if (footnoteRttArray && footnoteRttArray.length > 0) {\r\n var fnMarkup = createMarkupFootnote(footnoteRttArray[0].number, footnoteRttArray[0].label)\r\n\r\n var el = document.createElement('div');\r\n el.innerHTML = contentItemRichTextTitle;\r\n\r\n var fnEl = el.querySelector('fn');\r\n fnEl.parentNode.outerHTML = fnMarkup;\r\n\r\n return el.innerHTML;\r\n }\r\n }\r\n }\r\n\r\n if (contentItemRichTextTitle) { return contentItemRichTextTitle }\r\n\r\n return contentItemTitle.trim().replace(/(\\r\\n|\\n|\\r)/gm, \" \"); //Remove any line breaks - https://www.textfixer.com/tutorials/javascript-line-breaks.php\r\n}\r\n\r\nfunction getContentItemContentAsFlat(contentItem) {\r\n var list = [];\r\n list.push(contentItem);\r\n if (contentItem.content && contentItem.content[0] && contentItem.content[0].subItems) {\r\n contentItem.content[0].subItems.forEach((item) => getContentItemSubItem(item));\r\n }\r\n\r\n function getContentItemSubItem(subItem) {\r\n //TODO: Content does not have the flag, as it swas not added to this object --> !subItem.containsBinary\r\n if (subItem) {\r\n list.push(subItem);\r\n if (subItem.content[0] && subItem.content[0].subItems) {\r\n subItem.content[0].subItems.forEach((item) => getContentItemSubItem(item));\r\n }\r\n }\r\n }\r\n\r\n return list;\r\n}\r\n\r\n\r\n\r\nfunction getFootnoteDetailsFromRichText(contentItemRichTextTitle) {\r\n let footnoteRttArray = [];\r\n const fnNumberGenerator = ARTICLEHELPERS.footnoteNumberGenerator();\r\n\r\n footnoteRttArray = ARTICLEHELPERS.extractFootnotesFromRTT(contentItemRichTextTitle, fnNumberGenerator);\r\n return footnoteRttArray;\r\n}\r\n\r\nfunction createMarkupFootnote(key, label) {\r\n return `${label}`;\r\n}\r\n\r\nfunction getContentItemNavTitle(contentItem) {\r\n var contentItemTitle = ((contentItem === null || contentItem.title === null)) ? \"\" : contentItem.nav_title;\r\n contentItemTitle = (contentItemTitle === '' && contentItemTitle.title !== null && contentItemTitle.title !== '') ? contentItem.title : contentItemTitle;\r\n\r\n const itemReferenceID = (contentItem.reference_id) ? contentItem.reference_id : \"\";\r\n const itemParaNumber = (contentItem.para_number) ? contentItem.para_number : \"\";\r\n\r\n if (itemParaNumber !== \"\") {\r\n contentItemTitle = itemParaNumber;\r\n }\r\n else {\r\n contentItemTitle = itemReferenceID + \" \" + contentItemTitle;\r\n }\r\n\r\n return contentItemTitle.trim();\r\n}\r\n\r\nfunction isStringNullorEmpty(input) {\r\n return (!input || input === null || input.trim() === \"\" || typeof input === 'undefined');\r\n}\r\n\r\nfunction isObjectNullorEmpty(input) {\r\n return (!input || input === null || typeof input === 'undefined');\r\n}\r\n\r\nfunction isArrayNullorEmpty(input) {\r\n return (!input || input === null || typeof input === 'undefined' || input?.length === 0 );\r\n}\r\n\r\n//TODO:BDP: THese should ALL re-writen/moved to ProfileHelper and use StorageHelper to access storage!!\r\n//import SH from './StorageHelpers';\r\n// Browser Storage Helpers\r\n// Session Storage\r\nfunction getSessionStorage(key) {\r\n var sessionStorage = window.sessionStorage;\r\n var item = sessionStorage.getItem(key);\r\n return item;\r\n}\r\n\r\nfunction setSessionStorage(key, value) {\r\n var sessionStorage = window.sessionStorage;\r\n sessionStorage.setItem(key, value);\r\n}\r\n\r\n\r\nfunction removeSessionStorage(key) {\r\n sessionStorage.removeItem(key);\r\n}\r\n\r\n//TODO:BDP: Local Storage --> StorageHelpers!\r\nfunction getLocalStorage(key) {\r\n var localStorage = window.localStorage;\r\n var item = localStorage.getItem(key);\r\n return item;\r\n}\r\n\r\nfunction setLocalStorage(key, value) {\r\n var localStorage = window.localStorage;\r\n localStorage.setItem(key, value);\r\n}\r\n\r\nfunction removeLocalStorage(key){\r\n localStorage.removeItem(key);\r\n}\r\n\r\nfunction getLocalStorageJSON(key) {\r\n var localStorage = window.localStorage;\r\n return JSON.parse(localStorage.getItem(key));\r\n}\r\n\r\nfunction setLocalStorageJSON(key, value) {\r\n var localStorage = window.localStorage;\r\n localStorage.setItem(key, JSON.stringify(value));\r\n}\r\n\r\nfunction setMemberFirmLocalStorage(memberFirm) {\r\n setLocalStorage(\"research-portal-member-firm\", memberFirm);\r\n}\r\n\r\nfunction getMemberFirmLocalStorage() {\r\n return getLocalStorage(\"research-portal-member-firm\");\r\n}\r\n\r\nfunction setDarkModePrefLocalStorage(bool) {\r\n const val = bool ? 'true' : '';\r\n setLocalStorage(\"research-portal-use-dark-mode\", val);\r\n}\r\n\r\nfunction getDarkModePrefLocalStorage() {\r\n return getLocalStorage(\"research-portal-use-dark-mode\") === 'true';\r\n}\r\n\r\nfunction getIsDebugMTLocalStorage() {\r\n let isDebug = getLocalStorage('mt-debug');\r\n return (isDebug === \"true\"); \r\n}\r\n\r\nfunction setRATakeOverData (context, tier, researchAssistantResponse, memberfirmId) {\r\n UTILITIESHELPER.setLocalStorage('research-assistant-tier-selected', JSON.stringify(tier));\r\n UTILITIESHELPER.setLocalStorage('research-assistant-memberfirm', context.memberFirm);\r\n UTILITIESHELPER.setLocalStorage('research-assistant-member-firm-Id', memberfirmId);\r\n UTILITIESHELPER.setLocalStorage('research-assistant-language', context.language);\r\n UTILITIESHELPER.setLocalStorage('research-assistant-knowledgedomain', context.knowledgeDomain);\r\n UTILITIESHELPER.setLocalStorage('research-assistant-catalog-conversation', researchAssistantResponse);\r\n let tiers=[];\r\n tiers= tier[context.memberFirm] && tier[context.memberFirm][context.knowledgeDomain] && tier[context.memberFirm][context.knowledgeDomain].length ? tier[context.memberFirm][context.knowledgeDomain].sort((a, b) => a.id - b.id).map(x => x.value) : [];\r\n UTILITIESHELPER.setLocalStorage('research-assistant-tier',JSON.stringify(tiers));\r\n \r\n}\r\n\r\nfunction getCurrentLanguageLocalStorage(urlLanguage) {\r\n\r\n // Retrieve current language selection\r\n const ssName = getSessionStorage('cur-mt-name');\r\n\r\n // If we have a current language in session storage, return lang info\r\n if (ssName) {\r\n const abbreviation = getSessionStorage(\"cur-mt-abbreviation\");\r\n // const languageCodeMT = getSessionStorage(\"cur-mt-languageCodeMT\");\r\n let languageCodeFE = getSessionStorage(\"cur-mt-languageCodeFE\");\r\n\r\n if (!languageCodeFE || languageCodeFE === \"null\" || languageCodeFE === \"\") {\r\n languageCodeFE = urlLanguage;\r\n }\r\n\r\n return { name: ssName, abbreviation, languageCodeFE };\r\n }\r\n\r\n // Retrieve local storage language configuration\r\n const lsName = getLocalStorage(\"mt-name\");\r\n\r\n // If we have a language in local storage, return lang info\r\n if (lsName) {\r\n const abbreviation = getLocalStorage(\"mt-abbreviation\");\r\n // const languageCodeMT = getLocalStorage(\"mt-languageCodeMT\");\r\n let languageCodeFE = getLocalStorage(\"mt-languageCodeFE\");\r\n\r\n if (!languageCodeFE || languageCodeFE === \"null\" || languageCodeFE === \"\") {\r\n languageCodeFE = urlLanguage;\r\n }\r\n\r\n return { name: lsName, abbreviation, languageCodeFE };\r\n }\r\n\r\n // Fallback to English\r\n return { name: \"English\", abbreviation: \"EN\", languageCodeFE: urlLanguage };\r\n}\r\n\r\nfunction annotationDisplayStatus() {\r\n var annotationCookie = getLocalStorage('article-annotations');\r\n if (annotationCookie !== null && annotationCookie === 'hidden') {\r\n return false\r\n }\r\n return true;\r\n}\r\n\r\nfunction highlightsDisplayStatus() {\r\n var highlightsCookie = getLocalStorage('article-highlights');\r\n if (highlightsCookie !== null && highlightsCookie === 'hidden') {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction commentsDisplayStatus() {\r\n var commentsCookie = getLocalStorage('article-comments');\r\n if (commentsCookie !== null && commentsCookie === 'hidden') {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction embeddedDisplayStatus() {\r\n var embeddedCookie = UTILITIESHELPER.getLocalStorage('article-embedded');\r\n if (embeddedCookie !== null && embeddedCookie === 'shown') {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nfunction sectionExpandDisplayStatus() {\r\n var sectionExpandCookie = getLocalStorage('section-expand');\r\n if (sectionExpandCookie !== null && sectionExpandCookie === 'collapsed') {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction getAuthToken() {\r\n var token = getAccessToken();\r\n return token;\r\n}\r\n\r\nfunction getAccessToken()\r\n{\r\n // first we check if token has expired\r\n // if not expired\r\n return sessionStorage.getItem(\"accesstoken\");\r\n // else \r\n //return refreshaccesstoken();\r\n}\r\nfunction isValidAccessToken() {\r\n var isValidToken = JSON.parse(sessionStorage.getItem(\"IsValidToken\"));\r\n return isValidToken;\r\n\r\n}\r\n//TODO: Replace the calling of this with the formatDate\r\nfunction generateFriendlyDate(date) {\r\n if (date && !date.includes('0001')) {\r\n if (typeof date === \"string\") { date = new Date(date); }\r\n\r\n var month = \"\";\r\n\r\n switch (date?.getMonth()) {\r\n case 0:\r\n month = \"January\";\r\n break;\r\n case 1:\r\n month = \"February\";\r\n break;\r\n case 2:\r\n month = \"March\";\r\n break;\r\n case 3:\r\n month = \"April\";\r\n break;\r\n case 4:\r\n month = \"May\";\r\n break;\r\n case 5:\r\n month = \"June\";\r\n break;\r\n case 6:\r\n month = \"July\";\r\n break;\r\n case 7:\r\n month = \"August\";\r\n break;\r\n case 8:\r\n month = \"September\";\r\n break;\r\n case 9:\r\n month = \"October\";\r\n break;\r\n case 10:\r\n month = \"November\";\r\n break;\r\n case 11:\r\n month = \"December\";\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (month + \" \" + date?.getDate() + \", \" + date?.getFullYear());\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction getBaseDomain() {\r\n var baseDomain = window.location.protocol + \"//\" + window.location.hostname;\r\n\r\n //catch for running locally\r\n if (window.location.hostname.includes(\"localhost\")) {\r\n baseDomain = baseDomain + \":\" + window.location.port;\r\n }\r\n\r\n return baseDomain;\r\n}\r\n\r\n\r\nfunction generateUUID() {\r\n // return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n // var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n // return v.toString(16);\r\n // });\r\n return crypto.randomUUID();\r\n}\r\n\r\nfunction generateRandomNumber() { \r\n const array = new Uint32Array(1);\r\n window.crypto.getRandomValues(array);//Random number between 0 and 4294967295 will be generated\r\n return array[0]; \r\n} \r\n\r\nfunction titleCase(s) {\r\n if (typeof s !== 'string') return '';\r\n //return s.replaceAll(/\\b[a-z]/g, (letter) => letter.toUpperCase());\r\n return s.replace(/\\b[a-z]/g, (letter) => letter.toUpperCase());\r\n}\r\nfunction capitalize(s) {\r\n if (typeof s !== 'string') return '';\r\n return s.replace(/\\b[a-z]/, (letter) => letter.toUpperCase());\r\n}\r\nfunction encodeSpecialCharacters(title) {\r\n if (!isNullOrUndefined(title)) {\r\n var actualTitle = title.replace(/%/gi, '%25').replace(/\\?/gi, \"%3F\").replace(/\\//gi, '%2F');\r\n return actualTitle;\r\n }\r\n return null;\r\n}\r\n\r\nfunction decodeSpecialCharacters(title) {\r\n // var actualTitle = title.replaceAll(/&/g, '&')\r\n var actualTitle = title.replace(/&/g, '&')\r\n // .replaceAll('%252f', '/')\r\n // .replaceAll('%252F', '/')\r\n // .replaceAll('%2f', '/')\r\n // .replaceAll('%2F', '/');\r\n\r\n .replace(/%252f/g, '/')\r\n .replace(/%2f/g, '/')\r\n .replace(/%252F/g, '/')\r\n .replace(/%2F/g, '/');\r\n\r\n\r\n //replaceAll( \" \",\"%20\",).replaceAll(\"!\",\"%21\").replaceAll('\"',\"%22\").\r\n //replaceAll( \"#\",\"%23\"). replaceAll( \"$\",\"%24\").replaceAll( \"&\",\"%26\").\r\n // .replaceAll(\"*\",\"%2A\").replaceAll(\"'\", \"%27\").replaceAll(\"(\",\"%28\")\r\n // .replaceAll( \")\",\"%29\").replaceAll(\";\",\"%3b\").replaceAll(\":\",\"%3a\").replaceAll(\"@\",\"%40\",)\r\n // .replaceAll(\"&\",\"%26\").replaceAll(\"=\",\"%3d\",).replaceAll(\"+\",\"%2b\")\r\n // .replaceAll( \",\",\"%2c\")\r\n // .replaceAll( \"~\", \"%7e\")\r\n return actualTitle;\r\n}\r\nfunction removeNewLineCharacter(text) {\r\n //return text.replaceAll(\"\\n\", \"\");\r\n\r\n return text.replace(/\\n/g, \"\");\r\n }\r\n\r\n\r\nfunction removeNonBreakingSpaces(content) {\r\n return content.replace(/ /g, \"\");\r\n}\r\n\r\nfunction truncateText(text, length) {\r\n return text.length > length ? text.substring(0, length-3) + \"...\" : text;\r\n}\r\n\r\nfunction removeLargeSpacesFromRichText(text)\r\n{\r\n return text?.replace(/\\s+/g, ' ');\r\n}\r\n\r\nfunction IsTextHavingFnTag(text)\r\n{\r\n const regExpressionToTestIfIncludeFnTag = new RegExp(\"()(.*)(<\\/fn>)\", \"g\").test(removeLargeSpacesFromRichText(text)) // eslint-disable-line\r\n return regExpressionToTestIfIncludeFnTag;\r\n}\r\n//this method checks if the passed value is null or undefined\r\nfunction isNullOrUndefined(value) {\r\n //For some reason in the LinkHandler, if (!UTILITIESHELPER.isNullOrUndefined(context.pageHashTag)) {\r\n // when undefined, was still being added to the targetIdentifier, so I added the value === undefined!\r\n if (typeof value === undefined || value === undefined || value === null){\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nfunction isValidDate(d) {\r\n return d instanceof Date && !isNaN(d);\r\n}\r\n\r\n//this method replaces all the special characters which are not allowed as file name ex space,dot(.),\"<>:\"/\\\\|?*—\"\r\nfunction removeSpecialCharacterFromFileName(fileName) {\r\n // return fileName.replaceAll(/[ .<>:\"/\\\\|?*+]/g, \"_\").replaceAll(\"’\", \"'\");\r\n return fileName.replace(/[ .<>:\"/\\\\|?*+]/g, '_').replace(/’/g, \"'\").replace(/&/g, '&');\r\n}\r\n\r\nfunction restrictLengthOfFileName(fileName) {\r\n let newFileName = fileName?.length > 97 ? fileName?.substring(0,97) : fileName\r\n return newFileName;\r\n }\r\n\r\n function removeSpecialCharacterFromUrlText(url) {\r\n return url.replace(/[ .<>:\"|?*+_]/g, \" \");\r\n}\r\n\r\nfunction checkStringIsHtml(str) {\r\n let regexToCheckIsHtml = /<\\/?[a-z][\\s\\S]*>/i;\r\n let isHtml = regexToCheckIsHtml.test(str);\r\n if (!isHtml) {\r\n return `${str}`\r\n }\r\n return str\r\n}\r\n\r\nfunction removeBrackets(inputString)\r\n{\r\n return inputString.replaceAll('(','').replaceAll(')','').replaceAll('[','').replaceAll(']','');\r\n}\r\n\r\nfunction handleSpaceBarOnSearchSubmit(e) {\r\n let startPos = e.currentTarget.selectionStart;\r\n const startString = e.currentTarget.value.substring(0, startPos);\r\n const endString = e.currentTarget.value.substring(\r\n startPos,\r\n e.currentTarget.value.length\r\n );\r\n e.currentTarget.value = startString + \" \" + endString;\r\n startPos = startPos + 1;\r\n e.currentTarget.selectionStart = startPos;\r\n e.currentTarget.selectionEnd = startPos;\r\n return { startString, endString };\r\n}\r\n\r\nfunction replaceGlobalWithDTTFromPath(pathname) {\r\n var pathArray = pathname.split('/');\r\n if (pathArray[1] === MEMBERFIRM_CONSTANTS.global)\r\n pathArray[1] = MEMBERFIRM_CONSTANTS.dtt;\r\n return pathArray.join('/');\r\n}\r\n\r\nfunction isHistoryRequest(requestOptions) {\r\n return JSON.parse(requestOptions.body).section === 'history';\r\n}\r\n\r\nfunction getDCSAccessToken() {\r\n const IsLocal = (window.location.href.indexOf(\"localhost\") > 0);\r\n\r\n if (IsLocal) {\r\n return window.DART.ENV.REACT_APP_DCS_CLIENT_ACCESSTOKEN;\r\n }\r\n else {\r\n let msalkeys = sessionStorage.getItem(`msal.token.keys.${window.DART.ENV.REACT_APP_CLIENTID}`);\r\n let msalaccessToken = JSON.parse(msalkeys)?.accessToken;\r\n if (!isArrayNullorEmpty(msalaccessToken)) {\r\n let accessTokenKey = msalaccessToken.find(x => x.includes(`${window.DART.ENV.REACT_APP_CLIENTID}/.default`));\r\n let accessToken = JSON.parse(sessionStorage.getItem(accessTokenKey))?.secret;\r\n return accessToken;\r\n }\r\n else {\r\n return getAccessToken();\r\n }\r\n }\r\n}\r\n\r\nfunction checkIsProdSite () {\r\n if (window.DART && window.DART.ENV && window.DART.ENV.RP_REACT_APP_PREVIEW){\r\n return window.DART.ENV.RP_REACT_APP_PREVIEW !== \"true\";\r\n }\r\n return false;\r\n}\r\n\r\nfunction ReplaceSpecialCharacterInURL(url) {\r\n url = url.replace(/%20/g, \"_\");\r\n url = url.replace(/\\[/g, \"(\");\r\n url = url.replace(/]/g, \")\");\r\n url = url.replace(/&/g, \"n\");\r\n url = url.replace(/%E2%80%94/g, \"-\").replace(/%e2%80%94/g, \"-\").replace(/%e2%80%99/g, \"'\").replace(/%E2%80%99/g, \"'\").replace(/%e2%80%93/g, \"-\").replace(/%E2%80%93/g, \"-\").replace(/%26/g,\"n\").replace(/%2C/g,\",\").replace(/%252F/g,\"-\").replace(/%E2%80%9C/g,'\"').replace(/%e2%80%9C/g,'\"').replace(/%E2%80%9D/g,'\"').replace(/%e2%80%9D/g,'\"');//added for -,',\"\",&,comma\r\n return url;\r\n}\r\n\r\nfunction ReplaceSpecialCharacterInURLForShareModel(url) {\r\n url = url.replace(/%20/g, \" \");\r\n url = url.replace(/\\[/g, \"(\");\r\n url = url.replace(/]/g, \")\");\r\n url = url.replace(/&/g, \"n\");\r\n url = url.replace(/%E2%80%94/g, \"-\").replace(/%e2%80%94/g, \"-\").replace(/%e2%80%99/g, \"'\").replace(/%E2%80%99/g, \"'\").replace(/%e2%80%93/g, \"-\").replace(/%E2%80%93/g, \"-\").replace(/%26/g,\"n\").replace(/%2C/g,\",\").replace(/%252F/g,\"-\").replace(/%E2%80%9C/g,'\"').replace(/%e2%80%9C/g,'\"').replace(/%E2%80%9D/g,'\"').replace(/%e2%80%9D/g,'\"');//added for -,',\"\",&,comma\r\n return url;\r\n}\r\nfunction CheckIfContainsUnicodes(url) {\r\n if (url.includes(\"%\") || url.includes(\"[\")\r\n || url.includes(\"]\") || url.includes(\"&\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isEmptyObject(obj) {\r\n return Object.keys(obj).length === 0 && obj.constructor === Object;\r\n}\r\nfunction replaceFootnoteWithLinkInChat(chatDetails) {\r\n chatDetails.response = chatDetails.response.replace(/\\(\\s*\\[/g, '[') // Replace `([` with `[`\r\n .replace(/\\]\\s*\\)/g, ']') // Replace `])` with `]`\r\n .replace(/\\]\\s*,\\s*\\[/g, '][');\r\n\r\n const content = chatDetails?.response?.match(/(?:\\[[0-9]{1,}\\]){1,}/g)\r\n let chatDetailsWithFootnote = chatDetails?.response\r\n let documentSource = chatDetails?.documentSource?.map(document => {\r\n document.key = generateRandomNumber();\r\n return document\r\n })\r\n\r\n content?.length && content.forEach((data, index) => {\r\n const splitInnerArray = data.match(/\\[[0-9]{1,}\\]/g)\r\n splitInnerArray.forEach((footnoteValue, index) => {\r\n const extractNumber = footnoteValue.match(/\\d+/)[0]\r\n const currentFootnote = documentSource?.find(footnote => (footnote?.footnote?.toString() === extractNumber))\r\n if(index === 0) {\r\n const createFootNoteHtml = createMarkupFootnote(currentFootnote?.key || index + 1, extractNumber)\r\n chatDetailsWithFootnote = chatDetailsWithFootnote.replace(footnoteValue, createFootNoteHtml)\r\n } else {\r\n const createFootNoteHtml = createMarkupFootnote(currentFootnote?.key || index + 1, extractNumber)\r\n chatDetailsWithFootnote = chatDetailsWithFootnote.replace(footnoteValue, ',' + createFootNoteHtml)\r\n }\r\n })\r\n })\r\n return { message: chatDetailsWithFootnote, documentSource }\r\n}\r\n\r\nfunction isResearchAssistantEnabledForKD(kdSettings, country, knowledgeDomain) {\r\n if (kdSettings && country && knowledgeDomain) {\r\n return kdSettings?.filter(x => x.country === country)[0]?.knowledgeDomain?.filter(x => x.name === knowledgeDomain)[0]?.siteFeatures?.filter(x => x.name === 'ResearchAssistant')[0]?.Enabled;\r\n }\r\n}\r\nasync function generateHash(htmlString){\r\n const utf8 = new TextEncoder().encode(htmlString+window.DART.ENV.RP_SECRET_ENCRYPTION_KEY);\r\n const hashBuffer = await crypto.subtle.digest('SHA-256', utf8);\r\n const hashArray = Array.from(new Uint8Array(hashBuffer));\r\n const hashHex = hashArray\r\n .map((bytes) => bytes.toString(16).padStart(2, '0'))\r\n .join('');\r\n return hashHex;\r\n}\r\n\r\nfunction getLanguageListByMFandKD(kdSettings, country, knowledgeDomain) {\r\n if (kdSettings && country && knowledgeDomain) {\r\n return kdSettings?.filter(x => x.country === country)[0]?.knowledgeDomain?.filter(x => x.name === knowledgeDomain)[0]?.language.split(\",\").map(lang => (\r\n {\r\n language: lang,\r\n defaultLanguage: kdSettings?.filter(x => x.country === country)[0].defaultLanguage,\r\n country: kdSettings?.filter(x => x.country === country)[0].country,\r\n publicationID: kdSettings?.filter(x => x.country === country)[0].publicationID\r\n }\r\n ));\r\n }\r\n}\r\n\r\nfunction getMmeberFirmSettingByTlTaxonomyId(memberFirmSettings, MF_TaxonomyId) {\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(memberFirmSettings) && !UTILITIESHELPER.isStringNullorEmpty(MF_TaxonomyId)) {\r\n const filteredItems = memberFirmSettings?.filter(item => item.id === MF_TaxonomyId);\r\n if (filteredItems.length > 0) {\r\n return filteredItems[0];\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction removeSpecialCharacterFromTitle(title)\r\n{\r\n return title.replace(/&/g, '&')\r\n}\r\n\r\nfunction hasExcludedContentType(items) {\r\n return items.some(item => item.content_type === CONTENT_TYPE_IDS.template);\r\n};\r\n\r\nconst UTILITIESHELPER = {\r\n stickyBarResizing,\r\n formatBytes,\r\n formatDate,\r\n getContentItemTitle,\r\n getContentItemNavTitle,\r\n getLocalStorage,\r\n setLocalStorage,\r\n getLocalStorageJSON,\r\n setLocalStorageJSON,\r\n annotationDisplayStatus,\r\n highlightsDisplayStatus,\r\n commentsDisplayStatus,\r\n embeddedDisplayStatus,\r\n sectionExpandDisplayStatus,\r\n getAuthToken,\r\n isStringNullorEmpty,\r\n isObjectNullorEmpty,\r\n isArrayNullorEmpty,\r\n setSessionStorage,\r\n removeSessionStorage,\r\n getSessionStorage,\r\n generateFriendlyDate,\r\n getBaseDomain,\r\n setMemberFirmLocalStorage,\r\n getMemberFirmLocalStorage,\r\n setDarkModePrefLocalStorage,\r\n getDarkModePrefLocalStorage,\r\n getCurrentLanguageLocalStorage,\r\n getIsDebugMTLocalStorage,\r\n log,\r\n generateUUID,\r\n encodeSpecialCharacters,\r\n decodeSpecialCharacters,\r\n titleCase,\r\n capitalize,\r\n getFootnoteDetailsFromRichText,\r\n createMarkupFootnote,\r\n getIntFromStr,\r\n sortArray,\r\n getContentItemContentAsFlat,\r\n sortAlphaNumericArray,\r\n removeNewLineCharacter,\r\n removeNonBreakingSpaces,\r\n truncateText,\r\n removeLargeSpacesFromRichText,\r\n IsTextHavingFnTag,\r\n removeSpecialCharacterFromFileName,\r\n restrictLengthOfFileName,\r\n sortAlphaCaseInsensitive,\r\n isNullOrUndefined,\r\n checkStringIsHtml,\r\n handleSpaceBarOnSearchSubmit,\r\n isValidDate,\r\n replaceGlobalWithDTTFromPath,\r\n sortArrayDesc,\r\n isHistoryRequest,\r\n getDCSAccessToken,\r\n dynamicSort,\r\n dynamicSortDesc,\r\n removeLocalStorage,\r\n checkIsProdSite,\r\n ReplaceSpecialCharacterInURL,\r\n removeBrackets,\r\n isEmptyObject,\r\n isValidAccessToken,\r\n replaceFootnoteWithLinkInChat,\r\n setRATakeOverData,\r\n isResearchAssistantEnabledForKD,\r\n generateHash,\r\n removeSpecialCharacterFromUrlText,\r\n CheckIfContainsUnicodes,\r\n getLanguageListByMFandKD,\r\n getMmeberFirmSettingByTlTaxonomyId,\r\n generateRandomNumber,\r\n ReplaceSpecialCharacterInURLForShareModel,\r\n removeSpecialCharacterFromTitle,\r\n hasExcludedContentType\r\n}\r\n\r\nexport default UTILITIESHELPER;\r\n","import { REGEX_PATTERN } from '../components/Constants/Constants';\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\nconst pluralSuffix = [\"s\", \"S\", \"'s\", \"'S\"];\r\n\r\nfunction escapeRegExp(string) {\r\n // This method is used to escape ristricted special characters for regex.\r\n // If any other character need to be added in future please add below\r\n return string.replace(/[.*?^${}()[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n}\r\n\r\n//Check if the rest part of the search text is present in the content in the next index,\r\n//If match found then only highlight the current splitted search text else dont\r\nfunction IsSearchTextPresentInNeighbors(textItems, textItem, splittedSearch, postIndex=false, preIndex=false) {\r\n if (textItems.length > 0)\r\n {\r\n if (postIndex && (RegExp (splittedSearch[1], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 1, postIndex)) || RegExp(splittedSearch[1], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 2, postIndex))) && (RegExp (splittedSearch[2], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 1, postIndex)) || RegExp(splittedSearch[2], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 2, postIndex))))\r\n {\r\n return true;\r\n }\r\n else if(preIndex && (RegExp (splittedSearch[0], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 1, postIndex)) || RegExp(splittedSearch[0], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 2, postIndex))) && (RegExp (splittedSearch[1], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 1, postIndex)) || RegExp(splittedSearch[1], 'gi').test(extractTextByIndexValue(textItems, textItem.itemIndex, 2, postIndex)))){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n else{\r\n return false;\r\n }\r\n}\r\n\r\nfunction extractTextByIndexValue(textItems, index, value, postIndex) {\r\n var textValue = postIndex ? textItems[index + value] : textItems[index - value];\r\n return textValue?textValue.str : \"\";\r\n}\r\n\r\n//Public Functions\r\nfunction apply(content, rawSearchPhrase, isPDF=false, textItems = [], textItem={}) {\r\n const parsedPhrase = parse(rawSearchPhrase, content);\r\n return mark(content, parsedPhrase, isPDF, textItems, textItem);\r\n}\r\n\r\nfunction fromQueryString(params) {\r\n return (new URLSearchParams(params)).get('searchPhrase');\r\n}\r\n\r\nfunction hasSearchResults(results) {\r\n var hasResults = false;\r\n results.forEach((resultItem) => {\r\n if (resultItem.highlights?.length > 0) {\r\n hasResults = true;\r\n }\r\n })\r\n return hasResults;\r\n}\r\n\r\nfunction mark(content, searchPhrase, isPDF, textItems, textItem) {\r\n\r\n if (searchPhrase.length > 0 && searchPhrase[0] === '-') {\r\n return content;\r\n }\r\n // enforce minimum serach phrase length of 3\r\n if (searchPhrase.length < 3) {\r\n return content;\r\n }\r\n\r\n if(searchPhrase && (searchPhrase.includes('*') || searchPhrase.includes('?')) && RegExp('^[a-z].*[a-z]$', 'gi').test(searchPhrase)) {\r\n let splitArray = searchPhrase.includes('*') ? searchPhrase.split('*') : searchPhrase.split('?');\r\n if(splitArray.length>1)\r\n {\r\n let regex = searchPhrase.includes('*')?\"\\\\b\" + `${splitArray[0]}.+?${splitArray[1]}` :\"\\\\b\" + `${splitArray[0]}.{1}?${splitArray[1]}`;// eslint-disable-line\r\n return markWithWildChars(content, regex);\r\n }\r\n }\r\n\r\n else if(searchPhrase && (searchPhrase.includes('+')) && RegExp('[a-z] ?\\\\+ ?[a-z]', 'gi').test(searchPhrase))\r\n {\r\n searchPhrase = searchPhrase.replace(/\\s+/g, \"\");\r\n let splitArray = searchPhrase.split('+');\r\n if(splitArray.length>1)\r\n {\r\n let regex = \"\\\\b\"+`${splitArray[0].trim()}` + \"+\\\\s*[\\r\\n]*\" + `${splitArray[1].trim()}`+\"\\\\b\";// eslint-disable-line\r\n return markWithOperators(content,regex);\r\n }\r\n }\r\n\r\n else if(searchPhrase && (searchPhrase.includes('-')) && (!searchPhrase.includes('\"')) && RegExp('[a-z] ?\\- ?[a-z]', 'gi').test(searchPhrase))// eslint-disable-line\r\n {\r\n searchPhrase = searchPhrase.replace(/\\s+/g, \"\");// eslint-disable-line\r\n let splitArray = searchPhrase.split('-');\r\n \r\n if(splitArray.length>1)\r\n {\r\n let regex = \"\\\\b\"+`${splitArray[0].trim().replace('(','')}`+\"\\\\b\"// eslint-disable-line\r\n UTILITIESHELPER.removeBrackets(regex)\r\n return markWithOperators(content,UTILITIESHELPER.removeBrackets(regex));\r\n }\r\n }\r\n\r\n else if(searchPhrase && (searchPhrase.includes('/')) && (!searchPhrase.includes('\"')) && RegExp('[a-z] ?\\\\ ?[a-z]', 'gi').test(searchPhrase))// eslint-disable-line\r\n {\r\n searchPhrase = searchPhrase.replace(/\\s+/g, \"\");// eslint-disable-line\r\n let splitArray = searchPhrase.split('/');\r\n if(splitArray.length>1)\r\n {\r\n let regex = \"\\\\b\"+`${splitArray[0].trim()}|${splitArray[1].trim()}`+\"\\\\b\"// eslint-disable-line\r\n return markWithOperators(content,regex);\r\n }\r\n }\r\n\r\n else if(searchPhrase && isPDF && searchPhrase.includes('\"') && searchPhrase.includes('-'))\r\n {\r\n searchPhrase = searchPhrase.replace(/\\s+/g, \"\").replace(/\"/g,'');\r\n let splitArray = searchPhrase.split('-');\r\n let splittedSearch = [];\r\n splittedSearch.push(splitArray[0],'-',splitArray[1]);\r\n if(RegExp(splittedSearch[0], 'gi').test(content))\r\n {\r\n if(IsSearchTextPresentInNeighbors(textItems,textItem,splittedSearch,true,false))\r\n {\r\n return markSearchPhrase(content, splittedSearch[0]);\r\n }\r\n }\r\n if(RegExp(splittedSearch[2], 'gi').test(content))\r\n {\r\n if(IsSearchTextPresentInNeighbors(textItems,textItem,splittedSearch,false,true))\r\n {\r\n return markSearchPhrase(content, splittedSearch[2]);\r\n }\r\n }\r\n return markSearchPhrase(content, searchPhrase);\r\n }\r\n\r\n //check for space + asterisk(\" *\")\r\n if (RegExp('\\\\s\\\\*', 'g').test(searchPhrase)) {\r\n return markAll(content, searchPhrase);\r\n }\r\n\r\n return markSearchPhrase(content, searchPhrase);\r\n}\r\n\r\nfunction markSearchPhrase(content, searchPhrase) {\r\n let regex = getRegex(searchPhrase, content);\r\n if (regex === null) {\r\n return content;\r\n }\r\n\r\n const m = (content, pre = '', post = '') => `${pre}${content}${post}`;\r\n\r\n return content.toString().split(new RegExp('(<\\/?.*?>)', 'gi')).map(function (value) { // eslint-disable-line\r\n value = UTILITIESHELPER.removeLargeSpacesFromRichText(value);\r\n if (!new RegExp('(<\\/?.*?>)', 'gi').test(value) && value && regex.test(value))// eslint-disable-line\r\n {\r\n return value.toString().replace(regex, (a) => m(a));\r\n }\r\n return value;\r\n }).join(\" \");\r\n}\r\n\r\nfunction parse(searchPhrase, content) {\r\n let phrase = `${searchPhrase}`; // clone\r\n\r\n phrase = phrase\r\n .toString()\r\n .trim()\r\n .replace(/\\(/g, \"(\")\r\n .replace(/\\)/g, \")\")\r\n .replace(/\\[/g, \"[\")\r\n .replace(/\\]/g, \"]\")\r\n .replace(/\\\\/g, \"\\\\\")\r\n .replace(/\\//g, \"/\")\r\n // Replace Text Operators\r\n .replace(/\\sAND\\s|\\s&&\\s/g, \"+\") // AND, && => +\r\n .replace(/\\sOR\\s/g, \"|\")\r\n .replace(/\\sNOT\\s/g, \"-\")\r\n // Normalize Operator Gaps\r\n .replace(/[\\+\\|\\-]$/, \"\")// eslint-disable-line\r\n .trim();\r\n\r\n if (content !== undefined) {\r\n if (content.includes(\"’\")) {\r\n return phrase = phrase.replace(\"'\", \"’\");\r\n } else {\r\n if (phrase.includes(\"’\")) {\r\n return phrase = phrase.replace(\"’\", \"'\");\r\n }\r\n }\r\n }\r\n return phrase;\r\n}\r\n\r\nfunction toHumanReadable(searchPhrase) {\r\n return searchPhrase?.replace(/\\|/g, ' | ')?.replace(/\\s+/g, ' ');\r\n}\r\n\r\nfunction toQueryString(searchPhrase) {\r\n return (new URLSearchParams({ searchPhrase })).toString();\r\n}\r\n\r\nfunction markAll(htmlSting, searchPhrase) {\r\n // split the complete string by all html tag example.(
), then loop through all the splitted value and wrap with highligt div where from where the search phrase starts\r\n const m = (content, pre = '', post = '') => `${pre}${content}${post}`;\r\n\r\n //Split content by html tags\r\n let resString = htmlSting.toString().split(new RegExp('(<\\/?.*?>)', 'gi'));// eslint-disable-line\r\n let firstOccuranceSearchString = searchPhrase.match(new RegExp('([\\\\w]*)\\\\s+\\\\*', 'gi'))[0].match(new RegExp('\\\\w*', 'gi'))[0];//extract character from search phrase if available\r\n let isSearchStarted = (UTILITIESHELPER.getLocalStorage(\"rp-is-search-start\")=== \"true\");\r\n return resString.map(function (value) {\r\n if (!value.trim()) {\r\n return \"\";\r\n }\r\n\r\n let isContainsSearchString = new RegExp(firstOccuranceSearchString, 'gi').test(value);// set startHighlight to when content includes searchPhrase OR searchPhrase only contains \" *\"\r\n\r\n if (!new RegExp('(<\\/?.*?>)', 'gi').test(value) && !isSearchStarted && isContainsSearchString && firstOccuranceSearchString) { // eslint-disable-line\r\n //this condition checks when to start the highlight isSearchStarted(if false highlight not startted yet),\r\n //isContainsSearchString(string contains search phrase or not), firstOccuranceSearchString(check search phrase should have any keyword before \"any *\", this contains \"any\")\r\n UTILITIESHELPER.setLocalStorage(\"rp-is-search-start\", true);\r\n isSearchStarted = true;\r\n if (isContainsSearchString) {\r\n return value.replace(new RegExp(`${firstOccuranceSearchString}.*`, 'gi'), (match) => { return m(match) });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line\r\n if (new RegExp('(<\\/?.*?>)', 'gi').test(value) || !isSearchStarted) {\r\n return value;\r\n }\r\n return m(value);\r\n\r\n }).join(\" \");\r\n}\r\n\r\nfunction markWithWildChars(htmlString, regex) {\r\n let resString = htmlString.toString().split(new RegExp('(<\\/?.*?>)', 'gi')); // eslint-disable-line\r\n //Split content by html tags\r\n\r\n //eslint-disable-next-line\r\n return resString.map(function (value) {\r\n if(regex.includes('*') || regex.includes('?'))\r\n {\r\n value=value.replace(/\\s+/g,' ')\r\n var words = value.split(\" \");\r\n if (!new RegExp(\"(<([^>]+)>)\", \"gi\").test(value)) {\r\n return words\r\n .map(function(word) {\r\n return word.replace(new RegExp(regex, \"gi\"), `$&`);\r\n })\r\n .join(\" \");\r\n }\r\n else{\r\n return words\r\n .map(function(word) {\r\n return word;\r\n })\r\n .join(\" \");\r\n }\r\n }\r\n }).join(\" \");\r\n}\r\n\r\nfunction markWithOperators(htmlString, regex) {\r\n //Split content by html tags\r\n let resString = htmlString.toString().split(new RegExp('(<\\/?.*?>)', 'gi'));// eslint-disable-line\r\n \r\n return resString.map(function (value) {\r\n return value.replace(new RegExp(regex, 'gi'), `$&`);\r\n }).join(\" \");\r\n}\r\n\r\nfunction markSearchTermsIgnoringPluralEndings(terms) {\r\n for (var element of pluralSuffix) {\r\n var index = terms.lastIndexOf(element);\r\n if (index > -1 && index > terms.length - 3) {\r\n terms = \"\\\\b\"+terms.slice(0, index) + \"+(\" + element + \")?\\\\b\";\r\n break;\r\n }\r\n }\r\n return terms;\r\n}\r\n\r\nfunction getRegex(searchPhrase) {\r\n let terms = searchPhrase.match(/-\"(?:\\\\\"|[^\"])+\"|[a-zA-Z0-9\\|\\+?*\\'-’$]+|\"(?:\\\\\"|[^\"])+\"/gi)// eslint-disable-line\r\n if (terms === null) return null;\r\n //regex to check if search term is within double quotes\r\n var doubleQuoteRegex = /(\"(.*?)\")/g ///(^\\\"[a-zA-Z0-9\\+\\s]+\\\"$)/g\r\n\r\n //This list is created because on line 129 the map method can't contain regex test function call\r\n //as the regex test() calls multiple times on the same global regular expression instance\r\n //will advance past the previous hence will always return false inside map scope\r\n var doubleQuotedTermList = terms.filter(e => doubleQuoteRegex.test(e))\r\n\r\n terms = terms.filter(x => x[0] !== '-')\r\n\r\n // regex to find given special characters from the search phrase, if got any spcl character then need to escape those character\r\n let regexToCheckSpecialCharacter = new RegExp(\"[[$({)}\\\\]\\\\//]\", \"g\");\r\n\r\n terms = terms.map(x => {\r\n //If search term is within double quotes, then match exact term(s) with boundaries\r\n //so that entire sentence can be parsed\r\n if (doubleQuotedTermList.includes(x)) {\r\n //remove double quotes to get the exact term\r\n x = x.slice(1, -1);\r\n x = x.replace('+', '\\\\+');\r\n if (regexToCheckSpecialCharacter.test(x)) {\r\n return escapeRegExp(x);\r\n }\r\n return `\\\\b${escapeRegExp(x)}\\\\b(?!['’])` // \"(?!['’])\" this regex is used to exclude these \"'`\" special character by using negetive lookahead regex\r\n }\r\n\r\n else {\r\n return escapeRegExp(x)\r\n .replace(/^\\||^\\+|\\\"/g, '') // eslint-disable-line\r\n .replace(/\\?/g, '[a-zA-Z0-9]{0,}')\r\n .replace(/\\*/g, '[a-zA-Z0-9]{0,}')\r\n .replace(/\\s/g, '\\\\s{0,}(?:<.+?>){0,}\\\\s{0,}');\r\n }\r\n })\r\n\r\n terms = terms.filter(x => x !== '');\r\n terms = terms.join('|');\r\n\r\n if (new RegExp(\"(\\\\b\\\\w+[a-zA-Z0-9](\"+pluralSuffix.join(\"|\")+\")\\\\b)\", \"gi\").test(terms)) {\r\n terms = markSearchTermsIgnoringPluralEndings(terms);\r\n }\r\n\r\n return RegExp(terms, 'gi');\r\n}\r\n\r\nfunction replaceOperator(operator){\r\n switch(operator){\r\n case '+':\r\n return ' && ';\r\n case '|':\r\n return ' || ';\r\n case '-':\r\n return ' -';\r\n default:\r\n return operator;\r\n }\r\n}\r\n\r\n//This is a helper method to parse the search phrase having operators '+,-,| etc..'\r\nfunction parseSearchPhrase(searchPhrase, separator, pattern)\r\n{\r\n if(!UTILITIESHELPER.isStringNullorEmpty(searchPhrase))\r\n {\r\n searchPhrase = searchPhrase.replace(/\\s+/g, \"\");\r\n if(searchPhrase.includes(separator) && RegExp(pattern, 'gi').test(searchPhrase)){\r\n let splitArray = searchPhrase.split(separator);\r\n if (splitArray.length > 1) {\r\n searchPhrase = `${splitArray[0].trim()}${replaceOperator(separator)}${splitArray[1].trim()}`;\r\n }\r\n }\r\n }\r\n return searchPhrase;\r\n}\r\n\r\nfunction IsSearchPrefixWithWildcards(searchPhrase) {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(searchPhrase)) {\r\n if (REGEX_PATTERN.wildcards.test(searchPhrase)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction getCollectionSearchLimitFromAppSettings() {\r\n return window.DART.ENV.REACT_APP_COLLECTION_SEARCH_LIMIT\r\n //return RETRIEVALSERVICES.retreiveCollectionSearchLimit();//This is causing unnesccssary call, we are reading from client appsettings.token.js\r\n}\r\n\r\nfunction SanitizeSpecialCharacters(searchPhrase) {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(searchPhrase)) {\r\n searchPhrase = searchPhrase.replace('/', '\\\\/');\r\n }\r\n return searchPhrase;\r\n}\r\n\r\nexport default {\r\n apply,\r\n fromQueryString,\r\n hasSearchResults,\r\n mark,\r\n parse,\r\n toHumanReadable,\r\n toQueryString,\r\n parseSearchPhrase,\r\n getCollectionSearchLimitFromAppSettings,\r\n IsSearchPrefixWithWildcards,\r\n SanitizeSpecialCharacters\r\n}\r\n","// Browser Storage Helpers\r\n\r\n// Session Storage\r\nfunction getSessionStorage(key) {\r\n var sessionStorage = window.sessionStorage;\r\n var item = sessionStorage.getItem(key);\r\n return item;\r\n}\r\n\r\nfunction setSessionStorage(key, value) {\r\n var sessionStorage = window.sessionStorage;\r\n sessionStorage.setItem(key, value);\r\n}\r\n\r\nfunction getSessionStorageJSON(key) {\r\n var sessionStorage = window.sessionStorage;\r\n return JSON.parse(sessionStorage.getItem(key));\r\n}\r\n\r\nfunction setSessionStorageJSON(key, value) {\r\n var sessionStorage = window.sessionStorage;\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n}\r\n\r\nfunction removeSessionStorage(key) {\r\n sessionStorage.removeItem(key);\r\n}\r\n\r\n// Local Storage\r\nfunction getLocalStorage(key) {\r\n var localStorage = window.localStorage;\r\n var item = localStorage.getItem(key);\r\n return item;\r\n}\r\n\r\nfunction setLocalStorage(key, value) {\r\n var localStorage = window.localStorage;\r\n localStorage.setItem(key, value);\r\n}\r\n\r\nfunction getLocalStorageJSON(key) {\r\n var localStorage = window.localStorage;\r\n return JSON.parse(localStorage.getItem(key));\r\n}\r\n\r\nfunction setLocalStorageJSON(key, value) {\r\n var localStorage = window.localStorage;\r\n localStorage.setItem(key, JSON.stringify(value));\r\n}\r\n\r\nfunction removeLocalStorage(key) {\r\n var localStorage = window.localStorage;\r\n localStorage.removeItem(key);\r\n}\r\n\r\nexport default {\r\n getSessionStorage,\r\n getSessionStorageJSON,\r\n setSessionStorage,\r\n setSessionStorageJSON,\r\n removeSessionStorage,\r\n getLocalStorage,\r\n getLocalStorageJSON,\r\n setLocalStorage,\r\n setLocalStorageJSON,\r\n removeLocalStorage\r\n}","import { MEMBERFIRM_CONSTANTS } from '../components/Constants/Constants';\r\nimport SH from './StorageHelpers';\r\nimport UTILITIESHELPER from './UtilitiesHelper';\r\n\r\nconst STORAGE_KEY_MEMBER_FIRM = 'MemberFirm'; //Previously: \"research-portal-member-firm\"\r\nconst STORAGE_KEY_MEMBER_FIRM_TAXONOMY_ID = 'member-firm-Id';\r\nconst STORAGE_KEY_SERVICE_AREA = 'ServiceArea';\r\nconst STORAGE_KEY_LEVEL = 'Level';\r\nconst STORAGE_KEY_SUBSCRIBED_MFS = 'rp::subs:memberFirm';\r\nconst STORAGE_KEY_LAST_MEMBER_FIRM = 'research-portal-member-firm';\r\nconst STORAGE_KEY_LAST_LANGUAGE = 'cur-mt-name';\r\nconst STORAGE_KEY_LANGUAGE = \"mt-name\";\r\n\r\nconst lc = (w) => String(w).toLowerCase()\r\nconst sorter = (a, b) => lc(a).localeCompare(lc(b))\r\n\r\n\r\nexport function initializeProfile(memberFirm = MEMBERFIRM_CONSTANTS.dtt, countryCode = MEMBERFIRM_CONSTANTS.us, serviceArea = null, level = null) {\r\n SH.setLocalStorage(STORAGE_KEY_MEMBER_FIRM, lc(countryCode));\r\n if(UTILITIESHELPER.isObjectNullorEmpty(SH.getLocalStorage(STORAGE_KEY_LAST_MEMBER_FIRM))){\r\n SH.setSessionStorage(STORAGE_KEY_LAST_MEMBER_FIRM, lc(memberFirm));\r\n }\r\n SH.setSessionStorage(STORAGE_KEY_SERVICE_AREA, serviceArea);\r\n SH.setSessionStorage(STORAGE_KEY_LEVEL, level);\r\n\r\n if (SH.getLocalStorageJSON(STORAGE_KEY_SUBSCRIBED_MFS) === null) {\r\n SH.setLocalStorageJSON(STORAGE_KEY_SUBSCRIBED_MFS, []);\r\n \r\n }\r\n SH.setLocalStorageJSON(\"researchAssistant::subs:memberFirm\", []);\r\n}\r\n\r\nexport function getMemberFirm() {\r\n return getFallbackMemberFirm(lc(SH.getLocalStorage(STORAGE_KEY_MEMBER_FIRM)));\r\n}\r\n\r\nexport function getServiceArea() {\r\n return SH.getSessionStorage(STORAGE_KEY_SERVICE_AREA);\r\n}\r\n\r\nexport function getLevel() {\r\n return SH.getSessionStorage(STORAGE_KEY_LEVEL);\r\n}\r\n\r\n// MemberFirm Subscription\r\nexport function getMFSubs() {\r\n\r\n return SH.getLocalStorageJSON(STORAGE_KEY_SUBSCRIBED_MFS).map(x => lc(x)).sort(sorter);\r\n}\r\n\r\nexport function addMFSub(memberFirm) {\r\n const subs = [...getMFSubs(), lc(memberFirm)].sort(sorter);\r\n SH.setLocalStorageJSON(STORAGE_KEY_SUBSCRIBED_MFS, subs);\r\n}\r\n\r\nexport function removeMFSub(memberFirm) {\r\n const subs = getMFSubs()\r\n .filter(mf => lc(mf) !== lc(memberFirm))\r\n .sort(sorter);\r\n SH.setLocalStorageJSON(STORAGE_KEY_SUBSCRIBED_MFS, subs);\r\n}\r\n\r\n// All member firms, opm firm then mf subs\r\nexport function getAllMemberFirms() {\r\n return [...new Set([getMemberFirm(), ...getMFSubs()])];\r\n}\r\n\r\n\r\n// These two function support the \"remembering\" of the previously selected\r\n// member firm for revisit to the home/landing page.\r\nexport function setLastMemberFirm(memberFirm) {\r\n if (memberFirm) {\r\n //clog(`memberFirm[${memberFirm}]`)\r\n SH.setLocalStorage(STORAGE_KEY_LAST_MEMBER_FIRM, lc(memberFirm));\r\n }\r\n}\r\n\r\nexport function setLastMemberFirmResearchAssistant(memberFirm) {\r\n if (memberFirm) {\r\n SH.setLocalStorage(\"research-assistant-memberfirm\",lc(memberFirm));\r\n }\r\n}\r\n\r\nexport function getLastorDefaultMemberFirm() {\r\n const last = SH.getLocalStorage(STORAGE_KEY_LAST_MEMBER_FIRM);\r\n let defaultMem = SH.getLocalStorage(STORAGE_KEY_MEMBER_FIRM);\r\n return (last === null) ? defaultMem : String(last);\r\n}\r\n\r\nexport function setSelectedMemberFirmTaxonomyId(memberFirmId) {\r\n SH.setLocalStorage(STORAGE_KEY_MEMBER_FIRM_TAXONOMY_ID, memberFirmId);\r\n}\r\n\r\nexport function getSelectedMemberFirmTaxonomyId() {\r\n return SH.getLocalStorage(STORAGE_KEY_MEMBER_FIRM_TAXONOMY_ID);\r\n}\r\n\r\nexport function getLanguageConfig(urlLanguage) {\r\n // Retrieve current language selection\r\n const ssName = SH.getSessionStorage(STORAGE_KEY_LAST_LANGUAGE);\r\n\r\n // If we have a current language in session storage, return lang info\r\n if (ssName) {\r\n const abbreviation = SH.getSessionStorage(\"cur-mt-abbreviation\");\r\n let languageCodeFE = SH.getSessionStorage(\"cur-mt-languageCodeFE\");\r\n\r\n if (!languageCodeFE || languageCodeFE === \"null\" || languageCodeFE === \"\") {\r\n languageCodeFE = urlLanguage;\r\n }\r\n\r\n return { name: ssName, abbreviation, languageCodeFE };\r\n }\r\n\r\n // Retrieve local storage language configuration\r\n const lsName = SH.getLocalStorage(STORAGE_KEY_LANGUAGE);\r\n\r\n // If we have a language in local storage, return lang info\r\n if (lsName) {\r\n const abbreviation = SH.getLocalStorage(\"mt-abbreviation\");\r\n let languageCodeFE = SH.getLocalStorage(\"mt-languageCodeFE\");\r\n\r\n if (!languageCodeFE || languageCodeFE === \"null\" || languageCodeFE === \"\") {\r\n languageCodeFE = urlLanguage;\r\n }\r\n\r\n return { name: lsName, abbreviation,languageCodeFE };\r\n }\r\n\r\n // Fallback to English\r\n return { name: \"English\", abbreviation: \"EN\", languageCodeFE: urlLanguage };\r\n}\r\n\r\n// Fallback member firm if the users home firm does not have a home member firm catalog. \r\nexport const getFallbackMemberFirm = (memberFirm) => {\r\n //added new check of memberFirm !==\"content\" because in below case getting \"content\" in position of member firm\r\n //https://qinkrpservice.aaps.deloitte.com/content/docid=2_342973%23section_3_rule_3524-342973\r\n if (memberFirm && memberFirm !== \"\" && memberFirm !== \"content\") {\r\n memberFirm = lc(memberFirm);\r\n //ONLY when the incoming memberFirm is blank, do we need to fall back to a default (previous)\r\n //THERFORE, I am not sure why we were doing this before...\r\n /*if (memberFirm !== \"us\" && memberFirm !== \"dtt\") {\r\n console.log(\"getFallbackMemberFirm:Fall back to dtt? Current memberFirm:\", memberFirm)\r\n memberFirm = 'dtt';\r\n }\r\n else {\r\n memberFirm = lc(memberFirm);\r\n }*/\r\n }\r\n else {\r\n //User/session is initialized with user's MF as last-viewed\r\n memberFirm = getLastorDefaultMemberFirm();\r\n }\r\n\r\n if (memberFirm === undefined || memberFirm === null || memberFirm === \"\") {\r\n const defaultMem = SH.getLocalStorage(STORAGE_KEY_MEMBER_FIRM);\r\n memberFirm = defaultMem ?? \"dtt\";\r\n\t}\r\n\r\n //clog(`memberFirm[${memberFirm}]`);\r\n return memberFirm;\r\n}\r\n\r\nexport const getFallbackLanguageByMemberFirm = (memberFirm, language) => {\r\n let languageSettings = getLanguageConfig(language);\r\n SH.setLocalStorage(\"research-portal-language\", language);\r\n if (language !== languageSettings.languageCodeFE) {\r\n language = languageSettings.languageCodeFE;\r\n }\r\n //added new check of language.includes(\"docid\") because in below case getting \"docid=2_342973%23section_3_rule_3524-342973\" in position of language\r\n //https://qinkrpservice.aaps.deloitte.com/content/docid=2_342973%23section_3_rule_3524-342973\r\n if (!language || language.startsWith(\"en\") || language.includes(\"docid\")) {\r\n switch (memberFirm) {\r\n //UK is also having its content in DCS as en-US\r\n //case \"uk\": language = \"en-UK\"; break;\r\n default: language = \"en-US\"; break;\r\n }\r\n }\r\n\r\n //WalkmeIntegration\r\n window.langVar = language;\r\n\r\n //clog(`memberFirm[${memberFirm}] language[${language}]`);\r\n return language;\r\n}\r\n\r\nexport function isSelectedMFAndOPMMemberFirmAreSame() {\r\n //STORAGE_KEY_LAST_MEMBER_FIRM = selected MF\r\n //STORAGE_KEY_MEMBER_FIRM = OPM MF\r\n if (UTILITIESHELPER.isStringNullorEmpty(SH.getLocalStorage(STORAGE_KEY_MEMBER_FIRM)) || UTILITIESHELPER.isStringNullorEmpty(SH.getLocalStorage(STORAGE_KEY_LAST_MEMBER_FIRM)))\r\n return false;\r\n\r\n if (lc(SH.getLocalStorage(STORAGE_KEY_MEMBER_FIRM)) === lc(SH.getLocalStorage(STORAGE_KEY_LAST_MEMBER_FIRM)))\r\n return true;\r\n\r\n return false;\r\n}\r\n\r\nconst ProfileHelpers = {\r\n getMemberFirm,\r\n getServiceArea,\r\n getLevel,\r\n getMFSubs,\r\n addMFSub,\r\n removeMFSub,\r\n getAllMemberFirms,\r\n getLastorDefaultMemberFirm,\r\n setLastMemberFirm,\r\n getFallbackLanguageByMemberFirm,\r\n getFallbackMemberFirm,\r\n setSelectedMemberFirmTaxonomyId,\r\n getSelectedMemberFirmTaxonomyId,\r\n setLastMemberFirmResearchAssistant,\r\n isSelectedMFAndOPMMemberFirmAreSame\r\n}\r\n\r\nexport default ProfileHelpers;","import RETRIEVALSERVICES from '../services/rp-service';\r\nimport { sanitizeUrl } from '@braintree/sanitize-url';\r\nimport { get } from 'lodash';\r\nimport { logs, page } from '../helpers/log.js';\r\nimport ARTICLEHELPERS from '../helpers/ArticleHelpers';\r\nimport UTILITIESHELPER from \"../helpers/UtilitiesHelper\";\r\nimport SearchHelpers from './SearchHelpers';\r\nimport { ErrorCodes, ErrorMessages } from '../components/Constants/Errors';\r\nimport { PAGE_CONTROLLER_TYPE, PUBLICATIONTYPE_IDS } from '../components/Constants/Constants';\r\nimport ProfileHelpers from './ProfileHelpers';\r\nconst linkHashSeparator = \"_|RP-HASH|_\";\r\nconst KnowledgeDomainInSequence = [\"17573941\", \"68489712\", \"17573178\"];\r\n//Expected input: id: \"GUID-57E01081-B02B-4FD5-8A72-2032275453E4=1=en-US=\"\r\nfunction cleanGUID(guid) {\r\n let cleanedGuid = guid;\r\n\r\n if (cleanedGuid.includes(\"=\")) {\r\n cleanedGuid = cleanedGuid.split(\"=\")[0];\r\n }\r\n if (cleanedGuid.includes(\"#\")) {\r\n const guidArr = cleanedGuid.split(\"#\");\r\n cleanedGuid = guidArr[0];\r\n }\r\n return cleanedGuid;\r\n}\r\n\r\n// To get the GUID of Article\r\nfunction getGUID(locationUrl){\r\n const path = locationUrl\r\n const arry = path.split(\"/\");\r\n const lastElement = arry[arry.length - 1];\r\n return lastElement;\r\n}\r\n\r\nfunction cleanLocationURL(targetBaseUrl) {\r\n let location = window.location.href;\r\n if (location.includes(\"#\")) {\r\n location = location.split(\"#\")[0];\r\n }\r\n if (location.includes(\"?\")) {\r\n location = location.split(\"?\")[0];\r\n }\r\n return location.substring(location.indexOf(targetBaseUrl));\r\n}\r\n\r\nfunction deturmineJournalType(journalBrand) {\r\n // Accounting Roundup - Accounting\r\n // IFRS Educational Material - Accounting - External\r\n // IFRS in Focus - Accounting\r\n // IFRS Proposals - Accounting - External\r\n // Need to Know - Accounting\r\n // Audit Smart One Pagers - Auditing\r\n // Practice Alerts - Auditing\r\n // NAA weekly digest - Auditing & Accounting\r\n // Technically Speaking - Auditing & Accounting\r\n //TODO: Need to confirm if its available, and then change this to get it from pub-type:\r\n //Announcement === 60194864 --> deloitte-communications\r\n //Announcement - External === 65511719 -> professional-news\r\n\r\n return (journalBrand === \"IFRS Educational Material\" || journalBrand === \"IFRS Proposals\") ? \"professional-news\" : \"deloitte-communications\";\r\n}\r\n\r\nfunction extractGUIDs(hrefValue) {\r\n let isLinkCT = !hrefValue.startsWith(\"GUID\");\r\n let targetTopicGuid = hrefValue;\r\n let targetElementGuid = null;\r\n\r\n //Mechanism for getting the guid from a query parameter, or the new html links. \r\n // href=\"..._Revenue_Recognition_Contract_Term=GUID-DC964530-0ACE-4F6E-A654-7590F2EAD2B8=4=en-US=.html#SL679768029-359834\"\r\n // href=\"GUID-AC622958-6D64-43C4-B8F1-FF79EBDEEE52=1=en-US=.html\"\r\n if (targetTopicGuid.includes(\"=\")) {\r\n //if we have a #, lets grab the targetElement ouf of there first...\r\n if (targetTopicGuid.includes(\"#\")) {\r\n targetElementGuid = targetTopicGuid.split(\"#\")[1];\r\n }\r\n const guidArr = targetTopicGuid.split(\"=\");\r\n if (guidArr[1].startsWith(\"GUID\")) {\r\n //we will then get \"GUID-DC964530-0ACE-4F6E-A654-7590F2EAD2B8\" from the first example above\r\n targetTopicGuid = guidArr[1];\r\n }\r\n else {\r\n //we will then get \"GUID-AC622958-6D64-43C4-B8F1-FF79EBDEEE52\" from the example above\r\n targetTopicGuid = guidArr[0];\r\n }\r\n }\r\n\r\n //# denotes the element to scroll down to, we then have an publication/article and #element in the href\r\n // and in the case of CT Links\r\n if (targetTopicGuid.includes(\"#\")) {\r\n const guidArr = targetTopicGuid.split(\"#\");\r\n\r\n //If this is is a non-CT link (internal)\r\n if (targetTopicGuid.startsWith(\"GUID\")) {\r\n targetTopicGuid = guidArr[0];\r\n targetElementGuid = guidArr.length > 1 ? guidArr[1] : null;\r\n }\r\n else {\r\n //CT Links - Now we can resolve CT links, so we split them out and still look on the current page for the targetElement\r\n // in the BE, the two will be re-joined before making the request.\r\n targetTopicGuid = guidArr[0]; //null (in the past)\r\n targetElementGuid = guidArr[1];\r\n }\r\n }\r\n\r\n //When we have a / at this point then we actually have pub...article/element\r\n if (targetElementGuid?.includes(\"/\")) {\r\n const urlArr = targetElementGuid.split(\"/\");\r\n //targetTopicGuid = urlArr[0]; (we no longer replace the TopicGuid (as that now remains the 1st GUID))\r\n targetElementGuid = urlArr[1];\r\n }\r\n\r\n //If they are the same at this point, then we clear the element!\r\n if (targetElementGuid === targetTopicGuid) {\r\n targetElementGuid = null;\r\n }\r\n\r\n //logs.debug(page.Link, 'LinkResolver', \"targetTopicGuid, targetElementGuid:\",targetTopicGuid, targetElementGuid);\r\n return { targetTopicGuid, targetElementGuid, isLinkCT };\r\n}\r\nfunction existsInsideParentClass(child, classname) {\r\n if (hasClass(child, classname)) {\r\n return true;\r\n }\r\n\r\n try {\r\n //Throws TypeError if child doesn't have parent any more\r\n return child.parentNode && existsInsideParentClass(child.parentNode, classname);\r\n }\r\n catch (TypeError) {\r\n return false;\r\n }\r\n}\r\nfunction hasClass(child, classname) {\r\n if (child.className.split(' ').indexOf(classname) >= 0) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isFootnoteTopLink(child) {\r\n if (child.href.split('/').pop().indexOf('#footnote-top-') >= 0) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getClosestLinkElement(ev) {\r\n var el\r\n if (Element.prototype.closest) {\r\n el = ev.target.closest('a');\r\n }\r\n else {\r\n //else the long way\r\n el = ev.target;\r\n while (el && el.tagName !== 'a') {\r\n el = el.parentNode;\r\n }\r\n }\r\n return el;\r\n}\r\nfunction getDataSource(ev) {\r\n var el = getClosestLinkElement(ev)\r\n return el?.dataset?.scope;\r\n}\r\n\r\nfunction getDynamicFolioSectionOrType(publication_type) {\r\n switch (publication_type) {\r\n case \"65683596\": //Disclosures in practice\r\n return \"disclosures\";\r\n\r\n case \"65683649\": //Model Financial Statement\r\n return \"modelfs\";\r\n\r\n case \"65683594\": //Q&A\r\n return \"qna\";\r\n\r\n case \"48082106\": //Auditing: Guided Risk Assessment\r\n case \"60194867\": //Auditing::Process Flow\r\n case \"48082109\": //Auditing::Omnia Core Policy\r\n case \"66029858\": //Auditing::RP Template Repository 66029858 66019138-66074179, \r\n case \"58035381\": //New:Template Repository\r\n case \"68489711\": //New:Template Repository - Account (GRA)\r\n case \"68169717\": //New:Template Repository - RP\r\n return \"templates\";\r\n\r\n case \"60194862\": //Auditing::DeloitteWWF-RP\r\n case \"66029856\": //Auditing::Illustrative Example\r\n case \"66029857\": //Auditing::RP Other Guidance\r\n case \"63868156\": //Auditing::GRA-Guide..Guidebook\r\n return \"other\";\r\n\r\n case \"60194863\": //Accounting::Roadmap --> Knowledge domain different!!\r\n return \"roadmap\";\r\n\r\n case \"48082110\": //Spine: Manual Section - I need the parent spine pub id! (otherwise the link opens up in context of pub - not spine-pub)\r\n case \"60194866\": //Structure Manual\r\n return \"manual\";\r\n\r\n case \"65469054\": //Standard Section-Unumbered\r\n case \"48082111\": //Spine: Standard Section - I need the parent spine pub id! (otherwise the link opens up in context of pub - not spine-pub)\r\n case \"60194865\": //Structure Standards\r\n return \"standards\";\r\n case PUBLICATIONTYPE_IDS.externalCollection:\r\n return PAGE_CONTROLLER_TYPE.standard;\r\n case \"60194864\": //Alerts & Ann\r\n return \"alerts\";\r\n //these are default - already guidance\r\n case \"60194861\": //Auditing::Practical-Guide..Guidebook\r\n break;\r\n\r\n default:\r\n logs.info(page.Link, 'LinkResolver', \"publication_type not found or defined, defaulting to guidance\", publication_type);\r\n break;\r\n }\r\n\r\n return \"guidance\";\r\n}\r\n\r\nfunction getTargetKnowledgeDomain(knowledgeDomain, publication) {\r\n let currentKnowledgeDomain = \"\";\r\n\r\n switch (knowledgeDomain) {\r\n case \"accounting\": currentKnowledgeDomain = \"17573178\"; break;\r\n case \"auditing\": currentKnowledgeDomain = \"17573941\"; break;\r\n case \"assurance\": currentKnowledgeDomain = \"68489712\"; break;\r\n default:\r\n logs.debug(page.Link, 'LinkHelper', \"The given knowledge domain is not valid \" + knowledgeDomain);\r\n //return knowledgeDomain;\r\n }\r\n\r\n //If we find the knowledgeDomain in the list of knowledge domains of the publication, we have a match, and can stay in the same KD!\r\n //We need to search here as most he time we have multiple values here, and some of them are NOT valid tiers!\r\n let targetKnowledgeDomain = publication.metadata?.knowledge_domain?.find(tier => tier === currentKnowledgeDomain) ?? \"\";\r\n\r\n //logs.debug(page.Link, 'LinkHelper', \"The target knowledge domain targetKnowledgeDomain, currentKnowledgeDomain\", targetKnowledgeDomain, currentKnowledgeDomain);\r\n\r\n //We only set/reset this if we GET the tier, otherwise we leave it as the \"current\" knowledgeDomain!\r\n if (UTILITIESHELPER.isStringNullorEmpty(targetKnowledgeDomain)) {\r\n //The publication is not within the current knowledge domain, so we attempt to get one of the target knowledgeDomain(s) \r\n let dynamicTierArray = KnowledgeDomainInSequence.filter(tier => publication.metadata?.knowledge_domain?.includes(tier)); //validate when dynamicTierArray is empty it should not break\r\n\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(dynamicTierArray)) {\r\n switch (dynamicTierArray[0]) {\r\n case \"17573178\": targetKnowledgeDomain = \"accounting\"; break;\r\n case \"17573941\": targetKnowledgeDomain = \"auditing\"; break;\r\n case \"68489712\": targetKnowledgeDomain = \"assurance\"; break;\r\n default:\r\n logs.debug(page.Link, 'LinkHelper', \"No knowledge domain is set for the current value of \" + dynamicTierArray[0]);\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n //If we find the knowledgeDomain in the list of knowledge domains of the publication, we have a match, and can stay in the same KD!\r\n return knowledgeDomain;\r\n }\r\n\r\n return targetKnowledgeDomain;\r\n}\r\n\r\nfunction GetTargetTopicOrSpineTargetPublicationGUID(publication) {\r\n return (publication?.spine?.object_id === null) ? publication.content.object_id : publication.id;\r\n}\r\n\r\nasync function getNavigatableLink({ ev,\r\n tocUrls,\r\n memberFirm,\r\n language,\r\n knowledgeDomain,\r\n messageCannotOpenTab,\r\n messageCannotResolve,\r\n isSearchResultLink,\r\n popupContent = false,\r\n memberFirms = null }) {\r\n const el = getClosestLinkElement(ev);\r\n\r\n if (!el?.href) {\r\n return false;\r\n }\r\n\r\n if (hasClass(el, \"footnote-link\")) {\r\n return false;\r\n }\r\n if (isFootnoteTopLink(el)) {\r\n return false;\r\n }\r\n\r\n //Need to account for links within the foot-note popup!\r\n if (!popupContent && !existsInsideParentClass(el, \"article-content-container\") && !existsInsideParentClass(el, \"footnote-popup-text-container\")) {\r\n //Then we are NOT in the \"DCS-response content, and can \"ignore\" the link completely\r\n return false;\r\n }\r\n\r\n let hrefValue = el?.href;\r\n let location = window.location.href;\r\n let prefixLocation = location.substring(0, location.lastIndexOf('/') + 1);\r\n\r\n if(popupContent && el?.tagName===\"A\")\r\n { \r\n let href = el.getAttribute('href')\r\n if(href===\"\")\r\n {\r\n ev.preventDefault();\r\n alert(messageCannotResolve);\r\n return false;\r\n }\r\n }\r\n\r\n //We assume if the current href contains the current domain url, that it did not start with http, i.e. it was an internal link\r\n if (hrefValue.indexOf(prefixLocation) > -1) {\r\n //Internal link, so we handle it...\r\n ev.preventDefault();\r\n\r\n if (ev.shiftKey) {\r\n alert(messageCannotOpenTab);\r\n return false;\r\n }\r\n\r\n hrefValue = hrefValue.replace(prefixLocation, '');\r\n }\r\n //TODO:BDP: May need to do an elseIf here for TL links?!\r\n else {\r\n //External link, so continue...\r\n return false;\r\n }\r\n\r\n let datasetPublication = el?.dataset?.publication;\r\n\r\n return await resolveLink(hrefValue,\r\n datasetPublication,\r\n tocUrls,\r\n memberFirm,\r\n language,\r\n knowledgeDomain,\r\n messageCannotResolve,\r\n isSearchResultLink,\r\n memberFirms);\r\n}\r\n\r\nfunction getNavigatableLinkFromTOC(tocUrls, targetTopicGuid, targetElementGuid, findSpineTarget = false) {\r\n if (tocUrls && targetTopicGuid) {\r\n const targetUrl = tocUrls.find(item => (!item.includes(\"/examples/\") && !item.includes(\"/related/\") && (item.indexOf(targetTopicGuid) > 0)));\r\n if (targetUrl !== undefined) {\r\n if (findSpineTarget) {\r\n const targetUrlParts = targetUrl.split(\"/\");\r\n //If this is NOT the spine-part of the URL (i.e. the last part of the URL)\r\n if (targetUrlParts[targetUrlParts.length-1] !== targetTopicGuid) {\r\n logs.debug(page.Link, 'LinkResolver', \"getNavigatableLinkFromTOC::targetTopicGuid is NOT the spine-pub (last guid in url):\", targetUrl, targetTopicGuid)\r\n return null;\r\n }\r\n }\r\n\r\n if (targetElementGuid === targetTopicGuid) {\r\n targetElementGuid = null;\r\n }\r\n targetElementGuid = (targetElementGuid) ? \"#\" + targetElementGuid : \"\";\r\n\r\n //logs.debug(page.Link, 'LinkResolver', \"getNavigatableLinkFromTOC::CURRENT CONTEXT LINK: GUID FOUND in tocUrls:\", targetUrl)\r\n return `${targetUrl}${targetElementGuid}`;\r\n }\r\n //logs.debug(page.Link, 'LinkResolver', \"getNavigatableLinkFromTOC::GUID NOT FOUND in tocUrls:\", tocUrls, targetTopicGuid);\r\n }\r\n else {\r\n logs.warning(page.Link, 'LinkResolver', \"getNavigatableLinkFromTOC::targetTopicGuid is null or TOC Not available to resolve in current TOC\",null);\r\n }\r\n return null;\r\n}\r\n\r\nfunction getTocUrls(targetBaseUrl) {\r\n try {\r\n const linksNodeList = (document.querySelector('.side-pannel-inner-container'))?.querySelectorAll('a') || [];\r\n const links = Array.prototype.slice.call(linksNodeList) || [];\r\n\r\n return links.map(link => link.href.substring(link.href.indexOf(targetBaseUrl)))\r\n }\r\n catch {\r\n return [];\r\n }\r\n}\r\nfunction isElementInPage(targetElementGuid) {\r\n //When we look for an element in the page, we ONLY look in the article part, not in the TOC! (or anywhere elase)\r\n const elementInPage = targetElementGuid ? ARTICLEHELPERS.findElementInArticleArea(targetElementGuid) : null;\r\n if (elementInPage) {\r\n logs.debug(page.Link, 'LinkResolver', \"isElementInPage::targetElementGuid/GUID FOUND in Page:\", targetElementGuid, elementInPage);\r\n return true;\r\n }\r\n //logs.debug(page.Link, 'LinkResolver', \"isElementInPage::targetElementGuid/GUID NOT FOUND in Page:\", targetElementGuid);\r\n return false;\r\n}\r\n\r\nfunction isFolioTargetTemplateType(publication_type) {\r\n //case \"66029858\": //Auditing::RP Template Repository 66029858 66019138-66074179, \r\n //case \"58035381\": //New:Template Repository\r\n //case \"68489711\": //New:Template Repository - Account (GRA)\r\n //case \"68169717\": //New:Template Repository - RP\r\n return \"|66029858|58035381|68489711|68169717\".indexOf(publication_type) > 0;\r\n}\r\n\r\nfunction isLocalToThisPageLink(tocUrls, url) {\r\n if (url.includes(\"#\")) {\r\n url = url.split(\"#\")[0];\r\n }\r\n const isLocal = tocUrls.includes(url);\r\n //logs.debug(page.Link, 'LinkResolver', \"isLocalToThisPageLink\", isLocal, url);\r\n return isLocal;\r\n}\r\n\r\nfunction CheckLinkForTL(href, messageCannotResolve, isResearchAssistant) {\r\n //TODO:Remove the hard coded way to make sure we have a TL link!\r\n //href = \"https://techlib.deloitteresources.com/#/content/0901ff8181478b1e\";\r\n //https://techlib.deloitteresources.com/#/content/3_100489#pg-4.1.1-10_-100489\r\n //https://techlib.deloitteresources.com/#/content/3_100481%23book-international_standard_on_auditing_220-100481\r\n //https://techlib.deloitteresources.com/#/content/2_359834%23SL679768029-359834\r\n\r\n if (href.indexOf(\"GUID\") < 0 && href.indexOf(\"||\") < 0 && href.indexOf(\"%7C%7C\") < 0) {\r\n //logs.debug(page.Link, 'LinkResolver', \"CheckLinkForTL:Identified as a CT link:\", href);\r\n return `https://techlib.deloitteresources.com/#/content/${href?.replace('#', '%23')};ExtrenalTL`;\r\n }\r\n if(isResearchAssistant) {\r\n return ''\r\n } else {\r\n alert(messageCannotResolve); \r\n }\r\n return false;\r\n}\r\n\r\nfunction encodeSpecialCharacters(title) {\r\n if (!UTILITIESHELPER.isNullOrUndefined(title)) {\r\n var actualTitle = title.replace(/%/gi, '%25').replace(/\\?/gi, \"%3F\").replace(/\\//gi, '%2F');\r\n return actualTitle;\r\n }\r\n return null;\r\n}\r\n\r\nfunction resolveLandingPageLink({ memberFirm, language }, linkTarget) {\r\n //logs.debug(page.Link, 'LinkResolver', \"linkTarget\", linkTarget);\r\n\r\n if (linkTarget.startsWith('/')) {\r\n linkTarget = linkTarget.substring(1);\r\n return `/${memberFirm}/${language}/${linkTarget}`;\r\n }\r\n else {\r\n return linkTarget;\r\n }\r\n}\r\n\r\n//some more functionality need to verify\r\nfunction resolveCollectionPageSearchLink(item, memberFirm, language, knowledgeDomain, pageControllerType, searchPhrase, catalogCollection, publicationOnly = false) {\r\n if (item.document?.publicationType === PUBLICATIONTYPE_IDS.externalCollection) {\r\n pageControllerType = PAGE_CONTROLLER_TYPE.standard;\r\n } \r\n let urlPrefix = `/${memberFirm}/${language}/${knowledgeDomain}/${pageControllerType}`;\r\n\r\n if (\"folio\".indexOf(pageControllerType) > -1) {\r\n try {\r\n let folioSection = getDynamicFolioSectionOrType(item.document.publicationType);\r\n let topicUrlPart = !publicationOnly ? `/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.navTitle)}/${cleanGUID(item.document?.topicId)}` : \"\";\r\n let publicationUrlPart = `${folioSection}/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.publicationNavTitle)}/${item.document?.publicationId}${UTILITIESHELPER.isStringNullorEmpty(topicUrlPart) ? \"\" : topicUrlPart}`;\r\n let dynamicFolioUrl = null;\r\n\r\n //For these types, we need to look at article-level-taging (AuditWorkFlowAreaNonAccount or AuditWorkFlowAreaAccount for those PublicationTypes at Article level)\r\n //GUIDES_PUBLICATON_TYPE \"60194861\" and ROADMAP_PUBLICATON_TYPE \"60194863\";\r\n //First we try get the one, then the other, if none are found, then we look at publication level tagging... \r\n if (\"60194861,60194863\".indexOf(item.document.publicationType) > -1) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.auditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []));\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.auditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.auditWorkflowAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAccountBalance.items', []));\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n } \r\n if (\"60194864\".indexOf(item.document.publicationType) > -1) {\r\n let publicationAlertsUrlPart = `${folioSection}/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.navTitle)}/${item.document?.publicationId}`;\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationAlertsUrlPart, item.document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []));\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationAlertsUrlPart, item.document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationAlertsUrlPart, item.document.publicationAuditWorkflowAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAccountBalance.items', []));\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n }\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []));\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.publicationAuditWorkflowAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAccountBalance.items', []));\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n\r\n logs.error(page.Link, 'LinkResolver', ErrorMessages.searchLinkResolve, null, {document:item.document,eventId:ErrorCodes.Link});\r\n }\r\n catch (err) {\r\n logs.error(page.Link, 'LinkResolver', ErrorMessages.folioLinkResolve, err,{document:item.document,eventId:ErrorCodes.Link} );\r\n }\r\n }\r\n else if (\"deloitte-communications|professional-news\".indexOf(pageControllerType) > -1) {\r\n //deloitte-communications/Practice%20Alerts/2023/GUID-A94A1363-DFDA-48B1-A822-31D31049A5A3\r\n //While this goes to the right place, Anand's code prevents the page from presenting the article/pdf as the search is trying to kick in!\r\n let publicationUrlPart = `${item.document?.publicationJournalBrand}`;\r\n if (item.document?.publicationTitle) {\r\n publicationUrlPart = `${item.document?.publicationJournalBrand}/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.publicationTitle)}/${item.document.publicationId}`;\r\n }\r\n return `${urlPrefix}/${publicationUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n else {\r\n let publicationUrlPart = `${UTILITIESHELPER.encodeSpecialCharacters(item.document?.publicationNavTitle)}/${item.document?.publicationId}`;\r\n let topicUrlPart = \"\";\r\n if (!publicationOnly && item.document?.navTitle !== \"\") {\r\n if (item.document?.topicId !== \"\") {\r\n topicUrlPart = `/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.navTitle)}/${cleanGUID(item.document?.topicId)}`;\r\n }\r\n }\r\n return `${urlPrefix}/${publicationUrlPart}${topicUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n //When we canont resolve, we return a # for now?\r\n return `${urlPrefix}`;\r\n}\r\n\r\nfunction resolveRAFormsAndTemplatesLink(document, memberFirm, language, knowledgeDomain, pageControllerType, searchPhrase, catalogCollection, publicationOnly = false) {\r\n let urlPrefix = `/${memberFirm}/${language}/${knowledgeDomain}/${pageControllerType}`;\r\n\r\n if (\"folio\".indexOf(pageControllerType) > -1) {\r\n try {\r\n let folioSection = getDynamicFolioSectionOrType(document.publicationType);\r\n let topicUrlPart = !publicationOnly ? `/${UTILITIESHELPER.encodeSpecialCharacters(document?.navTitle)}/${cleanGUID(document?.topicId)}` : \"\";\r\n let publicationUrlPart = `${folioSection}/${UTILITIESHELPER.encodeSpecialCharacters(document?.publicationNavTitle)}/${document?.publicationId}${UTILITIESHELPER.isStringNullorEmpty(topicUrlPart) ? \"\" : topicUrlPart}`;\r\n let dynamicFolioUrl = null;\r\n\r\n //For these types, we need to look at article-level-taging (AuditWorkFlowAreaNonAccount or AuditWorkFlowAreaAccount for those PublicationTypes at Article level)\r\n //GUIDES_PUBLICATON_TYPE \"60194861\" and ROADMAP_PUBLICATON_TYPE \"60194863\";\r\n //First we try get the one, then the other, if none are found, then we look at publication level tagging... \r\n if (\"60194861,60194863\".indexOf(document.publicationType) > -1) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, document.auditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []));\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, document.auditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, document.auditWorkflowAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAccountBalance.items', []));\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n } \r\n if (\"60194864\".indexOf(document.publicationType) > -1) {\r\n let publicationAlertsUrlPart = `${folioSection}/${UTILITIESHELPER.encodeSpecialCharacters(document?.navTitle)}/${document?.publicationId}`;\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationAlertsUrlPart, document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []));\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationAlertsUrlPart, document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationAlertsUrlPart, document.publicationAuditWorkflowAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAccountBalance.items', []));\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n }\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []));\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, document.publicationAuditWorkflowNonAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, document.publicationAuditWorkflowAccount, get(UTILITIESHELPER.isObjectNullorEmpty(catalogCollection[0]) ? catalogCollection : catalogCollection[0], 'Content.taxonomyAccountBalance.items', []));\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n\r\n logs.error(page.Link, 'LinkResolver', ErrorMessages.searchLinkResolve, null, {document:document,eventId:ErrorCodes.Link});\r\n }\r\n catch (err) {\r\n logs.error(page.Link, 'LinkResolver', ErrorMessages.folioLinkResolve, err,{document:document,eventId:ErrorCodes.Link} );\r\n }\r\n }\r\n else if (\"deloitte-communications|professional-news\".indexOf(pageControllerType) > -1) {\r\n //deloitte-communications/Practice%20Alerts/2023/GUID-A94A1363-DFDA-48B1-A822-31D31049A5A3\r\n //While this goes to the right place, Anand's code prevents the page from presenting the article/pdf as the search is trying to kick in!\r\n let publicationUrlPart = `${document?.publicationJournalBrand}`;\r\n if (document?.publicationTitle) {\r\n publicationUrlPart = `${document?.publicationJournalBrand}/${UTILITIESHELPER.encodeSpecialCharacters(document?.publicationTitle)}/${document.publicationId}`;\r\n }\r\n return `${urlPrefix}/${publicationUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n else {\r\n let publicationUrlPart = `${UTILITIESHELPER.encodeSpecialCharacters(document?.publicationNavTitle)}/${document?.publicationId}`;\r\n let topicUrlPart = \"\";\r\n if (!publicationOnly && document?.navTitle !== \"\") {\r\n if (document?.topicId !== \"\") {\r\n topicUrlPart = `/${UTILITIESHELPER.encodeSpecialCharacters(document?.navTitle)}/${cleanGUID(document?.topicId)}`;\r\n }\r\n }\r\n return `${urlPrefix}/${publicationUrlPart}${topicUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n //When we canont resolve, we return a # for now?\r\n return `${urlPrefix}`;\r\n}\r\n\r\nfunction getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, taggedArray, subjectArray) {\r\n if ((Array.isArray(taggedArray) && taggedArray.length > 0)) {\r\n const firstSubject = taggedArray[0];\r\n const matchedSubject = subjectArray.filter(x => x.id === firstSubject);\r\n if ((Array.isArray(matchedSubject) && matchedSubject.length > 0)) {\r\n //logs.debug(page.Link, 'LinkResolver', \"getDynamicFolioSubject::matchedSubject match:\", firstSubject, matchedSubject[0]);\r\n return `${matchedSubject[0].href}/${publicationUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n //As we look in multiple subject taxonomies for the same tagged subject, we will not warn if we cannot find one!\r\n //logs.warn(page.Link, 'LinkResolver', \"getDynamicFolioSubject::No matching subject found for the first tagged subject:\", firstSubject);\r\n }\r\n return null;\r\n}\r\n\r\n//some more functionality need to verify\r\nfunction resolveSearchLink(item, memberFirm, language, knowledgeDomain, pageControllerType, searchPhrase, catalogCollection, publicationOnly = false) {\r\n if (item.document?.publicationType === PUBLICATIONTYPE_IDS.externalCollection) {\r\n pageControllerType = PAGE_CONTROLLER_TYPE.standard;\r\n }\r\n let urlPrefix = `/${memberFirm}/${language}/${knowledgeDomain}/${pageControllerType}`;\r\n\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveSearchLink::resolveSearchLink::item+:\", urlPrefix, item);\r\n\r\n if (\"folio\".indexOf(pageControllerType) > -1) {\r\n let folioSection = getDynamicFolioSectionOrType(item.document.publicationType);\r\n let publicationUrlPart = publicationOnly === true ? `${folioSection}/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.publicationNavTitle)}/${item.document?.publicationId}` : \"\";\r\n\r\n try {\r\n let dynamicFolioUrl = null;\r\n let taxonomyAuditWorkflowAreaNonAccountitems = (get(catalogCollection[0], 'taxonomylist', []))?.filter(list => list.id === \"66019141\" )[0]?.items || [];\r\n let taxonomyAuditWorkflowAreaAccountitems = (get(catalogCollection[0], 'taxonomylist', []))?.filter(list => list.id === \"66019138\" )[0]?.items || [];\r\n //For these types, we need to look at article-level-taging (AuditWorkFlowAreaNonAccount or AuditWorkFlowAreaAccount for those PublicationTypes at Article level)\r\n //GUIDES_PUBLICATON_TYPE \"60194861\" and ROADMAP_PUBLICATON_TYPE \"60194863\";\r\n //First we try get the one, then the other, if none are found, then we look at publication level tagging...\r\n if (\"60194861,60194863\".indexOf(item.document.publicationType) > -1) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.auditWorkflowNonAccount, taxonomyAuditWorkflowAreaNonAccountitems);\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.auditWorkflowNonAccount, get(catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n //console.log(\"assurance check: \", dynamicFolioUrl)\r\n }\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.auditWorkflowAccount, taxonomyAuditWorkflowAreaAccountitems);\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n return dynamicFolioUrl;\r\n }\r\n }\r\n\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.publicationAuditWorkflowNonAccount, taxonomyAuditWorkflowAreaNonAccountitems);\r\n if (dynamicFolioUrl === null) {\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.publicationAuditWorkflowNonAccount, get(catalogCollection[0], 'Content.taxonomyAssurance.items', []));\r\n //console.log(\"assurance check: \", dynamicFolioUrl)\r\n }\r\n if (dynamicFolioUrl === null) {\r\n\r\n dynamicFolioUrl = getDynamicFolioWithSubjectUrl(searchPhrase, publicationUrlPart, item.document.publicationAuditWorkflowAccount, taxonomyAuditWorkflowAreaAccountitems);\r\n }\r\n if (dynamicFolioUrl !== null) {\r\n //console.log(\"Found tag on #2 found on Publication-Level-Tagging:\", dynamicFolioUrl);\r\n return dynamicFolioUrl;\r\n }\r\n logs.error(page.Link, 'LinkResolver', ErrorMessages.searchLinkResolve_Folio, null, {document:item,eventId:ErrorCodes.Link});\r\n }\r\n catch (err) {\r\n logs.error(page.Link, 'LinkResolver',ErrorMessages.folioLinkResolve , err, {document:item.document,eventId:ErrorCodes.Link});\r\n \r\n }\r\n }\r\n else if (\"deloitte-communications|professional-news\".indexOf(pageControllerType) > -1) {\r\n //deloitte-communications/Practice%20Alerts/2023/GUID-A94A1363-DFDA-48B1-A822-31D31049A5A3\r\n //While this goes to the right place, Anand's code prevents the page from presenting the article/pdf as the search is trying to kick in!\r\n let publicationUrlPart = `${item.document?.publicationJournalBrand}`;\r\n if (item.document?.publicationTitle) {\r\n publicationUrlPart = `${item.document?.publicationJournalBrand}/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.publicationTitle)}/${item.document.publicationId}`;\r\n }\r\n return `${urlPrefix}/${publicationUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n else {\r\n let publicationUrlPart = `${UTILITIESHELPER.encodeSpecialCharacters(item.document?.publicationNavTitle)}/${item.document?.publicationId}`;\r\n let topicUrlPart = \"\";\r\n if (!publicationOnly && item.document?.navTitle !== \"\") {\r\n if (item.document?.topicId !== \"\") {\r\n topicUrlPart = `/${UTILITIESHELPER.encodeSpecialCharacters(item.document?.navTitle)}/${cleanGUID(item.document?.topicId)}`;\r\n }\r\n }\r\n return `${urlPrefix}/${publicationUrlPart}${topicUrlPart}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n }\r\n\r\n //When we canont resolve, we return a # for now?\r\n return `${urlPrefix}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`;\r\n}\r\n//BDP:TODO: This function needs to get passed, or have the PageContext.MemberFirms - List ot MF's from Taxonomy, to derrive the correct MF ID'\r\nasync function resolveLink(hrefValue, datasetPublication, tocUrls, memberFirm, language, knowledgeDomain, messageCannotResolve, isSearchResultLink, memberFirms, isResearchAssistant = false, tlMemberFirmTaxonomyId = null) {\r\n // Since the CT Links were initially designed to have %23 instead of # this replace will work as fail proof implementation.\r\n let targetTopicGuid = hrefValue?.replace('%23', '#');\r\n let targetElementGuid = null;\r\n let isLinkCT = false;\r\n let navigatableLink = null;\r\n let location = cleanLocationURL(`/${memberFirm}/${language}/${knowledgeDomain}`);\r\n \r\n \r\n\r\n ({ targetTopicGuid, targetElementGuid, isLinkCT } = extractGUIDs(targetTopicGuid));\r\n\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::hrefValue, targetTopicGuid, targetElementGuid:\", hrefValue, targetTopicGuid, targetElementGuid);\r\n\r\n //In all cases, we look first if the link is in the current Page, then the TOC\r\n if (!isSearchResultLink) {\r\n if (isElementInPage(targetElementGuid)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#0.2 [#HREF] Target targetElementGuid found on page\", location, targetElementGuid);\r\n return `${location}#${targetElementGuid}`;\r\n }\r\n if (isElementInPage(targetTopicGuid)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#0.1 [#HREF] Target targetTopicGuid found on page\", location, targetTopicGuid);\r\n return `${location}#${targetTopicGuid}`;\r\n }\r\n }\r\n\r\n if (tocUrls !== null) {\r\n //When we have a legacy ID, we push the targetElement in here instead, just in case its found in the TOC\r\n let navigatableLink = getNavigatableLinkFromTOC(tocUrls, targetTopicGuid || targetElementGuid, targetElementGuid);\r\n if (navigatableLink) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#1 [HREF] Target targetTopicGuid found in current TOC\",targetTopicGuid)\r\n return navigatableLink;\r\n }\r\n }\r\n\r\n //We have not navigated to another topic on the current page or in the current TOC, \r\n //so lets take a look if we can find the target with an API call.\r\n try {\r\n //We send what we \"had\" in the sanitized href value to the BE to do a link resolve;\r\n let publication = null\r\n let opmMF = ProfileHelpers.getMemberFirm();\r\n //check id MF in query string parameter available\r\n // if yes then extrach and pass it to this method to fetch country code from countrySettings by MF paramenter value\r\n //example scenario: \"/content/docid=2_427478;memberFirm=17573163\"\r\n let memberFirmSettingObjectByTL = UTILITIESHELPER.getMmeberFirmSettingByTlTaxonomyId(memberFirms, tlMemberFirmTaxonomyId);\r\n let tlMemberFirm = !UTILITIESHELPER.isObjectNullorEmpty(memberFirmSettingObjectByTL) ? memberFirmSettingObjectByTL.reference.toLowerCase() : null;\r\n\r\n publication = (await RETRIEVALSERVICES.resolveTargetLink(targetTopicGuid, memberFirm, targetElementGuid, datasetPublication, opmMF, knowledgeDomain, tlMemberFirm)); \r\n let isExternalCollection = publication.publication_type === PUBLICATIONTYPE_IDS.externalCollection;\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::resolveLink API Response(hrefValue):\", hrefValue, publication);\r\n\r\n if (publication?.content?.object_id) {\r\n //If we did not have a target element # to scroll down to in target page (i.e. no anchor tag in orriginal href)\r\n if (!targetElementGuid) {\r\n //If the target content GUID is not the same as the orriginal href's GUID, \r\n // then the original target GUID becomes the targetElement (i.e. the target GUID becomes the new anchor tag to scroll down to on the target page)\r\n if (publication.content.object_id !== targetTopicGuid) {\r\n logs.debug(page.Link, 'resolveLink::LinkResolver', \"#2 [API] REPLACE targetElementGuid. No orriginal anchor, and target is not the same as orriginal guid, so orriginal href-guid becomes the targetElement/ahchor in new link. [targetTopicGuid->targetElementGuid]\",targetTopicGuid)\r\n targetElementGuid = targetTopicGuid;\r\n if(isExternalCollection){\r\n if(publication.nested_topic_id){\r\n targetElementGuid=publication.nested_topic_id;\r\n }\r\n }\r\n \r\n if (isElementInPage(targetElementGuid)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2.1 [#HREF] Target targetElementGuid found on page\", location, targetElementGuid);\r\n return `${location}#${targetElementGuid}`;\r\n }\r\n }\r\n }\r\n\r\n targetTopicGuid = GetTargetTopicOrSpineTargetPublicationGUID(publication);\r\n\r\n if (isElementInPage(targetTopicGuid)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2.2 [#HREF] Target targetTopicGuid found on page\", location, targetTopicGuid);\r\n return `${location}#${targetTopicGuid}`;\r\n }\r\n\r\n //With the CT/Standard links, we now have a converted guid and old guid cases, and we need to address BOTH\r\n // To be generic, we will then pass BOTH the \"id\"'s to the # and look for both of them on the page!\r\n let potentialTargetElementGuid\r\n if (isExternalCollection) {\r\n potentialTargetElementGuid = (publication?.nested_topic_id) ? publication.nested_topic_id : targetElementGuid;\r\n }\r\n else {\r\n potentialTargetElementGuid = (isLinkCT) ? (publication.content.content?.object_id) ? publication.content.content.object_id : (publication.content?.object_id) ? publication.content.object_id : targetElementGuid : targetElementGuid;\r\n }\r\n\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::Targets:targetTopicGuid, targetElementGuid, potentialTargetElementGuid\", targetTopicGuid, targetElementGuid, potentialTargetElementGuid);\r\n\r\n //We need to check the target first, to ensure that its not the same as the target topic guid. If it is not, then we replace the targetElementGuid with it (as thats then the article we would like to scroll down to)\r\n if ((targetTopicGuid !== potentialTargetElementGuid) && (targetTopicGuid.indexOf(potentialTargetElementGuid) === -1) && (targetElementGuid !== potentialTargetElementGuid)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::If Condition (targetTopicGuid !== potentialTargetElementGuid) && (targetTopicGuid.indexOf(potentialTargetElementGuid) === -1) && (targetElementGuid !== potentialTargetElementGuid)\", true);\r\n\r\n //If the context.context.object_id is the same as the context.object_id (then we have the spine context, and we can just ignore the addition as we are navigating to this article/pub anyway)\r\n //if ((publication.content.content?.object_id) && (publication.content.object_id !== publication.content.content?.object_id)) {\r\n //Orrignial, and then addition for appendix links on the same page:\r\n if (((publication.content.content?.object_id) && (publication.content.object_id !== publication.content.content?.object_id))\r\n || (cleanGUID(publication.context.id) !== publication.content?.object_id)) {\r\n if (isElementInPage(potentialTargetElementGuid)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2.3 [#HREF] Target potentialTargetElementGuid found on page\", location, potentialTargetElementGuid);\r\n return `${location}#${potentialTargetElementGuid}`;\r\n }\r\n \r\n targetElementGuid = potentialTargetElementGuid + linkHashSeparator + targetElementGuid;\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2 [API] NEW targetElementGuid with potentialTargetElementGuid included:\", targetElementGuid)\r\n }\r\n }\r\n\r\n if (tocUrls !== null) {\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, targetTopicGuid, targetElementGuid, publication?.spine?.object_id !== null);\r\n if (navigatableLink) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2 [API] Target publication.content.object_id found in current TOC, navigatableLink, targetElementGuid\", targetTopicGuid, navigatableLink, targetElementGuid);\r\n return navigatableLink;\r\n }\r\n }\r\n\r\n if (isSearchResultLink) {\r\n //We HAVE to find the target in the current TOC!\r\n //go one level heigher to see if we can find that resolved GUID in the TOC...\r\n publication = (await RETRIEVALSERVICES.resolveTargetLink(publication?.content?.object_id, memberFirm, \"\", datasetPublication, opmMF, knowledgeDomain, tlMemberFirm));\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::resolveLink Second API Response for search #2: \", publication.content.object_id, publication);\r\n\r\n targetTopicGuid = GetTargetTopicOrSpineTargetPublicationGUID(publication);\r\n\r\n if (tocUrls !== null) {\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, targetTopicGuid, targetElementGuid, publication?.spine?.object_id !== null);\r\n if (navigatableLink) {\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2.s.2 [API] Target toc.content.object_id found in current TOC\", targetTopicGuid);\r\n return navigatableLink;\r\n }\r\n }\r\n\r\n //else-recurse one level heigher\r\n publication = (await RETRIEVALSERVICES.resolveTargetLink(publication?.content?.object_id, memberFirm, \"\", datasetPublication, opmMF, knowledgeDomain, tlMemberFirm));\r\n\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveLink::resolveLink API Response for search #3: \", publication);\r\n\r\n if (tocUrls !== null) {\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, publication?.content?.object_id, targetElementGuid, publication?.spine?.object_id !== null);\r\n if (navigatableLink) {\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveLink::#2.s.3 [API] Target toc.content.object_id found in current TOC\", publication.content.object_id);\r\n return navigatableLink;\r\n }\r\n let errormessage=`Cannot find target in the current Table Of Contents on this Page. Therefore cannot resolve/navigate to that location.TopicId:${publication?.content?.object_id} TargetElementId:${targetElementGuid}`;\r\n logs.error(page.Link, \"ResolveLink\", errormessage);\r\n alert(\"Cannot find target in the current Table Of Contents on this Page. Therefore cannot resolve/navigate to that location.\");\r\n }\r\n\r\n //If we did not find the target in the current TOC, then we cannot navigate to it!!\r\n return false;\r\n }\r\n\r\n //nav_title is not available, so try \"fix\" the title.\r\n if (publication.content.title.includes(\"—\")) {\r\n publication.content.title = publication.content.title.split(\"—\")[1].trim();\r\n }\r\n let publicationUrlPart = `${encodeSpecialCharacters(publication.context.nav_title)}/${publication.id}`;\r\n let topicUrlPart = `/${encodeSpecialCharacters(publication.content.title)}/${publication.content.object_id}`;\r\n \r\n logs.debug(page.Link, 'LinkResolver', \"publication.publication_type .. publicationUrlPart/topicUrlPart\", publicationUrlPart, topicUrlPart);\r\n\r\n if (isFolioTargetTemplateType(publication.publication_type)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::isFolioTargetTemplateType:SWITCH for Template type: publication.publication_type, publicationUrlPart/topicUrlPart\", publicationUrlPart, topicUrlPart);\r\n //We are going to change the GUID around, as the target \"element\" is actually the target topic\r\n topicUrlPart = `/${encodeSpecialCharacters(publication.content.title)}/${publication.content.content.object_id}`;\r\n //We going to clear the target element so that the page does not scroll, as we are navigating to a Template!\r\n targetElementGuid = \"\";\r\n }\r\n\r\n //Spine: Manual/Standard Section - I need the parent spine pub id! (otherwise the link opens up in context of pub - not spine-pub)\r\n if (publication.publication_type !== null && publication.publication_type !== \"\" && \"48082110,48082111,65469054\".includes(publication.publication_type)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::Spine, Section Manual/Standard:publication.publication_type\", publication.publication_type);\r\n\r\n targetTopicGuid = cleanGUID(publication.context.id);\r\n if (!targetElementGuid && publication.content.object_id !== targetTopicGuid && publication.id !== targetTopicGuid) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::No orriginal anchor, and target is not the same as orriginal guid, so orriginal href-guid becomes the targetElement/ahchor in new link. [targetTopicGuid->targetElementGuid]\", targetTopicGuid)\r\n targetElementGuid = publication.content.object_id;\r\n }\r\n\r\n if (tocUrls !== null) {\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, targetTopicGuid, targetElementGuid);\r\n if (navigatableLink) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#3.1 [API]Spine: Target publication.content.object_id found in current TOC\", targetTopicGuid);\r\n return navigatableLink;\r\n }\r\n //As we have the spine, try again to find it in the TOC (just in case we have the wrong context)\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, cleanGUID(publication.id), targetElementGuid, true);\r\n if (navigatableLink) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#3.2 [API]SpineTarget: Target publication.id found in current TOC (As SpineTarget)\", targetTopicGuid);\r\n return navigatableLink;\r\n }\r\n }\r\n\r\n //We ALWAYS used to have the spine object when we had these types, but now we are getting a null spine?!\r\n //For this reason we wil check first, and NOT replace it\r\n if (publication.spine?.object_id !== null && publication.spine?.object_id !== \"\") {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::Replacing publicationUrlPart with this spine:\", publication.spine);\r\n\r\n // when \"publication_type\": \"48082110\" or \"48082111\"\r\n // spine: \"content_type\": \"60194866\"\r\n // Test%20Auditing%20Manual/ === spine.nav_title\r\n // GUID-93F87B9A-72AA-4A82-A8E8-03C2DA6F3354/ === spine.object_id\r\n publicationUrlPart = `${encodeSpecialCharacters(publication.spine.nav_title)}/${publication.spine.object_id}`;\r\n }\r\n\r\n //While we are setting this here, below this will usually get replaced/removed anyway!\r\n // [Manual%20Section%20title%20-%20Heading%201]%20Materiality/ === context.title\r\n // GUID-57E01081-B02B-4FD5-8A72-2032275453E4/ === context.id (strip =..)\r\n // GUID-EF227232-4B83-4C1A-AE49-D485E5CCCBA4# === id === object_id === targetTopicGuid\r\n // GUID-BB1294A4-CC1C-480C-B182-7E4F2FE553E4 === href (original)\r\n topicUrlPart = `/${encodeSpecialCharacters(publication.context.nav_title)}/${targetTopicGuid}/${publication.id}`;\r\n\r\n if (publication.spine?.content_type !== null && publication.spine?.content_type !== \"\") {\r\n //We update the publication type with the spine's type, as that is the \"publication\" that we are ultimately navigating to, that houses the target publication\r\n publication.publication_type = publication.spine.content_type;\r\n }\r\n }\r\n\r\n //Section with intro topic (65469055) (should we also clear?)\r\n\r\n //Pub Context Topic (60247324) (e.g. inside normal pub ===> landing page)\r\n //Pub Context Spine Topic (60262021) (e.g inside the 13100 pub ===> land on the spine pub)\r\n // - are not in the TOC, so we just navigate to the Publication\r\n if (publication.content.content_type !== null && publication.content.content_type !== \"\" && \"60247324\".includes(publication.content.content_type)) {\r\n if (publication.spine.object_id !== null && publication.spine.object_id !== \"\") {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::Content type is Context topic Publication Context: Changing link to spine and context, targetElementGuid\", targetElementGuid);\r\n\r\n if (tocUrls !== null) {\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, cleanGUID(publication.context.id), targetElementGuid);\r\n if (navigatableLink) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::#3.2 [API] Spine Target publication.content.object_id found in current TOC\", cleanGUID(publication.context.id));\r\n return navigatableLink;\r\n }\r\n }\r\n\r\n publicationUrlPart = `${encodeSpecialCharacters(publication.spine.nav_title)}/${publication.spine.object_id}`;\r\n topicUrlPart = `/${encodeSpecialCharacters(publication.context.nav_title)}/${cleanGUID(publication.context.id)}/${publication.id}`;\r\n if (!isLinkCT) {\r\n targetElementGuid = \"\";\r\n }\r\n }\r\n else {\r\n //As long as we are not navigating to a template topic, we will clear the topicUrlPart so that we land on the spine!\r\n if (!isFolioTargetTemplateType(publication.publication_type)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::NOT.isFolioTargetTemplateType:Content type is Context topic Publication Context: but spine is null, so clearing the topicUrlPart so we end up on the landing page with no anchor.\", topicUrlPart, targetElementGuid)\r\n topicUrlPart = \"\";\r\n targetElementGuid = \"\";\r\n }\r\n }\r\n }\r\n\r\n if (publication.content.content_type !== null && publication.content.content_type !== \"\" && \"60262021\".includes(publication.content.content_type)) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::Content type is Context topic, clearing the topicUrlPart so we end up on the landing page with no anchor.\", topicUrlPart, targetElementGuid)\r\n topicUrlPart = \"\";\r\n targetElementGuid = \"\";\r\n }\r\n\r\n let targetMemberFirm = publication.target_country_code;\r\n let targetKnowledgeDomain = publication.target_knowledge_domain;\r\n let targetLanguage = publication.target_language;\r\n\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveLink::targetMemberFirm, targetKnowledgeDomain\", targetMemberFirm, targetKnowledgeDomain)\r\n\r\n //Add on the # element as the last thing - if it exists as it will be added to the end of the url by default.\r\n targetElementGuid = (targetElementGuid) ? \"#\" + targetElementGuid : \"\";\r\n\r\n // case \"65511719\": //Journal (External alerts & announcements)\r\n // case \"60194864\": //Journal (alerts & announcements)\r\n if (publication.publication_type !== null && publication.publication_type !== \"\" && (publication.publication_type === \"65511719\" || publication.publication_type === \"60194864\")) {\r\n if (tocUrls !== null) {\r\n navigatableLink = getNavigatableLinkFromTOC(tocUrls, publication.id, \"\");\r\n if (navigatableLink) {\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveLink::#4 [API] Journal:Target publication.id found in current TOC\", publication.id);\r\n return navigatableLink;\r\n }\r\n }\r\n\r\n //TODO: Need to confirm if its available, and then change this to get it from pub-type:\r\n //deloitte = PubType === announcement\r\n //others = PubType === announcement - external\r\n //Announcement === 60194864\r\n //Announcement - External === 65511719\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::resolveLink-URL:\", `/${targetMemberFirm}/${targetLanguage}/${targetKnowledgeDomain}/${deturmineJournalType(publication.context.journal_brand)}/${publication.context.journal_brand}/${publication.current_date.split(\"-\")[0]}/${publication.id}${targetElementGuid}`);\r\n return `/${targetMemberFirm}/${targetLanguage}/${targetKnowledgeDomain}/${deturmineJournalType(publication.context.journal_brand)}/${publication.context.journal_brand}/${publication.current_date.split(\"-\")[0]}/${publication.id}${targetElementGuid}`;\r\n }\r\n\r\n let dynamicFolioSectionOrType = getDynamicFolioSectionOrType(publication.publication_type);\r\n //logs.debug(page.Link, 'LinkResolver', \"resolveLink::dynamicFolioSectionOrType, publication\", dynamicFolioSectionOrType, publication);\r\n\r\n //Only if we have this dynamic folio-subject value, are we able to navigate to a folio!\r\n if (publication.taxonomyname) {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::resolveLink-URL folio-type with publication.taxonomyname:\", `/${targetMemberFirm}/${targetLanguage}/${targetKnowledgeDomain}/folio/${publication.taxonomyname}/${dynamicFolioSectionOrType}/${publicationUrlPart}${topicUrlPart}${targetElementGuid}`);\r\n\r\n return (`/${targetMemberFirm}/${targetLanguage}/${targetKnowledgeDomain}/folio/${publication.taxonomyname}/${dynamicFolioSectionOrType}/${publicationUrlPart}${topicUrlPart}${targetElementGuid}`);\r\n }\r\n //else if (\"auditing|accounting|assurance\".indexOf(targetKnowledgeDomain) === -1) {\r\n // return false;\r\n //}\r\n else {\r\n logs.debug(page.Link, 'LinkResolver', \"resolveLink::resolveLink-URL publication-type:\", `/${targetMemberFirm}/${targetLanguage}/${targetKnowledgeDomain}/${dynamicFolioSectionOrType}/${publicationUrlPart}${topicUrlPart}${targetElementGuid}`);\r\n //At this point, we assume that the target is a \"publication\" and the URL should be generatable\r\n return (`/${targetMemberFirm}/${targetLanguage}/${targetKnowledgeDomain}/${dynamicFolioSectionOrType}/${publicationUrlPart}${topicUrlPart}${targetElementGuid}`);\r\n }\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Link, 'LinkResolver', ErrorMessages.linkResolver, err,{eventId:ErrorCodes.Link});\r\n }\r\n\r\n return CheckLinkForTL(hrefValue, messageCannotResolve, isResearchAssistant )\r\n}\r\n\r\nconst getMemberFirmSettings = (mf, memberFirms) => {\r\n return memberFirms?.filter(s => s.memberFirmSettings.country === mf || s.memberFirmSettings.defaultMemberFirm === mf)\r\n}\r\nfunction resolveMemberFirmUrl(baseUrl, currentLocation) {\r\n //For unit testing purposes\r\n if (!currentLocation) {\r\n currentLocation = window.location.pathname;\r\n }\r\n\r\n var urlArray = currentLocation.split(\"/\");\r\n if (currentLocation !== baseUrl) {\r\n let newLink = baseUrl;\r\n urlArray.forEach((item, index) => {\r\n if (index > 2) {\r\n newLink = newLink + '/' + item;\r\n }\r\n });\r\n\r\n return newLink;\r\n }\r\n\r\n return baseUrl;\r\n}\r\n\r\nfunction resolveMemberFirmUrlBackToHome(baseUrl, currentLocation) {\r\n if (!currentLocation) {\r\n //var urlArray = window.location.pathname.split(\"/\");\r\n if (window.location.pathname !== baseUrl) {\r\n let newLink = baseUrl;\r\n //urlArray.forEach((item, index) => {\r\n //\tif (index > 2 && index < 5) {\r\n //\t\tnewLink = newLink + '/' + item;\r\n //\t}\r\n //});\r\n\r\n return newLink;\r\n }\r\n }\r\n else {\r\n //var urlArray = window.location.pathname.split(\"/\");\r\n if (currentLocation !== baseUrl) {\r\n var newLink = baseUrl;\r\n //urlArray.forEach((item, index) => {\r\n //\tif (index > 2 && index < 5) {\r\n //\t\tnewLink = newLink + '/' + item;\r\n //\t}\r\n //});\r\n\r\n return newLink;\r\n }\r\n }\r\n\r\n return baseUrl;\r\n}\r\n\r\nfunction TocUrlContainsText(text, searchText) {\r\n return text?.includes(searchText);\r\n}\r\n\r\n\r\nconst LINKHELPERS = {\r\n cleanGUID,\r\n existsInsideParentClass,\r\n getClosestLinkElement,\r\n getDataSource,\r\n getGUID,\r\n getNavigatableLink,\r\n getTocUrls,\r\n isLocalToThisPageLink,\r\n resolveLandingPageLink,\r\n resolveLink,\r\n resolveMemberFirmUrl,\r\n resolveMemberFirmUrlBackToHome,\r\n resolveSearchLink,\r\n resolveCollectionPageSearchLink,\r\n sanitizeUrl,\r\n TocUrlContainsText,\r\n cleanLocationURL,\r\n deturmineJournalType,\r\n getDynamicFolioSectionOrType,\r\n GetTargetTopicOrSpineTargetPublicationGUID,\r\n isFolioTargetTemplateType,\r\n CheckLinkForTL,\r\n encodeSpecialCharacters,\r\n getDynamicFolioWithSubjectUrl,\r\n extractGUIDs,\r\n getTargetKnowledgeDomain,\r\n getNavigatableLinkFromTOC,\r\n hasClass,\r\n isFootnoteTopLink,\r\n isElementInPage,\r\n resolveRAFormsAndTemplatesLink\r\n}\r\n\r\nexport default LINKHELPERS;","import SH from './StorageHelpers';\r\n\r\nconst STORAGE_KEY = 'tier';\r\nconst STORAGE_KEY_RA = 'research-assistant-tier-selected';\r\n\r\nfunction getLocalStorage() {\r\n return SH.getLocalStorageJSON(STORAGE_KEY);\r\n}\r\n\r\nfunction setLocalStorage(value) {\r\n SH.setLocalStorageJSON(STORAGE_KEY, value);\r\n}\r\n\r\nfunction setLocalStorageResearchAssistant(value) {\r\n SH.setLocalStorageJSON(STORAGE_KEY_RA, value);\r\n}\r\n\r\nfunction removeLocalStorage() {\r\n SH.removeLocalStorage(STORAGE_KEY);\r\n}\r\n\r\nfunction getSessionStorage() {\r\n return SH.getSessionStorageJSON(STORAGE_KEY);\r\n}\r\n\r\nfunction setSessionStorage(value) {\r\n SH.setSessionStorageJSON(STORAGE_KEY, value);\r\n}\r\n\r\nfunction removeSessionStorage() {\r\n SH.removeSessionStorage(STORAGE_KEY);\r\n}\r\n\r\nfunction removeLocalStorageWithValue(kd, mf) {\r\n const tier = JSON.parse(localStorage.getItem(STORAGE_KEY))\r\n if (tier !== null) {\r\n const finalTier = { ...tier, [mf]: { ...tier[mf], [kd]: [] } };\r\n setLocalStorage(finalTier)\r\n return finalTier\r\n }\r\n return { [mf]: { [kd]: [] } }\r\n}\r\n\r\nfunction removeWithValueResearchAssistant(kd, mf) {\r\n const tier = JSON.parse(localStorage.getItem(STORAGE_KEY_RA))\r\n if (tier !== null) {\r\n const finalTier = { ...tier, [mf]: { ...tier[mf], [kd]: [] } };\r\n setLocalStorageResearchAssistant(finalTier)\r\n return finalTier\r\n }\r\n return { [mf]: { [kd]: [] } }\r\n}\r\n\r\nexport default {\r\n getSessionStorage,\r\n setSessionStorage,\r\n removeSessionStorage,\r\n getLocalStorage,\r\n setLocalStorage,\r\n removeLocalStorage,\r\n removeLocalStorageWithValue,\r\n removeWithValueResearchAssistant,\r\n setLocalStorageResearchAssistant,\r\n}","import SH from './StorageHelpers';\r\nconst STORAGE_KEY = 'industry';\r\n\r\nfunction getLocalStorage() {\r\n return SH.getLocalStorageJSON(STORAGE_KEY);\r\n}\r\n\r\nfunction setLocalStorage(value) {\r\n SH.setLocalStorageJSON(STORAGE_KEY, value);\r\n}\r\n\r\nfunction removeLocalStorage() {\r\n SH.removeLocalStorage(STORAGE_KEY);\r\n}\r\n\r\nfunction getSessionStorage() {\r\n return SH.getSessionStorageJSON(STORAGE_KEY);\r\n}\r\n\r\nfunction setSessionStorage(value) {\r\n SH.setSessionStorageJSON(STORAGE_KEY, value);\r\n}\r\n\r\nfunction removeSessionStorage() {\r\n SH.removeSessionStorage(STORAGE_KEY);\r\n}\r\n\r\nfunction removeLocalStorageWithValue(kd, mf) {\r\n const tier = JSON.parse(localStorage.getItem(STORAGE_KEY))\r\n if (tier !== null) {\r\n const finalTier = { ...tier, [mf]: { ...tier[mf], [kd]: [] } };\r\n setLocalStorage(finalTier)\r\n return finalTier\r\n }\r\n return { [mf]: { [kd]: [] } }\r\n}\r\n\r\nexport default {\r\n getSessionStorage,\r\n setSessionStorage,\r\n removeSessionStorage,\r\n getLocalStorage,\r\n setLocalStorage,\r\n removeLocalStorage,\r\n removeLocalStorageWithValue\r\n}","import UTILITIESHELPER from './UtilitiesHelper';\r\nimport LinkHelpers from './LinkHelpers';\r\nimport TierHelpers from './TierHelpers';\r\nimport IndustryHelpers from './IndustryHelpers';\r\nimport ProfileHelpers from './ProfileHelpers';\r\nimport RETRIEVALSERVICES from '../services/rp-service';\r\nimport { MEMBERFIRM_CONSTANTS, KNOWLEDGE_DOMAIN_ID, REGEX_PATTERN, KNOWLEDGE_DOMAIN, LINK_REDIRECTION_CONSTANTS } from '../components/Constants/Constants';\r\nimport SearchHelpers from './SearchHelpers';\r\n\r\nvar debugUserId = \"24601\";\r\nfunction generateContextPosition(urlArray, position, defaultValue = \"\") {\r\n if (urlArray.length - 1 >= position) {\r\n return urlArray[position];\r\n }\r\n return defaultValue;\r\n}\r\n\r\nconst getTier = (context) => {\r\n const sessionValue = TierHelpers.getSessionStorage();\r\n if (sessionValue && sessionValue.hasOwnProperty(context.memberFirm)) {\r\n const mfValue = sessionValue[context.memberFirm][context.knowledgeDomain];\r\n if(Array.isArray(mfValue) && mfValue.length > 0) {\r\n const value = mfValue.map(x => x.id);\r\n return value.join(',');\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nconst getIndustry = (context) => {\r\n const sessionValue = IndustryHelpers.getSessionStorage();\r\n if (sessionValue && sessionValue.hasOwnProperty(context.memberFirm)) {\r\n const mfValue = sessionValue[context.memberFirm][context.knowledgeDomain];\r\n if(Array.isArray(mfValue) && mfValue.length > 0) {\r\n const value = mfValue.map(x => x.id);\r\n return value.join(',');\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nfunction getFallbackUrl(url, parentLevel = false, includeDomain = false) {\r\n\r\n var offSet = 0;\r\n var fallBackUrl = \"\";\r\n\r\n //Work around for the array-position\r\n if (url.indexOf(\"://\") < 0) {\r\n offSet = 2;\r\n }\r\n\r\n if (url.indexOf(\"#\") > 0) {\r\n url = url.split(\"#\")[0];\r\n }\r\n\r\n if (url.indexOf(\"?\") > 0) {\r\n url = url.split(\"?\")[0];\r\n }\r\n\r\n var urlArray = url.split(\"/\");\r\n\r\n if (offSet === 0 && includeDomain) {\r\n fallBackUrl = `${generateContextPosition(urlArray, 0)}//${generateContextPosition(urlArray, 2)}`;\r\n }\r\n\r\n //Landing :: .../{memberFirm}/{language}\r\n //Catalog :: .../{memberFirm}/{language}/{knowledgeDomain}\r\n //Collection :: .../{memberFirm}/{language}/{knowledgeDomain}/{collection}/{collectionName}\r\n\r\n let memberFirm = generateContextPosition(urlArray, 3 - offSet, MEMBERFIRM_CONSTANTS.dtt);\r\n let language = generateContextPosition(urlArray, 4 - offSet, \"en-US\");\r\n let knowledgeDomain = generateContextPosition(urlArray, 5 - offSet, \"\"); //accounting/auditing/assurance/etc\r\n let whereAreWe = generateContextPosition(urlArray, 6 - offSet, \"\"); // (collection/manual/folio/etc)\r\n\r\n switch (whereAreWe) {\r\n case \"collection\":\r\n //mf/lang/knowledgeDomain/collection --> mf/lang/knowledgeDomain\r\n fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}`;\r\n break;\r\n\r\n // case \"professional-news\":\r\n // case \"deloitte-communications\":\r\n // //TODO: Need to see if we are on an article that we do not have, and fall back to the year...\r\n // //TODO: Need to see if we are on a year, and fall back onto the Brand\r\n // //FIRST: There is no TOC, i.e. we have \"nothing\" so we fall back onto the Collection of the Brand\r\n // fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}/collection/${whereAreWe}`;\r\n // break;\r\n\r\n case \"professional-news\":\r\n case \"deloitte-communications\": //TODO: Need to see if we are on an article that we do not have, and fall back to the year... //TODO: Need to see if we are on a year, and fall back onto the Brand //FIRST: There is no TOC, i.e. we have \"nothing\" so we fall back onto the Collection of the Brand\r\n if (parentLevel) {\r\n fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}/collection/${whereAreWe}`;\r\n } else {\r\n fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}/${whereAreWe}/${generateContextPosition(urlArray, 7 - offSet, \"\")}`;\r\n }\r\n break;\r\n\r\n case \"manual\":\r\n case \"roadmap\":\r\n case \"standard\":\r\n case \"standards\":\r\n //For MF change, we fallback to the publication landing page...\r\n if (parentLevel) {\r\n fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}/${whereAreWe}/${generateContextPosition(\r\n urlArray,\r\n 7 - offSet,\r\n \"\"\r\n )}/${generateContextPosition(urlArray, 8 - offSet, \"\")}`;\r\n } else {\r\n //FIRST: There is no Publication/TOC, i.e. we have \"nothing\" so we fall back onto the Collection of the manual type\r\n fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}/collection/${whereAreWe}`;\r\n }\r\n break;\r\n\r\n case \"folio\":\r\n case \"guide\":\r\n //For MF change, we fall back to the current Folio (root/landing) which is just the filename\r\n const folioFallback = parentLevel\r\n ? `/${whereAreWe}/${generateContextPosition(urlArray, 7 - offSet, \"test\")}`\r\n : \"\";\r\n //FIRST: There is no Folio/TOC, i.e. we have \"nothing\" so we fall back to the catalog page\r\n fallBackUrl = `${fallBackUrl}/${memberFirm}/${language}/${knowledgeDomain}${folioFallback}`;\r\n break;\r\n\r\n default:\r\n fallBackUrl = \"/\";\r\n console.log(\"ContextHelpers::getFallbackUrl:Still need to implement location:\", whereAreWe);\r\n break;\r\n }\r\n\r\n const composedUrl = decodeURI(fallBackUrl + '?wormhole=true');\r\n const sanitizedUrl = LinkHelpers.sanitizeUrl(composedUrl);\r\n\r\n return sanitizedUrl;\r\n}\r\n\r\nfunction getNewLanguageUrl(url, newLanguage) {\r\n\r\n var offSet = 0;\r\n //Work around for the array-position\r\n if (url.indexOf(\"://\") < 0) {\r\n offSet = 2;\r\n }\r\n\r\n if (url.indexOf(\"#\") > 0) {\r\n var urlHash = url.split(\"#\");\r\n url = urlHash[0];\r\n }\r\n\r\n var urlArray = url.split(\"/\");\r\n\r\n //Landing :: .../3{memberFirm}/1{language}\r\n //Catalog :: /4{memberFirm}/1{language}/2{knowledgeDomain}\r\n let memberFirm = generateContextPosition(urlArray, 3 - offSet, MEMBERFIRM_CONSTANTS.dtt);\r\n if (memberFirm === '') {\r\n memberFirm = MEMBERFIRM_CONSTANTS.dtt;\r\n }\r\n\r\n memberFirm = memberFirm.toLowerCase();\r\n\r\n let language = generateContextPosition(urlArray, 4 - offSet, \"en-US\");\r\n\r\n if (!newLanguage) {\r\n newLanguage = \"en-US\";\r\n\t}\r\n\r\n if (url.indexOf(`/${language}`) > 0) {\r\n url = url.replace(`/${language}`, `/${newLanguage}`)\r\n }\r\n else {\r\n url = `${url}${memberFirm}/${newLanguage}`;\r\n }\r\n\r\n return decodeURI(url);\r\n}\r\n\r\n//TODO:BDP:This function should ONLY be called from the PageContext\r\n//It should also use the routInfo instead of the URL, as we need to \"listen\" to url changes within the PageContext\r\n// and update the PageCOntext.context each time!\r\nfunction generateContext(url, searchPhrase, searchParams, searchResults, memberFirm, language, pubtype) {\r\n \r\n\r\n var offSet = 0;\r\n //console.log(\"ContextHelper::generateContext:url\",url);\r\n\r\n if (!memberFirm) {\r\n memberFirm = \"\";\r\n }\r\n if (!language) {\r\n language = \"\";\r\n }\r\n\r\n //Work around for the array-position\r\n if (url.indexOf(\"://\") < 0) {\r\n offSet = 2;\r\n }\r\n\r\n var token = '';\r\n var context = { userToken: token, uid: resolverUserId(null), pageRequestURL: url, globalPersonUid: RETRIEVALSERVICES.UPSUserID()};\r\n\r\n if (url.indexOf(\"#\") > 0) {\r\n var urlHash = url.split(\"#\");\r\n url = urlHash[0];\r\n context.pageHashTag = urlHash[1];\r\n }\r\n\r\n //TODO: See if we want to put this into another filed/param/something else...\r\n if (url.indexOf(\"?\") > 0) {\r\n var urlQuestion = url.split(\"?\");\r\n const queryParams = new URLSearchParams(`?${urlQuestion[1]}`);\r\n //Check for compare versions...\r\n const compareVersion = queryParams.get(\"compareVersion\");\r\n context.versionCompare = compareVersion || 0;\r\n url = urlQuestion[0];\r\n //Check for search in the URL (add it for the \"landing\" on search pages where we do not pass the searchPhrase into this funciton!)\r\n if (searchPhrase !== undefined && !REGEX_PATTERN.doubleQuoted.test(searchPhrase))\r\n {\r\n let containsSeparator = /[-+|]/.test(searchPhrase);\r\n if(containsSeparator)\r\n {\r\n let separator = searchPhrase.match(/[-+|]/)[0];\r\n let pattern = `[a-z]\\\\${separator}[a-z]`;\r\n searchPhrase = SearchHelpers.parseSearchPhrase(searchPhrase,separator,pattern);\r\n }\r\n searchPhrase = SearchHelpers.SanitizeSpecialCharacters(searchPhrase);\r\n }\r\n else{\r\n const searchPhraseQS = queryParams.get(\"searchPhrase\");\r\n if (searchPhraseQS) {\r\n //context.pageSearchPhrase = searchPhraseQS;\r\n }\r\n }\r\n }\r\n\r\n var urlArray = url.split(\"/\");\r\n var pageControllerTypeOrSelectedSection = \"\";\r\n\r\n //In the case of content/docid - we are doing a link-resolve, so do not need to process context any further then \"here\"\r\n // in case if url contains \"content/docid\" that means it's a TL links which is now transformed to research portal links\r\n // http://localhost:2001/content/docid=4_000000\r\n // pageControllerType = 4_000000, (assigned docid value to pageControllerType because pageControllerType is used in RP BE to resolve links in RP)\r\n //one more example where request came from TL to RP https://qinkrpservice.aaps.deloitte.com/content/docid=2_342973%23section_3_rule_3524-342973\r\n if (url?.toLowerCase().includes(LINK_REDIRECTION_CONSTANTS.Link_Redirection_URL_Identifier.toLowerCase())) {\r\n //context.pageControllerType = url.split(LINK_REDIRECTION_CONSTANTS.link_URL_Param_KeyValue_Separator)[1];\r\n var queryParams = extractQueryParameterValues(url);\r\n\r\n if (queryParams?.length > 0) {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(queryParams[0]))\r\n context.pageControllerType = queryParams[0];\r\n\r\n if (!UTILITIESHELPER.isStringNullorEmpty(queryParams[1]))\r\n context.urlMemberFirm = queryParams[1];\r\n }\r\n\r\n context.memberFirm = (memberFirm === \"\") ? ProfileHelpers.getLastorDefaultMemberFirm() : memberFirm;\r\n context.language = (language === \"\") ? getLanguageByMemberFirm(context.memberFirm) : language;\r\n\r\n let languageSettings = UTILITIESHELPER.getCurrentLanguageLocalStorage(context.language);\r\n if (context.language !== languageSettings.languageCodeFE) {\r\n context.language = languageSettings.languageCodeFE;\r\n }\r\n\r\n context.languageDebugMT = UTILITIESHELPER.getIsDebugMTLocalStorage();\r\n\r\n //we are using \"context.pageFileName\" to resolve link so it is mandatory to reslove topic\r\n context.pageFileName = (context.pageControllerType === undefined || context.pageControllerType === null) ? \"\" : context.pageControllerType;\r\n //var e = new Error();\r\n //console.log(\"ContextHelper::generateContext:TL-Link:context, location\",context, e.stack)\r\n return context;\r\n }\r\n\r\n //Landing :: .../3{memberFirm}/1{language}\r\n //Catalog :: /4{memberFirm}/1{language}/2{knowledgeDomain}\r\n context.memberFirms=[];\r\n context.memberFirm = (memberFirm === \"\") ? generateContextPosition(urlArray, 3 - offSet, memberFirm) : memberFirm;\r\n if (context.memberFirm === \"\") {\r\n //If not in URL: We fall back to the profile-helper/user-mf/session/etc\r\n context.memberFirm = ProfileHelpers.getFallbackMemberFirm(MEMBERFIRM_CONSTANTS.dtt);\r\n //console.log(\"ContextHelper::generateContext:Fallback to Profile as memberfirm Is empty? \", context.memberFirm);\r\n }\r\n\r\n context.memberFirm = context.memberFirm.toLowerCase();\r\n let fallbackLanguage = (language === \"\") ? getLanguageByMemberFirm(context.memberFirm) : language;\r\n\r\n context.language = generateContextPosition(urlArray, 4 - offSet, fallbackLanguage);\r\n\r\n //Check and fallback to user's previous language settings\r\n let languageSettings = UTILITIESHELPER.getCurrentLanguageLocalStorage(context.language);\r\n if (context.language !== languageSettings.languageCodeFE) {\r\n context.language = languageSettings.languageCodeFE;\r\n }\r\n\r\n context.languageDebugMT = UTILITIESHELPER.getIsDebugMTLocalStorage();\r\n\r\n //As the PageContext only had KD (and not content/dashboard), we need to re-get this parameter!\r\n context.knowledgeDomain = generateContextPosition(urlArray, 5 - offSet, \"\"); //accounting/auditing/assurance/etc/content]\r\n context.tier = getTier(context);\r\n context.industry = getIndustry(context);\r\n\r\n //Folio or Manual or TimeCapsule or Journal or Content PageName/etc (if we have this parameter)\r\n context.pageControllerType = pageControllerTypeOrSelectedSection = generateContextPosition(urlArray, 6 - offSet, \"\");\r\n context.pageCollectionName = generateContextPosition(urlArray, 7 - offSet, \"\");\r\n //Set Session Storage for Page\r\n sessionStorage.setItem('PageType', pageControllerTypeOrSelectedSection);\r\n\r\n if(context.memberFirm==='link')\r\n {\r\n context.pageFileName=context.language;\r\n }\r\n else if (context.knowledgeDomain === \"link\") {\r\n context.pageFileName = generateContextPosition(urlArray, 6 - offSet, \"\");\r\n }\r\n else if (context.knowledgeDomain === \"content\") {\r\n //This is general content, like FAQ (not knowledgeDomain specific!) content/PageName OR content/FolderName/PageName\r\n context.pageFileName = url.substring(url.indexOf(context.knowledgeDomain));\r\n }\r\n else if (pageControllerTypeOrSelectedSection !== \"\") {\r\n switch (pageControllerTypeOrSelectedSection) {\r\n case \"resource\":\r\n context.pageFileName = generateContextPosition(urlArray, 7 - offSet, \"Modal\");\r\n break;\r\n\r\n case \"folio\":\r\n case \"guide\":\r\n //Folio :: .../0{memberFirm}/1{language}/2{knowledgeDomain}/3=\"guidebook\"\r\n // /4{guidebookFileName}/5{guidebookSelectedSection}\r\n // /6{guidebookSelectedPublicationTitle}/7{guidebookSelectedPublicationGUID}\r\n // /8{guidebookSelectedContentItemTitle}/9{guidebookSelectedContentItemGUID}\r\n context.pageFileName = generateContextPosition(urlArray, 7 - offSet, \"test\");\r\n context.pageSelectedSection = generateContextPosition(urlArray, 8 - offSet, \"\");\r\n context.pageSelectedPublicationTitle = generateContextPosition(urlArray, 9 - offSet, \"\");\r\n context.pageSelectedPublicationGUID = generateContextPosition(urlArray, 10 - offSet, \"\");\r\n context.pageSelectedContentItemTitle = generateContextPosition(urlArray, 11 - offSet, \"\");\r\n context.pageSelectedContentItemGUID = generateContextPosition(urlArray, 12 - offSet, \"\");\r\n context.pageSelectedSpineTargetPublicationGUID = \"\"; //NO Spine publications in Guidebooks\r\n context.version = 0;\r\n context.versionBase = 0;\r\n // context.versionCompare = 0;\r\n context.pageType = pageControllerTypeOrSelectedSection;\r\n break;\r\n\r\n case \"timecapsule\":\r\n context.version = 0; //BETA: We are always comparing version with latest!\r\n context.versionBase = -1; //Setting this to -1 tells the retreival controller that we are doing version!\r\n // context.versionCompare = parseInt(generateContextPosition(urlArray, 7 - offSet, \"0\"), 10);\r\n context.pageSelectedPublicationGUID = generateContextPosition(urlArray, 8 - offSet, \"\");\r\n context.pageSelectedContentItemGUID = generateContextPosition(urlArray, 9 - offSet, \"\");;\r\n context.pageSelectedSpineTargetPublicationGUID = generateContextPosition(urlArray, 10 - offSet, \"\");\r\n context.pageType = pageControllerTypeOrSelectedSection;\r\n break;\r\n\r\n case \"collection\":\r\n context.pageFileName = generateContextPosition(urlArray, 7 - offSet, \"Generic\");\r\n context.pageType = context.pageFileName;\r\n break;\r\n\r\n case \"deloitte-communications\":\r\n case \"professional-news\":\r\n //\"/global/en-EN/auditing/[6]deloitte-communications/[7]Practice%20Alerts/[8]2023/[9]GUID-69BAE4E2-C36C-44D8-85C9-6F14D78C0FA1\"\r\n //context.pageControllerType = 'journal'\r\n context.pageType = 'journal'\r\n //pageSelectedSection === \"deloitte-communications\"\r\n context.pageSelectedSection = generateContextPosition(urlArray, 6 - offSet, \"\");\r\n //JournalBrand === \"Practice Alerts\"\r\n context.pageSelectedPublicationTitle = generateContextPosition(urlArray, 7 - offSet, \"\");\r\n //Volume === \"2023\" (We abose the pageSelectedPublicationGUID here for the Volume)\r\n context.pageSelectedPublicationGUID = generateContextPosition(urlArray, 8 - offSet, \"\"); //check context.pageSelectedContentItemGUID;\r\n //Selected Issue\r\n context.pageSelectedContentItemGUID = generateContextPosition(urlArray, 9 - offSet, \"\");\r\n //We \"abuse\" the spine pug here, so that we actually \"Get\" the publication!\r\n context.pageSelectedSpineTargetPublicationGUID = context.pageSelectedContentItemGUID;\r\n //\"/global/en-EN/auditing/[6]deloitte-communications/[7]Practice%20Alerts/[8]2023/[9]GUID-69BAE4E2-C36C-44D8-85C9-6F14D78C0FA1\"\r\n context.pageBaseURL = \"/\" + context.memberFirm + \"/\" + context.language + \"/\" + context.knowledgeDomain + \"/\" + context.pageControllerType + \"/\" + context.pageSelectedPublicationTitle + \"/\" + context.pageSelectedPublicationGUID\r\n break;\r\n\r\n case \"dashboard\":\r\n //global/en-US/auditing/dashboard/recentviewed\r\n //Dashboard :: 0{memberFirm}/1{language}/2{knowledgeDomain}/3{publicationType}\r\n //\r\n context.pageFileName = \"index.cshtml\";\r\n context.pageType = generateContextPosition(urlArray, 7 - offSet, \"annotations\");\r\n context.pageSelectedSection = \"\"; //generateContextPosition(urlArray, 6 - offSet, \"\"); --> pageControllerType already!\r\n context.pageSelectedPublicationTitle = \"\";\r\n context.pageSelectedPublicationGUID = \"\";\r\n context.pageSelectedContentItemTitle = \"\";\r\n context.pageSelectedContentItemGUID = \"\";\r\n context.pageSelectedSpineTargetPublicationGUID = \"\";\r\n context.version = 0;\r\n context.versionBase = 0;\r\n context.pageBaseURL = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageControllerType}`;\r\n break;\r\n\r\n default:\r\n //Manual :: /0{memberFirm}/1{language}/2{knowledgeDomain}/3{publicationType}\r\n // /4{publicationTitle}/5{publicationGUID}/\r\n // /6{selectedItemTitle}/7{selectedItemGUID}/8{selectedSpineTargetPublicationGUID}/\r\n // /9=v{publicationVersion}/10=c{publicationVersionCompare}/\r\n context.pageFileName = \"index.cshtml\";\r\n context.pageType = pageControllerTypeOrSelectedSection;\r\n context.pageSelectedSection = \"\"; //generateContextPosition(urlArray, 6 - offSet, \"\"); --> pageControllerType already!\r\n context.pageSelectedPublicationTitle = generateContextPosition(urlArray, 7 - offSet, \"\");\r\n context.pageSelectedPublicationGUID = generateContextPosition(urlArray, 8 - offSet, \"\");\r\n context.pageSelectedContentItemTitle = generateContextPosition(urlArray, 9 - offSet, \"\");\r\n context.pageSelectedContentItemGUID = generateContextPosition(urlArray, 10 - offSet, \"\");;\r\n context.pageSelectedSpineTargetPublicationGUID = generateContextPosition(urlArray, 11 - offSet, \"\");\r\n context.version = generateContextPosition(urlArray, 12 - offSet, 0);\r\n context.versionBase = 0;\r\n // context.versionCompare = generateContextPosition(urlArray, 13 - offSet, 0);\r\n context.pageBaseURL = \"/\" + context.memberFirm + \"/\" + context.language + \"/\" + context.knowledgeDomain + \"/\" + context.pageControllerType + \"/\" + context.pageSelectedPublicationTitle + \"/\" + context.pageSelectedPublicationGUID\r\n break;\r\n }\r\n }\r\n\r\n if (!context.pageBaseURL) {\r\n context.pageBaseURL = \"/\" + context.memberFirm + \"/\" + context.language; //We will always have these on every page we need the pageBaseUrl\r\n if (context.knowledgeDomain) { context.pageBaseURL += \"/\" + context.knowledgeDomain; }\r\n if (context.pageControllerType) { context.pageBaseURL += (\"/\" + context.pageControllerType); } //Guidebooks and Manuals have these\r\n if (context.pageFileName) { context.pageBaseURL += (\"/\" + context.pageFileName); } //Guidebooks and Manuals have these\r\n }\r\n\r\n if (searchPhrase !== undefined) {\r\n context.pageSearchPhrase = searchPhrase;\r\n }\r\n\r\n if (searchParams !== undefined) {\r\n context.pageSearchParameters = searchParams;\r\n }\r\n\r\n if (searchResults !== undefined) {\r\n //Should we \"remove\" the highlights?\r\n context.pageSearchResponse = searchResults;\r\n }\r\n\r\n if(pubtype !== undefined){\r\n context.pageType = pubtype;\r\n }\r\n\r\n //var e = new Error();\r\n //console.log(\"ContextHelper::generateContext:context, location\",context, e.stack)\r\n return context;\r\n}\r\n\r\n//this method will return mf id and doc id when doc id contains double semicolon (;;) in the url.\r\n//\"https://abcd.com/content/docid=2_427478&memberFirm=17573163\"\r\nfunction extractQueryParameterValues(url) {\r\n var allParams = url?.split('&');\r\n if (allParams.length > 0)\r\n {\r\n var queryParams = allParams?.map((value) => {\r\n return value?.split('=')[1];\r\n });\r\n return queryParams;\r\n } \r\n return null;\r\n}\r\n\r\nfunction getMemberFirmTaxonomyId(memberFirm){\r\n if (!UTILITIESHELPER.isStringNullorEmpty(memberFirm)) {\r\n //TODO: This needs to come from the PageContext.MemberFirms Taxonomy!!\r\n switch (memberFirm.toLowerCase()) {\r\n case \"dtt\": return \"17573177\"; //Global Audit Content (DTT)\r\n case \"us\": return \"17573163\"; //United States\r\n case \"gb\": return \"17574057\"; //UK\r\n case \"ca\": return \"17574007\"; //Canada\r\n case \"in\": return \"49867231\"; //India\r\n case \"mx\": return \"49867232\"; //Mexico\r\n case \"za\": return \"49867233\"; //Southern Africa\r\n default: return null;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getMemberFirmWithTaxonomyId(memberFirm){\r\n if (!UTILITIESHELPER.isStringNullorEmpty(memberFirm)) {\r\n //TODO: This needs to come from the PageContext.MemberFirms Taxonomy!!\r\n switch (memberFirm.toLowerCase()) {\r\n case \"17573177\": return \"dtt\"; //Global Audit Content (DTT)\r\n case \"17573163\": return \"us\"; //United States\r\n case \"17574057\": return \"gb\"; //UK\r\n case \"17574007\": return \"ca\"; //Canada\r\n case \"49867231\": return \"in\"; //India \r\n default: return null;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getLanguageByMemberFirm(memberFirm) {\r\n //This needs to take the language from the memberfirm settings in the context, for now we will always return \"en-US\" untill we implement that/\r\n return \"en-US\";\r\n}\r\n\r\nfunction generateFolioTitleFromFilename(pageFileName, titleCase = true) {\r\n var folioTitle = pageFileName\r\n .replace(\".cshtml\", \"\")\r\n .split('_')[0]\r\n .replace(/_/g, \" \")\r\n .replace(/---/g, \"~\") //temporary change so that the --- can be ignored by the - removal\r\n .replace(/-/g, \" \")\r\n .replace(/~/g, \" - \");\r\n\r\n if (titleCase) {\r\n folioTitle = UTILITIESHELPER.titleCase(folioTitle);\r\n }\r\n\r\n return folioTitle;\r\n}\r\n\r\nfunction isSameLanguage(previousLanguage, currentLanguage) {\r\n //The first time we load, we have no language, so need to load\r\n if (previousLanguage === \"\") {\r\n return false;\r\n }\r\n //This should never be a case, as only when lange changes, will it come in here!\r\n if (previousLanguage === currentLanguage) {\r\n return true;\r\n }\r\n if (previousLanguage.startsWith(\"en\")) {\r\n //All versions of english are the same!\r\n return currentLanguage.startsWith(\"en\")\r\n }\r\n return false;\r\n}\r\n\r\n//resolveMemberFirmPath - Memberfirm and language are NOT in the URL\r\n//\twe are landing on the home page, and are deturmining target/default/previous memberFirm and language\r\nconst resolveMemberFirmPath = (contextPath, targetMemberFirm, targetKD, context) => {\r\n\r\n //console.log(\"resolveMemberFirmPath::contextPath, targetMemberFirm, targetKD, \", contextPath, targetMemberFirm, targetKD, context);\r\n\r\n //For sites content, there is NO difference between the 3 \"English\" languages\r\n //\tHere we are maintaining the user's previous/default targetLanguage settings\r\n let targetLanguage = (context.language.startsWith(\"en\") ? \"en-US\" : context.language);\r\n\r\n //targetKD === \"\" when we are on the landing page (no target KD)\r\n if (targetKD === \"\") {\r\n //If we are going to \"dtt\" then we want no\r\n if (targetMemberFirm === MEMBERFIRM_CONSTANTS.global && targetLanguage.startsWith(\"en\") && contextPath !== \"/\") {\r\n //We want to prevent changing the URL if the fallback targetMemberFirm/language is dtt/english!\r\n // contextPath as if we were already on the \"/\" then the context will NOT change, and NOT update!\r\n return \"/\";\r\n }\r\n\r\n return `/${targetMemberFirm}/${targetLanguage}`;\r\n }\r\n\r\n //IF we are deeper then the catalog page... OR we are ON the catalog page...\r\n //If the current path does NOT \"end\" with the KD (we have more then just the KD in the url, we are deeper)\r\n if (contextPath.indexOf(`/${context.knowledgeDomain}/`)) {\r\n //If we are ON the same KD as we want to \"remain\" on\r\n if (targetKD === context.knowledgeDomain || targetKD === `/${context.knowledgeDomain}`) {\r\n //We return the full URL with the new MF and the same KD (as we want the URL to stay the same)\r\n return contextPath.replace(`/${context.memberFirm}/`, `/${targetMemberFirm}/`);\r\n }\r\n }\r\n\r\n //We are in header, and either changing MF/KD, so need the \"full\" url to the target, different KD (no folio/manual/page/content)\r\n return `/${targetMemberFirm}/${targetLanguage}${targetKD}`;\r\n}\r\n\r\nfunction resolverUserId(value) {\r\n if (value === null || value === undefined || value === '') {\r\n var user = getAccountID();\r\n\r\n if (user === null || user === undefined) {\r\n return debugUserId;\r\n }\r\n //console.log(\"ContextHelper::resolverUserId:user\", user)\r\n return user;\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction getAccountID() {\r\n return UTILITIESHELPER.getSessionStorage('accountid');\r\n}\r\n\r\nfunction getknowledgeDomainId(knowledgeDomain){\r\n if(!UTILITIESHELPER.isStringNullorEmpty(knowledgeDomain)){\r\n switch (knowledgeDomain.toLowerCase()) {\r\n case KNOWLEDGE_DOMAIN.accounting: return KNOWLEDGE_DOMAIN_ID.accountingId;\r\n case KNOWLEDGE_DOMAIN.auditing: return KNOWLEDGE_DOMAIN_ID.auditingId;\r\n case KNOWLEDGE_DOMAIN.assurance: return KNOWLEDGE_DOMAIN_ID.assuranceId;\r\n default: return null\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getknowledgeDomain(knowledgeDomainId){\r\n if(!UTILITIESHELPER.isStringNullorEmpty(knowledgeDomainId)){\r\n switch (knowledgeDomainId.toLowerCase()) {\r\n case KNOWLEDGE_DOMAIN_ID.accountingId: return KNOWLEDGE_DOMAIN.accounting;\r\n case KNOWLEDGE_DOMAIN_ID.auditingId: return KNOWLEDGE_DOMAIN.auditing;\r\n case KNOWLEDGE_DOMAIN_ID.assuranceId: return KNOWLEDGE_DOMAIN.assurance;\r\n default: return null\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getTierIds(memberFirm, knowledgeDomain){\r\n const sessionValue = TierHelpers.getSessionStorage();\r\n if (sessionValue && sessionValue.hasOwnProperty(memberFirm)) {\r\n const mfValue = sessionValue[memberFirm][knowledgeDomain];\r\n if (Array.isArray(mfValue) && mfValue.length > 0) {\r\n const value = mfValue.map(x => x.id);\r\n return value;\r\n }\r\n }\r\n return [];\r\n};\r\n\r\nfunction getIndustryIds(memberFirm, knowledgeDomain){\r\n const sessionValue = IndustryHelpers.getSessionStorage();\r\n if (sessionValue && sessionValue.hasOwnProperty(memberFirm)) {\r\n const mfValue = sessionValue[memberFirm][knowledgeDomain];\r\n if (Array.isArray(mfValue) && mfValue.length > 0) {\r\n const value = mfValue.map(x => x.id);\r\n return value;\r\n }\r\n }\r\n return [];\r\n};\r\n\r\nfunction getUPSQuerySpecBaseModel(href, memberFirmId = null) {\r\n let context = generateContext(href);\r\n return {\r\n opm_user_identifier: context.globalPersonUid,\r\n member_firm_id: memberFirmId ? memberFirmId : ProfileHelpers.getSelectedMemberFirmTaxonomyId(),\r\n knowledge_domain_id: getknowledgeDomainId(context.knowledgeDomain)\r\n };\r\n}\r\n\r\nfunction getTimezoneOffset() {\r\n return new Date().getTimezoneOffset();\r\n}\r\n\r\nfunction sortCategories(categories, latestUsedCategoryGuid) {\r\n if (categories?.length > 0) {\r\n UTILITIESHELPER.sortAlphaCaseInsensitive(categories, \"label\");\r\n var index = categories.findIndex(a => a.category_guid === latestUsedCategoryGuid);\r\n if (index > -1) {\r\n const selectedcategory = categories.splice(index, 1);\r\n categories.splice(0, 0, selectedcategory[0]);\r\n }\r\n index = categories.findIndex(a => a.label === \"Reading List\");\r\n if (index > -1) {\r\n const selectedcategory = categories.splice(index, 1);\r\n categories.splice(0, 0, selectedcategory[0]);\r\n }\r\n }\r\n}\r\n\r\nfunction getGUIDFromContext(context) {\r\n return UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedSpineTargetPublicationGUID) ? (UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedContentItemGUID) ? context.pageSelectedPublicationGUID : context.pageSelectedContentItemGUID) : context.pageSelectedSpineTargetPublicationGUID;\r\n\r\n}\r\n\r\n\r\nconst CONTEXTHELPERS = {\r\n generateContext,\r\n generateFolioTitleFromFilename,\r\n getFallbackUrl,\r\n getLanguageByMemberFirm,\r\n getNewLanguageUrl,\r\n isSameLanguage,\r\n resolverUserId,\r\n resolveMemberFirmPath,\r\n debugUserId,\r\n getUPSQuerySpecBaseModel,\r\n getTimezoneOffset,\r\n sortCategories,\r\n getGUIDFromContext,\r\n getknowledgeDomainId,\r\n getknowledgeDomain,\r\n getMemberFirmTaxonomyId,\r\n getMemberFirmWithTaxonomyId,\r\n getAccountID,\r\n getTierIds,\r\n getIndustryIds\r\n}\r\n\r\nexport default CONTEXTHELPERS;\r\n","import { useState, useCallback } from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { ErrorMessages } from \"../components/Constants/Errors\";\r\n/**\r\n * Custom hook to call a web API using bearer token obtained from MSAL\r\n * @param {PopupRequest} msalRequest \r\n * @returns\r\n */\r\nconst useFetchWithMsal = () => {\r\n const { instance, accounts } = useMsal();\r\n const [error, setError] = useState(null);//eslint-disable-line\r\n const [isLoading, setIsLoading] = useState(false);//eslint-disable-line\r\n const getAccessToken = async () => {\r\n const DO_NOT_LOGIN = (window.location.href.indexOf(\"localhost\") > 0);\r\n if(!DO_NOT_LOGIN) {\r\n if (accounts.length > 0) {\r\n try {\r\n const response = await instance.acquireTokenSilent({\r\n account: accounts[0],\r\n scopes: [`${window.DART.ENV.REACT_APP_CLIENTID}/.default`]\r\n });\r\n return response.accessToken;\r\n } catch (error) {\r\n if (error instanceof instance.InteractionRequiredAuthError) {\r\n const response = await instance.acquireTokenPopup({\r\n scopes: [`${window.DART.ENV.REACT_APP_CLIENTID}/.default`]\r\n });\r\n return response.accessToken;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n return process.env.REACT_APP_ACCESSTOKEN;\r\n }\r\n }\r\n /**\r\n * Execute a fetch request with the given options\r\n * @param {request} Object: {url,method,body}\r\n * @param {customheaders} Object: additional headers\r\n * @returns JSON response\r\n */\r\n const apiCall = async (request,customheaders = {}, signal = null) => {\r\n const accesstoken = await getAccessToken();\r\n \r\n if(!accesstoken) {\r\n setError(ErrorMessages.accesstokennotavailable);\r\n return ;\r\n }\r\n try {\r\n let response = null;\r\n const headers = {\r\n \"Content-Type\": \"application/json\",\r\n \"Access-Control-Allow-Origin\": window.location.origin,\r\n \"api-version\": \"1\",\r\n ...customheaders,\r\n };\r\n if (accesstoken) {\r\n headers[\"Authorization\"] = `Bearer ${accesstoken}`;\r\n }\r\n let options = {\r\n method: request.method,\r\n headers: headers,\r\n body: request.body,\r\n };\r\n if(signal) {\r\n options.signal = signal\r\n }\r\n setIsLoading(true);\r\n response = await fetch(request.url,options);\r\n const responseData = await handleResponse(response);\r\n setIsLoading(false);\r\n return responseData;\r\n } catch (e) {\r\n setError(e);\r\n setIsLoading(false);\r\n throw e;\r\n }\r\n };\r\n\r\nconst handleResponse = async (response) => {\r\n if (response.status === 200) {\r\n return handleSuccess(response);\r\n }\r\n if (response.status === 204) {\r\n return handleNoContent();\r\n }\r\n if (response.status >= 400 && response.status < 500) {\r\n return handleClientError(response);\r\n }\r\n if (response.status >= 500) {\r\n return handleServerError(response);\r\n }\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n};\r\nconst handleSuccess = async (response) => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n try {\r\n const json = response.json();\r\n return json;\r\n } catch (e) {\r\n throw new Error(`Invalid JSON response: ${e}`);\r\n }\r\n};\r\nconst handleNoContent = () => {\r\n return null;\r\n};\r\nconst handleClientError = async (response) => {\r\n const error = new Error(`HTTP client error! status: ${response.status}`);\r\n error.response = Promise.resolve({ response });\r\n throw error;\r\n};\r\nconst handleServerError = async (response) => {\r\n const error = new Error(`HTTP server error! status: ${response.status}`);\r\n error.response = Promise.resolve({ response });\r\n throw error;\r\n};\r\n return {\r\n apiCall: useCallback(apiCall, []), // to avoid infinite calls when inside a `useEffect`\r\n };\r\n};\r\nexport default useFetchWithMsal;\r\n","import useFetchWithMsal from '../hooks/useFetchWithMsal';\r\nimport { logs, page } from '../helpers/log';\r\n\r\nfunction useUserProfileService() {\r\n const { apiCall } = useFetchWithMsal();\r\n const DCSEndPoint = window.DART.ENV.REACT_APP_DCS_ENDPOINT_API;\r\n const customheaders = { \"INK_CONTENT_PRERELEASE\": (window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE ? window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE : window.DART.ENV.RP_REACT_APP_PREVIEW) };\r\n\r\n async function getUserProfileInfo() {\r\n var response = null;\r\n let request = {\r\n url: `${DCSEndPoint}/OPM/userprofile`,\r\n method: 'GET',\r\n mode: 'cors'\r\n }\r\n try {\r\n response = await apiCall(request, customheaders)\r\n }\r\n catch {\r\n logs.error(page.DCSService, 'RPService', \"Error in getting user Profile info api\", request.url);\r\n }\r\n finally {\r\n return response;\r\n }\r\n\r\n };\r\n\r\n async function getCountryKDSettings() {\r\n var response = null;\r\n let request = {\r\n url: `${DCSEndPoint}/OPM/settings`,\r\n method: 'GET',\r\n mode: 'cors'\r\n }\r\n try {\r\n response = await apiCall(request, customheaders)\r\n }\r\n catch {\r\n logs.error(page.DCSService, 'RPService', \"Error in getting user Profile info api\", request.url);\r\n }\r\n finally {\r\n return response;\r\n }\r\n\r\n };\r\n\r\n return { getUserProfileInfo, getCountryKDSettings };\r\n};\r\n\r\nexport default useUserProfileService;","import React, { useState, createContext, useLayoutEffect, useEffect, useContext } from 'react'\r\nimport { useLocation, useParams} from 'react-router-dom'\r\nimport CONTEXTHELPERS from '../helpers/ContextHelpers';\r\nimport RETRIEVALSERVICES from '../services/rp-service';\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper'\r\nimport { logs, page } from \"../helpers/log\";\r\nimport TierHelpers from '../helpers/TierHelpers';\r\nimport StorageHelpers from '../helpers/StorageHelpers';\r\nimport IndustryHelpers from '../helpers/IndustryHelpers';\r\nimport ProfileHelpers from '../helpers/ProfileHelpers';\r\nimport SearchHelpers from '../helpers/SearchHelpers';\r\nimport useUserProfileService from '../services/useUserProfileService';\r\nimport { ErrorCodes, ErrorMessages, ErrorTypes } from '../components/Constants/Errors';\r\nimport { MemberFirmID } from '../components/Constants/Constants';\r\n\r\nexport const PageContext = createContext();\r\nexport const usePageContext = () => useContext(PageContext);\r\n\r\n\r\n/**\r\n* Hook to retrieve CMS Labels from PageContext\r\n* @returns Object\r\n*/\r\n\r\nexport const usePageContextLabels = () => {\r\n\t// Retrieve Labels from PageContext\r\n\tconst { sitesLabels, memberFirm, debugLabelsAndMT, setSitesLabelsLoaded, region } = usePageContext();\r\n\t\r\n\t// Compose function w/retrieved labels\r\n\tuseEffect(()=>{\r\n\t\tif(UTILITIESHELPER.isEmptyObject(sitesLabels))\r\n\t\t{\r\n\t\t\t\r\n\t\t\tsetSitesLabelsLoaded(false);\r\n\t\t}\r\n\t},[]);\r\n\tconst getLabel = (label, fallback, ignoreMF = false, memberFirmOverride = \"\") => {\r\n\t\t//If we have labels and requested default label exist, then return label, else return fallback\r\n\t\t//By \"default\" the fallback would be without the MF, so if there is a non-specific MF version (we are good)\r\n\t\t\r\n\t\tif (sitesLabels && sitesLabels.length > 1 && !sitesLabels[label]) {\r\n\t\t\tconsole.warn(\"usePageContextLabels::getLabel:Label NOT available for:\", label, sitesLabels)\r\n\t\t\tlogs.info(page.PageContext,'getLabel',`Label NOT available for: ${label}`);\r\n\t\t}\r\n\t\tif (!ignoreMF && sitesLabels && sitesLabels[`${label}_${memberFirm}`]) {\r\n\t\t\tlabel = `${label}_${memberFirm}`;\r\n\t\t\t//console.log(\"usePageContextLabels::getLabel:MF-Specific label available for:\", label)\r\n\t\t}\r\n\t\t//below method will return MF/Region of the selected country\r\n\t\t//We are giving priority to country as first and the region as second, which means if a lable with country code is available then that will be pulled up.\r\n\t\t//ex. (za-south africa - country) & africa(region) both is configured and label is available for both, then in that case za will hold the higher priority.\r\n\t\tif (!ignoreMF && sitesLabels && !sitesLabels[`${label}_${memberFirm}`] && region && sitesLabels[`${label}_${region}`]) {\r\n\t\t\tlabel = `${label}_${region}`;\r\n\t\t}\r\n\r\n\t\t//If we do ignore MF, and we pass a MF to override (headers/landing), then we take the ovveride\r\n\t\tif (ignoreMF && memberFirmOverride !== \"\" && sitesLabels && sitesLabels[`${label}_${memberFirmOverride}`]) {\r\n\t\t\tlabel = `${label}_${memberFirmOverride}`;\r\n\t\t\t//console.log(\"usePageContextLabels::getLabel:MF-Override label available for:\", label)\r\n\t\t}\r\n\t\tif (debugLabelsAndMT) {\r\n\t\t\treturn sitesLabels && sitesLabels[label] ? 'L:' + sitesLabels[label] : 'FB:' + fallback;\r\n\t\t}\r\n\t\t//In the case if the label did not exist, we will then return the \"lbl_NameOfLabel\" as the text!\r\n\t\t//console.log(\"usePageContextLabels::getLabel:Final label:\", label)\r\n\t\treturn sitesLabels && sitesLabels[label] ? sitesLabels[label] : fallback;\r\n\t}\r\n\t\r\n\t//This getMFLabel is ONLY used when we are potentially translating a Content.Field (from sites)\r\n\t//These fields from sites may or may not contain a lbl_ (or it may just contain the text we want!)\r\n\tconst getMFLabel = (label, sourceCode) => {\r\n\t\tif (!label || label === \"\") {\r\n\t\t\t//console.warn(\"usePageContextLabels::getMFLabel:Label was BLANK/EMPTY for this sourceCode:\", sourceCode);\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\tlabel = label.toString();\r\n\r\n\t\t//Generic Fallback for labels, would be if this is just the text and not yet made a lbl_LabelName\r\n\t\tif (!label.startsWith(\"lbl_\")) {\r\n\t\t\t//We log as a warning as we should have NO \"text\", this text needs to be made into a lbl_LabelName\r\n\t\t\t//console.warn(\"usePageContextLabels::getMFLabel:Label missing for, label, sourceCode, sitesLabels:\", label, sourceCode, sitesLabels);\r\n\t\t\tif (debugLabelsAndMT) {\r\n\t\t\t\treturn '!LBL:' + label;\r\n\t\t\t}\r\n\t\t\t//We return the text that was in the content as it was not a lbl_LabelName\r\n\t\t\treturn label;\r\n\t\t}\r\n\r\n\t\t//If label starts with lbl, then it should be in the labels, so get it...\r\n\t\treturn getLabel(label, label)\r\n\t}\r\n\treturn { getLabel, getMFLabel };\r\n}\r\n\r\n\r\n/**\r\n* Hook to deturmine within features, if they are enabled or not, based on the CMS Settings from PageContext\r\n * ApplicationSettings: UPSConfig: \"Features\": \"recentlyViewed, annotations, bookmarks, etc\"\r\n* @returns Object\r\n*/\r\nexport const usePageContextSettings = () => {\r\n\tconst { memberFirm, memberFirms, settings } = usePageContext();//eslint-disable-line\r\n\r\n\t//AppSettings: UPSConfig:Features\r\n\tconst Feature = {\r\n\t\tAnnotations: \"Annotations\",\r\n\t\tBookmarks: \"Bookmarks\",\r\n\t\tDashboard: \"Dashboard\",\r\n\t\tRecentlyViewed: \"RecentlyViewed\",\r\n\t\tRecentSearch: \"RecentSearch\"\r\n\t}\r\n\t//Sites/AppSettings: ResearchPortalMemberfirms[memberFirm].features\r\n\t//contextMemberFirm (for current context MF setting)\r\n\tconst MemberFirmFeature = {\r\n\t\tCompare: \"Compare\",\r\n\t\tUserPreferences: \"User Preferences\"\r\n\t}\r\n\r\n\t//This is a private function as there is a lot to work out for each setting!\r\n\t//\tWe will used the memberFirm settings in conjuction with the current check for settings being enabled or not.\r\n\tconst isMemberFirmFeatureEnabled = (featureName) => {\r\n\t\t//MemberFirm Settings are per memberFirm and are not directly all userPreference settings!\r\n\t\tif (memberFirms === undefined || memberFirms?.length === 0) {\r\n\t\t\t//console.log(\"usePageContextSettings::isMemberFirmFeatureEnabled:NULL-MFS-FALSE\", memberFirm, featureName);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//TODO:DEBO:NEED TO Add the check for the USER's MF's setting (and not the \"context\" MF!!\r\n\t\t//contextMemberFirm (for current context MF setting)\r\n\r\n\t\t//In Local the logged in user Member Firm will be \"dtt\", if we need to change the MemberFirm we have to pass it manually in this function in indexApp.js, eg: initializeProfile('dtt') or initializeProfile('us') \r\n var userMemberFirm = (StorageHelpers.getLocalStorage('MemberFirm'));\r\n\t\t//TODO:Check if we should use the Context? ...contextMemberFirm - or is this PURELY for the user's MF!\r\n\t\tlet currentMemberFirm = memberFirms.filter(s => s.memberFirmSettings.country === userMemberFirm);\r\n\t\tif (!currentMemberFirm) {\r\n\t\t\t//This will get the group'ed MF it there is a group!\r\n\t\t\tcurrentMemberFirm = memberFirms.filter(s => s.memberFirmSettings.country.includes(userMemberFirm));\r\n\t\t}\r\n\t\t//If the setting is not there, or we don'g have anything... then its OFF\r\n\t\tif (!currentMemberFirm || currentMemberFirm?.length === 0 || !currentMemberFirm[0].memberFirmSettings.UserFeatures || currentMemberFirm[0].memberFirmSettings.UserFeatures?.length === 0) {\r\n\t\t\t//console.log(\"usePageContextSettings::isMemberFirmFeatureEnabled:FALSE\", memberFirm, featureName, memberFirms, currentMemberFirm[0]);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t//Only when its there explicitly is it ON\r\n\t\tif (currentMemberFirm[0].memberFirmSettings.UserFeatures.filter(f => f.name === featureName && f.Enabled=== true)) {\r\n\t\t\t//console.log(\"usePageContextSettings::isMemberFirmFeatureEnabled:TRUE\", memberFirm, featureName, memberFirms, currentMemberFirm[0]);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\t//console.log(\"usePageContextSettings::isMemberFirmFeatureEnabled:DEFAULT-FALSE\", memberFirm, featureName, memberFirms, currentMemberFirm[0]);\r\n\t\treturn false;\r\n\t}\r\n\r\n\t//Public functions:\r\n\tconst isAnnotationsEnabled = () => {\r\n\t\t//MemberFirm setting has to be ON before ConfigSetting's User Preference is ON\r\n\t\treturn isMemberFirmFeatureEnabled(Feature.Annotations);\r\n\t}\r\n\r\n\tconst getMemberFirmSettings = (mf) => {\r\n\t\treturn memberFirms.filter(s => s.memberFirmSettings.country === mf || s.memberFirmSettings.defaultMemberFirm === mf)\r\n\t}\r\n\r\n\tconst isRestrictedAccessMemberfirm = () => {\r\n\t\tif (RETRIEVALSERVICES.UPSUserID() === CONTEXTHELPERS.debugUserId) {\r\n\t\t\tconst isMfAccessRestricted = (window.DART.ENV.RP_REACT_APP_RESTRICTACCESSBYMEMBERFIRM !== undefined && String(window.DART.ENV.RP_REACT_APP_RESTRICTACCESSBYMEMBERFIRM).toUpperCase() === 'TRUE')\r\n\t\t\tif (isMfAccessRestricted) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst isBookmarksEnabled = () => {\r\n\t\t//MemberFirm setting has to be ON before ConfigSetting's User Preference is ON\r\n\t\treturn isMemberFirmFeatureEnabled(Feature.Bookmarks);\r\n\t}\r\n\r\n\tconst isCompareEnabled = () => {\r\n\t\t//Compare is NOT a userPreference setting!\r\n\t\t//console.log(\"isCompareConfigEnabled\", settings?.compareConfigEnabled);\r\n\t\tif (settings?.compareConfigEnabled === undefined || settings?.compareConfigEnabled === null || settings?.compareConfigEnabled !== true) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t//Global settings superseed first over memberfirm settings - if preference is enabled!\r\n\t\treturn settings.compareConfigEnabled && isMemberFirmFeatureEnabled(MemberFirmFeature.Compare);\r\n\t}\r\n\r\n\tconst isDashboardEnabled = () => {\r\n\t\t//MemberFirm setting has to be ON before ConfigSetting's User Preference is ON\r\n\t\treturn isMemberFirmFeatureEnabled(Feature.Dashboard);\r\n\t}\r\n\r\n\tconst isRecentlyViewedEnabled = () => {\r\n\t\t//MemberFirm setting has to be ON before ConfigSetting's User Preference is ON\r\n\t\treturn isMemberFirmFeatureEnabled(Feature.RecentlyViewed);\r\n\t}\r\n\r\n\tconst isRecentSearchEnabled = () => {\r\n\t\t//MemberFirm setting has to be ON before ConfigSetting's User Preference is ON\r\n\t\treturn isMemberFirmFeatureEnabled(Feature.RecentSearch);\r\n\t}\r\n\r\n\t//TODO: If this list gets long... Change to call isUserPreferencesFeatureEnabled(Feature.FeatureName) ? \r\n\t//\tFor when we want to just have the calling function call the feature instead of the isFeatureEnabled\r\n\t//\treturn { Feature, isUserPreferencesFeatureEnabled };\r\n\treturn { isAnnotationsEnabled, isBookmarksEnabled, isCompareEnabled, isDashboardEnabled, isRecentlyViewedEnabled, isRestrictedAccessMemberfirm, isRecentSearchEnabled ,getMemberFirmSettings };\r\n}\r\n\r\n\r\n/**\r\n* Hook to retrieve Synonym data from PageContext\r\n * I did not put this in \"SearchResultContext\" as we need the context, and we need it BEFORE the search/search results!\r\n * We need this potentially from the Catalog page, Collection page, and beyond.\r\n * USAGE: \r\n *\tconsole.log(\"synonyms.AICPA\", getSynonyms(\"AICPA\"));\r\n *\tconsole.log(\"synonyms.Q&A\", getSynonyms(\"Q&A\"));\r\n *\tconsole.log(\"synonyms.q&a\", getSynonyms(\"q&a\"));\r\n *\tconsole.log(\"synonyms.Profit\", getSynonyms(\"Profit\")); === [ \"Profit\" ]\r\n *\tconsole.log(\"synonyms.'Profit and loss'\", getSynonyms(\"Profit and loss\", true)); === [ \"Profit and loss\", \"P&L\" ]\r\n *\tconsole.log(\"synonyms.Profit and loss\", getSynonyms(\"Profit and loss\")); === [ \"Profit\", \"and\", \"loss\", \"P&L\" ]\r\n *\tconsole.log(\"synonyms.Profit and loss\", getSynonyms(\"PROFIT AND LOSS\"));\r\n *\tconsole.log(\"synonyms.GAAS\", getSynonyms(\"GAAS\"));\r\n *\tconsole.log(\"synonyms.gaas\", getSynonyms(\"gaas\"));\r\n* @returns Object\r\n*/\r\nexport const usePageContextSynonyms = () => {\r\n\t// Retrieve Synonyms from PageContext\r\n\tconst { synonyms } = usePageContext();\r\n\r\n\t// Compose function get the array of word and matching synonyms for the given word\r\n\t// If exactPhraseMatch===true, then we only want to highlight the whole phrase in the page, so will then NOT split out each word\r\n\t// Highlight is changed through the \"searchText\" \r\n\t//\tthe search should be expanded to also include the synonyms\r\n\tconst getSynonyms = (word, exactPhraseMatch = false) => {\r\n\t\t//default, if we don't find synonyms, we just return the same word as a single valued array (to loop through for highlight)\r\n\t\tlet matchedSynonyms = exactPhraseMatch ? [word] : word.split(' ');\r\n\t\tlet matchWord = word.toLowerCase();\r\n\r\n\t\t//Find a list of matching words/phrases within synonyms (Must match whole word or phrase)\r\n\t\t//\t\"word\" does not match \"acronym,this word synonym\"\r\n\t\tvar matchingSynonyms = synonyms.filter(function (synonym) {\r\n\t\t\tvar currentSynonym = synonym.toLowerCase();\r\n\t\t\tif (currentSynonym.indexOf(matchWord) > -1) {\r\n\t\t\t\t//console.log(\"synonyms, match\", matchWord, currentSynonym);\r\n\t\t\t\tvar words = currentSynonym.split(\",\");\r\n\t\t\t\tvar exactMatch = false;\r\n\t\t\t\twords.forEach((word, idx) => {\r\n\t\t\t\t\tif (word === matchWord) {\r\n\t\t\t\t\t\t//console.log(\"synonyms, exact-word-match\", word, synonym);\r\n\t\t\t\t\t\texactMatch = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn exactMatch;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\tif (Array.isArray(matchingSynonyms) && matchingSynonyms.length > 0) {\r\n\t\t\tmatchingSynonyms.forEach((matchingSynonym) => {\r\n\t\t\t\tlet matchingSynonymItems = matchingSynonym.split(\",\");\r\n\t\t\t\tmatchingSynonymItems.forEach((matchingSynonymItem) => {\r\n\t\t\t\t\tif (matchWord !== matchingSynonymItem.toLowerCase()) {\r\n\t\t\t\t\t\tmatchedSynonyms.push(matchingSynonymItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn matchedSynonyms;\r\n\t}\r\n\r\n\treturn { getSynonyms };\r\n}\r\n\r\n\r\nconst PageContextProvider = ({ children }) => {\r\n\t//TODO:BDP: Global context object, must replace all references to url/route/etc: \r\n\t//\tlet context = CONTEXTHELPERS.generateContext(window.location.href);\r\n\t//\teverywhere, we re-use the PageContext.Context object!\r\n\r\n\tconst location = useLocation();\r\n\tlet params = location?.pathname?.split(\"/\");\r\n\tconst { memberFirmParam= params[1], languageParam = params[2], knowledgeDomainParam = params[3], pageControllerTypeParam = params[4], pageControllerTypeCollection = params[5] } = useParams();\r\n\t//This is the CONTEXT OBJECT (that should be \"replaced\" with the context object!)\r\n\t//This gets the LAST-MF, or the user's MF\r\n\tconst memberFirm = ProfileHelpers.getFallbackMemberFirm(memberFirmParam);\r\n\tconst language = ProfileHelpers.getFallbackLanguageByMemberFirm(memberFirm, languageParam);\r\n\tconst knowledgeDomain = (\"content|dashboard\".indexOf(knowledgeDomainParam) > -1) ? \"\" : knowledgeDomainParam; //Must ONLY contain KD, otherwise empty!\r\n\tconst pageControllerType = (pageControllerTypeParam === 'collection') ? pageControllerTypeCollection : pageControllerTypeParam;\r\n\tconst pageCollectionName = (pageControllerTypeParam !== 'collection') ? pageControllerTypeCollection : \"\";\r\n\tconst queryParams = new URLSearchParams(location?.search);\r\n\tconst currentSearch = SearchHelpers.fromQueryString(queryParams);\r\n\tconst compareVersionParam = queryParams?.get('compareVersion');\r\n\t//Try combine this - is there really a reason to \"have\" searchPhrase??\r\n\tconst [searchPhrase, setSearchPhrase] = useState(currentSearch || '');\r\n\tconst [pageURLWhereSearchInnitiated, setPageURLWhereSearchInnitiated] = useState(\"\");\r\n\tconst {getUserProfileInfo, getCountryKDSettings} = useUserProfileService();\r\n\r\n\t//each variable needs to be in the above coming out of the params instead of a context object, and the pageContext object an be used as the context...\r\n\t//\tas pageContext.memberFirm\r\n\tconst [context, setContext] = useState(CONTEXTHELPERS.generateContext(window.location.href, searchPhrase, currentSearch, null, memberFirm, language));\r\n\tconst [contextMemberFirm, setContextMemberFirm] = useState(null);\r\n\tconst [taxonomyMemberFirmContext, setTaxonomyMemberFirmContext] = useState(null)\r\n\r\n\t//These are potentially global variables, that will change each URL/context\r\n\tconst isCatalogPage = (knowledgeDomain !== \"\") ? context.pageRequestURL.endsWith(knowledgeDomain) : false;\r\n\tconst isSearchPage = (currentSearch !== null);\r\n\tconst isFolioPage = ('folio').includes(pageControllerType) || ('guide').includes(pageControllerType);\r\n\tconst isJournalPage = ('deloitte-communications|professional-news|journals').includes(pageControllerType);\r\n\tconst isJournalListing = isJournalPage && (!UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedPublicationGUID) && UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedContentItemGUID));\r\n\tconst isFolioSectionlisting = ((pageControllerType === \"folio\" || pageControllerType === \"guide\") && !UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedSection) && UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedPublicationGUID))\r\n\tconst isRelatedLinksPage = (context.pageSelectedSection === \"related\");// && context.pageSelectedPublicationGUID !== \"\");\r\n\tconst isSpinePage = ('manual|standards|roadmap|guidance').includes(pageControllerType);\r\n\tconst isWormholeActive = queryParams.get('wormhole');\r\n\r\n\t//This prevents us from loading \"english\" multiple times...\r\n\tconst [previousLanguage, setPreviousLanguage] = useState(\"\");\r\n\tconst [footerLinks, setFooterLinks] = useState([]);\r\n\r\n\t// Peer Context AKA Do other tabs exist?\r\n\tconst backChannel = new BroadcastChannel('rp-peer-network');\r\n\r\n\tconst [annotationPanelOpen, setAnnotationPanelOpen] = useState(false);\r\n\tconst [annotateTerms, setAnnotateTerms] = useState();\r\n\tconst [hasPeers, setHasPeers] = useState(false);\r\n\tconst [categoryOn, setCategoryOn] = useState(false);\r\n\tconst [downloadPanelOpen, setDownloadPanelOpen] = useState(false);\r\n\tconst [bookmarkOpen, setBookmarkOpen] = useState(false);\r\n\tconst [memberFirms, setMemberFirms] = useState([]);\r\n\tconst [pageDescription, setPageDescription] = useState('');\r\n\tconst [pageTitle, setPageTitle] = useState('')\r\n\tconst [peerTestCompleted, setPeerTestCompleted] = useState(false);\r\n\tconst [selectedCatalogs, setSelectedCatalogs] = useState(StorageHelpers.getLocalStorageJSON('rp-selected-catalogs') || {});\r\n\t//TODO:BDP: This needs to move into the ContextHelper when we get the context object, as it does this there!\r\n\t//\tthen we update the usage of this to read from PageContext.context.languageOject ?\r\n\tconst [selectedLanguageObject,setSelectedLanguageObject] = useState(UTILITIESHELPER.getCurrentLanguageLocalStorage(language));//eslint-disable-line\r\n\r\n\t//Global Objects\r\n\tconst [settings, setSettings] = useState(null);\r\n\tconst [sitesLabelsLoaded, setSitesLabelsLoaded] = useState(false);\r\n\tconst [sitesLabels, setSitesLabels] = useState({});\r\n\tconst [synonyms, setSynonyms] = useState([]);\r\n\tconst [isMemberFirmsLoaded, setIsMemberFirmsLoaded] = useState(false);\r\n\r\n\t// Pref Context: Tier (Frameworks)\r\n\tconst [tier, setTier] = useState();\r\n\tconst [currentTier, setCurrentTier] = useState();\r\n\tconst [hasGottenCorrectTierValue, setHasGottenCorrectTierValue] = useState(false);\r\n\tconst tierVal = JSON.stringify(tier);\r\n\r\n\t// Pref Context: Industry\r\n\tconst [industry, setIndustry] = useState();\r\n\tconst [currentIndustry, setCurrentIndustry] = useState();\r\n\tconst [hasVerifiedIndustry, setHasVerifiedIndustry] = useState(false);\r\n\tconst industryVal = JSON.stringify(industry);\r\n\tconst [allIndustry, setAllIndustry] = useState({});\r\n\tconst [allTier, setAllTier] = useState({});\r\n\r\n\t//To debug the labels on the page: localStorage.setItem('mt-debug','true');\r\n\tconst debugLabelsAndMT = UTILITIESHELPER.getIsDebugMTLocalStorage();\r\n\r\n\tconst [isNavigatedFromCollectionSearch, setIsNavigatedFromCollectionSearch] = useState(false);\r\n\r\n\t//below method will return MF/Region of the selected country\r\n\tconst [region, setRegion] = useState(\"\");\r\n\r\n\t//MessageNotification\r\n\t//message : text that you want display, type : type of message (error, info, warning), display : to indicate the message should display\r\n\tconst [notification, setNotification] = useState({ message: '', type: 'error', display: false });\r\n\tconst getMemberFirmLanguages = () => {\r\n\t\tif (contextMemberFirm) {\r\n\t\t\treturn contextMemberFirm.memberFirmSettings?.knowledgeDomain?.find(kd => kd.name === knowledgeDomain)?.language?.split(\",\");\r\n\t\t}\r\n\t}\r\n\tconst getMemberFirmDefaultLanguage = () => {\r\n\t\tif (contextMemberFirm) {\r\n\t\t\treturn contextMemberFirm.memberFirmSettings?.defaultLanguage;\r\n\t\t}\r\n\t}\r\n\t//This gets the current context MF IDs (the list of IDs in the CONFIGURATION) (could be multi-valued, but will return an array!)\r\n\tconst getMemberFirmIDs = () => {\r\n\t\tif (contextMemberFirm) {\r\n\t\t\t//Right now DCS only expects, 1x MF ID ... so we will return array of the first one...\r\n\t\t\t return contextMemberFirm.memberFirmSettings?.knowledgeDomain?.find(kd=>kd.name===knowledgeDomain)?.memberFirm?.split(\",\");\r\n\t\t\t//return [contextMemberFirm.memberFirmSettings.memberFirm.split(\",\")[0]];\r\n\t\t}\r\n\t}\r\n\t//This gets the current context MF ID (not the one use for DCS queries, but explicitly the singular currnent context MF!!)\r\n\tconst getMemberFirmID = () => {\r\n\t\tif (contextMemberFirm) {\r\n\t\t\treturn contextMemberFirm.id;\r\n\t\t}\r\n\t}\r\n\r\n\tconst getMemberFirmSettings = () => {\r\n\t\tif (contextMemberFirm) {\r\n\t\t\t//Right now DCS only expects, 1x MF ID ... so we will return array of the first one...\r\n\t\t\treturn contextMemberFirm.memberFirmSettings;\r\n\t\t\t//return [contextMemberFirm.memberFirmSettings.memberFirm.split(\",\")[0]];\r\n\t\t}\r\n\t}\r\n\r\n\t//ChatBot\r\n\tconst [isResearchAssistantEnabled, setIsResearchAssistantEnabled] = useState(false);\r\n\tconst [countryKDSettings, setCountryKDSettings] = useState(null);\r\n\tconst [isUserProfileLoaded, setUserProfileLoaded] = useState(false);\r\n\tconst [isCountryKDSettingsLoaded, setCountryKDSettingsLoaded] = useState(false);\r\n\tconst [researchAssistantMemeberfirms,setResearchAssistantMemberfirms]=useState(null);\r\n\tconst [userCountry, setUserCountry] = useState(\"\");\r\n\t\r\n\r\n\t//Language\r\n\tconst [selectedLanguage, setSelectedLanguage] = useState(UTILITIESHELPER.getLocalStorage(\"selected-user-language\"));\r\n\t\r\n\tfunction countrieslist ( countryKDSettings) {\r\n\r\n\t\tconst data =countryKDSettings ;\r\n\r\n\t\tconst filteredData = data.map(item => {\r\n\t\t\tlet filteredItem = {...item};\r\n\t\t\tfilteredItem.knowledgeDomain = item.knowledgeDomain.filter(domain => {\r\n\t\t\t if (domain.siteFeatures) {\r\n\t\t\t\tfor (let j = 0; j < domain.siteFeatures.length; j++) {\r\n\t\t\t\t if (domain.siteFeatures[j].name === 'ResearchAssistant' && domain.siteFeatures[j].Enabled) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t }\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t\t return false;\r\n\t\t\t});\r\n\r\n\t\t\treturn filteredItem;\r\n\t\t }).filter(item => item.knowledgeDomain.length > 0);\r\n \r\n\t\t setResearchAssistantMemberfirms(filteredData);\r\n\r\n\t}\r\n\r\n\r\n\r\n\tconst getUserProfileCanSeeRA = async () => {\r\n\r\n\t\tconst userProfileInfo = await getUserProfileInfo();\r\n\t\tsetUserProfileLoaded(true);\r\n\t\tif(userProfileInfo){\r\n\t\t\tconst { CanSeeRA, Country } = userProfileInfo;\r\n\t\t\tsetIsResearchAssistantEnabled(CanSeeRA);\r\n\t\t\tsetUserCountry(Country);\r\n\t\t}\r\n\t}\r\n\tuseEffect(() => {\r\n\t\tgetUserProfileCanSeeRA();\r\n\t}, [])\r\n\t\r\n\r\n\t//Maintain the page context\r\n\tuseEffect(() => {\r\n\t\t//Compares against the FULL URL! (incl the http etc)\r\n\t\t//This stops the context from being replaced when the URL did not actually change\r\n\t\tif (context.pageRequestURL !== window.location.href) {\r\n\t\t\t//TODO: Change this to use the routeInfo instead of URL (so we can \"listen\" to if only listening to the href does not work)\r\n\t\t\tsetContext(CONTEXTHELPERS.generateContext(window.location.href));\r\n\t\t\t//console.log(\"PageContext::useEffect:setContext:<<<< Updated >>>>\");\r\n\r\n\t\t\t//This will reset the message notification object when user navigate from current page\r\n\t\t\tsetNotification({ message: '', type:ErrorTypes.Error, display: false });\r\n\t\t}\r\n\t}, [location?.pathname]);//eslint-disable-line\r\n\r\n\t// This determines whether or not the browser has multiple tabs with the same origin\r\n\t// please keep as the first useEffect --- order matters\r\n\tuseEffect(() => {\r\n\t\t// Handles broadcast message\r\n\t\tfunction messageHandler(event) {\r\n\t\t\t// if another tab exists, respond no\r\n\t\t\tif (event.data === 'alone') {\r\n\t\t\t\tbackChannel.postMessage('no')\r\n\t\t\t}\r\n\r\n\t\t\t// if we are not alone, we have peers and the test is complete\r\n\t\t\tif (event.data === 'no') {\r\n\t\t\t\t// only do this once\r\n\t\t\t\tif (!peerTestCompleted) {\r\n\t\t\t\t\t// console.log('has peers');\r\n\t\t\t\t\tsetHasPeers(true);\r\n\t\t\t\t\tsetPeerTestCompleted(true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// assign message handler\r\n\t\tbackChannel.onmessage = messageHandler;\r\n\r\n\t\t// post message asking if we are alone\r\n\t\tbackChannel.postMessage('alone');\r\n\r\n\t\t// since broadcast only goes to subscribers and not the publisher\r\n\t\t// we need to set a timeout to handle no response, because we are alone.\r\n\t\t// This can use a relatively short timeout because the message is sent by\r\n\t\t// the browser's context and not the app.\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (!peerTestCompleted) {\r\n\t\t\t\t// console.log('no peers');\r\n\t\t\t\tsetPeerTestCompleted(true);\r\n\t\t\t}\r\n\t\t}, 50);\r\n\r\n\t\t// finally, on unload we will close the channel\r\n\t\treturn () => {\r\n\t\t\tbackChannel.close();\r\n\t\t}\r\n\t}, []);//eslint-disable-line\r\n\r\n\t// Load Global Settings and all member firm configurations (These are the same not matter what the URL/MF is, so only needs to be retreived ONCE)\r\n\t\tuseEffect(() => {\r\n\t\t\tconst fetchSettings = async () => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst settingData = await getCountryKDSettings();\r\n\r\n\t\t\t\t\tlogs.debug(page.PageContext, 'fetchSettings', \"settingData:Context, settingData \", context, settingData);\r\n\r\n\t\t\t\t\tsettingData.memberFirms.forEach((taxonomyMemberFirm, mfIdx) => {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (taxonomyMemberFirm.memberFirmSettings.country === context.memberFirm) {\r\n\t\t\t\t\t\t\tsetContextMemberFirm(taxonomyMemberFirm);\r\n\t\t\t\t\t\t\tsetRegion(taxonomyMemberFirm.memberFirmSettings?.publicationName);\r\n\t\t\t\t\t\t\tProfileHelpers.setSelectedMemberFirmTaxonomyId(taxonomyMemberFirm.id);\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tsetMemberFirms(settingData.memberFirms);\r\n\t\t\t\t\tsetIsMemberFirmsLoaded(true);\r\n\t\t\t\t\tsetSettings(settingData.settings);\r\n\r\n\t\t\t\t\tif (settingData) {\r\n\t\t\t\t\t\tconst memberfirmSettings = settingData.memberFirms.map(a => a.memberFirmSettings);\r\n\t\t\t\t\t\tsetCountryKDSettings(memberfirmSettings);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tconst member_firm = !UTILITIESHELPER.isStringNullorEmpty(\r\n\t\t\t\t\t\t\tUTILITIESHELPER.getLocalStorage('research-assistant-memberfirm')\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t? UTILITIESHELPER.getLocalStorage('research-assistant-memberfirm')\r\n\t\t\t\t\t\t: UTILITIESHELPER.getLocalStorage('MemberFirm');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tconst country = memberfirmSettings.filter(x => x.country == member_firm);\r\n\t\t\t\t\t\tconst member_firm_id = country[0]?.defaultMemberFirm;\r\n\t\t\t\t\t\tlocalStorage.setItem(\"research-assistant-member-firm-Id\", member_firm_id);\r\n\t\t\t\t\t\tcountrieslist(memberfirmSettings);\r\n\t\t\t\t\t\tconst TaxonomyMemberfirmValue= memberfirmSettings\r\n\t\t\t\t\t\t.filter(x => x.country === context.memberFirm)[0]?.knowledgeDomain?.filter(x => x.name === (context.knowledgeDomain ? context.knowledgeDomain : 'auditing'))[0]?.taxonomyMemberFirm ;\r\n\t\t\t\t\t\tconst taxonomyArray = (UTILITIESHELPER.isStringNullorEmpty(TaxonomyMemberfirmValue)? MemberFirmID.dtt :TaxonomyMemberfirmValue)\r\n\t\t\t\t\t\tsetCountryKDSettingsLoaded(true);\r\n\t\t\t\t\t\tsetTaxonomyMemberFirmContext(taxonomyArray)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tcatch (err) {\r\n\t\t\t\t\tlogs.error(page.PageContext, 'fetchSettings', ErrorMessages.settings, err, { eventId: ErrorCodes.PageContext });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfetchSettings();\r\n\t\t}, []);//eslint-disable-line\r\n\r\n\tuseEffect(() => {\r\n\t\tif (contextMemberFirm && contextMemberFirm.memberFirmSettings.country !== context.memberFirm) {\r\n\t\t\t//Find the seelcted MF in teh list, and then re-select it...We have to find it or its broken\r\n\t\t\tvar currentMF = memberFirms?.find(m => m.reference.toLowerCase() === context.memberFirm);\r\n\t\t\tif (currentMF) {\r\n\t\t\t\tsetContextMemberFirm(currentMF);;\r\n\t\t\t\tProfileHelpers.setSelectedMemberFirmTaxonomyId(currentMF.id);\r\n\r\n\t\t\t\t//Based on the selected country from the country dropdown we are setting up its region\r\n\t\t\t\tsetRegion(currentMF?.memberFirmSettings?.publicationName)\r\n\t\t\t}\r\n\t\t}\r\n\t}, [context.memberFirm]);//eslint-disable-line\r\n\r\n\t// Load cms labels - NOT memberFirm-dependant!\r\n\tuseEffect(() => {\r\n\t\tconst retreiveResourceLabels = async (resource) => {\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await RETRIEVALSERVICES.retrieveResource(context, resource);\r\n\t\t\t\tlogs.debug(page.PageContext, 'retreiveResourceLabels', \"retreiveResourceLabels:Context, res \", context, res);\r\n\t\t\t\tsetSitesLabels(res.labels);\r\n\t\t\t\tsetSitesLabelsLoaded(true);\r\n\t\t\t}\r\n\t\t\tcatch (err) {\r\n\t\t\t\tlogs.error(page.PageContext, 'PageContext', ErrorMessages.resource, err,{eventId:ErrorCodes.PageContext});\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst retreiveResourceFooter = async (resource) => {\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await RETRIEVALSERVICES.retrieveResource(context, resource);\r\n\t\t\t\tlogs.debug(page.PageContext, 'retreiveResourceFooter', \"retreiveResourceFooter:Context, res \", context, res);\r\n\t\t\t\tsetFooterLinks(res.links.links);\r\n\t\t\t}\r\n\t\t\tcatch (err) {\r\n\t\t\t\tlogs.error(page.PageContext, 'retreiveResourceFooter', ErrorMessages.footer, err,{eventId:ErrorCodes.PageContext});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!CONTEXTHELPERS.isSameLanguage(previousLanguage, language) || sitesLabelsLoaded==false) {\r\n\t\t\tretreiveResourceLabels(\"labels\");\r\n\t\t\tretreiveResourceFooter(\"footer\");\r\n\r\n\t\t\tsetPreviousLanguage(language);\r\n\t\t}\r\n\t\t\r\n\t}, [language,sitesLabelsLoaded]);//eslint-disable-line\r\n\r\n\t//TEMPORARY LOAD OF SYNONYMS - To be removed when we deturmine where they will come from\r\n\t// Load settings and member firm configuration [wan tto do this first as it may not need to be done on landing page!]\r\n\tuseEffect(() => {\r\n\t\t//TODO: When search is merged, and we have the page context owning the url/mf/lang/etc, then we should ONLY load the Synonyms when we are \"past\" the catalog page, i.e. we will have knowledge domain!\r\n\t\t//\totherwise do not load it\r\n\t\t//FOR NOW - we will just have it populated everywhere!\r\n\t\tsetSynonyms([\r\n\t\t\t\"AAG,AICPA Audit and Accounting Guides\",\r\n\t\t\t\"AAM,Audit Approach Manual\",\r\n\t\t\t\"ABCTOD,Material Class of Transactions Account Balance Disclosure\",\r\n\t\t\t\"ACL,Audit Command Language\",\r\n\t\t\t\"AERS,Audit and Enterprise Risk Services\",\r\n\t\t\t\"AICPA,American Institute of Certified Public Accountants\",\r\n\t\t\t\"AIN,AICPA Accounting Interpretations\",\r\n\t\t\t\"APB,Accounting Principles Board Opinions\",\r\n\t\t\t\"APM,Audit Planning Memorandum\",\r\n\t\t\t\"AQA,Audit Quality Alerts\",\r\n\t\t\t\"ARB,Accounting Research Bulletins\",\r\n\t\t\t\"ARL,Audit Risk Leader\",\r\n\t\t\t\"ASC,Accounting Standards Codification\",\r\n\t\t\t\"ASM,Audit Summary Memorandum\",\r\n\t\t\t\"ASU,Accounting Standards Update\",\r\n\t\t\t\"C&M,Clients Markets\",\r\n\t\t\t\"CAATs,Computer Assisted Audit Techniques\",\r\n\t\t\t\"CEO,Chief Executive Officer\",\r\n\t\t\t\"CFO,Chief Financial Officer\",\r\n\t\t\t\"CFRR,SEC Financial Reporting Releases\",\r\n\t\t\t\"CGU,Cash generating unit\",\r\n\t\t\t\"CoCo,Criteria of Control\",\r\n\t\t\t\"COSO,Committee of Sponsoring Organizations\",\r\n\t\t\t\"CPE,Continuing Professional Education\",\r\n\t\t\t\"CPI,Consumer Price Index\",\r\n\t\t\t\"DAC,Deferred Acquisition Costs\",\r\n\t\t\t\"DCCS,Deloitte Conflict Checking System\",\r\n\t\t\t\"DESC,Deloitte Entity Search Compliance\",\r\n\t\t\t\"DGC,Designated Global Client\",\r\n\t\t\t\"DGSL,Deloitte Global Services Limited\",\r\n\t\t\t\"DIG,Derivatives Implementation Group Issues\",\r\n\t\t\t\"DPM,DTTL Policies Manual\",\r\n\t\t\t\"DPM,Deloitte Policy Manual\",\r\n\t\t\t\"DTTL,Deloitte Touche Tohmatsu Limited\",\r\n\t\t\t\"DTTS,Deloitte Touche Tohmatsu Services\",\r\n\t\t\t\"EDA,Exploratory Data Analysis\",\r\n\t\t\t\"EDGAR,Electronic Data Gathering Analysis and Retrieval\",\r\n\t\t\t\"EITF,Emerging Issues Task Force Issues\",\r\n\t\t\t\"EMTN,Euro Medium Term Note\",\r\n\t\t\t\"EPS,Earning Per Share\",\r\n\t\t\t\"EQAR,Engagement Quality Assurance Review\",\r\n\t\t\t\"EQCR,Engagement Quality Control Review\",\r\n\t\t\t\"ERS,Enterprise Risk Services\",\r\n\t\t\t\"ESOP,Employee Stock Option Plan\",\r\n\t\t\t\"EU,European Union\",\r\n\t\t\t\"FAQs,Frequently Asked Questions\",\r\n\t\t\t\"FAS,Financial Advisory Services\",\r\n\t\t\t\"FAS,FASB Statements of Financial Accounting Standards\",\r\n\t\t\t\"FIFO,First In First Out\",\r\n\t\t\t\"FIN,FASB Interpretations\",\r\n\t\t\t\"FRC,Financial Reporting Council\",\r\n\t\t\t\"FRS,Financial Reporting Standard\",\r\n\t\t\t\"FRRP,Financial Reporting Review Panel\",\r\n\t\t\t\"FSA,Financial Services Authority\",\r\n\t\t\t\"FSP,FASB Staff Positions\",\r\n\t\t\t\"FTB,FASB Technical Bulletins\",\r\n\t\t\t\"FV,Fair Value\",\r\n\t\t\t\"GAAP,Generally Accepted Accounting Principles\",\r\n\t\t\t\"GASB,Governmental Accounting Standards Board\",\r\n\t\t\t\"GCRB,Global Conflicts Resolution Board\",\r\n\t\t\t\"GDCs,Global Delivery Centers\",\r\n\t\t\t\"GDRs,Global Depositary Receipts\",\r\n\t\t\t\"GEN,General Policies Manual\",\r\n\t\t\t\"GHCS,Global Hosting Centers\",\r\n\t\t\t\"GIMS,Group Independence Monitoring System\",\r\n\t\t\t\"GIOS,Global IFRS and Offerings Services group\",\r\n\t\t\t\"GPPC,Global Public Policy Committee\",\r\n\t\t\t\"GSO,Global Security Office\",\r\n\t\t\t\"GSR,Global Strategic Relationship\",\r\n\t\t\t\"GTAs,Global Tax Advisories\",\r\n\t\t\t\"HTM,Held to maturity\",\r\n\t\t\t\"IAASB,The International Auditing and Assurance Standards Board\",\r\n\t\t\t\"IAPS,International Auditing Practice Statement\",\r\n\t\t\t\"IAS,International Accounting Standards\",\r\n\t\t\t\"IASB,International Accounting Standards Board\",\r\n\t\t\t\"IASC,International Accounting Standards Committee\",\r\n\t\t\t\"IBNR,Incurred But Not Reported\",\r\n\t\t\t\"IFAC,International Federation of Accountants\",\r\n\t\t\t\"IFRIC,International Financial Reporting Interpretations Committee\",\r\n\t\t\t\"IFRS,International Financial Reporting Standards\",\r\n\t\t\t\"IFV,Internal Fair Value\",\r\n\t\t\t\"IIA,The Institute of Internal Auditors\",\r\n\t\t\t\"IND,Industry\",\r\n\t\t\t\"IPE,Information Produced by the Entity\",\r\n\t\t\t\"IPMA,International Primary Market Association\",\r\n\t\t\t\"IPSAS,International Public Sector Accounting Standard\",\r\n\t\t\t\"IR,SEC Interpretive Releases\",\r\n\t\t\t\"ISA,International Standards on Auditing\",\r\n\t\t\t\"ISACA,Information Systems Audit and Control Association\",\r\n\t\t\t\"ISAE,International Standard for Assurance Engagements\",\r\n\t\t\t\"ISQC,International Standard on Quality Control\",\r\n\t\t\t\"ISRE,International Standard on Review Engagements\",\r\n\t\t\t\"ISRS,International Standards on Related Services\",\r\n\t\t\t\"IT,Information Technology\",\r\n\t\t\t\"JEDAR,Journal Entry Data Analysis Routines\",\r\n\t\t\t\"JET,Journal Entry Testing\",\r\n\t\t\t\"JCE,Joint controlled entity\",\r\n\t\t\t\"JV,Joint Venture\",\r\n\t\t\t\"KYC,Know Your Client\",\r\n\t\t\t\"LCSP,Lead Client Service Partner\",\r\n\t\t\t\"LIBOR,London Interbank Offered Rate\",\r\n\t\t\t\"LIFO,Last In First Out\",\r\n\t\t\t\"M&A,Mergers and Acquisitions\",\r\n\t\t\t\"MFSC,Member Firm Selected Clients\",\r\n\t\t\t\"MP,Monetary Precision\",\r\n\t\t\t\"MSA,Master Services Agreement\",\r\n\t\t\t\"MUS,Monetary Unit Sampling\",\r\n\t\t\t\"NASDAQ,National Association of Securities Dealers Automated Quotation System\",\r\n\t\t\t\"NAV,Net Asset Value\",\r\n\t\t\t\"NFP,Not for Profit Entity\",\r\n\t\t\t\"NPPD,National Professional Practice Director\",\r\n\t\t\t\"NRV,Net Realisable Value\",\r\n\t\t\t\"OCEO,Office of the Chief Executive Officer\",\r\n\t\t\t\"OSS,Other Specialized Services\",\r\n\t\t\t\"PB,AICPA Practice Bulletins\",\r\n\t\t\t\"PCAOB,Public Company Accounting Oversight Board\",\r\n\t\t\t\"PII,Personally Identifiable Information\",\r\n\t\t\t\"PM,Performance Materiality\",\r\n\t\t\t\"PPD,Professional Practice Directors\",\r\n\t\t\t\"PRD,Practice Review Director\",\r\n\t\t\t\"PSE,Public Sector Enterprise\",\r\n\t\t\t\"Q&A,Questions and Answers\",\r\n\t\t\t\"R&D,Research and Development\",\r\n\t\t\t\"RAS,Reporting Advisory Services\",\r\n\t\t\t\"RCP,Regulatory Contact Partner\",\r\n\t\t\t\"REIT,Real Estate Investment Trust\",\r\n\t\t\t\"REP,Accountants Reports Manual\",\r\n\t\t\t\"RFI,Request for Information\",\r\n\t\t\t\"RFP,Request for Proposal\",\r\n\t\t\t\"RFQ,Request for Qualification\",\r\n\t\t\t\"RFQ,Request for Quotation\",\r\n\t\t\t\"ROI,Return on investment\",\r\n\t\t\t\"ROMM,Risk of material Misstatement\",\r\n\t\t\t\"RPI,Retail price index\",\r\n\t\t\t\"RRL,Reputation and Risk Leader\",\r\n\t\t\t\"RWG,Regulatory Working Group\",\r\n\t\t\t\"SAB,Staff Accounting Bulletin\",\r\n\t\t\t\"SAB,SEC Staff Accounting Bulletins\",\r\n\t\t\t\"SAP,Substantive Analytical Procedures\",\r\n\t\t\t\"SARBOX,Sarbanes Oxley\",\r\n\t\t\t\"SAS,Statement on Auditing Standards\",\r\n\t\t\t\"SEC,Securities and Exchange Commission\",\r\n\t\t\t\"SIC,Standing Interpretations Committee\",\r\n\t\t\t\"SMR,Subject matter Resource\",\r\n\t\t\t\"SOP,Statement of Position\",\r\n\t\t\t\"SPE,Special Purpose Entity\",\r\n\t\t\t\"SSAE,Statement on Standards for Attestation Engagements\",\r\n\t\t\t\"SSARS,Statement on Standards for Accounting and Review Services\",\r\n\t\t\t\"SX,SEC Regulation S X\",\r\n\t\t\t\"TIS,AICPA Technical Inquiry Service\",\r\n\t\t\t\"TOC,Test of controls\",\r\n\t\t\t\"TOD,Tests of Details\",\r\n\t\t\t\"TPA,Technical Practice Aids\",\r\n\t\t\t\"TS,Two Strata\",\r\n\t\t\t\"TSST,Transaction Services Standards Team\",\r\n\t\t\t\"UEE,Understand the entity and its environment\",\r\n\t\t\t\"VAL Manual,Valuation Practice Manual\",\r\n\t\t\t\"VAT,Value added tax\",\r\n\t\t\t\"VIE,Variable Interest Entity\",\r\n\t\t\t\"CV,Carrying Value\",\r\n\t\t\t\"ED,Exposure draft\",\r\n\t\t\t\"DP,Discussion paper\",\r\n\t\t\t\"MD&A,Management's discussion and analysis\",\r\n\t\t\t\"P&L,Profit and loss\",\r\n\t\t\t\"AS,Auditing standard\",\r\n\t\t\t\"ASR,SEC Accounting Series Release\",\r\n\t\t\t\"CAQ,Center for Audit Quality\",\r\n\t\t\t\"C&DI,SEC Compliance and Disclosure Interpretation\",\r\n\t\t\t\"DTL,deferred tax liability\",\r\n\t\t\t\"EBITDA,earnings before income taxes depreciation and amortization\",\r\n\t\t\t\"FDA,Food and Drug Administration\",\r\n\t\t\t\"GA,Group Audit\",\r\n\t\t\t\"GSE,government sponsored entity\",\r\n\t\t\t\"ICFR,internal control over financial reporting\",\r\n\t\t\t\"IPO,initial public offering\",\r\n\t\t\t\"SG&A,selling general and administrative expense\",\r\n\t\t\t\"XBRL,eXtensible Business Reporting Language\",\r\n\t\t\t\"AU,U.S. Auditing Standards\",\r\n\t\t\t\"FASAB,Federal Accounting Standards Advisory Board\",\r\n\t\t\t\"GAAS,generally accepted auditing standards\",\r\n\t\t\t\"IAS,International Accounting Standard\",\r\n\t\t\t\"PCC,Private Company Council\",\r\n\t\t\t\"BS,Balance Sheet\",\r\n\t\t\t\"SCF,Statement of Cash Flows\"\r\n\t\t]);\r\n\r\n\t\t//USAGE:FE\r\n\t\t//import { usePageContext, usePageContextLabels, usePageContextSynonyms } from '../../contexts/PageContext';\r\n\t\t//const { getSynonyms } = usePageContextSynonyms();\r\n\t\t//console.log(\"synonyms.AICPA\", getSynonyms(\"AICPA\"));\r\n\t\t//console.log(\"synonyms.Q&A\", getSynonyms(\"Q&A\"));\r\n\t\t//console.log(\"synonyms.q&a\", getSynonyms(\"q&a\"));\r\n\t\t//console.log(\"synonyms.Profit and loss\", getSynonyms(\"Profit and loss\"));\r\n\t\t//console.log(\"synonyms.Profit and loss\", getSynonyms(\"PROFIT AND LOSS\"));\r\n\t\t//console.log(\"synonyms.GAAS\", getSynonyms(\"GAAS\"));\r\n\t\t//console.log(\"synonyms.gaas\", getSynonyms(\"gaas\"));\r\n\t}, []);\r\n\r\n\t//TODO:BDP: Move tier into context? (as this is also done inside the initialization of the context)\r\n\tuseLayoutEffect(() => {\r\n\t\t/*\r\n\t\tAll the functionality in this effect is to make sure we are grabbing the correct tier value (for uk accounting dropdown) when the app loads\r\n\t\tOn a high level the process is as follows:\r\n\r\n\t\t(Important info: Every time the user makes a selection from the UK dropdown we are setting that value in both local and session storage)\r\n\r\n\t\t- Set an item in local storage ('addStorageEventToSeeIfOtherTabsExist')\r\n\t\t- the storage event listeners in any other tabs (if they exist) will respond to this event\r\n\t\t- The other tabs (if they exist) will respond back to the original tab (the new one), by adding their own local storage event ('otherTabExists')\r\n\t\t- If another tab exists, we are going to update a ref value (isThereAnotherTabOpen) and set it to true to acknowledge we know another tab exists\r\n\t\t- We are momentarily not going to do anything with this information and instead do the following:\r\n\t\t- Check if we've set a tier value in session storage\r\n\t\t- If we have, we're going to set the tier value to the session storage value and return early\r\n\t\t- If not, we are going to check if there is a value in local storage,\r\n\t\t- If there is NOT one, we are going to just set the tier to the default value (null) and return early\r\n\t\t- If there IS a local storage val, we have to check if the val is from a previous session or not\r\n\t\t- This is where checking whether other tabs exist comes into play,\r\n\t\t- We add a setTimeout that should fire in 1 second to check if the storage event listener logic has determined if there are other tabs\r\n\t\t- If before the setTimeout fires no storage event has fired with the key 'otherTabExists' we are making the assumption no other tabs exist\r\n\t\t- We are therefore not going to use the local storage value, as we think it's from a previous session,\r\n\t\t\tand we're going to set the tier to the default value and clear the local storage value\r\n\t\t- If another tab exists though, we are going to use the value from local storage\r\n\r\n\t\tUntil hasGottenCorrectTierValue is set to true the layout's body is not going to load\r\n\t\tThis prevents us from having components render with the incorrect tier value and having to rerender after the tier value is initiallity set\r\n\t\t*/\r\n\r\n\t\tlet defaultVal = null;\r\n\t\tif (!UTILITIESHELPER.isStringNullorEmpty(memberFirm) && !UTILITIESHELPER.isStringNullorEmpty(knowledgeDomain)) {\r\n\t\t\tdefaultVal = {\r\n\t\t\t\t[memberFirm]: { [knowledgeDomain]: [] }\r\n\t\t\t};\r\n\t\t}\r\n\t\tconst setCorrectVal = (tier) => {\r\n\t\t\tif (!tier) { tier = defaultVal; }\r\n\t\t\telse if (!tier[memberFirm]) { tier[memberFirm] = { [knowledgeDomain]: [] } }\r\n\t\t\telse if (!tier[memberFirm][knowledgeDomain]) { tier[memberFirm][knowledgeDomain] = [] };\r\n\t\t\tsetTier(tier);\r\n\t\t\tsetHasGottenCorrectTierValue(true);\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tif (!UTILITIESHELPER.isStringNullorEmpty(memberFirm) && !UTILITIESHELPER.isStringNullorEmpty(knowledgeDomain)) {\r\n\t\t\t\tif (peerTestCompleted) {\r\n\t\t\t\t\t// check if session storage tier val exists\r\n\t\t\t\t\tconst sessionVal = TierHelpers.getSessionStorage();\r\n\t\t\t\t\tif (sessionVal) {\r\n\t\t\t\t\t\tsetCorrectVal(sessionVal);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// check if local storage val, if not, we know we should just set the default val\r\n\t\t\t\t\tconst localVal = TierHelpers.getLocalStorage();\r\n\t\t\t\t\tif (!localVal) {\r\n\t\t\t\t\t\tsetCorrectVal(defaultVal);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (hasPeers) {\r\n\t\t\t\t\t\tconst val = TierHelpers.getLocalStorage();\r\n\t\t\t\t\t\tsetCorrectVal(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tTierHelpers.removeLocalStorage();\r\n\t\t\t\t\t\tsetCorrectVal(defaultVal)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err) {\r\n\t\t\tsetCorrectVal(defaultVal);\r\n\t\t}\r\n\t}, [peerTestCompleted, hasPeers, memberFirm, knowledgeDomain]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (hasGottenCorrectTierValue) {\r\n\t\t\tTierHelpers.setSessionStorage(tier);\r\n\t\t}\r\n\t}, [tierVal, hasGottenCorrectTierValue]);//eslint-disable-line\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tlet defaultVal = null;\r\n\t\tif (!UTILITIESHELPER.isStringNullorEmpty(memberFirm) && !UTILITIESHELPER.isStringNullorEmpty(knowledgeDomain)) {\r\n\t\t\tdefaultVal = {\r\n\t\t\t\t[memberFirm]: { [knowledgeDomain]: [] }\r\n\t\t\t};\r\n\t\t}\r\n\t\tconst setCorrectVal = (industry) => {\r\n\t\t\tif (!industry) { industry = defaultVal; }\r\n\t\t\telse if (!industry[memberFirm]) { industry[memberFirm] = { [knowledgeDomain]: [] } }\r\n\t\t\telse if (!industry[memberFirm][knowledgeDomain]) { industry[memberFirm][knowledgeDomain] = [] };\r\n\t\t\tsetIndustry(industry);\r\n\t\t\tsetHasVerifiedIndustry(true);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tif (!UTILITIESHELPER.isStringNullorEmpty(memberFirm) && !UTILITIESHELPER.isStringNullorEmpty(knowledgeDomain)) {\r\n\t\t\t\tif (peerTestCompleted) {\r\n\t\t\t\t\t// check if session storage val exists\r\n\t\t\t\t\tconst sessionVal = IndustryHelpers.getSessionStorage();\r\n\t\t\t\t\tif (sessionVal) {\r\n\t\t\t\t\t\tsetCorrectVal(sessionVal);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// check if local storage val, if not, we know we should just set the default val\r\n\t\t\t\t\tconst localVal = IndustryHelpers.getLocalStorage();\r\n\t\t\t\t\tif (!localVal) {\r\n\t\t\t\t\t\tsetCorrectVal(defaultVal);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (hasPeers) {\r\n\t\t\t\t\t\tconst val = IndustryHelpers.getLocalStorage();\r\n\t\t\t\t\t\tsetCorrectVal(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tIndustryHelpers.removeLocalStorage();\r\n\t\t\t\t\t\tsetCorrectVal(defaultVal)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (err) {\r\n\t\t\tsetCorrectVal(defaultVal);\r\n\t\t}\r\n\t}, [peerTestCompleted, hasPeers, memberFirm, knowledgeDomain]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (hasVerifiedIndustry) {\r\n\t\t\tIndustryHelpers.setSessionStorage(industry);\r\n\t\t}\r\n\t}, [industryVal, hasVerifiedIndustry]);//eslint-disable-line\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tStorageHelpers.setLocalStorageJSON('rp-selected-catalogs', selectedCatalogs);\r\n\t}, [selectedCatalogs]);\r\n\r\n\tconst store = {\r\n\t\t//Global States Helper Values:\r\n\t\tannotateTerms, setAnnotateTerms,\r\n\t\tannotationPanelOpen, setAnnotationPanelOpen,\r\n\t\tcategoryOn, setCategoryOn,\r\n\t\tcompareVersionParam,\r\n\t\tcurrentSearch, searchPhrase, setSearchPhrase,\r\n\t\tpageURLWhereSearchInnitiated, setPageURLWhereSearchInnitiated,\r\n\t\tdebugLabelsAndMT,\r\n\t\tdownloadPanelOpen, setDownloadPanelOpen,\r\n\t\tbookmarkOpen, setBookmarkOpen,\r\n\t\thasGottenCorrectTierValue,\r\n\t\thasVerifiedIndustry,\r\n\t\tisCatalogPage,\r\n\t\tisFolioPage,\r\n\t\tisSearchPage,\r\n\t\tisJournalPage,\r\n\t\tisJournalListing,\r\n\t\tisRelatedLinksPage,\r\n\t\tisFolioSectionlisting,\r\n\t\tisSpinePage,\r\n\t\tisWormholeActive,\r\n\t\tfooterLinks,\r\n\t\tpageDescription, setPageDescription,\r\n\t\tpageTitle, setPageTitle,\r\n\t\tselectedCatalogs, setSelectedCatalogs,\r\n\t\tselectedLanguageObject, //--> context.selectedLanguageObject !!\r\n\r\n\t\t//Global Access Helpers:\r\n\t\tcontextMemberFirm,\r\n\t\tgetMemberFirmID,\r\n\t\tgetMemberFirmIDs,\r\n\t\tgetMemberFirmLanguages,\r\n\t\tgetMemberFirmDefaultLanguage,\r\n\t\tgetMemberFirmSettings,\r\n\t\tisMemberFirmsLoaded,\r\n\t\tmemberFirms,\r\n\t\tsettings,\r\n\t\tsitesLabels,\r\n\t\tsitesLabelsLoaded,\r\n\t\tsynonyms,\r\n\r\n\t\t//Replace these with context ... context.language / context.memberFirm / etc\r\n\t\tcontext,\r\n\t\tlanguage,//: context.language,\r\n\t\tmemberFirm,//: context.memberFirm,\r\n\t\tknowledgeDomain,\r\n\t\tpageControllerType,\r\n\t\tpageCollectionName,\r\n\t\tindustry, setIndustry,\r\n\t\tindustryVal,\r\n\t\ttier, setTier,\r\n\t\ttierVal,\r\n\t\tisNavigatedFromCollectionSearch,\r\n\t\tsetIsNavigatedFromCollectionSearch,\r\n\t\tcurrentTier, setCurrentTier, currentIndustry, setCurrentIndustry,\r\n\t\t//MessageNotification\r\n\t\tnotification, setNotification,\r\n\t\tsetSitesLabelsLoaded,\r\n\t\t//ChatBot\r\n\t\tisResearchAssistantEnabled, setIsResearchAssistantEnabled,\r\n\t\tcountryKDSettings, setCountryKDSettings,\r\n\t\tisUserProfileLoaded, setUserProfileLoaded,\r\n\t\tisCountryKDSettingsLoaded, setCountryKDSettingsLoaded,\r\n\t\tresearchAssistantMemeberfirms,setResearchAssistantMemberfirms,\r\n\t\tuserCountry, setUserCountry,\r\n\t\t//Language\r\n\t\tselectedLanguage, setSelectedLanguage,\r\n\t\ttaxonomyMemberFirmContext,\r\n\t\tsetTaxonomyMemberFirmContext,\r\n\t\tallIndustry,\r\n\t\tsetAllIndustry,\r\n\t\tallTier,\r\n\t\tsetAllTier,\r\n\t\tregion\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default PageContextProvider\r\n","function getHashFromContext(pageContext) {\r\n return \"guidance_GUID-8F9EF5B7-6C69-4ED0-9910-F77509AB2B18\";\r\n}\r\n\r\nfunction getItemsArray(item) {\r\n if (Array.isArray(item) && item.length > 0) {\r\n return item.map(node => {\r\n let agg = [node];\r\n if (Array.isArray(node.subItems) && node.subItems.length) {\r\n agg = [...agg, getItemsArray(node.subItems).flat()];\r\n }\r\n return agg.flat();\r\n }).flat();\r\n }\r\n else if (item.hasOwnProperty('subItems') && item.subItems.length > 0) {\r\n return item.subItems.map(node => {\r\n let agg = [node];\r\n if (Array.isArray(node.subItems) && node.subItems.length) {\r\n agg = [...agg, getItemsArray(node.subItems).flat()];\r\n }\r\n return agg.flat();\r\n }).flat();\r\n }\r\n else if (item.hasOwnProperty('children') && item.children.length > 0) {\r\n return item.children.map(node => {\r\n let agg = [node];\r\n if (Array.isArray(node.children) && node.children.length > 0) {\r\n agg = [...agg, getItemsArray(node.children).flat()];\r\n }\r\n return agg.flat();\r\n }).flat();\r\n }\r\n}\r\n\r\nfunction getSelectedTocNodeByContext(root, pageContext) {\r\n if (!root) return null;\r\n if (root.isSelected) return root;\r\n\r\n const contextHash = getHashFromContext(pageContext);\r\n const flattenedHashes = getItemsArray(root);\r\n console.log(\"find context hash in root:\", contextHash, flattenedHashes)\r\n \r\n const selectedNode = flattenedHashes.find(x => x.tocHash === contextHash);\r\n console.log(\"selected node by context hash:\", selectedNode);\r\n return selectedNode ?? null;\r\n}\r\n\r\nfunction getSelectedTocNode(root) {\r\n if (!root) return null;\r\n if (root.isSelected) return root;\r\n\r\n const selectedNode = getItemsArray(root).find(x => x.isSelected);\r\n return selectedNode ?? null;\r\n}\r\n\r\nfunction getFlatTocArray(root) {\r\n if (!root) return null;\r\n\r\n if (root.hasOwnProperty('subItems')) {\r\n return getItemsArray(root);\r\n }\r\n\r\n // Filter out invalid tableOfContents content by checking if tableOfContents object has values or not\r\n Object.values(root).forEach(content => {\r\n content.tableOfContents = content.tableOfContents?.filter(tocContent => tocContent !== null);\r\n });\r\n\r\n const subTocs = Object.values(root)\r\n .filter(value => value.tableOfContents?.length > 0)\r\n .map(value => value.tableOfContents)\r\n .flat()\r\n .map(value => [value, ...getItemsArray(value)])\r\n .flat();\r\n\r\n return subTocs;\r\n}\r\n\r\n\r\nfunction buildTocHashes(root, hash = null) {\r\n function generateHashes(nodes, hash) {\r\n return nodes.map(node => {\r\n node.tocHash = `${hash}_${node.object_id || node.id}`;\r\n \r\n if (Array.isArray(node.subItems) && node.subItems.length > 0) {\r\n node.subItems = generateHashes(node.subItems, node.tocHash);\r\n }\r\n if (Array.isArray(node.children) && node.children.length > 0) {\r\n node.children = generateHashes(node.children, node.tocHash);\r\n }\r\n return node;\r\n })\r\n }\r\n\r\n if (!root) {\r\n return null;\r\n }\r\n\r\n root.tocHash = hash ? `${hash}_${root.id}` : root.id; \r\n if (root.subItems) {\r\n root.subItems = generateHashes(root.subItems, root.tocHash);\r\n }\r\n return root;\r\n}\r\n\r\nfunction buildFolioTocHashes(root, hash = null, basePath = null) {\r\n function generateHashes(nodes, hash,url = null) {\r\n return nodes.map(node => {\r\n node.tocHash = `${hash}_${node.object_id || node.id}`;\r\n node.url = url !== null ? `${url}/${encodeURIComponent(node.title)}/${node.id}` : `${encodeURIComponent(node.title)}/${node.id}`;\r\n if (Array.isArray(node.subItems) && node.subItems.length > 0) {\r\n node.subItems = generateHashes(node.subItems, node.tocHash, node.url);\r\n }\r\n if (Array.isArray(node.children) && node.children.length > 0) {\r\n node.children = generateHashes(node.children, node.tocHash, node.url);\r\n }\r\n return node;\r\n })\r\n }\r\n\r\n if (!root) {\r\n return null;\r\n }\r\n\r\n root.tocHash = hash ? `${hash}_${root.id}` : root.id; \r\n root.url = basePath !==null ? `${basePath}/${root.url}` : `${root.url}`;\r\n if (root.subItems) {\r\n root.subItems = generateHashes(root.subItems, root.tocHash,root.url);\r\n }\r\n return root;\r\n}\r\n\r\nfunction getTocBranchFromHash(root, selectedGuid) {\r\n if (!root) return null;\r\n if (!selectedGuid) return [root];\r\n\r\n function getFlatNodeArray(nodes) {\r\n return nodes.map(node => {\r\n let agg = [node];\r\n if (Array.isArray(node.subItems) && node.subItems.length) {\r\n agg = [...agg, getFlatNodeArray(node.subItems).flat()];\r\n }\r\n return agg.flat();\r\n });\r\n }\r\n\r\n const flatNodeArray = getFlatNodeArray(root.subItems).flat();\r\n flatNodeArray.unshift(root);\r\n\r\n const branchSegments = flatNodeArray.find(x => x.id === selectedGuid)?.tocHash.split('_');\r\n if (!branchSegments) {\r\n return [root];\r\n }\r\n const branch = branchSegments.map(guid => {\r\n return flatNodeArray.find(x => x.id === guid);\r\n })\r\n\r\n return branch;\r\n}\r\n\r\nfunction scrollParentToChild(parent, child) {\r\n if (parent !== undefined && parent !== null && child !== undefined && child !==null) {\r\n var parentRect = parent.getBoundingClientRect();\r\n var parentViewableArea = {\r\n height: parent.clientHeight,\r\n width: parent.clientWidth\r\n };\r\n var childRect = child.getBoundingClientRect();\r\n var isViewable = (childRect.top >= parentRect.top) && (childRect.bottom <= parentRect.top + parentViewableArea.height);\r\n if (!isViewable) {\r\n const scrollTop = childRect.top - parentRect.top;\r\n const scrollBot = childRect.bottom - parentRect.bottom;\r\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\r\n parent.scrollTop += scrollTop;\r\n } else {\r\n parent.scrollTop += (scrollBot + 20);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n getSelectedTocNode,\r\n getSelectedTocNodeByContext,\r\n getItemsArray,\r\n getFlatTocArray,\r\n buildTocHashes,\r\n buildFolioTocHashes,\r\n getTocBranchFromHash,\r\n scrollParentToChild\r\n}","import React, { useState, createContext, useContext, useEffect } from 'react';\r\nimport { useLocation } from 'react-router';\r\nimport { usePageContext } from '../contexts/PageContext';\r\n\r\nimport TocHelpers from '../helpers/TocHelpers';\r\nimport CONTEXTHELPERS from '../helpers/ContextHelpers';\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\n\r\nexport const TocContext = createContext()\r\nexport const useTocContext = () => useContext(TocContext)\r\n\r\nconst TocContextProvider = (props) => {\r\n const children = props?.children || null;\r\n const [toc, setToc] = useState(null);\r\n const [hasSelectedTocItems, setHasSelectedTocItems] = useState(true);\r\n const [tocAnnotations, setTocAnnotations] = useState(null);\r\n const [tocIconBookmark,setTocIconBookmark]=useState(null);\r\n const [flattenedToc, setFlattenedToc] = useState(null);\r\n const [pubInfo, setPubInfo] = useState(((props?.pubInfo !== undefined || props?.pubInfo !== null) ? props.pubInfo : {}));\r\n const [selectedItemTOC, setSelectedItemTOC] = useState({});\r\n const { context } = usePageContext();\r\n const location = useLocation();\r\n //this useState variable is used to identify landing page selection from crumbtrail\r\n const [isLandingPageSelected, setIsLandingPageSelected] = useState(false);\r\n const [tocItemTogglesStatus, setTocItemTogglesStatus] = useState([]);\r\n\r\n useEffect(() => {\r\n if (toc) {\r\n setFlattenedToc(TocHelpers.getFlatTocArray(toc));\r\n }\r\n }, [toc]);\r\n\r\n useEffect(() => {\r\n if (toc) {\r\n if (decodeURI(location?.pathname) === decodeURI(selectedItemTOC?.item?.url)) {\r\n //console.log(\"TocContext::useEffect:location:selectedItemTOC already the same as URL\");\r\n return;\r\n } \r\n const matchedTocItem = flattenedToc?.find(x => decodeURI(location.pathname) === decodeURI(x?.url));\r\n if (matchedTocItem) {\r\n //console.log(\"TocContext::useEffect:location:FOUND selected TOC item with location.pathname:\", location.pathname, matchedTocItem);\r\n setSelectedItemTOC({ item: matchedTocItem });\r\n }\r\n }\r\n }, [location]);//eslint-disable-line\r\n\r\n const store = {\r\n flattenedToc,\r\n pubInfo,\r\n toc,\r\n tocAnnotations,\r\n selectedItemTOC,\r\n tocIconBookmark,\r\n setSelectedItemTOC,\r\n setPubInfo,\r\n setToc,\r\n setTocAnnotations,\r\n setTocIconBookmark,\r\n isLandingPageSelected,\r\n setIsLandingPageSelected,\r\n tocItemTogglesStatus,\r\n setTocItemTogglesStatus,\r\n hasSelectedTocItems,\r\n setHasSelectedTocItems \r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default TocContextProvider","import React, { useState, createContext, useEffect, useContext } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { get } from 'lodash';\r\nimport CONTEXTHELPERS from '../helpers/ContextHelpers';\r\nimport TOCHELPERS from '../helpers/TocHelpers';\r\nimport { usePageContext } from '../contexts/PageContext';\r\nimport { useTocContext } from './TocContext';\r\n\r\nexport const GuidebookTocContext = createContext()\r\nexport const useGuidebookTocContext = () => useContext(GuidebookTocContext)\r\n\r\nconst GuidebookTocContextProvider = ({ children }) => {\r\n const { context } = usePageContext();\r\n const navigate = useNavigate();\r\n const [guidebookSectionsLoaded, setGuidebookSectionsLoaded] = useState(0); //A counter for each time we have a loaded section loaded\r\n const [guidebookPublication, setGuidebookPublication] = useState({}); //The res of the retrieveGuidebook API call\r\n const [guidebookSections, setGuidebookSections] = useState([]); //The array of sections within the guidebookPublication\r\n const [guidebookTocLoaded, setGuidebookTocLoaded] = useState(false); //When the TOC loads, and HAS contnet, then this will become true (otherwise stays false and wormholes)\r\n const [guidebookToc, setGuidebookToc] = useState({});\r\n const [guidebookArticle, setGuidebookArticle] = useState({}); \r\n const { hasSelectedTocItems } = useTocContext();\r\n\r\n const getGuidebookSectionData = (sectionFriendlyPath) => {\r\n //console.log(\"getGuidebookSectionData::guidebookSections\", sectionFriendlyPath, guidebookTocSections);\r\n return guidebookSections?.find(x => x.sectionFriendlyPath === sectionFriendlyPath);\r\n //return get(guidebookSections, `${sectionId}`, null);\r\n }\r\n\r\n const setGuidebookSectionData = (sectionFriendlyPath, newSectionData) => {\r\n //Remove the \"null\" toc items from the array of TOC items\r\n newSectionData.tableOfContents = newSectionData.tableOfContents.filter(x => x !== null)\r\n\r\n const oldSection = getGuidebookSectionData(sectionFriendlyPath);\r\n\r\n oldSection.hasBeenFetched = true;\r\n oldSection.context = newSectionData.context;\r\n \r\n if (Array.isArray(newSectionData.tableOfContents) && newSectionData.tableOfContents.length > 0) {\r\n let basePath=`${context.pageBaseURL}`;\r\n //if new, then we need to look at buildFolioTocHashes\r\n //oldSection.tableOfContents = newSectionData.tableOfContents.map(tocs => TOCHELPERS.buildTocHashes(tocs, sectionFriendlyPath, basePath));\r\n oldSection.tableOfContents = newSectionData.tableOfContents.map(tocs => TOCHELPERS.buildFolioTocHashes(tocs, sectionFriendlyPath, basePath));\r\n }\r\n }\r\n\r\n const allSectionsLoadedAndHaveToc = () => {\r\n //First check that all sections are loaded...\r\n // as we ONLY call this once we have fetched all sections\r\n // this loop SHOULD never actually return false, as ALL sections\r\n // should have been fetched (true) already!\r\n\r\n //eslint-disable-next-line\r\n guidebookSections.map(sectionItem => {\r\n if (!sectionItem.hasBeenFetched || sectionItem.hasBeenFetched !== true) {\r\n //console.log(\"GuidebookTocContextProvider::allSectionsLoadedAndHaveToc:This section is NOT fetched yet, so cannot check for all having toc content yet:\", sectionItem.sectionFriendlyPath, sectionItem);\r\n return false;\r\n }\r\n });\r\n //We need at least ONE section that DOES have a toc to be considered that we \"have\" a TOC!\r\n let atLeastOneSectionHasToc = false;\r\n guidebookSections.forEach(sectionItem => {\r\n if (sectionItem.tableOfContents !== null && Array.isArray(sectionItem.tableOfContents) && sectionItem.tableOfContents.length > 0) {\r\n //console.log(\"GuidebookTocContextProvider::allSectionsLoadedAndHaveToc:This section has been fetched and HAS toc\", sectionItem.sectionFriendlyPath, sectionItem);\r\n atLeastOneSectionHasToc = true;\r\n return; //We can break, as we only need ONE true!\r\n }\r\n });\r\n\r\n //console.log(\"GuidebookTocContextProvider::allSectionsLoadedAndHaveToc:All sections have been fetched, and atLeastOneSectionHasToc === \", atLeastOneSectionHasToc);\r\n return atLeastOneSectionHasToc;\r\n }\r\n\r\n useEffect(() => {\r\n //console.log(\"GuidebookTocContextProvider::guidebookPublication:\", guidebookPublication);\r\n const guidebookSections = get(guidebookPublication, 'guideBook.Content.guidebookSections', []);\r\n if (!Array.isArray(guidebookSections) || guidebookSections.length > 0) {\r\n //console.log(\"GuidebookTocContextProvider::setGuidebookSections with the recently updated/retreived guidebookPublication:\", guidebookPublication);\r\n setGuidebookSections(guidebookSections);\r\n }\r\n }, [guidebookPublication])\r\n\r\n\r\n useEffect(() => {\r\n if (guidebookSections && Array.isArray(guidebookSections) && guidebookSections.length > 0) {\r\n if (guidebookSectionsLoaded === guidebookSections.length) {\r\n //console.log(\"GuidebookTocContextProvider::useEffect:guidebookSectionsLoaded and section-count has changed/incremented ... Check here for completeness toc\", guidebookSectionsLoaded, guidebookSections.length, guidebookSections);\r\n\r\n //If we must worm hole out...\r\n if (allSectionsLoadedAndHaveToc()) {\r\n setGuidebookTocLoaded(true); \r\n if (!hasSelectedTocItems){\r\n navigate(context.pageBaseURL + \"?wormhole=true\");\r\n }\r\n }\r\n else {\r\n //When we have no TOC in any section, we wormhole out.\r\n //console.log('GuidebookTocContextProvider::useEffect:worm-hole out.', CONTEXTHELPERS.getFallbackUrl(window.location.href, false));\r\n navigate(CONTEXTHELPERS.getFallbackUrl(window.location.href, false));\r\n }\r\n }\r\n }\r\n }, [guidebookSectionsLoaded]) //eslint-disable-line\r\n\r\n const store = {\r\n //Functions\r\n setGuidebookSectionsLoaded,\r\n getGuidebookSectionData, setGuidebookSectionData,\r\n //Properties\r\n guidebookPublication, setGuidebookPublication,\r\n guidebookSections, setGuidebookSections,\r\n guidebookToc, setGuidebookToc,\r\n guidebookTocLoaded, setGuidebookTocLoaded,\r\n guidebookArticle, setGuidebookArticle\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default GuidebookTocContextProvider","import React, { useState, createContext, useContext, useRef, useEffect } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper'\r\nimport { logs } from '../helpers/log'\r\n\r\nexport const SearchResultContext = createContext()\r\nexport const useSearchResultContext = () => useContext(SearchResultContext)\r\n\r\nconst SearchResultContextProvider = ({ children }) => {\r\n const [searchResults, setSearchResults] = useState([]);\r\n const [filteredSearchResults, setFilteredSearchResults] = useState([]);\r\n const [activeFilters, setActiveFilters] = useState([]);\r\n const [areSearchResultsLoading, setAreSearchResultsLoading] = useState(true);\r\n const [searchTimeStamp, setSearchTimeStamp] = useState(Date.now());\r\n const [tocControl, setTocControl] = useState([]);\r\n const [showCollectionSearchLimitNotification, setShowCollectionSearchLimitNotification] = useState(false);\r\n const [collectionSearchLimit, setCollectionSearchLimit] = useState(0);\r\n const [allButtonsOn, setAllButtonsOn] = useState(false);\r\n const [allButtonText, setAllButtonText] = useState(false);\r\n const [isTriggerAllOnOff, setIsTriggerAllOnOff] = useState(false);\r\n const [isShowAllOnOffButton, setIsShowAllOnOffButton] = useState(false);\r\n //TODO: @Anand - need to make sure that this time-stamp is in place preventing older resutls from overwriting newer results!\r\n // latestRetrieveSearchResultsTimeStampRef is used to prevent a previous search which takes longer than the most recent request\r\n // from overriding the latest request\r\n // It is different than searchTimeStamp, which is when the user submitted the latest search phraee and triggers \r\n // the RetrieveSearchResults function (which itself updates latestRetrieveSearchResultsTimeStampRef)\r\n const latestRetrieveSearchResultsTimeStampRef = useRef(Date.now());\r\n const searchProps = {\r\n eventType: 'search',\r\n searchLocation: window.location.href,\r\n jobTitle: UTILITIESHELPER.getSessionStorage(\"Level\"),\r\n memberFirm: UTILITIESHELPER.getSessionStorage(\"MemberFirm\"),\r\n rpMemberFirm: UTILITIESHELPER.getLocalStorage(\"research-portal-member-firm\")\r\n }\r\n let query = new URLSearchParams(useLocation().search);\r\n const tmeplaterepositories = [\"68169717\", \"58035381\", \"68489711\"];\r\n //Each time the searchResults change we will re-set filteredSearchResults\r\n // that is what is presented (and filtered when required)\r\n useEffect(() => {\r\n setShowCollectionSearchLimitNotification(false);\r\n if (Array.isArray(searchResults) && searchResults.length > 0) {\r\n const searchPhrase = query?.get('searchPhrase');\r\n searchProps.searchText = searchPhrase;\r\n logs.event('search', searchProps);\r\n\r\n //fetch all the toc which is visible and updated \"filterAppliedStateOn\" property based on the value got from \"AvtiveFilters\"\r\n var tempTocControl = UpdateTocControlByActiveFilter();\r\n let pageControllerType = tempTocControl.length > 0 ? tempTocControl[0].pageControllerType : '';\r\n let resultArray = [];\r\n if (tempTocControl.length > 0) {\r\n\r\n tempTocControl.forEach((folioSubjectItemTOC) => {\r\n if (folioSubjectItemTOC.filterAppliedStateOn && folioSubjectItemTOC.visible && folioSubjectItemTOC.resultCount > 0)\r\n resultArray = [...resultArray, ...folioSubjectItemTOC.searchResult];\r\n });\r\n // Result Array which has Search results is not sorted against score instead sorted as per the TOC items list \r\n // Sorting it with descending order of Score value\r\n UTILITIESHELPER.sortArrayDesc(resultArray, 'score');\r\n }\r\n else {\r\n searchResults.forEach(result => {\r\n if (tempTocControl.length > 0) {\r\n\r\n //check for folio\r\n if (pageControllerType === 'folio' && ((result.document.publicationAuditWorkflowAccount\r\n && result.document.publicationAuditWorkflowAccount.length > 0)\r\n ||\r\n (result.document.publicationAuditWorkflowNonAccount\r\n && result.document.publicationAuditWorkflowNonAccount.length > 0))\r\n ) {\r\n let tempIndex = -1;\r\n const isTemplateRepository = tmeplaterepositories.includes(result.document?.publicationType);\r\n\r\n if (isTemplateRepository) {\r\n\r\n if (result.document.auditWorkflowAccount && result.document.auditWorkflowAccount.length > 0) {\r\n tempIndex = tempTocControl.findIndex(tocIndex => result.document.auditWorkflowAccount.includes(tocIndex.id) && tocIndex.filterAppliedStateOn === true);\r\n }\r\n if (result.document.auditWorkflowNonAccount && result.document.auditWorkflowNonAccount.length > 0 && tempIndex === -1) {\r\n tempIndex = tempTocControl.findIndex(tocIndex => result.document.auditWorkflowNonAccount.includes(tocIndex.id) && tocIndex.filterAppliedStateOn === true);\r\n }\r\n }\r\n else {\r\n if (result.document.publicationAuditWorkflowAccount && result.document.publicationAuditWorkflowAccount.length > 0) {\r\n tempIndex = tempTocControl.findIndex(tocIndex => result.document.publicationAuditWorkflowAccount.includes(tocIndex.id) && tocIndex.filterAppliedStateOn === true);\r\n }\r\n if (result.document.publicationAuditWorkflowNonAccount && result.document.publicationAuditWorkflowNonAccount.length > 0 && tempIndex === -1) {\r\n tempIndex = tempTocControl.findIndex(tocIndex => result.document.publicationAuditWorkflowNonAccount.includes(tocIndex.id) && tocIndex.filterAppliedStateOn === true);\r\n }\r\n }\r\n if (tempIndex > -1) {\r\n resultArray.push(result);\r\n }\r\n }\r\n else {//for standards, manuals, deloitte-communication and professional news\r\n let tempIndex = tempTocControl.findIndex(tocIndex => (tocIndex.id === result.document.publicationObjectId || tocIndex.id === result.document.publicationId || tocIndex.id === result.document.publicationContextId) && tocIndex.filterAppliedStateOn === true);\r\n if (tempIndex > -1) {\r\n resultArray.push(result);\r\n }\r\n }\r\n }\r\n else {//in case if tempTocControl is not loaded, will display all the search result\r\n resultArray.push(result);\r\n }\r\n });\r\n }\r\n\r\n if (searchResults.length >= parseInt(collectionSearchLimit)) {\r\n setShowCollectionSearchLimitNotification(true);\r\n }\r\n \r\n setFilteredSearchResults(resultArray);\r\n setAreSearchResultsLoading(false);\r\n }\r\n if (tocControl.length > 0) {\r\n let hasVisibleTocs = tocControl.some(x => x.visible);\r\n if(hasVisibleTocs){\r\n setIsShowAllOnOffButton(true);\r\n }else{\r\n setIsShowAllOnOffButton(false);\r\n }\r\n const filtered = tocControl.filter(x => x.filterAppliedStateOn && x.visible);\r\n if (filtered.length > 0) {\r\n setAllButtonText(false);\r\n } else {\r\n setAllButtonText(true);\r\n }\r\n } //eslint-disable-next-line\r\n }, [searchResults, activeFilters, (tocControl.length > 0)]);\r\n\r\n function UpdateTocControlByActiveFilter() {\r\n var tempTocControl = tocControl;\r\n\r\n tempTocControl.forEach((item) => {\r\n var indexA = activeFilters.findIndex(filterItem => filterItem === item.id);\r\n if (indexA > -1) {\r\n item.filterAppliedStateOn = false;\r\n }\r\n else {\r\n item.filterAppliedStateOn = true;\r\n }\r\n })\r\n\r\n return tempTocControl;\r\n }\r\n //TODO: @Anand Need to add a listener here on the filter changes, so to re-set the filteredSearchResults!!\r\n\r\n\r\n\r\n\r\n const store = {\r\n searchResults,\r\n setSearchResults,\r\n filteredSearchResults,\r\n setFilteredSearchResults,\r\n activeFilters,\r\n setActiveFilters,\r\n areSearchResultsLoading,\r\n setAreSearchResultsLoading,\r\n searchTimeStamp,\r\n setSearchTimeStamp,\r\n latestRetrieveSearchResultsTimeStampRef,\r\n tocControl,\r\n setTocControl,\r\n showCollectionSearchLimitNotification,\r\n setCollectionSearchLimit,\r\n collectionSearchLimit,\r\n allButtonsOn,\r\n setAllButtonsOn,\r\n allButtonText,\r\n setAllButtonText,\r\n isTriggerAllOnOff,\r\n setIsTriggerAllOnOff,\r\n isShowAllOnOffButton,\r\n setIsShowAllOnOffButton\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default SearchResultContextProvider","import React, { createContext, useContext, useReducer,useState } from \"react\";\r\nimport UTILITIESHELPER from \"../helpers/UtilitiesHelper\";\r\n\r\nexport const ResearchAssistantContext = createContext();\r\nexport const useResearchAssistantContext = () => useContext(ResearchAssistantContext);\r\n\r\nexport const ACTIONS = {\r\n RA_LOAD: \"ra::load\",\r\n RA_INFO_INDEX: \"ra::infoindex\",\r\n RA_ERROR:\"ra::ra_error\",\r\n RA_HIDE_ERROR:\"ra::ra_hide_error\"\r\n};\r\n\r\nconst initialState = {\r\n memberFirm: '',\r\n memberFirmId :0,\r\n language: '',\r\n knowledgeDomain:'',\r\n tier:{},\r\n tierSelected:[],\r\n selectedInfoIndex: null,\r\n errorType:'',\r\n hasError:false\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case ACTIONS.RA_LOAD:\r\n console.log('RA_ActionHit',action);\r\n return { ...state, memberFirm: action.payload.memberFirm, memberFirmId: action.payload.memberFirmId,language: action.payload.language, knowledgeDomain: action.payload.knowledgeDomain,tier: action.payload.tier,tierSelected:action.payload.tierSelected};\r\n\r\n case ACTIONS.RA_INFO_INDEX:\r\n return { ...state, selectedInfoIndex: action.payload };\r\n\r\n case ACTIONS.RA_ERROR:\r\n return {...state, errorType: action.payload.errorType, hasError: action.payload.hasError};\r\n\r\n case ACTIONS.RA_HIDE_ERROR:\r\n return {...state, hasError: action.payload.hasError}\r\n \r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default function RAContextProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n const [tosAgreed, setTosAgreed] = useState(UTILITIESHELPER.getLocalStorage(\"ra_tou_agreed_status\") === \"true\" && String(window.DART.ENV.RA_TOSDESC_VERSION) === UTILITIESHELPER.getLocalStorage(\"ra_tou_agreed_version\"));\r\n \r\n\r\n const store = {\r\n state,\r\n dispatch,\r\n tosAgreed, setTosAgreed\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\n","import React from 'react';\r\n\r\nconst HandleError = ( props ) => {\r\n\r\n //console.log(\"HandleError::error\",props.error);\r\n\r\n return (\r\n
\r\n

{props.errorHeading}

\r\n \r\n

An error has occurred. We apologize for any inconvenience.

\r\n

{props.errorMessage}

\r\n
\r\n )\r\n \r\n};\r\n\r\nexport default HandleError;","import React from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport HandleError from './HandleError';\r\n//import Page404 from './Page404';\r\n\r\nconst ErrorHandler = ({ children }) => {\r\n const location = useLocation();\r\n\r\n //console.log(\"ErrorHandler\", location.state);\r\n\r\n switch (location.state) {\r\n case 404:\r\n return (\r\n \r\n )\r\n case 500:\r\n return (\r\n \r\n )\r\n default:\r\n //console.log(\"ErrorHandler::children\",children)\r\n //console.log(\"ErrorHandler::default::location.state\", location.state);\r\n return children;\r\n }\r\n};\r\n\r\nexport default ErrorHandler;","\r\n\r\nconst ShowIf = ({condition, children}) => {\r\n if(!condition) return null\r\n\r\n return children;\r\n}\r\n\r\nexport default ShowIf;\r\n","\r\nimport React, { createContext, useContext } from 'react'\r\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\n\r\nexport const ReadingModeContext = createContext()\r\nexport const useReadingModeContext = () => useContext(ReadingModeContext)\r\n\r\nconst ReadingModeContextProvider = ({ children }) => {\r\n\r\n const navigate = useNavigate();\r\n const location = useLocation()\r\n const queryParams = new URLSearchParams(location?.search);\r\n const isReadingMode = queryParams?.get('reading-mode') === 'true';\r\n\r\n const setIsReadingMode = (val) => {\r\n let isTrue = val;\r\n if (val === 'toggle') {\r\n isTrue = !isReadingMode;\r\n }\r\n if (isTrue) {\r\n queryParams.append('reading-mode', 'true');\r\n } else {\r\n queryParams.delete('reading-mode');\r\n }\r\n\r\n navigate({ search: queryParams.toString() });\r\n }\r\n\r\n const store = {\r\n isReadingMode,\r\n setIsReadingMode,\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default ReadingModeContextProvider;","// src/components/Loading.js\r\n\r\nimport React from 'react';\r\nimport { component } from './Loading.module.css';\r\n//import { usePageContextLabels } from '../../contexts/PageContext';\r\nimport cx from 'classnames';\r\n\r\nconst Loading = ({ className, style }) => {\r\n\t/*const { getLabel } = usePageContextLabels();*/\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{/*

{getLabel(\"g_Loading\", \"Loading...\")}

*/}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default Loading;","import React from 'react';\r\nimport cx from 'classnames'\r\n\r\nimport Loading from \"../../Loading/Loading\";\r\nimport { useLoadingContext } from \"../../../contexts/LoadingContext\";\r\nimport { usePageContext } from '../../../contexts/PageContext';\r\nimport ShowIf from '../ShowIf';\r\n\r\nconst LayoutChildren = ({children}) => {\r\n const { isLoading } = useLoadingContext()\r\n //BDP: This causes the content/content Page to never load as it does not use any of these values\r\n // the child should not be hidden while loading regardless anyway, but I added check for contnet pages ONLY\r\n const { context, hasGottenCorrectTierValue, hasVerifiedIndustry } = usePageContext();\r\n\r\n return (\r\n
\r\n \r\n \r\n {children}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LayoutChildren;\r\n","\r\nimport React from 'react';\r\nimport { usePageContext, usePageContextLabels } from '../../../contexts/PageContext';\r\nimport ShowIf from '../ShowIf';\r\n\r\nconst PageTitle = () => {\r\n const { pageTitle, pageDescription } = usePageContext()\r\n const { getMFLabel } = usePageContextLabels();\r\n\r\n return (\r\n <>\r\n

\r\n {getMFLabel(pageTitle, \"pageTitle\")}\r\n

\r\n \r\n
\r\n {getMFLabel(pageDescription, \"pageDescription\")}\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default PageTitle","import ReactHtmlParser from 'react-html-parser';\r\n\r\nconst HTMLContent = ({ children }) => {\r\n let htmlContent = ''\r\n if (children === undefined) {\r\n htmlContent = ''\r\n }\r\n else {\r\n if (typeof children === 'string' || children instanceof String) {\r\n htmlContent = children\r\n }\r\n else {\r\n htmlContent = `${children}`\r\n }\r\n }\r\n\r\n return ReactHtmlParser(htmlContent);;\r\n}\r\n\r\nexport default HTMLContent","\r\nimport React, { useState, createContext, useEffect, useContext } from 'react'\r\nimport { useMatch } from 'react-router-dom'\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\n\r\nexport const ThemeContext = createContext()\r\nexport const useThemeContext = () => useContext(ThemeContext)\r\n\r\nconst ThemeContextProvider = ({ children }) => {\r\n const [hasDarkModePreference, setHasDarkModePreference] = useState(UTILITIESHELPER.getDarkModePrefLocalStorage);\r\n const routeMatchInfo = useMatch('/:memberFirm/:language/:knowledgeDomain/*') \r\n const researchAssistantRouteMatch= useMatch('/researchassistant')\r\n const shouldPreventDarkMode = !routeMatchInfo?.params?.knowledgeDomain;\r\n const isDarkMode = hasDarkModePreference && (!shouldPreventDarkMode || researchAssistantRouteMatch);\r\n useEffect(() => {\r\n document.documentElement.dataset.theme = isDarkMode ? 'dark' : null;\r\n }, [isDarkMode])\r\n\r\n useEffect(() => {\r\n UTILITIESHELPER.setDarkModePrefLocalStorage(hasDarkModePreference);\r\n }, [hasDarkModePreference])\r\n\r\n const store = {\r\n isDarkMode,\r\n setHasDarkModePreference,\r\n hasDarkModePreference,\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default ThemeContextProvider;\r\n","import React from 'react';\r\nimport cx from 'classnames';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport xss from 'xss';\r\nimport HTMLContent from '../../Common/HTMLContent';\r\nimport LinkHelpers from '../../../helpers/LinkHelpers';\r\nimport { usePageContext, usePageContextLabels } from '../../../contexts/PageContext';\r\nimport { useReadingModeContext } from '../../../contexts/ReadingModeContext';\r\nimport { useThemeContext } from '../../../contexts/ThemeContext';\r\n\r\n\r\nconst Footer = ({className}) => {\r\n const { context, footerLinks, isCatalogPage } = usePageContext();\r\n const { getLabel, getMFLabel } = usePageContextLabels();\r\n const { isReadingMode } = useReadingModeContext();\r\n const { isDarkMode } = useThemeContext();\r\n\r\n const createMarkupLink = (idx, link) => {\r\n if (link.linkInternal?.BinaryContent) {\r\n const linkSanitized = xss(`${getMFLabel(link.linkText, \"link.linkText\")}`)\r\n return \" \" + linkSanitized;\r\n }\r\n if (link.linkExternal) {\r\n const linkSanitized = xss(`${getMFLabel(link.linkText, \"link.linkText\")}`)\r\n return \" \" + linkSanitized;\r\n }\r\n //Plain html/text-output\r\n const linkSanitized = xss(getMFLabel(link.linkText, \"link.linkText\"));\r\n //WE only want a space BEFORE the text if its not a word\r\n if ((idx !== 0) && ((linkSanitized.length > 1) || (\",.;/\".indexOf(linkSanitized) === -1))) {\r\n return \" \" + linkSanitized;\r\n }\r\n return linkSanitized;\r\n }\r\n const isFooterLinksAnArray = Array.isArray(footerLinks) && footerLinks.length > 0;\r\n \r\n return (\r\n
\r\n
\r\n {\r\n isFooterLinksAnArray ? (\r\n <>\r\n {\r\n footerLinks.map((link, idx) => (\r\n ReactHtmlParser(createMarkupLink(idx, link))\r\n ))\r\n }\r\n
\r\n \r\n {getLabel(\"g_CopyrightFooter\", \"Deloitte refers to one or more of Deloitte Touche Tohmatsu Limited (“DTTL”), its global network of member firms, and their related entities (collectively, the “Deloitte organization”). DTTL (also referred to as “Deloitte Global”) and each of its member firms and related entities are legally separate and independent entities, which cannot obligate or bind each other in respect of third parties. DTTL and each DTTL member firm and related entity is liable only for its own acts and omissions, and not those of each other. DTTL does not provide services to clients. Please see www.deloitte.com/about to learn more.\")}\r\n \r\n \r\n ) : (\r\n \r\n {getLabel(\"g_Copyright\", `Copyright © ${new Date().getFullYear()} Deloitte Development LLC. All Rights Reserved`)}\r\n \r\n )\r\n }\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Footer;\r\n","\r\nimport React from 'react';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport cx from 'classnames';\r\nimport ShowIf from '../ShowIf';\r\nimport { useReadingModeContext } from '../../../contexts/ReadingModeContext';\r\nimport LayoutChildren from './LayoutChildren';\r\nimport PageTitle from './PageTitle';\r\nimport UTILITIESHELPER from '../../../helpers/UtilitiesHelper';\r\nimport Footer from \"./Footer\";\r\nimport {useThemeContext} from \"../../../contexts/ThemeContext\";\r\nimport {usePageContext} from \"../../../contexts/PageContext\";\r\n\r\nconst Layout = ({ children, includesTitleRow }) => {\r\n const { isReadingMode } = useReadingModeContext();\r\n const location = useLocation();\r\n const { isCatalogPage } = usePageContext();\r\n const searchParam = location.search;\r\n const { isDarkMode } = useThemeContext();\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {children}\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nLayout.defaultProps = {\r\n includesTitleRow: false,\r\n}\r\n\r\nexport default Layout;\r\n","import React from 'react';\r\nimport { Navigate } from 'react-router-dom';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nconst DO_NOT_LOGIN = (window.location.href.indexOf(\"localhost\") > 0);\r\n\r\nexport const PrivateRoute = ({ children }) => {\r\n \r\n return (DO_NOT_LOGIN || UTILITIESHELPER.isValidAccessToken()) ? <>{children} : ;\r\n};\r\n\r\nexport default PrivateRoute;\r\n\r\n","import React, { useState, createContext, useRef, useContext } from 'react'\r\n\r\nexport const ArticleContext = createContext()\r\nexport const useArticleContext = () => useContext(ArticleContext)\r\n\r\nconst ArticleContextProvider = ({ children }) => {\r\n const [isArticle, setIsArticle] = useState(false);\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [selectedFootnotePopup, setSelectedFootnotePopup] = useState();\r\n const footNotesContentRef = useRef();\r\n const [expandedSections, setExpandedSections] = useState({});\r\n const [pdfPage,setPdfPage]=useState(false);\r\n\tconst [isArticleDeleted, setIsArticleDeleted] = useState(false);\r\n\tconst [articleVersion, setArticleVersion] = useState(0);\r\n const [articleTags, setArticleTags] = useState([]);\r\n \r\n const setOpenMultipleExpandedSections = (sectionIds, val) => {\r\n setExpandedSections(prevExpandedSections => {\r\n const newExpandedSections = { ...prevExpandedSections };\r\n sectionIds.forEach(sectionId => {\r\n newExpandedSections[sectionId] = (val === 'toggle' ? !newExpandedSections[sectionId] : val);\r\n })\r\n \r\n return newExpandedSections;\r\n })\r\n }\r\n\r\n const getIsSectionExpanded = (sectionId) => expandedSections[sectionId];\r\n\r\n const removeExpandedSectionKey = (uuid) => {\r\n setExpandedSections(prevExpandedSections => {\r\n const newExpandedSections = { ...prevExpandedSections };\r\n delete newExpandedSections[uuid];\r\n return newExpandedSections;\r\n })\r\n }\r\n\r\n const store = {\r\n isArticle,\r\n setIsArticle,\r\n searchText,\r\n pdfPage,\r\n setPdfPage,\r\n setSearchText,\r\n selectedFootnotePopup,\r\n setSelectedFootnotePopup,\r\n footNotesContentRef,\r\n getIsSectionExpanded,\r\n setOpenMultipleExpandedSections,\r\n removeExpandedSectionKey, \r\n isArticleDeleted, \r\n setIsArticleDeleted,\r\n articleVersion, \r\n setArticleVersion,\r\n articleTags,\r\n setArticleTags\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default ArticleContextProvider;\r\n","import React, { createContext, useContext, useReducer,useState } from \"react\";\r\n\r\nexport const AnnotationsContext = createContext();\r\nexport const useUserPreferencesContext = () => useContext(AnnotationsContext);\r\n\r\nexport const ACTIONS = {\r\n CATEGORY_LOAD: \"categories::load\",\r\n CATEGORY_CREATE: 'categories::create',\r\n CATEGORY_UPDATE: \"categories::update\",\r\n CATEGORY_REMOVE: 'categories::remove',\r\n ANNOTATIONS_LOAD: \"annotations::load\",\r\n ANNOTATIONS_CREATE: \"annotaions::create\",\r\n ANNOTATIONS_UPDATE: \"annotaions::update\",\r\n ANNOTATIONS_UPDATE_MULTIPLE: \"annotaions::updatemultiple\",\r\n ANNOTATIONS_REMOVE: \"annotations::remove\",\r\n ANNOTATIONS_REMOVE_MULTIPLE: \"annotations::removemultiple\",\r\n ANNOTATIONS_RESET: \"annotations::reset\",\r\n PANEL_SHOW: \"annotations::panel::show\",\r\n PANEL_HIDE: \"annotations::panel::hide\",\r\n MODAL_SHOW: \"annotations::modal::show\",\r\n MODAL_HIDE: \"annotations::modal::hide\",\r\n ANNOTATION_TEMP_SET: \"annotation::temp::set\",\r\n ANNOTATION_TEMP_RESET: \"annotation::temp::set\",\r\n BOOKMARKS_CREATE: \"bookmarks::create\",\r\n BOOKMARKS_LOAD: \"bookmarks::load\",\r\n BOOKMARKS_RESET: \"bookmarks::reset\",\r\n BOOKMARK_UPDATE: \"bookmark::update\",\r\n BOOKMARK_REMOVE: \"bookmark::remove\",\r\n BOOKMARK_BULK_REMOVE: \"bookmark::bulk::remove\",\r\n RECENT_HISTORY_CREATE: \"history::create\",\r\n RECENT_HISTORY_LOAD: \"history::load\",\r\n RECENT_HISTORY_RESET: \"history::reset\",\r\n RECENT_HISTORY_UPDATE: \"history::update\",\r\n RECENT_HISTORY_REMOVE: \"history::remove\",\r\n RECENT_SEARCH_CREATE: \"search::create\",\r\n RECENT_SEARCH_LOAD: \"search::load\",\r\n RECENT_SEARCH_RESET: \"search::reset\",\r\n RECENT_SEARCH_UPDATE: \"search::update\",\r\n RECENT_SEARCH_REMOVE: \"search::remove\",\r\n};\r\n\r\nconst initialState = {\r\n categories: [],\r\n annotations: [],\r\n isPanelVisible: false,\r\n isModalVisible: false,\r\n tempAnnotation: null,\r\n bookmarks: [],\r\n recentHistory: [],\r\n recentSearch: []\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case ACTIONS.PANEL_SHOW:\r\n return { ...state, isPanelVisible: true };\r\n case ACTIONS.PANEL_HIDE:\r\n return { ...state, isPanelVisible: false };\r\n case ACTIONS.MODAL_SHOW:\r\n return { ...state, isModalVisible: true, tempAnnotation: action.payload };\r\n case ACTIONS.MODAL_HIDE:\r\n return { ...state, isModalVisible: false, tempAnnotation: null };\r\n\r\n //Categories Start\r\n case ACTIONS.CATEGORY_LOAD:\r\n return {\r\n ...state,\r\n categories: action.payload\r\n };\r\n case ACTIONS.CATEGORY_CREATE:\r\n const categoryList = state.categories.filter((book) =>\r\n book.category_guid !== action.payload.category_guid);\r\n return {\r\n ...state,\r\n categories: [...categoryList, action.payload],\r\n };\r\n case ACTIONS.CATEGORY_UPDATE:\r\n return {\r\n ...state,\r\n categories: state.categories.map((cat) =>\r\n cat.category_guid === action.payload.category_guid ? action.payload : cat),\r\n };\r\n case ACTIONS.CATEGORY_REMOVE:\r\n return {\r\n ...state,\r\n categories: state.categories.filter((cat) =>\r\n cat.category_guid !== action.payload.category_guid),\r\n };\r\n //Categories End\r\n\r\n //Annotation Start\r\n case ACTIONS.ANNOTATIONS_LOAD:\r\n return {\r\n ...state,\r\n annotations: action.payload\r\n };\r\n case ACTIONS.ANNOTATIONS_CREATE:\r\n return {\r\n ...state,\r\n annotations: [...state.annotations, action.payload],\r\n isModalVisible: false,\r\n tempAnnotation: null,\r\n };\r\n case ACTIONS.ANNOTATIONS_UPDATE:\r\n return {\r\n ...state,\r\n annotations: state.annotations.map((ann) =>\r\n ann.annotation_guid === action.payload.annotation_guid ? action.payload : ann),\r\n };\r\n\r\n case ACTIONS.ANNOTATIONS_UPDATE_MULTIPLE:\r\n const annotationAfterUpdatess = state.annotations.map(annot => {\r\n const match = action.payload.find(item => item.annotation_guid === annot.annotation_guid);\r\n return match ? { ...annot, sidePanelEdit: match.sidePanelEdit } : annot;\r\n });\r\n return {\r\n ...state,\r\n annotations: annotationAfterUpdatess,\r\n\r\n };\r\n\r\n case ACTIONS.ANNOTATIONS_REMOVE:\r\n const annotationAfterDelete = state.annotations.filter((ann) =>\r\n ann.annotation_guid !== action.payload.annotation_guid);\r\n return {\r\n ...state,\r\n annotations: annotationAfterDelete,\r\n isSidePanelDelete: true,\r\n deleteId: action.payload.annotation_guid,\r\n };\r\n\r\n case ACTIONS.ANNOTATIONS_REMOVE_MULTIPLE:\r\n\r\n const annotationAfterDeletes = state.annotations.filter(a => !(action.payload.includes(a.annotation_guid)));\r\n return {\r\n ...state,\r\n annotations: annotationAfterDeletes,\r\n isSidePanelDelete: true,\r\n deleteId: action.payload,\r\n };\r\n case ACTIONS.ANNOTATIONS_RESET:\r\n state.annotations = [];\r\n return state;\r\n //Annotation End\r\n\r\n //bookmarks start\r\n case ACTIONS.BOOKMARKS_LOAD:\r\n return {\r\n ...state,\r\n bookmarks: action.payload\r\n };\r\n case ACTIONS.BOOKMARKS_CREATE:\r\n const bookmarksList = state.bookmarks.filter((book) =>\r\n book.bookmark_guid !== action.payload.bookmark_guid);// to avoid dublication item we will check already exist or not\r\n return {\r\n ...state,\r\n bookmarks: [...bookmarksList, action.payload],\r\n };\r\n case ACTIONS.BOOKMARK_REMOVE:\r\n const bookmarkAfterDelete = state.bookmarks.filter((book) =>\r\n book.bookmark_guid !== action.payload.bookmark_guid);\r\n return {\r\n ...state,\r\n bookmarks: bookmarkAfterDelete,\r\n deleteId: action.payload.bookmark_guid,\r\n };\r\n\r\n case ACTIONS.BOOKMARK_BULK_REMOVE:\r\n const bookmarkAfterbulkDelete = state.bookmarks.filter((book) =>\r\n !action.payload.includes(book.bookmark_guid));\r\n return {\r\n ...state,\r\n bookmarks: bookmarkAfterbulkDelete\r\n };\r\n //Bookmark end \r\n\r\n // ! recent history state reducers\r\n // * required at the start of the page load\r\n case ACTIONS.RECENT_HISTORY_CREATE:\r\n const historyAfterCreate = action.payload;\r\n return {\r\n ...state,\r\n recentHistory: historyAfterCreate,\r\n };\r\n\r\n // ! may not be required\r\n case ACTIONS.RECENT_HISTORY_LOAD:\r\n const historyAfterLoad = [...state.recentHistory, action.payload];\r\n return { ...state, history: historyAfterLoad };\r\n // ! may not be required\r\n case ACTIONS.RECENT_HISTORY_RESET:\r\n state.recentHistory = [];\r\n // * used to update the state with new entry directly\r\n // this implementation is the same as CREATE, \r\n // This actions can be modified if required in future\r\n break;\r\n case ACTIONS.RECENT_HISTORY_UPDATE:\r\n const historyAfterUpdate = action.payload;\r\n return {\r\n ...state,\r\n recentHistory: historyAfterUpdate,\r\n };\r\n // ! may not be required\r\n case ACTIONS.RECENT_HISTORY_REMOVE:\r\n const historyAfterDelete = state.recentHistory.filter((history) =>\r\n history.id !== action.payload.id);\r\n return {\r\n ...state,\r\n recentHistory: historyAfterDelete,\r\n deleteId: action.payload.id,\r\n };\r\n\r\n // ! recent search state reducers\r\n // * required at the start of the page load\r\n case ACTIONS.RECENT_SEARCH_CREATE:\r\n const searchAfterCreate = action.payload;\r\n return {\r\n ...state,\r\n recentSearch: searchAfterCreate,\r\n };\r\n\r\n case ACTIONS.RECENT_SEARCH_LOAD:\r\n return { ...state, recentSearch: action.payload };\r\n\r\n case ACTIONS.RECENT_SEARCH_RESET:\r\n state.recentSearch = [];\r\n break;\r\n case ACTIONS.RECENT_SEARCH_UPDATE:\r\n const searchAfterUpdate = action.payload;\r\n return {\r\n ...state,\r\n recentSearch: searchAfterUpdate,\r\n };\r\n\r\n case ACTIONS.RECENT_SEARCH_REMOVE:\r\n const searchAfterDelete = state.recentSearch.filter((rSearch) =>\r\n rSearch.id !== action.payload.id);\r\n return {\r\n ...state,\r\n recentSearch: searchAfterDelete,\r\n deleteId: action.payload.id,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default function AnnotationsContextProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n const [selectedAnnotation, setSelectedAnnotation] = useState(0);\r\n const [selectedId, setSelectedId] = useState();\r\n const [isDropDownCategoryOpen, setIsDropDownCategoryOpen] = useState(false);\r\n const [viewedAnnotation, setViewedAnnotation] = useState(null);\r\n const [viewClickedAnnotation, setViewClickedAnnotation] = useState(null);\r\n const [viewedBookmark, setViewedBookmark] = useState(null);\r\n\r\n const store = {\r\n state,\r\n dispatch,\r\n selectedAnnotation,\r\n setSelectedAnnotation,\r\n viewedAnnotation,\r\n setViewedAnnotation,\r\n viewClickedAnnotation,\r\n setViewClickedAnnotation,\r\n viewedBookmark,\r\n setViewedBookmark,\r\n isDropDownCategoryOpen, setIsDropDownCategoryOpen,\r\n selectedId,setSelectedId\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import RETRIEVALSERVICES from \"../services/rp-service\";\r\nimport { logs, page } from \"./log\";\r\nimport CONTEXTHELPERS from \"./ContextHelpers\";\r\nimport { ErrorCodes, ErrorMessages } from \"../components/Constants/Errors\";\r\n\r\nasync function fetchAnnotations(url, memberFirmId) {\r\n try {\r\n var model = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n timezone_offset: CONTEXTHELPERS.getTimezoneOffset(),\r\n };\r\n const response = await RETRIEVALSERVICES.retrieveAnnotation(model);\r\n return response ? response : [];\r\n } catch (err) {\r\n logs.error(page.Annotation, 'AnnotationServices', ErrorMessages.annotationFetch, err,{eventId:ErrorCodes.Annotation});\r\n }\r\n}\r\n\r\nasync function createAnnotation(url, payload, memberFirmId) {\r\n try {\r\n payload.query_spec_base_model = CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId);\r\n return await RETRIEVALSERVICES.createAnnotation(payload);\r\n } catch (err) {\r\n logs.error(page.Annotation, 'AnnotationServices', ErrorMessages.annotationCreate, err,{eventId:ErrorCodes.Annotation});\r\n }\r\n}\r\n\r\nasync function updateAnnotation(url, payload, memberFirmId) {\r\n try {\r\n payload.query_spec_base_model = CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId);\r\n return await RETRIEVALSERVICES.updateAnnotation(payload, payload.annotation_guid);\r\n } catch (err) {\r\n logs.error(page.Annotation, 'AnnotationServices', ErrorMessages.annnotationUpdate, err,{eventId:ErrorCodes.Annotation});\r\n }\r\n}\r\n\r\nasync function deleteAnnotation(url, guidArray, memberFirmId) {\r\n try {\r\n const model = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n guids: guidArray\r\n };\r\n return await RETRIEVALSERVICES.deleteAnnotation(model);\r\n } catch (err) {\r\n logs.error(page.Annotation, 'AnnotationServices',ErrorMessages.annotationDelete , err,{eventId:ErrorCodes.Annotation});\r\n\r\n }\r\n}\r\n\r\nconst ANNSERVICES = {\r\n createAnnotation,\r\n fetchAnnotations,\r\n updateAnnotation,\r\n deleteAnnotation,\r\n};\r\n\r\nexport default ANNSERVICES;\r\n","import { ErrorCodes, ErrorMessages } from \"../components/Constants/Errors\";\r\nimport RETRIEVALSERVICES from \"../services/rp-service\";\r\nimport CONTEXTHELPERS from \"./ContextHelpers\";\r\nimport { logs, page } from \"./log\";\r\n\r\nasync function fetchBookmarkDashboard(url, memberFirmId) {\r\n try {\r\n var model = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n timezone_offset: CONTEXTHELPERS.getTimezoneOffset()\r\n };\r\n const response = await RETRIEVALSERVICES.retrieveBookmark(model);\r\n return response ? response : [];\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'BookmarkServices', ErrorMessages.bookmarkFetch, err, { eventId: ErrorCodes.Bookmark });\r\n }\r\n}\r\n\r\nasync function fetchBookmarks(url, memberFirmId, guid = null) {\r\n try {\r\n var model = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n timezone_offset: CONTEXTHELPERS.getTimezoneOffset(),\r\n reference_identifier: guid\r\n };\r\n return await RETRIEVALSERVICES.retrieveBookmark(model);\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'BookmarkServices', ErrorMessages.bookmarkFetch, err, { eventId: ErrorCodes.Bookmark });\r\n }\r\n}\r\n\r\nasync function createBookmark(payload, memberFirmId) {\r\n try {\r\n payload.query_spec_base_model = CONTEXTHELPERS.getUPSQuerySpecBaseModel(payload.page_url, memberFirmId);\r\n return await RETRIEVALSERVICES.createBookmark(payload);\r\n } catch (err) {\r\n\r\n logs.error(page.Bookmark, 'BookmarkServices', ErrorMessages.bookmarkCreate, err, { eventId: ErrorCodes.Bookmark });\r\n\r\n }\r\n}\r\n\r\nasync function deleteBookmarks(url, guidArray) {\r\n try {\r\n const model = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url),\r\n guids: guidArray\r\n };\r\n return await RETRIEVALSERVICES.deleteBookmark(model);\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'BookmarkServices', \"Error while deleting the Bookmark\", err);\r\n }\r\n}\r\n\r\nconst BookmarkService = {\r\n fetchBookmarkDashboard,\r\n fetchBookmarks,\r\n createBookmark,\r\n deleteBookmarks\r\n};\r\n\r\nexport default BookmarkService;","import React, { useEffect, useRef, useState } from 'react';\r\nimport cx from 'classnames';\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport ANNSERVICES from \"../../helpers/AnnotationServices\";\r\nimport ProgressBar from \"@ramonak/react-progress-bar\";\r\nimport { useTocContext } from '../../contexts/TocContext';\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\nimport { useUserPreferencesContext } from \"../../contexts/AnnotationsContext\";\r\nimport BookmarkService from '../../helpers/BookmarkServices';\r\n\r\n\r\nconst AnnotationsDeletedArticlesModal = ({\r\n bookmarkPage\r\n}) => {\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const DeleteModalRef = useRef();\r\n const { getLabel } = usePageContextLabels();\r\n const [deleteStarted, setDeleteStarted] = useState(false);\r\n const [deleteProgress, setDeleteProgress] = useState(0);\r\n const [deleteProgressChange, setDeleteProgressChange] = useState(0);\r\n const [deletedCount, setDeletedCount] = useState(0);\r\n const [deletedAnnotations, setDeletedAnnotations] = useState([]);\r\n const [shouldShowDeleteModal, setShouldShowDeleteModal] = useState(true);\r\n const [shouldShowOverlay, setShouldShowOverlay] = useState(true);\r\n\r\n const [deletedAnnotationsCount, setDeletedAnnotationsCount] = useState(0);\r\n const deleteInProgress = 'Delete in Progress!';\r\n const deleteCompleted = 'Deleted Successfully!';\r\n const { tocAnnotations, tocIconBookmark } = useTocContext();\r\n const { memberFirm, language, knowledgeDomain, getMemberFirmID } = usePageContext();\r\n const { viewedAnnotation, setViewedAnnotation, setViewClickedAnnotation, viewedBookmark, setViewedBookmark } = useUserPreferencesContext();\r\n const viewCount = bookmarkPage ? getLabel(\"hh_DeletedButtonCountBook\", \"Delete {0} Bookmark(s).\") :\r\n getLabel(\"hh_DeletedButtonCount\", \"Delete {0} Annotations.\");\r\n const deleteCount = bookmarkPage ? getLabel(\"hh_ViewButtonCountBook\", \"View {0} Bookmark(s). \") :\r\n getLabel(\"hh_ViewButtonCountBook\", \"View {0} Annotation(s).\");\r\n useEffect(() => {\r\n if (bookmarkPage) {\r\n let deletedAnnot = tocIconBookmark.filter(ele => ele.reference_identifier === viewedBookmark);\r\n if (deletedAnnot.length !== deletedAnnotationsCount) {\r\n setDeletedAnnotations(prev => [...deletedAnnot]);\r\n setDeletedAnnotationsCount(deletedAnnot.length);\r\n }\r\n }\r\n else {\r\n let deletedAnnot = tocAnnotations.filter(ele => ele.reference_identifier === viewedAnnotation);\r\n if (deletedAnnot.length !== deletedAnnotationsCount) {\r\n setDeletedAnnotations(prev => [...deletedAnnot]);\r\n setDeletedAnnotationsCount(deletedAnnot.length);\r\n }\r\n }\r\n }, [tocAnnotations, tocIconBookmark,viewedBookmark, viewedAnnotation, bookmarkPage, deletedAnnotationsCount]);//eslint-disable-line\r\n\r\n function navigateToDashboard() {\r\n if (bookmarkPage) {\r\n setViewClickedAnnotation(viewedBookmark);\r\n navigate(`/${memberFirm}/${language}/${knowledgeDomain}/dashboard/bookmarks`);\r\n }\r\n else {\r\n setViewClickedAnnotation(viewedAnnotation);\r\n navigate(`/${memberFirm}/${language}/${knowledgeDomain}/dashboard/annotations`);\r\n }\r\n }\r\n const setDialogClosed = () => {\r\n setViewedAnnotation(null);\r\n setViewedBookmark(null);\r\n closeModal();\r\n }\r\n\r\n function closeModal() {\r\n setShouldShowOverlay(false);\r\n setShouldShowDeleteModal(false);\r\n document.body.style.overflow = 'unset';\r\n if (deleteProgress === 100) {\r\n setDeleteProgress(0);\r\n setDeleteStarted(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n return () => {\r\n setShouldShowOverlay(false);\r\n setShouldShowDeleteModal(false);\r\n closeModal();\r\n }\r\n }, [])//eslint-disable-line\r\n\r\n function deleteAnnotation() {\r\n setDeleteProgress(0)\r\n setDeleteStarted(true);\r\n var counter = 0;\r\n deletedAnnotations.forEach(singledelete => {\r\n counter++;\r\n deleteSingleAnnotation(singledelete.annotation_guid, counter);\r\n });\r\n }\r\n\r\n async function deleteSingleAnnotation(annId, counter) {\r\n if (bookmarkPage) {\r\n const bookDelete = await BookmarkService.deleteBookmarks(location.pathname, [annId]);\r\n if (bookDelete) {\r\n let deletedAnnot = deletedAnnotations.filter(ele => ele.bookmark_guid !== annId)\r\n setDeletedAnnotations(prev => [...deletedAnnot]);\r\n setDeletedCount(counter);\r\n }\r\n return bookDelete;\r\n }\r\n else {\r\n const annDelete = await ANNSERVICES.deleteAnnotation(location.pathname, [annId], getMemberFirmID());\r\n if (annDelete) {\r\n let deletedAnnot = deletedAnnotations.filter(ele => ele.annotation_guid !== annId)\r\n setDeletedAnnotations(prev => [...deletedAnnot]);\r\n setDeletedCount(counter);\r\n }\r\n return annDelete;\r\n }\r\n }\r\n\r\n\r\n if (shouldShowDeleteModal === true) {\r\n document.body.style.overflow = 'hidden';\r\n }\r\n\r\n useEffect(() => {\r\n if (deletedAnnotationsCount > 0 && deleteProgress <= 100) {\r\n incrementProgress(((deletedCount) / deletedAnnotationsCount) * 100)\r\n }\r\n }, [deletedCount]);//eslint-disable-line\r\n\r\n function incrementProgress(progress) {\r\n setDeleteProgressChange(progress);\r\n }\r\n\r\n useEffect(() => {\r\n if (deleteProgress < 100) {\r\n setDeleteProgress(Math.round(deleteProgressChange));\r\n }\r\n }, [deleteProgressChange]);//eslint-disable-line\r\n\r\n\r\n\r\n return (\r\n
\r\n {shouldShowOverlay &&\r\n
\r\n }\r\n\r\n
\r\n
\r\n \"calendar\"\r\n {getLabel(\"hh_DeletedArticle\", \"Deleted Article\")}\r\n \r\n
\r\n {!deleteStarted &&\r\n
\r\n
\r\n

{getLabel(\"hh_DeletedArticleMesage\", \"The exact item you are looking for is no longer available.\")}

\r\n {bookmarkPage ?\r\n

{getLabel(\"hh_DeletedArticleCountBook\", \"You made {0} bookmark(s) for this item:\").replace('{0}', deletedAnnotationsCount)}

:\r\n

{getLabel(\"hh_DeletedArticleCount\", \"You made {0} annotations for this item.\").replace('{0}', deletedAnnotationsCount)}

\r\n }\r\n
\r\n\r\n
\r\n \r\n {viewCount.replace('{0}',\r\n deletedAnnotationsCount)}\r\n\r\n \r\n
\r\n
{ /* eslint-disable-next-line */}\r\n {deleteCount.replace('{0}', deletedAnnotationsCount)}\r\n
\r\n
\r\n }\r\n {deleteStarted &&\r\n
\r\n
\r\n {deleteProgress < 100 &&\r\n

{deleteInProgress}

\r\n }\r\n {deleteProgress === 100 &&\r\n

{deleteCompleted}

\r\n }\r\n \r\n
\r\n {deleteProgress === 100 &&\r\n
\r\n {/*eslint-disable-next-line*/}\r\n {getLabel(\"g_Close\", \"Close\")}\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n )\r\n}\r\n\r\nAnnotationsDeletedArticlesModal.defaultProps = {\r\n setShouldShowDeleteModal: () => { },\r\n setShouldShowOverlay: () => { },\r\n}\r\n\r\nexport default AnnotationsDeletedArticlesModal;\r\n","import React from \"react\";\r\nimport { useNavigate, useLocation } from 'react-router-dom'\r\nimport { useGuidebookTocContext } from \"../../contexts/GuidebookTocContext\";\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport { useUserPreferencesContext } from \"../../contexts/AnnotationsContext\";\r\nimport AnnotationsDeletedArticlesModal from \"../Annotations/AnnotationsDeletedArticlesModal\";\r\nimport BookmarkService from \"../../helpers/BookmarkServices\";\r\n\r\nconst WormholeNotification = ({style}) => {\r\n const { guidebookArticle } = useGuidebookTocContext();\r\n\r\n\tconst navigate = useNavigate();\r\n\tconst location = useLocation();\r\n\tconst { context, isWormholeActive } = usePageContext();\r\n\tconst { getLabel } = usePageContextLabels();\r\n const { viewedBookmark,setViewedBookmark,state: annState , viewedAnnotation} = useUserPreferencesContext();\r\n\t\r\n\t//TODO:Mitali: While just the fact that filters are selected does not mean that the article was deleted, we will assume that if the user has filters selected\r\n\t//\tand we get a wormhole, that the article does not exist \"now\" becuase of the filter, not because it was deleted\r\n\t//\tthis can always be wrong in all cases, inless when we deturmine wormhole, we knew it did exist before!\r\n\r\n\tfunction closeNotification() {\r\n\t\t//WE just navigate to the pageBaseURL from wherever, and we will \"exit\" out of the wormhole message\r\n\t\tnavigate(context.pageBaseURL);\r\n\t}\r\n\tconst deleteBookmark = async (bookmark_guid) => {\r\n\t\tconst bookmark = await BookmarkService.deleteBookmarks(location.pathname, [bookmark_guid]);\r\n\t\tif (bookmark) {\r\n\t\t\tsetViewedBookmark(null);\r\n\t\t}\r\n\t};\r\n\r\n\tif (isWormholeActive && viewedBookmark) {\r\n\t\tif (annState?.bookmarks && annState?.bookmarks?.length > 0) {\r\n\t\t\tconst bookmarktoDelete = annState.bookmarks.find(item => item.reference_identifier === viewedBookmark);\r\n\t\t\tif (bookmarktoDelete) {\r\n\t\t\t\tdeleteBookmark(bookmarktoDelete.bookmark_guid);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (isWormholeActive && viewedAnnotation) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\tif (isWormholeActive) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t \r\n\t\t\t\t

{guidebookArticle && guidebookArticle.is_filtered ? \r\n\t\t\t\t getLabel(\"g_wormholeNotification\", \"The page you are looking for is no longer available due to your current catalog or filters you have applied.\") \r\n\t\t\t\t:getLabel(\"hh_DeletedArticleMesage\", \"The exact item you are looking for is no longer available.\")}

\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\telse {\r\n\t\treturn null;\r\n\t}\r\n};\r\n\r\nexport default WormholeNotification;","import React from 'react';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\n\r\nconst RecentSearches = ({ handleClick, recentHistoryList, globalRecentSearches }) => {\r\n const { context } = usePageContext();\r\n let styling;\r\n recentHistoryList= JSON.parse(recentHistoryList)?.filter(mem=>mem.memberfirm===context.memberFirm && mem.knowledgeDomain===context.knowledgeDomain);\r\n if (globalRecentSearches == null) {\r\n styling = {\r\n display: 'none',\r\n }\r\n } else if (!globalRecentSearches) {\r\n styling = {\r\n boxShadow: '3px 4px 8px #879090b5', maxWidth: '500px', marginTop: '-1px', textAlign: 'initial', background: 'white'\r\n }\r\n } else {\r\n styling = {\r\n boxShadow: '3px 4px 8px #879090b5', maxWidth: '500px', textAlign: 'initial', background: 'white'\r\n }\r\n }\r\n\r\n function RecentSearchClickHandler(searchphrase) {\r\n handleClick(searchphrase);\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
Recent Searches
\r\n {recentHistoryList &&\r\n recentHistoryList.map((item, index) => {\r\n return (\r\n
RecentSearchClickHandler(item.search_phrase)} className='recent-search-item' style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap', overflow: 'hidden' }} >\r\n {item.search_phrase}\r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nRecentSearches.defaultProps = {\r\n globalRecentSearches: false\r\n}\r\n\r\nexport default RecentSearches;\r\n","//This constant contain the site keys\r\nexport const SCS_KEYS = {\r\n wildcardsPrefixSearchLimitation: \"s_WildcardsPrefixSearchLimitationNotification\"\r\n}\r\n\r\n//This constant contain the fallback literals for site keys\r\nexport const SCS_FALLBACKS = [\r\n {\r\n key: SCS_KEYS.wildcardsPrefixSearchLimitation,\r\n value: \"Please refine your search to exclude characters such as (*, ?, /, etc.,). For more information, refer to Quick Reference Guide.\"\r\n }\r\n];\r\n\r\n//it will return fallback value by site key\r\nexport const getFallback = (key) => {\r\n const foundItem = SCS_FALLBACKS.find((item) => item.key === key);\r\n return foundItem ? foundItem.value : null;\r\n}","import React, { useState, useRef, useEffect } from 'react';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { logs, appInsightUIMapping, page } from \"../../helpers/log\";\r\nimport { usePageContextLabels, usePageContext, usePageContextSettings } from '../../contexts/PageContext';\r\nimport cx from 'classnames';\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\nimport SearchHelpers from '../../helpers/SearchHelpers';\r\nimport RecentSearches from '../Common/RecentSearches.js';\r\nimport RECENTSEARCHSERVICES from '../../helpers/RecentSearchService.js';\r\nimport { ACTIONS, useUserPreferencesContext } from '../../contexts/AnnotationsContext';\r\nimport { SCS_KEYS, getFallback } from '../Constants/SCSConstants';\r\nimport { ErrorTypes } from '../Constants/Errors';\r\nimport ShowIf from '../Common/ShowIf.js';\r\nimport { PAGE_CONTROLLER_TYPE } from '../Constants/Constants';\r\n\r\nconst CollectionSearchbar = ({ className, placeholder, classNameForm, autocomplete = \"on\", parentOnTrigger, parentOnSubmit, showRecentSearches = false, calledFrom, isResearchAssistantEnabled = false, setSearchTrigger }) => {\r\n const { searchPhrase, setSearchPhrase } = usePageContext();\r\n const { setSearchTimeStamp } = useSearchResultContext();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const { getLabel } = usePageContextLabels();\r\n const ref = useRef();\r\n const { context, setNotification, getMemberFirmID } = usePageContext();\r\n const [showRecentHistory, setShowRecentHistory] = useState(false);\r\n const wildcardsPrefixSearchLimitationNotification = getLabel(SCS_KEYS.wildcardsPrefixSearchLimitation, getFallback(SCS_KEYS.wildcardsPrefixSearchLimitation));\r\n const { state: annState, dispatch } = useUserPreferencesContext();\r\n const showRecentSearch = (calledFrom === page.Collection || calledFrom === page.Article) ? true : null;\r\n const { isRecentSearchEnabled } = usePageContextSettings();\r\n useEffect(() => {\r\n function getRecentSearches() {\r\n const RecentSearchdata = localStorage.getItem('recentSearch');\r\n // await RECENTSEARCHSERVICES.getRecentSearch(location.pathname, getMemberFirmID());\r\n let recentSearchList = RecentSearchdata != null ? (RecentSearchdata ?? []) : []\r\n let recentSearchData= UTILITIESHELPER.isArrayNullorEmpty(recentSearchList) ? recentSearchList: JSON.parse(recentSearchList);\r\n dispatch({\r\n type: ACTIONS.RECENT_SEARCH_LOAD,\r\n payload: JSON.stringify(recentSearchData),\r\n });\r\n }\r\n if (isRecentSearchEnabled() && UTILITIESHELPER.isArrayNullorEmpty(annState.recentSearch))\r\n getRecentSearches();\r\n }, [])//eslint-disable-line\r\n\r\n function RecentSearchClickHandler(searchphrase) {\r\n setSearchPhrase(searchphrase)\r\n setTimeout(() => ref.current.dispatchEvent(new Event('submit', { cancelable: true, bubbles: true })), 500)\r\n }\r\n\r\n function setRecentSearchesData(_recentHistory, _recentHistoryList) {\r\n }\r\n\r\n const handleFocus = () => {\r\n if (showRecentHistory === false) {\r\n // load data when focused first time on the searchbox \r\n setShowRecentHistory(true)\r\n }\r\n }\r\n\r\n if (!placeholder) {\r\n placeholder = getLabel(\"s_Search\", \"Search\");\r\n }\r\n\r\n\r\n\r\n const handleKeyDown = (event) => {\r\n if (event.key === 'Enter') {\r\n setSearchTrigger((prev) => prev + 1)\r\n parentOnTrigger(searchPhrase);\r\n }\r\n }\r\n\r\n const handleChange = event => {\r\n setSearchPhrase(event.target.value);\r\n const currentLocation = window.location.pathname;\r\n\r\n if ([PAGE_CONTROLLER_TYPE.manual,\r\n PAGE_CONTROLLER_TYPE.standards,\r\n PAGE_CONTROLLER_TYPE.standard,\r\n PAGE_CONTROLLER_TYPE.guidance,\r\n PAGE_CONTROLLER_TYPE.roadmap,\r\n PAGE_CONTROLLER_TYPE.folio].includes(context.pageControllerType)) {\r\n\r\n const parsedSearchPhrase = SearchHelpers.parse(searchPhrase);\r\n const qs = SearchHelpers.toQueryString(parsedSearchPhrase);\r\n\r\n navigate(`${currentLocation}?${qs}`);\r\n\r\n logs.trackEvent({\r\n name: 'Search',\r\n properties: {\r\n searchText: searchPhrase,\r\n memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'),\r\n serviceArea: UTILITIESHELPER.getSessionStorage('ServiceArea'),\r\n level: UTILITIESHELPER.getSessionStorage('Level')\r\n }\r\n })\r\n return;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setSearchPhrase(\"\");\r\n }, [location?.pathname])//eslint-disable-line\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setSearchTimeStamp(Date.now())\r\n\r\n const _searchPhrase = searchPhrase.trim();\r\n\r\n if (UTILITIESHELPER.isStringNullorEmpty(_searchPhrase) || _searchPhrase.length < 2) {\r\n alert(getLabel(\"s_SearchPhraseTooShort\", \"Phrase too short (for now)\"));\r\n return;\r\n }\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(_searchPhrase)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'CollectionSearchbar' });\r\n return;\r\n }\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null });\r\n\r\n const currentLocation = window.location.pathname;\r\n\r\n if ([PAGE_CONTROLLER_TYPE.collection,\r\n PAGE_CONTROLLER_TYPE.manual,\r\n PAGE_CONTROLLER_TYPE.standards,\r\n PAGE_CONTROLLER_TYPE.standard,\r\n PAGE_CONTROLLER_TYPE.guidance,\r\n PAGE_CONTROLLER_TYPE.roadmap,\r\n PAGE_CONTROLLER_TYPE.folio].includes(context.pageControllerType)) {\r\n const parsedSearchPhrase = SearchHelpers.parse(_searchPhrase);\r\n const qs = SearchHelpers.toQueryString(parsedSearchPhrase);\r\n\r\n navigate(`${currentLocation}?${qs}`);\r\n\r\n logs.trackEvent({\r\n name: 'Search',\r\n properties: {\r\n searchText: _searchPhrase,\r\n memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'),\r\n serviceArea: UTILITIESHELPER.getSessionStorage('ServiceArea'),\r\n level: UTILITIESHELPER.getSessionStorage('Level')\r\n }\r\n })\r\n return;\r\n }\r\n\r\n return;\r\n };\r\n\r\n return (\r\n <>\r\n\r\n
\r\n \r\n \r\n {showRecentHistory && !UTILITIESHELPER.isArrayNullorEmpty(annState.recentSearch) &&\r\n \r\n }\r\n \r\n\r\n \r\n
\r\n { parentOnTrigger(searchPhrase) }}\r\n title={getLabel(\"Go\", \"Go\")}\r\n >\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n { parentOnTrigger(searchPhrase) }}\r\n title={getLabel(\"Go\", \"Go\")}\r\n >\r\n {getLabel(\"Search\", \"Search\")}\r\n \r\n\r\n
\r\n
\r\n \r\n )\r\n}\r\nCollectionSearchbar.defaultProps = {\r\n placeholder: \"\",\r\n style: {},\r\n className: ''\r\n}\r\nexport default CollectionSearchbar;","import { ErrorCodes, ErrorMessages } from \"../components/Constants/Errors\";\r\nimport RETRIEVALSERVICES from \"../services/rp-service\";\r\nimport CONTEXTHELPERS from \"./ContextHelpers\";\r\nimport UTILITIESHELPER from \"./UtilitiesHelper\";\r\nimport { logs, page } from \"./log\";\r\n\r\nasync function fetchHistory(url, memberFirmId) {\r\n try {\r\n const recentSearchUserPreference = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n timezone_offset: new Date().getTimezoneOffset()\r\n };\r\n const RecentlyViewedList = await RETRIEVALSERVICES.getRecentHistory(recentSearchUserPreference);\r\n return RecentlyViewedList;\r\n } catch (err) {\r\n logs.error(page.History, 'HistoryServices', ErrorMessages.recentlyViewedFetch, err, { eventId: ErrorCodes.History });\r\n }\r\n}\r\n\r\nasync function fetchCatalogHistory(url, memberFirmId, resultLimit) {\r\n try {\r\n const recentSearchUserPreference = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n timezone_offset: new Date().getTimezoneOffset(),\r\n request_count: resultLimit ? resultLimit : 3\r\n };\r\n const RecentlyViewedList = await RETRIEVALSERVICES.getRecentHistory(recentSearchUserPreference);\r\n return RecentlyViewedList;\r\n } catch (err) {\r\n logs.error(page.History, 'HistoryServices', ErrorMessages.recentlyViewedFetch, err, { eventId: ErrorCodes.History });\r\n }\r\n}\r\n\r\nasync function fetchHistoryDashboard(url, memberFirmId) {\r\n try {\r\n const recentSearchUserPreference =\r\n {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n timezone_offset: new Date().getTimezoneOffset(),\r\n request_count: 50\r\n };\r\n\r\n const RecentlyViewedList = await RETRIEVALSERVICES.getRecentHistoryDashbaord(recentSearchUserPreference);\r\n return RecentlyViewedList;\r\n } catch (err) {\r\n logs.error(page.History, 'HistoryServices', ErrorMessages.recentlyViewedFetch, err, { eventId: ErrorCodes.History });\r\n }\r\n}\r\n\r\nfunction updateHistoryObject(url, title, memberFirmId, context = {}, recentViewHistory = {}) {\r\n const recentSearchUserPreference = {\r\n relative_url: url,\r\n title: UTILITIESHELPER.removeSpecialCharacterFromUrlText(title),\r\n created_date: JSON.parse(JSON.stringify(new Date()))\r\n }; \r\n let currentHistoryObj = {}\r\n const memberFirm = context.memberFirm || ''\r\n const knowledgeDomain = context?.knowledgeDomain || ''\r\n const recentlyViewCount = window.DART.ENV.REACT_APP_RECENTLY_VIEWED_LIMIT\r\n if(recentViewHistory) {\r\n let parseData = recentViewHistory\r\n if(parseData[memberFirm]) {\r\n let previosKdList = parseData[memberFirm]?.[knowledgeDomain] \r\n if(previosKdList?.length) {\r\n const findIndex = previosKdList.findIndex(kd => \r\n kd.relative_url.toString() === recentSearchUserPreference.relative_url.toString()\r\n )\r\n if(findIndex > -1) {\r\n previosKdList.splice(findIndex, 1)\r\n }\r\n previosKdList.unshift(recentSearchUserPreference)\r\n previosKdList.length > recentlyViewCount && previosKdList.pop()\r\n parseData[memberFirm][knowledgeDomain] = previosKdList\r\n } else {\r\n const currentData = []\r\n currentData.unshift(recentSearchUserPreference)\r\n parseData[memberFirm][knowledgeDomain] = currentData\r\n }\r\n } else {\r\n const currentData = []\r\n currentData.unshift(recentSearchUserPreference)\r\n parseData[memberFirm] = {\r\n [knowledgeDomain]: currentData\r\n }\r\n }\r\n currentHistoryObj = parseData\r\n } else {\r\n const currentData = []\r\n currentData.unshift(recentSearchUserPreference)\r\n if(memberFirm && knowledgeDomain) {\r\n currentHistoryObj = {\r\n [memberFirm]: {\r\n [knowledgeDomain]: currentData\r\n }\r\n }\r\n\r\n }\r\n }\r\n UTILITIESHELPER.setLocalStorageJSON('recent-view-history', currentHistoryObj)\r\n return currentHistoryObj\r\n}\r\n\r\nconst RecentViewedService = {\r\n fetchHistory,\r\n updateHistoryObject,\r\n fetchHistoryDashboard,\r\n fetchCatalogHistory\r\n};\r\n\r\nexport default RecentViewedService;\r\n","\r\nfunction generateRecentHistoryLinks(recentHistory) {\r\n return recentHistory.map(x => ({\r\n PublicationGUID: null,\r\n PublicationType: null,\r\n linkAltText: decodeURIComponent(x.title) ,\r\n linkDocs: null,\r\n linkExternal: x.relative_url,\r\n linkInternal: null,\r\n linkText: decodeURIComponent(x.title)\r\n }))\r\n }\r\n\r\n function setRecentHistoryLinks(res, recentdata){\r\n res.CatalogCollection.filter(x=> x.title === \"lbl_Catalog_TitleGenericRecentlyViewedPublications_Title\")[0].links= recentdata;\r\n return res;\r\n }\r\n\r\nconst RecentlyViewedHelper = {\r\n generateRecentHistoryLinks,\r\n setRecentHistoryLinks\r\n};\r\n\r\nexport default RecentlyViewedHelper;\r\n","import React, { useState, useRef, useLayoutEffect, useEffect, useCallback } from 'react';\r\nimport { Document, Page } from 'react-pdf/dist/esm/entry.webpack';\r\nimport 'react-pdf/dist/esm/Page/AnnotationLayer.css';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport SearchHelpers from '../../helpers/SearchHelpers';\r\nimport LinkHelpers from '../../helpers/LinkHelpers';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport RETRIEVALSERVICES from '../../services/rp-service';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\n\r\n\r\n// const PdfPagination = ({ current, total, onChange }) => {\r\n// function handlePrevious() {\r\n// onChange({\r\n// pageNumber: Math.max(1, current - 1)\r\n// });\r\n// }\r\n\r\n// function handleNext() {\r\n// onChange({\r\n// pageNumber: Math.min(total, current + 1)\r\n// });\r\n// }\r\n\r\n// return (\r\n//
\r\n// \r\n// {`${current} / ${total ?? '...'}`}\r\n// \r\n//
\r\n// )\r\n// }\r\n\r\nconst SinglePdfDownload = ({ title, file }) => {\r\n const styles = { height: 0, width: 0, overflow: 'hidden', display: 'none' }\r\n // XSS Link Sanitization\r\n const sanitizedFileUri = LinkHelpers.sanitizeUrl(file);\r\n const handleClick = (e) => {\r\n e.preventDefault();\r\n const link = document.createElement('a');\r\n link.href = sanitizedFileUri;\r\n link.download = title;\r\n link.click();\r\n link.remove();\r\n }\r\n\r\n //TODO: Translate this\r\n return \r\n}\r\n\r\nconst PDF = ({ uri, fileTitle, format }) => {\r\n // const token = UTILITIESHELPER.getAuthToken();\r\n // const baseDomain = UTILITIESHELPER.getBaseDomain();\r\n fileTitle=UTILITIESHELPER.removeLargeSpacesFromRichText(fileTitle);\r\n fileTitle = fileTitle.replace(/\\u2013|\\u2014/g, \"-\");\r\n fileTitle= UTILITIESHELPER.removeSpecialCharacterFromFileName(fileTitle);\r\n fileTitle = UTILITIESHELPER.restrictLengthOfFileName(fileTitle);\r\n const composedTitle = `${fileTitle.replaceAll('/', '%2F')}${format}`;\r\n const [numPages, setNumPages] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n const [pageWidth, setPageWidth] = useState(null);\r\n const { searchText, setSearchText, setPdfPage } = useArticleContext();\r\n const [textItems, setTextItems] = useState();\r\n const [pdfDoc, setPdfDoc] = useState(null);\r\n const [composedUri, setComposedUri] = useState(\"\");\r\n const [blobUri, setBlobUri] = useState(null);\r\n const [isPDFRendered, setIsPDFRendered] = useState(false);\r\n\r\n // Ref to PDF Document div element\r\n const inputRef = useRef();\r\n const handleResize = (entries) => {\r\n if (!Array.isArray(entries)) {\r\n return;\r\n }\r\n\r\n const entry = entries[0];\r\n // HACK: subtract 2px to compensate for border width due to clipping\r\n setPageWidth(entry.contentRect.width - 2);\r\n }\r\n useEffect(() => {\r\n loadPdf();\r\n \r\n }, []);//eslint-disable-line\r\n const loadPdf = async () => {\r\n const blob = await RETRIEVALSERVICES.requestPdfLoading(uri, composedTitle);\r\n setBlobUri(window.URL.createObjectURL(blob))\r\n let base64String;\r\n let reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onloadend = () => {\r\n base64String = reader.result;\r\n setComposedUri(base64String?.substr(base64String?.indexOf(',') + 1));\r\n };\r\n }\r\n \r\n // useEffect(()=>{\r\n\r\n // if (document.readyState === 'complete') {\r\n\r\n // setTimeout(function() {\r\n // navigateToSearchPahse();\r\n // }, 1000);\r\n // } else {\r\n // window.addEventListener('ready', navigateToSearchPahse);\r\n // // Remove the event listener when component unmounts\r\n // return () => window.removeEventListener('load', navigateToSearchPahse);\r\n // }\r\n // },[])\r\n\r\n // using LayoutEffect hook to avoid repaint via sync execution\r\n useLayoutEffect(() => {\r\n if (!inputRef.current) {\r\n return;\r\n }\r\n\r\n let RO = new ResizeObserver(handleResize);\r\n RO.observe(inputRef.current);\r\n\r\n return () => {\r\n RO.disconnect();\r\n RO = null;\r\n }\r\n\r\n }, [inputRef])\r\n\r\n const onDocumentLoadSuccess = useCallback(async (loadedPdfDoc) => {\r\n setPdfDoc(loadedPdfDoc);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const fetchPageContent = async () => {\r\n if (pdfDoc) {\r\n setNumPages(pdfDoc.numPages);\r\n const page = await pdfDoc.getPage(pageNumber);\r\n const content = await page.getTextContent();\r\n const texts = content.items;\r\n setTextItems(texts);\r\n }\r\n };\r\n\r\n fetchPageContent();\r\n \r\n if(pageNumber !== undefined && isPDFRendered)\r\n {\r\n onNavigableItemClick({\r\n pageNumber: pageNumber\r\n });\r\n }\r\n\r\n return () => {\r\n // Perform any necessary cleanup here\r\n };\r\n }, [pageNumber, pdfDoc]);\r\n\r\n const onNavigableItemClick = ({ pageNumber }) => {\r\n setPageNumber(pageNumber);\r\n const element = document.querySelector(`[data-page-number=\"${pageNumber}\"]`);\r\n if (element) {\r\n element.scrollIntoView({\r\n behavior: 'auto',\r\n block: 'start',\r\n inline: 'center'\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n const onKeyboardUp = (e) => {\r\n if (e.keyCode === 37) {\r\n onNavigableItemClick({\r\n pageNumber: Math.max(1, pageNumber - 1)\r\n });\r\n setSearchText(searchText)\r\n }\r\n\r\n if (e.keyCode === 39) {\r\n onNavigableItemClick({\r\n pageNumber: Math.min(numPages, pageNumber + 1)\r\n });\r\n setSearchText(searchText)\r\n }\r\n\r\n e.stopPropagation();\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener('keyup', onKeyboardUp);\r\n\r\n return () => {\r\n document.removeEventListener('keyup', onKeyboardUp);\r\n }\r\n })\r\n\r\n const textRenderer = useCallback(textItem => {\r\n // If no search text, return original string\r\n if (!searchText) {\r\n return textItem.str;\r\n }\r\n const marked = SearchHelpers.apply(textItem.str, searchText, true, textItems, textItem);\r\n return ReactHtmlParser(marked);\r\n }, [searchText, textItems]);\r\n\r\n const getTextSuccess = (current) => {\r\n const element = document.querySelector('.highlight-search');\r\n if (element) {\r\n element.scrollIntoView({\r\n behavior: 'auto',\r\n block: 'center',\r\n inline: 'center'\r\n });\r\n }\r\n if(current === numPages)\r\n {\r\n setIsPDFRendered(true);\r\n }\r\n setPdfPage(true);\r\n }\r\n\r\n return (\r\n
\r\n \r\n {Array.from(new Array(numPages), (el, index) => ({getTextSuccess(index+1)}}\r\n />))}\r\n \r\n \r\n
\r\n )\r\n};\r\n\r\nexport default PDF;\r\n","import SearchHelpers from \"./SearchHelpers\";\r\n\r\nconst getTextWithSearchHighlight = (markup, searchText) => {\r\n let htmlContent = '';\r\n if (markup === null) return \"\";\r\n if (!markup || !/[a-zA-Z0-9]/g.test(searchText)) return markup ?? \"\";\r\n\r\n if (typeof markup === \"string\" || markup instanceof String) {\r\n htmlContent = markup;\r\n } else {\r\n htmlContent = `${markup}`;\r\n }\r\n \r\n const markHtml = SearchHelpers.apply(htmlContent ?? \"\", searchText);\r\n return markHtml;\r\n};\r\n\r\nexport default getTextWithSearchHighlight;\r\n","\r\nimport React from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport PDF from './PDF';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport cx from 'classnames';\r\n\r\n//For search\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport RETRIEVALSERVICES from '../../services/rp-service';\r\n\r\n\r\nexport const getIconSrc = (_format) => {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(_format)) {\r\n if (_format === \".pdf\")\r\n return '/images/pdf-file.svg';\r\n else if (_format?.startsWith(\".x\"))\r\n return '/images/microsoft-excel.svg';\r\n else if (_format?.startsWith(\".d\"))\r\n return '/images/microsoft-word.svg';\r\n else if (_format?.startsWith(\".p\"))\r\n return '/images/microsoft-powerpoint.svg';\r\n else\r\n return '/images/undefined-doc.svg';\r\n }\r\n else {\r\n return '/images/undefined-doc.svg';\r\n }\r\n}\r\n\r\nconst File = ({\r\n binaryItemGUID,\r\n fileTitle,\r\n format,\r\n date,\r\n displayName,\r\n description,\r\n templateNote,\r\n bytes,\r\n uri,\r\n hasSubItemsOrSiblings,\r\n shouldIndent,\r\n isDownloadPdfView,\r\n text,\r\n displayDownload\r\n}) => {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(format))\r\n format = format.toLowerCase();\r\n\r\n const { searchText = \"\" } = useArticleContext() || {};\r\n const { getLabel } = usePageContextLabels();\r\n fileTitle = (fileTitle.includes(\"/\")) ? fileTitle.replaceAll(\"/\", \"_\") : fileTitle;\r\n if (format === '.pdf' && displayDownload !== \"true\") {\r\n const pdfProps = { fileTitle, format, uri }\r\n return
\r\n

\r\n {getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(description)), searchText)}\r\n

\r\n \r\n
\r\n }\r\n //const token = UTILITIESHELPER.getAuthToken();\r\n // const downloadLink = UTILITIESHELPER.getBaseDomain() + \"/secure/download/\" + token + \"/\" + uri + \"/\" + UTILITIESHELPER.removeSpecialCharacterFromFileName(fileTitle) + format;\r\n // XSS Link Sanitization\r\n // const sanitizedDownloadLink = LinkHelpers.sanitizeUrl(downloadLink);\r\n const sanitizedDownloadLink = () => {\r\n fileTitle = UTILITIESHELPER.removeLargeSpacesFromRichText(fileTitle);\r\n fileTitle = fileTitle.replace(/\\u2013|\\u2014/g, \"-\").replace(/[^\\x00-\\x7F]/g, \"\"); //handle any non-ascii chars in the filename\r\n fileTitle = UTILITIESHELPER.removeSpecialCharacterFromFileName(fileTitle);\r\n fileTitle = UTILITIESHELPER.restrictLengthOfFileName(fileTitle);\r\n RETRIEVALSERVICES.requestFile(uri, fileTitle + format);\r\n };\r\n\r\n var filename = fileTitle + format + ` (${UTILITIESHELPER.formatBytes(bytes, 0)})`;\r\n const dateValue = UTILITIESHELPER.formatDate(date);\r\n return (\r\n
\r\n

{getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(displayName)), searchText)}

\r\n\r\n \r\n \r\n {getTextWithSearchHighlight(getLabel(\"b_BinaryCurrentAsOf\", \"Current as of:\"), searchText)} {getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(dateValue)), searchText)}\r\n \r\n \r\n
\r\n

{getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(description === undefined?\"\":description)), searchText)}

\r\n
\r\n \"Binary\r\n
{getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(filename)), searchText)}
\r\n
\r\n
\r\n {/*eslint-disable-next-line*/}\r\n \r\n {getLabel(\"b_BinaryDownload\", \"Download\")}\r\n \r\n
\r\n {templateNote &&

{getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(templateNote)), searchText)}

}\r\n
\r\n \r\n
\r\n {getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(text)), searchText)}\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default File;","\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst ListItem = ({href, children}) => {\r\n return (\r\n
  • \r\n \r\n {children}\r\n \r\n
  • \r\n )\r\n};\r\n\r\nexport default ListItem;\r\n","\r\nimport React from 'react';\r\nimport cx from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst ViewAll = ({ href, text, className }) => {\r\n return (\r\n \r\n {text}\r\n \r\n )\r\n}\r\n\r\nexport default ViewAll;\r\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst TriggerEl = ({\r\n placeholder,\r\n getSearchWord,\r\n searchValue,\r\n showContainerValue,\r\n}) => {\r\n const inputRef = useRef(null);\r\n\r\n const handleOutsideClick = useCallback((event) => {\r\n if (inputRef.current && !inputRef.current.contains(event.target)) {\r\n showContainerValue(false);\r\n }\r\n }, [inputRef]); \r\n\r\n useEffect(() => {\r\n document.addEventListener('click', handleOutsideClick, false);\r\n\r\n return () => {\r\n document.removeEventListener('click', handleOutsideClick, false);\r\n }\r\n\r\n }, []);//eslint-disable-line\r\n\r\n function triggerOnClickHandler() {\r\n showContainerValue((preVal) => {\r\n !preVal === false && inputRef.current.blur();\r\n return !preVal;\r\n });\r\n }\r\n\r\n function onEnterKeyPress(event) {\r\n if (event.key === \"Enter\") {\r\n inputRef.current.focus();\r\n showContainerValue(true);\r\n }\r\n }\r\n\r\n return (\r\n \r\n getSearchWord(e.target.value)}\r\n value={searchValue}\r\n tabIndex=\"-1\"\r\n />\r\n
    \r\n );\r\n};\r\n\r\nconst CollectionDropdown = ({ placeholder, options }) => {\r\n const [value, setValue] = useState(\"\");\r\n const [isShowContainer, setIsShowContainer] = useState(false);\r\n\r\n function ListItem({ item }) {\r\n return (\r\n {\r\n if (event.key === \"Enter\") {\r\n window.location.href = item.href;\r\n }\r\n }}\r\n >\r\n
    \r\n {item.name}\r\n
    \r\n \r\n );\r\n }\r\n\r\n const OptionsList = ({ options }) => {\r\n let filteredList = options.filter(\r\n (option) =>\r\n option.name.toLowerCase().includes(value.toLowerCase()) || !value\r\n );\r\n if (filteredList.length > 0) {\r\n filteredList = [...filteredList].sort((a, b) =>\r\n a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1,\r\n );\r\n }\r\n return (\r\n <>\r\n {filteredList.length > 0 ? (\r\n filteredList.map((item) => )\r\n ) : (\r\n
    {\"No option\"}
    \r\n )}\r\n \r\n );\r\n };\r\n\r\n function getSearchWord(val) {\r\n setValue(val);\r\n }\r\n\r\n function getContainerShowVal(isShow) {\r\n setIsShowContainer(isShow);\r\n }\r\n\r\n const onKeyboardUpAndDown = useCallback((e) => {\r\n const itemList = document.querySelectorAll(\".collection-menu-list a\");\r\n if (itemList && itemList.length) {\r\n const items = Array.from(itemList);\r\n if (!items.length) return\r\n let index = -1;\r\n if (e.target.type !== 'text')\r\n index = items.indexOf(e.target);\r\n if (e.keyCode === 38 && index > 0) {\r\n index--;\r\n addFocusStyleSheet(index, items);\r\n } else if (e.keyCode === 40 && index < items.length - 1) {\r\n index++;\r\n addFocusStyleSheet(index, items);\r\n }\r\n if (e.keyCode === 40 || e.keyCode === 38) {\r\n e.preventDefault();\r\n }\r\n }\r\n },[]);\r\n\r\n function addFocusStyleSheet(index, items) {\r\n items.forEach((item) => { item.getElementsByTagName('div')[0].classList.remove(\"collection-menu-option-focus-style\"); });\r\n items[index].getElementsByTagName('div')[0].classList.add(\"collection-menu-option-focus-style\");\r\n items[index].focus();\r\n }\r\n\r\n useEffect(() => {\r\n const dropdownListContainer = document.querySelector(\".catalog-box\");\r\n dropdownListContainer.addEventListener('keydown', onKeyboardUpAndDown);\r\n return () => {\r\n dropdownListContainer.removeEventListener('keydown', onKeyboardUpAndDown);\r\n }\r\n }, [onKeyboardUpAndDown])\r\n\r\n return (\r\n
    \r\n \r\n\r\n {isShowContainer && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default CollectionDropdown;\r\n","import { useEffect, useState,useRef } from 'react';\r\nimport { useQuery } from 'react-query';\r\nimport RETRIEVALSERVICES from './rp-service';\r\nimport useFetchWithMsal from '../hooks/useFetchWithMsal';\r\nimport CONTEXTHELPERS from \"../helpers/ContextHelpers\";\r\nimport { FOLIO_SUBJECT_ACCOUNT, FOLIO_SUBJECT_NON_ACCOUNT, Learning_Resources_Dummy_Response, REGEX_PATTERN } from '../components/Constants/Constants';\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\nimport ProfileHelpers from '../helpers/ProfileHelpers';\r\nimport { logs, page } from '../helpers/log';\r\nimport { ErrorCodes, ErrorMessages, ResearchAssisantErrorMessages } from '../components/Constants/Errors';\r\nimport { usePageContext, usePageContextLabels } from '../contexts/PageContext';\r\nimport { PAGE_CONTROLLER_TYPE,PUBLICATIONTYPE_IDS } from '../components/Constants/Constants.js';\r\n\r\n\r\n\r\n/**\r\n * Custom hook to get User Information API using bearer token obtained from MSAL\r\n * @returns\r\n */\r\nfunction useDCSService() {\r\n const { apiCall } = useFetchWithMsal();\r\n const { getLabel } = usePageContextLabels();\r\n const { context, getMemberFirmIDs, getMemberFirmLanguages, getMemberFirmID,countryKDSettings } = usePageContext();\r\n const memberfirm = context.memberFirm;\r\n const language = context.language;\r\n const DCSEndPoint = (window.DART && window.DART.ENV) ? window.DART.ENV.REACT_APP_DCS_ENDPOINT_API : undefined;\r\n const KnowledgeDomain = context.knowledgeDomain;\r\n const SearchEndPoint = (window.DART && window.DART.ENV) ? window.DART.ENV.REACT_APP_SEARCH_ENDPOINT_API : undefined;\r\n const customheaders = { \"INK_CONTENT_PRERELEASE\": (window.DART && window.DART.ENV) && (window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE ? window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE : window.DART.ENV.RP_REACT_APP_PREVIEW) };\r\n /**\r\n * Execute a fetch request with the given options\r\n * @returns JSON response\r\n * @param publicationType\r\n */\r\n // Used to prevent state updates after unmount\r\n const mounted = useRef(true);\r\n useEffect(() => {\r\n return () => {\r\n mounted.current = false;\r\n };\r\n }, []);\r\n\r\n //PRIVATE FUNCTIONS:\r\n const formatLink = (item, querySpec, collectionType) => {\r\n if (collectionType) {\r\n collectionType = (collectionType !== PAGE_CONTROLLER_TYPE.standards) ? collectionType : (item.publication_type !== PUBLICATIONTYPE_IDS.standards) ? PAGE_CONTROLLER_TYPE.standard :collectionType; \r\n const linkExternal = [collectionType, (item.url.replaceAll('%2f','/'))].join(\"/\");\r\n const url = [window.location.origin,memberfirm,language,KnowledgeDomain,linkExternal].join(\"/\");\r\n return {\r\n linkText: (collectionType === \"deloitte-communications\" || collectionType === \"professional-news\") && item?.journal_brand ? item.journal_brand + \": \" + item.title : item.title,\r\n PublicationGUID: item.id,\r\n PublicationType: UTILITIESHELPER.isStringNullorEmpty(item.publication_type) ? null : item.publication_type ,\r\n linkInternal: {\r\n Id: item.id,\r\n LinkUrl: (item.url.replaceAll('%2f','/')),\r\n PublicationGUID: item.id\r\n },\r\n linkDocs: null,\r\n linkExternal,\r\n linkAltText: item.alt_title,\r\n url:url,\r\n context : item.context\r\n }\r\n }\r\n\r\n return item;\r\n }\r\n\r\n const formatDelCummAndProfNewsCollectionLink = (data, querySpec, collectionType) => {\r\n let collectionObject = { alllinkItems: [], allcollectionsItems : []}\r\n let allLinksItems = [];\r\n if (collectionType) {\r\n allLinksItems = data.flatMap(journal => journal.items)?.sort((a, b) => new Date(b.current_date) - new Date(a.current_date)).map(item => {\r\n const linkExternal = [collectionType, (item.url.replaceAll('%2f', '/'))].join(\"/\");\r\n const url = [window.location.origin, memberfirm, language, KnowledgeDomain, linkExternal].join(\"/\");\r\n return {\r\n linkText: (collectionType === \"deloitte-communications\" || collectionType === \"professional-news\") && item?.journal_brand ? item.journal_brand + \": \" + item.title : item.title,\r\n PublicationGUID: item.id,\r\n PublicationType: UTILITIESHELPER.isArrayNullorEmpty(querySpec.publication_type) ? null : querySpec.publication_type[0],\r\n linkInternal: {\r\n Id: item.id,\r\n LinkUrl: (item.url.replaceAll('%2f', '/')),\r\n PublicationGUID: item.id\r\n },\r\n linkDocs: null,\r\n linkExternal,\r\n linkAltText: item.alt_title,\r\n url: url,\r\n context: item.context\r\n }\r\n })\r\n }\r\n collectionObject.alllinkItems = allLinksItems;\r\n collectionObject.allcollectionsItems = data;\r\n return collectionObject;\r\n }\r\n\r\n //PUBLIC FUNCTIONS\r\n const getQueryKey = (querySpec,keyprefix) => {\r\n let queryKey = `${keyprefix}-${[...querySpec.knowledge_domain]}-${querySpec.member_firm ? [...querySpec.member_firm] : getMemberFirmIDs()}`;\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.publication_type)) {\r\n queryKey = `${queryKey}-${querySpec.publication_type}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.tier)) {\r\n queryKey = `${queryKey}-${[...querySpec.tier]}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.industry)) {\r\n queryKey = `${queryKey}-${[...querySpec.industry]}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.audit_workflow_area_account)) {\r\n queryKey = `${queryKey}-${[...querySpec.audit_workflow_area_account]}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.audit_workflow_area_nonaccount)) {\r\n queryKey = `${queryKey}-${[...querySpec.audit_workflow_area_nonaccount]}`;\r\n }\r\n return queryKey\r\n }\r\n\r\n const generateQuerySpec = (publicationType, result_limit, isTaxonomy=false) => {\r\n \r\n const knowledgeDomainID = CONTEXTHELPERS.getknowledgeDomainId(context.knowledgeDomain);\r\n\r\n let audit_workflow_area_account = [];\r\n let audit_workflow_area_nonaccount = [];\r\n //Dynamic queries are only there in Guidebooks (for now)\r\n if (context.pageControllerType === \"folio\")\r\n {\r\n //e.g. Direction-Supervision-and-Review_66019141-66029848\r\n const pageDynamicQuery = context.pageFileName.split(\"_\");\r\n if (pageDynamicQuery.length > 1 && !isTaxonomy )\r\n {\r\n //e.g. 66019141-66029848\r\n const pageDynamicCategory = pageDynamicQuery[1].split(\"-\");\r\n\r\n if (pageDynamicCategory.length > 1 )\r\n {\r\n //e.g. 66019141\r\n switch (pageDynamicCategory[0])\r\n {\r\n case FOLIO_SUBJECT_ACCOUNT.accountBalance:\r\n case FOLIO_SUBJECT_ACCOUNT.auditingAccountingFolios:\r\n case FOLIO_SUBJECT_ACCOUNT.accountingFolios:\r\n audit_workflow_area_account = [ pageDynamicCategory[1] ]; //e.g. 66029848\r\n break;\r\n\r\n case FOLIO_SUBJECT_NON_ACCOUNT.nonAccountBalance:\r\n case FOLIO_SUBJECT_NON_ACCOUNT.auditingNonAccountFolios:\r\n case FOLIO_SUBJECT_NON_ACCOUNT.assuranceFolios:\r\n audit_workflow_area_nonaccount = [ pageDynamicCategory[1] ]; //e.g. 66029848\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n \r\n return {\r\n toc: false,\r\n result_limit: result_limit,\r\n member_firm: getMemberFirmIDs(),\r\n default_language: context.language,\r\n languages: getMemberFirmLanguages(),\r\n knowledge_domain: [knowledgeDomainID],\r\n publication_type: publicationType ? [publicationType] : null,\r\n tier: CONTEXTHELPERS.getTierIds(context.memberFirm, context.knowledgeDomain),\r\n industry: CONTEXTHELPERS.getIndustryIds(context.memberFirm, context.knowledgeDomain),\r\n audit_workflow_area_account,\r\n audit_workflow_area_nonaccount,\r\n effective_date: new Date(),\r\n version: 0\r\n }\r\n }\r\n\r\n const raErrorHandler = (request, error, response) =>{\r\n logs.error(page.DCSService, 'RPService', \"Error in chatBot search api\", request.url);\r\n switch (true) {\r\n case REGEX_PATTERN.error4xxSeries.test(error.message):\r\n error.message = getLabel('err_RaUnableToRetrieve400', ResearchAssisantErrorMessages.ra_errormessage_400);\r\n return error;\r\n case REGEX_PATTERN.error5xxSeries.test(error.message):\r\n error.message = getLabel('err_RaUnableToRetrieve500', ResearchAssisantErrorMessages.ra_errormessage_500);\r\n return error;\r\n case !REGEX_PATTERN.anyDigit.test(error.message):\r\n error.message = getLabel('err_RaUnableToRetrieve500', ResearchAssisantErrorMessages.ra_errormessage_500);\r\n return error;\r\n default:\r\n return response;\r\n }\r\n }\r\n\r\n async function getCatalogSections(requestbody, collectionType) {\r\n let dataFormated = [];\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(requestbody);\r\n if (KnowledgeDomain === \"accounting\") {\r\n collectionType = collectionType === \"manual\" ? \"guidance\" : collectionType;\r\n }\r\n else {\r\n collectionType = collectionType === \"guidance\" ? \"manual\" : collectionType;\r\n\r\n }\r\n let request = {\r\n url: `${DCSEndPoint}/catalog/${KnowledgeDomain}/${collectionType}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n dataFormated = (UTILITIESHELPER.isNullOrUndefined(data) || data.length === 0) ? [] : data.map(item => formatLink(item, requestbody, collectionType));\r\n logs.debug(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections:[retrieveLinks collectionType, dataFormated]:\", collectionType, dataFormated);\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections DEBUG ERROR:[collectionType, request, error]:\", collectionType, request, error);\r\n logs.error(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections:\" + ErrorMessages.catalogSections + \" for collection \" + collectionType, error, { eventId: ErrorCodes.Catalog });\r\n dataFormated = null;\r\n }\r\n\r\n return dataFormated;\r\n };\r\n\r\n //For Announcement collection page\r\n async function getDelCummAndProfNewsCollectionSections(requestbody, collectionType, collectionName) {\r\n let dataFormated = [];\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(requestbody);\r\n if (KnowledgeDomain === \"accounting\") {\r\n collectionType = collectionType === \"manual\" ? \"guidance\" : collectionType;\r\n }\r\n else {\r\n collectionType = collectionType === \"guidance\" ? \"manual\" : collectionType;\r\n\r\n }\r\n let request = {\r\n url: `${DCSEndPoint}/catalog/${KnowledgeDomain}/${collectionName}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n dataFormated = (UTILITIESHELPER.isNullOrUndefined(data) || data.length === 0) ? [] : formatDelCummAndProfNewsCollectionLink(data, requestbody, collectionType);\r\n logs.debug(page.DCSService, 'getDelCummAndProfNewsCollectionSections', \"useDCSService::getDelCummAndProfNewsCollectionSections:[retrieveLinks collectionType, dataFormated]:\", collectionType, dataFormated);\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'getDelCummAndProfNewsCollectionSections', \"useDCSService::getDelCummAndProfNewsCollectionSections DEBUG ERROR:[collectionType, request, error]:\", collectionType, request, error);\r\n logs.error(page.DCSService, 'getDelCummAndProfNewsCollectionSections', \"useDCSService::getDelCummAndProfNewsCollectionSections:\" + ErrorMessages.catalogSections + \" for collection \" + collectionType, error, { eventId: ErrorCodes.Catalog });\r\n dataFormated = null;\r\n }\r\n\r\n return dataFormated;\r\n };\r\n async function getFolioSection(requestbody, sectionFriendlyPath) {\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(requestbody);\r\n const learningResourcePayload = {\r\n \"member_firm\": requestOptions.body.member_firm,\r\n \"audit_workflow_area_nonaccount\": requestOptions.body.audit_workflow_area_nonaccount\r\n\r\n }\r\n let request = {\r\n url: `${DCSEndPoint}/folio/${sectionFriendlyPath}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n const dataFormated = (UTILITIESHELPER.isArrayNullorEmpty(data) || data?.length === 0) ? [] : data;\r\n //logs.debug(page.DCSService, 'getFolioSection', \"useDCSService::getFolioSection[sectionFriendlyPath, dataFormated]:\", sectionFriendlyPath, dataFormated);\r\n return dataFormated;\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'getFolioSection', \"useDCSService::getFolioSection DEBUG ERROR:[sectionFriendlyPath, request, error]:\", sectionFriendlyPath, request, error);\r\n logs.error(page.DCSService, 'getFolioSection', \"useDCSService::getFolioSection:\" + ErrorMessages.folioSections + \" for section \" + sectionFriendlyPath, error, { eventId: ErrorCodes.FolioSectionTOC });\r\n //dataFormated = null;\r\n return [];\r\n }\r\n\r\n };\r\n\r\n async function retrievePublicationForTopic(requestbody, topicId, publicationId)\r\n {\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(requestbody);\r\n let request = {\r\n url: `${DCSEndPoint}/publication/${publicationId}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n const dataFormated = (UTILITIESHELPER.isArrayNullorEmpty(data) || data?.length === 0) ? [] : data;\r\n return dataFormated;\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'retrievePublication', \"useDCSService::retrievePublication DEBUG ERROR:[topicGuid, request, error]:\", publicationId, request, error);\r\n logs.error(page.DCSService, 'retrievePublication', \"useDCSService::retrieveTopic:\" + ErrorMessages.linkTopic + \" for topic \" + publicationId, error, { eventId: ErrorCodes.Link });\r\n return [];\r\n }\r\n }\r\n\r\n async function retrieveChatBotSearchResult(payload, signal = null) {\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(payload);\r\n let request = {\r\n url: `${SearchEndPoint}/ResearchAssistant/search`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n \r\n //retrieve file and trigger download on user's side\r\n //Added a try catch and await ,since Promise .then is not resolving here \r\n var response=null;\r\n try {\r\n response = await apiCall(request, customheaders, signal);\r\n return response;\r\n }\r\n catch(error) {\r\n var result = raErrorHandler(request, error, response);\r\n return result;\r\n }\r\n }\r\n\r\n async function researchAssistantUserFeedback(payload) {\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(payload);\r\n let request = {\r\n url: `${SearchEndPoint}/ResearchAssistant/userFeedBack`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n \r\n var response=null;\r\n try {\r\n response = await apiCall(request, customheaders);\r\n \r\n }\r\n catch {\r\n logs.error(page.DCSService, 'RPService', \"Error in Research Assistant user feedback api\", request.url);\r\n }\r\n finally {\r\n return response;\r\n }\r\n }\r\n async function retrieveFrameworkList(taxonomyMemberFirmContext) {\r\n let request = {\r\n url: `${DCSEndPoint}/taxonomy/framework?memberFirmIds=${taxonomyMemberFirmContext}&asHierarchical=true&includeRelations=true`,\r\n method: 'GET',\r\n mode: 'cors'\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n return data\r\n logs.debug(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections:[retrieveLinks dataFormated]:\", data);\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections DEBUG ERROR:[request, error]:\", request, error);\r\n logs.error(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections:\" + ErrorMessages.catalogSections + \" for collection \" + error, { eventId: ErrorCodes.Catalog });\r\n return null;\r\n }\r\n }\r\n\r\n\r\n async function retrieveFolioTaxonomyLists(requestbody, pubLandingUrl)\r\n {\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(requestbody);\r\n let url = '';\r\n var taxonomyType = pubLandingUrl.match(/_(\\d+)/);\r\n const taxonomyTypeId = taxonomyType ? taxonomyType[0] : '';\r\n console.log(\"taxonomyTypeId =>\", taxonomyTypeId);\r\n switch (true) {\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_NON_ACCOUNT.auditingNonAccountFolios):\r\n url = `publication/nonAccountsList`;\r\n break;\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_ACCOUNT.auditingAccountingFolios):\r\n url = `publication/AccountsList`;\r\n break;\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_NON_ACCOUNT.assuranceFolios):\r\n url = `publication/assuranceNonAccountsList`;\r\n break;\r\n }\r\n console.log(\"URL =>\", url)\r\n let request = {\r\n url: `${DCSEndPoint}/${url}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n \r\n try {\r\n const data = await apiCall(request, customheaders);\r\n const dataFormated = (UTILITIESHELPER.isArrayNullorEmpty(data) || data?.length === 0) ? [] : data;\r\n return dataFormated;\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'retrievePublication', \"useDCSService::retrievePublication DEBUG ERROR:[ request, error]:\", request, error);\r\n logs.error(page.DCSService, 'retrievePublication', \"useDCSService::retrieveTopic:\" + ErrorMessages.linkTopic + \" for topic \" + error, { eventId: ErrorCodes.Link });\r\n return [];\r\n }\r\n }\r\n\r\n async function retrieveFolioLists(taxonomyMemberFirmContext)\r\n {\r\n let request = {\r\n url: `${DCSEndPoint}/taxonomy/folios?memberFirmIds=${taxonomyMemberFirmContext}&asHierarchical=true&includeRelations=true`,\r\n method: 'GET',\r\n mode: 'cors'\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n return data\r\n logs.debug(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections:[retrieveLinks dataFormated]:\", data);\r\n }\r\n catch (error) {\r\n logs.debug(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections DEBUG ERROR:[request, error]:\", request, error);\r\n logs.error(page.DCSService, 'getCatalogSections', \"useDCSService::getCatalogSections:\" + ErrorMessages.catalogSections + \" for collection \" + error, { eventId: ErrorCodes.Catalog });\r\n return null;\r\n }\r\n }\r\n\r\n\r\n //NOTE: YOU HAVE TO INCLUDE YOUR USE CODE EXACTLY AS THEY APEAR:\r\n //const { generateQuerySpec, getQueryKey, getCatalogSections, getFolioSection } = useDCSService();\r\n return {\r\n //Public Functions\r\n generateQuerySpec,\r\n getQueryKey,\r\n //Retreival Functions\r\n getCatalogSections,\r\n getFolioSection,\r\n retrieveChatBotSearchResult,\r\n researchAssistantUserFeedback,\r\n retrievePublicationForTopic,\r\n getDelCummAndProfNewsCollectionSections,\r\n retrieveFrameworkList,\r\n retrieveFolioTaxonomyLists,\r\n retrieveFolioLists\r\n };\r\n};\r\n\r\nexport default useDCSService;\r\n","import { useQuery } from 'react-query';\r\nimport { get } from 'lodash';\r\nimport useDCSService from '../services/useDCSService';\r\nimport { usePageContext } from '../contexts/PageContext';\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\n\r\nconst useCatalogSectionsQuery = (collection) => {\r\n const { generateQuerySpec, getQueryKey, getCatalogSections } = useDCSService();\r\n const { context, getMemberFirmID } = usePageContext();\r\n\r\n let querySpec = collection.publicationType ? generateQuerySpec(collection.publicationType, get(collection, 'resultLimit', 0)) : null;\r\n let queryKey = querySpec ? getQueryKey(querySpec, 'CatalogSections') : `${context.knowledgeDomain}-${getMemberFirmID()}-${collection.collectionType}`;\r\n\r\n const retrieveLinks = async (collection) => {\r\n const linksPromise = () => collection.links ? collection.links : [];\r\n const linksFromService = async () => {\r\n try {\r\n const data = await getCatalogSections(querySpec, collection.collectionType);\r\n const dataFormated = (UTILITIESHELPER.isArrayNullorEmpty(data) || data?.length === 0) ? [] : data;\r\n //ALREADY LOGGED IN getCatalogSections! : logs.debug(page.DCSService, 'retrieveLinks', \"retrieveLinks collectionType, dataFormated\", collection.collectionType, dataFormated);\r\n return dataFormated;\r\n }\r\n catch (error) {\r\n //ALREADY LOGGED IN getCatalogSections! : logs.error(page.DCSService, 'retrieveLinks', ErrorMessages.catalogSections + ' for ' + collection.collectionType, error, { eventId: ErrorCodes.Catalog });\r\n return [];\r\n }\r\n }\r\n\r\n return collection.publicationType ? await linksFromService() : linksPromise();\r\n }\r\n\r\n return useQuery(queryKey, () => retrieveLinks(collection))\r\n};\r\n\r\nexport default useCatalogSectionsQuery;\r\n","import React from 'react';\r\nimport cx from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\nimport LinkHelpers from '../../helpers/LinkHelpers';\r\nimport { get } from 'lodash';\r\nimport { getIconSrc } from \"../Article/File\";\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport ListItem from '../Common/ListItem';\r\nimport ViewAll from '../Common/ViewAll';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport CollectionDropdown from \"./CollectionDropdown\";\r\nimport useCatalogSectionsQuery from \"../../hooks/useCatalogSectionsQuery\";\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\n\r\n\r\nconst CatalogBox = ({ className, collection, currentPosition }) => {\r\n const { getLabel, getMFLabel } = usePageContextLabels()\r\n const friendlyUrl = get(collection, 'collectionType', \"\");\r\n const taxonomylists = get(collection, 'taxonomylist', []);\r\n const icon = get(collection, 'icon.Url') || getIconSrc(friendlyUrl);\r\n const altText = get(collection, 'friendlyUrl');\r\n const viewAllLabel = get(collection, 'viewAllLabel');\r\n const viewAllText = (viewAllLabel !== null && friendlyUrl !== \"folio\") ? getLabel(viewAllLabel, \"View Collection\") : \"\";\r\n const viewAllLink = (friendlyUrl.indexOf(\"dashboard\") > -1) ? [friendlyUrl].join(\"/\") : [\"collection\", friendlyUrl].join(\"/\");\r\n const name = getMFLabel(get(collection, 'title'), \"get(currentCollection, 'title')\");\r\n const description = getMFLabel(get(collection, 'intro'), \"get(currentCollection, 'intro')\");\r\n const listTitle = getMFLabel(get(collection, 'linkstitle'), \"get(currentCollection, 'linkstitle')\");\r\n const maxItems = get(collection, 'resultLimit');\r\n\r\n //BDP:TODO:Update this to use the context object instead of the parameters, these are in the context/contextMemberFirm (as the context memberfirm!\r\n \r\n let { data: catalogBoxLinks, status } = useCatalogSectionsQuery(collection);\r\n if (!collection.publicationType) {\r\n catalogBoxLinks = collection.links;\r\n }\r\n \r\n const shouldShowLinks = () => {\r\n return (catalogBoxLinks?.length > 0 && status === 'success')\r\n || (status === 'loading' && catalogBoxLinks?.length === 0)\r\n || catalogBoxLinks?.length > 0\r\n };\r\n const sanitizedViewAllLink = LinkHelpers.sanitizeUrl(viewAllLink);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {altText}\r\n
    \r\n
    \r\n

    \r\n -1}>\r\n \r\n {name}\r\n \r\n \r\n \r\n {name}\r\n \r\n

    \r\n
    \r\n {description}\r\n
    \r\n
    \r\n
    \r\n 0}>\r\n {taxonomylists.map((taxonomylistitem, i) => {\r\n return (
    \r\n 0}>\r\n
    \r\n \r\n \r\n {getLabel(\"c_OR\", \"OR\")}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n })}\r\n
    \r\n \r\n {!UTILITIESHELPER.isArrayNullorEmpty(catalogBoxLinks) &&\r\n
    \r\n {listTitle ?

    {listTitle}

    : null}\r\n
      \r\n {catalogBoxLinks.slice(0, maxItems).map((item, i) => {\r\n const href = get(item, 'linkExternal');\r\n return (\r\n \r\n {get(item, 'linkText')}\r\n \r\n )\r\n })}\r\n
    \r\n
    }\r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nCatalogBox.defaultProps = {\r\n listItems: [],\r\n maxItems: 5,\r\n}\r\n\r\nexport default CatalogBox;\r\n","import CatalogBox from \"./CatalogBox\";\r\nimport React from 'react';\r\n\r\n\r\nconst CatalogCards = ({catalogs, isLoading}) => {\r\n const renderCatalogBox = (currentCollection, currentPosition) => {\r\n if (isLoading) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {catalogs.map((collection, i) => {\r\n if (collection.column == null) {\r\n if (i % 2 === 0) {\r\n return renderCatalogBox(collection, 10 + i)\r\n }\r\n } else if (collection.column === 1) {\r\n return renderCatalogBox(collection, 10 + i)\r\n }\r\n return null;\r\n })}\r\n
    \r\n
    \r\n {catalogs.map((collection, i) => {\r\n if (collection.column == null) {\r\n if (i % 2 !== 0) {\r\n return renderCatalogBox(collection, 20 + i)\r\n }\r\n } else if (collection.column === 2) {\r\n return renderCatalogBox(collection, 20 + i)\r\n }\r\n return null;\r\n })}\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default CatalogCards;\r\n","import { useEffect, useState,useRef } from 'react';\r\nimport { useQuery } from 'react-query';\r\nimport RETRIEVALSERVICES from './rp-service';\r\nimport useFetchWithMsal from '../hooks/useFetchWithMsal';\r\nimport CONTEXTHELPERS from \"../helpers/ContextHelpers\";\r\nimport { FOLIO_SUBJECT_ACCOUNT, FOLIO_SUBJECT_NON_ACCOUNT } from '../components/Constants/Constants';\r\nimport UTILITIESHELPER from '../helpers/UtilitiesHelper';\r\nimport { logs, page } from '../helpers/log';\r\nimport { ErrorCodes, ErrorMessages } from '../components/Constants/Errors';\r\nimport { usePageContext } from '../contexts/PageContext';\r\n\r\n/**\r\n * Custom hook to get User Information API using bearer token obtained from MSAL\r\n * @returns\r\n */\r\nconst useSearchService = () => {\r\n const { apiCall } = useFetchWithMsal();\r\n const { context, getMemberFirmIDs,getMemberFirmLanguages,getMemberFirmDefaultLanguage } = usePageContext();\r\n\r\n const SearchEndPoint = (window.DART && window.DART.ENV) ? window.DART.ENV.REACT_APP_SEARCH_ENDPOINT_API : undefined;\r\n const customheaders = { \"INK_CONTENT_PRERELEASE\": (window.DART && window.DART.ENV) && (window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE ? window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE : window.DART.ENV.RP_REACT_APP_PREVIEW) };\r\n /**\r\n * Execute a fetch request with the given options\r\n * @returns JSON response\r\n */\r\n // Used to prevent state updates after unmount\r\n const mounted = useRef(true);\r\n useEffect(() => {\r\n return () => {\r\n mounted.current = false;\r\n };\r\n }, []);\r\n\r\n const getQueryKey = (querySpec,keyprefix) => {\r\n let queryKey = `${keyprefix}-${[...querySpec.knowledge_domain]}-${[...querySpec.member_firm]}`;\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.publication_type)) {\r\n queryKey = `${queryKey}-${querySpec.publication_type}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.tier)) {\r\n queryKey = `${queryKey}-${[...querySpec.tier]}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.industry)) {\r\n queryKey = `${queryKey}-${[...querySpec.industry]}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.audit_workflow_area_account)) {\r\n queryKey = `${queryKey}-${[...querySpec.audit_workflow_area_account]}`;\r\n }\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(querySpec.audit_workflow_area_nonaccount)) {\r\n queryKey = `${queryKey}-${[...querySpec.audit_workflow_area_nonaccount]}`;\r\n }\r\n return queryKey\r\n }\r\n\r\n //BDP:TODO:THIS SHOULD RECEIVE THE PageContext object! IT SHOULD NOT GET IT OR GENERATE IT (AS ITS DONE TWICE IN THIS FUNCTION ALONE!!!)\r\n const generateQuerySpec = (publicationTypes, searchPhrase, result_limit) => {\r\n const knowledgeDomainID = CONTEXTHELPERS.getknowledgeDomainId(context.knowledgeDomain);\r\n \r\n let {tier, industry} = context;\r\n tier = tier ? tier : '';\r\n industry = industry ? industry : '';\r\n\r\n let audit_workflow_area_account = [];\r\n let audit_workflow_area_nonaccount = [];\r\n\r\n //Dynamic queries are only there in Guidebooks (for now)\r\n if (context.pageControllerType === \"folio\")\r\n {\r\n //e.g. Direction-Supervision-and-Review_66019141-66029848\r\n const pageDynamicQuery = context.pageFileName.split(\"_\");\r\n if (pageDynamicQuery.length > 1)\r\n {\r\n //e.g. 66019141-66029848\r\n const pageDynamicCategory = pageDynamicQuery[1].split(\"-\");\r\n if (pageDynamicCategory.length > 1)\r\n {\r\n //e.g. 66019141\r\n switch (pageDynamicCategory[0])\r\n {\r\n case FOLIO_SUBJECT_ACCOUNT.accountBalance:\r\n case FOLIO_SUBJECT_ACCOUNT.auditingAccountingFolios:\r\n case FOLIO_SUBJECT_ACCOUNT.accountingFolios:\r\n audit_workflow_area_account = [ pageDynamicCategory[1] ]; //e.g. 66029848\r\n break;\r\n\r\n case FOLIO_SUBJECT_NON_ACCOUNT.nonAccountBalance:\r\n case FOLIO_SUBJECT_NON_ACCOUNT.auditingNonAccountFolios:\r\n case FOLIO_SUBJECT_NON_ACCOUNT.assuranceFolios:\r\n audit_workflow_area_nonaccount = [ pageDynamicCategory[1] ]; //e.g. 66029848\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {\r\n toc: false,\r\n result_limit: result_limit,\r\n member_firm: getMemberFirmIDs(),\r\n search_phrase: searchPhrase,\r\n default_language: getMemberFirmDefaultLanguage(),\r\n languages:getMemberFirmLanguages(),\r\n knowledge_domain_from_url: context.knowledgeDomain,\r\n knowledge_domain: [knowledgeDomainID],\r\n publication_type: publicationTypes ? publicationTypes : null,\r\n publication_id:[], // default\r\n tier: CONTEXTHELPERS.getTierIds(context.memberFirm, context.knowledgeDomain),\r\n industry: CONTEXTHELPERS.getIndustryIds(context.memberFirm, context.knowledgeDomain),\r\n audit_workflow_area_account,\r\n audit_workflow_area_nonaccount,\r\n effective_date: new Date(),\r\n version: 0\r\n }\r\n }\r\n\r\n const getPublicationTypesByCatalogSection = (catalogsection, KnowledgeDomain) => {\r\n let PublicationType = [];\r\n switch (catalogsection) {\r\n case \"Folios\":\r\n case \"folio\":\r\n //Depending on knowledge domain, we have a different list...\r\n if (KnowledgeDomain ===\"17573178\")\r\n {\r\n //Publication Types that are in an Accounting Folio\r\n PublicationType.push(\"60194863\"); //Roadmap (can appear in a folio and as stand alone manual (so will present as a manual!!)\r\n }\r\n // For Auditing and Assurance\r\n else\r\n {\r\n PublicationType.push(\"60194861\"); //Practical Guides //NOT USED (JENF)\r\n PublicationType.push(\"65683594\");\r\n PublicationType.push(\"60194864\"); // Announcements\r\n PublicationType.push(\"65511719\"); // Announcements External\r\n PublicationType.push(\"66029857\"); //RP Other Guidance\t 66029857\r\n PublicationType.push(\"66029858\"); //FTEO Guide\r\n PublicationType.push(\"68169717\"); //Template Guide (Content Types)\r\n PublicationType.push(\"58035381\");\r\n PublicationType.push(\"68489711\");\r\n }\r\n break;\r\n //Structure Standard (spine publication)\"\r\n case \"Standards\":\r\n case \"standards\":\r\n PublicationType.push(\"48082111\");\r\n PublicationType.push(\"60194865\");//Standard Section - Numbered\r\n break;\r\n //Structure Manual (spine publication)\r\n case \"Manuals\":\r\n case \"manuals\":\r\n PublicationType.push(\"48082110\"); //Manual Section\r\n PublicationType.push(\"60194863\");\r\n PublicationType.push(\"60194866\");//Roadmaps\r\n break;\r\n case \"Journals\":\r\n case \"deloitte-communications\":\r\n PublicationType.push(\"65511719\");\r\n PublicationType.push(\"60194864\");\r\n break;\r\n default:\r\n //Else we have a Journal/other that we are not going to change as its already the ID we need.\r\n break;\r\n }\r\n\r\n return PublicationType;\r\n }\r\n\r\n const getSearchParamsQuerySpec = (searchQuerySpec,pageType,searchParams) => {\r\n let PublicationType = [];\r\n\r\n if(!UTILITIESHELPER.isStringNullorEmpty(searchParams)) {\r\n let pubIDs = searchParams.split(\"/\");\r\n switch(pubIDs[0]) {\r\n case \"publication_id\":\r\n searchQuerySpec.publication_id = [...pubIDs];\r\n searchQuerySpec.publication_id.splice(0,1);\r\n //searchQuerySpec.publication_type = getPublicationTypesByCatalogSection(pageType,searchQuerySpec.knowledge_domain);\r\n break; \r\n default:\r\n break;\r\n }\r\n }\r\n return searchQuerySpec;\r\n }\r\n\r\n async function getCatalogSearchResponses(catalogSection, searchPhrase, resultLimit) {\r\n let querySpec = generateQuerySpec([],searchPhrase,resultLimit); \r\n let dataFormated = [];\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(querySpec);\r\n let request = {\r\n url: `${SearchEndPoint}/search/${catalogSection}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n dataFormated = (data === undefined || data?.length === 0) ? [] : data;\r\n logs.debug(page.Search, 'getCatalogSearchResponses', \"useSearchService::getCatalogSearchResponses:[apiCall collectionType, dataFormated]:\", searchPhrase, dataFormated);\r\n }\r\n catch (error) {\r\n logs.debug(page.Search, 'getCatalogSearchResponses', \"useSearchService::getCatalogSearchResponses DEBUG ERROR:[searchPhrase, request, error]:\", searchPhrase, request, error);\r\n logs.error(page.Search, 'getCatalogSearchResponses', 'Error with search result for ' + [searchPhrase], error, { eventId: ErrorCodes.Search });\r\n dataFormated = null;\r\n }\r\n\r\n return dataFormated;\r\n };\r\n\r\n async function getCollectionSearchResponses(pageType, searchPhrase, resultLimit, searchParams) {\r\n let querySpec = generateQuerySpec([], searchPhrase, resultLimit);\r\n let searchquerySpec = getSearchParamsQuerySpec(querySpec, pageType, searchParams);\r\n //querySpec.publication_type = getPublicationTypesByCatalogSection(pageType,querySpec.knowledge_domain);\r\n let dataFormated = []; \r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(searchquerySpec);\r\n let request = {\r\n url: `${SearchEndPoint}/search/${pageType}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n dataFormated = (data === undefined || data?.length === 0) ? [] : data;\r\n logs.debug(page.Search, 'getCollectionSearchResponses', \"useSearchService::getCollectionSearchResponses:[apiCall collectionType, dataFormated]:\", searchPhrase, dataFormated);\r\n }\r\n catch (error) {\r\n logs.debug(page.Search, 'getCollectionSearchResponses', \"useSearchService::getCollectionSearchResponses DEBUG ERROR:[searchPhrase, request, error]:\", searchPhrase, request, error);\r\n logs.error(page.Search, 'getCollectionSearchResponses', 'Error with search result for ' + [searchPhrase], error, { eventId: ErrorCodes.Search });\r\n dataFormated = null;\r\n }\r\n\r\n return dataFormated;\r\n };\r\n\r\n async function getPublicationSearchResponses(pageType, searchPhrase, resultLimit, searchParams) {\r\n let querySpec = generateQuerySpec([],searchPhrase,resultLimit);\r\n let searchquerySpec = getSearchParamsQuerySpec(querySpec,pageType,searchParams);\r\n let dataFormated = [];\r\n let requestOptions = RETRIEVALSERVICES.contextPostRequestOptions(searchquerySpec);\r\n let request = {\r\n url: `${SearchEndPoint}/search/${pageType}`,\r\n method: 'POST',\r\n mode: 'cors',\r\n body: JSON.stringify(requestOptions.body)\r\n }\r\n\r\n try {\r\n const data = await apiCall(request, customheaders);\r\n dataFormated = (data === undefined || data?.length === 0) ? [] : data;\r\n logs.debug(page.Search, 'getPublicationSearchResponses', \"useSearchService::getPublicationSearchResponses:[apiCall collectionType, dataFormated]:\", searchPhrase, dataFormated);\r\n }\r\n catch (error) {\r\n logs.debug(page.Search, 'getPublicationSearchResponses', \"useSearchService::getPublicationSearchResponses DEBUG ERROR:[searchPhrase, request, error]:\", searchPhrase, request, error);\r\n logs.error(page.Search, 'getPublicationSearchResponses', 'Error with search result for ' + [searchPhrase], error, { eventId: ErrorCodes.Search });\r\n dataFormated = null;\r\n }\r\n\r\n return dataFormated;\r\n };\r\n\r\n //NOTE: YOU HAVE TO INCLUDE YOUR USE CODE EXACTLY AS THEY APEAR:\r\n //const [getCatalogSearchResponses, getCollectionSearchResponses, getPublicationSearchResponses] = useSearchService();\r\n return {\r\n getCatalogSearchResponses,\r\n getCollectionSearchResponses,\r\n getPublicationSearchResponses\r\n };\r\n};\r\n\r\nexport default useSearchService;\r\n","import { useQuery } from 'react-query'\r\nimport { get } from 'lodash'\r\nimport useDCSService from '../services/useDCSService'\r\nimport useSearchService from '../services/useSearchService'\r\nimport { usePageContext } from '../contexts/PageContext'\r\nimport {\r\n KNOWLEDGE_DOMAIN,\r\n PUBTYPES_CATALOG_PAGE,\r\n} from '../components/Constants/Constants'\r\n\r\n//['search',catalogSearchPhrase]\r\n\r\nconst useCatalogSearchQuery = (catalogSearchPhrase, isSearchSubmit) => {\r\n const { generateQuerySpec, getQueryKey } = useDCSService()\r\n const { context, getMemberFirmID } = usePageContext()\r\n const searchService = useSearchService()\r\n // Convert search phrase to lowercase for cache key\r\n const normalizedCatalogSearchPhrase = catalogSearchPhrase\r\n ? catalogSearchPhrase.toLowerCase()\r\n : ''\r\n let querySpec = generateQuerySpec([], catalogSearchPhrase)\r\n let queryKey = querySpec\r\n ? getQueryKey(querySpec, `CatalogSearch-${normalizedCatalogSearchPhrase}`)\r\n : `${context.knowledgeDomain}-${getMemberFirmID()}`\r\n\r\n let results\r\n\r\n const retrieveCatalogSearchResults = async (catalogSearchPhrase) => {\r\n if (context.knowledgeDomain === KNOWLEDGE_DOMAIN.accounting) {\r\n const [Manuals, Standards, Journals, ExternalNews] = await Promise.all([\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[1],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[2],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[3],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[4],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n ])\r\n\r\n results = {\r\n '60194866': Manuals, // Manuals,\r\n '60194865': Standards, // Standards\r\n '60194864': Journals, // Deloitte-communications/Journals\r\n '65511719': ExternalNews, //professional-news\r\n }\r\n } else {\r\n const [Folios, Manuals, Standards, Journals, ExternalNews] = await Promise.all([\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[0],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[1],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[2],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[3],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n await searchService.getCatalogSearchResponses(\r\n PUBTYPES_CATALOG_PAGE[4],\r\n catalogSearchPhrase,\r\n get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)\r\n ),\r\n ])\r\n\r\n results = {\r\n folio: Folios, // Folios\r\n '60194866': Manuals, // Manuals,\r\n '60194865': Standards, // Standards\r\n '60194864': Journals, // Deloitte-communications/Journals\r\n '65511719': ExternalNews, //professional-news\r\n }\r\n }\r\n return results\r\n }\r\n\r\n return useQuery(\r\n queryKey,\r\n () => retrieveCatalogSearchResults(catalogSearchPhrase),\r\n {\r\n enabled:\r\n catalogSearchPhrase?.length > 1 &&\r\n catalogSearchPhrase !== '' &&\r\n isSearchSubmit === true,\r\n }\r\n )\r\n}\r\n\r\nexport default useCatalogSearchQuery\r\n","import React from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { getIconSrc } from '../../components/Article/File';\r\nimport ARTICLEHELPERS from '../../helpers/ArticleHelpers';\r\nimport { PAGE_CONTROLLER_TYPE } from '../Constants/Constants';\r\n\r\nconst ChatBotCatalogSearchResultItem = (props) => {\r\n const { viewAllResultsUrl, document, url, highlights } = props;\r\n const isFormatBinary = document.format !== \"\";\r\n let documentformatarray = document.format.split(',');\r\n\r\n function getDocumentTitle() {\r\n let documenttitle = \"\";\r\n if (url.includes(\"/\" + PAGE_CONTROLLER_TYPE.folio) ||\r\n url.includes(\"/\" + PAGE_CONTROLLER_TYPE.manual) ||\r\n url.includes(\"/\" + PAGE_CONTROLLER_TYPE.standards) ||\r\n url.includes(\"/\" + PAGE_CONTROLLER_TYPE.standard)) {\r\n documenttitle = UTILITIESHELPER.isStringNullorEmpty(document.navTitle) ?\r\n (UTILITIESHELPER.isStringNullorEmpty(document.publicationNavTitle) ? ReactHtmlParser(document.publicationTitle) : ReactHtmlParser(document.publicationNavTitle))\r\n : ReactHtmlParser(document.navTitle);\r\n }\r\n else {\r\n documenttitle = UTILITIESHELPER.isStringNullorEmpty(document.publicationNavTitle) ?\r\n (UTILITIESHELPER.isStringNullorEmpty(document.publicationTitle) ? '' : ReactHtmlParser(document.publicationTitle))\r\n : ReactHtmlParser(document.publicationNavTitle);\r\n }\r\n return documenttitle;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n\r\n \r\n \r\n {documentformatarray.map((element, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {(url.includes(\"/folio\")) ? (\r\n {getDocumentTitle()}\r\n ) : (\r\n {getDocumentTitle()}\r\n )}\r\n \r\n
    \r\n

    {ReactHtmlParser(ARTICLEHELPERS.getHighlightedText(highlights))}

    \r\n
    \r\n );\r\n}\r\n\r\nexport default ChatBotCatalogSearchResultItem;\r\n","import React from \"react\";\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\n\r\nconst AskFollowUpButton = ({ handleAskFollowUpButton }) => {\r\n const { getLabel } = usePageContextLabels();\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default AskFollowUpButton;","import React from \"react\";\r\n\r\nexport const GotoIcon = ({ handleClick }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, {useEffect} from 'react'\r\nimport LINKHELPERS from '../../helpers/LinkHelpers'\r\nimport { usePageContextLabels, usePageContext } from '../../contexts/PageContext'\r\nimport { GotoIcon } from './GotoIcon'\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper'\r\nimport {PAGE_CONTROLLER_TYPE} from '../Constants/Constants';\r\nimport { ACTIONS, useResearchAssistantContext } from '../../contexts/ResearchAssistantContext'\r\nimport { RESEARCH_ASSISTANT_ERROR_TYPES } from '../Constants/Constants';\r\n\r\nfunction DocumentSource({...props}) {\r\n const { getLabel } = usePageContextLabels()\r\n const {memberFirms } = usePageContext()\r\n const { dispatch } = useResearchAssistantContext();\r\n const { title, type, memberFirm, language, knowledgeDomain, memberFirmId, knowledgeDomainId, footnote, isPopupFootnote, uniqueIdentifier ,pubGuid} = props\r\n const getNavigatableLink = async (uid, mf, lang, kd) => {\r\n const navigatableLink = await LINKHELPERS.resolveLink(\r\n uid,\r\n pubGuid,\r\n null,\r\n mf,\r\n lang,\r\n kd,\r\n getLabel('l_LinkCannotBeResolved', 'Link cannot be resolved.'),\r\n false,\r\n memberFirms,\r\n true\r\n )\r\n if(navigatableLink === '') {\r\n const errorPayload = {\r\n errorType: RESEARCH_ASSISTANT_ERROR_TYPES.NO_CONTENT,\r\n hasError: true\r\n }\r\n dispatch({\r\n type: ACTIONS.RA_ERROR,\r\n payload: errorPayload,\r\n })\r\n }\r\n const uri = UTILITIESHELPER.getBaseDomain() + navigatableLink\r\n if (navigatableLink) {\r\n window.open(LINKHELPERS.sanitizeUrl(uri), '_blank')\r\n }\r\n }\r\n\r\n\r\n const getIcons= (type)=> {\r\n\r\n \r\n if (!UTILITIESHELPER.isStringNullorEmpty(type)) {\r\n if (type === PAGE_CONTROLLER_TYPE.manual)\r\n return '/images/manual-tile.svg';\r\n else if (type === PAGE_CONTROLLER_TYPE.standards)\r\n return '/images/standard-tile.svg';\r\n else if (type === PAGE_CONTROLLER_TYPE.deloitteCommunications)\r\n return '/images/deloitte-tile.svg';\r\n else if (type === PAGE_CONTROLLER_TYPE.professionalNews)\r\n return '/images/external-tile.svg';\r\n else\r\n return '/images/folio-tile.svg';\r\n }\r\n else {\r\n return '/images/folio-tile.svg';\r\n }\r\n }\r\n\r\n \r\n\r\n return (\r\n
    \r\n {!isPopupFootnote && (\r\n \r\n \r\n {footnote}\r\n \r\n
    \r\n )}\r\n\r\n
    \r\n \"ico\"\r\n
    \r\n \r\n getNavigatableLink(\r\n uniqueIdentifier,\r\n memberFirm,\r\n language,\r\n knowledgeDomain\r\n )\r\n }\r\n >\r\n {title}\r\n {!isPopupFootnote && (\r\n \r\n getNavigatableLink(\r\n uniqueIdentifier,\r\n memberFirm,\r\n language,\r\n knowledgeDomain\r\n )\r\n }\r\n />\r\n )}\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default DocumentSource\r\n","\r\nimport {useEffect} from 'react';\r\n\r\n// additionalSelectors Array is way to check the click occured outside of \r\n// other elements besides the main ref provided\r\n\r\nconst useOutsideClick = (ref, callback, additionalSelectors = []) => {\r\n \r\n// eslint-disable\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n callback();\r\n }\r\n };\r\n document.addEventListener('click', handleClickOutside, true);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside, true);\r\n };\r\n //eslint-disable-next-line\r\n }, []);\r\n};\r\n\r\nexport default useOutsideClick;\r\n","import React, { useRef } from 'react';\r\nimport cx from 'classnames';\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\n\r\nconst RedirectModal = ({\r\n shouldShowRedirectModal,\r\n setShouldShowRedirectModal,\r\n shouldShowOverlay,\r\n setShouldShowOverlay,\r\n redirectURL,\r\n messageRedirectTL\r\n}) => {\r\n const redirectModalRef = useRef();\r\n const { getLabel } = usePageContextLabels();\r\n\r\n function closeModal() {\r\n if(shouldShowRedirectModal){\r\n setShouldShowOverlay(false);\r\n setShouldShowRedirectModal(false);\r\n document.body.style.overflow = 'unset'; \r\n }\r\n }\r\n\r\n function openInNewTab(url, target = \"_blank\") {\r\n var win = window.open(LINKHELPERS.sanitizeUrl(url), target);\r\n win.focus();\r\n }\r\n\r\n function redirectConrifmed() {\r\n closeModal();\r\n openInNewTab(redirectURL);\r\n } \r\n\r\n if (shouldShowRedirectModal === true) {\r\n document.body.style.overflow = 'hidden';\r\n }\r\n\r\n useOutsideClick(redirectModalRef, closeModal)\r\n\r\n return (\r\n
    \r\n {shouldShowOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n   {getLabel(\"l_LinkModalExternalLink\", \"External Link\")}\r\n \r\n
    \r\n
    \r\n

    {messageRedirectTL}

    \r\n
    \r\n
    \r\n \r\n {getLabel(\"g_No\", \"No\")}\r\n \r\n \r\n {getLabel(\"g_Yes\", \"Yes\")}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nRedirectModal.defaultProps = {\r\n setShouldShowRedirectModal: () => { },\r\n setShouldShowOverlay: () => { },\r\n}\r\n\r\nexport default RedirectModal;\r\n","import React, { useState } from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { useParams } from 'react-router-dom';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nexport const ContentItem = (props) => {\r\n const {pageControllerType} = useParams();\r\n const [markup,setmarkup] = useState(props.subItem?.content?.text ? props.subItem?.content?.text : '' );//eslint-disable-line\r\n \r\n function createTitle() {\r\n\r\n if (props.subItem !== null && props.subItem.content !== null && props.subItem.content.title !== null) {\r\n var title =UTILITIESHELPER.decodeSpecialCharacters(props.subItem.content.title);\r\n const itemReferenceID = (props.subItem.content.reference_id) ? props.subItem.content.reference_id : \"\";\r\n return itemReferenceID + \" \" + title;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const isPdf = props.subItem.content.format === \".pdf\";\r\n\r\n return (\r\n <>\r\n \r\n

    {createTitle()}

    \r\n
    \r\n {/* */}\r\n
    {markup}
    \r\n \r\n );\r\n}\r\n\r\nContentItem.propsTypes = {\r\n typeName: \"ContentItem\"\r\n}\r\n\r\nexport default ContentItem;","import React from \"react\";\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nexport const Copyright = (props) => {\r\n const { getLabel } = usePageContextLabels();\r\n const defaultCopyright = getLabel(\"g_Copyright\", `Copyright © ${new Date().getFullYear()} Deloitte Development LLC. All Rights Reserved`)\r\n const htmlText = (props.text === \"\" || props.text === undefined) ? defaultCopyright : props.text;\r\n\r\n return (\r\n
    \r\n
    {htmlText}
    \r\n
    \r\n );\r\n};\r\nexport default Copyright;\r\n","import React from 'react';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\n\r\nexport const Figure = (props) => {\r\n const { markup } = props;\r\n const getDecoratorClass = () => {\r\n var decoratorType = props.item.content_type;\r\n\r\n switch (decoratorType) {\r\n case '48693746':\r\n return 'figure-block variation-beta'\r\n case '60194857':\r\n // Pitfall\r\n return 'figure-block variation-gamma'\r\n case 'delta':\r\n return 'figure-block variation-delta'\r\n default:\r\n return 'figure-block';\r\n }\r\n }\r\n\r\n function createMarkup(html) {\r\n if (props.item.containsBinary) {\r\n var htmlContent = \"\";\r\n if (props.item.content.format === \".pdf\") {\r\n htmlContent += \"\";\r\n }\r\n return htmlContent;\r\n }\r\n else {\r\n return html;\r\n }\r\n }\r\n\r\n const { searchText } = useArticleContext();\r\n\r\n return (\r\n
    \r\n
    {getTextWithSearchHighlight(createMarkup(props.item.content.rich_text_title), searchText)}
    \r\n
    {getTextWithSearchHighlight(markup, searchText) || getTextWithSearchHighlight(createMarkup(props.item.content.text), searchText)}
    \r\n
    \r\n );\r\n}\r\n\r\nFigure.propsTypes = {\r\n typeName: \"Figure\"\r\n}\r\n\r\nexport default Figure;","\r\nimport { get } from 'lodash';\r\n\r\nconst INDEXED_COMPONENT = 'indexed';\r\nconst SECTION_COMPONENT = 'section';\r\nconst SECTION_COMPONENT_WITH_TEXT_BLOCK = 'section with text block';\r\nconst FIGURE_COMPONENT = 'figure';\r\nconst SIMPLE_NARRATIVE_COMPONENT = 'Simple Narrative';\r\nconst FULL_NARRATIVE_COMPONENT = 'Full Narrative';\r\nconst FILE_COMPONENT = 'File';\r\n\r\nconst BLUE_VARIANT = 'blue-variant';\r\nconst RED_VARIANT = 'red-variant';\r\nconst BLACK_VARIANT = 'black-variant';\r\nconst REVISION_HISTORY= 'revision history';\r\nconst getComponentInfo = (contentTypeId) => {\r\n\r\nconst decoratorInfo = {\r\n '67748346': {\r\n name: 'Revison History',\r\n component: REVISION_HISTORY,\r\n isInPilot: true,\r\n },\r\n '60194859': {\r\n name: 'Application guidance',\r\n component: INDEXED_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '63781317': {\r\n name: 'Manual guidance',\r\n component: INDEXED_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '18735284': {\r\n name: 'Policy',\r\n component: INDEXED_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '60194860': {\r\n name: 'Requirement',\r\n component: INDEXED_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '17377912': {\r\n name: 'Section',\r\n component: SECTION_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '63887580': {\r\n name: 'Article',\r\n component: SECTION_COMPONENT_WITH_TEXT_BLOCK,\r\n isInPilot: true,\r\n },\r\n '86191937': {\r\n name: 'ExternalArticle',\r\n component: SECTION_COMPONENT_WITH_TEXT_BLOCK,\r\n isInPilot: true,\r\n },\r\n '63781318': {\r\n name: 'Process flow overview',\r\n component: SECTION_COMPONENT_WITH_TEXT_BLOCK,\r\n isInPilot: false,\r\n },\r\n '63781319': {\r\n name: 'Process flow step',\r\n component: SECTION_COMPONENT_WITH_TEXT_BLOCK,\r\n isInPilot: false,\r\n },\r\n '65469055': {\r\n name: 'Section with Intro',\r\n component: SECTION_COMPONENT_WITH_TEXT_BLOCK,\r\n isInPilot: true,\r\n },\r\n '67748346': {\r\n name: 'Revison History',\r\n component: SECTION_COMPONENT_WITH_TEXT_BLOCK,\r\n isInPilot: true,\r\n },\r\n '48693746': {\r\n name: 'Example',\r\n component: FIGURE_COMPONENT,\r\n variant: BLUE_VARIANT,\r\n isInPilot: true,\r\n },\r\n '48082120': {\r\n name: 'Information',\r\n component: SIMPLE_NARRATIVE_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '60194857': {\r\n name: 'Pitfall',\r\n component: FIGURE_COMPONENT,\r\n varian: RED_VARIANT,\r\n isInPilot: true,\r\n },\r\n '65469056': {\r\n name: 'Preface',\r\n component: FULL_NARRATIVE_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '63781322': {\r\n name: 'Scenario',\r\n component: FULL_NARRATIVE_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '63781320': {\r\n name: 'Step Documentation',\r\n component: FULL_NARRATIVE_COMPONENT,\r\n isInPilot: false,\r\n },\r\n '63781321': {\r\n name: 'Step summary how',\r\n component: FULL_NARRATIVE_COMPONENT,\r\n isInPilot: false,\r\n },\r\n '60247324': {\r\n name: 'Pub Context',\r\n isInPilot: true,\r\n },\r\n '60262021': {\r\n name: 'Pub Context - Spine',\r\n isInPilot: true,\r\n },\r\n '60194856': {\r\n name: 'Q&A',\r\n component: FIGURE_COMPONENT,\r\n variant: BLACK_VARIANT,\r\n isInPilot: true,\r\n },\r\n '17323604': {\r\n name: 'Template',\r\n component: FILE_COMPONENT,\r\n isInPilot: true,\r\n },\r\n '18735295': {\r\n name: 'Template',\r\n component: FILE_COMPONENT,\r\n isInPilot: true,\r\n },\r\n\r\n}\r\n\r\nreturn get(decoratorInfo, `${contentTypeId}`, {})\r\n\r\n\r\n\r\n};\r\n\r\nconst isStructuredArticle = (contentTypeId) => {\r\n const info = getComponentInfo(contentTypeId);\r\n\r\n switch(info.component) {\r\n case FILE_COMPONENT:\r\n case SECTION_COMPONENT:\r\n case FIGURE_COMPONENT:\r\n case SECTION_COMPONENT_WITH_TEXT_BLOCK:\r\n case INDEXED_COMPONENT:\r\n case FULL_NARRATIVE_COMPONENT:\r\n case REVISION_HISTORY:\r\n return info.isInPilot;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nconst isFigureOrSidebar = (contentTypeId) => {\r\n const info = getComponentInfo(contentTypeId);\r\n\r\n switch(info.component) {\r\n case FIGURE_COMPONENT:\r\n return info.isInPilot;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nconst isRevisionHistory = (contentTypeId) => {\r\n const info = getComponentInfo(contentTypeId);\r\n\r\n switch(info.component) {\r\n case SECTION_COMPONENT_WITH_TEXT_BLOCK:\r\n return info.isInPilot;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nconst isSection = (contentTypeId) => {\r\n const info = getComponentInfo(contentTypeId);\r\n\r\n switch(info.component) {\r\n case SECTION_COMPONENT:\r\n return info.isInPilot;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nconst isIndexedComponent = (contentTypeId) => {\r\n const info = getComponentInfo(contentTypeId);\r\n\r\n switch(info.component) {\r\n case INDEXED_COMPONENT:\r\n return true\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nconst isFile = (contentTypeId, containsBinary) => {\r\n const info = getComponentInfo(contentTypeId);\r\n\r\n switch(info.component) {\r\n case FILE_COMPONENT:\r\n case SECTION_COMPONENT:\r\n return info.isInPilot && containsBinary;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nexport {\r\n isStructuredArticle,\r\n isFigureOrSidebar,\r\n isIndexedComponent,\r\n isSection,\r\n isFile,\r\n isRevisionHistory\r\n};\r\n\r\nexport default getComponentInfo;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport StructuredPanel from './StructuredPanel';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { isFigureOrSidebar, isIndexedComponent, isRevisionHistory } from '../../helpers/getComponentInfo';\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport { REVISION_HISTORY } from '../Constants/Constants';\r\n\r\nexport const StructuredSection = (props) => {\r\n\tconst { context } = usePageContext();\r\n\r\n\tconst structuredSectionTitle = UTILITIESHELPER.getContentItemTitle(props.item.content);\r\n\tconst titleRendered = \r\n\t\tstructuredSectionTitle !== \"\"\r\n\r\n\tconst { searchText, getIsSectionExpanded, setOpenMultipleExpandedSections, removeExpandedSectionKey } = useArticleContext();\r\n\tconst uuidRef = useRef(UTILITIESHELPER.generateUUID());\r\n\tconst uuid = uuidRef.current;\r\n\tconst isSectionExpanded = getIsSectionExpanded(uuid);\r\n\tconst isIndexed = isIndexedComponent(props.item.content_type);\r\n\r\n\tuseEffect(() => {\r\n\t\t//ONLY within a FOLIO, and when on qna|templates and we have more then 1 section, then they need to start contracted\r\n\t\tconst isDefaultExpanded = (context.pageSelectedSection === \"\") ||\r\n\t\t\t((\"|qna|templates|rp-templates\".indexOf(context.pageSelectedSection) > 0) && (props.sections === 1)) ||\r\n\t\t\t(\"|qna|templates|rp-templates\".indexOf(context.pageSelectedSection) === -1);\r\n\r\n\t\tsetOpenMultipleExpandedSections([uuid], isDefaultExpanded)\r\n\t\treturn () => removeExpandedSectionKey(uuid);\r\n\t}, []) //eslint-disable-line\r\n\r\n\tfunction getSectionTitleMarkup() {\r\n\t\tif (props.level === null) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn `${structuredSectionTitle}`\r\n\t}\r\n\r\n\tconst renderTitle = \r\n\t\t!isFigureOrSidebar(props.item.content_type) && \r\n\t\t!(props.item.content_type===REVISION_HISTORY.revision_history) && \r\n\t\t!isIndexed && \r\n\t\tstructuredSectionTitle\r\n\r\n\tvar jumpClass = 'jumplink-' + props.item.id;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t

    setOpenMultipleExpandedSections([uuid], 'toggle')}>

    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getTextWithSearchHighlight(getSectionTitleMarkup(), searchText)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n}\r\n\r\nStructuredSection.propsTypes = {\r\n\ttitle: PropTypes.string,\r\n\ttypeName: \"StructuredSection\"\r\n}\r\n\r\nexport default StructuredSection;","import React, { useState, useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { useReadingModeContext } from '../../contexts/ReadingModeContext';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\n//For search\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\n\r\nexport const Annotations = (props) => {\r\n const firstUpdate = useRef(true);\r\n const { searchText } = useArticleContext();\r\n var cookieAnnotationDisplay = UTILITIESHELPER.annotationDisplayStatus();\r\n var override = true;\r\n\r\n useEffect(() => {\r\n if (firstUpdate.current) {\r\n firstUpdate.current = false;\r\n return;\r\n }\r\n }, []);\r\n\r\n if (firstUpdate.current && cookieAnnotationDisplay === false) {\r\n override = false;\r\n }\r\n\r\n const [open, setOpen] = useState(override);\r\n const { isReadingMode } = useReadingModeContext();\r\n\r\n //needed for handling the nesting along with search.\r\n function createMarkup(annotation) {\r\n var annotationText = annotation.lead_in_text + \":\";\r\n annotation.links.forEach((link) => { annotationText += \" e.preventDefault()\\\">\" + link.link_text + \"\" })\r\n return annotationText;\r\n }\r\n\r\n // Don't display annotations in Reading Mode;\r\n if(isReadingMode) return null;\r\n\r\n if (props.item.content) {\r\n //var resource = ARTICLEHELPER.extractAnnotationOrAssociatedContent(props.item, props.publication);\r\n var resource = props.item.content.associations;\r\n \r\n if (!UTILITIESHELPER.isObjectNullorEmpty(resource) && !UTILITIESHELPER.isObjectNullorEmpty(resource.annotation_links)) {\r\n var annotations = resource.annotation_links.filter(function (item) {\r\n return item.links.length > 0;\r\n });\r\n\r\n if (annotations && annotations.length > 0) {\r\n return (\r\n annotations.map((annotation, anindex) => (\r\n <>\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {getTextWithSearchHighlight(createMarkup(annotation), searchText)}\r\n \r\n \r\n \r\n ))\r\n );\r\n }\r\n else {\r\n return (null);\r\n }\r\n }\r\n else {\r\n return (null);\r\n }\r\n }\r\n else {\r\n return (null);\r\n }\r\n}\r\n\r\nAnnotations.propsTypes = {\r\n title: PropTypes.string,\r\n typeName: \"Annotations\"\r\n}\r\n\r\nexport default Annotations;\r\n","import React from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\n\r\nexport const AssociatedContent = (props) => {\r\n\r\n //var resource = ARTICLEHELPER.extractAnnotationOrAssociatedContent(props.item, props.publication);\r\n \r\n if (props.item.content) {\r\n //var resource = ARTICLEHELPER.extractAnnotationOrAssociatedContent(props.item, props.publication);\r\n var resource = props.item.content.associations;\r\n if (!UTILITIESHELPER.isObjectNullorEmpty(resource) && !UTILITIESHELPER.isObjectNullorEmpty(resource.associated_content)) {\r\n var associations = resource.associated_content.filter(function (item) {\r\n return item.links.length > 0;\r\n });\r\n\r\n if (associations && associations.length > 0) {\r\n return (\r\n associations.map((association,index) => (\r\n
    \r\n

    {association.lead_in_text}

    \r\n \r\n
    \r\n ))\r\n );\r\n }\r\n else {\r\n return (null);\r\n }\r\n }\r\n else {\r\n return (null);\r\n }\r\n }\r\n else {\r\n return (null);\r\n }\r\n}\r\n\r\nAssociatedContent.propsTypes = {\r\n typeName: \"AssociatedContent\"\r\n}\r\n\r\nexport default AssociatedContent;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const RelatedLinks = (props) => {\r\n if (props.item.content) {\r\n var rellinks = props.item.content.related_links;\r\n if (rellinks && rellinks.length > 0) {\r\n return (\r\n
    \r\n  \r\n \r\n
    \r\n );\r\n }\r\n else\r\n return null;\r\n }\r\n else\r\n return null;\r\n}\r\n\r\nRelatedLinks.propsTypes = {\r\n\ttitle: PropTypes.string,\r\n typeName: \"RelatedLinks\"\r\n}\r\n\r\nexport default RelatedLinks;\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get } from 'lodash';\r\nimport ARTICLEHELPER from '../../helpers/ArticleHelpers';\r\nimport Figure from './Figure';\r\nimport StructuredSection from './StructuredSection';\r\nimport Annotations from './Annotations';\r\nimport AssociatedContent from './AssociatedContent';\r\nimport RelatedLinks from './RelatedLinks';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { isFigureOrSidebar, isFile, isSection } from '../../helpers/getComponentInfo';\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport { useEffect } from 'react';\r\nimport File from './File';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\n\r\n// Object Type Constants\r\nconst OBJECT_TYPES = {\r\n\tRPGuidanceContentBody: 'Deloitte.InK.ResearchPortal.Api.Models.ContentBodyModels.RPGuidanceContentBody',\r\n\tPolicyContentBody: 'Deloitte.InK.ResearchPortal.Api.Models.ContentBodyModels.PolicyContentBody',\r\n\tRequirementsContentBody: 'Deloitte.InK.ResearchPortal.Api.Models.ContentBodyModels.RequirementsContentBody'\r\n};\r\n\r\n\r\nfunction RenderAnnotations(props) {\r\n\tif (props.level > 0) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction RenderRelatedLinks(props) {\r\n\tif (props.level > 0) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction RenderAssociatedContent(props) {\r\n\tif (props.level > 0) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n\r\nfunction RenderItemContent(props) {\r\n\tconst { searchText } = useArticleContext();\r\n\r\n\tif (props.level > 0 && props.item?.content) {\r\n\t\tif (isFigureOrSidebar(props.item.content_type)) {\r\n\t\t\treturn
    \r\n\t\t}\r\n\r\n\t\tif ([\r\n\t\t\tOBJECT_TYPES.RPGuidanceContentBody,\r\n\t\t\tOBJECT_TYPES.PolicyContentBody,\r\n\t\t\tOBJECT_TYPES.RequirementsContentBody\r\n\t\t].includes(props.item.content.object_type)\r\n\t\t\t&& props.level === 1\r\n\t\t) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t{getTextWithSearchHighlight(props.markup, searchText)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction RenderStructuredSections(props) {\r\n\tif (props.level > 0 && props.item?.content) {\r\n\t\tvar panels = props.item.subItems;\r\n\r\n\t\t// To avoid Example's content being repeated (the content_type was added)\r\n\t\t// LEGACY: (props.item.content.object_type === 'Deloitte.InK.ResearchPortal.Api.Models.ContentBodyModels.PolicyContentBody' && props.level === 1)\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\tprops.item.content.object_type === OBJECT_TYPES.RPGuidanceContentBody\r\n\t\t\t\t&& props.level === 1\r\n\t\t\t\t&& props.item.content_type !== \"48693746\"\r\n\t\t\t) || (\r\n\t\t\t\t(props.item.content.object_type === OBJECT_TYPES.RequirementsContentBody\r\n\t\t\t\t\t|| props.item.content.object_type === OBJECT_TYPES.PolicyContentBody)\r\n\t\t\t\t&& props.level === 1\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\tpanels = [props.item];\r\n\t\t}\r\n\r\n\t\t//When we have more then 1 section, then we can start with them contracted (when we are on Templates/Q&A)\r\n\t\tconst sections = 0 + panels?.length;\r\n\t\tconst renderedPanels = panels.map((subItem, index) => (\r\n\t\t\t\r\n\t\t))\r\n\r\n\t\treturn renderedPanels;\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nexport const StructuredPanel = (props) => {\r\n\tconst { getLabel } = usePageContextLabels();\r\n\r\n\tuseEffect(() => {\r\n\t\tlet figures = document.getElementsByTagName('figure');\r\n\t\tif (figures.length) {\r\n\t\t\tfor (const data of figures) {\r\n\t\t\t\tif (data.classList.contains('dots') || data.classList.contains('keys')) {\r\n\t\t\t\t\tconst newFig = data;\r\n\t\t\t\t\tconst clone = newFig.cloneNode(true);\r\n\t\t\t\t\tlet mainDiv = document.createElement('div');\r\n\t\t\t\t\tmainDiv.classList.add(\"connecting-dots-main\");\r\n\t\t\t\t\tlet imageDiv = document.createElement('div');\r\n\t\t\t\t\tlet image = document.createElement('div');\r\n\t\t\t\t\timageDiv.appendChild(image);\r\n\t\t\t\t\timage.classList.add(\"connecting-dots-img\");\r\n\t\t\t\t\tlet div = document.createElement('div')\r\n\t\t\t\t\tlet para = document.createElement(\"p\");\r\n\t\t\t\t\tpara.classList.add(\"connecting-dots\");\r\n\t\t\t\t\tif (data.classList.contains('dots')) {\r\n\t\t\t\t\t\tpara.innerText = getLabel(\"hh_ConnectingTheDots\", \"Connecting the Dots\");\r\n\t\t\t\t\t} else if (data.classList.contains('keys')) {\r\n\t\t\t\t\t\tpara.innerText = getLabel(\"hh_KeyTakeaways\", \"Key Takeaways\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdiv.appendChild(para);\r\n\t\t\t\t\tdiv.appendChild(clone);\r\n\t\t\t\t\tmainDiv.appendChild(imageDiv);\r\n\t\t\t\t\tmainDiv.appendChild(div);\r\n\t\t\t\t\tdata.replaceWith(mainDiv);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, []);//eslint-disable-line\r\n\r\n\tif (isFile(props.item.content_type, props.item.containsBinary) && !isSection(props.item.content_type)) {\r\n\t\treturn (\r\n\t\t\t 0 || props?.item?.subItems?.length > 1}\r\n\t\t\t\tshouldIndent={true}\r\n\t\t\t\tisDownloadPdfView={true}\r\n\t\t\t\ttext={props.item.content.text}\r\n\t\t\t\tdisplayDownload={props.item.content.display_download}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n\telse {\r\n\t\tvar markup = ARTICLEHELPER.createMarkup(props.item)\r\n\t\t// if the components is indexed and has a parent title, \r\n\t\t// we prepend an index title for display\r\n\t\tconst indexTitle = props.isIndexed && props.parentTitle ? props.parentTitle : null;\r\n\r\n\t\t// If we ahve an indexTitle and the markup has html\r\n\t\t// Then insert indexTitle into first text item (div.p)\r\n\t\tif (indexTitle !== null && markup.__html) {\r\n\r\n\t\t\t// create temp doc fragment\r\n\t\t\tconst tmpFragment = document.createDocumentFragment();\r\n\r\n\t\t\t// create temp mouting point, set markup as innnerHTML, append to fragment\r\n\t\t\tconst tmpMountPoint = document.createElement('div');\r\n\t\t\ttmpMountPoint.id = \"tmpMount\";\r\n\t\t\ttmpMountPoint.innerHTML = markup.__html;\r\n\t\t\ttmpFragment.appendChild(tmpMountPoint);\r\n\r\n\t\t\t// create index title element\r\n\t\t\tconst tmpTitle = document.createElement('strong');\r\n\t\t\ttmpTitle.classList.add('title-indexed-component');\r\n\t\t\ttmpTitle.innerHTML = indexTitle;\r\n\r\n\t\t\tlet firstContentElement = tmpFragment.querySelector('.p:first-child');\r\n\t\t\t//let firstContentElement = tmpFragment.querySelector('p:first-of-type');\r\n\t\t\tif (firstContentElement) {\r\n\t\t\t\t// firstContentElement.firstChild.prepend(tmpTitle);\r\n\t\t\t\tfirstContentElement.innerHTML = tmpTitle.outerHTML + ' ' + firstContentElement.innerHTML;\r\n\t\t\t\t// update markup object with updated html\r\n\t\t\t\tmarkup = tmpFragment.childNodes[0].innerHTML;\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t//In \"compare\" it is NOT able to find this first P in some cases, but there \"is\" content, and there \"is\" a title to \"add\" to the output...\r\n\t\t\t\tfirstContentElement = tmpFragment.querySelector('p:first-of-type');\r\n\t\t\t\tif (firstContentElement && firstContentElement.length > 0) {\r\n\t\t\t\t\tfirstContentElement.firstChild.prepend(tmpTitle);\r\n\t\t\t\t\t// update markup object with updated html\r\n\t\t\t\t\tmarkup = tmpFragment.childNodes[0].innerHTML;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (markup !== null && markup.__html !== null)\r\n\t\t{\r\n\t\t\tmarkup = markup.__html;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{props.level > 1 ?\r\n\t\t\t\t(<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t\t: null}\r\n\t\t\r\n\t);\r\n}\r\n\r\nStructuredPanel.propsTypes = {\r\n\ttitle: PropTypes.string,\r\n\ttypeName: \"StructuredPanel\"\r\n}\r\n\r\nexport default StructuredPanel;\r\n","import React, { useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useLocation } from 'react-router-dom';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport ARTICLEHELPERS from '../../helpers/ArticleHelpers';\r\nimport StructuredPanel from '../Article/StructuredPanel';\r\nimport { isFigureOrSidebar, isIndexedComponent } from '../../helpers/getComponentInfo';\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\nimport { PAGE_CONTROLLER_TYPE } from '../Constants/Constants';\r\n\r\nfunction StructuredArticleTitleButton({\r\n\titem,\r\n\trenderingCount,\r\n\tstructuredArticleTitle,\r\n\topen,\r\n\tsetOpen,\r\n\tpageControllerType,\r\n\tsearchText\r\n}) {\r\n\tconst { isJournalPage } = usePageContext();\r\n\tconst getShouldRenderTitle = () => {\r\n\t\treturn ![PAGE_CONTROLLER_TYPE.folio, PAGE_CONTROLLER_TYPE.standard].includes(pageControllerType) && !isJournalPage &&\r\n\t\t!isFigureOrSidebar(item.content_type) &&\r\n\t\tstructuredArticleTitle &&\r\n\t\t!isIndexedComponent(item.content_type);\r\n\t}\r\n\r\n\t//In the case of a Question/Example, we will get -1 (and therefore, NOT render a title)\r\n\tif (getShouldRenderTitle()) {\r\n\r\n\t\t// if(isIndexedComponent(item.content_type)) {\r\n\t\t// \treturn {getTextWithSearchHighlight(structuredArticleTitle, searchText)}\r\n\t\t// }\r\n\t\treturn (\r\n\r\n\t\t\t
    \r\n
    \r\n

    \r\n

    {getTextWithSearchHighlight(structuredArticleTitle, searchText)}

    \r\n
    \r\n
    \r\n\t\t)\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\n\r\nexport const StructuredArticle = (props) => {\r\n\tconst { searchText='', getIsSectionExpanded, removeExpandedSectionKey, setOpenMultipleExpandedSections } = useArticleContext()||{};\r\n const uuidRef = useRef(UTILITIESHELPER.generateUUID());\r\n\tconst uuid = uuidRef.current;\r\n\tconst isSectionExpanded = typeof(getIsSectionExpanded)===\"function\"?getIsSectionExpanded(uuid):true;\r\n\r\n\tuseEffect(() => {\r\n\t\tif(typeof(setOpenMultipleExpandedSections)===\"function\"){\r\n\t\t\tsetOpenMultipleExpandedSections([uuid], true);\r\n\t\t}\r\n\t\tif(typeof(removeExpandedSectionKey)===\"function\"){\r\n\t\t\treturn () => removeExpandedSectionKey(uuid);\r\n\t\t}\r\n\t}, [])//eslint-disable-line\r\n\r\n\tvar structuredArticleTitle = UTILITIESHELPER.getContentItemTitle(props.item.content);\r\n\r\n\t//Addition check to make the footnotes elements with the same number come up properly with click handling\r\n\tif (structuredArticleTitle !== '' && UTILITIESHELPER.IsTextHavingFnTag(props.item.content.rich_text_title)) {\r\n\t\tlet htmlOfRTT = ARTICLEHELPERS.getContentHtmlDocument(props.item.content.rich_text_title);\r\n\t\tlet fnOfRTT = htmlOfRTT.querySelector(\"fn .p\");\r\n\t\tlet idOfRTT = fnOfRTT.id;\r\n\r\n\t\tvar detailsFromMatchingFN = props.footnoteArray.filter(x => x.idOfRTT === idOfRTT);\r\n\r\n\t\tif (detailsFromMatchingFN.length > 0) {\r\n\t\t\tvar fnMarkup = UTILITIESHELPER.createMarkupFootnote(detailsFromMatchingFN[0].number, detailsFromMatchingFN[0].label);\r\n\r\n\t\t\tvar el = document.createElement('div');\r\n\t\t\tel.innerHTML = structuredArticleTitle;\r\n\r\n\t\t\tvar fnEl = el.querySelector('sup');\r\n\t\t\tfnEl.outerHTML = fnMarkup;\r\n\r\n\t\t\tstructuredArticleTitle = el.innerHTML;\r\n\t\t}\r\n\t}\r\n\r\n const location = useLocation();\r\n var context = CONTEXTHELPERS.generateContext(location.pathname);\r\n\tconst titleRendered = !isFigureOrSidebar(props.item.content_type) && structuredArticleTitle\r\n\tvar jumpLinkClass = 'jumplink-' + props.item.id;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\tif(typeof(setOpenMultipleExpandedSections)===\"function\"){\r\n\t\t\t\t\t\tsetOpenMultipleExpandedSections([uuid], 'toggle');\r\n\t\t\t\t\t}\r\n\t\t\t\t} }\r\n\t\t\t\tpageControllerType={context.pageControllerType}\r\n\t\t\t\topen={isSectionExpanded}\r\n\t\t\t\tsearchText={searchText}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nStructuredArticle.propsTypes = {\r\n\ttitle: PropTypes.string,\r\n typeName: \"StructuredArticle\"\r\n}\r\n\r\nexport default StructuredArticle;\r\n","\r\nimport React, { createContext, useContext } from 'react'\r\nimport { useState } from 'react';\r\n\r\nexport const EmbeddedModeContext = createContext()\r\nexport const useEmbeddedModeContext = () => useContext(EmbeddedModeContext)\r\n\r\nconst EmbeddedModeContextProvider = ({ children }) => {\r\n const [isEmbeddedMode, setIsEmbeddedMode] = useState(false);\r\n\r\n const store = {\r\n isEmbeddedMode,\r\n setIsEmbeddedMode,\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default EmbeddedModeContextProvider;\r\n","\r\nimport React from 'react';\r\nimport cx from 'classnames'\r\n\r\nconst IconX = ({ className, onClick, style }) => {\r\n\r\n function handleParentOnclick() {\r\n onClick();\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nIconX.defaultProps = {\r\n onClick: () => { },\r\n style: {},\r\n}\r\n\r\nexport default IconX\r\n","import React, { memo, useCallback, useEffect, useRef, useState } from 'react';\r\nimport { get } from 'lodash';\r\nimport cx from 'classnames';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport IconX from '../Common/IconX';\r\nimport { usePageContext, usePageContextLabels, usePageContextSettings } from '../../contexts/PageContext';\r\nimport { useTocContext } from '../../contexts/TocContext';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport RecentSearches from './RecentSearches';\r\nimport { useLocation } from 'react-router';\r\nimport RECENTSEARCHSERVICES from './../../helpers/RecentSearchService';\r\nimport { ACTIONS, useUserPreferencesContext } from '../../contexts/AnnotationsContext';\r\nimport { page } from '../../helpers/log';\r\n\r\n\r\nfunction NavigableSearchbar({\r\n isExpanded,\r\n isFixed,\r\n style,\r\n className,\r\n placeholder,\r\n showSearchLink,\r\n value = \"\",\r\n setValue,\r\n terms,\r\n onClose,\r\n triggerUpdateRecentSearches,\r\n submitFromRecentSearch,\r\n disableRecentSearch = false,\r\n calledFrom,\r\n ...props\r\n}) {\r\n const inputRef = useRef();\r\n const [isActive, setIsActive] = useState(isExpanded); //start off with search closed\r\n const { getLabel } = usePageContextLabels();\r\n const [localValue, setLocalValue] = useState(\"\") // !!!!!\r\n const [searchTermIndex, setSearchTermIndex] = useState(-1);\r\n const [searchTerms, setSearchTerms] = useState(terms);\r\n \r\n //const { setOpenMultipleExpandedSections } = useArticleContext();\r\n const [hasChanged, setHasChanged] = useState(false);\r\n const { pubInfo, toc } = useTocContext();\r\n const { context, searchPhrase, pageURLWhereSearchInnitiated, setPageURLWhereSearchInnitiated, getMemberFirmID } = usePageContext();\r\n const [showRecentHistory, setShowRecentHistory] = useState(false);\r\n const { state: annState, dispatch } = useUserPreferencesContext();\r\n const location = useLocation();\r\n const showRecentSearch = (calledFrom === page.Collection || calledFrom === page.Article) ? true : null;\r\n const { isRecentSearchEnabled } = usePageContextSettings();\r\n const isProdSite = UTILITIESHELPER.checkIsProdSite()\r\n const [height,setHeight] =useState(0);\r\n\r\n const handleClickOutsideSearchInput = useCallback((event) => {\r\n if (inputRef.current && !inputRef.current.contains(event.target)) {\r\n setShowRecentHistory(false);\r\n }\r\n }, [inputRef]);\r\n\r\n const handleFocus = (e) => {\r\n e.preventDefault()\r\n if (showRecentHistory === false) {\r\n setShowRecentHistory(true)\r\n }\r\n }\r\n\r\n const handlePrevNext = useCallback((direction, event) => {\r\n event.preventDefault();\r\n\r\n let index = searchTermIndex;\r\n\r\n if (index >= 0) {\r\n searchTerms[index].classList.remove('current');\r\n }\r\n\r\n index += (direction === 'prev') ? -1 : 1;\r\n\r\n if (index < 0) {\r\n index = searchTerms.length - 1;\r\n }\r\n\r\n if (index > searchTerms.length - 1) {\r\n index = 0;\r\n }\r\n\r\n if (index >= 0) {\r\n searchTerms[index].classList.add('current');\r\n }\r\n\r\n setSearchTermIndex(index);\r\n\r\n // if selected term is hidden, expand section\r\n if (searchTerms[index].offsetParent === null) {\r\n expandParentSections(index);\r\n const resultsContainer = document.querySelector('.article-content-container');\r\n const searchTerms = resultsContainer?.querySelectorAll('.highlight-search');\r\n setSearchTerms(searchTerms)\r\n searchTerms[index].classList.add('current');\r\n }\r\n\r\n setTimeout(() => moveTo(index), 0);\r\n }, [searchTermIndex, searchTerms])\r\n\r\n const expandParentSections = (index) => {\r\n const el = searchTerms[index];\r\n const sectionsToExpand = [];\r\n let currentEl = el;\r\n\r\n while (currentEl !== null) {\r\n if (currentEl.hasAttribute('data-expandable-uuid') && !currentEl.classList.contains('open')) {\r\n sectionsToExpand.push(currentEl.dataset.expandableUuid);\r\n }\r\n currentEl = currentEl.parentElement.closest('[data-expandable-uuid]');\r\n }\r\n\r\n if (sectionsToExpand.length) {\r\n //setOpenMultipleExpandedSections(sectionsToExpand, true);\r\n }\r\n }\r\n\r\n const moveTo = (index) => {\r\n var resultsContainer = document.querySelector(\".article-content-container\");\r\n const searchTerms = resultsContainer?.querySelectorAll('.highlight-search');\r\n let offset = searchTerms[index].getBoundingClientRect().top + document.documentElement.scrollTop + -130;\r\n\r\n\r\n window.scrollTo({\r\n top: offset,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n function updateRecentSearches(searchphrase) {\r\n const updatedRecentSearchList =\r\n {\r\n \"search_phrase\": searchphrase,\r\n \"memberfirm\": context.memberFirm,\r\n \"knowledgeDomain\": context.knowledgeDomain,\r\n \"created_date\": JSON.parse(JSON.stringify(new Date())),\r\n\r\n }\r\n let previousRecentSearch = JSON.parse(localStorage.getItem('recentSearch'));\r\n let recentSearchList = previousRecentSearch != null ? (previousRecentSearch.filter(recentsearch=>recentsearch.memberfirm===context.memberFirm && recentsearch.knowledgeDomain===context.knowledgeDomain)?? []) : []\r\n const existingIndex = recentSearchList.findIndex(item => item.search_phrase === searchphrase);\r\n if (existingIndex !== -1) {\r\n recentSearchList.splice(existingIndex, 1);\r\n }\r\n recentSearchList.unshift(updatedRecentSearchList);\r\n \r\n if (recentSearchList.length > window.DART.ENV.REACT_APP_RECENTLY_SEARCH_LIMIT) {\r\n recentSearchList.pop();\r\n }\r\n const allRecentSearches= previousRecentSearch != null ? (previousRecentSearch.filter(recentsearch=>recentsearch.memberfirm!==context.memberFirm || recentsearch.knowledgeDomain !==context.knowledgeDomain)?? []) : []\r\n allRecentSearches.push(...recentSearchList);\r\n localStorage.setItem(\"recentSearch\", JSON.stringify(allRecentSearches));\r\n dispatch({\r\n type: ACTIONS.RECENT_SEARCH_LOAD,\r\n payload: JSON.stringify(allRecentSearches),\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n setSearchTerms(document?.querySelector('.search-results')?.querySelectorAll('em'));\r\n }, [props.filteredResultCount]);\r\n\r\n useEffect(() => {\r\n setIsActive(isExpanded);\r\n }, [isExpanded]);\r\n\r\n useEffect(() => {\r\n if (isActive && inputRef.current) inputRef.current.focus();\r\n if (!isActive && searchPhrase === \"\") { //!location.search.includes('searchPhrase')\r\n if (document.getElementsByClassName('search-badge-article').length === 0) {\r\n setLocalValue(\"\")\r\n setValue(localValue);\r\n sessionStorage.removeItem('searchPhraseParam');\r\n }\r\n }\r\n //eslint-disable-next-line\r\n }, [isActive])\r\n\r\n useEffect(() => {\r\n\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(terms)) {\r\n setSearchTerms(terms);\r\n }\r\n\r\n setSearchTermIndex(-1);\r\n }, [terms]);\r\n\r\n useEffect(() => {\r\n UTILITIESHELPER.setLocalStorage(\"rp-is-search-start\", false);\r\n }, [isFixed]);\r\n\r\n useEffect(() => {\r\n setSearchTermIndex(-1);\r\n }, [localValue]);\r\n\r\n useEffect(() => {\r\n\r\n function getRecentSearches() {\r\n const RecentSearchdata = localStorage.getItem('recentSearch');\r\n // await RECENTSEARCHSERVICES.getRecentSearch(location.pathname, getMemberFirmID());\r\n let recentSearchList = RecentSearchdata != null ? (RecentSearchdata ?? []) : []\r\n let recentSearchData= UTILITIESHELPER.isArrayNullorEmpty(recentSearchList) ? recentSearchList: JSON.parse(recentSearchList);\r\n // recentSearchData= recentSearchData?.filter(mem=>mem.memberfirm===context.memberFirm && mem.knowledgeDomain===context.knowledgeDomain);\r\n dispatch({\r\n type: ACTIONS.RECENT_SEARCH_LOAD,\r\n payload: JSON.stringify(recentSearchData),\r\n });\r\n }\r\n\r\n if (isRecentSearchEnabled() && UTILITIESHELPER.isArrayNullorEmpty(annState.recentSearch)) {\r\n getRecentSearches();\r\n }\r\n\r\n setLocalValue(searchPhrase);\r\n\r\n if (isRecentSearchEnabled() && !UTILITIESHELPER.isStringNullorEmpty(searchPhrase)) {\r\n updateRecentSearches(searchPhrase);\r\n }\r\n\r\n document.addEventListener('click', handleClickOutsideSearchInput, false)\r\n\r\n return () => {\r\n document.removeEventListener('click', handleClickOutsideSearchInput, false)\r\n }\r\n //eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n function handleChange(event) {\r\n if (!UTILITIESHELPER.isNullOrUndefined(pageURLWhereSearchInnitiated) && pageURLWhereSearchInnitiated !== '') {\r\n const url = new URL(UTILITIESHELPER.getBaseDomain() + pageURLWhereSearchInnitiated);\r\n const params = new URLSearchParams(url.search);\r\n params.delete('searchPhrase')\r\n params.append('searchPhrase', event.target.value);\r\n var updatedSearchURL = url.pathname + \"?\" + params.toString();\r\n setPageURLWhereSearchInnitiated(updatedSearchURL)\r\n }\r\n setLocalValue(event.target.value);\r\n setValue(\"\")\r\n setHasChanged(true);\r\n UTILITIESHELPER.setLocalStorage(\"rp-is-search-start\", false);\r\n }\r\n\r\n\r\n const handleClose = () => {\r\n setValue(\"\")\r\n setLocalValue(\"\")\r\n setIsActive(prevVal => !prevVal);\r\n onClose();\r\n }\r\n\r\n function getTitle() {\r\n if (pubInfo?.title?.title) {\r\n return CONTEXTHELPERS.generateFolioTitleFromFilename(get(context, 'pageFileName', ''));\r\n }\r\n\r\n return toc?.nav_title || \"\";\r\n }\r\n\r\n function RecentSearchClickHandler(searchSelected) {\r\n submitFromRecentSearch(false, searchSelected);\r\n }\r\n\r\n function handleKeyDown(e) {\r\n if (e.keyCode === 32) {\r\n e.preventDefault();\r\n const { startString, endString } = UTILITIESHELPER.handleSpaceBarOnSearchSubmit(e);\r\n setLocalValue(startString + ' ' + endString);\r\n return false;\r\n }\r\n if (e.keyCode === 13) {\r\n setLocalValue(localValue);\r\n setValue(localValue)\r\n if (isRecentSearchEnabled()) { \r\n updateRecentSearches(localValue);\r\n }\r\n \r\n }\r\n }\r\n \r\n useEffect(()=>{\r\n var navHeight=0;\r\n let previewHeight=document.getElementsByClassName(\"preview-warning\")[0]?.clientHeight\r\n if(!previewHeight)\r\n {\r\n previewHeight=0; \r\n }\r\n let heightOfCrum=document.getElementsByClassName(\"crumbtrail\")[0]?.clientHeight;\r\n\r\n navHeight=previewHeight+ heightOfCrum;\r\n setHeight(navHeight);\r\n },[])\r\n\r\n const searchIconStyling= { cursor: isActive ? 'default' : 'pointer' }\r\n const imageStyling= { margin: isActive ? 'auto 5px auto 0' : 'auto' }\r\n const inputSearchboxStyling= { width: isActive ? '100%' : 0, padding: isActive ? '' : 0 }\r\n\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n handlePrevNext('next', e)} disabled={!searchTerms?.length}\r\n >\r\n \"down\"\r\n \r\n handlePrevNext('prev', e)} disabled={!searchTerms?.length}\r\n >\r\n \"up\"\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {showRecentHistory && !UTILITIESHELPER.isArrayNullorEmpty(annState.recentSearch) &&\r\n \r\n }\r\n\r\n \r\n {localValue && !hasChanged && ()}\r\n {localValue && hasChanged && ()}\r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n\r\nNavigableSearchbar.defaultProps = {\r\n // placeholder: \"\",\r\n // style: {},\r\n // className: '',\r\n // terms: []\r\n isExpanded: false,\r\n isFixed: false,\r\n style: {},\r\n className: '',\r\n placeholder: '',\r\n showSearchLink: false,\r\n value: '',\r\n setValue: () => { },\r\n terms: [],\r\n onClose: () => { },\r\n returnUrl: null\r\n}\r\n\r\nexport default NavigableSearchbar","import React, { useEffect, useRef, useState } from 'react';\r\nimport NavigableSearchbar from '../Common/NavigableSearchbar';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport { usePageContextLabels, usePageContext } from '../../contexts/PageContext';\r\nimport SearchHelpers from '../../helpers/SearchHelpers';\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\nimport { appInsightUIMapping } from '../../helpers/log';\r\nimport { SCS_KEYS, getFallback } from '../Constants/SCSConstants';\r\nimport { ErrorTypes } from '../Constants/Errors';\r\n\r\n\r\nconst ArticleSearch = ({ isFixed, isExpanded, style, className }) => {\r\n const inputRef = useRef();\r\n const [isActive, setIsActive] = useState(isExpanded); //start off with search closed\r\n const { searchText, setSearchText, pdfPage, setPdfPage } = useArticleContext(); //For setting the search text\r\n const [searchTerms, setSearchTerms] = useState(0);\r\n const { getLabel } = usePageContextLabels();\r\n const { setSearchPhrase, setNotification } = usePageContext();\r\n const { setSearchResults, areSearchResultsLoading } = useSearchResultContext();\r\n const [localValue, setLocalValue] = useState(searchText);\r\n const wildcardsPrefixSearchLimitationNotification = getLabel(SCS_KEYS.wildcardsPrefixSearchLimitation, getFallback(SCS_KEYS.wildcardsPrefixSearchLimitation));\r\n\r\n useEffect(() => {\r\n if (areSearchResultsLoading) {\r\n sessionStorage.removeItem('searchPhraseParam');\r\n }\r\n\r\n // Clear search text context value when component unmounts\r\n return () => setSearchText(\"\")\r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n setIsActive(isExpanded);\r\n }, [isExpanded]);\r\n\r\n useEffect(() => {\r\n if (isActive && inputRef.current) inputRef.current.focus();\r\n if (!isActive) {\r\n setLocalValue(\"\");\r\n setSearchText(\"\");\r\n }\r\n }, [isActive])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (searchText !== localValue) {\r\n setLocalValue(searchText);\r\n }\r\n }, [searchText]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n const resultsContainer = document.querySelector('.article-content-container');\r\n const searchTerms = resultsContainer?.querySelectorAll('.highlight-search');\r\n\r\n setSearchTerms(searchTerms);\r\n\r\n return () => {\r\n setPdfPage(false);\r\n setSearchTerms([]);\r\n }\r\n\r\n }, [searchText, pdfPage]);//eslint-disable-line\r\n\r\n function setValue(value) {\r\n if (value !== localValue) {\r\n setLocalValue(value);\r\n setSearchResults([]);\r\n if (value.length >= 3) {\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(value)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'ArticleSearch' });\r\n return;\r\n }\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null });\r\n setSearchText(value);\r\n setSearchPhrase(value);\r\n } else {\r\n setSearchText('');\r\n setSearchPhrase('');\r\n }\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setSearchResults([]);\r\n setIsActive(false);\r\n setSearchPhrase('');\r\n };\r\n\r\n // FGP :: finish implementation of localValue to avoid changing context when search phrase is too short.\r\n\r\n return (\r\n \r\n )\r\n\r\n}\r\n\r\nArticleSearch.defaultProps = {}\r\n\r\nexport default ArticleSearch;\r\n","import React from 'react';\r\nimport { useState } from 'react';\r\nimport { useRef } from 'react';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport IconX from '../Common/IconX';\r\nimport { usePageContextLabels,usePageContext } from '../../contexts/PageContext';\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport cx from 'classnames';\r\nimport { useArticleContext } from \"../../contexts/ArticleContext\";\r\nimport { KNOWLEDGE_DOMAIN } from '../Constants/Constants';\r\n\r\nconst ArticleTag = ({ classNames }) => {\r\n const tagRef = useRef(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const { getLabel } = usePageContextLabels();\r\n const iconClass = isOpen ? 'icon-article-tag-open' : '';\r\n const{ allIndustry, knowledgeDomain,\r\n allTier}=usePageContext();\r\n const { articleTags} = useArticleContext();\r\n\r\n useOutsideClick(tagRef, () => {\r\n setIsOpen(false)\r\n }, ['#article-tag-fixed']);\r\n const toggleTag = () => setIsOpen(prevVal => !prevVal);\r\n //Styling for Icon props\r\n const iconX = {\r\n margin: 'auto',\r\n marginRight: 10,\r\n }\r\n\r\n const getFrameWork = () => {\r\n const tiers = [];\r\n \r\n const addTiers = (items, key) => {\r\n items.map(tierElement => {\r\n tiers.push({tierElement[key]});\r\n });\r\n };\r\n \r\n if (articleTags?.tier?.length > 0) {\r\n addTiers(articleTags.tier, 'name');\r\n } else if (allTier) {\r\n switch (knowledgeDomain) {\r\n case KNOWLEDGE_DOMAIN.auditing:\r\n addTiers(allTier.gaasItems, 'value');\r\n break;\r\n case KNOWLEDGE_DOMAIN.assurance:\r\n addTiers(allTier.assuranceItems, 'value');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n \r\n return tiers;\r\n };\r\n\r\n const getIndustry=()=>{\r\n const industry=[];\r\n if(articleTags?.industry?.length>0){\r\n articleTags.industry.map(tierElement=>{\r\n industry.push(<>\r\n \r\n {tierElement.name}\r\n \r\n );\r\n })\r\n }\r\n else if(allIndustry?.items){\r\n allIndustry.items.map(tierElement=>{\r\n industry.push(<>\r\n \r\n {tierElement.value}\r\n \r\n );\r\n }); \r\n }\r\n return industry;\r\n }\r\n const Folio=()=>{\r\n const folio=[];\r\n if(articleTags?.auditWorkflowAreaAccount?.length>0){\r\n articleTags.auditWorkflowAreaAccount.map(WaElement=>{\r\n folio.push(<>\r\n \r\n {WaElement.name}\r\n \r\n );\r\n })\r\n }\r\n if(articleTags?.auditWorkflowAreaNonAccount){\r\n articleTags.auditWorkflowAreaNonAccount.map(nawElement=>{\r\n folio.push(<>\r\n \r\n {nawElement.name}\r\n \r\n );\r\n }); \r\n }\r\n return folio;\r\n }\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n

    {getLabel(\"a_InArticleTagTitle\", \"Applicability\")}

    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {getLabel(\"a_InArticleTagFrameworks\", \"Frameworks\")}:

    \r\n
    \r\n {getFrameWork()}\r\n
    \r\n
    \r\n
    \r\n

    {getLabel(\"a_InArticleTagIndustries\", \"Industries\")}:

    \r\n
    \r\n {getIndustry()}\r\n
    \r\n
    \r\n
    \r\n

    {getLabel(\"a_InArticleTagFolios\", \"Folios\")}:

    \r\n
    \r\n {Folio()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nArticleTag.defaultProps = {\r\n classNames: \"\"\r\n}\r\n\r\nexport default ArticleTag","\r\nimport React, { useEffect, useState } from 'react';\r\nimport cx from 'classnames';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport ArticleTag from './ArticleTag';\r\n\r\nconst ArticleTitle = ({ title, className, style, enableArticleTag, shouldBeFixed }) => {\r\n // Variables to handle search react element\r\n const [titleContent, setTitleContent] = useState('');\r\n const [isSearchResult, setIsSearchResult] = useState(false);\r\n const [reactElement, setReactElement] = useState();\r\n // End variables to handle search react element\r\n\r\n // Use effect to handle search react element\r\n useEffect(() => {\r\n if (title instanceof Array) {\r\n setTitleContent(title[0])\r\n setIsSearchResult(true)\r\n setReactElement(title[1])\r\n } else {\r\n setTitleContent(title)\r\n }\r\n }, [title]);\r\n\r\n return (\r\n <>\r\n

    \r\n {titleContent}\r\n \r\n {reactElement}\r\n \r\n \r\n \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nArticleTitle.defaultProps = {\r\n enableArticleTag: false,\r\n shouldBeFixed: false\r\n}\r\n\r\nexport default ArticleTitle;\r\n","import React from 'react';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nconst JumpLinkMain = ({ title, href, jumpClass, jumpClickHandler }) => {\r\n return (\r\n
  • \r\n jumpClickHandler(e, jumpClass)}\r\n > {ReactHtmlParser(title)} \r\n\r\n
  • \r\n )\r\n}\r\n\r\nexport default JumpLinkMain","\r\nimport React from 'react';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nconst JumpLinkSub = ({ title, href, jumpClass, jumpClickHandler }) => {\r\n return (\r\n
  • \r\n jumpClickHandler(e, jumpClass)}>\r\n {ReactHtmlParser(title)}\r\n \r\n
  • \r\n )\r\n}\r\n\r\nexport default JumpLinkSub","import { useArticleContext } from '../../contexts/ArticleContext';\r\nimport getTextWithSearchHighlight from '../../helpers/getTextWithSearchHighlight';\r\nimport React from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { logs } from \"../../helpers/log\"; //, ai\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nexport const Footnote = (props) => {\r\n\r\n const { searchText, setOpenMultipleExpandedSections } = useArticleContext();\r\n\r\n function jumplinkClickHandler(e) {\r\n logs.trackEvent({\r\n name: 'Footnote',\r\n properties: {\r\n memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'),\r\n serviceArea: UTILITIESHELPER.getSessionStorage('ServiceArea'),\r\n level: UTILITIESHELPER.getSessionStorage('Level')\r\n }\r\n })\r\n const getAllExpandableSectionIds = (internalHref) => {\r\n const footnoteElem = document.querySelector(internalHref);\r\n const sectionsToExpand = [];\r\n const getClosestExpandableSection = (elem) => {\r\n const expandableSectionElem = elem.closest('[data-expandable-uuid]');\r\n if (!expandableSectionElem) return\r\n const sectionUUID = expandableSectionElem.dataset.expandableUuid;\r\n sectionsToExpand.push(sectionUUID);\r\n getClosestExpandableSection(expandableSectionElem?.parentNode);\r\n }\r\n\r\n getClosestExpandableSection(footnoteElem);\r\n\r\n return sectionsToExpand;\r\n }\r\n\r\n const href = e.currentTarget.getAttribute('href');\r\n const sectionsToExpand = getAllExpandableSectionIds(href);\r\n setOpenMultipleExpandedSections(sectionsToExpand, true);\r\n\r\n const scrollToSection = () => {\r\n var bodyRect = document.body.getBoundingClientRect(),\r\n elemRect = document.querySelector(href).getBoundingClientRect(),\r\n offsetTop = elemRect.top - bodyRect.top;\r\n const offsetCalc = offsetTop - 100;\r\n window.scrollTo(0, offsetCalc);\r\n }\r\n\r\n e.preventDefault();\r\n setTimeout(scrollToSection, 0);\r\n }\r\n const convertFootnote = (content) => {\r\n content = content.replace(/
    /g, '')\r\n return content;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {getTextWithSearchHighlight((UTILITIESHELPER.checkStringIsHtml(props.footnote.label)), searchText)}\r\n \r\n \r\n\r\n {convertFootnote(getTextWithSearchHighlight(props.footnote.text, searchText))}\r\n
    \r\n )\r\n}\r\n\r\nFootnote.propsTypes = {\r\n typeName: \"Footnote\"\r\n}\r\n\r\nexport default Footnote;","import React, { useEffect } from 'react';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport { Footnote } from './Footnote';\r\n\r\nexport const Footnotes = (props) => {\r\n const { footNotesContentRef } = useArticleContext()\r\n\r\n function jumplinkClickHandler(e) {\r\n const href = e.currentTarget.getAttribute('href');\r\n var bodyRect = document.body.getBoundingClientRect(),\r\n elemRect = document.querySelector(href).getBoundingClientRect(),\r\n offsetTop = elemRect.top - bodyRect.top;\r\n const offsetCalc = offsetTop - 60;\r\n window.scrollTo(0, offsetCalc);\r\n e.preventDefault();\r\n }\r\n\r\n useEffect(() => {\r\n footNotesContentRef.current = props.footnoteArray;\r\n return () => footNotesContentRef.current = undefined;\r\n }, [props.footnoteArray])//eslint-disable-line\r\n\r\n return (\r\n
    \r\n

    Footnotes

    \r\n
    \r\n {props.footnoteArray.map((footnote, index) => {\r\n return (\r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFootnotes.propsTypes = {\r\n typeName: \"Footnotes\"\r\n}\r\n\r\nexport default Footnotes;\r\n","import React, { useLayoutEffect } from 'react'; // , useRef\r\nimport { useLocation } from 'react-router';\r\nimport { get } from 'lodash';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\nimport File from './File';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport ARTICLEHELPERS from '../../helpers/ArticleHelpers';\r\nimport Loading from '../Loading/Loading';\r\nimport Footnotes from '../Article/Footnotes';\r\nimport ContentItem from '../Article/ContentItem';\r\nimport Copyright from '../Article/Copyright';\r\nimport StructuredArticle from '../Article/StructuredArticle';\r\nimport { isFile, isSection, isStructuredArticle } from '../../helpers/getComponentInfo';\r\nimport { getIsArticlePdf } from '../Publication/Article';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { PUBLICATIONTYPE_IDS } from '../Constants/Constants';\r\n\r\nexport const getOffsetTop = element => {\r\n let offsetTop = 0;\r\n while (element) {\r\n offsetTop += element.offsetTop;\r\n element = element.offsetParent;\r\n }\r\n return offsetTop;\r\n}\r\n\r\nexport const RenderAllContainer = ({ pubData, excludeBinaries, isScrollDisabled = false }) => {\r\n\r\n const location = useLocation();\r\n const content = get(pubData, 'content', []);\r\n const pubContext = get(pubData, 'context', []);\r\n const { context } = usePageContext();\r\n const isSingleTopic = (content.length && content.length < 2 && content[0].subItems.length === 0) ||\r\n (pubData.publication_type === PUBLICATIONTYPE_IDS.externalCollection) ? true : false;\r\n //This is where the code to scroll the page down when we have a # hastag on the page is fired.\r\n useLayoutEffect(() => {\r\n if (!pubData?.content) return;\r\n\r\n if (!isScrollDisabled) {\r\n if (location.hash) {\r\n //Cancel out the # scroll that the browser would do by default...so we do not get a flash if we actully do not find the target on the page.\r\n // the browser will scroll down regardless randomly if there is a # in the path!\r\n setTimeout(function () {\r\n window.scrollTo(0, 0);\r\n }, 1);\r\n //Then we attempt to find the # on the page ourselves\r\n setTimeout(() => { ARTICLEHELPERS.scrollToHashTag(location.hash) }, 10);\r\n }\r\n else {\r\n //There was no #, or it was removed, so we scroll to top by default\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n }, [pubData, location.pathname, location.hash]);//eslint-disable-line\r\n\r\n\r\n if (!pubData?.content) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n const getComponentArray = () => {\r\n\r\n // declare working arrays\r\n let footnoteArray = [];\r\n let calloutArray = [];\r\n let componentArray = [];\r\n\r\n //rich text title fn tag array\r\n let footnoteRttArray = [];\r\n\r\n // number generator for footnote extraction\r\n // this ensure a consistent numbering pattern\r\n // for all footnotes across all content items\r\n const fnNumberGenerator = ARTICLEHELPERS.footnoteNumberGenerator();\r\n\r\n //preparing footnotes for rich text title\r\n if (ARTICLEHELPERS.isSpinePageController(context.pageType))\r\n {\r\n if (pubContext !== null && pubContext.rich_text_title !== null && UTILITIESHELPER.IsTextHavingFnTag(pubContext.rich_text_title)) \r\n {\r\n footnoteRttArray = ARTICLEHELPERS.extractFootnotesFromRTT(pubContext.rich_text_title, fnNumberGenerator);\r\n footnoteRttArray.forEach((val) => footnoteArray.push(val));\r\n } \r\n }\r\n else{\r\n if (content.length > 0 && content[0].content !== null && content[0].content.rich_text_title !== null && UTILITIESHELPER.IsTextHavingFnTag(content[0].content.rich_text_title)) \r\n {\r\n footnoteRttArray = ARTICLEHELPERS.extractFootnotesFromRTT(content[0].content.rich_text_title, fnNumberGenerator);\r\n footnoteRttArray.forEach((val) => footnoteArray.push(val));\r\n } \r\n }\r\n\r\n // loop through content and extract all footnote callouts\r\n content.forEach(item => calloutArray = ARTICLEHELPERS.extractFootnoteCallouts(item, calloutArray))\r\n\r\n // loop throught content and populate the componentArray\r\n content.forEach((item) => {\r\n\r\n if (excludeBinaries && item.containsBinary === true) {\r\n //For the download, we do not want to incude binary items in the output!\r\n // extract footnotes and processed content item\r\n let [\r\n extractedFootnotes, //eslint-disable-line\r\n processedItem\r\n ] = ARTICLEHELPERS.extractFootnotes(item, footnoteArray, calloutArray, fnNumberGenerator);\r\n\r\n processedItem?.content && componentArray.push(\r\n \r\n )\r\n }\r\n else {\r\n // extract footnotes and processed content item\r\n let [\r\n extractedFootnotes,\r\n processedItem\r\n ] = ARTICLEHELPERS.extractFootnotes(item, footnoteArray, calloutArray, fnNumberGenerator);\r\n \r\n // flatten extracted footnotes and assign\r\n footnoteArray = extractedFootnotes.flat();\r\n\r\n //If we're dealing with a file component\r\n if (isFile(item.content_type, item.containsBinary) && !isSection(item.content_type)) {\r\n if (isSingleTopic === false) {\r\n\r\n if (isStructuredArticle(item.content_type)) {\r\n componentArray.push()\r\n }\r\n else{\r\n processedItem?.content && componentArray.push(\r\n \r\n )\r\n }\r\n\r\n \r\n for (let i = 0; i < processedItem.subItems.length; ++i) {\r\n if (isFile(processedItem.subItems[i].content_type, processedItem.subItems[i].containsBinary) && !isSection(processedItem.subItems[i].content_type)) {\r\n componentArray.push(\r\n processedItem && 0 || processedItem.subItems.length > 1}\r\n shouldIndent={false}\r\n text={processedItem.subItems[i].content.text}\r\n displayDownload={processedItem.subItems[i].content.display_download}\r\n />\r\n )\r\n //Handle subItems of the file, which are more files\r\n for (let j = 0; j < processedItem.subItems[i].subItems.length; ++j) {\r\n var parent = processedItem.subItems[i];\r\n if (isFile(parent.subItems[j].content_type, parent.subItems[j].containsBinary) && !isSection(parent.subItems[j].content_type)) {\r\n componentArray.push(\r\n 0 || processedItem.subItems.length > 1}\r\n shouldIndent={true}\r\n text={parent.subItems[j].content.text}\r\n displayDownload={parent.subItems[j].content.display_download}\r\n />\r\n )\r\n }\r\n else if (isStructuredArticle(parent.subItems[j].content_type)) {\r\n componentArray.push()\r\n }\r\n else {\r\n componentArray.push(\r\n
    {parent.subItems[j].content.text}
    \r\n )\r\n }\r\n }\r\n }\r\n else if (isStructuredArticle(processedItem.subItems[i].content_type)) {\r\n componentArray.push()\r\n }\r\n else {\r\n componentArray.push(\r\n
    {processedItem.subItems[i].content.text}
    \r\n )\r\n }\r\n }\r\n }\r\n //Search-FTEO--WIP\r\n else if (isSingleTopic === true && processedItem.containsBinary === true) {\r\n if (isStructuredArticle(item.content_type)) {\r\n componentArray.push()\r\n }\r\n else {\r\n componentArray.push(\r\n \r\n )\r\n }\r\n }\r\n }\r\n else if (isStructuredArticle(item.content_type)) {\r\n componentArray.push()\r\n }\r\n else {\r\n componentArray.push()\r\n }\r\n }\r\n });\r\n\r\n if (footnoteArray.length > 0) {\r\n componentArray.push();\r\n }\r\n\r\n return componentArray;\r\n }\r\n\r\n return (\r\n <>\r\n {getComponentArray()}\r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nRenderAllContainer.propsTypes = {\r\n typeName: \"RenderAllContainer\"\r\n}\r\n\r\nexport default RenderAllContainer;\r\n","\r\nimport React from 'react';\r\nimport cx from 'classnames';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport JumpLinkMain from \"./JumpLinkMain\"\r\nimport JumpLinkSub from './JumpLinkSub';\r\nimport { getOffsetTop } from './RenderAllContainer';\r\nimport ShowIf from '../Common/ShowIf';\r\n\r\nexport const scrollElementIntoView = (element, offsetCompensation = 0) => {\r\n if (!element) return;\r\n const offsetTop = getOffsetTop(element);\r\n const offsetCalc = offsetTop + offsetCompensation;\r\n window.scrollTo(0, offsetCalc);\r\n};\r\n\r\nconst JumpLinksList = ({ closeToc, jumpLinks, className, scrollOffsetCompensation }) => {\r\n\r\n const { setOpenMultipleExpandedSections } = useArticleContext();\r\n\r\n function jumpHandler(e, jumpClass) {\r\n const targetEl = document.querySelector('[class*=' + jumpClass + ']');\r\n const sectionsToExpand = [];\r\n let currentEl = targetEl;\r\n\r\n while (currentEl !== null) {\r\n if (currentEl.hasAttribute('data-expandable-uuid') && !currentEl.classList.contains('open')) {\r\n sectionsToExpand.push(currentEl.dataset.expandableUuid);\r\n }\r\n currentEl = currentEl.parentElement.closest('[data-expandable-uuid]');\r\n }\r\n\r\n if (sectionsToExpand.length) {\r\n setOpenMultipleExpandedSections(sectionsToExpand, true);\r\n }\r\n\r\n const scrollToTarget = () => {\r\n scrollElementIntoView(targetEl, scrollOffsetCompensation);\r\n closeToc();\r\n }\r\n\r\n e.preventDefault();\r\n setTimeout(scrollToTarget, 0);\r\n }\r\n\r\n function createJumpLinksSubTree(jumpLink, level) {\r\n return (\r\n 0}>\r\n
      \r\n {jumpLink.children.filter(child => child?.title).map((child, i) => (\r\n
      \r\n \r\n \r\n {createJumpLinksSubTree(child, level + 1)}\r\n
      \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
      \r\n {jumpLinks.filter(jumpLink => jumpLink?.title).map((jumpLink, i) => (\r\n
      \r\n \r\n \r\n { createJumpLinksSubTree(jumpLink, 0) }\r\n
      \r\n ))}\r\n\r\n
    \r\n )\r\n}\r\n\r\nJumpLinksList.defaultProps = {\r\n closeToc: () => { },\r\n scrollOffsetCompensation: 0,\r\n}\r\n\r\nexport default JumpLinksList\r\n","import UTILITIESHELPER from './UtilitiesHelper';\r\nimport {isIndexedComponent} from './getComponentInfo';\r\nimport {logs, page} from '../helpers/log.js';\r\nimport { ErrorCodes, ErrorMessages } from '../components/Constants/Errors';\r\nimport { PUBLICATIONTYPE_IDS } from '../components/Constants/Constants';\r\nvar skipFootNoteInJumpLinks = true;\r\n\r\nfunction createJumpLink(title, guid) {\r\n return {\r\n title,\r\n href: '#' + guid,\r\n jumpClass: 'jumplink-' + guid,\r\n children: []\r\n }\r\n}\r\n\r\nfunction getChildren(rootEl, preventAddDetailsOnlyChild = false) {\r\n let childrenStructuredArticleSection = Array.from(rootEl.querySelectorAll(':scope > .structured-article > .article-title-button-container'));\r\n if (!childrenStructuredArticleSection.length) {\r\n childrenStructuredArticleSection = Array.from(rootEl.querySelectorAll(':scope > .structured-article-panel > .structured-article-section > .article-sub-title-button-container'));\r\n }\r\n let childrenStructuredArticleSubSection = Array.from(rootEl.querySelectorAll(':scope > .structured-article-section > .article-sub-title-button-container'));\r\n if (!childrenStructuredArticleSubSection.length) {\r\n childrenStructuredArticleSubSection = Array.from(rootEl.querySelectorAll(':scope > .structured-article-subpanel > .structured-article-section > .article-sub-title-button-container'));\r\n }\r\n let childrenArticleDetailsSubtopicHeading = Array.from(rootEl.querySelectorAll(':scope > .article > details > summary > .subtopicheading'));\r\n\r\n let childrenStructuredArticleTechSpeaking = Array.from(rootEl.querySelectorAll(':only-child > .ts-section .ts-toc-main > .ts-toc-heading'));\r\n\r\n let childrenDetails = [];\r\n if (rootEl.nodeName === 'DETAILS') {\r\n childrenDetails = Array.from(rootEl.querySelectorAll(':scope > details'));\r\n } else {\r\n childrenDetails = Array.from(rootEl.querySelectorAll(':only-child > details'));\r\n if (preventAddDetailsOnlyChild) {\r\n childrenDetails = childrenDetails.filter(el => el.parentElement.parentElement.parentElement.parentElement.className.includes('structured-article-panel'))\r\n }\r\n }\r\n childrenStructuredArticleSection = childrenStructuredArticleSection.map(el => ({ content: el, type: 'structured-article-section' }))\r\n childrenStructuredArticleSubSection = childrenStructuredArticleSubSection.map(el => ({ content: el, type: 'structured-article-subsection' }));\r\n childrenArticleDetailsSubtopicHeading = childrenArticleDetailsSubtopicHeading.map(el => ({ content: el, type: 'subtopicheading'}));\r\n childrenDetails = childrenDetails.map(el => ({ content: el, type: 'details'}));\r\n childrenStructuredArticleTechSpeaking = childrenStructuredArticleTechSpeaking.map(el => ({ content: el, type: 'technicallyspeaking'}));\r\n\r\n\r\n return [...childrenStructuredArticleSection, ...childrenStructuredArticleSubSection, ...childrenArticleDetailsSubtopicHeading, ...childrenDetails, ...childrenStructuredArticleTechSpeaking];\r\n}\r\n\r\nfunction buildAndGetChildrenFromStructuredSubArticle(subtopicHeading) {\r\n const link = createJumpLink(subtopicHeading.textContent, subtopicHeading.parentElement.id);\r\n const children = processChildren(subtopicHeading.parentElement);\r\n const filteredChildren = children.filter(x => x.href !== link.href);\r\n link.children = filteredChildren;\r\n return link;\r\n}\r\n\r\nfunction buildAndGetChildrenFromStructuredArticle(subtopicHeading) {\r\n const link = createJumpLink(subtopicHeading.textContent, subtopicHeading.parentElement.id);\r\n const children = processChildren(subtopicHeading.parentElement);\r\n const filteredChildren = children.filter(x => x.href !== link.href);\r\n link.children = filteredChildren;\r\n return link;\r\n}\r\n\r\nfunction buildAndGetChildrenFromSubtopicHeading(subtopicHeading) {\r\n const parentEl = subtopicHeading.parentElement.parentElement;\r\n // add jumplink class to parent so we have a jump target\r\n parentEl.classList.add('jumplink-' + parentEl.id);\r\n const link = createJumpLink(subtopicHeading.textContent, parentEl.id);\r\n const children = processChildren(parentEl);\r\n const filteredChildren = children.filter(x => x.href !== link.href);\r\n link.children = filteredChildren;\r\n return link;\r\n}\r\n\r\nfunction buildAndGetChildrenFromDetails(el) {\r\n const title = el.querySelector(':scope > summary > .subtopicheading')\r\n const parentEl = el.parentElement;\r\n // add jumplink class to parent so we have a jump target\r\n el.classList.add('jumplink-' + (UTILITIESHELPER.isStringNullorEmpty(title.id) ? parentEl.id : title.id));\r\n const link = createJumpLink(title.textContent, UTILITIESHELPER.isStringNullorEmpty(title.id) ? parentEl.id : title.id);\r\n const children = processChildren(el);\r\n const filteredChildren = children.filter(x => x.href !== link.href);\r\n link.children = filteredChildren;\r\n return link;\r\n}\r\n\r\nfunction buildAndGetChildrenFromTechnicallySpeakingHeading(subtopicHeading) {\r\n const parentEl = subtopicHeading.parentElement.parentElement;\r\n parentEl.classList.add('jumplink-' + parentEl.id);\r\n const link = createJumpLink(subtopicHeading.textContent, parentEl.id);\r\n return link;\r\n}\r\n\r\nfunction getPosition(rootHtml, link, compareLinks) {\r\n let counter = 0;\r\n\r\n compareLinks.forEach(l => {\r\n if (rootHtml.indexOf(l.href.replace('#', '')) >= 0) {\r\n counter = counter + 1;\r\n }\r\n })\r\n\r\n return counter;\r\n}\r\n\r\nfunction orderLinks(rootEl, links) {\r\n const rootHtml = rootEl.innerHTML;\r\n return links.map(link => {\r\n const linksWithoutActiveLink = links.filter(l => l.href !== link.href)\r\n const position = getPosition(rootHtml, link, linksWithoutActiveLink)\r\n return {\r\n ...link,\r\n position\r\n }\r\n }).sort((a, b) => a.position - b.position)\r\n}\r\n\r\nfunction processChildren(rootEl, preventAddDetailsOnlyChild = false) {\r\n let links = [];\r\n const children = getChildren(rootEl, preventAddDetailsOnlyChild);\r\n children.forEach(child => {\r\n let link;\r\n switch (child.type) {\r\n case 'structured-article-section':\r\n link = buildAndGetChildrenFromStructuredArticle(child.content);\r\n break;\r\n case 'structured-article-subsection':\r\n link = buildAndGetChildrenFromStructuredSubArticle(child.content);\r\n break;\r\n case 'subtopicheading':\r\n link = buildAndGetChildrenFromSubtopicHeading(child.content);\r\n break;\r\n case 'technicallyspeaking':\r\n link = buildAndGetChildrenFromTechnicallySpeakingHeading(child.content);\r\n break;\r\n default:\r\n link = buildAndGetChildrenFromDetails(child.content);\r\n }\r\n links.push(link)\r\n });\r\n\r\n links = orderLinks(rootEl, links);\r\n\r\n return links;\r\n}\r\n\r\nexport function getJumpLinks(pubData, _isGuidebook, isJournalPage, contentSelector = '.structured-article-panel') {\r\n try {\r\n let jumplinks = [];\r\n const containerEl = document.querySelector(contentSelector);\r\n if (containerEl) {\r\n //jumplinks = getSubItemsLinks(containerEl);\r\n jumplinks = processChildren(containerEl, true);\r\n const containerElStructuredArticlePanel = document.querySelector('.article-content-container');\r\n jumplinks = !jumplinks.length ? processChildren(containerElStructuredArticlePanel, true) : jumplinks;\r\n }\r\n\r\n return jumplinks;\r\n } catch (err) {\r\n return []\r\n }\r\n}\r\nexport function hasJumpLinks(pubData, _isGuidebook) {\r\n //This method needs to be called at the begining\r\n if (window.location.pathname.toLocaleLowerCase().includes(\"technically%20speaking\")) {\r\n addClassInTechSpeakingDoc();\r\n }\r\n addCollapsibleSectionsToSubtopics();\r\n try {\r\n if(pubData !== null && pubData !== undefined){\r\n const items = _isGuidebook || (pubData?.publication_type === PUBLICATIONTYPE_IDS.externalCollection)? (pubData?.content?.[0]?.subItems || []) : pubData.content\r\n // H2, H3s and the like\r\n if (items !== null) {\r\n const filteredLength = items\r\n .filter(({ content_type }) => !isIndexedComponent(content_type))\r\n .map(({ content, id }) => createJumpLink(UTILITIESHELPER.getContentItemTitle(content, skipFootNoteInJumpLinks), id))\r\n .filter(link => link.title)\r\n .length\r\n\r\n if (filteredLength > 0) return true;\r\n }\r\n\r\n // .subtopic\r\n const pubText = pubData ? pubData?.content : [];\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(pubText)) {\r\n const pubParsedText = pubText\r\n .filter(c => !isIndexedComponent(c.content_type) && (c.content.text && c.content.text.length))\r\n .map(c => c.content.text)\r\n .join('');\r\n const parser = new DOMParser();\r\n const pubHTML = parser.parseFromString(pubParsedText, 'text/html');\r\n const subTopicHeadingNodeList = pubHTML.querySelectorAll('.subtopicheading');\r\n const filteredSubTopicHeadings = Array.from(subTopicHeadingNodeList).filter(el => el.textContent.trim().length > 0)\r\n return filteredSubTopicHeadings.length > 0;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n } catch (err) {\r\n logs.error(page.Link, 'Jumplinks', ErrorMessages.jumplinks, err,{eventId:ErrorCodes.Article});\r\n return true; // default to true, empty is better than hidden w/ content\r\n }\r\n}\r\n\r\nexport function addCollapsibleSectionsToSubtopics()\r\n{\r\n let subTopicHeadingNodeList = document.querySelectorAll('.subtopic');\r\n subTopicHeadingNodeList = subTopicHeadingNodeList ? subTopicHeadingNodeList : [];\r\n\r\n Array.from(subTopicHeadingNodeList)\r\n .map(subTopic => { //eslint-disable-line\r\n const summaryTag = document.createElement('summary');\r\n const titleTag = subTopic.querySelector('.subtopicheading');\r\n if (titleTag) {\r\n summaryTag.append(titleTag.cloneNode(true));\r\n subTopic.replaceChild(summaryTag, titleTag);\r\n\r\n const detailsTag = document.createElement('details');\r\n const subTopicId = subTopic.getAttribute('id')\r\n const subTopicAriaLabelled = subTopic.getAttribute('aria-labelledby')\r\n detailsTag.setAttribute('open', 'open');\r\n detailsTag.setAttribute('id', subTopicId);\r\n detailsTag.setAttribute('aria-labelledby', subTopicAriaLabelled);\r\n detailsTag.innerHTML = subTopic.innerHTML;\r\n subTopic.parentNode.replaceChild(detailsTag, subTopic);\r\n }\r\n })\r\n}\r\n\r\nexport function addClassInTechSpeakingDoc() {\r\n if (document.querySelectorAll('.ts-section').length <= 0) {\r\n let tocHeadingNodeList = document.querySelectorAll('.div .table tbody tr td h2:not(.sectiontitle), .div .table tbody tr td h3:not(.sectiontitle)');\r\n tocHeadingNodeList = tocHeadingNodeList ? tocHeadingNodeList : [];\r\n Array.from(tocHeadingNodeList)\r\n .map(subTopic => { //eslint-disable-line\r\n subTopic.parentElement.classList.add(\"ts-toc-main\");\r\n subTopic.classList.add(\"ts-toc-heading\");\r\n subTopic.parentElement.parentElement.setAttribute(\"id\", UTILITIESHELPER.generateUUID())\r\n });\r\n\r\n let tsSection = document.querySelectorAll('.div .table');\r\n tsSection = tsSection ? tsSection : [];\r\n let index = 1;\r\n Array.from(tsSection)\r\n .map(subTopic => {//eslint-disable-line\r\n if (subTopic.parentElement.parentElement.className.includes('article')) {\r\n subTopic.style.width = \"100%\";\r\n subTopic.parentElement.classList.add(\"ts-section\");\r\n if (index <= 2) {\r\n subTopic.parentElement.classList.add(\"ts-banner_\" + index);\r\n }\r\n if (subTopic.querySelector(\"img\")?.src?.includes(\"deloitte-logo\")) {\r\n subTopic.parentElement.style.display = \"none\";\r\n }\r\n index++;\r\n }\r\n });\r\n\r\n let tspSection = document.querySelectorAll('.div .table p, .div .table .p');\r\n tspSection = tspSection ? tspSection : [];\r\n Array.from(tspSection)\r\n .map(subTopic => {//eslint-disable-line\r\n if (subTopic.parentElement.style.color) {\r\n subTopic.style.color = subTopic.parentElement.style.color;\r\n }\r\n });\r\n }\r\n\r\n}\r\nexport default {\r\n getJumpLinks,\r\n hasJumpLinks\r\n}\r\n","\r\nimport React, { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport cx from 'classnames';\r\n\r\nimport ShowIf from \"../Common/ShowIf\"\r\nimport JumpLinksList from './JumpLinksList';\r\nimport IconX from '../Common/IconX';\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\n\r\nimport { getJumpLinks, hasJumpLinks } from '../../helpers/JumpLinkHelpers';\r\n\r\nconst ArticleTOC = ({ isOpen, setIsOpen, className, classNameContainer, pubData }) => {\r\n const iconClass = isOpen ? 'icon-article-toc-open' : '';\r\n const tocRef = useRef();\r\n const location = useLocation();\r\n const isGuidebook = location.pathname.indexOf('/folio/') !== -1;\r\n const [jumpLinks, setJumpLinks] = useState([]);\r\n const [containsJumpLinks] = useState(hasJumpLinks(pubData, isGuidebook));\r\n const { getLabel } = usePageContextLabels();\r\n const { isJournalPage } = usePageContext();\r\n\r\n useOutsideClick(tocRef, () => {\r\n setIsOpen(false)\r\n }, ['#article-toc-fixed']);\r\n\r\n useEffect(() => {\r\n // only build jump links on open and if they have not been generated before\r\n if (isOpen && jumpLinks.length === 0) {\r\n setJumpLinks(getJumpLinks(pubData, isGuidebook, isJournalPage));\r\n }\r\n }, [isOpen]);//eslint-disable-line\r\n\r\n const closeToc = useCallback(() => setIsOpen(false), []);//eslint-disable-line\r\n\r\n const toggleToc = () => setIsOpen(prevVal => !prevVal);\r\n \r\n //Styling for Icon props\r\nconst iconX ={\r\n margin: 'auto',\r\n marginRight: 10 , \r\n}\r\n\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n

    {getLabel(\"a_InArticleTocContents\", \"Contents\")}

    \r\n \r\n
    \r\n
    \r\n {jumpLinks.length > 0 &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nArticleTOC.defaultProps = {\r\n setIsOpen: () => { },\r\n}\r\n\r\nexport default ArticleTOC;\r\n","import React, { useState } from 'react';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nexport const EmbeddedArticleBlockSubsection = (props) => {\r\n const [subsectionOpen, toggleSubsection] = useState(false);\r\n const isQnA = props.isQnA;\r\n const isObjective = props.isObjective;\r\n const subItem = props.subItem;\r\n const innerSubItem = props.innerSubItem;\r\n\r\n return (\r\n
    \r\n\r\n \r\n\r\n
    \r\n \r\n

    {innerSubItem.content.question?.title}

    \r\n {innerSubItem.content.question?.text}\r\n {innerSubItem.content.answer?.map((answer) => {\r\n return (\r\n <>\r\n

    {answer.title}

    \r\n {answer.text}\r\n \r\n )\r\n })}\r\n
    \r\n\r\n \r\n

    {innerSubItem.content.objective?.title}

    \r\n {innerSubItem.content.objective?.text}\r\n\r\n

    {innerSubItem.content.why?.title}

    \r\n {innerSubItem.content.why?.text}\r\n\r\n
    \r\n\r\n {innerSubItem.content.text}\r\n
    \r\n
    \r\n )\r\n\r\n\r\n}\r\n\r\nexport default EmbeddedArticleBlockSubsection;\r\n","import React from 'react';\r\nimport EmbeddedArticleBlockSubsection from './EmbeddedArticleBlockSubsection';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nexport const EmbeddedArticleBlockSection = (props) => {\r\n const isQnA = props.isQnA;\r\n const isObjective = props.isObjective;\r\n const subItem = props.subItem;\r\n\r\n return (\r\n
    \r\n {subItem.content.text}\r\n {subItem.subItems.map((innerSubItem, i) => {\r\n return (\r\n \r\n )\r\n })}\r\n\r\n
    \r\n )\r\n\r\n\r\n}\r\n\r\nexport default EmbeddedArticleBlockSection;\r\n","import React, { useState } from 'react';\r\nimport EmbeddedArticleBlockSection from './EmbeddedArticleBlockSection';\r\n\r\nexport const EmbeddedArticleBlock = (props) => {\r\n const [blockOpen, toggleBlock] = useState(false);\r\n const content = props.content;\r\n\r\n return (\r\n
    \r\n \r\n {content.subItems.map((subItem, i) => {\r\n return ()\r\n })}\r\n
    \r\n )\r\n\r\n\r\n}\r\n\r\nexport default EmbeddedArticleBlock;\r\n","import React, { useState } from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport LinkHelpers from '../../helpers/LinkHelpers';\r\nimport EmbeddedArticleBlock from './EmbeddedArticleBlock';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\n\r\n\r\nexport const EmbeddedArticle = (props) => {\r\n\r\n const [guideOpen, toggleGuidance] = useState(UTILITIESHELPER.sectionExpandDisplayStatus());\r\n const data = props.data;\r\n const { getLabel } = usePageContextLabels();\r\n\r\n if (!data.content) { return null; }\r\n\r\n // XSS url sanitization\r\n const sanitizedUrl = LinkHelpers.sanitizeUrl(window.location);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {data.content.map((content) => {\r\n return (\r\n \r\n )\r\n })}\r\n\r\n

    {getLabel(\"e_EmbeddedOpenThisOnTheResearchPortal\", \"Open this on the Omnia Research Portal\")}

    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default EmbeddedArticle;","\r\nconst getIconSrc = (_icon) => {\r\n switch (_icon) {\r\n case 'folio':\r\n return '/images/icon-folios.svg';\r\n case 'guidebook':\r\n return '/images/icon-folios.svg';\r\n case 'journal':\r\n\t\tcase 'deloitte-communications':\r\n\t\tcase 'professional-news':\r\n return '/images/icon-communications.svg';\r\n\t\tcase 'standards':\r\n case 'standard': \r\n\t\t\treturn '/images/icon-refrences.svg';\r\n\t\tcase 'roadmap':\r\n case 'manual':\r\n default:\r\n return '/images/icon-roadmaps.svg';\r\n }\r\n}\r\n\r\n// icon change location\r\n\r\nexport default getIconSrc;\r\n","import React from 'react';\r\nimport getIconSrc from '../../helpers/getIconSrc';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\n\r\nconst SidebarIconNextToTitle = () => {\r\n const { context } = usePageContext();\r\n return (\r\n \r\n )\r\n};\r\n\r\nexport default SidebarIconNextToTitle;\r\n","import React, { createContext, useContext, useReducer,useState } from \"react\";\r\nimport UTILITIESHELPER from \"../helpers/UtilitiesHelper\";\r\n\r\nexport const FolioPickerContext = createContext();\r\nexport const useFolioPickerContext = () => useContext(FolioPickerContext);\r\n\r\nexport const ACTION = {\r\n FOLIOPICKER_LOAD: \"folio::load\",\r\n FOLIOPICKER_SELECT: \"folio::select\",\r\n FOLIOPICKER_LOAD_TAXONOMY:\"folio::loadTaxonomy\",\r\n CONTENTTAG_LOADAll_TAXONOMY:\"folio::loadAllFolioTaxonomy\"\r\n \r\n};\r\n\r\nconst initialState = {\r\n taxonomyLists:[],\r\n selected:\"\",\r\n id :\"\",\r\n name:\"\",\r\n taxonomyId:\"\",\r\n folioLists:[],\r\n taxonomyNonAccountList:[],\r\n allFolio:{},\r\n memberFirm:''\r\n};\r\n\r\nconst reducer = (state, action) => {\r\n\r\n switch (action.type) {\r\n \r\n case ACTION.FOLIOPICKER_LOAD:\r\n return { ...state, folioLists:action.payload.folioLists, selected:action.payload.selected, id:action.payload.id, name:action.payload.name, taxonomyId:action.payload.taxonomyId, memberFirm:action.payload.memberFirm}; \r\n case ACTION.FOLIOPICKER_SELECT:\r\n return { ...state,folioLists:action.payload.folioLists,allFolio:action.payload.allFolio}; \r\n case ACTION.FOLIOPICKER_LOAD_TAXONOMY:\r\n return {...state,folioLists:action.payload.folioLists,memberFirm:action.payload.memberFirm} \r\n case ACTION.CONTENTTAG_LOADAll_TAXONOMY:\r\n return {...state,allFolio:action.payload.allFolio} \r\n \r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default function FolioPickerContextProvider({ children }) {\r\n const [state, folioDispatch] = useReducer(reducer, initialState);\r\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\r\n \r\n const store = {\r\n state,\r\n folioDispatch,\r\n isDropdownOpen,\r\n setIsDropdownOpen\r\n\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShowIf from '../ShowIf';\r\nfunction Trigger({ value, condition }) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nTrigger.propTypes = {\r\n condition:PropTypes.bool,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.node\r\n ]).isRequired\r\n}\r\n\r\n\r\nexport default Trigger;","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\nimport useOutsideClick from '../../../hooks/useOutsideClick';\r\nimport Trigger from './Trigger';\r\nimport { useLocation } from 'react-router';\r\n\r\nfunction Dropdown({\r\n children,\r\n ddClassNames,\r\n triggerText,\r\n triggerEl,\r\n triggerClassNames,\r\n triggerDot,\r\n containerClassNames,\r\n onChange,\r\n isFolioDropdown = false,\r\n isFixed = false,\r\n sidebarHeight = { height: 'auto', width: 'auto'},\r\n controlledOpen,\r\n setControlledOpen,\r\n}) {\r\n const ref = useRef();\r\n const localOpen = useRef(false);\r\n const { pathname } = useLocation();\r\n\r\n // Initialize the open state\r\n const [open, setOpen] = useState(controlledOpen !== undefined ? controlledOpen : false);\r\n\r\n // Update the open state when controlledOpen changes\r\n useEffect(() => {\r\n if (controlledOpen !== undefined) {\r\n setOpen(controlledOpen);\r\n }\r\n }, [controlledOpen]);\r\n\r\n // Handle trigger click\r\n function handleTriggerClick(e) {\r\n e.preventDefault();\r\n const newState = !open;\r\n setOpen(newState);\r\n if (setControlledOpen) {\r\n setControlledOpen(newState);\r\n } else {\r\n onChange(newState);\r\n }\r\n setTimeout(() => {\r\n const nextIndex = '#option-0';\r\n const nextOptionItem = document.querySelector(nextIndex);\r\n if (nextOptionItem) {\r\n nextOptionItem.focus();\r\n }\r\n }, 500)\r\n }\r\n function onKeyDown(e) {\r\n if (e.key === 'Enter' || (e.key === 'ArrowDown' && e.target.id === 'category-dropdown')) {\r\n handleTriggerClick(e);\r\n }\r\n }\r\n\r\n function handleOutsideClick() {\r\n setOpen(false);\r\n if (setControlledOpen) {\r\n setControlledOpen(false);\r\n } else {\r\n onChange(false);\r\n }\r\n }\r\n\r\n // close on outside click\r\n useOutsideClick(ref, handleOutsideClick);\r\n\r\n useEffect(() => {\r\n document.addEventListener('dd:requestClose', handleOutsideClick);\r\n return () => {\r\n document.removeEventListener('dd:requestClose', handleOutsideClick);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n handleOutsideClick();\r\n }, [pathname])//eslint-disable-line\r\n\r\n // memoize trigger\r\n const trigger = useMemo(() => {\r\n function getTrigger(text, altEl) {\r\n if (altEl) return altEl;\r\n return ;\r\n }\r\n return getTrigger(triggerText, triggerEl)\r\n }, [triggerText, triggerEl]);//eslint-disable-line\r\n\r\n // build trigger classes\r\n const triggerClasses = cx({\r\n 'dd__trigger': true,\r\n 'dd__trigger--active': open,\r\n }, [triggerClassNames]);\r\n\r\n return (\r\n
    \r\n
    \r\n {trigger}\r\n
    \r\n {open && !isFolioDropdown &&
    {children}
    }\r\n {open && isFolioDropdown && isFixed &&
    {children}
    }\r\n {open && isFolioDropdown && !isFixed &&
    {children}
    }\r\n
    \r\n );\r\n}\r\n\r\nDropdown.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n ddClassNames: PropTypes.string,\r\n triggerEl: PropTypes.node,\r\n triggerText: PropTypes.string,\r\n triggerClassNames: PropTypes.string,\r\n triggerDot: PropTypes.bool,\r\n containerClassNames: PropTypes.string,\r\n onChange: PropTypes.func,\r\n isFolioDropdown: PropTypes.bool,\r\n isFixed: PropTypes.bool,\r\n controlledOpen: PropTypes.bool,\r\n setControlledOpen: PropTypes.func,\r\n};\r\n\r\nDropdown.defaultProps = {\r\n ddClassNames: '',\r\n triggerText: 'Trigger Title',\r\n triggerEl: null,\r\n triggerClassNames: '',\r\n triggerDot: false,\r\n containerClassNames: '',\r\n onChange: () => { },\r\n isFolioDropdown: false,\r\n isFixed: false,\r\n sidebarHeight: { height: 'auto', width: 'auto' },\r\n controlledOpen: undefined,\r\n setControlledOpen: undefined,\r\n};\r\n\r\nexport default Dropdown;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction Panel({ children, additionalClassNames }) {\r\n return (\r\n
    \r\n {children}\r\n
    \r\n )\r\n}\r\n\r\nPanel.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired,\r\n additionalClassNames: PropTypes.string\r\n}\r\n\r\nPanel.defaultProps = {\r\n additionalClassNames: ''\r\n}\r\n\r\nexport default Panel;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ScrollArea({ children, maxHeight, maxWidth, additionalClassNames }) {\r\n const styles = {};\r\n if (maxHeight !== null) {\r\n styles.maxHeight = maxHeight;\r\n }\r\n if (maxWidth !== null) {\r\n styles.maxWidth = maxWidth;\r\n }\r\n\r\n return (\r\n
    \r\n {children}\r\n
    \r\n )\r\n}\r\n\r\nScrollArea.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired,\r\n maxHeight: PropTypes.string,\r\n maxWidth: PropTypes.string,\r\n additionalClassNames: PropTypes.string\r\n}\r\n\r\nScrollArea.defaultProps = {\r\n maxHeight: null,\r\n maxWidth: null,\r\n additionalClassNames: ''\r\n}\r\n\r\nexport default ScrollArea;","import Dropdown from \"./Dropdown\";\r\nimport Trigger from \"./Trigger\";\r\nimport Panel from \"./Panel\";\r\nimport ScrollArea from \"./ScrollArea\";\r\n\r\nDropdown.Trigger = Trigger;\r\nDropdown.Panel = Panel;\r\nDropdown.ScrollArea = ScrollArea;\r\n\r\nexport default Dropdown;","\r\nimport React, { useState, useEffect, useCallback } from \"react\";\r\nimport Dropdown from '../Common/Dropdown';\r\nimport { usePageContext } from \"../../contexts/PageContext\";\r\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\nimport { ACTION, useFolioPickerContext } from '../../contexts/FolioPickerContext';\r\nimport cx from 'classnames';\r\nimport TierHelpers from '../../helpers/TierHelpers';\r\nimport IndustryHelpers from '../../helpers/IndustryHelpers';\r\n\r\n\r\nfunction FolioTrigger({ folio, searchQuery, setSearchQuery }) {\r\n const [isFocused, setIsFocused] = useState(false);\r\n const handleFocus = () => setIsFocused(true);\r\n const handleBlur = () => setIsFocused(false);\r\n return (\r\n\r\n
    \r\n setSearchQuery(e.target.value)} placeholder={folio.label} className={cx(\"folio-search-input\", { \"placeholder-bold\": isFocused })} onFocus={handleFocus} onBlur={handleBlur} />\r\n
    \r\n )\r\n}\r\n\r\nfunction FolioItem({ folio, selected, onClick }) {\r\n const { setIsDropdownOpen } = useFolioPickerContext();\r\n const selectedString = selected.id\r\n const folioString = folio.id\r\n setIsDropdownOpen(true);\r\n\r\n function handleClick() {\r\n onClick(folio);\r\n }\r\n return (\r\n
    \r\n
    \r\n
    {folio.name}
    \r\n
    \r\n )\r\n}\r\n\r\nfunction FolioDropdown({ folioPickerLists, selected, onSelect, isFixed, searchQuery, setSearchQuery }) {\r\n const { isDropdownOpen, setIsDropdownOpen } = useFolioPickerContext();\r\n const [sidebarHeight, setSideBarHeight] = useState(0);\r\n function handleSelect(folio) {\r\n onSelect(folio);\r\n setIsDropdownOpen(false);\r\n }\r\n function moveSelectedToTop(list, selected) {\r\n const selectedItem = list?.find(item => item.id == selected.id);\r\n const filteredList = list?.filter(item => item.id != selected.id);\r\n return selectedItem ? [selectedItem, ...filteredList] : filteredList;\r\n }\r\n const filteredFolioPickerLists = folioPickerLists?.items?.filter((folio) => (folio.label.toLowerCase()).includes(searchQuery.toLowerCase()));\r\n const newList = moveSelectedToTop(filteredFolioPickerLists, selected);\r\n\r\n\r\n function getTriggerEl() {\r\n\r\n return ;\r\n }\r\n\r\n useEffect(() => {\r\n const sidePannelBody = document.querySelector(\".side-pannel-inner-container\");\r\n const breadCrumbHeight = document.querySelector('.crumbtrail')\r\n if (sidePannelBody) {\r\n setSideBarHeight({ height: sidePannelBody.offsetHeight - 28 - breadCrumbHeight.offsetHeight, width: sidePannelBody.offsetWidth })\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n\r\n \r\n \r\n {newList.length > 0 ? newList.map((item) => (\r\n \r\n )) : (\r\n
    No option
    \r\n )}\r\n \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nfunction FolioPickerDropdown({ folioPickerLists, folioPickerId, selected, isFixed }) {\r\n\r\n const { state, folioDispatch } = useFolioPickerContext();\r\n const [selectedFolio, setSelectedFolio] = useState(selected);\r\n const { memberFirm, language, knowledgeDomain ,context, tier, setTier, industry, setIndustry, setCurrentTier, setCurrentIndustry } = usePageContext();\r\n const navigate = useNavigate();\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n const clearTierList = () => {\r\n const tier = TierHelpers.removeLocalStorageWithValue(context.knowledgeDomain, context.memberFirm);\r\n setTier(tier);\r\n setCurrentTier(tier);\r\n }\r\n\r\n const clearIndustryList = () => {\r\n const industry = IndustryHelpers.removeLocalStorageWithValue(context.knowledgeDomain, context.memberFirm);\r\n setIndustry(industry);\r\n setCurrentIndustry(industry);\r\n }\r\n\r\n function handleFolioSelect(folio) {\r\n setSelectedFolio(folio);\r\n\r\n const payload = {\r\n selected: folio.name,\r\n id: folio.id,\r\n name: folio.label,\r\n taxonomyId: folioPickerId,\r\n folioLists: state.folioLists,\r\n memberFirm:context.memberFirm\r\n\r\n }\r\n\r\n folioDispatch({\r\n type: ACTION.FOLIOPICKER_LOAD,\r\n payload: payload,\r\n });\r\n\r\n if (tier[context.memberFirm][context.knowledgeDomain]?.length > 0) {\r\n clearTierList();\r\n }\r\n if (industry[context.memberFirm][context.knowledgeDomain]?.length > 0) {\r\n clearIndustryList();\r\n }\r\n const folioLabel = folio.href.substring(folio.href.lastIndexOf(\"/\")+1);\r\n navigate(`/${memberFirm}/${language}/${knowledgeDomain}/folio/${folioLabel}`);\r\n \r\n }\r\n return (\r\n
    \r\n\r\n {folioPickerLists && (\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default FolioPickerDropdown","\r\nimport React, { useCallback} from 'react';\r\nimport { Link } from \"react-router-dom\"\r\nimport cx from 'classnames';\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\nimport SidebarIconNextToTitle from \"./SidebarIconNextToTitle\"\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { useFolioPickerContext } from '../../contexts/FolioPickerContext';\r\nimport FolioPickerDropdown from '../Folio/FolioPickerDropdown';\r\nimport { PAGE_CONTROLLER_TYPE,FOLIO_SUBJECT_ACCOUNT, FOLIO_SUBJECT_NON_ACCOUNT } from \"../Constants/Constants\";\r\nimport { useLocation } from 'react-router-dom'\r\n\r\nconst SidebarTocTitle = ({\r\n navTitle,\r\n pubLandingUrl,\r\n shouldBeFixed,\r\n isFixed,\r\n publicationType,\r\n\r\n}) => {\r\n const {setSearchResults} = useSearchResultContext();\r\n const onClick = useCallback(() => { setSearchResults([])}, []);\r\n const {state:taxonomyListItems}=useFolioPickerContext();\r\n const getFolioId =(pubLandingUrl)=> {\r\n const regex= /(\\d+)-(\\d+)/ ;\r\n const match = pubLandingUrl?.match(regex);\r\n let value= \"\";\r\n if(match) {\r\n value = match[2];\r\n return value;\r\n }\r\n return value; \r\n }\r\n\r\n const folioObject = {\r\n id: getFolioId(pubLandingUrl),\r\n label: navTitle\r\n }\r\n const location = useLocation()\r\n const queryParams = new URLSearchParams(location?.search);\r\n const isSearchPage = !!queryParams?.get('searchPhrase');\r\n const renderFolioPickerDropdown = (publicationType === PAGE_CONTROLLER_TYPE.folio && !isSearchPage);\r\n let folioPickerLists=[];\r\n let folioPickerListsID='';\r\n function isAccountORNonAccount (pubLandingUrl) {\r\n let taxonomyLists=[];\r\n switch (true) {\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_NON_ACCOUNT.auditingNonAccountFolios):\r\n taxonomyLists= taxonomyListItems.folioLists.filter(item =>item.id == FOLIO_SUBJECT_NON_ACCOUNT.auditingNonAccountFolios)[0];\r\n break;\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_ACCOUNT.auditingAccountingFolios):\r\n taxonomyLists= taxonomyListItems.folioLists.filter(item =>item.id == FOLIO_SUBJECT_ACCOUNT.auditingAccountingFolios)[0];\r\n break;\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_NON_ACCOUNT.assuranceFolios):\r\n taxonomyLists= taxonomyListItems.folioLists.filter(item =>item.id == FOLIO_SUBJECT_NON_ACCOUNT.assuranceFolios)[0];\r\n break;\r\n case pubLandingUrl.includes(FOLIO_SUBJECT_ACCOUNT.accountingFolios):\r\n taxonomyLists= taxonomyListItems.folioLists.filter(item =>item.id == FOLIO_SUBJECT_ACCOUNT.accountingFolios)[0];\r\n break;\r\n }\r\n return taxonomyLists \r\n }\r\n\r\n \r\n if (renderFolioPickerDropdown) {\r\n folioPickerLists = isAccountORNonAccount(pubLandingUrl);\r\n folioPickerListsID= folioPickerLists?.id;\r\n }\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {navTitle}\r\n \r\n \r\n \r\n 0 && renderFolioPickerDropdown} >\r\n \r\n \r\n\r\n \r\n )\r\n};\r\n\r\nexport default SidebarTocTitle;\r\n","\r\nimport React, {useEffect,useState} from 'react';\r\nimport cx from 'classnames';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport ArticleTOC from '../Article/ArticleTOC';\r\nimport ArticleTitle from '../Article/ArticleTitle';\r\nimport SidebarTocTitle from './SidebarTocTitle';\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport { PAGE_CONTROLLER_TYPE } from \"../Constants/Constants\";\r\n\r\nconst FixedNavArticle = ({\r\n isWideMode, setIsWideMode,\r\n isJumpLinksOpen, setIsJumpLinksOpen,\r\n title,\r\n navTitle,\r\n pubLandingUrl,\r\n shouldBeFixed,\r\n pubData,\r\n showInArticleTOC,\r\n removeInArticleTOC,\r\n enableArticleTag,\r\n publicationType\r\n}) => {\r\n const [height,setHeight] =useState(0);\r\n \r\n useEffect(()=>{\r\n var navHeight=0;\r\n let previewHeight=document.getElementsByClassName(\"preview-warning\")[0]?.clientHeight\r\n if(!previewHeight)\r\n {\r\n previewHeight=0; \r\n }\r\n let heightOfCrum=document.getElementsByClassName(\"crumbtrail\")[0]?.clientHeight;\r\n\r\n navHeight=previewHeight+ heightOfCrum;\r\n setHeight(navHeight);\r\n },[])\r\n \r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n\r\n};\r\n\r\nFixedNavArticle.defaultProps = {\r\n setIsWideMode: () => { },\r\n setIsJumpLinksOpen: () => { },\r\n title: '',\r\n showInArticleTOC: true,\r\n removeInArticleTOC: false,\r\n enableArticleTag: false\r\n}\r\n\r\nexport default FixedNavArticle;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useArticleContext } from \"../../contexts/ArticleContext\";\r\nimport IconX from '../Common/IconX';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { scrollElementIntoView } from \"./JumpLinksList\";\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nconst FootnotePopup = ({ dependenciesToRecalculatePosition }) => {\r\n const [footnotePopupCoords, setFootnotePopupCoords] = useState({ x: 0, y: 0 });\r\n const [footnoteVerticalPosition, setFootnoteVerticalPosition] = useState('below');\r\n const isFootnotePositionedBelow = footnoteVerticalPosition === 'below';\r\n const { selectedFootnotePopup, setSelectedFootnotePopup, footNotesContentRef } = useArticleContext();\r\n const location = useLocation();\r\n\r\n const currentFootnote = (footNotesContentRef.current || []).find(footnote => footnote.number.toString() === selectedFootnotePopup);\r\n const currentFootNotesText = currentFootnote?.text || '';\r\n const modalDimensions = { height: 200, width: 425 };\r\n const offsetY = 15;\r\n\r\n const setPopupPosition = (_footnoteNum, el) => {\r\n if (!el) return;\r\n const popupBounds = el.getBoundingClientRect();\r\n const additionalPaddingBottom = 20;\r\n const amountPastViewportY = popupBounds.bottom + modalDimensions.height + offsetY + additionalPaddingBottom - window.innerHeight;\r\n const amountPastViewportXLeft = popupBounds.left - modalDimensions.width / 2 - 30;\r\n const amountPastViewportXRight = popupBounds.right + modalDimensions.width / 2 + 30 - window.innerWidth;\r\n const offsetXLeft = amountPastViewportXLeft < 0 ? amountPastViewportXLeft : 0;\r\n const offsetXRight = amountPastViewportXRight > 0 ? amountPastViewportXRight : 0;\r\n const articleContainer = document.querySelector('.article-container');\r\n const bounds = articleContainer.getBoundingClientRect();\r\n const x = ((popupBounds.left + popupBounds.right) / 2) - bounds.left - offsetXLeft - offsetXRight;\r\n const y = ((popupBounds.top + popupBounds.bottom) / 2) - bounds.top;\r\n setFootnoteVerticalPosition(amountPastViewportY > 0 ? 'above' : 'below'); \r\n setFootnotePopupCoords({ x, y });\r\n };\r\n\r\n useEffect(() => {\r\n const handleDocumentClick = (ev) => {\r\n if (!ev.target.classList.contains('footnote-link')) return;\r\n const footnoteNum = ev.target.dataset.footnoteNum;\r\n setSelectedFootnotePopup(footnoteNum);\r\n ev.preventDefault();\r\n setPopupPosition(footnoteNum, ev.target);\r\n };\r\n\r\n window.addEventListener('click', handleDocumentClick);\r\n return () => {\r\n window.removeEventListener('click', handleDocumentClick);\r\n }\r\n\r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n const handleDocumentResize = () => {\r\n if (!selectedFootnotePopup) return;\r\n setPopupPosition(selectedFootnotePopup);\r\n }\r\n\r\n window.addEventListener('resize', handleDocumentResize);\r\n return () => {\r\n window.removeEventListener('resize', handleDocumentResize);\r\n }\r\n\r\n }, [selectedFootnotePopup])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (!selectedFootnotePopup) return;\r\n setPopupPosition(selectedFootnotePopup);\r\n\r\n }, [...dependenciesToRecalculatePosition]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n setSelectedFootnotePopup();\r\n return () => setSelectedFootnotePopup()\r\n }, [location?.pathname]);//eslint-disable-line\r\n\r\n return (\r\n \r\n \r\n
    \r\n {\r\n const footnoteToScrollTo = document.getElementById(`footnote-${selectedFootnotePopup}`);\r\n scrollElementIntoView(footnoteToScrollTo, -80);\r\n setSelectedFootnotePopup(false);\r\n }}\r\n >\r\n {currentFootnote && currentFootnote.label}\r\n
    \r\n {currentFootNotesText}\r\n \r\n setSelectedFootnotePopup(false)}\r\n />\r\n \r\n
    \r\n\r\n )\r\n};\r\n\r\nexport default FootnotePopup;\r\n","\r\nimport React, { useState, useEffect } from 'react'\r\nimport cx from 'classnames';\r\nimport throttle from 'lodash.throttle';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\n\r\nconst HorizontalScrollbar = ({className, isRedingMode, shouldBeFixed}) => {\r\n let heightWarningNotProd = document.querySelector(\"#non-production-message\")?.offsetHeight;\r\n heightWarningNotProd = heightWarningNotProd ? heightWarningNotProd : 0;\r\n const heightHeader = document.querySelector('.header-container')?.offsetHeight;\r\n const defaultTopSize = heightHeader + heightWarningNotProd;\r\n //Duplicate variable just for readability\r\n const heightPixelsToHideImageHeader = heightHeader + heightWarningNotProd;\r\n const topSizeAfterScrollHeader = heightWarningNotProd;\r\n\r\n const [scale, setScale] = useState(0);\r\n const [top, setTop] = useState(document.querySelector(\".preview-warning\") ? 80 : 52 );\r\n\r\n // Function for move the horizontal scrollbar to top while scrolling\r\n window.addEventListener('scroll', function() {\r\n const pixelsUserHasScrolled = window.scrollY;\r\n if (pixelsUserHasScrolled > heightPixelsToHideImageHeader) {\r\n setTop(topSizeAfterScrollHeader)\r\n } else {\r\n setTop(defaultTopSize - pixelsUserHasScrolled)\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n const getDocHeight = () => {\r\n return Math.max(\r\n document.body.scrollHeight, document.documentElement.scrollHeight,\r\n document.body.offsetHeight, document.documentElement.offsetHeight,\r\n document.body.clientHeight, document.documentElement.clientHeight\r\n );\r\n }\r\n\r\n const calculateScrollDistance = () => {\r\n const scrollTop = window.pageYOffset;\r\n const docHeight = getDocHeight()\r\n const winHeight = window.innerHeight\r\n const totalDocScrollLength = docHeight - winHeight;\r\n const newScrollPostion = Math.floor(scrollTop / totalDocScrollLength * 100) / 100;\r\n setScale(newScrollPostion || 0);\r\n }\r\n\r\n const throttledHandler = throttle(calculateScrollDistance, 16);\r\n window.addEventListener('scroll', throttledHandler, { passive: true })\r\n window.addEventListener('resize', throttledHandler);\r\n\r\n calculateScrollDistance();\r\n\r\n return () => {\r\n window.removeEventListener('scroll', throttledHandler);\r\n window.removeEventListener('resize', throttledHandler);\r\n }\r\n\r\n });\r\n\r\n //styling for horizontal\r\n const horizontalContainer= {\r\n top: !isRedingMode ? top + 'px' : 0\r\n}\r\n\r\n//styling for horiziontal scroll bar transform\r\nconst transformStyle= {\r\n transform: `scaleX(${scale})`\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default HorizontalScrollbar;\r\n","import React,{ useState,useEffect } from 'react';\r\n\r\nimport cx from 'classnames';\r\nimport getIconSrc from '../../helpers/getIconSrc';\r\nimport { useParams } from 'react-router-dom';\r\n\r\n\r\nconst IconWideModeTOC = ({ onClick, className,shouldBeFixed}) => {\r\n const { pageControllerType } = useParams();\r\n const [height,setHeight] =useState(0);\r\n\r\n \r\nuseEffect(()=>{\r\n var navHeight=0;\r\n let previewHeight=document.getElementsByClassName(\"preview-warning\")[0]?.clientHeight\r\n\r\n if(!previewHeight)\r\n {\r\n previewHeight=0; \r\n }\r\n\r\n let heightOfCrum=document.getElementsByClassName(\"crumbtrail\")[0]?.clientHeight;\r\n navHeight=previewHeight+ heightOfCrum;\r\n\r\n setHeight(navHeight);\r\n console.log(\"shouldBeFixed\"+shouldBeFixed);\r\n},[])\r\n\r\n return (\r\n
    \r\n\t\t\t\r\n\t\t\t\"Open\r\n
    \r\n )\r\n};\r\n\r\nIconWideModeTOC.defaultProps = {\r\n onClick: () => { },\r\n className: '',\r\n};\r\n\r\nexport default IconWideModeTOC;","import React from 'react';\r\n\r\nconst Modal = (props) => {\r\n\tfunction closeModal(){\r\n\t\tconst modalContainer = document.querySelector('.modal');\r\n\t\tmodalContainer.classList.add('hide');\r\n\t}\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t

    {props.modalHeader}

    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t

    {props.modalBody}

    \r\n\t\t\t
    \r\n\t\t
    \r\n\t)\r\n}\r\n\r\nexport default Modal;","\r\nimport React, { useState, useLayoutEffect } from 'react'\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport cx from 'classnames';\r\nimport { useTocContext } from '../../contexts/TocContext';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\n\r\nimport ShowIf from '../Common/ShowIf';\r\n\r\nconst PrevNextArticle = ({ articleHasLoaded, className }) => {\r\n const { selectedItemTOC } = useTocContext();\r\n const [hrefs, setHrefs] = useState({ prevHref: null, nextHref: null });\r\n const location = useLocation();\r\n const { getLabel } = usePageContextLabels();\r\n\r\n\r\n useLayoutEffect(() => {\r\n try {\r\n const selectedNode = document.querySelector('.selected-link');\r\n const sectionNodes = selectedNode.closest('.toc-section-children');\r\n const linksNodeList = (sectionNodes || document.querySelector('.side-pannel-inner-container'))?.querySelectorAll('a') || [];\r\n const links = Array.prototype.slice.call(linksNodeList) || [];\r\n\r\n if (!links.length) {\r\n return setHrefs({\r\n prev: null,\r\n next: null,\r\n });\r\n }\r\n\r\n const selectedLinkIndex = links.findIndex((link) => link.classList.contains('selected-link'))\r\n const isWithinSection = !!sectionNodes;\r\n const getsectionHref = () => {\r\n const parentHref = sectionNodes.previousSibling?.getElementsByTagName('a')[0];\r\n return parentHref;\r\n };\r\n\r\n const prevLink = links[selectedLinkIndex - 1] || (isWithinSection ? getsectionHref() : links[0]);\r\n const nextLink = links[selectedLinkIndex + 1] || (isWithinSection ? getsectionHref() : links[0]);\r\n \r\n setHrefs({\r\n prev: {pathname: new URL(prevLink?.href).pathname, canDisplayInReadingMode: prevLink.classList.contains('toc-link-non-expandable')},\r\n next: {pathname: new URL(nextLink?.href).pathname, canDisplayInReadingMode: nextLink.classList.contains('toc-link-non-expandable')},\r\n })\r\n \r\n } catch {\r\n setHrefs({\r\n prev: null,\r\n next: null,\r\n })\r\n }\r\n \r\n }, [selectedItemTOC])\r\n\r\n const constructPath = ( canDisplayInReadingMode, queryString,pathname = \"\") => {\r\n\r\n if(!canDisplayInReadingMode) {\r\n return pathname;\r\n \r\n }\r\n return `${pathname}${queryString}`;\r\n }\r\n return (\r\n \r\n
    \r\n \r\n {getLabel(\"a_PreviousArticle\", \"Previous Article\")}\r\n \r\n \r\n {getLabel(\"a_NextArticle\", \"Next Article\")}\r\n \r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default PrevNextArticle;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport { get } from 'lodash';\r\n\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport TOCHELPERS from '../../helpers/TocHelpers';\r\nimport SH from '../../helpers/StorageHelpers';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport ShowIf from '../Common/ShowIf';\r\n\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport { useTocContext } from '../../contexts/TocContext';\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\n\r\n\r\nexport const generateMiniCrumbtrailText = (context, toc, guidebookToc, selectedItemTOC) => {\r\n //const { getLabel } = usePageContextLabels();\r\n \r\n function generateLabel(text, isDynamicFolio = false) {\r\n //cleans up the label to be user friendly\r\n let generatedLabel=\"\";\r\n if (text === undefined) {\r\n return \"\";\r\n }\r\n\r\n if (isDynamicFolio) {\r\n generatedLabel = CONTEXTHELPERS.generateFolioTitleFromFilename(text, false);\r\n }\r\n else {\r\n generatedLabel = text\r\n .replace(\".cshtml\", \"\")\r\n .replaceAll(\"_\", \" \")\r\n .replace(\" - - \", \" - \");\r\n // text = text;\r\n }\r\n\r\n return generatedLabel;\r\n }\r\n\r\n var crumbtrailArray = [];\r\n\r\n if (context.pageControllerType === \"folio\") {\r\n if (context.pageFileName) {\r\n const linkUrl = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageControllerType}/${context.pageFileName}`;\r\n const linkText = generateLabel(get(context, 'pageFileName', ''), true);\r\n\r\n crumbtrailArray.push({ linkUrl, linkText });\r\n }\r\n\r\n if (selectedItemTOC && !!get(selectedItemTOC, 'item.tocHash', false)) {\r\n const selectedTocHash = selectedItemTOC.item.tocHash;\r\n const [sectionKey, tocId] = selectedTocHash.split('_');\r\n let section = toc[sectionKey] ? toc[sectionKey] : toc.find(el => el.sectionFriendlyPath === sectionKey);\r\n\r\n // Filter out invalid tableOfContents content by checking if tableOfContents object has values or not\r\n section.tableOfContents = section.tableOfContents?.filter(tocContent => tocContent !== null);\r\n const currentToc = section.tableOfContents.find(x => x.id === tocId);\r\n\r\n if (currentToc?.subItems) {\r\n const branch = TOCHELPERS.getTocBranchFromHash(currentToc, selectedItemTOC.item.id).filter(x => x !== undefined);\r\n branch.forEach(segment => {\r\n crumbtrailArray.push({\r\n item: segment,\r\n linkUrl: segment.url,\r\n linkText: segment.nav_title\r\n })\r\n })\r\n }\r\n\r\n }\r\n\r\n return crumbtrailArray.map(({ linkText }) => linkText).join(' | ');\r\n }\r\n else {\r\n if (toc?.subItems) {\r\n const branch = TOCHELPERS.getTocBranchFromHash(toc, context.pageSelectedContentItemGUID);\r\n branch.forEach(segment => {\r\n crumbtrailArray.push({\r\n item: segment,\r\n linkUrl: segment.url,\r\n linkText: segment.nav_title\r\n })\r\n })\r\n }\r\n return crumbtrailArray[0].linkText + \" | \" + crumbtrailArray[crumbtrailArray.length - 1].linkText;\r\n }\r\n}\r\n\r\nconst Crumbtrail = () => {\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const [crumbs, setCrumbs] = useState([]);\r\n const { toc, selectedItemTOC, setSelectedItemTOC, setIsLandingPageSelected } = useTocContext();\r\n const { context, sitesLabelsLoaded, isCatalogPage, memberFirm, region } = usePageContext();\r\n const { getLabel, getMFLabel } = usePageContextLabels();\r\n const { setSearchResults } = useSearchResultContext();\r\n const { getGuidebookSectionData, guidebookSections } = useGuidebookTocContext();\r\n const queryParams = new URLSearchParams(location?.search);\r\n const searchPhrase = queryParams?.get('searchPhrase');\r\n const compareVersionParam = queryParams?.get('compareVersion');\r\n \r\n const [cumbTopHeight,setCumbTopHeight] =useState(0);\r\n \r\n useEffect(()=>{\r\n var navHeight=0;\r\n let heightOfCrum=document.getElementsByClassName(\"scrollbar-horizontal-container\")[0]?.clientHeight;\r\n if(!heightOfCrum)\r\n {\r\n heightOfCrum=0;\r\n }\r\n let previewHeight=document.getElementsByClassName(\"preview-warning\")[0]?.clientHeight;\r\n if(!previewHeight)\r\n {\r\n previewHeight=0; \r\n }\r\n navHeight=previewHeight+ heightOfCrum;\r\n setCumbTopHeight(navHeight);\r\n },[])\r\n\r\n //BDP: the shouldShowCrumbtrail should be done in here (as to weather it is shown or not)\r\n //if (!context.shouldShowCrumbtrail) {\r\n // return null\r\n //}\r\n\r\n useEffect(() => {\r\n function generateLabel(text, isDynamicFolio = false) {\r\n //cleans up the label to be user friendly\r\n let generatedLabel=\"\";\r\n if (UTILITIESHELPER.isStringNullorEmpty(text)) {\r\n return \"\";\r\n }\r\n //if text contains any HTML encoded character need to decodeURI\r\n let decodedtext = decodeURI(text);\r\n\r\n if (decodedtext.startsWith(\"lbl_\")) {\r\n return getMFLabel(decodedtext, \"CrumbTrail::generateLabel:text\");\r\n }\r\n\r\n if (isDynamicFolio) {\r\n generatedLabel = CONTEXTHELPERS.generateFolioTitleFromFilename(decodedtext, false)\r\n }\r\n else {\r\n generatedLabel = decodedtext\r\n .replace(\".cshtml\", \"\")\r\n .replaceAll(\"_\", \" \")\r\n .replace(\" - - \", \" - \")\r\n // text = text;\r\n }\r\n\r\n return generatedLabel;\r\n }\r\n\r\n function getSelectedSection() {\r\n if (guidebookSections.length === 0) return null;\r\n\r\n var currentSection = context.pageSelectedSection;\r\n\r\n var selectedSection;\r\n\r\n guidebookSections.forEach(guidebookSection => {\r\n if (guidebookSection.sectionFriendlyPath === currentSection) {\r\n selectedSection = guidebookSection;\r\n }\r\n })\r\n\r\n return selectedSection;\r\n }\r\n\r\n function generateCrumbtrail() {\r\n var crumbtrailArray = [];\r\n\r\n if (context.knowledgeDomain && context.knowledgeDomain !== \"content\") {\r\n let link = {\r\n linkUrl: `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}`,\r\n linkText: getLabel(`mf_${context.knowledgeDomain}Catalog`, \"Catalog...\")\r\n }\r\n //Well, this condition ...\r\n // arguments && link?.linkText == 'INTL Audit and Assurance') \r\n // thanks to the \"content\" change will NEVER be correct...\r\n // thats why we never use \"content\" in comparision - as it could be translated!\r\n //context.knowledgeDomain == \"assurance\"\r\n if ((location.pathname.split('/').pop() === 'recentviewed')) {\r\n link.linkText = getLabel(\"hh_MyDashboard\", \"MY DASHBOARD\");\r\n }\r\n crumbtrailArray.push(link);\r\n }\r\n\r\n // If we do not have a current pageControllerType, return trail\r\n if (!context.pageControllerType) return crumbtrailArray;\r\n\r\n // Else generate rest of the bread crumb\r\n switch (context.pageControllerType) {\r\n case \"collection\":\r\n const collectionTitle = () => {\r\n //These should be coming from the collection/catalog object on the page!\r\n //we do not have access to them yet\r\n\r\n switch (context.pageFileName) {\r\n case 'standards':\r\n case 'manual':\r\n case 'deloitte-communications':\r\n case 'professional-news':\r\n case 'roadmap':\r\n case 'guidance':\r\n return getLabel(`ct_Collection_${context.pageFileName}`, `[${context.pageFileName}] Collection`);\r\n\r\n default:\r\n return getLabel(\"ct_Collection\", \"Collection\");\r\n }\r\n };\r\n\r\n let link = {\r\n linkUrl: `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageControllerType}/${context.pageFileName}`,\r\n linkText: collectionTitle()\r\n }\r\n // we dont want to show collection crumb when in dollection folio\r\n //because folio collection is not designed only in case of collection search page\r\n if (context.pageFileName !== 'folio')\r\n crumbtrailArray.push(link);\r\n break;\r\n\r\n case \"folio\":\r\n //guidebook landing\r\n if (context.pageFileName) {\r\n const linkUrl = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageControllerType}/${context.pageFileName}`;\r\n //BDP: Ultimately we do not care about the \"test\" folio title as thats not a \"production\" folio so we will just take the dynamic name regardless!\r\n // The previous mechanism broke because of the new labels, we cannot make work-arounds for \"test\" folios that may cause it to break the real folio!\r\n const linkText = generateLabel(get(context, 'pageFileName', ''), true);\r\n\r\n crumbtrailArray.push({ linkUrl, linkText });\r\n }\r\n\r\n if (context.pageSelectedSection) {\r\n var section = {};\r\n const selectedTocHash = selectedItemTOC?.item?.tocHash;\r\n if (selectedTocHash) {\r\n const [sectionKey ] = selectedTocHash.split('_');\r\n section = getGuidebookSectionData(sectionKey);\r\n if (section) {\r\n // Filter out invalid tableOfContents content by checking if tableOfContents object has values or not\r\n section.tableOfContents = section.tableOfContents?.filter(tocContent => tocContent !== null);\r\n }\r\n } else if (selectedItemTOC?.item) {\r\n section = selectedItemTOC.item\r\n }\r\n let link = {\r\n item: section,\r\n linkUrl: `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageControllerType}/${context.pageFileName}/${context.pageSelectedSection}`,\r\n linkText: generateLabel(get(getSelectedSection(), 'title.Content.title', ''))\r\n }\r\n crumbtrailArray.push(link);\r\n }\r\n\r\n if (selectedItemTOC && !!get(selectedItemTOC, 'item.tocHash', false)) {\r\n const selectedTocHash = selectedItemTOC.item.tocHash;\r\n const [sectionKey, tocId] = selectedTocHash.split('_');\r\n const section = getGuidebookSectionData(sectionKey);\r\n if (section) {\r\n // Filter out invalid tableOfContents content by checking if tableOfContents object has values or not\r\n section.tableOfContents = section.tableOfContents?.filter(tocContent => tocContent !== null);\r\n const currentToc = section.tableOfContents.find(x => x.id === tocId);\r\n\r\n if (currentToc?.subItems) {\r\n const branch = TOCHELPERS.getTocBranchFromHash(currentToc, selectedItemTOC.item.id).filter(x => x !== undefined);\r\n branch.forEach(segment => {\r\n crumbtrailArray.push({\r\n item: segment,\r\n linkUrl: segment.url,\r\n linkText: segment.nav_title\r\n })\r\n })\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"dashboard\":\r\n crumbtrailArray.push({\r\n linkUrl: `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageControllerType}`,\r\n linkText: getLabel(`usp_${context.pageType}`, \"Dashboard\")\r\n });\r\n break;\r\n\r\n default:\r\n if (context.knowledgeDomain === \"content\") {\r\n //In the labels, we need to have these e.g. c_ArticleContentFileName_support (where support is the file name in sites)\r\n const linkText = getLabel(`c_ArticleContentFileName_${context.pageControllerType}`, context.pageControllerType);\r\n const linkUrl = \"\";\r\n crumbtrailArray.push({ linkUrl, linkText });\r\n }\r\n else if (toc?.subItems) {\r\n const branch = TOCHELPERS.getTocBranchFromHash(toc, context.pageSelectedContentItemGUID);\r\n branch.forEach(segment => {\r\n crumbtrailArray.push({\r\n item: segment,\r\n linkUrl: segment.url,\r\n linkText: segment.nav_title\r\n })\r\n })\r\n }\r\n }\r\n\r\n //Add \"Search Results\" to the crumbtrail if exists, this means we are on a search result page.\r\n if (searchPhrase) {\r\n let link = {\r\n linkUrl: \"search\",\r\n linkText: getLabel(\"s_SearchResults\", \"Search Results\")\r\n }\r\n crumbtrailArray.push(link);\r\n }\r\n //Add \"Compare Versions\" to the crumbtrail if exists, this means we are comparing versions\r\n if (compareVersionParam) {\r\n let link = {\r\n linkUrl: \"compare\",\r\n linkText: getLabel(\"compare_ViewAndCompareVersions\", \"View and Compare\")\r\n }\r\n crumbtrailArray.push(link);\r\n }\r\n\r\n return crumbtrailArray;\r\n }\r\n \r\n const newCrumbs = generateCrumbtrail();\r\n if(JSON.stringify(crumbs) !== JSON.stringify(newCrumbs)) {\r\n setCrumbs(newCrumbs);\r\n }\r\n //eslint-disable-next-line\r\n }, [context, sitesLabelsLoaded, toc,location?.search, region])\r\n //Context is the first thing that changes all the time!\r\n //sitesLabelsLoaded as we always NEED them to have been loaded, so may need to re-draw once they have loaded!\r\n //toc as when landing on a manual/folio, we need to re-draw once its loaded\r\n //Previous ones (not needed any more): (These get caught when context changes!)\r\n // guidebookToc, guidebookSections, selectedItemTOC, guidebookPublication, guidebookArticle, searchPhrase, sitesLabels\r\n\r\n const renderCrumbs = (trail) => {\r\n if (trail.length === 0) return null;\r\n const linked = trail.slice(0, -1);\r\n const active = trail[trail.length - 1];\r\n\r\n const renderedCrumbs = linked.map((c, i) => {\r\n const onClick = (e) => {\r\n //clear search on change\r\n SH.removeSessionStorage('searchPhraseParam');\r\n setSearchResults([]);\r\n\r\n if (!!c && 'item' in c) {\r\n e.preventDefault();\r\n if(!UTILITIESHELPER.isObjectNullorEmpty(c.item)) {\r\n setSelectedItemTOC({ item: c.item });\r\n }\r\n setIsLandingPageSelected(false);\r\n navigate(c.linkUrl);\r\n }\r\n else {\r\n //below check to confirm when publication Landing Page\r\n if (c.linkUrl?.split('/').length === 6) {\r\n setIsLandingPageSelected(true);//this useState variable only used in case of folio\r\n }\r\n else {\r\n setIsLandingPageSelected(false);\r\n }\r\n setSelectedItemTOC({});\r\n }\r\n }\r\n return (\r\n \r\n {c.linkText}\r\n \r\n )\r\n })\r\n\r\n const activeCrumb = (\r\n \r\n {active.linkText}\r\n \r\n )\r\n\r\n renderedCrumbs.push(activeCrumb);\r\n\r\n return renderedCrumbs;\r\n }\r\n\r\n return (\r\n
    \r\n setSelectedItemTOC({})} className=\"breadcrumb-home\">{getLabel(\"g_ResearchPortalCrumbtrailHome\", \"Research Portal Home\")}\r\n
    {renderCrumbs(crumbs)}\r\n \r\n For Global Accounting content, go to {getLabel(\"l_LinkToDart\")} or {getLabel(\"l_LinkToTL\")} \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n\r\nexport default Crumbtrail;","import React from \"react\";\r\nimport { RESEARCH_ASSISTANT, RESEARCH_ASSISTANT_FILTERS } from \"../Constants/Constants\";\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { MEMBERFIRM_CONSTANTS } from \"../Constants/Constants\";\r\n\r\nconst FilterValue = ({ researchAssistantResponse }) => {\r\n const { getLabel} = usePageContextLabels();\r\n const getMemberFirm = () => {\r\n return CONTEXTHELPERS.getMemberFirmWithTaxonomyId(researchAssistantResponse?.inputFields?.userLibrariesSelected[0]);\r\n }\r\n const getFilterValuesString = (filterType) => {\r\n let filterValueString = \"\";\r\n if (researchAssistantResponse && researchAssistantResponse.inputFields && researchAssistantResponse.inputFields.userFilterSelected) {\r\n researchAssistantResponse.inputFields.userFilterSelected.forEach((item) => {\r\n if (filterType === RESEARCH_ASSISTANT_FILTERS.KnowledgeDomain && item?.filterField === RESEARCH_ASSISTANT_FILTERS.KnowledgeDomain) {\r\n filterValueString = CONTEXTHELPERS.getknowledgeDomain(item?.filterID[0]);\r\n }\r\n if (filterType === RESEARCH_ASSISTANT_FILTERS.Frameworks && item?.filterField === RESEARCH_ASSISTANT_FILTERS.Frameworks) {\r\n filterValueString = item?.filterID?.length && item?.filterID?.length > 0 ? getTierValues(item?.filterID) : \"\";\r\n }\r\n });\r\n }\r\n return filterValueString;\r\n }\r\n\r\n const getTierValues = (tierValues) => {\r\n const tierData = researchAssistantResponse.tier;\r\n let tierString = \"\";\r\n if(tierData && tierData?.length > 0){\r\n if (tierData.length === 1) {\r\n tierString = \", \" + tierData[0];\r\n } else {\r\n const firsts = tierData?.slice(0, tierData.length - 1);\r\n const last = tierData[tierData.length - 1];\r\n tierString = \", \" + firsts.join(', ') + ' and ' + last;\r\n }\r\n }\r\n return tierString;\r\n }\r\n return (\r\n <>\r\n \r\n \r\n
    {getLabel(\"ra_ConditionalStringINT\",RESEARCH_ASSISTANT.conditionalStringINT)}
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default FilterValue;","import React from 'react'\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { RESEARCH_ASSISTANT } from '../Constants/Constants';\r\nimport DOMPurify from \"dompurify\";\r\nimport Markdown from 'markdown-to-jsx';\r\n\r\nconst ResearchAssistantMessage = ({ messageLabel, message }) => {\r\n const { getLabel } = usePageContextLabels();\r\n\r\n const sanitizedData = DOMPurify.sanitize(message);\r\n return (<>\r\n

    {sanitizedData}

    \r\n \r\n

    {getLabel('ra_unable_to_answer_1', 'I can provide helpful answers to questions regarding audit concepts. I have access to audit policies and guidance.')}

    \r\n

    {getLabel('ra_unable_to_answer_2', RESEARCH_ASSISTANT.unableToAnswerText)}

    \r\n
    \r\n );\r\n}\r\n\r\nexport default ResearchAssistantMessage","import React, { useState, useEffect, useRef } from 'react';\r\nimport cx from 'classnames';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport LinkHelpers from '../../helpers/LinkHelpers';\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport { logs, page } from \"../../helpers/log\";\r\n\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport { useTocContext } from '../../contexts/TocContext';\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { generateMiniCrumbtrailText } from '../Breadcrumb/Crumbtrail';\r\nimport { ErrorCodes,ErrorMessages } from '../Constants/Errors';\r\nimport FilterValue from '../ChatBot/FilterValue';\r\nimport ResearchAssistantMessage from '../ChatBot/ResearchAssistantMessage';\r\nimport { MEMBERFIRM_CONSTANTS, RESEARCH_ASSISTANT } from '../Constants/Constants';\r\nimport ShowIf from '../Common/ShowIf';\r\n\r\nconst ShareModal = ({\r\n shouldShowShareModal,\r\n setShouldShowShareModal,\r\n shouldShowOverlay,\r\n setShouldShowOverlay,\r\n setIsSectionPath,\r\n isSectionPath,\r\n setClosedToolbar,\r\n isResearhAssistant,\r\n researchAssistantResponseData,\r\n researchAssistantTitle,\r\n researchAssistantQuestion,\r\n}) => {\r\n const shareModalRef = useRef();\r\n const [shouldShowSuccessMessage, setShouldShowSuccessMessage] = useState(false);\r\n const { getLabel } = usePageContextLabels();\r\n const { toc, selectedItemTOC } = useTocContext();\r\n const location = useLocation();\r\n const { guidebookToc } = useGuidebookTocContext();\r\n var context = CONTEXTHELPERS.generateContext(location.pathname);\r\n var shareProps = {\r\n pageType: UTILITIESHELPER.getSessionStorage(\"PageType\"),\r\n eventType: 'share',\r\n pageUrl: window.location.href,\r\n selectedTocItem: UTILITIESHELPER.getSessionStorage(\"SelectedContent\"),\r\n jobTitle:UTILITIESHELPER.getSessionStorage(\"Level\"),\r\n memberFirm: UTILITIESHELPER.getSessionStorage(\"MemberFirm\"),\r\n rpMemberFirm: UTILITIESHELPER.getLocalStorage('research-portal-member-firm'),\r\n }\r\n const divref = useRef(null);\r\n\r\n function closeModal() {\r\n setShouldShowShareModal(false);\r\n setShouldShowSuccessMessage(false);\r\n setShouldShowOverlay(false);\r\n document.body.style.overflow = isResearhAssistant !== true && 'unset';\r\n }\r\n\r\n useEffect(() => {\r\n return () => {\r\n closeModal();\r\n }\r\n }, []) //eslint-disable-line\r\n\r\n function copyText() {\r\n function listener(e) {\r\n if (isResearhAssistant === true) {\r\n if (divref.current) {\r\n const paragraph = document.createElement(\"p\");\r\n paragraph.style.fontFamily = \"Roboto, Verdana, sans-serif\";\r\n paragraph.style.fontSize = \"24px\";\r\n paragraph.style.textAlign=\"center\";\r\n paragraph.innerHTML = getLabel(\"ra_CopyText\",\"Copied from the generative AI Research Assistant. Below generative AI response may be incomplete and/or inaccurate, are not auditing advice, and should not be used for audit documentation. Review source documents and use professional judgment.\");\r\n const paragraphOuterHTML = paragraph.outerHTML;\r\n const combinedContent = paragraphOuterHTML + divref.current.innerHTML;\r\n e.clipboardData.setData('text/plain', combinedContent.replace(/
    /g, '\\n'));\r\n e.clipboardData.setData('text/html', combinedContent);\r\n\r\n }\r\n \r\n }\r\n else {\r\n let sharedUrl = sessionStorage.getItem('shareUrl');\r\n let url = UTILITIESHELPER.ReplaceSpecialCharacterInURLForShareModel(sharedUrl);\r\n if (url.includes('reading-mode=true')) {\r\n url = url.replace(/\\?reading-mode=true/g, '');\r\n }\r\n\r\n e.clipboardData.setData('text/plain', url);\r\n e.clipboardData.setData('text/html', `${url}`);\r\n }\r\n e.preventDefault();\r\n }\r\n\r\n try {\r\n document.addEventListener('copy', listener, { once: true });\r\n document.execCommand('copy');\r\n const selection = window.getSelection();\r\n selection.removeAllRanges();\r\n return true;\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"ShareModal\", ErrorMessages.shareModalCopyText, err,{eventId:ErrorCodes.Article});\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (shouldShowShareModal === true) {\r\n setClosedToolbar(true);\r\n document.body.style.overflow = 'hidden';\r\n }\r\n\r\n let sharedLink = window.location.href;\r\n let shareUrl;\r\n let tempShareUrl;\r\n const selection = document.getSelection();\r\n const selectionStr = selection.toString();\r\n const hashExists = window.location.hash;\r\n if (hashExists) {\r\n tempShareUrl = sharedLink.split('#')[0];\r\n } else {\r\n tempShareUrl = sharedLink;\r\n }\r\n if (isSectionPath === true && selectionStr.length > 0) {\r\n const outerParentId = selection.baseNode.parentNode.offsetParent.id.toString();\r\n const sectionParentId = selection.baseNode.parentNode.tagName.includes('MARK') ? selection.baseNode.parentNode.parentNode.id : selection.baseNode.parentNode.id.toString()\r\n if (sectionParentId.length > 0) {\r\n shareUrl = tempShareUrl + '#' + sectionParentId;\r\n sessionStorage.setItem('shareUrl', shareUrl);\r\n } else if (sectionParentId.length <= 0 && outerParentId.length > 0) {\r\n shareUrl = tempShareUrl + '#' + outerParentId;\r\n sessionStorage.setItem('shareUrl', shareUrl);\r\n } else {\r\n shareUrl = tempShareUrl;\r\n sessionStorage.setItem('shareUrl', shareUrl);\r\n }\r\n } else if (isSectionPath === true && selectionStr.length <= 0) {\r\n shareUrl = tempShareUrl;\r\n tempShareUrl = sessionStorage.getItem('shareUrl');\r\n } else {\r\n shareUrl = tempShareUrl;\r\n sessionStorage.setItem('shareUrl', shareUrl);\r\n }\r\n\r\n if (tempShareUrl.includes('reading-mode=true')) {\r\n shareUrl = tempShareUrl.replace(/\\?reading-mode=true/g, '');\r\n }\r\n const shareModalField = UTILITIESHELPER.ReplaceSpecialCharacterInURLForShareModel(shareUrl);\r\n\r\n \r\n\r\n function displaySuccessMessage() {\r\n logs.event('share-copy', shareProps)\r\n if (copyText()) {\r\n setShouldShowSuccessMessage(true);\r\n }\r\n }\r\n\r\n function handleMailClick() {\r\n logs.event('share-email', shareProps)\r\n let url = sessionStorage.getItem('shareUrl');\r\n if (url.includes(\"reading-mode=true\")) {\r\n url = url.replace(/\\?reading-mode=true/g, '');\r\n }\r\n url = UTILITIESHELPER.ReplaceSpecialCharacterInURLForShareModel(url);\r\n var encodedurl = encodeURIComponent(url);\r\n var encodedTitle = encodeURIComponent(generateMiniCrumbtrailText(context, toc, guidebookToc, selectedItemTOC));\r\n var encodedCopyright = encodeURIComponent(getLabel(\"g_Copyright\", `Copyright © ${new Date().getFullYear()} Deloitte Development LLC. All Rights Reserved`));\r\n var encodedBody = encodeURIComponent(getLabel(\"share_MessageIntro\", \"Your colleague wants to share this Research Portal article with you: \"));\r\n \r\n encodedurl= encodedurl.replace(/%20/g, \"_\");\r\n const composedUrl = `mailto:?subject=${encodedTitle}&body=${encodedBody} ${encodedurl} ${encodedCopyright}`;\r\n // XSS Link Sanitization\r\n const sanitizedUrl = LinkHelpers.sanitizeUrl(composedUrl);\r\n\r\n window.location.href = sanitizedUrl;\r\n }\r\n\r\n\r\n useOutsideClick(shareModalRef, () => {\r\n closeModal();\r\n }, ['.icon-share', '.toolbar']);\r\n\r\n return (\r\n
    \r\n {shouldShowOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n

    {getLabel(\"share_Share\", \"Share\")}

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n isResearhAssistant === true ? (\r\n <>\r\n
    \r\n

    {getLabel('ra_Question','Question')}

    \r\n

    {researchAssistantQuestion}

    \r\n

    {researchAssistantTitle}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n 0}>\r\n

    \r\n {getLabel('ra_DocumentSources', 'Sources')}\r\n

    \r\n {researchAssistantResponseData?.documentSource?.map((item, index) => (\r\n <>\r\n
    \r\n {item.footnote}.\r\n   \r\n {item.title}\r\n
    \r\n

    \r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n 0}>\r\n

    \r\n {getLabel('ra_FormAndTemplates', 'Forms, Templates, and Examples to Consider')}\r\n

    \r\n {researchAssistantResponseData?.formSource?.map((item, index) => (\r\n <>\r\n \r\n
    \r\n {item.title}\r\n
    \r\n

    \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {getLabel('ra_NotableExclusions', 'Content Excluded from Response')}\r\n

    \r\n \r\n
      \r\n
    • {getLabel(\"ra_ProfessionalStandardContentExclusion\", RESEARCH_ASSISTANT.contentExclustionProfessionalStandard)}
    • \r\n
    • {getLabel(\"ra_DeloitteCommunicationContentExclusion\", RESEARCH_ASSISTANT.contentExclustionDeloitteCommunication)}
    • \r\n {researchAssistantResponseData?.memberFirm === MEMBERFIRM_CONSTANTS.us &&
    • {getLabel(\"ra_ConditionalStringUS\", RESEARCH_ASSISTANT.conditionalStringUS)}
    • }\r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n While the Research Assistant's responses may appear conclusive, they (1) may not be complete or accurate, (2) do not represent auditing advice or documentation, and (3) should not be used as a basis for any auditing conclusions. Users should access the source documentation when performing their auditing research.\r\n

    \r\n

    Confidential and Proprietary – for Use Solely by Authorized Personnel

    \r\n

    Copyright © 2024 Deloitte Development LLC. All Rights Reserved

    \r\n
    \r\n\r\n
    \r\n \r\n ) : (\r\n

    {shareModalField}

    \r\n )\r\n }\r\n
    \r\n
    \r\n {getLabel('a_Copy', 'Copy')}\r\n {isResearhAssistant !== true && \r\n \r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {\r\n isResearhAssistant === true ? \"Content successfully copied\" :\r\n getLabel(\"s_LinkSuccessfullyCopied\", \"Link successfully copied\")\r\n }\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nShareModal.defaultProps = {\r\n setShouldShowShareModal: () => { },\r\n setShouldShowOverlay: () => { },\r\n}\r\n\r\nexport default ShareModal;\r\n","import { ErrorCodes, ErrorMessages } from \"../components/Constants/Errors\";\r\nimport RETRIEVALSERVICES from \"../services/rp-service\";\r\nimport CONTEXTHELPERS from \"./ContextHelpers\";\r\nimport { logs, page } from \"./log\";\r\n\r\nasync function fetchCategories(url, memberFirmId) {\r\n try {\r\n var response = await RETRIEVALSERVICES.retrieveCategories(CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId));\r\n return response ? response : [];\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'CategoryService', ErrorMessages.categoryFetch, err, { eventId: ErrorCodes.Annotation});\r\n }\r\n}\r\n\r\nasync function createCategory(url, payload, memberFirmId) {\r\n try {\r\n payload.query_spec_base_model = CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId);\r\n return await RETRIEVALSERVICES.createCategory(payload);\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'CategoryService', ErrorMessages.categoryCreate, err, {eventId: ErrorCodes.Annotation});\r\n }\r\n}\r\n\r\nasync function updateCategory(url, payload, category_guid, memberFirmId) {\r\n try {\r\n payload.query_spec_base_model = CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId);\r\n return await RETRIEVALSERVICES.updateCategory(payload, category_guid);\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'CategoryService', ErrorMessages.categoryUpdate, err, { eventId: ErrorCodes.Annotation });\r\n }\r\n}\r\nasync function deleteCategory(url, category_guid, memberFirmId, target_category_guid = null, delete_confirmation = null) {\r\n try {\r\n var payload = {\r\n query_spec_base_model: CONTEXTHELPERS.getUPSQuerySpecBaseModel(url, memberFirmId),\r\n category_guid: category_guid,\r\n target_category_guid: target_category_guid,\r\n delete_confirmation: delete_confirmation\r\n };\r\n return await RETRIEVALSERVICES.deleteCategory(payload);\r\n } catch (err) {\r\n logs.error(page.Bookmark, 'CategoryService', ErrorMessages.categoryDelete, err, { eventId: ErrorCodes.Annotation });\r\n }\r\n}\r\n\r\nconst CategoryService = {\r\n fetchCategories,\r\n createCategory,\r\n updateCategory,\r\n deleteCategory\r\n};\r\n\r\nexport default CategoryService;","import React, { useEffect } from \"react\";\r\nimport cx from \"classnames\";\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport LinkHelpers from \"../../helpers/LinkHelpers\";\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { usePageContext, usePageContextLabels,usePageContextSettings } from \"../../contexts/PageContext\";\r\nimport { useTocContext } from \"../../contexts/TocContext\";\r\nimport { useGuidebookTocContext } from \"../../contexts/GuidebookTocContext\";\r\nimport { generateMiniCrumbtrailText } from \"../Breadcrumb/Crumbtrail\";\r\nimport { useUserPreferencesContext, ACTIONS } from \"../../contexts/AnnotationsContext\";\r\nimport { useReadingModeContext } from \"../../contexts/ReadingModeContext\";\r\nimport CategoryService from \"../../helpers/CategoryServices\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { FOLIO_SECTION_TYPE } from \"../Constants/Constants\";\r\n\r\nconst Toolbar = (props) => {\r\n\tconst {\r\n\t\tsetShouldShowShareModal,\r\n\t\tsetShouldShowOverlay,\r\n\t\tsetIsSectionPath,\r\n\t\tsetClosedToolbar,\r\n\t\tclosedToolbar,\r\n\t\tisPdf,\r\n\t\tisDupAnnotation,\r\n\t\tisSearchActive\r\n\t} = props;\r\n\r\n\tconst { context, language, getMemberFirmID } = usePageContext();\r\n\tconst { getLabel } = usePageContextLabels();\r\n\tconst { toc, selectedItemTOC } = useTocContext();\r\n\tconst { guidebookToc } = useGuidebookTocContext();\r\n\tconst { isAnnotationsEnabled, isRestrictedAccessMemberfirm } = usePageContextSettings();\r\n\tconst { dispatch } = useUserPreferencesContext();\r\n\tconst { isReadingMode } = useReadingModeContext();\r\n\tconst location = useLocation();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isAnnotationsEnabled() && !isRestrictedAccessMemberfirm()) {\r\n\t\t(async () => { //fetchCtegories\r\n\t\t\tvar categories = await CategoryService.fetchCategories(location.pathname, getMemberFirmID());\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: ACTIONS.CATEGORY_LOAD,\r\n\t\t\t\tpayload: categories,\r\n\t\t\t});\r\n\t\t})();\r\n\t\t}\r\n\r\n\t}, []);//eslint-disable-line\r\n\r\n\tfunction closeToolbar() {\r\n\t\tsetClosedToolbar(true);\r\n\t}\r\n\r\n\tfunction selectionCopy(e) {\r\n\r\n\t\tconst selectedText = document.getSelection();\r\n\t\tconst modalContainer = document.querySelector(\".modal\");\r\n\t\tvar range;\r\n\t\tif (selectedText.toString().trim().length > 0) {\r\n\r\n\t\t\tif (selectedText.rangeCount > 0) {\r\n\t\t\t\trange = selectedText.getRangeAt(0);\r\n\t\t\t\t\r\n\t\t\t\tconst div = document.createElement(\"div\");\r\n\t\t\t\tconst stylingElem = document.createElement(\"div\");\r\n\t\t\t\tstylingElem.setAttribute('id', 'word-div-to-remove');\r\n\t\t\t\tstylingElem.style.fontFamily = \"Roboto,Verdana,sans-serif\";\r\n\t\t\t\tconst urlPara = document.createElement(\"p\");\r\n\t\t\t\turlPara.style.visibility = \"visible\";\r\n\t\t\t\tconst urlLink = document.createElement(\"a\");\r\n\t\t\t\turlLink.style.visibility = \"visible\";\r\n\t\t\t\tconst datePara = document.createElement(\"p\");\r\n\t\t\t\tdatePara.style.visibility = \"visible\";\r\n\t\t\t\tlet date = new Date();\r\n\t\t\t\tconst dateValue = UTILITIESHELPER.formatDate(date, language);\r\n\t\t\t\tlet pubTitle = \"\";\r\n\t\t\t\tconst outerParentId = selectedText.baseNode.parentNode.offsetParent.id.toString();\r\n\t\t\t\tconst sectionParentId = selectedText.baseNode.parentNode.id.toString();\r\n\r\n\t\t\t\t//if Folio, show the publication display title.\r\n\t\t\t\t//If Folio, and display_title is null, show the publication title.\r\n\t\t\t\t//Else, show the publication title.\r\n\t\t\t\tif (context.pageControllerType === \"folio\") {\r\n\t\t\t\t\tconst currentArticle = document.querySelector(\".copy-btn\");\r\n\t\t\t\t\tpubTitle = currentArticle.dataset.title;\r\n\t\t\t\t\tif (pubTitle.length < 1) {\r\n\t\t\t\t\t\tpubTitle = document.querySelector(\"p.folio-title\")\r\n\t\t\t\t\t\t\t?.textContent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tpubTitle = document.querySelector(\"a.sidebar-toc-title-link\")\r\n\t\t\t\t\t\t.textContent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//REPLACE THIS\r\n\t\t\t\turlLink.innerHTML = generateMiniCrumbtrailText(context, toc, guidebookToc, selectedItemTOC);\r\n\r\n\t\t\t\tif (sectionParentId.length > 0) {\r\n\t\t\t\t\turlLink.href = LinkHelpers.sanitizeUrl(\r\n\t\t\t\t\t\tcontext.pageRequestURL + \"#\" + sectionParentId\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse if (sectionParentId.length <= 0 && outerParentId.length > 0) {\r\n\t\t\t\t\turlLink.href = LinkHelpers.sanitizeUrl(\r\n\t\t\t\t\t\tcontext.pageRequestURL + \"#\" + outerParentId\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\turlLink.href = LinkHelpers.sanitizeUrl(context.pageRequestURL);\r\n\t\t\t\t}\r\n\r\n\t\t\t\turlPara.append(urlLink);\r\n\t\t\t\tdatePara.append(`${getLabel(\"a_CopiedOn\", \"Copied on:\")} ${dateValue}`);\r\n\t\t\t\tstylingElem.appendChild(urlPara);\r\n\t\t\t\tstylingElem.appendChild(datePara);\r\n\t\t\t\tdiv.appendChild(stylingElem);\r\n\r\n\t\t\t\tvar expandedSelRange;\r\n\t\t\t\tif (selectedText) {\r\n\t\t\t\t\texpandedSelRange = range.cloneRange();\r\n\t\t\t\t\trange.collapse(false);\r\n\t\t\t\t\tvar frag = document.createDocumentFragment(), node, lastNode;\r\n\t\t\t\t\twhile ((node = div.firstChild)) {\r\n\t\t\t\t\t\tlastNode = frag.appendChild(node);\r\n\t\t\t\t\t}\r\n\t\t\t\t\trange.insertNode(frag);\r\n\r\n\t\t\t\t\t// Preserve the selection\r\n\t\t\t\t\tif (lastNode) {\r\n\t\t\t\t\t\texpandedSelRange.setEndAfter(lastNode);\r\n\t\t\t\t\t\tselectedText.removeAllRanges();\r\n\t\t\t\t\t\tselectedText.addRange(expandedSelRange);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdocument.execCommand('Copy', false, null);\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tlet element = document.getElementById('word-div-to-remove');\r\n\t\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\t\telement.remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 100)\r\n\t\t\t\t}\r\n\t\t\t\tsetClosedToolbar(true);\r\n\t\t\t\tmodalContainer.classList.remove(\"hide\");\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcloseToolbar();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction selectionShare(e) {\r\n\t\tconst selectedText = document.getSelection();\r\n\t\tif (selectedText.toString().trim().length > 0) {\r\n\t\t\tsetShouldShowShareModal(true);\r\n\t\t\tsetShouldShowOverlay(true);\r\n\t\t\tsetIsSectionPath(true);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcloseToolbar();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction selectionAnnotation() {\r\n\t\tconst selectedText = document.getSelection();\r\n\t\tif (selectedText.toString().trim().length > 0) {\r\n\t\t\tif (selectedText.rangeCount > 0) {\r\n\t\t\t\tconst range = selectedText.getRangeAt(0);\r\n\t\t\t\tconst cloned = range.cloneContents();\r\n\t\t\t\tvar preSelectionRange = range.cloneRange();\r\n\t\t\t\tconst tmpEl = document.createElement(\"div\");\r\n\t\t\t\ttmpEl.append(cloned);\r\n\t\t\t\tconst rawContent = tmpEl.innerHTML;\r\n\t\t\t\tconst content = selectedText.toString();\r\n\t\t\t\tconst selectedTextLength = document.getSelection().toString().length;\r\n\t\t\t\tlet closestGuid = selectedText.baseNode.parentElement.closest('[id^=\"GUID\"]')?.id;\r\n\r\n\t\t\t\tif (closestGuid === undefined || closestGuid === null) {\r\n\t\t\t\t\tclosestGuid = tmpEl.querySelector('[id^=\"GUID\"]')?.id;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdispatch({\r\n\t\t\t\t\ttype: ACTIONS.MODAL_SHOW,\r\n\t\t\t\t\tpayload: {\r\n\t\t\t\t\t\trawContent,\r\n\t\t\t\t\t\tcontent,\r\n\t\t\t\t\t\trange,\r\n\t\t\t\t\t\tpreSelectionRange,\r\n\t\t\t\t\t\tselectedTextLength,\r\n\t\t\t\t\t\tclosestGuid\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t\tcloseToolbar();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcloseToolbar();\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n}\r\n\r\nexport default Toolbar;\r\n","import React from 'react'\r\nimport cx from 'classnames'\r\nimport ShowIf from './ShowIf'\r\n\r\nconst Checkbox = ({ isChecked, onChange, label, classNameCheckboxContainer, classNameCheckmark, disabled, showBinaryPanel = false, displayBinaryHadler, parentId = 0, binaryCount = 0, accordianState = \"close\", onKeyDown }) => (\r\n\r\n
    \r\n \r\n \r\n
    displayBinaryHadler(parentId)}>\r\n
    \r\n {/*//added +1 for Article Text checkbox option*/}\r\n Select Documents {binaryCount > 0 ? \"(\" + (binaryCount + 1) + \")\" : \"\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n)\r\n\r\nCheckbox.defaultProps = {\r\n onChange: () => { },\r\n classNameCheckmark: \"checkmark\",\r\n classNameCheckboxContainer: \"checkbox-container\"\r\n}\r\n\r\n\r\n//className={cx(classNameCheckmark, { 'disabled': disabled })}\r\nexport default Checkbox","import React from 'react';\r\nimport Dropdown from '../Common/Dropdown';\r\nimport cx from 'classnames'\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport ShowIf from '../Common/ShowIf';\r\n\r\n\r\nfunction CategoryTrigger({ category, modifiedCategories, isAllCategorySelected }) {\r\n const { getLabel } = usePageContextLabels();\r\n const getCategoriesLabel = () => {\r\n let selectedLabels = [];\r\n modifiedCategories.forEach(cat => {\r\n if (category.includes(cat.category_guid)) {\r\n selectedLabels.push(cat.label);\r\n }\r\n })\r\n let selectedData = selectedLabels.join(', ');\r\n return selectedData;\r\n }\r\n return (\r\n
    \r\n {!category.length ?
    {getLabel(\"hh_FilterByCategory\", \"Filter by Category\")}
    :\r\n isAllCategorySelected ?
    {getLabel(\"hh_AllCategories\", \"All Categories\")}\r\n
    : modifiedCategories.map((ele) => {\r\n return <>\r\n {ele && category.length === 1 && category.includes(ele.category_guid) ?\r\n
    \r\n
    \r\n \r\n {\r\n ele?.label\r\n }\r\n \r\n
    \r\n
    : null}\r\n \r\n })}\r\n {category?.length > 1 && !isAllCategorySelected ?
    {getCategoriesLabel()}
    : null}\r\n
    \r\n )\r\n}\r\n\r\nfunction CategoryItem({ category, onClick, isChecked, classNameCheckmark, onChange }) {\r\n function handleClick() {\r\n onClick(category);\r\n }\r\n\r\n let classNames = 'an-dd-category-item-dropdown';\r\n\r\n ////styling for background category color\r\nconst backgroundColorStyle= {\r\n backgroundColor: category.color\r\n }\r\n \r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {category?.label?.length > 30 ? (category?.label === category?.label?.toUpperCase() ? category?.label?.substring(0, 27).concat('...') : category?.label?.substring(0, 30).concat('...')) : category?.label ? category.label : \"\" }\r\n
    \r\n
    \r\n )\r\n}\r\n\r\n\r\nfunction AnnotationPanelDropdown({ categories, selected, onSelect, isAllCategorySelected }) {\r\n //const [setIsOpen] = useState(false);\r\n const { getLabel } = usePageContextLabels();\r\n\r\n function handleSelect(category) {\r\n onSelect(category);\r\n //setIsOpen(true);\r\n }\r\n\r\n \r\n\r\n\r\n\r\n function isCheckedValue(c, selected, isAllCategorySelected) {\r\n if (c.category_guid === 'cat0') {\r\n return isAllCategorySelected;\r\n }\r\n if (c.category_guid && selected.length) {\r\n return selected.includes(c.category_guid)\r\n }\r\n }\r\n\r\n //NB: All Categories must ALWAYS be \"cat0\"!\r\n const modifiedCategories = [{ category_guid: 'cat0', label: getLabel(\"hh_AllCategories\", \"All Categories\"), color: '' }, ...categories]\r\n const listItems = modifiedCategories.map((c) => (\r\n \r\n ))\r\n\r\n function getTriggerEl() {\r\n return ;\r\n }\r\n\r\n // function getTriggerElClose() {\r\n // document.dispatchEvent(new CustomEvent('dd:requestClose'));\r\n // }\r\n\r\n return (\r\n \r\n \r\n \r\n {listItems}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default AnnotationPanelDropdown;","import UTILITIESHELPER from \"./UtilitiesHelper\";\r\nimport { get } from \"lodash\";\r\nfunction getSectionTitle(item, selectedSpinePubGuidList) {\r\n if (item && item.parentTitle && selectedSpinePubGuidList.includes(item.parentGuid)) { \r\n return \"

    \" + item.parentTitle + \"


    \";\r\n }\r\n return \"\";\r\n}\r\n\r\nfunction getBinaryList(selectedList) {\r\n var fileRequests = [];\r\n selectedList.forEach((article) => {\r\n if (article?.binaries?.length > 0) {\r\n article.binaries.forEach((binary) => {\r\n if (binary?.isSelected) {\r\n var fileNameFormat = UTILITIESHELPER.removeLargeSpacesFromRichText(binary.binaryTitle);\r\n fileNameFormat = UTILITIESHELPER.restrictLengthOfFileName(fileNameFormat);\r\n var object = {\r\n fileName: UTILITIESHELPER.removeSpecialCharacterFromFileName(fileNameFormat) + binary.binaryFormat,\r\n fileUri: binary.binaryURI\r\n };\r\n fileRequests.push(object);\r\n }\r\n })\r\n if (article.content?.length > 0) {\r\n if (article.content.binaries?.length > 0) {\r\n article.content.binaries.forEach((binary) => {\r\n var fileNameFormat = UTILITIESHELPER.restrictLengthOfFileName(binary.binaryTitle);\r\n fileNameFormat=UTILITIESHELPER.removeLargeSpacesFromRichText(fileNameFormat);\r\n if (binary?.isSelected) {\r\n var object = {\r\n fileName: UTILITIESHELPER.removeSpecialCharacterFromFileName(fileNameFormat) + binary.binaryFormat,\r\n fileUri: binary.binaryURI\r\n };\r\n fileRequests.push(object);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n \r\n })\r\n return fileRequests;\r\n}\r\n//This method is responsible to keep file name unique with in the binary list, to keep file name unique we need to remane file name in case if duplicate file name is available \r\nfunction renameDuplicateFileNames(binariesList, articleTextFileName) {\r\n var tempUniqueFileName = [];\r\n if (!UTILITIESHELPER.isStringNullorEmpty(articleTextFileName))\r\n tempUniqueFileName.push(articleTextFileName + \".docx\");\r\n\r\n binariesList.forEach(function (a, i) {\r\n if (tempUniqueFileName) {\r\n if (tempUniqueFileName.includes(a.fileName)) {\r\n var newFileName = renameFile(a.fileName);\r\n tempUniqueFileName.push(newFileName);\r\n a.fileName = newFileName;\r\n }\r\n else {\r\n tempUniqueFileName.push(a.fileName);\r\n }\r\n }\r\n else {\r\n tempUniqueFileName.push(a.fileName);\r\n }\r\n \r\n });\r\n return binariesList;\r\n}\r\n\r\nexport const checkIfDisplayDownloadEnable = (_pubData) => {\r\n return ((get(_pubData, \"content[0].content.display_download\")?.toLowerCase() === \"true\") ||\r\n (get(_pubData, \"content[0].subItems[0].content.display_download\")?.toLowerCase() === \"true\"));\r\n}\r\n\r\nexport const getHeaderTitleNameInReadingName = () => {\r\n var titleOnReadingMode = \"\";\r\n if (!UTILITIESHELPER.isStringNullorEmpty(document.querySelector('h1.article-title-reading-mode')?.textContent))\r\n titleOnReadingMode = document.querySelector('h1.article-title-reading-mode')?.textContent;\r\n else if (!UTILITIESHELPER.isStringNullorEmpty(document.querySelector('h2.header-title-reading-mode')?.textContent))\r\n titleOnReadingMode = document.querySelector('h2.header-title-reading-mode')?.textContent;\r\n else if (!UTILITIESHELPER.isStringNullorEmpty(document.querySelector('h2.article-title')?.textContent))\r\n titleOnReadingMode = document.querySelector('h2.article-title')?.textContent;\r\n else titleOnReadingMode = \"\";\r\n\r\n return titleOnReadingMode;\r\n}\r\n//This method extract if any extension and then add underscore (_) at the last position of the filename and againg concat the extension.\r\nfunction renameFile(fileName) {\r\n var fileElements = fileName.split('.');\r\n return `${fileElements[0]}_.${fileElements[1]}`;\r\n}\r\n\r\nfunction replaceDivWithHeaderTag(article, levelAdjustmentforHTag, isPublication){\r\n let parentClassElements;\r\n if(isPublication){\r\n parentClassElements = article.querySelectorAll('.subtopic');\r\n }else{\r\n parentClassElements = article.querySelectorAll('details');\r\n }\r\n parentClassElements.forEach(parentClassElement => {\r\n const level = identifyHierarchyLevelOfParent(parentClassElement, isPublication);\r\n const divElement = parentClassElement.querySelector('.subtopicheading');\r\n if(divElement) {\r\n const heading = document.createElement(`h${level+levelAdjustmentforHTag}`);\r\n heading.textContent = divElement.textContent;\r\n // As we are explicitly converting the .subheading classNames to H tags as per the level , the CSS classes written in word.css are not getting applied .\r\n // The Aspose is by default adding the font sizes for Heading tags .\r\n // As our H3 class is of 16px and not matching with Aspose ..changing to 16px of H3 tags\r\n if (`${level + levelAdjustmentforHTag}` === '3') {\r\n heading.style.fontSize = '21px';\r\n }\r\n divElement.parentNode.replaceChild(heading, divElement);\r\n }\r\n });\r\n}\r\n\r\nfunction identifyHierarchyLevelOfParent(element, isPublication) {\r\n let level = 0;\r\n let currentElement = element;\r\n while (currentElement.parentElement !== null) {\r\n if(isPublication){\r\n if (currentElement.parentElement.classList.contains(\"subtopic\")) {\r\n level++;\r\n }\r\n }else{ \r\n if (currentElement.tagName.toLowerCase() === 'details') {\r\n level++;\r\n }\r\n }\r\n currentElement = currentElement.parentElement;\r\n }\r\n return level;\r\n}\r\n\r\n\r\n\r\nconst DOWNLOADHELPERS = {\r\n getSectionTitle,\r\n getBinaryList,\r\n renameDuplicateFileNames,\r\n checkIfDisplayDownloadEnable,\r\n getHeaderTitleNameInReadingName,\r\n replaceDivWithHeaderTag\r\n}\r\n\r\nexport default DOWNLOADHELPERS;","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport { renderToString } from 'react-dom/server'\r\nimport cx from 'classnames';\r\nimport { cloneDeep } from 'lodash';\r\nimport TocContextProvider, { useTocContext } from '../../contexts/TocContext';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport PageContextProvider, { usePageContext, usePageContextLabels, usePageContextSettings } from '../../contexts/PageContext';\r\nimport RETRIEVALSERVICES from '../../services/rp-service';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport RenderAllContainer from './RenderAllContainer';\r\nimport ArticleContextProvider from '../../contexts/ArticleContext';\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport ReadingModeContextProvider, { useReadingModeContext } from '../../contexts/ReadingModeContext';\r\nimport Checkbox from '../Common/Checkbox';\r\nimport { useUserPreferencesContext } from '../../contexts/AnnotationsContext';\r\nimport AnnotationPanelDropdown from '../Annotations/AnnotationPanelDropdown';\r\nimport DOWNLOADHELPERS from '../../helpers/DownloadHelpers';\r\nimport { logs, page } from '../../helpers/log';\r\nimport { ErrorCodes, ErrorMessages } from '../Constants/Errors';\r\nimport {\r\n BrowserRouter as Router,\r\n} from \"react-router-dom\";\r\nimport { TEMPLATE_REPOSITORY_PUBLICATION_TYPES, ARTICLE_DOWNLOAD, PAGE_CONTROLLER_TYPE } from '../Constants/Constants';\r\nimport { useMemo } from 'react';\r\n\r\nexport const DownloadPanel = (props) => {\r\n\r\n const location = useLocation();\r\n const {tier, industry, context, isJournalPage, isFolioPage } = usePageContext();\r\n const { toc, pubInfo } = useTocContext(); //for generating list of available articles for the manual.\r\n const selectedDownloadTypeArticle = 'article', selectedDownloadTypePublication = 'publication';\r\n const [selectedDownloadType, setSelectedDownloadType] = useState(\"article\"); //article download selected by default.\r\n const [publication, setPublication] = useState({});\r\n const [foliopublication, setFolioPublication] = useState({});\r\n const [articleLabels, setArticleLabels] = useState([]);\r\n const [selectAllChecked, setSelectAllChecked] = useState(false);\r\n const [downloadClicked, setDownloadClicked] = useState(false);\r\n const [isBinaryLoaded, setIsBinaryLoaded] = useState(false);\r\n const [displayBinary, setDisplayBinary] = useState();\r\n const [showHideBinary, setShowHideBinary] = useState(false);\r\n const [listToDownload, setListToDownload] = useState([]);//eslint-disable-line\r\n const [showArticleBinaries, setShowArticleBinaries] = useState(true);\r\n const { isReadingMode } = useReadingModeContext();\r\n const setDownloadPanelOpen = props.setDownloadPanelOpen\r\n const articleContent = AddBinariesInArticleContentCopy(props.page.articleContent.props.pubData);\r\n const [selectedList, setSelectedList] = useState([articleContent]); //initial value include the articleContent, since it'll be auto selected.\r\n const articleTitleRaw = props.page.articleTitle.replace(/(<([^>]+)>)/ig, '');\r\n const articleTitle = articleTitleRaw === \"\" ? props.page.navTitle : articleTitleRaw;\r\n const publicationTitle = context.pageControllerType === \"folio\" ? props.page.pubData.title : props.page.navTitle;\r\n const shouldBeFixed = props.shouldBeFixed;\r\n const { getLabel } = usePageContextLabels();\r\n const disableDownloadButtonClassName = 'btn btn-disabled download-panel-button-clicked';\r\n const enableDownloadButtonClassName = 'btn btn-primary download-panel-button';\r\n const [downloadButtonClassName, setDownloadButtonClassName] = useState(!downloadClicked ? enableDownloadButtonClassName : disableDownloadButtonClassName);\r\n const [articleContentCopy, setArticleContentCopy] = useState(cloneDeep(articleContent));//eslint-disable-line\r\n const { state: annState } = useUserPreferencesContext();\r\n const [selectedAnnotationType, setSelectedAnnotationType] = useState(\"viewAll\");\r\n const [selectedAnnotationList, setSelectedAnnotationList] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState([]);\r\n const [isAllCategorySelected, setIsAllCategorySelected] = useState(false);\r\n const [includeAnnotationsChecked, setIncludeAnnotationsChecked] = useState(false);\r\n const [selectedSpinePubGuidList, setSelectedSpinePubGuidList] = useState([]);\r\n const { isAnnotationsEnabled, isRestrictedAccessMemberfirm } = usePageContextSettings();\r\n const [downloadAlert, setDownloadAlert] = useState(false);\r\n const { guidebookArticle } = useGuidebookTocContext();\r\n const parentTitleString = \"parentTitle\";\r\n const parentGuidString = \"parentGuid\";\r\n const downloadProps = {\r\n eventType: \"download\",\r\n pageUrl: window.location.href,\r\n selectedTocItem: UTILITIESHELPER.getSessionStorage(\"SelectedContent\"),\r\n pageType: UTILITIESHELPER.getSessionStorage(\"PageType\"),\r\n jobTitle: UTILITIESHELPER.getSessionStorage(\"Level\"),\r\n memberFirm: UTILITIESHELPER.getSessionStorage(\"MemberFirm\"),\r\n rpMemberFirm: UTILITIESHELPER.getLocalStorage(\"research-portal-member-firm\"),\r\n };\r\n const templateRepositoryPublicationTypeList = [TEMPLATE_REPOSITORY_PUBLICATION_TYPES.template_repository_account_publicaton_type, TEMPLATE_REPOSITORY_PUBLICATION_TYPES.template_repository_omnia_publicaton_type, TEMPLATE_REPOSITORY_PUBLICATION_TYPES.template_repository_publicaton_type];\r\n var breadcrumbheight = document.querySelector('.crumbtrail')\r\n var topicsToAddToDownload = [];\r\n var publicationContentItems = [];\r\n const [annnotationCategories, setAnnnotationCategories] = useState(annState?.categories?.filter(item => !item.is_specific_to_bookmark));\r\n const [panel, setpPanelHeight] = useState(0);\r\n const RP_Preview_Env = window.DART.ENV.RP_REACT_INK_CONTENT_PRERELEASE;\r\n useEffect(() => {\r\n var panelHeight = 0;\r\n let crumbtail = document.getElementsByClassName(\"crumbtrail\")[0]?.clientHeight;\r\n if (!crumbtail) {\r\n crumbtail = 0;\r\n }\r\n let heightOfHorizontalScroll = document.getElementsByClassName(\"scrollbar-horizontal-container\")[0]?.clientHeight;\r\n if (!heightOfHorizontalScroll) {\r\n heightOfHorizontalScroll = 0;\r\n }\r\n let previewHeight = document.getElementsByClassName(\"preview-warning\")[0]?.clientHeight;\r\n\r\n if (!previewHeight) {\r\n previewHeight = 0;\r\n }\r\n var fixedarticlenav = document.getElementsByClassName(\"fixed-nav-article\")[0]?.clientHeight;\r\n if (!fixedarticlenav) {\r\n fixedarticlenav = 0;\r\n }\r\n panelHeight = crumbtail + heightOfHorizontalScroll + previewHeight + fixedarticlenav;\r\n setpPanelHeight(panelHeight);\r\n }, [shouldBeFixed])\r\n\r\n useEffect(() => {\r\n const retrieveWholePublication = async () => {\r\n setIsBinaryLoaded(true);\r\n var selectedpublication = await RETRIEVALSERVICES.retrieveAllContentsGuidebookPublication();\r\n if (selectedpublication.content !== null) {\r\n setPublication(selectedpublication);\r\n setFolioPublication(selectedpublication);\r\n setIsBinaryLoaded(false);\r\n }\r\n }\r\n if (isFolioPage) {\r\n var selectedpublication = {};\r\n\r\n var tocData = toc[context.pageSelectedSection.toString()];\r\n if (UTILITIESHELPER.isObjectNullorEmpty(tocData)) {\r\n let tocIndex = toc?.findIndex(f => f.sectionFriendlyPath === context.pageSelectedSection.toString());\r\n if (tocIndex !== null || tocIndex !== undefined) {\r\n var tocData = toc[tocIndex];//pageSelectedPublicationGUID = GUID-3B74B5F2-A465-461C-B3B1-B7FDFBB660ED\"\r\n\r\n let selectedpublication = tocData?.tableOfContents.filter(x => x.id === context.pageSelectedPublicationGUID.toString())[0] ?? null;\r\n\r\n if (selectedpublication && !templateRepositoryPublicationTypeList.includes(selectedpublication.publication_type)) {\r\n // Get GuidebookPublication\r\n if (publication?.id !== context.pageSelectedPublicationGUID) {\r\n retrieveWholePublication();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n const res = {}\r\n res.content = toc\r\n setPublication(res)\r\n }\r\n }, [])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n setAnnnotationCategories(annState?.categories?.filter(item => !item.is_specific_to_bookmark));\r\n }, [annState?.categories]);\r\n\r\n useEffect(() => {\r\n const retrieveWholePublication = async () => {\r\n try {\r\n if (isFolioPage) {\r\n const filteredContent = foliopublication.content.filter(x => selectedSpinePubGuidList.includes(x.id));\r\n const newPublication = { ...publication };\r\n newPublication.content = filteredContent;\r\n setPublication(newPublication);\r\n }\r\n else if (context.pageControllerType === PAGE_CONTROLLER_TYPE.standard) {\r\n const res = await RETRIEVALSERVICES.retrieveAllContentsStandardPublication();\r\n setPublication(res);\r\n }\r\n else {\r\n const res = await RETRIEVALSERVICES.retrieveAllContentsManual(selectedSpinePubGuidList);\r\n setPublication(res);\r\n }\r\n } catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.retrieveWholePublicationDownload, err, { eventId: ErrorCodes.Article });\r\n setPublication({});\r\n }\r\n }\r\n\r\n if (downloadClicked) {\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n setDownloadAlert(false);\r\n\r\n if (selectedDownloadType === \"article\") {\r\n downloadCurrentArticle();\r\n }\r\n else {\r\n retrieveWholePublication();\r\n }\r\n }\r\n else {\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n }, [downloadClicked])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n if ((publication.contents !== null && publication.contents) || (publication.content !== null && publication.content)) {\r\n if (downloadClicked) {\r\n downloadMultipleArticles()\r\n }\r\n else {\r\n var list = [];\r\n\r\n if (context?.pageControllerType === \"folio\") {\r\n let targetParent = {};\r\n if (downloadClicked) { // download button clicked after selection\r\n targetParent = publication;\r\n }\r\n else { // first load for displaying the selection list\r\n targetParent.content = publication.content;\r\n }\r\n\r\n targetParent.content.forEach((item) => {\r\n if (selectedList.length > 0) {\r\n var articleIndex = selectedList.findIndex((selectedItem) => { return (selectedItem.id === item.id && item?.binaries?.length >= 0) });\r\n\r\n if (articleIndex >= 0) {\r\n var currentBinaries = [];\r\n item.binaries.forEach((currentBinary) => {\r\n var binaryIndex = selectedList[articleIndex].binaries.findIndex((obj => obj.contentGUID === currentBinary.contentGUID && obj.isSelected));\r\n if (binaryIndex >= 0) {\r\n currentBinary.isSelected = true;\r\n }\r\n currentBinaries.push(currentBinary);\r\n });\r\n let object = {\r\n title: item.title,\r\n id: item.id,\r\n binaries: currentBinaries,\r\n containsBinary: item.containsBinary,\r\n includeArticleText: selectedList[articleIndex].includeArticleText\r\n };\r\n list.push(object)\r\n }\r\n else {\r\n //generate an object for that publication consisting of the title and id.\r\n let object = {\r\n title: item.title,\r\n id: item.id,\r\n binaries: item.binaries,\r\n containsBinary: item.containsBinary,\r\n includeArticleText: item.includeArticleText\r\n };\r\n list.push(object)\r\n }\r\n }\r\n else {\r\n var object = {\r\n title: item.title,\r\n id: item.id,\r\n binaries: item.binaries,\r\n containsBinary: item.containsBinary,\r\n includeArticleText: item.includeArticleText\r\n };\r\n list.push(object)\r\n }\r\n })\r\n }\r\n else if (isJournalPage) {\r\n //journal case, not supported, ignore\r\n }\r\n else {\r\n //manual case\r\n let targetParent = toc;\r\n //Recursivly add them...\r\n list = getChildrenArticles(targetParent.subItems, null)\r\n }\r\n\r\n setArticleLabels(list);\r\n\r\n //needed for publication download\r\n if (downloadClicked) {\r\n downloadMultipleArticles()\r\n }\r\n else {\r\n //set the selected list??\r\n }\r\n }\r\n }\r\n }, [publication]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n\r\n function SetSelectedBinariesToDownload() {\r\n var selectedBinariesList = [];\r\n var tempSelectedSpinePubGuidList = [];\r\n selectedList.forEach((selectedItem) => {\r\n if (selectedItem.binaries) {\r\n selectedItem.binaries.forEach((currentBinary) => {\r\n if (currentBinary.isSelected) {\r\n selectedBinariesList.push(currentBinary);\r\n }\r\n });\r\n }\r\n if (tempSelectedSpinePubGuidList.findIndex(a => a === selectedItem.id) === -1) {\r\n tempSelectedSpinePubGuidList.push(selectedItem.id);\r\n }\r\n });\r\n setSelectedSpinePubGuidList(tempSelectedSpinePubGuidList);\r\n // setListToDownload([...selectedBinariesList]);\r\n }\r\n SetSelectedBinariesToDownload();\r\n }, [selectedList])//eslint-disable-line\r\n\r\n useMemo(() => {\r\n setSelectedList([]);\r\n setDownloadButtonState();\r\n\r\n if (selectedDownloadType === selectedDownloadTypePublication) {\r\n setIncludeAnnotationsChecked(false);\r\n }\r\n\r\n }, [selectedDownloadType])//eslint-disable-line\r\n\r\n function filterAnnotations() {\r\n var filterAnnotations = annState.annotations;\r\n if (selectedCategory && selectedCategory.length > 0) { //Filter by Category\r\n filterAnnotations = filterAnnotations.filter(item => selectedCategory.includes(item.category_guid));\r\n }\r\n if (selectedAnnotationType !== \"viewAll\") {\r\n if (selectedAnnotationType === \"Comments\") {\r\n filterAnnotations = filterAnnotations.filter(item => item.annotation_type === \"Comment\");\r\n }\r\n else if (selectedAnnotationType === \"Highlights\") {\r\n filterAnnotations = filterAnnotations.filter(item => item.annotation_type === \"Highlight\");\r\n }\r\n }\r\n return filterAnnotations;\r\n }\r\n\r\n useEffect(() => {\r\n if (includeAnnotationsChecked) {\r\n setSelectedAnnotationList(() => { return filterAnnotations() });\r\n }\r\n else {\r\n setSelectedAnnotationList([]);\r\n }\r\n }, [selectedAnnotationType, selectedCategory, annState, includeAnnotationsChecked]);//eslint-disable-line\r\n\r\n function AddRecursiveSubItem(subItems) {\r\n var recurseBinaryList = [];\r\n subItems.forEach((subItem) => {\r\n if (subItem.containsBinary && !UTILITIESHELPER.isStringNullorEmpty(subItem.content.uri)) {\r\n let obj = {\r\n binaryURI: subItem.content.uri,\r\n binaryTitle: UTILITIESHELPER.isStringNullorEmpty(subItem.title) ? subItem.object_title : subItem.title,\r\n binaryFormat: subItem.content.format,\r\n contentGUID: subItem.id,\r\n isSelected: true\r\n };\r\n\r\n recurseBinaryList.push(obj);\r\n }\r\n if (subItem.subItems.length > 0) {\r\n let subBinaryList = AddRecursiveSubItem(subItem.subItems);\r\n if (subBinaryList.length > 0)\r\n recurseBinaryList.push(...subBinaryList);\r\n\r\n }\r\n\r\n\r\n })\r\n return recurseBinaryList;\r\n }\r\n\r\n function AddBinariesInArticleContentCopy(articleContent) {\r\n var tempArticleContent = { ...articleContent }; //cloneDeep(articleContent); {...articlecontent};\r\n\r\n if (tempArticleContent.content.length > 0) {\r\n tempArticleContent.content[0].includeArticleText = true;\r\n let tempBinaries = [];\r\n tempArticleContent.content.forEach((contentItem) => {\r\n //START//section to read binaries of same level (non sub item level)\r\n if (contentItem.containsBinary && !UTILITIESHELPER.isStringNullorEmpty(contentItem.content.uri)) {\r\n let obj = {\r\n binaryURI: contentItem.content.uri,\r\n binaryTitle: UTILITIESHELPER.isStringNullorEmpty(contentItem.title) ? contentItem.object_title : contentItem.title,\r\n binaryFormat: contentItem.content.format,\r\n contentGUID: contentItem.id,\r\n isSelected: true\r\n };\r\n\r\n tempBinaries.push(obj);\r\n }\r\n //END//section to read binaries of same level (non sub item level)\r\n\r\n if (contentItem.subItems.length > 0) {\r\n var tempBinariesRecursive = AddRecursiveSubItem(contentItem.subItems);\r\n if (tempBinariesRecursive.length > 0) {\r\n tempBinariesRecursive.map(item => tempBinaries.push(item));\r\n }\r\n }\r\n })\r\n tempArticleContent.content[0][\"binaries\"] = tempBinaries;\r\n }\r\n return tempArticleContent;\r\n }\r\n\r\n function formatContentForWordDocument(content) {\r\n var wordContent = UTILITIESHELPER.removeNonBreakingSpaces(content);\r\n return wordContent;\r\n }\r\n\r\n function accessibleCheckboxAll(e) {\r\n if (e.key === \"Enter\") {\r\n handleSelectAllCheckboxClick();\r\n }\r\n }\r\n\r\n function accessibleCheckbox(e, item) {\r\n if (e.key === \"Enter\") {\r\n handleCheckboxClick(item);\r\n }\r\n }\r\n\r\n function addArticleToSelectedList(item) {\r\n var newArray = [];\r\n var binaryArray = [];\r\n\r\n if (selectedDownloadType === selectedDownloadTypePublication) {\r\n //case when we already have some item selected\r\n selectedList.forEach((selectedItem) => {\r\n newArray.push(selectedItem);\r\n })\r\n }\r\n\r\n //add requested/selected item to selected list\r\n item.includeArticleText = true;\r\n newArray.push(item);\r\n\r\n //identify all the binaries of the checked articled and create single list which we display within article\r\n if (item?.binaries?.length > 0) {\r\n binaryArray = item.binaries;\r\n binaryArray.forEach((child) => {\r\n child.isSelected = true;\r\n });\r\n }\r\n\r\n //On parent item check, it should check its child item till last(nth) level\r\n const selectRecursively = (childItem) => {\r\n childItem.forEach((child) => {\r\n newArray.push(child)\r\n if (child?.children?.length) {\r\n selectRecursively(child.children);\r\n }\r\n });\r\n\r\n }\r\n\r\n if (item?.children?.length) {\r\n selectRecursively(item.children);\r\n }\r\n\r\n if (newArray.length > 0) {\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n else {\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n }\r\n\r\n setSelectedList(newArray);\r\n }\r\n\r\n function checkAllArticles(subItems, children) {\r\n for (let child of subItems) {\r\n child.includeArticleText = true; //when select all true all binaries are also set selected true\r\n if (child.binaries && child.binaries.length > 0) {\r\n child.binaries.forEach((currentBinary) => {\r\n currentBinary.isSelected = true;\r\n });\r\n }\r\n children.push(child)\r\n if (child.children && Array.isArray(child.children) && child.children.length > 0) {\r\n checkAllArticles(child.children, children)\r\n }\r\n }\r\n\r\n return children\r\n }\r\n\r\n function createHtmlBodyArticle() {\r\n //For single article download.\r\n let elements = document.querySelectorAll('li > .indent');\r\n if (elements !== undefined) {\r\n for (let element in Object.entries(elements)) {\r\n elements[element].setAttribute(\"class\", \"indent\");\r\n }\r\n }\r\n //While downloading the Article , in the footnote inside the class-endnote-text whenever we have a
      \r\n // then the Aspose is adding an extra space to the next footnote number , inorder to not let aspose add spaces\r\n // we have added an extra

      tag towards the end of the

        inside the class-endnote-text\r\n var endnoteTextElements = document.querySelectorAll('.endnote-text');\r\n endnoteTextElements.forEach(element => {\r\n var ulElement = element.querySelector('ul');\r\n if (ulElement) {\r\n var pElement = document.createElement('p');\r\n pElement.textContent = '';\r\n element.appendChild(pElement);\r\n }\r\n });\r\n var articleContainer = document.getElementsByClassName(\"article-container\")[0];\r\n var clone = articleContainer.cloneNode(true);\r\n if (clone.querySelector('.article-title-reading-mode')) {\r\n clone.children[0].outerHTML = '

        ' + clone.children[0].innerHTML + '

        ';\r\n clone.children[0].setAttribute(\"style\", \"margin: 0px 0px 0px -70px; box-sizing: border-box\");\r\n clone.setAttribute(\"style\", \"padding: 20px 0 0 70px; box-sizing: border-box\");\r\n }\r\n //remove divs for web app modals etc. that we don't want to include in the word doc.\r\n var toolbardivs = clone.getElementsByClassName('toolbar');\r\n while (toolbardivs.length > 0) {\r\n toolbardivs[0].parentNode.removeChild(toolbardivs[0]);\r\n }\r\n\r\n var fixedToolsDiv = clone.getElementsByClassName('fixed-tools-container');\r\n while (fixedToolsDiv.length > 0) {\r\n fixedToolsDiv[0].parentNode.removeChild(fixedToolsDiv[0]);\r\n }\r\n\r\n //Not including \"Top of Article\" text from word doc.\r\n var fixedToolsDivBottom = clone.getElementsByClassName('fixed-tools-container-bottom');\r\n while (fixedToolsDivBottom.length > 0) {\r\n fixedToolsDivBottom[0].parentNode.removeChild(fixedToolsDivBottom[0]);\r\n }\r\n\r\n var modaldivs = clone.getElementsByClassName('modal');\r\n while (modaldivs.length > 0) {\r\n modaldivs[0].parentNode.removeChild(modaldivs[0]);\r\n }\r\n\r\n var nextPrevDivs = clone.getElementsByClassName('prev-next-article-links-container');\r\n while (nextPrevDivs.length > 0) {\r\n nextPrevDivs[0].parentNode.removeChild(nextPrevDivs[0]);\r\n }\r\n\r\n var shareModaldivs = clone.getElementsByClassName('share-modal');\r\n while (shareModaldivs.length > 0) {\r\n shareModaldivs[0].parentNode.removeChild(shareModaldivs[0]);\r\n }\r\n\r\n var miscImagesDivs = clone.getElementsByClassName('icon-file-component');\r\n while (miscImagesDivs.length > 0) {\r\n miscImagesDivs[0].parentNode.removeChild(miscImagesDivs[0]);\r\n }\r\n\r\n var downloadPanelDivs = clone.getElementsByClassName('download-panel');\r\n while (downloadPanelDivs.length > 0) {\r\n downloadPanelDivs[0].parentNode.removeChild(downloadPanelDivs[0]);\r\n }\r\n\r\n //remove notifications from doc\r\n var notificationDivs = clone.getElementsByClassName('notification');\r\n while (notificationDivs.length > 0) {\r\n notificationDivs[0].parentNode.removeChild(notificationDivs[0]);\r\n }\r\n\r\n //This logic is to remove PDF content in word document\r\n while (clone.querySelectorAll('.binary-block .pdf').length > 0) {\r\n const parentElement = clone.querySelectorAll('.binary-block .pdf')[0].parentNode;\r\n if (parentElement) {\r\n const parent = parentElement.parentNode;\r\n if (parent) {\r\n parent.remove();\r\n }\r\n }\r\n }\r\n\r\n //this method is specific for case when downloading article that contains PDF viewer in it.\r\n //and we dont want that PDF Viewer to show up in word docs\r\n while (clone.querySelectorAll('.binary-block .d-flex').length > 0) {\r\n clone.querySelectorAll('.binary-block .d-flex')[0].remove();\r\n }\r\n\r\n\r\n\r\n DOWNLOADHELPERS.replaceDivWithHeaderTag(clone, 1, false)\r\n\r\n //Generate the article\r\n let date = new Date();\r\n const dateValue = UTILITIESHELPER.formatDate(date, context?.language);\r\n\r\n //removing divs with this class, because this div is including unwanted new line within same paragraph.\r\n var footnotedivs = clone.getElementsByClassName('footnote-popup');\r\n while (footnotedivs.length > 0) {\r\n footnotedivs[0].parentNode.removeChild(footnotedivs[0]);\r\n }\r\n\r\n //remove annotation\r\n //get all ids which are in selectedAnnotation\r\n //remove annotation which doesnt include in Annotationlist\r\n let removalAnnotationIds = [];\r\n removalAnnotationIds = annState.annotations.filter(function (e) {\r\n return selectedAnnotationList.indexOf(e) === -1\r\n });\r\n\r\n removalAnnotationIds = removalAnnotationIds.map(a => a.annotation_guid);\r\n var markTagg = clone.querySelectorAll(\".highlighted\");\r\n for (let i = 0; i < markTagg.length; i++) {\r\n var markid = removalAnnotationIds.includes(markTagg[i].id);\r\n if (markid) {\r\n markTagg[i].parentNode.replaceChild(document.createTextNode(markTagg[i].innerHTML), markTagg[i]);\r\n let spanid = `#comment${markTagg[i].id}`;\r\n let spanTag = clone.querySelector(spanid);\r\n if (spanTag) {\r\n spanTag.remove();\r\n }\r\n }\r\n }\r\n generateAndResolveLinks(clone);\r\n const linkUrl = UTILITIESHELPER.getBaseDomain() + location.pathname;\r\n const startString = \"\"\r\n const citationString = `${getAppliedFilterMessage()}

        ${getLabel(\"b_BinaryDownloadedOn\", \"Downloaded on:\")} ${dateValue}

        `;\r\n var wordString = formatContentForWordDocument(clone.outerHTML);\r\n return startString + citationString + wordString + \"\";\r\n }\r\n function ResolveLinks(clone) {\r\n let anchors = clone.getElementsByTagName('a');\r\n if (anchors.length > 0) {\r\n Array.from(anchors).forEach(a => {\r\n const hrefArray = a.href.split(\"/\");\r\n const href = hrefArray[hrefArray.length - 1];\r\n const anchorURL = hrefArray[0].concat(\"//\").concat(hrefArray[2]);\r\n if (href.includes(\"mailto\")) {\r\n a.href = href;\r\n } else if (anchorURL === UTILITIESHELPER.getBaseDomain()) {\r\n a.href = `${UTILITIESHELPER.getBaseDomain()}/content/docid=${href}`;\r\n }\r\n else {\r\n a.href = a.href;\r\n }\r\n });\r\n }\r\n }\r\n function generateAndResolveLinks(clone) {\r\n if (RP_Preview_Env.toLowerCase() === \"true\") {\r\n ResolveLinks(clone);\r\n }\r\n else {\r\n let anchors = clone.getElementsByTagName('a');\r\n if (anchors.length > 0) {\r\n Array.from(anchors).forEach(a => {\r\n if (!(decodeURI(context.pageSelectedPublicationTitle)?.toLowerCase()).includes('technically speaking')) {\r\n const spanTag = document.createElement('span');\r\n spanTag.title = a.href;\r\n spanTag.innerHTML = a.innerHTML;\r\n var uTagSingleDownload = spanTag.querySelector('span u');\r\n if (uTagSingleDownload != null) {\r\n var textNode = document.createTextNode(uTagSingleDownload.textContent);\r\n uTagSingleDownload.parentNode.replaceChild(textNode, uTagSingleDownload);\r\n }\r\n a.parentNode.replaceChild(spanTag, a);\r\n }\r\n else {\r\n //Added if a tag contains images\r\n if (a.childNodes[0]?.tagName?.toLowerCase() === 'img') {\r\n let imgNodes = a.childNodes[0];\r\n imgNodes.className = a.className;\r\n imgNodes.title = \"TSHREFIMAGE\"\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n function createHtmlBodyPublication(wordString) {\r\n if (!wordString) {\r\n return null;\r\n }\r\n if (RP_Preview_Env.toLowerCase() === \"false\") {\r\n wordString = wordString.replaceAll(\"\", \"\");\r\n }\r\n var parser = new DOMParser();\r\n var htmlDoc = parser.parseFromString(wordString, 'text/html');\r\n //While downloading the Article , in the footnote inside the class-endnote-text whenever we have a
          \r\n // then the Aspose is adding an extra space to the next footnote number , inorder to not let aspose add spaces\r\n // we have added an extra

          tag towards the end of the

            inside the class-endnote-text\r\n var endnoteTextElements = htmlDoc.querySelectorAll('.endnote-text');\r\n endnoteTextElements.forEach(element => {\r\n var ulElement = element.querySelector('ul');\r\n if (ulElement) {\r\n var pElement = htmlDoc.createElement('p');\r\n pElement.textContent = '';\r\n element.appendChild(pElement);\r\n }\r\n });\r\n\r\n //Get all div with p in endnote-table-container\r\n var endNotesContainers = htmlDoc.getElementsByClassName(\"endnote-table-container\");\r\n\r\n //remove duplicate industry tag\r\n htmlDoc.querySelectorAll('.applicability-tag').forEach(function (a) {\r\n a.remove()\r\n })\r\n\r\n //this method is specific for case when downloading article that contains PDF viewer in it.\r\n //and we dont want that PDF Viewer to show up in word docs\r\n //clone.querySelectorAll('.binary-block .pdf')\r\n // var pdfViewerblocks = htmlDoc.querySelectorAll('.binary-block .pdf');\r\n while (htmlDoc.querySelectorAll('.binary-block .pdf').length > 0) {\r\n htmlDoc.querySelectorAll('.binary-block .pdf')[0].remove();\r\n }\r\n\r\n //this method is specific for case when downloading article that contains PDF viewer in it.\r\n //and we dont want that PDF Viewer to show up in word docs\r\n while (htmlDoc.querySelectorAll('.binary-block .d-flex').length > 0) {\r\n htmlDoc.querySelectorAll('.binary-block .d-flex')[0].remove();\r\n }\r\n\r\n //Convert all subtopic div to h tags\r\n var articleContainers = htmlDoc.getElementsByClassName(\"structured-article\");\r\n for (let i = 0; i < articleContainers.length; i++) {\r\n DOWNLOADHELPERS.replaceDivWithHeaderTag(articleContainers[i], 2, true)\r\n };\r\n\r\n if (endNotesContainers.length > 0) {\r\n //this for loop will arrage the notes in the order which is working(having proper rows and containers)\r\n for (let i = 0; i < endNotesContainers.length; i++) {\r\n var spansOfEndnoteText = endNotesContainers[i].querySelectorAll(\"p .endnote-text\");\r\n let counterForCurrentUpdation = 0;\r\n\r\n //class 'p' in the endnote-table-container\r\n var endnoteTextDivs = endNotesContainers[i].querySelectorAll(\".p\");\r\n for (let j = 0; j < spansOfEndnoteText.length && counterForCurrentUpdation < endnoteTextDivs.length; j++) {\r\n\r\n let currentDiv = endnoteTextDivs[counterForCurrentUpdation];\r\n //Paste value only when empty, because sometimes spans contain text directly inside them\r\n //as they don't have div pushed inside them\r\n if (spansOfEndnoteText[j].innerHTML === '') {\r\n //Paste the value in the span with white space prefix(margins are not working in docx)\r\n spansOfEndnoteText[j].innerHTML = \" \" + currentDiv.innerHTML;\r\n //Nullify the div, can't delete because of counter running logic\r\n currentDiv.innerHTML = '';\r\n //Update only when update span is done, so that no div remains manipulated\r\n counterForCurrentUpdation++;\r\n }\r\n else {\r\n //if text already there then just prefix white space\r\n spansOfEndnoteText[j].prepend(\" \");\r\n }\r\n }\r\n }\r\n }\r\n var footnotedivsnew = htmlDoc.getElementsByClassName('footnote-popup');\r\n while (footnotedivsnew.length > 0) {\r\n footnotedivsnew[0].parentNode.removeChild(footnotedivsnew[0]);\r\n }\r\n let footnotedivs = htmlDoc.getElementsByClassName('footnote-popup');\r\n for (let element in Object.entries(footnotedivs)) {\r\n if (footnotedivs[element] !== undefined) {\r\n if (footnotedivs[element].parentNode !== undefined) {\r\n footnotedivs[element].parentNode.removeChild(footnotedivs[element]);\r\n }\r\n }\r\n }\r\n if (RP_Preview_Env.toLowerCase() === \"true\") {\r\n ResolveLinks(htmlDoc);\r\n }\r\n let date = new Date();\r\n const dateValue = UTILITIESHELPER.formatDate(date, context?.language);\r\n const linkUrl = UTILITIESHELPER.getBaseDomain() + location.pathname;\r\n const startString = \"\"\r\n const citationString = `

            ${getLabel(\"b_BinaryDownloadedOn\", \"Downloaded on:\")} ${dateValue}

            `;\r\n const body = startString + citationString + htmlDoc.documentElement.outerHTML + \"\";\r\n return body;\r\n }\r\n\r\n function displayBinaryHadler(pid) {\r\n setDisplayBinary(pid)\r\n setShowHideBinary(prevVal => !prevVal)\r\n }\r\n\r\n const downloadCurrentArticle = async () => {\r\n const articleTitle = isReadingMode ? DOWNLOADHELPERS.getHeaderTitleNameInReadingName() : document.querySelector('h2.article-title')?.textContent;\r\n var trimmedTitle = articleTitle.trim().replace('\\n', '').replace(/ +/g, '_');\r\n var fileName = unescape(trimmedTitle).replace(' ', '-');\r\n fileName = fileName.replace(/\\u2013|\\u2014/g, \"-\");\r\n //eslint-disable-next-line\r\n fileName = fileName.replace(/[^\\x00-\\x7F]/g, \"\"); //handle any non-ascii chars in the filename\r\n fileName = UTILITIESHELPER.restrictLengthOfFileName(fileName);\r\n fileName = UTILITIESHELPER.removeLargeSpacesFromRichText(fileName);\r\n fileName = UTILITIESHELPER.removeSpecialCharacterFromFileName(fileName);// handle (\".\" and \"/\") iin the file name\r\n var annContent = [];\r\n var annComment = [];\r\n if (selectedAnnotationList && selectedAnnotationList.length > 0) {\r\n selectedAnnotationList.forEach((annText) => {\r\n if (annText.comment !== undefined) {\r\n annContent.push(UTILITIESHELPER.removeNewLineCharacter(annText.content));\r\n annComment.push(annText.comment);\r\n }\r\n });\r\n }\r\n\r\n var body = createHtmlBodyArticle();\r\n var htmlPackage = {\r\n \"PageUrl\": window.location.href,\r\n \"FileName\": fileName,\r\n \"HtmlBody\": body,\r\n \"content\": annContent,\r\n \"comment\": annComment\r\n }\r\n //AppInsights\r\n downloadProps.documentName = UTILITIESHELPER.getSessionStorage(\"SelectedContent\");\r\n downloadProps.parentCollectionName = publicationTitle;\r\n logs.event('download-current', downloadProps)\r\n\r\n //TODO: refactor this later. It handles making sure that we only send what's on the ARTICLE selections rather than both article and publication selections\r\n //var flatContentItemList = UTILITIESHELPER.getContentItemContentAsFlat(articleContentCopy); //eslint-disable-line\r\n var binaryRequest = DOWNLOADHELPERS.getBinaryList(selectedList);\r\n if (binaryRequest.length === 0) { //Article text only usecase, no binaries selected\r\n try {\r\n let response = await RETRIEVALSERVICES.convertWord(htmlPackage);\r\n if (response) {\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.downloadWord, err, { eventId: ErrorCodes.Article });\r\n }\r\n }\r\n else if (binaryRequest.length === 1 && !articleContentCopy?.content[0]?.includeArticleText) { //Single file usecase, there's only 1 binary in the request and the articleText is not selected\r\n try {\r\n let response = await RETRIEVALSERVICES.requestFile(binaryRequest[0].fileUri, binaryRequest[0].fileName);\r\n if (response) {\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.downloadBinary, err, { eventId: ErrorCodes.Article });\r\n }\r\n }\r\n else { //zip download usecase\r\n htmlPackage.FileName = fileName.replace(\".docx\", \".zip\").replaceAll('.', '_');\r\n\r\n //Below method helps to avoid the conflict when two or more binary files having same name, for more detail refer this defect #2911193\r\n DOWNLOADHELPERS.renameDuplicateFileNames(binaryRequest, htmlPackage.FileName);\r\n try {\r\n let response = await RETRIEVALSERVICES.requestZip(htmlPackage, binaryRequest, fileName);\r\n if (response) {\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.downloadZip, err, { eventId: ErrorCodes.Article });\r\n }\r\n }\r\n }\r\n\r\n const downloadMultipleArticles = async () => {\r\n //Get currently checked checkboxes\r\n //do nothing if no articles are selected.\r\n if (selectedList.length > 0) {\r\n //Make a list of the actual content items from the leaf-nodes of the selection\r\n topicsToAddToDownload = [];\r\n publicationContentItems = [];\r\n\r\n //Loop through the FLAT list of selected items, and add the items that are leaf-nodes to the list of ID's to find in the content (DATA)\r\n selectedList.forEach((item) => {\r\n //ignore items with children, they are listings pages and wont be downloaded.\r\n if ((!item.children || !item.children?.length > 0) && item.includeArticleText === true) {\r\n topicsToAddToDownload.push(item.id);\r\n }\r\n if (item.children?.length > 0 || item.children) {\r\n recurseSelectedChildren(item);\r\n }\r\n });\r\n //add the topicsToAddToDownload to the publicationContentItems (data)\r\n publication.content.forEach((item) => {\r\n recurseSelectedContentItem(item);\r\n })\r\n var publicationDuplicate = cloneDeep(publication);\r\n var renderedArticles = []\r\n //Convert the content to html\r\n publicationContentItems.forEach((item) => {\r\n //The RenderAllContainer expects each article to be alone within a publication object.\r\n //TODO:Anand --> Guidance is also manual-type - so why are we doing it as if it was a folio (SPine-publications?) [this was in development branch, but asking again here] - is it perhaps section in a folio?!\r\n if (context?.pageControllerType === \"folio\" || context?.pageSelectedSection === \"guidance\") {\r\n publicationDuplicate.content = [item]\r\n }\r\n else {\r\n publicationDuplicate.content = (Array.isArray(item.subItems) && item.subItems.length > 0) ? item.subItems : [item];\r\n }\r\n\r\n //this method returns section headings when parent section item is selected from the download panel\r\n var selectedSectionTitle = DOWNLOADHELPERS.getSectionTitle(item, selectedSpinePubGuidList);\r\n var articleContainerDiv = \"
            \"\r\n //put the component into a router so that we can access the contexts for all subcomponents and locations\r\n //for useLocations, then render the component into a string.\r\n renderedArticles.push(\r\n articleContainerDiv +\r\n selectedSectionTitle +\r\n \"

            \" + item.content.rich_text_title + \"

            \" +\r\n renderToString(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n + \"
            \" + (UTILITIESHELPER.isStringNullorEmpty(selectedSectionTitle) ? \"\" : \"
    \")\r\n )\r\n })\r\n let Articles= renderedArticles.map((article,idx)=>{\r\n let allHrefs=article.match(/(href=\"([^\"]+)\")/g);\r\n let linksModifiedArticle=article;\r\n if(!UTILITIESHELPER.isArrayNullorEmpty(allHrefs)){\r\n allHrefs.forEach((link)=>{\r\n let spiltedLink=link?.split('=')[1].replace(/['\"]+/g, '');\r\n if(spiltedLink.startsWith('#')==true){\r\n linksModifiedArticle=linksModifiedArticle.replace(new RegExp(`(href=\"(${spiltedLink})\")`), `href=\"${topicsToAddToDownload[idx]+spiltedLink}\"`);;\r\n }\r\n })\r\n }\r\n return linksModifiedArticle;\r\n })\r\n //stitch together into a single string\r\n var wordString = Articles.join('');\r\n if (new Blob([wordString]).size > ARTICLE_DOWNLOAD.SIZE_LIMIT) {\r\n setDownloadClicked(false);\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n setDownloadAlert(true);\r\n return;\r\n }\r\n var body = createHtmlBodyPublication(wordString);\r\n body = body?.replaceAll(/ /gi, \" \");\r\n var trimmedTitle = publicationTitle.trim();\r\n var fileName = unescape(trimmedTitle)\r\n //eslint-disable-next-line\r\n fileName = fileName.replace(/\\u2013|\\u2014/g, \"-\").replace(/[^\\x00-\\x7F]/g, \"\"); //handle any non-ascii chars in the filename\r\n fileName = UTILITIESHELPER.removeLargeSpacesFromRichText(fileName);\r\n fileName = UTILITIESHELPER.restrictLengthOfFileName(fileName);\r\n fileName = UTILITIESHELPER.removeSpecialCharacterFromFileName(fileName);// handle (\".\" and \"/\") iin the file name\r\n //sort out the pageUrl\r\n //All cases of pageUrl is already handled in PageContext.jsso we can directly use context.pageBaseURL here\r\n var pageUrl = `${UTILITIESHELPER.getBaseDomain()}${context.pageBaseURL}`;\r\n\r\n if (UTILITIESHELPER.isObjectNullorEmpty(publicationContentItems)) {\r\n body = null;\r\n }\r\n var htmlPackage = {\r\n \"PageUrl\": pageUrl,\r\n \"FileName\": UTILITIESHELPER.restrictLengthOfFileName(fileName),\r\n \"HtmlBody\": body\r\n }\r\n //AppInsights\r\n var multipleDocuments = [];\r\n selectedList.forEach(element => {\r\n multipleDocuments.push('[' + element.title + ']');\r\n });\r\n\r\n downloadProps.documentName = multipleDocuments.join('# ');\r\n downloadProps.parentCollectionName = publicationTitle;\r\n logs.event('download-multiple', downloadProps)\r\n\r\n var binaryRequest = DOWNLOADHELPERS.getBinaryList(selectedList);\r\n\r\n if (binaryRequest.length === 0) { //article case\r\n try {\r\n let response = await RETRIEVALSERVICES.convertWord(htmlPackage);\r\n if (response) {\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.downloadWord, err, { eventId: ErrorCodes.Article });\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n else if (selectedList.length === 1 && !selectedList[0].includeArticleText && binaryRequest.length === 1) { //single binary case\r\n try {\r\n let response = await RETRIEVALSERVICES.requestFile(binaryRequest[0].fileUri, binaryRequest[0].fileName);\r\n if (response) {\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.downloadBinary, err, { eventId: ErrorCodes.Article });\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n else { //zip case // FileName:\"RP-FTEO-Buffet-IA\"\r\n //Below method helps to avoid the conflict when two or more binary files having same name, for more detail refer this defect #2911193\r\n DOWNLOADHELPERS.renameDuplicateFileNames(binaryRequest);\r\n\r\n try {\r\n let response = await RETRIEVALSERVICES.requestZip(htmlPackage, binaryRequest, fileName);\r\n if (response) {\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Article, \"DownloadPanel\", ErrorMessages.downloadWord, err, { eventId: ErrorCodes.Article });\r\n showSearchbar();\r\n setSelectedList([])\r\n setSelectedList([...selectedList])\r\n setDownloadClicked(false);\r\n setDownloadPanelOpen(false);\r\n setSelectedDownloadType(\"\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n function generateLabelCheckboxes(children, level) {\r\n //For some reason, the ShowIf was not working and would send in the undefined/empty object here, so I changed it to an if\r\n if (!children || children.length === 0) {\r\n return;\r\n }\r\n\r\n //Styling the checkboxContainer\r\n const marginLeftStyling = {\r\n marginLeft: `${20 * level}px`\r\n }\r\n\r\n return (\r\n <>\r\n {children.map((item, index) => {\r\n return (\r\n
    \r\n
    \r\n handleCheckboxClick(item)}\r\n disabled={selectedDownloadType !== \"publication\"}\r\n onKeyDown={(e) => accessibleCheckbox(e, item)}\r\n />\r\n
    \r\n {(item.children && item.children?.length > 0) ? generateLabelCheckboxes(item.children, level + 1) : \"\"}\r\n
    \r\n )\r\n })}\r\n \r\n )\r\n }\r\n\r\n function getAppliedFilterMessage() {\r\n let industries = (industry[context?.memberFirm]?.accounting?.length > 0 ? (industry[context?.memberFirm].accounting.map(a => a.name).join(\", \")) : \"\") + (industry[context?.memberFirm]?.auditing?.length > 0 ? (industry[context?.memberFirm].auditing?.map(a => a.name).join(\", \")) : \"\");\r\n let framework = (tier[context?.memberFirm]?.accounting?.length > 0 ? (tier[context?.memberFirm].accounting.map(a => a.name).join(\", \")) : \"\") + (tier[context?.memberFirm]?.auditing?.length > 0 ? (tier[context?.memberFirm].auditing?.map(a => a.name).join(\", \")) : \"\");\r\n\r\n if (industries !== \"\" || framework !== \"\") {\r\n return `

    ${getLabel(\"b_FiltersApplied\", \"Filters applied:\")} ${industries}${(framework !== \"\" && industries !== \"\") ? \", \" : \"\"}${framework}

    `;\r\n }\r\n return \"\";\r\n }\r\n\r\n function getChildrenArticles(subItems, parentId) {\r\n const children = []\r\n if (subItems?.length > 0){\r\n for (let child of subItems) {\r\n if (!child.containsBinary) {\r\n children.push({\r\n id: child.id,\r\n title: child.title,\r\n parentId: parentId,\r\n children: child.subItems && Array.isArray(child.subItems) && child.subItems.length > 0 ? getChildrenArticles(child.subItems, child.id) : []\r\n });\r\n }\r\n }\r\n }\r\n\r\n return children\r\n }\r\n\r\n function getUniqueFormat(binaries) {\r\n if (UTILITIESHELPER.isObjectNullorEmpty(binaries)) {\r\n return \"\";\r\n }\r\n var formatArr = binaries.map((b) => {\r\n return (b.binaryFormat.toUpperCase().replace('.', ''))\r\n });\r\n var uniqueArray = [...new Set(formatArr)];\r\n var msg = uniqueArray.join(\",\");\r\n var finalMsg = UTILITIESHELPER.isStringNullorEmpty(msg) ? \"\" : \"(\" + msg + \")\";\r\n\r\n return finalMsg;\r\n }\r\n\r\n function handleBinaryCheckboxForArticleOnlyClick(parentItem, binaryItem) {\r\n var newList = selectedList;\r\n\r\n var articleIndex = newList.findIndex((obj => obj.id === parentItem.id))//find index of article in selectedList\r\n\r\n var selectedBinaryIndex = newList[articleIndex].binaries.findIndex((obj => obj.contentGUID === binaryItem.contentGUID));\r\n if (selectedBinaryIndex >= 0) {\r\n if (newList[articleIndex].binaries[selectedBinaryIndex].isSelected === true) {\r\n newList[articleIndex].binaries[selectedBinaryIndex].isSelected = false;\r\n if (newList[articleIndex].binaries.findIndex((obj => obj.isSelected === true)) < 0 && newList[articleIndex].includeArticleText === false)\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n else\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n else {\r\n newList[articleIndex].binaries[selectedBinaryIndex].isSelected = true;\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n\r\n setSelectedList([...newList]);\r\n }\r\n }\r\n\r\n function handleBinaryCheckboxClick(parentItem, binaryItem) {\r\n if (selectedDownloadTypeArticle) {\r\n //Article Case\r\n binaryItem.isSelected = !binaryItem.isSelected;\r\n\r\n //Force a refresh\r\n let articleLableArray = [...articleLabels];\r\n setArticleLabels([]);\r\n setArticleLabels([...articleLableArray]);\r\n }\r\n else {\r\n //Publication Case\r\n var articleIndex = selectedList.findIndex((obj => obj.id === parentItem.id))\r\n var finalSelected = false;\r\n if (articleIndex >= 0) {\r\n const objIndex = selectedList[articleIndex].binaries?.findIndex((obj => obj.contentGUID === binaryItem.contentGUID));\r\n if (objIndex >= 0 && selectedList[articleIndex].binaries[objIndex].isSelected) {\r\n selectedList[articleIndex].binaries[objIndex].isSelected = false\r\n finalSelected = false;\r\n //case 1: when all binaries are not selected and article text option is also request to deselect\r\n if ((selectedList[articleIndex].binaries.findIndex((obj => obj.isSelected === true)) < 0) && parentItem.includeArticleText === false) {\r\n //case when binary selected and unchecked, will check if no binary selected the set parent to deselect\r\n removeArticleFromSelectedList(parentItem);\r\n }\r\n }\r\n else {\r\n selectedList[articleIndex].binaries[objIndex].isSelected = true;\r\n finalSelected = true;\r\n setSelectedList([...selectedList]);\r\n }\r\n }\r\n\r\n let articleLableArray = [...articleLabels];\r\n var selectedIndex = articleLableArray?.findIndex((obj => obj.id === parentItem.id));\r\n if (selectedIndex >= 0) {\r\n var binaryIndex = articleLableArray[selectedIndex].binaries.findIndex((obj => obj.contentGUID === binaryItem.contentGUID));\r\n if (binaryIndex >= 0) {\r\n articleLableArray[selectedIndex].binaries[binaryIndex].isSelected = finalSelected;\r\n setArticleLabels([]);\r\n setArticleLabels([...articleLableArray]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function handleCheckboxClick(item) {\r\n if (item && item.id && isArticleSelected(item.id)) {\r\n removeArticleFromSelectedList(item);\r\n setSelectAllChecked(false);\r\n }\r\n else {\r\n addArticleToSelectedList(item);\r\n }\r\n }\r\n\r\n function handleIncludeArticleTextForArticleOnlClick(parentItem) {\r\n var newList = selectedList;\r\n var articleIndex = newList.findIndex((obj => obj.id === parentItem.id))\r\n var binarySelectedIndex = newList[articleIndex]?.binaries?.findIndex((obj => obj.isSelected === true));\r\n if (articleIndex >= 0) {\r\n if (newList[articleIndex].includeArticleText) {\r\n newList[articleIndex].includeArticleText = false;\r\n if (binarySelectedIndex < 0)\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n else\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n else {\r\n newList[articleIndex].includeArticleText = true;\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n }\r\n\r\n setSelectedList([...newList]);\r\n }\r\n\r\n function handleIncludeArticleTextClick(parentItem) {\r\n if (parentItem.binaries.findIndex((obj => obj.isSelected === true)) < 0 && parentItem.includeArticleText === true)//case 1: when all binaries are not selected and article text option is also request to deselect\r\n {\r\n removeArticleFromSelectedList(parentItem); // case where all binaries already deselected and then article text is also deselected\r\n }\r\n else {\r\n var articleIndex = selectedList.findIndex((obj => obj.id === parentItem.id))\r\n\r\n if (articleIndex >= 0) {\r\n if (selectedList[articleIndex].includeArticleText) {\r\n selectedList[articleIndex].includeArticleText = false;\r\n if (selectedList[articleIndex].binaries.findIndex((obj => obj.isSelected === true)) < 0)//case 1: when all binaries are not selected and article text option is also request to deselect\r\n {\r\n removeArticleFromSelectedList(parentItem)\r\n }\r\n }\r\n else\r\n selectedList[articleIndex].includeArticleText = true;\r\n }\r\n\r\n setSelectedList([...selectedList]);\r\n }\r\n }\r\n\r\n function handleSelectAllCheckboxClick() {\r\n if (!selectAllChecked) {\r\n // if select all checked false\r\n var newSelectedList = [];\r\n checkAllArticles(articleLabels, newSelectedList);\r\n setSelectedList(newSelectedList);\r\n setDownloadButtonClassName(enableDownloadButtonClassName); //when clicked Select All false then disable download button\r\n }\r\n else {\r\n setSelectedList([]);\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n }\r\n\r\n setSelectAllChecked(prevVal => !prevVal);\r\n }\r\n\r\n function handleIncludeAnnotationsClick() {\r\n setIncludeAnnotationsChecked(prevVal => !prevVal);\r\n }\r\n\r\n function isArticleSelected(id) {\r\n var selected = false;\r\n selectedList.forEach((item) => {\r\n if (item.id === id) {\r\n selected = true;\r\n }\r\n })\r\n return selected;\r\n }\r\n function recurseSelectedChildren(item) {\r\n if (item?.children || item?.children?.length > 0) {\r\n if (item.parentId !== null) {\r\n const index = topicsToAddToDownload.indexOf(item.parentId);\r\n if (index > -1) { // only splice array when item is found\r\n topicsToAddToDownload.splice(index, 1); // 2nd parameter means remove one item only\r\n }\r\n }\r\n item.children.map((childItem) => {\r\n topicsToAddToDownload.push(childItem.id);\r\n recurseSelectedChildren(childItem);\r\n })\r\n }\r\n }\r\n function recurseSelectedContentItem(item) {\r\n\r\n if (topicsToAddToDownload?.includes(item.id)) {\r\n publicationContentItems.push(item);\r\n }\r\n else {\r\n //ELSE - as if we added teh current item, then the children would have been added already!\r\n if (item.subItems) {\r\n item.subItems.forEach((subItem, index) => {\r\n if (index === 0) {\r\n subItem[parentTitleString] = item?.content?.title;\r\n subItem[parentGuidString] = item?.id;\r\n }\r\n recurseSelectedContentItem(subItem);\r\n })\r\n }\r\n }\r\n }\r\n\r\n function removeArticleFromSelectedList(item) {\r\n var newArray = [];\r\n\r\n //need to remove the item, all its children, and its parent.\r\n function getItemChildrenIds(item) {\r\n if (item.children) {\r\n item.children.forEach((child) => {\r\n idArray.push(child.id);\r\n if (child.children && child.children.length > 0) {\r\n getItemChildrenIds(child);//recursive call deselect child item till nth level\r\n }\r\n });\r\n }\r\n\r\n return (idArray);\r\n }\r\n var idArray = [];\r\n var idsToRemove = getItemChildrenIds(item);\r\n idsToRemove.push(item.parentId); //also need to remove the parent if it exists, it's just a listing page.\r\n\r\n selectedList.forEach((selectedItem) => {\r\n if (item.id !== selectedItem.id) {\r\n if (!idsToRemove.includes(selectedItem.id)) {\r\n newArray.push(selectedItem); //only keep the items that aren't the item just passed into this removal function, and aren't that item's children.\r\n }\r\n }\r\n })\r\n\r\n if (newArray.length > 0) {\r\n setSelectedList([...newArray]);\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n else {\r\n setSelectedList([]);\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n }\r\n }\r\n\r\n function setDownloadButtonState() {\r\n if (selectedDownloadType === selectedDownloadTypeArticle) {\r\n handleCheckboxClick(articleContentCopy.content[0])\r\n }\r\n\r\n if (selectedDownloadType === selectedDownloadTypePublication) {\r\n var newArray = [];\r\n setSelectedList(newArray);\r\n if (selectAllChecked) {\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n else {\r\n setDownloadButtonClassName(disableDownloadButtonClassName);\r\n }\r\n }\r\n else {\r\n setDownloadButtonClassName(enableDownloadButtonClassName);\r\n }\r\n }\r\n\r\n // function SetSelectedBinariesToDownload() {\r\n // var selectedBinariesList = [];\r\n // var tempSelectedSpinePubGuidList = [];\r\n // selectedList.forEach((selectedItem) => {\r\n // if (selectedItem.binaries) {\r\n // selectedItem.binaries.foreach((currentBinary) => {\r\n // if (currentBinary.isSelected) {\r\n // selectedBinariesList.push(currentBinary);\r\n // }\r\n // });\r\n // }\r\n // if (tempSelectedSpinePubGuidList.findIndex(a => a === selectedItem.id) === -1) {\r\n // tempSelectedSpinePubGuidList.push(selectedItem.id);\r\n // }\r\n // });\r\n\r\n // setSelectedSpinePubGuidList(tempSelectedSpinePubGuidList);\r\n // setListToDownload([...selectedBinariesList]);\r\n // }\r\n\r\n function annotationDropdownFilter(category) {\r\n if (category.category_guid !== \"cat0\") {\r\n setIsAllCategorySelected(false);\r\n if (selectedCategory.includes(category.category_guid)) {\r\n let categories = selectedCategory.filter(ele => ele !== category.category_guid);\r\n setSelectedCategory(prev => [...categories]);\r\n } else {\r\n setSelectedCategory(prev => [...prev, category.category_guid]);\r\n }\r\n } else {\r\n setIsAllCategorySelected(prev => {\r\n if (prev) {\r\n setSelectedCategory(prev => []);\r\n } else {\r\n let categories = annnotationCategories.map(ele => ele.category_guid);\r\n setSelectedCategory(prev => [...categories]);\r\n }\r\n return !prev\r\n });\r\n }\r\n document.dispatchEvent(new CustomEvent('dd:requestClose'));\r\n }\r\n\r\n function accessibleCheck(e, type) {\r\n if (e.key === \"Enter\") {\r\n setSelectedAnnotationType(type);\r\n }\r\n }\r\n\r\n function showSearchbar() {\r\n const searchbar = document.getElementById('collection-page-search');\r\n if (!UTILITIESHELPER.isObjectNullorEmpty(searchbar?.style)) { searchbar.style.display = 'block'; }\r\n }\r\n\r\n const downloadAlertMessage = () => {\r\n function closeModal() {\r\n setDownloadAlert(false);\r\n }\r\n return (\r\n
    \r\n
    \r\n

    {ARTICLE_DOWNLOAD.HEADER}

    \r\n \r\n
    \r\n
    \r\n

    {ARTICLE_DOWNLOAD.BODY}

    \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n //Styling for the download panel loader\r\n const downloadLoaderStyle = {\r\n display: downloadClicked ? 'inline' : 'none'\r\n }\r\n const downloadLoaderForBinaries = {\r\n display: isBinaryLoaded ? 'inline' : 'none'\r\n }\r\n return (\r\n <>\r\n
    36), 'screen-darken-overlay': !shouldBeFixed,\r\n 'reading-mode-screen-darken-overlay-fixed': isReadingMode && shouldBeFixed\r\n })}\r\n onClick={() => {\r\n showSearchbar();\r\n setDownloadPanelOpen(false)\r\n }} />\r\n
    36), 'download-panel ': !shouldBeFixed,\r\n 'reading-mode-download-panel-fixed': isReadingMode && shouldBeFixed,\r\n })}\r\n style={{ top: shouldBeFixed ? panel : 82 }}\r\n >\r\n
    \r\n
    \r\n

    {getLabel(\"a_DownloadToWord\", \"Download\")}

    \r\n \r\n
    \r\n
    \r\n
    setSelectedDownloadType(selectedDownloadTypeArticle)}>\r\n \r\n \r\n
    \r\n {articleContentCopy.content.length > 0 && articleContentCopy.content[0].binaries?.length > 0 &&\r\n
    \r\n
    { setShowArticleBinaries(prevVal => !prevVal); }}>\r\n
    \r\n {getLabel(\"b_BinaryDownloadSelectDocuments\", \"Select Documents\")}\r\n
    \r\n
    \r\n
    \r\n 0 && showArticleBinaries}>\r\n {\r\n
    \r\n\r\n { /*TODO: Refactor*/}\r\n\r\n
    \r\n handleIncludeArticleTextForArticleOnlClick(articleContentCopy.content[0])}\r\n />\r\n\r\n {articleContentCopy.content[0].binaries?.map((child, binaryIndex) => {\r\n return (\r\n
    \r\n handleBinaryCheckboxForArticleOnlyClick(articleContentCopy.content[0], child)}\r\n disabled={selectedDownloadType !== selectedDownloadTypeArticle}\r\n />\r\n
    \r\n )\r\n })}\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n }\r\n \r\n
    0 })} tabIndex=\"1\">\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    setSelectedAnnotationType(\"viewAll\")} onKeyDown={(e) => accessibleCheck(e, \"viewAll\")} tabIndex={0}>\r\n \r\n \r\n
    \r\n
    setSelectedAnnotationType(\"Highlights\")} onKeyDown={(e) => accessibleCheck(e, \"Highlights\")} tabIndex={0}>\r\n \r\n \r\n
    \r\n
    setSelectedAnnotationType(\"Comments\")} onKeyDown={(e) => accessibleCheck(e, \"Comments\")} tabIndex={0}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n //added this condition to avoid click event when no data available, even though we disabled but still check box is click able so needed this check\r\n if (articleLabels.length > 0) {\r\n setSelectedDownloadType(selectedDownloadTypePublication)\r\n }\r\n }}>\r\n \r\n \r\n
    \r\n
    0 && articleContentCopy.content[0].binaries?.length > 0 && includeAnnotationsChecked },\r\n { 'download-panel-scrollbox-selectdocument': articleContentCopy.content.length > 0 && articleContentCopy.content[0].binaries?.length > 0 && !includeAnnotationsChecked })} tabIndex=\"1\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {articleLabels.length > 0 &&\r\n
    \r\n accessibleCheckboxAll(e)}\r\n disabled={selectedDownloadType !== selectedDownloadTypePublication}\r\n />\r\n
    }\r\n {articleLabels.length > 0 && articleLabels.map((item) => {\r\n var isArticleSelectedState = isArticleSelected(item.id);\r\n return (\r\n
    \r\n
    \r\n handleCheckboxClick(item)}\r\n disabled={selectedDownloadType !== selectedDownloadTypePublication}\r\n showBinaryPanel={isArticleSelectedState && (item?.binaries?.length > 0 ? true : false) && (selectedDownloadType === selectedDownloadTypePublication)}\r\n displayBinaryHadler={displayBinaryHadler}\r\n parentId={item.id}\r\n binaryCount={item?.binaries?.length > 0 ? item.binaries.length : 0}\r\n accordianState={(showHideBinary && displayBinary === item.id && isArticleSelectedState) === true ? \"close\" : \"open\"}\r\n />\r\n \r\n
    \r\n handleIncludeArticleTextClick(item)}\r\n />\r\n
    \r\n {item.binaries?.map((grandchild, index) => {\r\n return (\r\n
    \r\n
    \r\n e.id === item.id))}\r\n onChange={() => handleBinaryCheckboxClick(item, grandchild)}\r\n disabled={false}\r\n />\r\n
    \r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n {generateLabelCheckboxes(item.children, 1)}\r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n setDownloadClicked(true)\r\n }}>{getLabel(\"b_BinaryDownloadButton\", \"DOWNLOAD\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {downloadAlertMessage()}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nDownloadPanel.propsTypes = {\r\n currentArticleHtml: \"Html\"\r\n}\r\n\r\nexport default DownloadPanel;","\r\nimport React from 'react';\r\nimport { useReadingModeContext } from '../../contexts/ReadingModeContext';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\n\r\nconst ToggleReadingMode = ({ handleClick,fixedToolContainerStyleTop }) => {\r\n\r\n const { isReadingMode, setIsReadingMode } = useReadingModeContext();\r\n const { setDownloadPanelOpen } = usePageContext();\r\n \r\n const { getLabel } = usePageContextLabels();\r\n //Styling for reading mode button\r\n const toggleReadingbutton = { top: isReadingMode ? 10 : fixedToolContainerStyleTop }\r\n return (\r\n
    \r\n {\r\n handleClick();\r\n setIsReadingMode('toggle');\r\n // Close download to word when switched from Article mode and vise versa\r\n setDownloadPanelOpen(false);\r\n }}\r\n title={getLabel('a_ReadingMode', 'Reading Mode')}\r\n >\r\n
    \r\n )\r\n}\r\n\r\nToggleReadingMode.defaultProps = {\r\n handleClick: () => { }\r\n}\r\n\r\nexport default ToggleReadingMode;\r\n","import React from \"react\";\r\nimport { usePageContext, usePageContextLabels } from \"../../contexts/PageContext\";\r\n\r\n\r\nconst ArticleNotification = () => {\r\n const { context } = usePageContext();\r\n const { getLabel } = usePageContextLabels();\r\n\r\n let parentGuide = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}/${context.pageSelectedSection}/${context.pageSelectedPublicationTitle}/${context.pageSelectedPublicationGUID}`;\r\n\r\n return (\r\n
    \r\n  \r\n

    {getLabel(\"lbl_PubPortion\")} {decodeURI(context.pageSelectedPublicationTitle)}

    \r\n
    \r\n );\r\n}\r\n\r\nexport default ArticleNotification;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShowIf from '../../Common/ShowIf';\r\nfunction Trigger({ value, condition }) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nTrigger.propTypes = {\r\n condition:PropTypes.bool,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.node\r\n ]).isRequired\r\n}\r\n\r\n\r\nexport default Trigger;","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\nimport Trigger from './Trigger';\r\nimport { useUserPreferencesContext } from '../../../contexts/AnnotationsContext';\r\n\r\nfunction Dropdown({\r\n children,\r\n ddClassNames,\r\n triggerText,\r\n triggerEl,\r\n triggerClassNames,\r\n triggerDot,\r\n containerClassNames\r\n}) {\r\n const ref = useRef();\r\n const [open, setOpen] = useState(false);\r\n const { isDropDownCategoryOpen, setIsDropDownCategoryOpen } = useUserPreferencesContext();\r\n\r\n useEffect(() => {\r\n setOpen(isDropDownCategoryOpen);\r\n }, [isDropDownCategoryOpen])\r\n\r\n // event handlers\r\n function handleTriggerClick(e) {\r\n e.preventDefault();\r\n setIsDropDownCategoryOpen(!open);\r\n setOpen(!open);\r\n setTimeout(() => {\r\n const nextIndex = '#option-0';\r\n const nextOptionItem = document.querySelector(nextIndex);\r\n if (nextOptionItem) {\r\n nextOptionItem.focus();\r\n }\r\n }, 500)\r\n }\r\n\r\n function onKeyDown(e) {\r\n if (e.key === 'Enter' || (e.key === 'ArrowDown' && e.target.id === 'category-dropdown')) {\r\n handleTriggerClick(e);\r\n }\r\n }\r\n\r\n function getTrigger(text, altEl){\r\n if (altEl) return altEl;\r\n return ;\r\n }\r\n\r\n // memoize trigger\r\n const trigger = useMemo(() => {\r\n return getTrigger(triggerText, triggerEl)\r\n }, [triggerText, triggerEl]); //eslint-disable-line\r\n\r\n // build trigger classes\r\n const triggerClasses = cx({\r\n 'dd__trigger': true,\r\n 'dd__trigger--active': open,\r\n }, [triggerClassNames]);\r\n\r\n return (\r\n
    \r\n
    \r\n {trigger}\r\n
    \r\n {open &&
    {children}
    }\r\n
    \r\n );\r\n}\r\n\r\nDropdown.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n ddClassNames: PropTypes.string,\r\n triggerEl: PropTypes.node,\r\n triggerText: PropTypes.string,\r\n triggerClassNames: PropTypes.string,\r\n containerClassNames: PropTypes.string\r\n}\r\n\r\nDropdown.defaultProps = {\r\n ddClassNames: '',\r\n triggerText: 'Trigger Title',\r\n triggerEl: null,\r\n triggerClassNames: '',\r\n containerClassNames: ''\r\n}\r\n\r\nexport default Dropdown;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction Panel({ children, additionalClassNames }) {\r\n return (\r\n
    \r\n {children}\r\n
    \r\n )\r\n}\r\n\r\nPanel.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired,\r\n additionalClassNames: PropTypes.string\r\n}\r\n\r\nPanel.defaultProps = {\r\n additionalClassNames: ''\r\n}\r\n\r\nexport default Panel;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ScrollArea({ children, maxHeight, maxWidth, additionalClassNames }) {\r\n const styles = {};\r\n if (maxHeight !== null) {\r\n styles.maxHeight = maxHeight;\r\n }\r\n if (maxWidth !== null) {\r\n styles.maxWidth = maxWidth;\r\n }\r\n\r\n return (\r\n
    \r\n {children}\r\n
    \r\n )\r\n}\r\n\r\nScrollArea.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired,\r\n maxHeight: PropTypes.string,\r\n maxWidth: PropTypes.string,\r\n additionalClassNames: PropTypes.string\r\n}\r\n\r\nScrollArea.defaultProps = {\r\n maxHeight: null,\r\n maxWidth: null,\r\n additionalClassNames: ''\r\n}\r\n\r\nexport default ScrollArea;","import Dropdown from \"./Dropdown\";\r\nimport Trigger from \"./Trigger\";\r\nimport Panel from \"./Panel\";\r\nimport ScrollArea from \"./ScrollArea\";\r\n\r\nDropdown.Trigger = Trigger;\r\nDropdown.Panel = Panel;\r\nDropdown.ScrollArea = ScrollArea;\r\n\r\nexport default Dropdown;","import React from 'react';\r\nimport Dropdown from '../Annotations/Dropdown';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\n\r\nfunction CategoryTrigger({ selectedCategories }) {\r\n //styling for background category color\r\nconst backgroundColorStyle= {\r\n backgroundColor: selectedCategories.color\r\n }\r\n return (\r\n
    \r\n
    \r\n
    {selectedCategories.label}
    \r\n
    \r\n )\r\n}\r\n\r\nfunction CategoryItem({ category, selectedCategories, onClick, onEditClick, onDeleteClick, index }) {\r\n function handleClick() {\r\n onClick(category);\r\n }\r\n\r\n function handleEditClick(event) {\r\n onEditClick(category)\r\n event.stopPropagation();\r\n }\r\n\r\n function handleDeleteClick(event) {\r\n onDeleteClick(category)\r\n event.stopPropagation();\r\n }\r\n\r\n function onKeydown(e) {\r\n if (e.key === 'Enter') {\r\n onClick(category);\r\n document.querySelector('#an-modal-comment-input').focus();\r\n return;\r\n }\r\n const nextIndex = e.key === 'ArrowDown' ? '#option-' + (index + 1) : '#option-' + (index - 1);\r\n const nextOptionItem = document.querySelector(nextIndex);\r\n if (nextOptionItem) {\r\n nextOptionItem.focus();\r\n }\r\n }\r\n\r\n let classNames = 'option-item an-dd-category-item';\r\n if (selectedCategories.category_guid === category.category_guid) classNames += ' option-item ad-dd-category-item--selected';\r\n\r\n //styling for background category color\r\n const backgroundColorStyle= {\r\n backgroundColor: category.color\r\n } \r\n\r\n return (\r\n
    \r\n
    \r\n
    {category.label}
    \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\n\r\nfunction CategoryDropdown({ categories, selectedCategories, onSelect, onEditClick, onAddClick, onDeleteClick }) {\r\n const { getLabel } = usePageContextLabels();\r\n\r\n function handleSelect(category) {\r\n onSelect(category);\r\n }\r\n\r\n function handleAddClick(e) {\r\n e.stopPropagation();\r\n onAddClick();\r\n }\r\n\r\n function handleEditClick(category, index) {\r\n onEditClick(category, index);\r\n }\r\n\r\n function handleDeleteClick(category, index) {\r\n onDeleteClick(category, index);\r\n }\r\n\r\n const listItems = categories.map((c, index) => (\r\n handleEditClick(e, index)}\r\n onDeleteClick={(e) => handleDeleteClick(e, index)}\r\n />\r\n ))\r\n\r\n function getTriggerEl() {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {listItems}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CategoryDropdown;","import React, { useState, useRef } from 'react';\r\nimport { HexColorPicker } from 'react-colorful';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport cx from 'classnames';\r\nimport { useEffect } from 'react';\r\n\r\nfunction ColorPicker({ onUpdate, onSave, onClose, labelTxt, colour, isUpdate, classNames, isSidePanel, category_guid }) {\r\n const [label, setLabel] = useState(labelTxt);\r\n const [color, setColor] = useState(colour);\r\n const [isValidHex, setIsValidHex] = useState(true)\r\n const { getLabel } = usePageContextLabels();\r\n const ref = useRef();\r\n let btnRef=useRef();\r\n const regToCheckHex = /^#([0-9a-f]{3}){1,2}$/i;\r\n\r\n // close on outside click\r\n useOutsideClick(ref, handleOutsideClick);\r\n\r\n useEffect(() => {\r\n regToCheckHex.test(color) ? setIsValidHex(true) : setIsValidHex(false)\r\n }, [color]);//eslint-disable-line\r\n\r\n function handleOutsideClick() {\r\n onClose();\r\n }\r\n\r\n function handleLabelChange(e) {\r\n setLabel(e.target.value);\r\n }\r\n\r\n function handleAddClick() {\r\n if (btnRef.current) {\r\n btnRef.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n onSave({\r\n label,\r\n color\r\n });\r\n }\r\n\r\n function handleUpdateClick() {\r\n if (btnRef.current) {\r\n btnRef.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n onUpdate({\r\n category_guid,\r\n label,\r\n color\r\n });\r\n }\r\n\r\n function setChangedColor(changedColor){\r\n if(changedColor === '#NaNNaNNaN'){\r\n setColor('#FFFFFF')\r\n } else {\r\n setColor(changedColor)\r\n }\r\n }\r\n\r\n function handleCloseClick() {\r\n onClose();\r\n }\r\n\r\n function onInputChangeHandler(e){\r\n const value = e.target.value\r\n setColor(value)\r\n }\r\n\r\n function handleOnClick() {\r\n if (!isUpdate)\r\n handleAddClick();\r\n else\r\n handleUpdateClick();\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Hex Code
    \r\n \r\n
    \r\n 0) ? \"an-color-picker-add\" : \"hide\"}\r\n onClick={handleOnClick}\r\n >{!isUpdate ? getLabel('hh_Add', 'Add') : 'Update'}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default ColorPicker;\r\n","import React, { useState, useRef } from \"react\";\r\nimport {\r\n useUserPreferencesContext,\r\n ACTIONS,\r\n} from \"../../contexts/AnnotationsContext\";\r\nimport Dropdown from '../Common/Dropdown';\r\nimport { usePageContextLabels,usePageContext } from \"../../contexts/PageContext\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\nimport CategoryService from \"../../helpers/CategoryServices\";\r\nimport { useTocContext } from \"../../contexts/TocContext\";\r\n\r\n//const location = useLocation();\r\n\r\nfunction CategoryTrigger({ category }) {\r\n\r\n //Style for backgroundStyle for categoryTrigger\r\n const backgroundColorStyle = {\r\n backgroundColor: category.color\r\n }\r\n return (\r\n
    \r\n
    \r\n
    {category.label}
    \r\n
    \r\n )\r\n}\r\n\r\nfunction CategoryItem({ category, selected, onClick, onEditClick, onDeleteClick }) {\r\n function handleClick() {\r\n onClick(category);\r\n }\r\n\r\n let classNames = \"an-dd-category-item\";\r\n if (selected.category_guid === category.category_guid) classNames += \" ad-dd-category-item--selected\";\r\n\r\n //styling for background category color\r\n const backgroundColorStyle = {\r\n backgroundColor: category.color\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    {category.label}
    \r\n
    \r\n )\r\n}\r\n\r\n\r\nfunction CategoryDropdown({ categories, selected, onSelect, onClose, onSave, annotationNumber, bookmarkNumber, selectedCategoryId }) {\r\n const { getLabel } = usePageContextLabels();\r\n const [shouldShowDarkOverlay, setshouldShowDarkOverlay] = useState(true);\r\n const annotationNumbers = annotationNumber;\r\n let btnRef = useRef();\r\n\r\n function handleSelect(category) {\r\n onSelect(category);\r\n }\r\n\r\n function handleCloseClick() {\r\n setshouldShowDarkOverlay(false);\r\n onClose();\r\n }\r\n\r\n function handleSaveClick() {\r\n if (btnRef.current) {\r\n btnRef.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n onSave(selected);\r\n }\r\n\r\n let listItem = categories.filter(a => a.category_guid !== selectedCategoryId);\r\n const listItems = listItem.map((c, index) => (\r\n \r\n ))\r\n\r\n function getTriggerEl() {\r\n return ;\r\n }\r\n\r\n return (\r\n\r\n
    \r\n {shouldShowDarkOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n {getLabel(\r\n \"hh_ChooseCategoryForHighligh\",\r\n \"Choose a new category for your annotations\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {listItems}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    {getLabel(\"hh_DeleteUpdate\", \"Update Category of all related annotations:\")}\r\n   {annotationNumbers} {getLabel(\"hh_DeleteOutro\", \"annotation(s).\")}   {bookmarkNumber} {getLabel(\"hh_Bookmark\", \"bookmark(s)\")}
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n\r\n\r\n\r\nfunction AnnotationDelete({ categories, selected, onUpdate, onDelete, onClose, selectedCategoryid, sidePanelClose, isSidePanelOpen, annotationCount, bookmarkCount }) {\r\n const { getLabel } = usePageContextLabels();\r\n const { state: annState, dispatch } = useUserPreferencesContext();\r\n const [categorydropdown, setCategorydropdown] = useState(false);\r\n const [selectedCategory, setSelectedCategory] = useState(selected);\r\n const location = useLocation();\r\n const [shouldShowDarkOverlay, setshouldShowDarkOverlay] = useState(true);\r\n let btnRef = useRef();\r\n const { context, getMemberFirmID } = usePageContext(); //eslint-disable-line\r\n const { setTocAnnotations, setTocIconBookmark } = useTocContext();\r\n\r\n\r\n function handleDeleteClick() {\r\n if (btnRef.current) {\r\n btnRef.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n onDelete();\r\n\r\n }\r\n\r\n function handleCloseClick() {\r\n setshouldShowDarkOverlay(false);\r\n onClose();\r\n }\r\n function handleUpdateCategory() {\r\n setCategorydropdown(true)\r\n }\r\n function handleCategorySelect(category) {\r\n setSelectedCategory(category);\r\n document.dispatchEvent(new CustomEvent(\"dd:requestClose\"));\r\n }\r\n function handleClose() {\r\n setCategorydropdown(false);\r\n }\r\n const handleUpdateAnnotationDelete = async (category) => {\r\n const categoryDelete = await CategoryService.deleteCategory(location.pathname, selectedCategoryid, getMemberFirmID(), category.category_guid, true);\r\n if (categoryDelete) {\r\n dispatch({\r\n type: ACTIONS.CATEGORY_REMOVE,\r\n payload: {\r\n category_guid: selectedCategoryid,\r\n }\r\n });\r\n }\r\n var updatedBookmarks = annState?.bookmarks?.map(item => {\r\n if (item.category_guid === selectedCategoryid) {\r\n item.category_guid = category.category_guid;\r\n }\r\n return item;\r\n });\r\n dispatch({\r\n type: ACTIONS.BOOKMARKS_LOAD,\r\n payload: updatedBookmarks ? updatedBookmarks : [],\r\n });\r\n setTocIconBookmark(prev => {\r\n return prev.map(item => {\r\n if (item.category_guid === selectedCategoryid) {\r\n item.category_guid = category.category_guid;\r\n }\r\n return item;\r\n });\r\n });\r\n var updatedAnnotations = annState?.annotations?.map(item => {\r\n if (item.category_guid === selectedCategoryid) {\r\n item.category_guid = category.category_guid;\r\n }\r\n return item;\r\n });\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_LOAD,\r\n payload: updatedAnnotations ? updatedAnnotations : [],\r\n });\r\n setTocAnnotations(prev => {\r\n return prev.map(item => {\r\n if (item.category_guid === selectedCategoryid) {\r\n item.category_guid = category.category_guid;\r\n }\r\n return item;\r\n });\r\n });\r\n handleCloseClick();\r\n dispatch({ type: ACTIONS.MODAL_HIDE });\r\n if (isSidePanelOpen) {\r\n sidePanelClose();\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n {shouldShowDarkOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n {getLabel(\r\n \"hh_DeleteCategory\",\r\n \"Delete Category\"\r\n )}\r\n
    \r\n
    \r\n \r\n {getLabel(\"hh_DeleteIntro\", \"You are about to permanently delete {0} annotations.\").replace('{0}', annotationCount)}\r\n   {bookmarkCount} {getLabel(\"hh_Bookmark\", \"bookmark(s)\")}\r\n
    {getLabel(\"hh_DeleteIntroProceed\", \" Would you like to proceed?\")}
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {getLabel(\"hh_DeleteUpdate\", \"Update Category of all related annotations:\")} {annotationCount}\r\n {getLabel(\"hh_DeleteOutro\", \"annotation(s).\")}\r\n   {bookmarkCount} {getLabel(\"hh_Bookmark\", \"bookmark(s)\")}

    \r\n
    \r\n
    \r\n {categorydropdown && (\r\n \r\n )}\r\n
    \r\n );\r\n}\r\nexport default AnnotationDelete;","import React from \"react\";\r\n\r\nexport const AnnotationNotification = ({\r\n notificationText,\r\n closeNotification,\r\n}) => {\r\n return (\r\n
    \r\n  \r\n

    {notificationText}

    \r\n
    \r\n );\r\n};\r\n","import UTILITIESHELPER from \"./UtilitiesHelper\";\r\n\r\nexport const AnnotationHighlighter = (\r\n annotationRange,\r\n element,\r\n annotationColor,\r\n prefId\r\n) => {\r\n var /**\r\n * Attribute added by default to every highlight.\r\n * @type {string}\r\n */\r\n DATA_ATTR = \"data-highlighted\",\r\n /**\r\n * Attribute used to group highlight wrappers.\r\n * @type {string}\r\n */\r\n TIMESTAMP_ATTR = \"data-timestamp\",\r\n NODE_TYPE = {\r\n ELEMENT_NODE: 1,\r\n TEXT_NODE: 3,\r\n },\r\n /**\r\n * Don't highlight content of these tags.\r\n * @type {string[]}\r\n */\r\n IGNORE_TAGS = [\r\n \"SCRIPT\",\r\n \"STYLE\",\r\n \"SELECT\",\r\n \"OPTION\",\r\n \"BUTTON\",\r\n \"OBJECT\",\r\n \"APPLET\",\r\n \"VIDEO\",\r\n \"AUDIO\",\r\n \"CANVAS\",\r\n \"EMBED\",\r\n \"PARAM\",\r\n \"METER\",\r\n \"PROGRESS\",\r\n ];\r\n\r\n /**\r\n * Returns true if elements a i b have the same color.\r\n * @param {Node} a\r\n * @param {Node} b\r\n * @returns {boolean}\r\n */\r\n function haveSameColor(a, b) {\r\n return dom(a).color() === dom(b).color();\r\n }\r\n\r\n /**\r\n * Fills undefined values in obj with default properties with the same name from source object.\r\n * @param {object} obj - target object\r\n * @param {object} source - source object with default values\r\n * @returns {object}\r\n */\r\n \r\n\r\n /**\r\n * Returns array without duplicated values.\r\n * @param {Array} arr\r\n * @returns {Array}\r\n */\r\n function unique(arr) {\r\n return arr.filter(function(value, idx, self) {\r\n return self.indexOf(value) === idx;\r\n });\r\n }\r\n\r\n var el = element;\r\n\r\n var highlightOptions = {\r\n color: annotationColor,\r\n highlightedClass: \"highlighted\",\r\n contextClass: \"highlighter-context\",\r\n onRemoveHighlight: function() {\r\n return true;\r\n },\r\n onBeforeHighlight: function() {\r\n return true;\r\n },\r\n onAfterHighlight: function() {},\r\n };\r\n\r\n /**\r\n * Utility functions to make DOM manipulation easier.\r\n * @param {Node|HTMLElement} [el] - base DOM element to manipulate\r\n * @returns {object}\r\n */\r\n var dom = function(el) {\r\n return /** @lends dom **/ {\r\n /**\r\n * Adds class to element.\r\n * @param {string} className\r\n */\r\n addClass: function(className) {\r\n if (el.classList) {\r\n el.classList.add(className);\r\n } else {\r\n el.className += \" \" + className;\r\n }\r\n },\r\n\r\n /**\r\n * Removes class from element.\r\n * @param {string} className\r\n */\r\n removeClass: function(className) {\r\n if (el.classList) {\r\n el.classList.remove(className);\r\n } else {\r\n el.className = el.className.replace(\r\n new RegExp(\"(^|\\\\b)\" + className + \"(\\\\b|$)\", \"gi\"),\r\n \" \"\r\n );\r\n }\r\n },\r\n\r\n /**\r\n * Prepends child nodes to base element.\r\n * @param {Node[]} nodesToPrepend\r\n */\r\n prepend: function(nodesToPrepend) {\r\n var nodes = Array.prototype.slice.call(nodesToPrepend),\r\n i = nodes.length;\r\n\r\n while (i--) {\r\n el.insertBefore(nodes[i], el.firstChild);\r\n }\r\n },\r\n\r\n /**\r\n * Appends child nodes to base element.\r\n * @param {Node[]} nodesToAppend\r\n */\r\n append: function(nodesToAppend) {\r\n var nodes = Array.prototype.slice.call(nodesToAppend);\r\n\r\n for (var i = 0, len = nodes.length; i < len; ++i) {\r\n el.appendChild(nodes[i]);\r\n }\r\n },\r\n\r\n /**\r\n * Inserts base element after refEl.\r\n * @param {Node} refEl - node after which base element will be inserted\r\n * @returns {Node} - inserted element\r\n */\r\n insertAfter: function(refEl) {\r\n return refEl.parentNode.insertBefore(el, refEl.nextSibling);\r\n },\r\n\r\n /**\r\n * Inserts base element before refEl.\r\n * @param {Node} refEl - node before which base element will be inserted\r\n * @returns {Node} - inserted element\r\n */\r\n insertBefore: function(refEl) {\r\n return refEl.parentNode.insertBefore(el, refEl);\r\n },\r\n\r\n /**\r\n * Removes base element from DOM.\r\n */\r\n remove: function() {\r\n el.parentNode.removeChild(el);\r\n el = null;\r\n },\r\n\r\n /**\r\n * Returns true if base element contains given child.\r\n * @param {Node|HTMLElement} child\r\n * @returns {boolean}\r\n */\r\n contains: function(child) {\r\n return el !== child && el.contains(child);\r\n },\r\n\r\n /**\r\n * Wraps base element in wrapper element.\r\n * @param {HTMLElement} wrapper\r\n * @returns {HTMLElement} wrapper element\r\n */\r\n wrap: function(wrapper) {\r\n if (el.parentNode) {\r\n el.parentNode.insertBefore(wrapper, el);\r\n }\r\n\r\n wrapper.appendChild(el);\r\n return wrapper;\r\n },\r\n\r\n /**\r\n * Unwraps base element.\r\n * @returns {Node[]} - child nodes of unwrapped element.\r\n */\r\n unwrap: function() {\r\n var nodes = Array.prototype.slice.call(el.childNodes),\r\n wrapper;\r\n\r\n nodes.forEach(function(node) {\r\n wrapper = node?.parentNode;\r\n dom(node).insertBefore(node?.parentNode);\r\n dom(wrapper).remove();\r\n });\r\n\r\n return nodes;\r\n },\r\n\r\n /**\r\n * Returns array of base element parents.\r\n * @returns {HTMLElement[]}\r\n */\r\n parents: function() {\r\n var parent,\r\n path = [];\r\n\r\n while (!!(parent = el.parentNode)) {\r\n path.push(parent);\r\n el = parent;\r\n }\r\n\r\n return path;\r\n },\r\n\r\n /**\r\n * Normalizes text nodes within base element, ie. merges sibling text nodes and assures that every\r\n * element node has only one text node.\r\n * It should does the same as standard element.normalize, but IE implements it incorrectly.\r\n */\r\n normalizeTextNodes: function() {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.nodeType === NODE_TYPE?.TEXT_NODE) {\r\n while (\r\n el.nextSibling &&\r\n el.nextSibling.nodeType === NODE_TYPE?.TEXT_NODE\r\n ) {\r\n el.nodeValue += el.nextSibling.nodeValue;\r\n el.parentNode.removeChild(el.nextSibling);\r\n }\r\n } else {\r\n dom(el.firstChild).normalizeTextNodes();\r\n }\r\n dom(el.nextSibling).normalizeTextNodes();\r\n },\r\n\r\n /**\r\n * Returns element background color.\r\n * @returns {CSSStyleDeclaration.backgroundColor}\r\n */\r\n color: function() {\r\n return el.style.backgroundColor;\r\n },\r\n\r\n /**\r\n * Creates dom element from given html string.\r\n * @param {string} html\r\n * @returns {NodeList}\r\n */\r\n fromHTML: function(html) {\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = html;\r\n return div.childNodes;\r\n },\r\n\r\n /**\r\n * Returns first range of the window of base element.\r\n * @returns {Range}\r\n */\r\n getRange: function() {\r\n var selection = dom(el).getSelection(),\r\n range;\r\n\r\n if (selection.rangeCount > 0) {\r\n range = selection.getRangeAt(0);\r\n }\r\n\r\n return range;\r\n },\r\n\r\n /**\r\n * Removes all ranges of the window of base element.\r\n */\r\n removeAllRanges: function() {\r\n var selection = dom(el).getSelection();\r\n selection.removeAllRanges();\r\n },\r\n\r\n /**\r\n * Returns selection object of the window of base element.\r\n * @returns {Selection}\r\n */\r\n getSelection: function() {\r\n return dom(el)\r\n .getWindow()\r\n .getSelection();\r\n },\r\n\r\n /**\r\n * Returns window of the base element.\r\n * @returns {Window}\r\n */\r\n getWindow: function() {\r\n return dom(el).getDocument().defaultView;\r\n },\r\n\r\n /**\r\n * Returns document of the base element.\r\n * @returns {HTMLDocument}\r\n */\r\n getDocument: function() {\r\n // if ownerDocument is null then el is the document itself.\r\n return el.ownerDocument || el;\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Highlights current range.\r\n * @param {boolean} keepRange - Don't remove range after highlighting. Default: false.\r\n * @memberof TextHighlighter\r\n */\r\n\r\n var range = annotationRange,\r\n wrapper,\r\n createdHighlights,\r\n normalizedHighlights, //eslint-disable-line\r\n timestamp;\r\n\r\n if (!range || range.collapsed) {\r\n return;\r\n }\r\n\r\n if (highlightOptions.onBeforeHighlight(range) === true) {\r\n timestamp = +new Date();\r\n wrapper = createWrapper(highlightOptions);\r\n wrapper.setAttribute(TIMESTAMP_ATTR, timestamp);\r\n createdHighlights = highlightRange(range, wrapper);\r\n normalizedHighlights = normalizeHighlights(createdHighlights);\r\n }\r\n\r\n /**\r\n * Returns fore color of the highlighted text based on background color.\r\n * @param {bgColor} - background color in hexadecimal string.\r\n * @returns rgb\r\n */\r\n function textColor(bgColor) {\r\n var threshold = 130;\r\n\r\n var hRed = hexToR(bgColor);\r\n var hGreen = hexToG(bgColor);\r\n var hBlue = hexToB(bgColor);\r\n\r\n\r\n function hexToR(h) { return parseInt((cutHex(h)).substring(0, 2), 16) }\r\n function hexToG(h) { return parseInt((cutHex(h)).substring(2, 4), 16) }\r\n function hexToB(h) { return parseInt((cutHex(h)).substring(4, 6), 16) }\r\n function cutHex(h) { return (h.charAt(0) === \"#\") ? h.substring(1, 7) : h }\r\n\r\n var cBrightness = ((hRed * 299) + (hGreen * 587) + (hBlue * 114)) / 1000;\r\n if (cBrightness > threshold) { return \"#000000\"; } else { return \"#ffffff\"; }\r\n }\r\n\r\n /**\r\n * Creates wrapper for highlights.\r\n * TextHighlighter instance calls this method each time it needs to create highlights and pass options retrieved\r\n * in constructor.\r\n * @param {object} options - the same object as in TextHighlighter constructor.\r\n * @returns {HTMLElement}\r\n * @static\r\n */\r\n function createWrapper(options) {\r\n var foreColor = textColor(options.color);\r\n var mark = document.createElement(\"mark\");\r\n mark.style.backgroundColor = options.color;\r\n mark.style.color = foreColor;\r\n mark.className = options.highlightedClass;\r\n mark.id=prefId;\r\n return mark;\r\n }\r\n\r\n /**\r\n * Highlights range.\r\n * Wraps text of given range object in wrapper element.\r\n * @param {Range} range\r\n * @param {HTMLElement} wrapper\r\n * @returns {Array} - array of created highlights.\r\n */\r\n function highlightRange(range, wrapper) {\r\n if (!range || range.collapsed) {\r\n return [];\r\n }\r\n\r\n var result = refineRangeBoundaries(range),\r\n startContainer = result.startContainer,\r\n endContainer = result.endContainer,\r\n goDeeper = result.goDeeper,\r\n done = false,\r\n node = startContainer,\r\n highlights = [],\r\n highlight,\r\n wrapperClone,\r\n nodeParent;\r\n do {\r\n if (goDeeper && node?.nodeType === NODE_TYPE?.TEXT_NODE) {\r\n if (\r\n IGNORE_TAGS.indexOf(node?.parentNode.tagName) === -1 &&\r\n node?.nodeValue.trim() !== \"\"\r\n ) {\r\n wrapperClone = wrapper.cloneNode(true);\r\n wrapperClone.setAttribute(DATA_ATTR, true);\r\n nodeParent = node?.parentNode;\r\n\r\n // highlight if a node is inside the el\r\n if (dom(el).contains(nodeParent) || nodeParent === el) {\r\n highlight = dom(node).wrap(wrapperClone);\r\n highlights.push(highlight);\r\n }\r\n }\r\n\r\n goDeeper = false;\r\n }\r\n if (\r\n node === endContainer &&\r\n !(endContainer.hasChildNodes() && goDeeper)\r\n ) {\r\n done = true;\r\n }\r\n\r\n if (node?.tagName && IGNORE_TAGS.indexOf(node?.tagName) > -1) {\r\n if (endContainer.parentNode === node) {\r\n done = true;\r\n }\r\n goDeeper = false;\r\n }\r\n if (goDeeper && node?.hasChildNodes()) {\r\n node = node?.firstChild;\r\n } else if (node?.nextSibling) {\r\n node = node?.nextSibling;\r\n goDeeper = true;\r\n } else {\r\n node = node?.parentNode;\r\n goDeeper = false;\r\n }\r\n } while (!done);\r\n\r\n return highlights;\r\n }\r\n\r\n /**\r\n * Takes range object as parameter and refines it boundaries\r\n * @param range\r\n * @returns {object} refined boundaries and initial state of highlighting algorithm.\r\n */\r\n function refineRangeBoundaries(range) {\r\n var startContainer = range.startContainer,\r\n endContainer = range.endContainer,\r\n ancestor = range.commonAncestorContainer,\r\n goDeeper = true;\r\n\r\n if (range.endOffset === 0) {\r\n while (\r\n !endContainer.previousSibling &&\r\n endContainer.parentNode !== ancestor\r\n ) {\r\n endContainer = endContainer.parentNode;\r\n }\r\n endContainer = endContainer.previousSibling;\r\n } else if (endContainer.nodeType === NODE_TYPE?.TEXT_NODE) {\r\n if (range.endOffset < endContainer.nodeValue.length) {\r\n endContainer.splitText(range.endOffset);\r\n }\r\n } else if (range.endOffset > 0) {\r\n endContainer = endContainer.childNodes.item(range.endOffset - 1);\r\n }\r\n\r\n if (startContainer.nodeType === NODE_TYPE?.TEXT_NODE) {\r\n if (range.startOffset === startContainer.nodeValue.length) {\r\n goDeeper = false;\r\n } else if (range.startOffset > 0) {\r\n startContainer = startContainer.splitText(range.startOffset);\r\n if (endContainer === startContainer.previousSibling) {\r\n endContainer = startContainer;\r\n }\r\n }\r\n } else if (range.startOffset < startContainer.childNodes.length) {\r\n startContainer = startContainer.childNodes.item(range.startOffset);\r\n } else {\r\n startContainer = startContainer.nextSibling;\r\n }\r\n\r\n return {\r\n startContainer: startContainer,\r\n endContainer: endContainer,\r\n goDeeper: goDeeper,\r\n };\r\n }\r\n\r\n /**\r\n * Sorts array of DOM elements by its depth in DOM tree.\r\n * @param {HTMLElement[]} arr - array to sort.\r\n * @param {boolean} descending - order of sort.\r\n */\r\n function sortByDepth(arr, descending) {\r\n arr.sort(function(a, b) {\r\n return (\r\n dom(descending ? b : a).parents().length -\r\n dom(descending ? a : b).parents().length\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Normalizes highlights. Ensures that highlighting is done with use of the smallest possible number of\r\n * wrapping HTML elements.\r\n * Flattens highlights structure and merges sibling highlights. Normalizes text nodes within highlights.\r\n * @param {Array} highlights - highlights to normalize.\r\n * @returns {Array} - array of normalized highlights. Order and number of returned highlights may be different than\r\n * input highlights.\r\n */\r\n function normalizeHighlights(highlights) {\r\n let normalizedHighlights;\r\n\r\n flattenNestedHighlights(highlights);\r\n //mergeSiblingHighlights(highlights);\r\n\r\n // omit removed nodes\r\n normalizedHighlights = highlights.filter(function(hl) {\r\n return hl.parentElement ? hl : null;\r\n });\r\n\r\n normalizedHighlights = unique(normalizedHighlights);\r\n normalizedHighlights.sort(function(a, b) {\r\n return a.offsetTop - b.offsetTop || a.offsetLeft - b.offsetLeft;\r\n });\r\n\r\n return normalizedHighlights;\r\n }\r\n\r\n /**\r\n * Flattens highlights structure.\r\n * Note: this method changes input highlights - their order and number after calling this method may change.\r\n * @param {Array} highlights - highlights to flatten.\r\n */\r\n function flattenNestedHighlights(highlights) {\r\n var again\r\n //,self = this\r\n ;\r\n\r\n sortByDepth(highlights, true);\r\n\r\n function flattenOnce() {\r\n var again = false;\r\n\r\n highlights.forEach(function(hl, i) {\r\n var parent = hl.parentElement,\r\n parentPrev = parent.previousSibling,\r\n parentNext = parent.nextSibling;\r\n\r\n if (isHighlight(parent)) {\r\n if (!haveSameColor(parent, hl)) {\r\n if (!hl.nextSibling) {\r\n dom(hl).insertBefore(parentNext || parent);\r\n again = true;\r\n }\r\n\r\n if (!hl.previousSibling) {\r\n dom(hl).insertAfter(parentPrev || parent);\r\n again = true;\r\n }\r\n\r\n if (!parent.hasChildNodes()) {\r\n dom(parent).remove();\r\n }\r\n } else {\r\n parent.replaceChild(hl.firstChild, hl);\r\n highlights[i] = parent;\r\n again = true;\r\n }\r\n }\r\n });\r\n\r\n return again;\r\n }\r\n\r\n do {\r\n again = flattenOnce();\r\n } while (again);\r\n }\r\n\r\n /**\r\n * Merges sibling highlights and normalizes descendant text nodes.\r\n * Note: this method changes input highlights - their order and number after calling this method may change.\r\n * @param highlights\r\n */\r\n /*function mergeSiblingHighlights(highlights) {\r\n //var self = this;\r\n\r\n function shouldMerge(current, node) {\r\n return (\r\n node &&\r\n node?.nodeType === NODE_TYPE?.ELEMENT_NODE &&\r\n haveSameColor(current, node) &&\r\n isHighlight(node)\r\n );\r\n }\r\n\r\n highlights.forEach(function(highlight) {\r\n var prev = highlight.previousSibling,\r\n next = highlight.nextSibling;\r\n\r\n if (shouldMerge(highlight, prev)) {\r\n dom(highlight).prepend(prev.childNodes);\r\n dom(prev).remove();\r\n }\r\n if (shouldMerge(highlight, next)) {\r\n dom(highlight).append(next.childNodes);\r\n dom(next).remove();\r\n }\r\n\r\n dom(highlight).normalizeTextNodes();\r\n });\r\n }\r\n*/ \r\n /**\r\n * Returns true if element is a highlight.\r\n * All highlights have 'data-highlighted' attribute.\r\n * @param el - element to check.\r\n * @returns {boolean}\r\n */\r\n function isHighlight(el) {\r\n return (\r\n el && el.nodeType === NODE_TYPE?.ELEMENT_NODE && el.hasAttribute(DATA_ATTR)\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Rebuilds and returns the range\r\n * @param rangePos - element with range start and end.\r\n * @returns range\r\n */\r\nexport function rebuildRange(rangePos) {\r\n var containerEl = document.getElementsByClassName(\r\n \"article-content-container\"\r\n )[0];\r\n var charIndex = 0,\r\n range = document.createRange();\r\n range.setStart(containerEl, 0);\r\n range.collapse(true);\r\n var nodeStack = [containerEl],\r\n node,\r\n foundStart = false,\r\n stop = false;\r\n\r\n while (!stop && (node = nodeStack.pop())) {\r\n if (node?.nodeType === 3) {\r\n var nextCharIndex = charIndex + node?.length;\r\n if (\r\n !foundStart &&\r\n rangePos.start >= charIndex &&\r\n rangePos.start <= nextCharIndex\r\n ) {\r\n range.setStart(node, rangePos.start - charIndex);\r\n foundStart = true;\r\n }\r\n if (\r\n foundStart &&\r\n rangePos.end >= charIndex &&\r\n rangePos.end <= nextCharIndex\r\n ) {\r\n range.setEnd(node, rangePos.end - charIndex);\r\n stop = true;\r\n }\r\n charIndex = nextCharIndex;\r\n } else {\r\n var i = node?.childNodes.length;\r\n while (i--) {\r\n nodeStack.push(node?.childNodes[i]);\r\n }\r\n }\r\n }\r\n return range;\r\n}\r\n\r\n/**\r\n * Gets text length\r\n * @param start - starting position of range.\r\n * @param end - ending position of range.\r\n * @returns textLength\r\n */\r\nfunction getTextLength(start, end) {\r\n var textLength;\r\n var rangePos = {\r\n start: start,\r\n end: end,\r\n };\r\n var selRange = rebuildRange(rangePos);\r\n var sel = document.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(selRange);\r\n textLength = document.getSelection().toString().length;\r\n return textLength;\r\n}\r\n\r\n/**\r\n * Gets Range Position of text to be highlighted\r\n * @param preSelectionRange - cloned range.\r\n * @param range - actual range.\r\n * @param selectedTextLength - initial range of selected text.\r\n * @returns range position of text to be highlighted\r\n */\r\nexport function rangeStartEndPosition(\r\n preSelectionRange,\r\n range,\r\n selectedTextLength\r\n) {\r\n let rangePosition;\r\n var element = document.getElementsByClassName(\"article-content-container\")[0];\r\n\r\n preSelectionRange.selectNodeContents(element);\r\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\r\n var start = preSelectionRange.toString().length;\r\n var end = start + range.toString().length;\r\n if (selectedTextLength > 1000) {\r\n end = start + 1000;\r\n var textLength = getTextLength(start, end);\r\n while (textLength < 1000) {\r\n let textSelLength;\r\n end = end + 1;\r\n textSelLength = getTextLength(start, end);\r\n if (textSelLength === 1000) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n rangePosition = {\r\n start: start,\r\n end: end,\r\n };\r\n\r\n return rangePosition;\r\n}\r\n\r\nfunction getElementRefrence(elementId){\r\n return document.getElementById(elementId);\r\n}\r\n\r\n// get the element selected for further annotation operations\r\nfunction getDocumentSelection(elementReference){\r\n var divRange = document.createRange();\r\n var reannotateSelection = window.getSelection();\r\n divRange.selectNodeContents(elementReference);\r\n reannotateSelection.removeAllRanges();\r\n reannotateSelection.addRange(divRange);\r\n return { documentSelection :document.getSelection(),selectionRange: reannotateSelection};\r\n}\r\n\r\nexport function getAnnCategoryColor(CategoryList, AnnotationCategory) {\r\n const objIndex = CategoryList.findIndex(\r\n (obj) => obj.id === AnnotationCategory\r\n );\r\n if (objIndex !== -1) {\r\n return CategoryList[objIndex].color;\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function setCustomSelection(ann) {\r\n var el = getElementRefrence(ann.closest_guid);\r\n if (el) {\r\n const selectedObject = getDocumentSelection(el)\r\n const selectedText = selectedObject.documentSelection;\r\n\r\n if (selectedText.rangeCount > 0) {\r\n // for regenerating the range of existing valid annotation\r\n var wholeArticleElement = document.getElementsByClassName(\r\n \"article-content-container\"\r\n )[0];\r\n const content = selectedText.toString();\r\n var exactContentMatch = content.includes(ann.content)\r\n if (exactContentMatch === true && wholeArticleElement.innerHTML.includes(ann.raw_content)) {\r\n //Using annotation id instead of closest guid for uniquily identifying the divs\r\n var customDiv = \"\" + ann.raw_content + \"\"\r\n wholeArticleElement.innerHTML = wholeArticleElement.innerHTML.replace(ann.raw_content, customDiv);\r\n var annotatedEl = getElementRefrence('rerangeAnnotation_' + ann.annotation_guid);\r\n\r\n // check if the exact element in the matched\r\n if (annotatedEl !== null && !UTILITIESHELPER.isStringNullorEmpty(ann.closest_guid)) {\r\n const annotatedselectedTextObject = getDocumentSelection(annotatedEl);\r\n const annotatedselectedText = annotatedselectedTextObject.documentSelection;\r\n if (annotatedselectedText.rangeCount > 0) {\r\n const regeneratedRange = annotatedselectedText.getRangeAt(0);\r\n const annotationClonedContent = regeneratedRange.cloneContents();\r\n let recheckedPreSelectionRange = regeneratedRange.cloneRange();\r\n const tmpEl = document.createElement(\"div\");\r\n tmpEl.append(annotationClonedContent);\r\n const rawContent = tmpEl.innerHTML;\r\n const content = annotatedselectedText.toString();\r\n const selectedTextLength = document.getSelection().toString().length;\r\n var rangePosition = rangeStartEndPosition(\r\n recheckedPreSelectionRange,\r\n regeneratedRange,\r\n selectedTextLength\r\n );\r\n let payload = {\r\n raw_content: rawContent,\r\n content: content,\r\n range_position_start: rangePosition.start,\r\n range_position_end: rangePosition.end,\r\n //preSelectionRange: recheckedPreSelectionRange,\r\n //selectedTextLength,\r\n is_annotations_version_updated: true\r\n }\r\n selectedObject.selectionRange.removeAllRanges();\r\n return payload;\r\n }\r\n }\r\n // when the content matches but the raw_content does not match\r\n // that means we have the senario where the dom does not match \r\n // and this annotation should be marked as deleted\r\n else {\r\n selectedObject.selectionRange.removeAllRanges();\r\n ann.is_annotations_version_updated = false;\r\n ann.content = \"\";\r\n return ann\r\n }\r\n } else {\r\n // highlight whole div where the exact content does not match\r\n //Highlight only 1000 character - as per the requirement\r\n const range = selectedText.getRangeAt(0) > 1000 ? 1000 : selectedText.getRangeAt(0);\r\n const cloned = range.cloneContents();\r\n var recheckedPreSelectionRange = range.cloneRange();\r\n const tmpEl = document.createElement(\"div\");\r\n tmpEl.append(cloned);\r\n const rawContent = tmpEl.innerHTML;\r\n\r\n const selectedTextLength = document.getSelection().toString().length;\r\n let rangePosition = rangeStartEndPosition(\r\n recheckedPreSelectionRange,\r\n range,\r\n selectedTextLength\r\n );\r\n\r\n let payload = {\r\n raw_content: rawContent,\r\n content: content,\r\n range_position_start: rangePosition.start,\r\n range_position_end: rangePosition.end,\r\n //preSelectionRange: recheckedPreSelectionRange,\r\n //selectedTextLength,\r\n is_annotations_version_updated: true\r\n }\r\n selectedObject.selectionRange.removeAllRanges();\r\n return payload;\r\n }\r\n }\r\n }\r\n else {\r\n ann.isAnnotationsVersionUpdated = false;\r\n ann.content = \"\";\r\n return ann;\r\n }\r\n}\r\n\r\nexport function generateAnnotationPayload(annObject, latestArticleVersion) {\r\n const annPayload = {\r\n category: annObject.category,\r\n comment: annObject.comment,\r\n content: annObject.content,\r\n id: annObject.id,\r\n rangePosition: annObject.rangePosition,\r\n rawContent: annObject.rawContent,\r\n sidePanelEdit: true,\r\n pageURL: annObject.pageURL,\r\n pageBreadcrumb: annObject.pageBreadcrumb,\r\n closestGuid: annObject.closestGuid,\r\n date: new Date(),\r\n isAnnotationsVersionUpdated: annObject.isAnnotationsVersionUpdated,\r\n version: latestArticleVersion,\r\n checked: true \r\n };\r\n\r\n return annPayload;\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n useUserPreferencesContext,\r\n ACTIONS,\r\n} from \"../../contexts/AnnotationsContext\";\r\nimport CategoryDropdown from \"./CategoryDropdown\";\r\nimport ColorPicker from \"./ColorPicker\";\r\nimport AnnotationDelete from \"./AnnotationDelete\";\r\nimport { usePageContextLabels, usePageContext } from \"../../contexts/PageContext\";\r\nimport ANNSERVICES from \"../../helpers/AnnotationServices\";\r\nimport ARTICLEHELPERS from \"../../helpers/ArticleHelpers\";\r\nimport LINKHELPERS from \"../../helpers/LinkHelpers\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { AnnotationNotification } from \"./AnnotationNotification\";\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { rangeStartEndPosition } from \"../../helpers/AnnotationHighlightHelper\";\r\nimport { useTocContext } from \"../../contexts/TocContext\";\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport CONTEXTHELPERS from \"../../helpers/ContextHelpers\";\r\nimport CategoryService from \"../../helpers/CategoryServices\";\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport { logs } from \"../../helpers/log\";\r\nimport { APPLICATION_INSIGHTS_CONSTANTS, LOCAL_STORAGE_CONSTANTS, SESSION_STORAGE_CONSTANTS } from \"../Constants/Constants\";\r\n\r\nfunction AnnotationModal({\r\n content,\r\n rawContent,\r\n range,\r\n preSelectionRange,\r\n selectedTextLength,\r\n closestGuid\r\n}) {\r\n const MAX_COMMENT_LENGTH = 1000;\r\n const { state: annState, dispatch } = useUserPreferencesContext();\r\n const [annotationCategories, setAnnotationCategories] = useState(annState?.categories?.filter(item => !item.is_specific_to_bookmark));\r\n const [selectedCategory, setSelectedCategory] = useState(annotationCategories ? annotationCategories[0] : []);\r\n const [editableCategory, setEditableCategory] = useState({\r\n category: {},\r\n isEditable: false,\r\n });\r\n const [isPickerShown, setPickerShown] = useState(false);\r\n const [isDeleteAnnotationShown, setDeleteAnnotationShown] = useState(false);\r\n const [comment, setComment] = useState(\"\");\r\n const [showNotification, setShowNotification] = useState(false);\r\n const { getLabel } = usePageContextLabels();\r\n const location = useLocation();\r\n const [PageURL] = useState(LINKHELPERS.sanitizeUrl(location.pathname));\r\n const { annotationPanelOpen, setAnnotationPanelOpen, context, getMemberFirmID } = usePageContext(false);//eslint-disable-line\r\n const [shouldShowDarkOverlay, setshouldShowDarkOverlay] = useState(true);\r\n const { setTocAnnotations } = useTocContext();\r\n const { setTocIconBookmark } = useTocContext();\r\n let btnRef = useRef();\r\n const { guidebookArticle } = useGuidebookTocContext();\r\n const { articleVersion } = useArticleContext();\r\n const { setIsDropDownCategoryOpen } = useUserPreferencesContext();\r\n const [annotationsCount, setAnnotationsCount] = useState();\r\n const [bookmarksCount, setBookmarksCount] = useState();\r\n useEffect(() => {\r\n if (selectedTextLength > 1000) {\r\n setShowNotification(true);\r\n }\r\n }, [selectedTextLength]);\r\n\r\n function handleCategoryAddClick() {\r\n setPickerShown(true);\r\n setEditableCategory({ category: {}, isEditable: false });\r\n }\r\n\r\n function handleCategoryEditClick(category) {\r\n setPickerShown(true);\r\n setEditableCategory({ category: category, isEditable: true });\r\n }\r\n async function handleCategoryDeleteClick(category) {\r\n setEditableCategory({ category: category, isEditable: true })\r\n const categoryDelete = await CategoryService.deleteCategory(location.pathname, category.category_guid, getMemberFirmID(), null, false);\r\n setAnnotationsCount(categoryDelete.number_annotation_linked);\r\n setBookmarksCount(categoryDelete.number_Bookmark_linked)\r\n setDeleteAnnotationShown(true);\r\n }\r\n function handleCategorySelect(category) {\r\n setIsDropDownCategoryOpen(false);\r\n setSelectedCategory(category);\r\n document.dispatchEvent(new CustomEvent(\"dd:requestClose\"));\r\n }\r\n\r\n function handlePickerClose() {\r\n setPickerShown(false);\r\n }\r\n\r\n function handleCloseClick() {\r\n setIsDropDownCategoryOpen(false);\r\n setshouldShowDarkOverlay(false);\r\n dispatch({ type: ACTIONS.MODAL_HIDE });\r\n }\r\n\r\n const handlePickerSave = async (category) => {\r\n category.category_guid = await CategoryService.createCategory(location.pathname,\r\n category, getMemberFirmID()\r\n );\r\n dispatch({\r\n type: ACTIONS.CATEGORY_CREATE,\r\n payload: category,\r\n });\r\n setPickerShown(false);\r\n setSelectedCategory(category);\r\n };\r\n\r\n const handlePickerUpdate = async (category) => {\r\n\r\n category.category_guid = await CategoryService.updateCategory(location.pathname, category, category.category_guid, getMemberFirmID());\r\n\r\n dispatch({\r\n type: ACTIONS.CATEGORY_UPDATE,\r\n payload: category,\r\n });\r\n\r\n setPickerShown(false);\r\n setSelectedCategory(category);\r\n };\r\n\r\n useEffect(() => {\r\n setTocIconBookmark(annState.bookmarks);\r\n }, [annState.bookmarks]); //eslint-disable-line\r\n\r\n useEffect(() => {\r\n let category = annState?.categories?.filter(item => !item.is_specific_to_bookmark);\r\n if (JSON.stringify(category) !== JSON.stringify(annotationCategories)) {\r\n setAnnotationCategories(category ? category : []);\r\n }\r\n }, [annState.categories,annotationCategories]);\r\n\r\n\r\n const handleDelete = async () => {\r\n const categoryDelete = await CategoryService.deleteCategory(location.pathname, editableCategory.category.category_guid, getMemberFirmID(), null, true);\r\n if (categoryDelete) {\r\n dispatch({\r\n type: ACTIONS.CATEGORY_REMOVE,\r\n payload: { category_guid: editableCategory.category.category_guid },\r\n });\r\n\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_REMOVE_MULTIPLE,\r\n payload: annState.annotations.filter(i => i.category_guid === editableCategory.category.category_guid).map(item => item.annotation_guid),\r\n });\r\n setTocIconBookmark(prev => {\r\n return prev.filter(i => i.category_guid !== editableCategory.category.category_guid);\r\n });\r\n\r\n dispatch({\r\n type: ACTIONS.BOOKMARK_BULK_REMOVE,\r\n payload: annState.bookmarks.filter(i => i.category_guid === editableCategory.category.category_guid).map(item => item.bookmark_guid),\r\n });\r\n setTocAnnotations(prev => {\r\n return prev.filter(i => i.category_guid !== editableCategory.category.category_guid);\r\n });\r\n setDeleteAnnotationShown(false);\r\n }\r\n }\r\n\r\n function handleAnnotationDeleteClose() {\r\n setDeleteAnnotationShown(false)\r\n }\r\n\r\n function handleCommentChange(e) {\r\n const value = e.target.value;\r\n setComment(value.slice(0, MAX_COMMENT_LENGTH));\r\n }\r\n\r\n // function getNodeIndex(n) {\r\n // var i = 0;\r\n // if (n) {\r\n // while ((n = n.previousSibling)) i++;\r\n // }\r\n // return i;\r\n // }\r\n\r\n const handleSaveClick = async () => {\r\n if (btnRef.current) {\r\n btnRef.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n var rangePosition = rangeStartEndPosition(\r\n preSelectionRange,\r\n range,\r\n selectedTextLength\r\n );\r\n\r\n let payload = {\r\n category_guid: selectedCategory.category_guid,\r\n page_url: PageURL ?? '',\r\n reference_identifier: CONTEXTHELPERS.getGUIDFromContext(context),\r\n raw_content: rawContent,\r\n content: content,\r\n range_position_start: rangePosition.start,\r\n range_position_end: rangePosition.end,\r\n closest_guid: closestGuid,\r\n comment: (comment.trim() && comment.trim().length > 0) ? comment : \"\",\r\n version: guidebookArticle?.version ?? articleVersion,\r\n page_bread_crumb: ARTICLEHELPERS.getBreadcrumbData(),\r\n is_annotations_version_updated: false,\r\n checked: false\r\n };\r\n payload = await ANNSERVICES.createAnnotation(location.pathname, payload, getMemberFirmID());\r\n if (payload) {\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_CREATE,\r\n payload,\r\n });\r\n setTocAnnotations(prev => { return [...prev, payload] });\r\n\r\n if (annotationProps.selectedTocItem !== null && annotationProps.pageType !== '') {\r\n logs.trackEvent({\r\n name: APPLICATION_INSIGHTS_CONSTANTS.annotation_name,\r\n properties: annotationProps,\r\n });\r\n }\r\n }\r\n CONTEXTHELPERS.sortCategories(annState?.categories, selectedCategory.category_guid);\r\n document.getSelection().empty();\r\n };\r\n\r\n function closeNotification() {\r\n setShowNotification(false);\r\n }\r\n\r\n const annotationProps = {\r\n eventType: APPLICATION_INSIGHTS_CONSTANTS.annotation_eventType,\r\n pageUrl: context.pageRequestURL,\r\n selectedTocItem: UTILITIESHELPER.getSessionStorage(SESSION_STORAGE_CONSTANTS.selected_content),\r\n pageType: UTILITIESHELPER.getSessionStorage(SESSION_STORAGE_CONSTANTS.page_type),\r\n jobTitle: UTILITIESHELPER.getSessionStorage(SESSION_STORAGE_CONSTANTS.level),\r\n memberFirm: UTILITIESHELPER.getLocalStorage(LOCAL_STORAGE_CONSTANTS.research_portal_memberfirm)\r\n };\r\n\r\n return (\r\n //
    \r\n
    \r\n {shouldShowDarkOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n {getLabel(\r\n \"hh_ChooseCategoryForHighlight\",\r\n \"Choose a category for your highlight\"\r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {comment.length}/{MAX_COMMENT_LENGTH}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {isPickerShown && (\r\n \r\n )}\r\n {isDeleteAnnotationShown && (\r\n \r\n )}\r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default AnnotationModal;","import React from \"react\";\r\n\r\nexport const AnnotationCommentIcon = ({ fillColor, preferenceId }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport {\r\n useUserPreferencesContext,\r\n ACTIONS,\r\n} from \"../../contexts/AnnotationsContext\";\r\nimport Dropdown from '../Common/Dropdown';\r\nimport ColorPicker from \"./ColorPicker\";\r\nimport AnnotationDelete from \"./AnnotationDelete\";\r\nimport { usePageContextLabels,usePageContext } from \"../../contexts/PageContext\";\r\nimport ANNSERVICES from \"../../helpers/AnnotationServices\";\r\nimport ARTICLEHELPERS from \"../../helpers/ArticleHelpers\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { useTocContext } from \"../../contexts/TocContext\";\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport CategoryService from \"../../helpers/CategoryServices\";\r\n\r\n\r\nconst AnnotationSidePanelEdit = (props) => {\r\n const { categoryselected,comments, selected, id, onChange, date } = props;\r\n const { language, context, getMemberFirmID } = usePageContext(); //eslint-disable-line\r\n const { setTocAnnotations, setTocIconBookmark } = useTocContext();\r\n let btnRef = useRef();\r\n const MAX_COMMENT_LENGTH = 1000;\r\n const dateValue = UTILITIESHELPER.formatDate(date, \"en-GB\");\r\n const { state: annState, dispatch } = useUserPreferencesContext();\r\n const [selectedCategory, setSelectedCategory] = useState(selected);\r\n const [editableCategory, setEditableCategory] = useState({\r\n category: {},\r\n isEditable: false,\r\n });\r\n const [isPickerShown, setPickerShown] = useState(false);\r\n const [isDeleteAnnotationShown, setDeleteAnnotationShown] = useState(false);\r\n const [comment, setComment] = useState(comments ? comments : '');\r\n const { getLabel } = usePageContextLabels();\r\n const location = useLocation();\r\n const [editOpen, setEditOpen] = useState(true);\r\n const [PageURL] = useState(location.pathname);\r\n const [shouldShowDarkOverlay, setshouldShowDarkOverlay] = useState(true);\r\n const { guidebookArticle } = useGuidebookTocContext();\r\n const { articleVersion } = useArticleContext();\r\n const [annotationsCount, setAnnotationsCount] = useState();\r\n const [bookmarksCount, setBookmarksCount] = useState();\r\n const [annotationCategories, setAnnotationCategories] = useState([])\r\n\r\n\r\n useEffect(() => {\r\n if (editOpen) {\r\n if (annState.annotations.length > 0) {\r\n const annotationPanelNodeList = document.querySelector(\".annotation-panel-body\")\r\n const annotationSidePanelEdit = annotationPanelNodeList.querySelector('.box-container');\r\n if (annotationSidePanelEdit) {\r\n annotationSidePanelEdit.setAttribute('tabindex', '-1')\r\n annotationSidePanelEdit.focus()\r\n annotationSidePanelEdit.removeAttribute('tabindex')\r\n }\r\n }\r\n }\r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n let categories = annState.categories.filter(item => !item.is_specific_to_bookmark);\r\n setAnnotationCategories(categories);\r\n }, [annState.categories]);\r\n\r\n function handleCategoryAddClick() {\r\n setPickerShown(true);\r\n setEditableCategory({ category: {}, isEditable: false });\r\n }\r\n\r\n function handleCategoryEditClick(category) {\r\n setPickerShown(true);\r\n setEditableCategory({ category: category, isEditable: true });\r\n }\r\n\r\n function handleCategorySelect(category) {\r\n setSelectedCategory(category);\r\n document.dispatchEvent(new CustomEvent(\"dd:requestClose\"));\r\n }\r\n\r\n function handlePickerClose() {\r\n setPickerShown(false);\r\n }\r\n\r\n const handlePickerUpdate = async (category) => {\r\n category.category_guid = await CategoryService.updateCategory(location.pathname, category, category.category_guid, getMemberFirmID());\r\n dispatch({\r\n type: ACTIONS.CATEGORY_UPDATE,\r\n payload: category,\r\n });\r\n setPickerShown(false);\r\n setSelectedCategory(category);\r\n };\r\n\r\n\r\n const handlePickerSave = async (category) => {\r\n category.category_guid = await CategoryService.createCategory(location.pathname, category, getMemberFirmID());\r\n if (category.category_guid) {\r\n dispatch({\r\n type: ACTIONS.CATEGORY_CREATE,\r\n payload: category,\r\n });\r\n }\r\n\r\n setPickerShown(false);\r\n setSelectedCategory(category);\r\n };\r\n\r\n const handleDeleteSide = async () => {\r\n const deleteCategory = await CategoryService.deleteCategory(location.pathname, editableCategory.category.category_guid, getMemberFirmID(), null, true);\r\n if (deleteCategory) {\r\n dispatch({\r\n type: ACTIONS.CATEGORY_REMOVE,\r\n payload: { category_guid: editableCategory.category.category_guid },\r\n });\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_REMOVE_MULTIPLE,\r\n payload: annState.annotations.filter(i => i.category_guid === editableCategory.category.category_guid).map(item => item.annotation_guid),\r\n });\r\n setTocIconBookmark(prev => {\r\n return prev.filter(i => i.category_guid !== editableCategory.category.category_guid);\r\n });\r\n\r\n dispatch({\r\n type: ACTIONS.BOOKMARK_BULK_REMOVE,\r\n payload: annState.bookmarks.filter(i => i.category_guid === editableCategory.category.category_guid).map(item => item.bookmark_guid),\r\n });\r\n setTocAnnotations(prev => {\r\n return prev.filter(i => i.category_guid !== editableCategory.category.category_guid);\r\n });\r\n }\r\n setEditOpen(false);\r\n onChange();\r\n };\r\n\r\n const handleCategoryDeleteClick = async (category) => {\r\n setEditableCategory({ category: category, isEditable: true });\r\n const categoryDelete = await CategoryService.deleteCategory(location.pathname, category.category_guid, getMemberFirmID(), null, false);\r\n setAnnotationsCount(categoryDelete.number_annotation_linked);\r\n setBookmarksCount(categoryDelete.number_Bookmark_linked);\r\n setDeleteAnnotationShown(true);\r\n }\r\n\r\n function handleAnnotationDeleteClose() {\r\n setDeleteAnnotationShown(false)\r\n }\r\n\r\n function handleCommentChange(e) {\r\n const value = e.target.value;\r\n setComment(value.slice(0, MAX_COMMENT_LENGTH));\r\n }\r\n\r\n const saveAnnotation = async () => {\r\n if (btnRef.current) {\r\n btnRef.current.setAttribute(\"disabled\", \"disabled\");\r\n }\r\n if (annState.annotations.length > 0) {\r\n let annotationUpdate = annState.annotations.find(item => item.annotation_guid === id);\r\n annotationUpdate.comment = !UTILITIESHELPER.isStringNullorEmpty(comment) ? comment.trim():\"\";\r\n annotationUpdate.category_guid = selectedCategory.category_guid;\r\n annotationUpdate.version = guidebookArticle?.version ?? articleVersion;\r\n annotationUpdate.page_url = annotationUpdate.page_url === undefined ? PageURL : annotationUpdate.page_url;\r\n annotationUpdate.page_bread_crumb = annotationUpdate.page_bread_crumb === undefined ? ARTICLEHELPERS.getBreadcrumbData() : annotationUpdate.page_bread_crumb\r\n annotationUpdate.range_position_start = annotationUpdate.range_position.start;\r\n annotationUpdate.range_position_end = annotationUpdate.range_position.end;\r\n const annotation = await ANNSERVICES.updateAnnotation(location.pathname, annotationUpdate, getMemberFirmID());\r\n if (annotation) {\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_UPDATE,\r\n payload: annotation,\r\n });\r\n }\r\n setTocAnnotations(prev => {\r\n return prev.map(item => { return item.annotation_guid === annotation.annotation_guid ? annotation : item });\r\n });\r\n setEditOpen(false);\r\n onChange();\r\n }\r\n };\r\n\r\n function getTriggerElClose() {\r\n document.dispatchEvent(new CustomEvent('dd:requestClose'));\r\n }\r\n\r\n function handleCloseClick() {\r\n setEditOpen(false);\r\n onChange();\r\n setshouldShowDarkOverlay(false);\r\n }\r\n\r\n function CategoryTrigger({ category }) {\r\n\r\n //styling for background category color\r\n const backgroundColorStyle = {\r\n backgroundColor: category.color\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    {category.label}
    \r\n
    \r\n )\r\n }\r\n\r\n function CategoryItem({ category, selected, onClick, onEditClick, onDeleteClick, className }) {\r\n function handleClick() {\r\n onClick(category);\r\n }\r\n\r\n function handleEditClick(event) {\r\n onEditClick(category)\r\n event.stopPropagation();\r\n }\r\n\r\n function handleDeleteClick(event) {\r\n onDeleteClick(category)\r\n event.stopPropagation();\r\n }\r\n let classNames = '';\r\n if (className) {\r\n classNames = 'an-dd-category-item-sidepanel-edit' + className;\r\n }\r\n else {\r\n classNames = 'an-dd-category-item-sidepanel-edit';\r\n }\r\n if (selected.category_guid === category.category_guid) classNames += ' ad-dd-category-item--selected';\r\n\r\n //styling for background category color\r\n const backgroundColorStyle = {\r\n backgroundColor: category.color\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    {category?.label?.length > 20 ? (category?.label === category?.label?.toUpperCase() ? category?.label?.substring(0, 17).concat('...') : category?.label?.substring(0, 20).concat('...')) : category?.label ? category.label : \"\"}
    \r\n\r\n \r\n \r\n
    \r\n )\r\n }\r\n\r\n function CategoryDropdown({ categories, selected, onSelect, onEditClick, onAddClick, onDeleteClick }) {\r\n const { getLabel } = usePageContextLabels();\r\n const selectedCategory = categories.filter(category => category.category_guid === selected.category_guid);\r\n const sortedCategories = categories.filter(category => category.category_guid !== selected.category_guid);\r\n\r\n function handleSelect(category) {\r\n onSelect(category);\r\n }\r\n\r\n function handleAddClick(e) {\r\n e.stopPropagation();\r\n onAddClick();\r\n }\r\n\r\n function handleEditClick(category, index) {\r\n onEditClick(category, index);\r\n }\r\n\r\n function handleDeleteClick(category, index) {\r\n onDeleteClick(category, index);\r\n }\r\n\r\n const listItems = sortedCategories.map((c, index) => (\r\n handleEditClick(e, index)}\r\n onDeleteClick={(e) => handleDeleteClick(e, index)}\r\n\r\n />\r\n ))\r\n\r\n const selectedItem = selectedCategory.map((c, index) => (\r\n handleEditClick(e, index)}\r\n onDeleteClick={(e) => handleDeleteClick(e, index)}\r\n className={\"-highlighted\"}\r\n />\r\n ))\r\n function getTriggerEl() {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {selectedItem}\r\n \r\n {listItems}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {shouldShowDarkOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {comment.length}/{MAX_COMMENT_LENGTH}\r\n
    \r\n
    \r\n {dateValue}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {isPickerShown && (\r\n \r\n )}\r\n {isDeleteAnnotationShown && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AnnotationSidePanelEdit;","import React, { useState, useRef,useEffect } from 'react';\r\nimport { useUserPreferencesContext, ACTIONS } from '../../contexts/AnnotationsContext';\r\nimport cx from 'classnames';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport AnnotationSidePanelEdit from './AnnotationSidePanelEdit';\r\nimport ANNSERVICES from \"../../helpers/AnnotationServices\";\r\nimport {useTocContext} from \"../../contexts/TocContext\";\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport { usePageContext,usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport { useArticleContext } from '../../contexts/ArticleContext';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\n\r\nconst Annotation = (props) => {\r\n\r\n const { state: annState, dispatch, setSelectedAnnotation,selectedId } = useUserPreferencesContext();\r\n const { setTocAnnotations } = useTocContext();\r\n const [selectedCategory, setSelectedCategory] = useState();\r\n const { comment, category_guid, content, id, onClick, active, date, isAnnotationsVersionUpdated } = props;\r\n //const [categoryguid, setCategoryguid] = useState(category_guid);\r\n const isContentOnly = comment === \"\";\r\n const [hover, setHover] = useState(false);\r\n const Annotateitems = document.querySelectorAll('.highlighted');\r\n const items = Array.from(Annotateitems);\r\n const getMarkTag = items.filter(a => a.id === id);\r\n var catColor;\r\n var Contents = \"\";\r\n const ref = useRef();\r\n const [isDeleted,setIsDeleted] = useState(content === '' && isAnnotationsVersionUpdated === true); //eslint-disable-line\r\n const [isValid, setIsValid] = useState(isDeleted === true ? false : !isAnnotationsVersionUpdated);\r\n const { context, getMemberFirmID } = usePageContext();\r\n const {guidebookArticle } = useGuidebookTocContext();\r\n const { articleVersion } = useArticleContext();\r\n const { getLabel } = usePageContextLabels();\r\n const location = useLocation();\r\n\r\n for (var i = 0; i < getMarkTag.length; i++) {\r\n const getContent = getMarkTag[i].innerText;\r\n Contents += getContent;\r\n }\r\n const [editOpen, setEditOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n const annotationPanelNodeList = document.querySelector(\".annotation-panel-body\")\r\n const annotatedSelected = annotationPanelNodeList.querySelector('.an-selected');\r\n if (annotatedSelected) {\r\n let sidePanelWindow= annotationPanelNodeList.getBoundingClientRect();\r\n let offset =annotatedSelected?.getBoundingClientRect().top - sidePanelWindow.top;\r\n annotationPanelNodeList.scrollTo({\r\n top: offset,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }, [selectedId]);\r\n\r\n function generateTextTruncate(text) {\r\n if(!active || (editOpen === true)){\r\n const len = 100;\r\n const ending = '...';\r\n if (text && text.length > len) {\r\n return text.substring(0, 100) + ending;\r\n }\r\n }\r\n return text;\r\n }\r\n\r\n function categoryColor() {\r\n const categoryArr = annState.categories;\r\n if (category_guid) {\r\n const category = categoryArr.find(\r\n (obj) => obj.category_guid === category_guid\r\n );\r\n catColor = category?.color;\r\n return `4px solid ${catColor}`;\r\n }\r\n }\r\n\r\n function categoryName() {\r\n const categoryArr = annState.categories;\r\n if (category_guid) {\r\n const category = categoryArr.find((obj) => obj.category_guid === category_guid);\r\n return category?.label;\r\n }\r\n }\r\n\r\n function show(e) {\r\n e.preventDefault();\r\n if (category_guid) {\r\n const category = annState.categories?.find((obj) => obj.category_guid === category_guid);\r\n setSelectedCategory(category);\r\n setEditOpen((prevVal) => !prevVal);\r\n }\r\n }\r\n\r\n async function updateInvalidAnnotation() {\r\n if (annState.annotations.length > 0) {\r\n let annData = annState.annotations.find(function (ann) {\r\n return ann.annotation_guid === id;\r\n });\r\n annData.is_annotations_version_updated = false;\r\n \r\n\r\n const payload = {\r\n annotation_guid: id,\r\n category_guid: category_guid,\r\n page_url: annData.page_url,\r\n reference_identifier: CONTEXTHELPERS.getGUIDFromContext(context),\r\n raw_content: annData.raw_content,\r\n content: annData.content,\r\n range_position_start: annData.range_position.start,\r\n range_position_end: annData.range_position.end,\r\n closest_guid: annData.closest_guid,\r\n comment: annData.comment,\r\n version: guidebookArticle?.version ?? articleVersion,\r\n page_bread_crumb: annData.page_bread_crumb,\r\n is_annotations_version_updated:false,\r\n checked: false\r\n };\r\n const annotation = await ANNSERVICES.updateAnnotation(location.pathname, payload, getMemberFirmID());\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_UPDATE,\r\n payload: annotation,\r\n });\r\n setTocAnnotations(prev => {\r\n return prev.map(item => { return item.annotation_guid === annotation.annotation_guid ? annotation : item });\r\n });\r\n }\r\n setIsValid(true)\r\n }\r\n\r\n function handleCategorySelect(category) {\r\n setSelectedCategory(category);\r\n document.dispatchEvent(new CustomEvent('dd:requestClose'));\r\n }\r\n\r\n const editUpdate = () => {\r\n setEditOpen(false);\r\n setSelectedAnnotation(0);\r\n }\r\n\r\n async function deleteSingleAnnotation() {\r\n const annDelete = await ANNSERVICES.deleteAnnotation(location.pathname, [id], getMemberFirmID());\r\n if (annDelete) {\r\n const payload = {\r\n annotation_guid: id,\r\n }\r\n dispatch({\r\n type: ACTIONS.ANNOTATIONS_REMOVE,\r\n payload: payload,\r\n deleteId: id\r\n });\r\n setTocAnnotations(prev => { return prev.filter(q => q.annotation_guid !== id) });\r\n }\r\n }\r\n\r\n function setHoverValue(hoverValue) {\r\n setHover(hoverValue ? true : false)\r\n }\r\n\r\n useOutsideClick(ref, editUpdate);\r\n\r\n //setting the borderleft CSS styling\r\n const boderLeftStyle= {\r\n borderLeft: categoryColor()\r\n };\r\n\r\n return (\r\n setHoverValue(true)}\r\n onMouseLeave={() => setHoverValue(false)}\r\n //ref={ref}\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {isDeleted === false && isValid === false &&\r\n
    \r\n }\r\n {isDeleted === true &&\r\n
    \r\n }\r\n
    {categoryName()}
    \r\n \r\n
    \r\n {isDeleted === false && isValid === false &&\r\n \r\n }\r\n {isValid === true && isDeleted === false &&\r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {generateTextTruncate(Contents)}\r\n
    \r\n \r\n \r\n \r\n {\r\n getLabel(\"hh_AnnotationUpdatedMessage\",\"Highlighted content has been updated. Please accept or delete the updated annotation.\")\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {\r\n getLabel(\"hh_AnnotationDeletedMessage\",\"Highlighted content is no longer available.\")\r\n }\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {generateTextTruncate(comment)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default Annotation;","import React, { useState, useEffect } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useUserPreferencesContext } from \"../../contexts/AnnotationsContext\";\r\nimport { usePageContext, usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport AnnotationPanelDropdown from \"./AnnotationPanelDropdown\";\r\nimport Annotation from \"../Annotations/Annotation\";\r\nimport cx from 'classnames';\r\nimport { useGuidebookTocContext } from \"../../contexts/GuidebookTocContext\";\r\nimport { useArticleContext } from \"../../contexts/ArticleContext\";\r\n\r\n\r\nexport const AnnotationPanel = ({\r\n id,\r\n shouldBeFixed,\r\n articleAnnotations\r\n}) => {\r\n const navigate = useNavigate();\r\n const { state: annState, selectedAnnotation, setSelectedAnnotation,selectedId,setSelectedId } = useUserPreferencesContext();\r\n const { memberFirm, language, knowledgeDomain, setAnnotationPanelOpen } = usePageContext();\r\n const { getLabel } = usePageContextLabels();\r\n const [annotationCategories, setAnnotationCategories] = useState(annState?.categories?.filter(item => !item.is_specific_to_bookmark));\r\n const [selectedCategory, setSelectedCategory] = useState([]);\r\n const [selectedAnnotationType, setSelectedAnnotationType] = useState(\"viewAll\");\r\n const [isAnnotationList,setIsAnnotationList]= useState(false);\r\n const [selectedAnnotationList, setSelectedAnnotationList] = useState(articleAnnotations);\r\n const [count, setCount] = useState();\r\n const shouldBeFix = shouldBeFixed;\r\n const [isAllCategorySelected, setIsAllCategorySelected] = useState(false);\r\n const [containsInvalidAnnotations,setContainsInvalidAnnotations] = useState(false);//eslint-disable-line\r\n const [containsDeletedAnnotations,setContainsDeletedAnnotations] = useState(false);//eslint-disable-line\r\n const { guidebookArticle } = useGuidebookTocContext();\r\n const { articleVersion } = useArticleContext();\r\n\r\n useEffect(() => {\r\n if (JSON.stringify(selectedAnnotationList) !== JSON.stringify(annState.annotations)) {\r\n setSelectedAnnotationList(annState.annotations);\r\n setIsAnnotationList(prevVal => !prevVal);\r\n }\r\n // }\r\n // if (annotateTerms && selectedAnnotation !== 0 && selectedAnnotation !== undefined) {\r\n // const payload = {\r\n // id: selectedAnnotation.annotation_guid,\r\n // };\r\n // setSelectedAnnotation(payload);\r\n // }\r\n }, [annState.annotations]);\r\n\r\n useEffect(() => {\r\n let category = annState?.categories?.filter(item => !item.is_specific_to_bookmark);\r\n if (JSON.stringify(category) !== JSON.stringify(annotationCategories)) {\r\n setAnnotationCategories(category ? category : []);\r\n }\r\n }, [annState.categories]);\r\n\r\n\r\n useEffect(() => {\r\n const resultsContainer = document.querySelector('.article-content-container');\r\n if (resultsContainer) {\r\n if (selectedAnnotation) {\r\n const resultsContainer = document.querySelector('.article-content-container');\r\n if (resultsContainer) {\r\n const annotationsHighlighter = resultsContainer?.querySelectorAll('.highlighted');\r\n const items = Array.from(annotationsHighlighter);\r\n const highlighterDOM = items.find((obj) => obj.id === selectedAnnotation.annotation_guid);\r\n if (highlighterDOM) {\r\n const articleContainer = document.querySelector('.article-container');\r\n let articleOffset = articleContainer.getBoundingClientRect().top;\r\n //Removed the hardcoded value\r\n let offset = highlighterDOM.getBoundingClientRect().top - articleOffset;\r\n window.scrollTo({\r\n top: offset,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n setSelectedId(selectedAnnotation.annotation_guid);\r\n }\r\n }\r\n }\r\n }\r\n }, [selectedAnnotation]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n var filterAnnotations = annState.annotations;\r\n if (selectedCategory && selectedCategory.length > 0) { //Filter by Category\r\n filterAnnotations = filterAnnotations.filter(item => selectedCategory.includes(item.category_guid));\r\n }\r\n if (selectedAnnotationType !== \"viewAll\") {\r\n if (selectedAnnotationType === \"Comments\") {\r\n filterAnnotations = filterAnnotations.filter(item => item.annotation_type === \"Comment\");\r\n }\r\n else if (selectedAnnotationType === \"Highlights\") {\r\n filterAnnotations = filterAnnotations.filter(item => item.annotation_type === \"Highlight\");\r\n }\r\n }\r\n setSelectedAnnotationList(filterAnnotations);\r\n setCount(filterAnnotations.length);\r\n }, [selectedAnnotationType, selectedCategory,isAnnotationList]);\r\n\r\n // function isCategorySelected(guid) {\r\n // let selected = false;\r\n // if (selectedList !== null) {\r\n // selectedList.forEach((element) => {\r\n // if (element.category_guid === guid) {\r\n // selected = true;\r\n // }\r\n // });\r\n // }\r\n // return selected;\r\n // }\r\n function handleCategorySelect(category) {\r\n if (category.category_guid !== \"cat0\") {\r\n setIsAllCategorySelected(false);\r\n if (selectedCategory.includes(category.category_guid)) {\r\n let categories = selectedCategory.filter(ele => ele !== category.category_guid);\r\n setSelectedCategory(prev => [...categories]);\r\n\r\n } else {\r\n setSelectedCategory(prev => [...prev, category.category_guid]);\r\n }\r\n } else {\r\n setIsAllCategorySelected(prev => {\r\n if (prev) {\r\n setSelectedCategory(prev => []);\r\n } else {\r\n let categories = annotationCategories.map(ele => ele.category_guid);\r\n setSelectedCategory(prev => [...categories]);\r\n }\r\n return !prev\r\n });\r\n }\r\n document.dispatchEvent(new CustomEvent('dd:requestClose'));\r\n }\r\n\r\n // function handleCheckboxClick(item) {\r\n // if (isCategorySelected(item.category_guid)) {\r\n // removeCategoryFromSelectedList(item);\r\n // }\r\n // else {\r\n // addCategoryToSelectedList(item);\r\n // }\r\n // }\r\n\r\n // function addCategoryToSelectedList(item) {\r\n // var newArray = [];\r\n\r\n // selectedList.forEach((_item) => {\r\n // newArray.push(_item);\r\n // });\r\n // newArray.push(item);\r\n // setSelectedList(newArray);\r\n // }\r\n\r\n // function removeCategoryFromSelectedList(item) {\r\n // var newArray = [];\r\n // selectedList.forEach((selectedItem) => {\r\n // if (item.category_guid !== selectedItem.category_guid) {\r\n // newArray.push(selectedItem);\r\n // }\r\n // });\r\n // setSelectedList(newArray);\r\n // }\r\n\r\n // function accessibleCheckbox(e, item) {\r\n // if (e.key === \"Enter\") {\r\n // handleCheckboxClick(item);\r\n // }\r\n // }\r\n\r\n function accessibleCheck(e, type) {\r\n if (e.key === \"Enter\") {\r\n setSelectedAnnotationType(type);\r\n }\r\n }\r\n\r\n function navigateToDashboard(e) {\r\n e.preventDefault();\r\n navigate(`/${memberFirm}/${language}/${knowledgeDomain}/dashboard/annotations`);\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {containsInvalidAnnotations === true &&\r\n
    \r\n }\r\n {containsDeletedAnnotations === true &&\r\n
    \r\n }\r\n

    \r\n {getLabel(\"hh_Annotations\", \"Annotations\")}\r\n

    \r\n
    \r\n\r\n { navigateToDashboard(e) }}\r\n >\r\n {\r\n setAnnotationPanelOpen(false);\r\n setSelectedAnnotationType(\"\");\r\n setSelectedId();\r\n setSelectedAnnotation(0)\r\n }}\r\n >\r\n
    \r\n
    \r\n

    {getLabel(\"hh_AnnotationsIntro\", \"To add an annotation, highlight the text and select the highlight and comment icon\")}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    setSelectedAnnotationType(\"viewAll\")} onKeyDown={(e) => accessibleCheck(e, \"viewAll\")} tabIndex={0}>\r\n \r\n \r\n
    \r\n
    setSelectedAnnotationType(\"Highlights\")} onKeyDown={(e) => accessibleCheck(e, \"Highlights\")} tabIndex={0}>\r\n \r\n \r\n
    \r\n
    setSelectedAnnotationType(\"Comments\")} onKeyDown={(e) => accessibleCheck(e, \"Comments\")} tabIndex={0}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {selectedAnnotationList && selectedAnnotationList.length > 0 && selectedAnnotationList.sort((a, b) => a[\"range_position\"].end > b[\"range_position\"].end ? 1 : -1).map((item, index) => (\r\n {\r\n setSelectedAnnotation(item);\r\n }}\r\n />\r\n ))}\r\n
    \r\n
    \r\n
    \r\n {count} {getLabel(\"hh_ArticleAnnotations\", \"Article Annotations\")}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AnnotationPanel;\r\n","import React, { useState, useRef } from 'react';\r\nimport { usePageContextLabels, usePageContext } from '../../contexts/PageContext';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport {\r\n useUserPreferencesContext,\r\n ACTIONS,\r\n} from \"../../contexts/AnnotationsContext\";\r\nimport ARTICLEHELPERS from \"../../helpers/ArticleHelpers\";\r\nimport useOutsideClick from '../../hooks/useOutsideClick';\r\nimport BookmarkService from '../../helpers/BookmarkServices';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { logs } from '../../helpers/log';\r\nimport { APPLICATION_INSIGHTS_CONSTANTS, LOCAL_STORAGE_CONSTANTS, SESSION_STORAGE_CONSTANTS } from '../Constants/Constants';\r\n\r\nfunction CategoryItem({ category, selected, onClick, index }) {\r\n\r\n function handleClick() {\r\n onClick(category);\r\n }\r\n let classNames = 'an-dd-category-item';\r\n\r\n return (\r\n
    \r\n
    \r\n
    {category.label}
    \r\n
    \r\n )\r\n}\r\n\r\nfunction BookmarkCategory({selected, onSelect, onAddClick, active, id }) {\r\n const {setBookmarkOpen, categoryOn} = usePageContext();\r\n const { state: annState, dispatch } = useUserPreferencesContext();\r\n const location = useLocation();\r\n const [open, setOpen] = useState(active);\r\n const { getLabel } = usePageContextLabels();\r\n const ref = useRef();\r\n const { context, getMemberFirmID } = usePageContext();\r\n\r\n async function handleSelect(category) {\r\n onSelect(category);\r\n if (!categoryOn) {\r\n handleTriggerClick();\r\n if (category.category_guid !== selected) {\r\n let payload = {\r\n category_guid: category.category_guid,\r\n page_url: location.pathname,\r\n reference_identifier: CONTEXTHELPERS.getGUIDFromContext(context),\r\n page_bread_crumb: ARTICLEHELPERS.getBreadcrumbData()\r\n }\r\n payload = await BookmarkService.createBookmark(payload, getMemberFirmID());\r\n if (payload) {\r\n dispatch({\r\n type: ACTIONS.BOOKMARKS_CREATE,\r\n payload,\r\n });\r\n\r\n if (bookmarkProps.selectedTocItem !== null && bookmarkProps.pageType !== '') {\r\n logs.trackEvent({\r\n name: APPLICATION_INSIGHTS_CONSTANTS.bookmark_name,\r\n properties: bookmarkProps,\r\n });\r\n }\r\n }\r\n CONTEXTHELPERS.sortCategories(annState?.categories, category.category_guid);\r\n }\r\n }\r\n }\r\n\r\n function handleAddClick() {\r\n onAddClick();\r\n }\r\n\r\n const listItems = annState?.categories?.map((c, index) => (\r\n \r\n ))\r\n function handleTriggerClick() {\r\n setOpen(!open);\r\n setBookmarkOpen((prevVal) => !prevVal);\r\n\r\n }\r\n function handleCloseClick() {\r\n setOpen(false);\r\n setBookmarkOpen((prevVal) => !prevVal);\r\n }\r\n useOutsideClick(ref, handleCloseClick);\r\n\r\n const bookmarkProps = {\r\n eventType: APPLICATION_INSIGHTS_CONSTANTS.bookmark_eventType,\r\n pageUrl: context.pageRequestURL,\r\n selectedTocItem: UTILITIESHELPER.getSessionStorage(SESSION_STORAGE_CONSTANTS.selected_content),\r\n pageType: UTILITIESHELPER.getSessionStorage(SESSION_STORAGE_CONSTANTS.page_type),\r\n jobTitle: UTILITIESHELPER.getSessionStorage(SESSION_STORAGE_CONSTANTS.level),\r\n memberFirm: UTILITIESHELPER.getLocalStorage(LOCAL_STORAGE_CONSTANTS.research_portal_memberfirm)\r\n };\r\n\r\n return (\r\n <>\r\n {open && (\r\n
    \r\n \r\n {listItems}\r\n
    \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default BookmarkCategory;","import React from 'react'\r\n\r\nexport const BookmarkIcon = ({ fillcolor, onClick }) => {\r\n let foreColor='';\r\n function textColor(bgColor) {\r\n let threshold = 130;\r\n let hRed = hexToR(bgColor);\r\n let hGreen = hexToG(bgColor);\r\n let hBlue = hexToB(bgColor);\r\n function hexToR(h) { return parseInt((cutHex(h)).substring(0, 2), 16) }\r\n function hexToG(h) { return parseInt((cutHex(h)).substring(2, 4), 16) }\r\n function hexToB(h) { return parseInt((cutHex(h)).substring(4, 6), 16) }\r\n function cutHex(h) { return (h.charAt(0) === \"#\") ? h.substring(1, 7) : h }\r\n let cBrightness = ((hRed * 299) + (hGreen * 587) + (hBlue * 114)) / 1000;\r\n if (cBrightness > threshold) { return \"#000000\"; } else { return \"#ffffff\"; }\r\n }\r\n \r\n foreColor = textColor(fillcolor);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from \"react\";\r\nconst HiddenMetadata = (metadata) => {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\nexport default HiddenMetadata;","import React, { useState } from 'react';\r\nimport { usePageContextLabels } from '../../contexts/PageContext'; \r\nimport Copyright from './Copyright';\r\n\r\nconst PublicationDetailsModal = ({setShouldShowArticlePubModal,publicationData}) => {\r\n \r\n const [shouldShowDarkOverlay,setShouldShowDarkOverlay] = useState(true);\r\n const {getLabel} = usePageContextLabels();\r\n \r\n const closeModal = () => {\r\n setShouldShowDarkOverlay(false);\r\n setShouldShowArticlePubModal(false);\r\n };\r\n\r\n return (\r\n
    \r\n {shouldShowDarkOverlay && (
    )}\r\n
    \r\n
    \r\n

    {getLabel(\"b_PublicationDetails\", \"Publication Details\")}

    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {getLabel(\"b_PublicationType\",\"Publication Type\")} : {publicationData.publicationType}

    \r\n

    {getLabel(\"b_PublicationReleaseDate\",\"Release Date\")} : {publicationData.publicationReleaseDate}

    \r\n

    {getLabel(\"b_Title\",\"Title\")} : {publicationData.title}

    \r\n

    {getLabel(\"b_PublicationVersion\",\"Version\")} : {publicationData.publicationVersion}

    \r\n

    {getLabel(\"b_PublicationIndustry\",\"Industry\")} : {publicationData.industry}

    \r\n

    {getLabel(\"b_PublicationMemberFirm\",\"Member Firm\")} : {publicationData.memberFirm}

    \r\n

    {getLabel(\"b_PublicationKnowledgeDomain\",\"Knowledge Domain\")} : {publicationData.knowledgeDomain}

    \r\n

    {getLabel(\"b_PublicationAuditWorkflowAreaAccount\",\"Audit Workflow Area Account\")} : {publicationData.auditWorkflowAreaAccount}

    \r\n

    {getLabel(\"b_PublicationAuditWorkflowAreaNonAccount\",\"Audit Workflow Area Non-Account\")} : {publicationData.auditWorkflowAreaNonAccount}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PublicationDetailsModal;","import React, { useEffect, useState } from \"react\";\r\nimport ReactDOMServer from \"react-dom/server\";\r\nimport { useNavigate, Link } from \"react-router-dom\";\r\nimport { get } from \"lodash\";\r\nimport { usePageContext, usePageContextLabels, usePageContextSettings } from \"../../contexts/PageContext\";\r\nimport { useArticleContext } from \"../../contexts/ArticleContext\";\r\nimport { useEmbeddedModeContext } from \"../../contexts/EmbeddedModeContext\";\r\nimport LINKHELPERS from \"../../helpers/LinkHelpers\";\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport cx from \"classnames\";\r\nimport throttle from \"lodash.throttle\";\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport ArticleSearch from \"../Article/ArticleSearch\";\r\nimport ArticleTitle from \"../Article/ArticleTitle\";\r\nimport ArticleTOC from \"../Article/ArticleTOC\";\r\nimport EmbeddedArticle from \"./EmbeddedArticle\";\r\nimport FixedNavArticle from \"./FixedNavArticle\";\r\nimport FootnotePopup from \"../Article/FootnotePopup\";\r\nimport HorizontalScrollbar from \"../Article/HorizontalScrollbar\";\r\nimport IconWideModeTOC from \"./WideModeIconTOC\";\r\nimport Modal from \"../Modal/Modal\";\r\nimport PrevNextArticle from \"./PrevNextArticle\";\r\nimport RedirectModal from '../Article/RedirectModal';\r\nimport ShareModal from \"../Article/ShareModal\";\r\nimport Toolbar from \"../Toolbar/Toolbar\";\r\nimport DownloadPanel from \"../Article/DownloadPanel\";\r\nimport ToggleReadingMode from \"../Article/ToggleReadingMode\";\r\nimport SearchHelpers from \"../../helpers/SearchHelpers\";\r\nimport ANNSERVICES from \"../../helpers/AnnotationServices\";\r\nimport ArticleNotification from \"../Notification/ArticleNotification\";\r\nimport ARTICLEHELPERS from \"../../helpers/ArticleHelpers\";\r\nimport { useUserPreferencesContext, ACTIONS as ANN_ACTIONS, ACTIONS } from \"../../contexts/AnnotationsContext\";\r\nimport AnnotationModal from \"../Annotations/AnnotationModal\";\r\nimport { debounce } from \"lodash\";\r\nimport { AnnotationCommentIcon } from \"../Annotations/AnnotationCommentIcon\";\r\nimport AnnotationPanel from \"../Annotations/AnnotationPanel\";\r\nimport { AnnotationHighlighter } from \"../../helpers/AnnotationHighlightHelper\";\r\nimport { rebuildRange } from \"../../helpers/AnnotationHighlightHelper\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport BookmarkCategory from \"../Annotations/BookmarkCategory\";\r\nimport ColorPicker from \"../Annotations/ColorPicker\";\r\nimport { BookmarkIcon } from \"../Annotations/BookmarkIcon\";\r\nimport { useGuidebookTocContext } from '../../contexts/GuidebookTocContext';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers.js';\r\nimport { appInsightUIMapping, logs, page } from \"../../helpers/log\";\r\nimport { useTocContext } from \"../../contexts/TocContext\";\r\nimport TOCHELPERS from '../../helpers/TocHelpers';\r\nimport BookmarkService from \"../../helpers/BookmarkServices\";\r\nimport { getFallback, SCS_KEYS } from \"../Constants/SCSConstants\";\r\nimport DOWNLOADHELPERS from \"../../helpers/DownloadHelpers\";\r\nimport CategoryService from \"../../helpers/CategoryServices\";\r\nimport { ErrorCodes,ErrorMessages, ErrorTypes } from \"../Constants/Errors\";\r\nimport HiddenMetadata from \"./HiddenMetadata.js\";\r\nimport PublicationDetailsModal from \"../Article/PublicationDetailsModal.js\";\r\nimport { ARTICLE_TYPES, CONTENT_TYPE_IDS, FOLIO_SECTION_TYPE, FOLIO_SUBJECT_ACCOUNT, FOLIO_SUBJECT_NON_ACCOUNT, PAGE_CONTROLLER_TYPE } from \"../Constants/Constants\";\r\nimport {useFolioPickerContext} from '../../contexts/FolioPickerContext';\r\n\r\nexport const getIsArticlePdf = (_pubData) => {\r\n return (\r\n (get(_pubData, \"content[0].content.format\"))?.toLowerCase() === \".pdf\" ||\r\n\r\n (get(_pubData, \"content[0].subItems[0].content.format\"))?.toLowerCase() === \".pdf\"\r\n );\r\n};\r\n\r\nexport const getIsArticleBinary = (_pubData) => {\r\n return get(_pubData, \"content[0].containsBinary\");\r\n};\r\n\r\nexport const getIsTextOnlyArticle = (_pubData) => {\r\n return (\r\n !get(_pubData, 'content[0].containsBinary')\r\n );\r\n}\r\n\r\nexport const getArticleTitle = (pubData, isGuidebook, isEmbedded, embeddedPubData, isReadingMode, context) => {\r\n //REFACTOR:Similar to UTILITIESHELPER.getContentItemTitle() perhaps we should use that?\r\n var articleTitle = (get(pubData, 'context.rich_text_title', '') === '') ? get(pubData, 'content[0].content.rich_text_title', '') : get(pubData, 'context.rich_text_title', '') + ' ';\r\n let contentType = get(pubData, 'content[0].content_type', 'BLANK');\r\n let pageControllerType = get(context, 'pageControllerType', 'BLANK');\r\n let pageSelectedSection = get(context, 'pageSelectedSection', 'BLANK');\r\n\r\n if (isGuidebook\r\n //These are actually guidebook sections, so not sure why we looking at the pageControllerType as that generally is the params.pageSelectedSection that would hold that!!\r\n || (pageSelectedSection && [FOLIO_SECTION_TYPE.guidance,\r\n FOLIO_SECTION_TYPE.roadmap,\r\n FOLIO_SECTION_TYPE.questionsandanswers,\r\n FOLIO_SECTION_TYPE.examples,\r\n FOLIO_SECTION_TYPE.rptemplates].includes(pageSelectedSection))\r\n //Article|Section with Intro|Template|Section\r\n || (ARTICLEHELPERS.isSpinePageController(pageControllerType) && [CONTENT_TYPE_IDS.article,\r\n CONTENT_TYPE_IDS.sectionWithIntro,\r\n CONTENT_TYPE_IDS.template,\r\n CONTENT_TYPE_IDS.section].includes(contentType))\r\n //External Collection\r\n || (PAGE_CONTROLLER_TYPE.standard === pageControllerType && [...ARTICLE_TYPES,\r\n CONTENT_TYPE_IDS.sectionWithIntro,\r\n CONTENT_TYPE_IDS.template,\r\n CONTENT_TYPE_IDS.section].includes(contentType))\r\n ) {\r\n if (isEmbedded && !isReadingMode) {\r\n articleTitle = get(embeddedPubData, \"content[0].subItems[0].content.rich_text_title\", \"\");\r\n }\r\n else {\r\n if (ARTICLEHELPERS.isSpinePageController(pageControllerType) && [CONTENT_TYPE_IDS.article,\r\n CONTENT_TYPE_IDS.sectionWithIntro,\r\n CONTENT_TYPE_IDS.template,\r\n CONTENT_TYPE_IDS.section].includes(contentType)) {\r\n articleTitle = get(pubData, 'context.rich_text_title', '');\r\n }\r\n else {\r\n articleTitle = get(pubData, \"content[0].content.rich_text_title\", \"\");\r\n }\r\n\r\n }\r\n }\r\n\r\n articleTitle = UTILITIESHELPER.decodeSpecialCharacters(articleTitle);\r\n\r\n if (articleTitle !== \"\" && UTILITIESHELPER.IsTextHavingFnTag(articleTitle)) {\r\n const fnNumberGenerator = ARTICLEHELPERS.footnoteNumberGenerator();\r\n articleTitle = ARTICLEHELPERS.createTitleMarkupFootnote(\r\n articleTitle,\r\n fnNumberGenerator\r\n );\r\n }\r\n\r\n return ARTICLEHELPERS.getContentHtmlDocument(articleTitle).all[3].outerHTML;\r\n};\r\n\r\n\r\nexport const getDisplayTitle = (pubData) => {\r\n const displayTitle = get(pubData, \"context.title\", \"\") === \"\" ? \"\" : get(pubData, \"context.display_title\", \"\") + \" \";\r\n return displayTitle;\r\n};\r\n\r\n\r\nexport const setMaxHeightTocBody = (rect) => {\r\n const elemTop = rect.top;\r\n let fullScrollOffset = window.innerHeight - rect.bottom;\r\n const footerHeight = 0;\r\n fullScrollOffset = fullScrollOffset > 0 ? fullScrollOffset - footerHeight > 0 ? fullScrollOffset - footerHeight + 1 : fullScrollOffset + 1 : 0;\r\n const tocSidebarHeadingHeight = \"61px\";\r\n const sidePannelBody = document.querySelector(\".side-pannel-body\");\r\n //sidePannelBody?.style?.maxHeight = `calc(100vh - ${tocSidebarHeadingHeight} - ${Math.round(fullScrollOffset)}px - ${elemTop > 0 ? Math.round(elemTop) : 1}px - ${footerHeight}px)`;\r\n\r\n\r\n if (sidePannelBody && sidePannelBody.style) {\r\n const maxHeightValue = `calc(100vh - ${tocSidebarHeadingHeight} - ${Math.round(fullScrollOffset)}px - ${elemTop > 0 ? Math.round(elemTop) : 1}px - ${footerHeight}px)px`;\r\n sidePannelBody.style.maxHeight = maxHeightValue;\r\n }\r\n};\r\n\r\n\r\nconst Article = (props) => {\r\n const {\r\n publicationType,\r\n shouldBeFixed,\r\n isWideMode,\r\n setIsWideMode,\r\n isJumpLinksOpen,\r\n setIsJumpLinksOpen,\r\n setShouldBeFixed,\r\n hasFetchedArticleData,\r\n pubData,\r\n embeddedPubData,\r\n navTitle,\r\n pubLandingUrl,\r\n articleContent,\r\n articleTitle,\r\n isGuidebook,\r\n articleHasLoaded,\r\n showInArticleTOC,\r\n showSearch,\r\n showFixedTools,\r\n secondMostRecentVersion,\r\n isFiltered,\r\n yAxisOfToc,\r\n enableArticleTag\r\n \r\n } = props;\r\n\r\n const isArticlePdf = getIsArticlePdf(pubData);\r\n const isArticleBinary = getIsArticleBinary(pubData);\r\n const checkIfDisplayDownloadEnable = DOWNLOADHELPERS.checkIfDisplayDownloadEnable(pubData);\r\n const navigate = useNavigate();\r\n const [annotationTexts, setAnnotationTexts] = useState([]);\r\n const [downloadPanelOpen, setDownloadPanelOpen] = useState(false)\r\n const location = useLocation();\r\n const searchParam = location.search;\r\n const { isEmbeddedMode } = useEmbeddedModeContext();\r\n const {\r\n context,\r\n memberFirm, language, knowledgeDomain,\r\n bookmarkOpen,\r\n setBookmarkOpen,\r\n annotationPanelOpen,\r\n setAnnotationPanelOpen,\r\n categoryOn, setCategoryOn,\r\n setAnnotateTerms,\r\n searchPhrase,\r\n setNotification,\r\n getMemberFirmID,\r\n isMemberFirmsLoaded, \r\n memberFirms,\r\n allIndustry,\r\n allTier,\r\n pageSelectedSection\r\n } = usePageContext();\r\n\r\n const [isSearchExpanded, setIsSearchExpanded] = useState((searchParam !== '' || (!UTILITIESHELPER.isNullOrUndefined(searchPhrase) && searchPhrase !== '')) ? true : false);\r\n const { getLabel } = usePageContextLabels();\r\n const isDownloadableArticle = (\"disclosures\" !== context.pageSelectedSection);\r\n const { isAnnotationsEnabled, isCompareEnabled, isBookmarksEnabled, isRestrictedAccessMemberfirm } = usePageContextSettings();\r\n const { searchText, setSearchText , articleVersion , setArticleTags } = useArticleContext();\r\n const [isRedirectModalVisible, setIsRedirectModalVisible] = useState(false);\r\n const [redirectURL, setRedirectURL] = useState('');\r\n const [shouldShowOverlayRedirect, setShouldShowOverlayRedirect] = useState(false);\r\n const [closedToolbar, setClosedToolbar] = useState(true);\r\n const [messageRedirectTL, setMessageRedirectTL] = useState('');\r\n const { selectedAnnotation, setSelectedAnnotation, state: annState, dispatch, selectedId, setSelectedId } = useUserPreferencesContext();\r\n const [isDupAnnotation, setIsDupAnnotation] = useState(false);\r\n const [isArticleUpdated, setIsArticleUpdated] = useState(false);\r\n //for color in bookmarks\r\n const [fillColors, setFillColors] = useState('none');\r\n const [bookmarkId, setBookmarkId] = useState();\r\n const [shouldShowDarkOverlay, setshouldShowDarkOverlay] = useState(true);\r\n const [offsetWhenAnnPanelOpened, setOffsetWhenAnnPanelOpened] = useState(0);\r\n\r\n const { guidebookArticle } = useGuidebookTocContext();\r\n const { setTocIconBookmark, setTocAnnotations } = useTocContext();\r\n\r\n let heighttoset = 0;\r\n const [selectedCategory, setSelectedCategory] = useState('');\r\n const [editableCategory, setEditableCategory] = useState({ category: {}, isEditable: false, });\r\n const [isPickerShown, setPickerShown] = useState(false);\r\n const [isArticleSearchActive, setIsArticleSearchActive] = useState(context.pageSearchPhrase !== \"\");\r\n const {state:taxnomyList}=useFolioPickerContext();\r\n const linkProps = {\r\n eventType: 'link',\r\n selectedTocItem: UTILITIESHELPER.getSessionStorage(\"SelectedContent\"),\r\n //sourceLink: sourceURL,\r\n //targetLink: targetURL,\r\n pageType: UTILITIESHELPER.getSessionStorage(\"PageType\"),\r\n jobTitle: UTILITIESHELPER.getSessionStorage(\"Level\"),\r\n memberFirm: UTILITIESHELPER.getSessionStorage(\"MemberFirm\"),\r\n rpMemberFirm: UTILITIESHELPER.getLocalStorage(\"research-portal-member-firm\"),\r\n sourceURL: window.location.href\r\n }\r\n const [articleAnnotation, setArticleAnnotation] = useState([]);\r\n\r\n const annotationUpdateStyling = {\r\n paddingTop: 12.5,\r\n paddingBottom: isArticlePdf ? 0 : 12.5,\r\n paddingRight: isWideMode ? 70 : '',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n }\r\n const url = location.pathname;\r\n\r\n const articleTitleStyle = { whiteSpace: 'normal' }\r\n\r\n const articleNotificationStyle = { paddingLeft: (!isArticlePdf) ? '55px' : '0px', width: '84%' }\r\n const wildcardsPrefixSearchLimitationNotification = getLabel(SCS_KEYS.wildcardsPrefixSearchLimitation, getFallback(SCS_KEYS.wildcardsPrefixSearchLimitation));\r\n function handleCategorySelect(category_guid) {\r\n setSelectedCategory(category_guid);\r\n document.dispatchEvent(new CustomEvent(\"dd:requestClose\"));\r\n }\r\n\r\n function handleCategoryAddClick() {\r\n setPickerShown(true);\r\n setEditableCategory({ category: {}, isEditable: false });\r\n }\r\n\r\n function handlePickerClose() {\r\n setPickerShown(false);\r\n }\r\n\r\n const handlePickerSave = async (category) => {\r\n category.category_guid = await CategoryService.createCategory(location.pathname, category, getMemberFirmID());\r\n\r\n dispatch({\r\n type: ACTIONS.CATEGORY_CREATE,\r\n payload: category,\r\n });\r\n setPickerShown(false);\r\n };\r\n\r\n const handlePickerUpdate = async (category) => {\r\n category.category_guid = await CategoryService.updateCategory(location.pathname, category, category.category_guid, getMemberFirmID());\r\n\r\n dispatch({\r\n type: ACTIONS.CATEGORY_UPDATE,\r\n payload: category,\r\n });\r\n setPickerShown(false);\r\n };\r\n\r\n function isScrolledIntoView(el, _isArticlePdf) {\r\n if (!el) return;\r\n var rect = el.getBoundingClientRect();\r\n var elemTop = rect.top;\r\n if (!isWideMode) {\r\n setMaxHeightTocBody(rect);\r\n }\r\n // Only completely visible elements return true:\r\n const progressBarOffset = 8;\r\n var isVisible = elemTop >= progressBarOffset;\r\n\r\n // return _isArticlePdf || isVisible;\r\n return isVisible;\r\n }\r\n\r\n var articleTagValue={\r\n tier:[],\r\n industry:[],\r\n auditWorkflowAreaAccount:[],\r\n auditWorkflowAreaNonAccount:[]\r\n }\r\n\r\n function buildFolioContentTagList(taxonomylists,auditWorkFlowAccount,articleFolioList){\r\n let nonaccount =[];\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(taxonomylists)) {\r\n taxonomylists[0].items.forEach(element => {\r\n if (element.id === auditWorkFlowAccount) {\r\n nonaccount.push(element);\r\n }\r\n else {\r\n element.sub_items.forEach((wa) => {\r\n if (wa.id === auditWorkFlowAccount) {\r\n nonaccount.push(wa);\r\n }\r\n })\r\n }\r\n });\r\n\r\n if (nonaccount.length > 0 && (!articleFolioList || articleFolioList.filter(x => x.id === auditWorkFlowAccount).length <= 0)) {\r\n articleFolioList.push({\r\n id: nonaccount[0].id, name: nonaccount[0].value\r\n });\r\n }\r\n }\r\n }\r\n function buildFrameWorkContentTagList(tierList,tierValue){\r\n tierList.forEach((parentTier) => {\r\n const parentFilterTier = parentTier.relations.filter(x => x.id === tierValue);\r\n if (parentFilterTier.length > 0 && (!articleTagValue.tier || articleTagValue.tier.filter(x => x.id === parentTier.id).length<=0)) {\r\n articleTagValue.tier.push({\r\n id:parentTier.id,name:parentTier.value\r\n });\r\n }\r\n });\r\n }\r\n function prepareAndSetArtileTags() {\r\n \r\n var metadata=get(pubData, \"content[0].metadata\");\r\n if(context.pageSelectedSection===FOLIO_SECTION_TYPE.alerts || !metadata || UTILITIESHELPER.isObjectNullorEmpty(metadata.audit_workflow_area_account) && UTILITIESHELPER.isObjectNullorEmpty(metadata.audit_workflow_area_nonaccount)) \r\n {\r\n metadata=pubData.metadata;\r\n }\r\n \r\n if (metadata) {\r\n if(metadata.tier){\r\n metadata.tier.forEach((tierValue) => {\r\n\r\n if (allTier && allTier.gaasItems) {\r\n buildFrameWorkContentTagList(allTier.gaasItems,tierValue)\r\n buildFrameWorkContentTagList(allTier.assuranceItems,tierValue)\r\n }\r\n });\r\n }\r\n \r\n if(metadata.industry){\r\n metadata.industry.forEach( (industryValue)=>{\r\n if (allIndustry && allIndustry.items) {\r\n allIndustry.items.forEach((parentIndustory) => {\r\n var parentFilterIndustory=[]\r\n if(parentIndustory.id === industryValue){\r\n parentFilterIndustory.push(parentIndustory);\r\n }\r\n else{\r\n parentFilterIndustory=parentIndustory.relations.filter(x => x.id === industryValue);\r\n }\r\n if (parentFilterIndustory.length > 0 && (!articleTagValue.industry || articleTagValue.industry.filter(x => x.id === parentIndustory.id).length<=0)) {\r\n articleTagValue.industry.push({\r\n id:parentIndustory.id,name:parentIndustory.value\r\n });\r\n }\r\n });\r\n }\r\n }\r\n )\r\n }\r\n if (metadata.audit_workflow_area_nonaccount) {\r\n metadata.audit_workflow_area_nonaccount.forEach((aw) => {\r\n buildFolioContentTagList(taxnomyList.allFolio.auditNonAccount,aw,articleTagValue.auditWorkflowAreaNonAccount)\r\n buildFolioContentTagList(taxnomyList.allFolio.assuranceNonAccount,aw,articleTagValue.auditWorkflowAreaNonAccount)\r\n })\r\n }\r\n\r\n if (metadata.audit_workflow_area_account) {\r\n metadata.audit_workflow_area_account.forEach((aw) => {\r\n var account = [];\r\n buildFolioContentTagList(taxnomyList.allFolio.auditAccount,aw,articleTagValue.auditWorkflowAreaAccount)\r\n buildFolioContentTagList(taxnomyList.allFolio.accountingAccount,aw,articleTagValue.auditWorkflowAreaAccount)\r\n })\r\n }\r\n }\r\n setArticleTags(articleTagValue);\r\n }\r\n \r\n\r\n const handleDocumentClick = async (ev) => {\r\n closeCopyOverlay(ev);\r\n if (ev.target.nodeName === \"path\" && ev.target.id !== '') {\r\n ev.preventDefault();\r\n setAnnotationPanelOpen(false);\r\n setSelectedId(ev.target.id);\r\n setSelectedAnnotation(0);\r\n setAnnotationPanelOpen(true);\r\n scrollToAnnotation(ev.target.id);\r\n }\r\n else {\r\n let targetBaseUrl = `/${memberFirm}/${language}/${knowledgeDomain}`;\r\n const tocUrls = LINKHELPERS.getTocUrls(targetBaseUrl);\r\n\r\n //NB: Having an await inside an event creates a different thread. \r\n // This additional thread causes the page to \"wait\" for a response, \r\n // but as the response happens on a different thread(as we await it), \r\n // it waits for ever and kills the page.\r\n // Therefore we add an async wrapper here to stop the page from frezing.\r\n (async () => {\r\n let navigatableLink = await LINKHELPERS.getNavigatableLink({\r\n ev,\r\n tocUrls,\r\n memberFirm: memberFirm, language: language, knowledgeDomain: knowledgeDomain,\r\n messageCannotOpenTab: getLabel(\"l_InternalLinkCannotBeOpenedInANewTab\", \"Internal link cannot be opened in a new tab/window in Pilot\"),\r\n messageCannotResolve: getLabel(\"l_LinkCannotBeResolved\", \"Link cannot be resolved.\"),\r\n isSearchResultLink: false,\r\n memberFirms\r\n });\r\n if (navigatableLink) {\r\n let targetURL = window.location.origin + navigatableLink\r\n if (LINKHELPERS.isLocalToThisPageLink(tocUrls, navigatableLink)) {\r\n //If the current URL already has a hash, and the current hash is the same, then we just scroll the page \"again\"\r\n if (window.location.hash && (navigatableLink === `${window.location.pathname}${window.location.hash}`)) {\r\n ARTICLEHELPERS.scrollToHashTag(window.location.hash);\r\n }\r\n else {\r\n navigate(navigatableLink);\r\n }\r\n }\r\n else {\r\n if (navigatableLink.split(\";\").length > 1) {\r\n targetURL = navigatableLink.split(\";\")[0];\r\n // TL link : Set Redirect Modal visible and send parameters from here\r\n UTILITIESHELPER.setLocalStorage(\"isContentLoadError\", false);\r\n setMessageRedirectTL(getLabel(\"l_LinkModalViewLinkTL\", \"The content requested is not currently available in ORP. Would you like to see this content in Technical Library?\"))\r\n setRedirectURL(navigatableLink.split(\";\")[0]);\r\n setShouldShowOverlayRedirect(true);\r\n setIsRedirectModalVisible(true);\r\n }\r\n else {\r\n //We need to call the window directly and with noreferer, so that we \"disconnect\"\r\n // the target browser and activity/closing from the currnet tab (or it will freeze the current tab!)\r\n window.location.href = LINKHELPERS.sanitizeUrl(navigatableLink);\r\n }\r\n }\r\n if (!UTILITIESHELPER.isStringNullorEmpty(targetURL)) {\r\n linkProps.targetURL = targetURL;\r\n logs.event('link', linkProps);\r\n }\r\n }\r\n else {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(ev.target.href)) {\r\n linkProps.targetURL = ev.target.href;\r\n logs.event('link', linkProps);\r\n }\r\n }\r\n })();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n UTILITIESHELPER.setLocalStorage(\"isContentLoadError\", false);\r\n (async () => {\r\n var categories = await CategoryService.fetchCategories(location.pathname, getMemberFirmID());\r\n dispatch({\r\n type: ANN_ACTIONS.CATEGORY_LOAD,\r\n payload: categories,\r\n });\r\n })();\r\n\r\n\r\n \r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n // handleResize()\r\n const articleContainerElem = document.querySelector(\".article-container\");\r\n isScrolledIntoView(articleContainerElem);\r\n }, [isWideMode, shouldBeFixed]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n const articleContainerElem = document.querySelector(\".article-container\");\r\n const _shouldBeFixed = !isScrolledIntoView(\r\n articleContainerElem,\r\n isArticlePdf\r\n );\r\n setShouldBeFixed(_shouldBeFixed);\r\n\r\n const handleScroll = (ev) => {\r\n const _shouldBeFixed = !isScrolledIntoView(articleContainerElem, isArticlePdf);\r\n setShouldBeFixed(_shouldBeFixed);\r\n };\r\n const throttledScroll = throttle(handleScroll, 16);\r\n window.addEventListener(\"scroll\", throttledScroll, { passive: true });\r\n articleContainerElem.addEventListener(\"click\", handleDocumentClick);\r\n document.addEventListener(\"keyup\", isKeyPressed);\r\n document.oncontextmenu = function (ev) {\r\n //WE no longer have the data node for internal/external, so look at what is inside the URL\r\n // basically if it starts with HTTP, we consider it external!\r\n const el = LINKHELPERS.getClosestLinkElement(ev);\r\n if (el?.href) {\r\n if (LINKHELPERS.existsInsideParentClass(el, \"article-content-container\")) {\r\n let hrefValue = el?.href;\r\n let currentHref = window.location.href;\r\n let prefixLocation = currentHref.substring(0, currentHref.lastIndexOf('/') + 1);\r\n //We assume if the current href contains the current domain url, that it did not start with http, i.e. it was an internal link\r\n if (hrefValue.indexOf(prefixLocation) > -1) {\r\n //Internal link, so we handle it...\r\n ev.preventDefault();\r\n\r\n //New open in new window instead of message...\r\n let targetBaseUrl = `/${memberFirm}/${language}/${knowledgeDomain}`;\r\n const tocUrls = LINKHELPERS.getTocUrls(targetBaseUrl);\r\n\r\n //NB: Having an await inside an event creates a different thread. \r\n // This additional thread causes the page to \"wait\" for a response, \r\n // but as the response happens on a different thread(as we await it), \r\n // it waits for ever and kills the page.\r\n // Therefore we add an async wrapper here to stop the page from frezing.\r\n (async () => {\r\n let navigatableLink = await LINKHELPERS.getNavigatableLink({\r\n ev,\r\n tocUrls,\r\n memberFirm: memberFirm, language: language, knowledgeDomain: knowledgeDomain,\r\n messageCannotOpenTab: getLabel(\"l_InternalLinkCannotBeOpenedInANewTab\", \"Internal link cannot be opened in a new tab/window in Pilot\"),\r\n messageCannotResolve: getLabel(\"l_LinkCannotBeResolved\", \"Link cannot be resolved.\"),\r\n isSearchResultLink: false,\r\n memberFirms\r\n });\r\n if (navigatableLink) {\r\n if (navigatableLink.split(\";\").length > 1) {\r\n // TL link : Set Redirect Modal visible and send parameters from here\r\n UTILITIESHELPER.setLocalStorage(\"isContentLoadError\", false);\r\n setMessageRedirectTL(getLabel(\"l_LinkModalViewLinkTL\", \"The content requested is not currently available in ORP. Would you like to see this content in Technical Library?\"))\r\n setRedirectURL(navigatableLink.split(\";\")[0]);\r\n setShouldShowOverlayRedirect(true);\r\n setIsRedirectModalVisible(true);\r\n }\r\n else {\r\n //We need to call the window directly and with noreferer, so that we \"disconnect\"\r\n // the target browser and activity/closing from the currnet tab (or it will freeze the current tab!)\r\n window.open(LINKHELPERS.sanitizeUrl(navigatableLink), '_blank', 'noreferrer');\r\n }\r\n }\r\n })();\r\n }\r\n }\r\n }\r\n };\r\n prepareAndSetArtileTags();\r\n return () => {\r\n window.removeEventListener(\"scroll\", throttledScroll);\r\n articleContainerElem.removeEventListener(\"click\", handleDocumentClick);\r\n document.removeEventListener(\"keyup\", isKeyPressed);\r\n const sidePannelBody = document.querySelector(\".side-pannel-body\");\r\n if (sidePannelBody) {\r\n //FE:TODO: This is compareing pathname with full url!\r\n // full url: http://a.c/x/y/z\r\n // path : x/y/z\r\n // Therefore it will ALWAYS be less - so not sure what this is calculating.changing on the page, but it seams that it will alsows be the first part!\r\n //if (window.location.pathname.split(\"/\").length < routeInfo.url.split(\"/\").length) {\r\n var sidePanelSmall = document.querySelector(\".side-pannel-small\");\r\n if (sidePanelSmall) {\r\n var sidePanelSmallDim = sidePanelSmall.getClientRects();\r\n if (sidePanelSmallDim) {\r\n let elemTop = sidePanelSmallDim[0].top;\r\n const maxHeightCalc = `calc(100vh - 61px} - ${elemTop > 0 ? Math.round(elemTop) : 1}px`;\r\n\r\n sidePannelBody.style.maxHeight = maxHeightCalc;\r\n //}\r\n //else {\r\n // if (sidePannelBody.style.maxHeight === \"\" || sidePannelBody.style.maxHeight === \"none\") {\r\n // sidePannelBody.style.maxHeight = tocMaxHeight;\r\n // }\r\n //}\r\n }\r\n }\r\n }\r\n setIsJumpLinksOpen(false);\r\n setShouldBeFixed(false);\r\n //setAnnotationPanelOpen(false);\r\n //setSelectedAnnotation(0);\r\n }\r\n }, [isArticlePdf,isMemberFirmsLoaded]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n // no need to scroll if the value is zero, automatically it will be at the top\r\n if (yAxisOfToc !== 0) {\r\n scrollTocToKnowLocation(yAxisOfToc);\r\n }\r\n }, [yAxisOfToc]);\r\n\r\n function scrollTocToKnowLocation(yAxisOfToc) {\r\n var tocBody = document.getElementsByClassName(\"side-pannel-body\")[0];\r\n\r\n var dir = \"scrollTop\";\r\n var res = !!tocBody[dir];\r\n\r\n if (!res) {\r\n tocBody[dir] = 1;\r\n res = !!tocBody[dir];\r\n tocBody[dir] = 0;\r\n }\r\n\r\n if (res) {\r\n tocBody.scrollTo(0, yAxisOfToc);\r\n tocBody.focus();\r\n }\r\n }\r\n\r\n function closeCopyOverlay(ev) {\r\n const toolBar = document.querySelector(\".toolbar\");\r\n if (!ev.target.closest(\".cf-right\") && toolBar) {\r\n setClosedToolbar(true);\r\n }\r\n }\r\n\r\n function isKeyPressed(e) {\r\n if (e.keyCode === 39 || e.keyCode === 37 || e.keyCode === 38 || e.keyCode === 40 ) {\r\n if (document.getSelection().toString().trim().length > 0) {\r\n setClosedToolbar(true);\r\n e.preventDefault();\r\n interactiveToolbar(e);\r\n }\r\n else {\r\n setClosedToolbar(true);\r\n }\r\n }\r\n }\r\n\r\n function interactiveToolbar(e) {\r\n let active = false;\r\n const toolbarContainer = document.querySelector(\".toolbar\");\r\n if (!toolbarContainer) return;\r\n const selectedText = document.getSelection();\r\n const textStr = selectedText.toString().trim();\r\n const recursiveItemElements = (item) => {\r\n if (typeof (item.className) !== 'object') {\r\n if ((item.className && item.className.includes('normal-link-in-reading-mode')) || (item.className && item.className.includes('prev-next-article-links-container'))) {\r\n setIsDupAnnotation(true);\r\n }\r\n else {\r\n setIsDupAnnotation(false);\r\n }\r\n if (item.className && item.className.includes('annotation-panel-wrapper')) {\r\n setClosedToolbar(true);\r\n active = true;\r\n }\r\n }\r\n let subItems = item.children;\r\n let childItemArray = Array.from(subItems);\r\n if (childItemArray && childItemArray.length > 0) {\r\n childItemArray.forEach((subItem) => {\r\n recursiveItemElements(subItem);\r\n })\r\n }\r\n }\r\n if (textStr.length > 0) {\r\n let range = selectedText.getRangeAt(0);\r\n let cloned = range.cloneContents();\r\n recursiveItemElements(cloned);\r\n if (active) return\r\n if (cloned?.children?.length > 1 && selectedText.extentOffset === 0) {\r\n const recursiveReduceSelection = () => {\r\n selectedText.modify('extend', 'left', 'character')\r\n if (selectedText.extentOffset === 0)\r\n recursiveReduceSelection()\r\n }\r\n recursiveReduceSelection()\r\n if (selectedText.isCollapsed)\r\n return\r\n range = selectedText.getRangeAt(0)\r\n cloned = range.cloneContents();\r\n }\r\n const duplicateSelection = cloned.querySelector(\".highlighted\");\r\n const duplicateAnnSelection = selectedText.baseNode.parentNode.className === 'highlighted';\r\n setIsArticleSearchActive(searchText.length > 2 ? true : false)\r\n if (duplicateSelection || duplicateAnnSelection) {\r\n setIsDupAnnotation(true);\r\n }\r\n const articleContainer = document.querySelector(\".cf-right\");\r\n const bounds = articleContainer.getBoundingClientRect();\r\n const x = e.clientX - bounds.left;\r\n const y = e.clientY - bounds.top;\r\n toolbarContainer.style.top = y + \"px\";\r\n toolbarContainer.style.left = x + \"px\";\r\n setClosedToolbar(false);\r\n } else {\r\n setClosedToolbar(true);\r\n }\r\n }\r\n\r\n function interactiveToolbarClear(e) {\r\n const toolbarContainer = document.querySelector(\".toolbar\");\r\n if (!toolbarContainer) return;\r\n setClosedToolbar(true);\r\n setIsDupAnnotation(false);\r\n document.getSelection().empty();\r\n }\r\n\r\n //Handles the initial word download button click\r\n function wordHandler(e) {\r\n e.preventDefault();\r\n\r\n //open download panel.\r\n setDownloadPanelOpen((prevVal) => !prevVal);\r\n }\r\n\r\n function bookmarkHandler(e) {\r\n e.preventDefault();\r\n setBookmarkOpen((prevVal) => !prevVal);\r\n setshouldShowDarkOverlay(true);\r\n }\r\n\r\n async function bookmarkIcon(e) {\r\n setCategoryOn(false);\r\n setBookmarkOpen(false);\r\n const bookDelete = await BookmarkService.deleteBookmarks(location.pathname, [bookmarkId]);\r\n const payload = {\r\n bookmark_guid: bookmarkId,\r\n }\r\n if (bookDelete) {\r\n dispatch({\r\n type: ANN_ACTIONS.BOOKMARK_REMOVE,\r\n payload: payload,\r\n });\r\n }\r\n setCategoryOn(false);\r\n setBookmarkOpen(false);\r\n }\r\n\r\n //Handles the initial pdf download button click\r\n function pdfHandler(e) {\r\n e.preventDefault();\r\n\r\n // Save for future state\r\n // setDownloadPanelOpen(prevVal => !prevVal);\r\n const delegate = document.getElementById(\"single-pdf-download\");\r\n if (delegate !== null) {\r\n delegate.click();\r\n }\r\n else {\r\n logs.error(page.Article, \"Article\", ErrorMessages.pdfHandler, {},{eventId:ErrorCodes.Article});\r\n }\r\n }\r\n\r\n const publicationDisplayTitle = getDisplayTitle(pubData, isGuidebook);\r\n const _shouldBeFixed = shouldBeFixed; // && !isArticlePdf;\r\n const [shouldShowShareModal, setShouldShowShareModal] = useState(false);\r\n const [shouldShowOverlay, setShouldShowOverlay] = useState(false);\r\n const [isSectionPath, setIsSectionPath] = useState(false);\r\n const [FixedToolContainerStyleTop, setFixedToolContainerStyleTop] = useState(220);\r\n const [visible, setVisible] = useState(false);\r\n\r\n const [shouldShowArticlePubModal, setShouldShowArticlePubModal] = useState(false);\r\n const [publicationModalDetails, setPublicationModalDetails] = useState({});\r\n const renderEmbeddedOrNormal = () => {\r\n if (isEmbeddedMode) {\r\n return ;\r\n }\r\n return articleContent;\r\n };\r\n\r\n function shareHandler(e) {\r\n setShouldShowShareModal(true);\r\n setShouldShowOverlay(true);\r\n setIsSectionPath(false);\r\n }\r\n\r\n function annotationPanelHandler(e) {\r\n //annotation panel shows\r\n e.preventDefault();\r\n setAnnotationPanelOpen((prevVal) => !prevVal);\r\n if (!annotationPanelOpen) {\r\n setSelectedId();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!hasFetchedArticleData || !articleHasLoaded) {\r\n return;\r\n }\r\n removeLinkStyleSheet();\r\n if (articleHasLoaded === true && !UTILITIESHELPER.isNullOrUndefined(searchPhrase) && searchPhrase !== '') {\r\n // FGP: Saving, just in case\r\n // function escapedSearchVal(searchVal) {\r\n // return searchVal.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&').replace(/\"/g, '');\r\n // }\r\n // const searchVal = escapedSearchVal(paramSessStore);\r\n setSearchText(SearchHelpers.toHumanReadable(searchPhrase));\r\n setIsSearchExpanded(true);\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(searchPhrase)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'Article' });\r\n return;\r\n }\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null });\r\n }\r\n\r\n return () => {\r\n if (document.getElementsByClassName(\"search-badge-article\").length === 0) {\r\n setSearchText(\"\");\r\n sessionStorage.removeItem('searchPhraseParam');\r\n }\r\n };\r\n //eslint-disable-next-line\r\n }, [hasFetchedArticleData, articleHasLoaded]);\r\n\r\n useEffect(() => {\r\n if (downloadPanelOpen === true) {\r\n const scrolled = document.documentElement.scrollTop;\r\n resetDownloadpanelHeight(scrolled);\r\n }\r\n }, [downloadPanelOpen]);\r\n\r\n useEffect(() => {\r\n const adjustOnScroll = debounce(() => {\r\n const scrolled = document.documentElement.scrollTop;\r\n\r\n if (scrolled === 0) {\r\n setFixButtonOverlap();\r\n }\r\n // Top of Article button visible True/False\r\n if (scrolled > 300) {\r\n setVisible(true);\r\n }\r\n else if (scrolled <= 300) {\r\n setVisible(false);\r\n }\r\n\r\n resetDownloadpanelHeight(scrolled);\r\n resetannotationpanelHeight(scrolled);\r\n\r\n // Fixed side buttons scroll\r\n if (scrolled > 100) {\r\n const headerheight = 60;\r\n _StyleTop = scrolled - headerheight; //eslint-disable-line\r\n if (document.documentElement.scrollHeight - Math.ceil(document.documentElement.scrollTop) > document.documentElement.clientHeight) {\r\n if (_StyleTop > 50) {\r\n if (scrolled > 200) {\r\n setFixedToolContainerStyleTop(heighttoset + 20);\r\n }\r\n else {\r\n if (FixedToolContainerStyleTop > _StyleTop) {\r\n setFixedToolContainerStyleTop(heighttoset + _StyleTop);\r\n }\r\n }\r\n }\r\n else {\r\n setFixedToolContainerStyleTop(heighttoset + 220);\r\n }\r\n }\r\n }\r\n else {\r\n setFixedToolContainerStyleTop(heighttoset + 203);\r\n }\r\n }, 500);\r\n\r\n window.addEventListener(\"scroll\", adjustOnScroll);\r\n setFixButtonOverlap();\r\n return () => {\r\n window.removeEventListener(\"scroll\", adjustOnScroll);\r\n };\r\n }, []);\r\n\r\n\r\n function removeLinkStyleSheet() {\r\n const itemList = document.querySelectorAll(\".article-content-container a\");\r\n if (itemList && itemList.length > 0) {\r\n const items = Array.from(itemList);\r\n items.forEach((item) => {\r\n const text = decodeURI(item.href)?.toLowerCase();\r\n if (text.includes('missing href value')) {\r\n item.classList.add(\"remove-link-style\");\r\n item.removeAttribute(\"href\");\r\n item.removeAttribute(\"target\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n function resetBookmarks() {\r\n dispatch({\r\n type: ANN_ACTIONS.BOOKMARKS_RESET,\r\n });\r\n }\r\n\r\n // Fetching annotations from api on page load and memberfirm\r\n useEffect(() => {\r\n setArticleAnnotation([]);\r\n async function fetchAnnotations() {\r\n let annotations = await ANNSERVICES.fetchAnnotations(location.pathname, getMemberFirmID());\r\n setTocAnnotations(annotations);\r\n let articleAnnotations = annotations?.filter(item => item.reference_identifier === CONTEXTHELPERS.getGUIDFromContext(context));\r\n dispatch({\r\n type: ANN_ACTIONS.ANNOTATIONS_LOAD,\r\n payload: articleAnnotations,\r\n });\r\n setArticleAnnotation(articleAnnotations);\r\n }\r\n if (isAnnotationsEnabled() && !isRestrictedAccessMemberfirm() && ! (pubData?.content && pubData?.content[0]?.content_type===CONTENT_TYPE_IDS.template) ) {\r\n fetchAnnotations();\r\n }\r\n return () => {\r\n dispatch({\r\n type: ANN_ACTIONS.ANNOTATIONS_RESET\r\n });\r\n }\r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n if(JSON.stringify(articleAnnotation) !== JSON.stringify(annState.annotations)) {\r\n setArticleAnnotation(annState.annotations);\r\n }\r\n }, [annState.annotations]);\r\n\r\n function addCommentToHighlighter(item, color) {\r\n let commentEle = document.getElementById('comment' + item.annotation_guid);\r\n if (commentEle !== null) {\r\n commentEle.innerHTML = `${ReactDOMServer.renderToString(\r\n \r\n )}`;\r\n }\r\n else {\r\n item.range.collapse(false);\r\n commentEle = document.createElement(\"span\");\r\n commentEle.id = \"comment\" + item.annotation_guid;\r\n commentEle.innerHTML = `${ReactDOMServer.renderToString(\r\n \r\n )}`;\r\n let highlightedDOM = document.querySelectorAll('.highlighted');\r\n let highlighters = Array.from(highlightedDOM);\r\n const getLastMarkTag = highlighters.filter(a => a.id === item.annotation_guid).pop();\r\n if (getLastMarkTag) {\r\n getLastMarkTag.after(commentEle);\r\n }\r\n }\r\n }\r\n\r\n function removeTextFromTextAnnotations(deletedId) {\r\n //Create spanId to fetch all the deleted comment icons\r\n const spanId = '#comment' + deletedId;\r\n const Annotateitems = document.querySelectorAll('.highlighted');\r\n const items = Array.from(Annotateitems);\r\n //fetch the deleted mark tag deom all the annotations\r\n const getLastMarkTag = items?.filter(a => a.id === deletedId);\r\n const getSpanTag = document.querySelectorAll(spanId);\r\n const commentIcon = Array.from(getSpanTag);\r\n if (!UTILITIESHELPER.isArrayNullorEmpty(getLastMarkTag)) {\r\n for (var i = 0; i < getLastMarkTag.length; i++) {\r\n var text = getLastMarkTag[i].textContent || getLastMarkTag[i].innerText;\r\n var node = document.createTextNode(text);\r\n getLastMarkTag[i].parentNode.replaceChild(node, getLastMarkTag[i]);\r\n const annotationTextsCopy = [...annotationTexts]\r\n const annotationTextIndexToRemove = annotationTextsCopy.indexOf(text);\r\n annotationTextsCopy.splice(annotationTextIndexToRemove, 1);\r\n setAnnotationTexts([...annotationTextsCopy]);\r\n }\r\n }\r\n if (commentIcon.length > 0) {\r\n commentIcon[0].remove();\r\n }\r\n //annState.isSidePanelDelete = false;\r\n }\r\n\r\n function cleanHighlights() {\r\n const articleContainer = document.getElementsByClassName(\"article-content-container\")[0];\r\n if (articleContainer) {\r\n const annotateitems = articleContainer.querySelectorAll('.highlighted');\r\n if (annotateitems.length > 0) {\r\n const highlightedItems = Array.from(annotateitems);\r\n if (highlightedItems) {\r\n highlightedItems.forEach(item => {\r\n if (!articleAnnotation.map(item => item.annotation_guid)?.includes(item.id)) {\r\n removeTextFromTextAnnotations(item.id);\r\n }\r\n });\r\n }\r\n setAnnotateTerms(articleContainer.querySelectorAll('.highlighted'));\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n var articleContainer = document.getElementsByClassName(\r\n \"article-content-container\"\r\n )[0];\r\n async function isAnnotationsVersionUpdated() {\r\n if (articleAnnotation && articleAnnotation.length > 0) {\r\n articleAnnotation.filter(item => item.reference_identifier === CONTEXTHELPERS.getGUIDFromContext(context)).forEach((item) => {\r\n // checking first condition if the version of the article and the annotations are equal\r\n var currContentVersion = guidebookArticle?.version ?? articleVersion;\r\n var annotationVersion = item.version === undefined ? 1 : item.version;\r\n\r\n if (annotationVersion !== currContentVersion) {\r\n item.is_annotations_version_updated = true;\r\n setIsArticleUpdated(true);\r\n }\r\n });\r\n }\r\n else {\r\n setAnnotateTerms([]);\r\n }\r\n }\r\n\r\n function renderAnnotations () {\r\n if ((articleVersion !== 0 || guidebookArticle?.version !== undefined) &&\r\n !UTILITIESHELPER.isStringNullorEmpty(context.pageSelectedContentItemGUID) &&\r\n (UTILITIESHELPER.isStringNullorEmpty(searchPhrase) || searchPhrase.length <= 2) &&\r\n annState?.categories &&\r\n !(document.getElementsByClassName(\"search-badge-article\").length > 0) && articleContainer) {\r\n if (articleAnnotation && articleAnnotation.length > 0) {\r\n let color = '';\r\n articleAnnotation.filter(item => item.reference_identifier === CONTEXTHELPERS.getGUIDFromContext(context)).forEach((item) => {\r\n removeTextFromTextAnnotations(item.annotation_guid);\r\n color = annState?.categories.find(cat => cat.category_guid === item.category_guid)?.color;\r\n if (!UTILITIESHELPER.isStringNullorEmpty(color)) {\r\n item.range = rebuildRange(item.range_position);\r\n AnnotationHighlighter(item.range, articleContainer, color, item.annotation_guid);\r\n if (item.annotation_type === \"Comment\") {\r\n addCommentToHighlighter(item, color);\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n setAnnotateTerms([]);\r\n }\r\n }\r\n //cleaning the highlights\r\n cleanHighlights();\r\n\r\n isAnnotationsVersionUpdated();\r\n }\r\n\r\n articleAnnotation && articleAnnotation.length > 0 ? renderAnnotations():cleanHighlights();\r\n \r\n }, [searchPhrase, url, articleAnnotation, annState.categories]);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (!hasFetchedArticleData || !articleHasLoaded || !(articleAnnotation && articleAnnotation.length > 0)) {\r\n return;\r\n }\r\n if (annotationPanelOpen && selectedId) {\r\n if ((document.documentElement.scrollTop - offsetWhenAnnPanelOpened) > -100 || (!(document.documentElement.scrollTop - offsetWhenAnnPanelOpened) > 100)) {\r\n scrollToAnnotation(selectedId);\r\n }\r\n\r\n }\r\n }, [annotationPanelOpen, articleAnnotation])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n if (!hasFetchedArticleData || !articleHasLoaded) {\r\n return;\r\n }\r\n if (selectedAnnotation !== 0) {\r\n setAnnotationPanelOpen(true);\r\n setSelectedId(selectedAnnotation.annotation_guid);\r\n }\r\n\r\n return () => {\r\n setAnnotationPanelOpen(false);\r\n setSelectedAnnotation(0);\r\n }\r\n }, [])//eslint-disable-line\r\n\r\n function scrollToAnnotation(annId) {\r\n const resultsContainer = document.querySelector('.article-content-container');\r\n const Annotateitems = resultsContainer?.querySelectorAll('.highlighted');\r\n const items = Array.from(Annotateitems);\r\n const objIndex = items.findIndex((obj) => obj.id === annId);\r\n const articleContainer = document.querySelector('.article-container');\r\n let articleOffset = articleContainer.getBoundingClientRect().top;\r\n let offset = Annotateitems[objIndex]?.getBoundingClientRect().top - articleOffset;\r\n setOffsetWhenAnnPanelOpened(offset)\r\n window.scrollTo({ top: offset, left: 0, behavior: \"instant\", });\r\n }\r\n \r\n useEffect(() => {\r\n async function fetchBookmarks() {\r\n resetBookmarks();\r\n const bookmarkData = await BookmarkService.fetchBookmarks(location.pathname, getMemberFirmID());\r\n if (bookmarkData?.length > 0) {\r\n dispatch({\r\n type: ANN_ACTIONS.BOOKMARKS_LOAD,\r\n payload: bookmarkData,\r\n });\r\n }\r\n }\r\n\r\n let tocBody = document.getElementsByClassName(\"side-pannel-body\")[0];\r\n let selectedElement = document.querySelector(\".toc-item-text-container-selected\");\r\n\r\n TOCHELPERS.scrollParentToChild(tocBody, selectedElement);\r\n if (isBookmarksEnabled() && !isRestrictedAccessMemberfirm()) {\r\n fetchBookmarks();\r\n }\r\n }, [])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n setTocIconBookmark(annState?.bookmarks);\r\n const guid = CONTEXTHELPERS.getGUIDFromContext(context);\r\n var bookmarked = annState?.bookmarks?.find(q => q.reference_identifier === guid);\r\n if (bookmarked) {\r\n var catColor = \"\";\r\n if (annState?.categories?.length > 0) {\r\n const category = annState.categories.find(\r\n (obj) => obj.category_guid === bookmarked.category_guid\r\n );\r\n if (category) {\r\n catColor = category.color;\r\n }\r\n setFillColors(catColor);\r\n }\r\n setBookmarkId(bookmarked.bookmark_guid);\r\n setCategoryOn(true);\r\n setSelectedCategory(bookmarked.category_guid);\r\n }\r\n else {\r\n setBookmarkId();\r\n setCategoryOn(false);\r\n setSelectedCategory('');\r\n }\r\n }, [annState?.bookmarks, annState?.categories])//eslint-disable-line\r\n\r\n useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, []);\r\n\r\n const scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\",\r\n });\r\n }; \r\n \r\n const handleKeyDown = (event) => { \r\n if (event.altKey && event.shiftKey && event.key === 'K') {\r\n publicationModalDetails.publicationType = pubData.publication_type;\r\n publicationModalDetails.title = pubData.title;\r\n publicationModalDetails.publicationVersion = pubData.version;\r\n publicationModalDetails.industry = pubData.industry;\r\n publicationModalDetails.memberFirm = pubData.metadata.member_firm.join(\",\");\r\n publicationModalDetails.knowledgeDomain = pubData.context.knowledge_domain.join(\",\");\r\n publicationModalDetails.auditWorkflowAreaAccount = pubData.metadata.audit_workflow_area_account;\r\n publicationModalDetails.auditWorkflowAreaNonAccount = pubData.metadata.audit_workflow_area_nonaccount; \r\n publicationModalDetails.publicationReleaseDate = new Date(pubData.release_date).toLocaleString();\r\n setShouldShowArticlePubModal(true); \r\n }\r\n }; \r\n var _StyleTop;\r\n\r\n function resetDownloadpanelHeight(scrolled) {\r\n const elDownloadPanel = document.querySelector(\".download-panel\");\r\n const elheader = document.querySelector(\".header-container\");\r\n var headerheight = elheader !== null ? 88 : 50;\r\n if (elDownloadPanel !== null) {\r\n if (scrolled === 0) {\r\n if (headerheight === null) {\r\n elDownloadPanel.style.height = \"calc(99vh - 44px)\";\r\n }\r\n else {\r\n elDownloadPanel.style.height = window.innerHeight - headerheight + document.documentElement.scrollTop + 3 + \"px\";\r\n }\r\n }\r\n // else if (scrolled < 300) {\r\n // elDownloadPanel.style.height = (window.innerHeight - headerheight + document.documentElement.scrollTop + 3) + \"px\";\r\n // \r\n else {\r\n elDownloadPanel.style.height = \"\";\r\n }\r\n }\r\n }\r\n\r\n function resetannotationpanelHeight(scrolled) {\r\n const elAnnatationPanel = document.querySelector(\".annotation-panel-wrapper\");\r\n const elbreadcrumb = document.querySelector(\".crumbtrail\");\r\n const heightofcrumb = 36 - elbreadcrumb?.clientHeight;\r\n\r\n if (elAnnatationPanel !== null) {\r\n if (scrolled > 80 && scrolled < 167) {\r\n elAnnatationPanel.style.top = \"5px\";\r\n }\r\n if (scrolled > 167) {\r\n elAnnatationPanel.style.top = \"\";\r\n elAnnatationPanel.style.height = ''\r\n }\r\n\r\n if (scrolled > 0 && scrolled < 167) {\r\n if (scrolled < 85) {\r\n elAnnatationPanel.style.height = scrolled - 105 + window.innerHeight + \"px\";\r\n }\r\n\r\n if (scrolled > 85) {\r\n elAnnatationPanel.style.height = -25 + window.innerHeight + \"px\";\r\n }\r\n }\r\n\r\n if (scrolled === 0) {\r\n elAnnatationPanel.style.height = \"\";\r\n elAnnatationPanel.style.top = \"\";\r\n }\r\n\r\n if (scrolled >= 0 && scrolled < 81) {\r\n elAnnatationPanel.style.top = '';\r\n if (heightofcrumb !== 0) {\r\n elAnnatationPanel.style.top = 88 + (-scrolled) + 'px';\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setFixButtonOverlap() {\r\n const crumbtrail = document.querySelector(\".crumbtrail\");\r\n\r\n if (\r\n crumbtrail !== null &&\r\n crumbtrail.clientHeight &&\r\n crumbtrail.clientHeight > 25\r\n ) {\r\n heighttoset = crumbtrail.clientHeight;\r\n }\r\n setFixedToolContainerStyleTop(heighttoset / 2 + 220);\r\n }\r\n\r\n function handleCloseClick() {\r\n setBookmarkOpen((prevVal) => !prevVal);\r\n setshouldShowDarkOverlay(false);\r\n handlePickerClose();\r\n dispatch({ type: ANN_ACTIONS.MODAL_HIDE });\r\n }\r\n\r\n const closeNotification = () => {\r\n setIsArticleUpdated(false);\r\n }\r\n \r\n String.format = function (format) {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n return format.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setIsWideMode(false)}\r\n className={cx({ \"icon-closed-sidebar-container-fixed-nav\": _shouldBeFixed })}\r\n shouldBeFixed={_shouldBeFixed}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n  \r\n
    \r\n

    {getLabel(\"hh_HeaderMessageAnnotationPaneFirst\", \"Please visit the \")}\r\n {/*eslint-disable-next-line*/}\r\n annotationPanelHandler(e)}>Annotation panel\r\n {\r\n getLabel(\"hh_HeaderMessageAnnotationPaneFirst\", \" or see the annotations that has been affected by an article update\")\r\n }

    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n {renderEmbeddedOrNormal()}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/*isDownloadableArticle*/}\r\n \r\n {/*eslint-disable-next-line*/}\r\n \r\n \r\n \r\n \r\n \r\n { setIsWideMode(true); }} showInArticleTOC={showInArticleTOC} isFixed={_shouldBeFixed} fixedToolContainerStyleTop={FixedToolContainerStyleTop} />\r\n \r\n {/*eslint-disable-next-line*/}\r\n \r\n \r\n \r\n \r\n annotationPanelHandler(e)} title={getLabel('hh_AnnotationPannel', 'Annotation Panel')}>\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {getLabel('a_Compare', 'Compare')}
    \r\n
    {getLabel('a_Versions', 'Versions')}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {getLabel(\"a_TopOfArticle\", \"Top of Article\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {shouldShowShareModal && }\r\n \r\n \r\n \r\n \r\n {annState.isModalVisible && }\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {shouldShowDarkOverlay &&\r\n
    \r\n }\r\n
    \r\n \r\n {isPickerShown && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n )\r\n}\r\n\r\nArticle.defaultProps = {\r\n setHasFetchedArticleData: () => { },\r\n setIsJumpLinksOpen: () => { },\r\n setIsWideMode: () => { },\r\n setShouldBeFixed: () => { },\r\n setScrollPosition: () => { },\r\n showInArticleTOC: true,\r\n showSearch: true,\r\n showFixedTools: true,\r\n enableArticleTag: false\r\n};\r\n\r\nexport default Article;\r\n","import React from 'react'; // , useRef\r\nimport { get } from 'lodash';\r\nimport File from './File';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport Loading from '../Loading/Loading';\r\nimport ContentItem from './ContentItem';\r\nimport Copyright from './Copyright';\r\nimport StructuredArticle from './StructuredArticle';\r\nimport { isFile, isSection, isStructuredArticle } from '../../helpers/getComponentInfo';\r\nimport { getIsArticlePdf } from '../Publication/Article';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\n\r\nexport const RenderFormsAndTemplates = ({ pubData, excludeBinaries, isScrollDisabled = false }) => {\r\n const content = get(pubData, 'content', []);\r\n const isSingleTopic = content.length && content.length < 2 ? true : false;\r\n\r\n if (!pubData?.content) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n const getComponentArray = () => {\r\n let componentArray = [];\r\n content.forEach((processedItem) => {\r\n processedItem.containsBinary = !UTILITIESHELPER.isStringNullorEmpty(processedItem.content.binary_length);\r\n processedItem.content.uri = processedItem.content.fileGuid;\r\n if (isFile(processedItem.content_type, processedItem.containsBinary) && !isSection(processedItem.content_type)) {\r\n if (isSingleTopic === true && processedItem.containsBinary === true) {\r\n if (isStructuredArticle(processedItem.content_type)) {\r\n componentArray.push()\r\n }\r\n else {\r\n componentArray.push(\r\n \r\n )\r\n }\r\n }\r\n }\r\n else if (isStructuredArticle(processedItem.content_type)) {\r\n componentArray.push()\r\n }\r\n else {\r\n componentArray.push()\r\n }\r\n });\r\n\r\n return componentArray;\r\n }\r\n\r\n return (\r\n <>\r\n {getComponentArray()}\r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nRenderFormsAndTemplates.propsTypes = {\r\n typeName: \"RenderFormAndTemplates\"\r\n}\r\n\r\nexport default RenderFormsAndTemplates;\r\n","import React, { useEffect, useState, useCallback } from 'react'\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport cx from \"classnames\";\r\nimport RedirectModal from '../Article/RedirectModal';\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\nimport { logs, page } from '../../helpers/log';\r\nimport useDCSService from '../../services/useDCSService';\r\nimport { ACTIONS, useResearchAssistantContext } from '../../contexts/ResearchAssistantContext';\r\nimport { RESEARCH_ASSISTANT_ERROR_TYPES } from '../Constants/Constants';\r\nimport RenderFormsAndTemplates from '../Article/RenderFormsAndTemplates';\r\n\r\nexport const getIsArticlePdf = (_pubData) => {\r\n return (\r\n _pubData?.content[0]?.content?.format?.toLowerCase() === \".pdf\"\r\n );\r\n};\r\n\r\nfunction RaFormsAndTemplatesModal(props) {\r\n const { dispatch } = useResearchAssistantContext();\r\n const [shouldShowDarkOverlay] = useState(true);\r\n const { getLabel } = usePageContextLabels();\r\n const [publicationData, setPublicationData] = useState(null);\r\n const [isWideMode] = useState(false);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isRedirectModalVisible, setIsRedirectModalVisible] = useState(false);\r\n const [redirectURL, setRedirectURL] = useState('');\r\n const [shouldShowOverlayRedirect, setShouldShowOverlayRedirect] = useState(false);\r\n const [messageRedirectTL, setMessageRedirectTL] = useState('');\r\n const isArticlePdf = getIsArticlePdf(publicationData);\r\n const { memberFirms } = usePageContext();\r\n const { generateQuerySpec, retrievePublicationForTopic } = useDCSService();\r\n\r\n const renderEmbeddedOrNormal = () => {\r\n if (isLoading) {\r\n return (\r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n else {\r\n return articleContent;\r\n }\r\n };\r\n\r\n const handleDocumentClick = useCallback(async (ev) => {\r\n if (ev.target.nodeName === \"path\" && ev.target.id !== '') {\r\n ev.preventDefault();\r\n }\r\n else {\r\n let targetBaseUrl = `/${props.memberFirm}/${props.language}/${props.knowledgeDomain}`;\r\n const tocUrls = LINKHELPERS.getTocUrls(targetBaseUrl);\r\n\r\n (async () => {\r\n let navigatableLink = await LINKHELPERS.getNavigatableLink({\r\n ev,\r\n tocUrls,\r\n memberFirm: props.memberFirm, language: props.language, knowledgeDomain: props.knowledgeDomain,\r\n messageCannotOpenTab: getLabel(\"l_InternalLinkCannotBeOpenedInANewTab\", \"Internal link cannot be opened in a new tab/window in Pilot\"),\r\n messageCannotResolve: getLabel(\"l_LinkCannotBeResolved\", \"Link cannot be resolved.\"),\r\n isSearchResultLink: false,\r\n popupContent: true,\r\n memberFirms\r\n });\r\n if (navigatableLink) {\r\n if (LINKHELPERS.isLocalToThisPageLink(tocUrls, navigatableLink)) {\r\n window.open(LINKHELPERS.sanitizeUrl(navigatableLink), '_blank', 'noreferrer');\r\n }\r\n else {\r\n if (navigatableLink.split(\";\").length > 1) {\r\n // TL link : Set Redirect Modal visible and send parameters from here\r\n setMessageRedirectTL(getLabel(\"l_LinkModalViewLinkTL\", \"The content requested is not currently available in ORP. Would you like to see this content in Technical Library?\"))\r\n setRedirectURL(navigatableLink.split(\";\")[0]);\r\n setShouldShowOverlayRedirect(true);\r\n setIsRedirectModalVisible(true);\r\n }\r\n else {\r\n window.open(LINKHELPERS.sanitizeUrl(navigatableLink), '_blank', 'noreferrer');\r\n }\r\n }\r\n }\r\n })();\r\n }\r\n }, []);//eslint-disable-line\r\n\r\n const renderArticleContent = (pubData) => (\r\n \r\n );\r\n\r\n const articleContent = renderArticleContent(publicationData);\r\n\r\n const resolveFormsAndTemplatesUrl = async (topicId, publicationId) => {\r\n //retrieve Publication data for Topic\r\n const querySpec = generateQuerySpec(null, 0);\r\n querySpec.member_firm = [props.memberFirmId];\r\n querySpec.knowledge_domain = [props.knowledgeDomainId];\r\n querySpec.content_item = topicId;\r\n return await retrievePublicationForTopic(querySpec, topicId, publicationId);\r\n }\r\n\r\n const retrievePublication = useCallback(async (isCancelled) => {\r\n let errorPayload = {}\r\n try {\r\n setIsLoading(true);\r\n const publication = await resolveFormsAndTemplatesUrl(props.contentItemGuid, props.pubGuid);\r\n if (publication == null) {\r\n props.closeModal()\r\n errorPayload.errorType = RESEARCH_ASSISTANT_ERROR_TYPES.NO_CONTENT;\r\n errorPayload.hasError = true\r\n dispatch({\r\n type: ACTIONS.RA_ERROR,\r\n payload: errorPayload,\r\n })\r\n }\r\n if (!isCancelled) {\r\n if (publication) {\r\n setPublicationData(publication);\r\n setIsLoading(false);\r\n if (publication.content[0].content.format === \".pdf\" && publication.content[0].content.display_download !== \"true\") {\r\n props.closeModal()\r\n errorPayload.errorType = RESEARCH_ASSISTANT_ERROR_TYPES.NO_CONTENT\r\n errorPayload.hasError = true\r\n dispatch({\r\n type: ACTIONS.RA_ERROR,\r\n payload: errorPayload,\r\n })\r\n }\r\n }\r\n else {\r\n //we assume here that the article was not available for this MF, so we WH UP to current publication in the folio (will WH from there if that does not exist)\r\n props.closeModal();\r\n errorPayload.errorType = RESEARCH_ASSISTANT_ERROR_TYPES.NO_CONTENT;\r\n errorPayload.hasError = true\r\n dispatch({\r\n type: ACTIONS.RA_ERROR,\r\n payload: errorPayload,\r\n })\r\n }\r\n }\r\n } catch (err) {\r\n //we assume here that the article was not available for this MF, so we WH UP to current publication in the folio (will WH from there if that does not exist)\r\n logs.info(page.Catalog, 'RaFormsAndTemplatesModal', `retrievePublication::Catalog:Article was not available for this MF. pageURL: ${props.contentItemGuid}`);\r\n props.closeModal();\r\n errorPayload.errorType = RESEARCH_ASSISTANT_ERROR_TYPES.NO_CONTENT\r\n errorPayload.hasError = true\r\n dispatch({\r\n type: ACTIONS.RA_ERROR,\r\n payload: errorPayload,\r\n })\r\n }\r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n let isCancelled = false;\r\n retrievePublication(props.pageUrl, isCancelled);\r\n const articlePopupContainerElem = document.querySelector(\".search-article-container\");\r\n articlePopupContainerElem.addEventListener(\"click\", handleDocumentClick);\r\n return () => {\r\n isCancelled = true;\r\n };\r\n }, [retrievePublication, props.pageUrl, handleDocumentClick]);\r\n\r\n\r\n const searchTemplateModalStyle = {\r\n paddingBottom: isArticlePdf ? 0 : 12.5,\r\n paddingRight: isWideMode ? 70 : \"\",\r\n }\r\n\r\n return (\r\n
    \r\n {shouldShowDarkOverlay && (\r\n
    \r\n )}\r\n {\r\n
    \r\n
    \r\n
    \r\n {getLabel(\"b_BinaryDownload\", \"Download\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {renderEmbeddedOrNormal()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n}\r\n\r\nexport default RaFormsAndTemplatesModal;","import React,{useEffect, useState} from 'react'\r\nimport { GotoIcon } from './GotoIcon';\r\nimport RaFormsAndTemplatesModal from './RaFormsAndTemplatesModal';\r\n\r\nfunction FormsAndTemplatesSource({...props}) {\r\n const{ title, format, memberFirm, language, knowledgeDomain, memberFirmId, knowledgeDomainId, contentItemGuid, pubGuid } = props\r\n const[showModal, setShowModal]=useState(false);\r\n\r\n const openFormsAndTemplatesModal= async ()=>{\r\n setShowModal(true);\r\n }\r\n\r\n const closeModal = () => {\r\n setShowModal(false)\r\n }\r\n\r\n return (\r\n
    \r\n {showModal && (\r\n \r\n )}\r\n
    \r\n \r\n openFormsAndTemplatesModal()\r\n }\r\n >\r\n {title}\r\n {\r\n openFormsAndTemplatesModal()}\r\n />\r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default FormsAndTemplatesSource\r\n","import React, { useEffect, useState } from 'react'\r\nimport { RESEARCH_ASSISTANT_SOURCE_TYPES } from '../Constants/Constants'\r\nimport DocumentSource from './DocumentSource'\r\nimport FormsAndTemplatesSource from './FormsAndTemplatesSource'\r\n\r\nfunction ResolveSources({sourceType, ...props}) {\r\n\r\n switch (sourceType) {\r\n case RESEARCH_ASSISTANT_SOURCE_TYPES.DOCUMENT:\r\n return (\r\n \r\n )\r\n\r\n case RESEARCH_ASSISTANT_SOURCE_TYPES.FORMS_AND_TEMPLATES:\r\n return (\r\n \r\n )\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport default ResolveSources\r\n","import React, { useState } from \"react\";\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport FormIcon from \"./FormIcon\";\r\nimport ResolveSources from \"./ResolveSources\";\r\nimport { RESEARCH_ASSISTANT_SOURCE_TYPES } from \"../Constants/Constants\";\r\nimport CONTEXTHELPERS from \"../../helpers/ContextHelpers\";\r\nimport { GotoIcon } from \"./GotoIcon\";\r\nimport { useThemeContext } from \"../../contexts/ThemeContext\";\r\nimport { getIconSrc } from '../../components/Article/File';\r\n\r\n\r\nconst ResearchAssistantForms = ({ isResearchAssistantLoading, researchAssistantResponse }) => {\r\n const [isExpand, setIsExpand] = useState(false)\r\n const { getLabel } = usePageContextLabels();\r\n const memberFirm = CONTEXTHELPERS.getMemberFirmWithTaxonomyId(researchAssistantResponse?.inputFields?.userLibrariesSelected?.[0]);\r\n const memberFirmId = researchAssistantResponse?.inputFields?.userLibrariesSelected?.[0];\r\n const knowledgeDomain = CONTEXTHELPERS.getknowledgeDomain(researchAssistantResponse?.inputFields?.userFilterSelected?.[1]?.filterID?.[0]);\r\n const knowledgeDomainId = researchAssistantResponse?.inputFields?.userFilterSelected?.[1]?.filterID?.[0];\r\n const language = CONTEXTHELPERS.getLanguageByMemberFirm(memberFirm);\r\n const { isDarkMode } = useThemeContext();\r\n\r\n return (\r\n <>\r\n 0}>\r\n
    setIsExpand(!isExpand)}>\r\n \r\n \"down-arrow\"\r\n right-arrow \r\n

    \r\n {getLabel('ra_FormAndTemplates', 'Forms, Templates, and Examples to Consider')}\r\n

    \r\n
    \r\n \r\n
    \r\n {(isExpand && researchAssistantResponse?.formSource !== null && researchAssistantResponse?.formSource?.length > 0) && <>\r\n {researchAssistantResponse?.formSource?.map((item, index) => (\r\n
    \r\n
    \r\n \"ico\"\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ))}\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ResearchAssistantForms;","import React from \"react\";\r\n\r\nconst ShareIcon = ({ shareHandlerClick }) => {\r\n return (\r\n \r\n )\r\n}\r\nexport default ShareIcon","import React from \"react\";\r\n\r\nconst ThumbsDownIcon = ({feedBackButtonClick}) => {\r\n return (\r\n \r\n )\r\n}\r\nexport default ThumbsDownIcon","import React from \"react\";\r\n\r\nconst ThumbsUpIcon = ({feedBackButtonClick}) => {\r\n return (\r\n \r\n )\r\n}\r\nexport default ThumbsUpIcon","import React from \"react\"\r\nimport ShareIcon from \"../ShareIcon\"\r\nimport ThumbsDownIcon from \"../ThumbsDownIcon\"\r\nimport ThumbsUpIcon from \"../ThumbsUpIcon\"\r\n\r\nconst ShareReactionPanel = ({ feedBackButtonClick, shareHandlerClick }) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default ShareReactionPanel","import React, { useState, useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport IconX from '../Common/IconX';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport ResolveSources from \"./ResolveSources\";\r\nimport { RESEARCH_ASSISTANT_SOURCE_TYPES } from \"../Constants/Constants\";\r\nimport CONTEXTHELPERS from \"../../helpers/ContextHelpers\";\r\n \r\nconst FootnotePopup = ({ documentSource, currentIndex, isChat, researchAssistantResponse }) => {\r\n const [footnotePopupCoords, setFootnotePopupCoords] = useState({ x: 0, y: 0 });\r\n const [footnoteVerticalPosition, setFootnoteVerticalPosition] = useState('below');\r\n const isFootnotePositionedBelow = footnoteVerticalPosition === 'below';\r\n const [selectedFootnotePopup, setSelectedFootnotePopup] = useState()\r\n const location = useLocation();\r\n \r\n const memberFirm = CONTEXTHELPERS.getMemberFirmWithTaxonomyId(researchAssistantResponse?.inputFields?.userLibrariesSelected?.[0]);\r\n const memberFirmId = researchAssistantResponse?.inputFields?.userLibrariesSelected?.[0];\r\n const knowledgeDomain = CONTEXTHELPERS.getknowledgeDomain(researchAssistantResponse?.inputFields?.userFilterSelected?.[1]?.filterID?.[0]);\r\n const knowledgeDomainId = researchAssistantResponse?.inputFields?.userFilterSelected?.[1]?.filterID?.[0];\r\n const language = CONTEXTHELPERS.getLanguageByMemberFirm(memberFirm);\r\n \r\n const currentFootnote = (documentSource || []).find(footnote => footnote.key.toString() === selectedFootnotePopup);\r\n const modalDimensions = { height: 200, width: 425 };\r\n const offsetY = 15;\r\n \r\n const setPopupPosition = (_footnoteNum, el) => {\r\n if (!el) return;\r\n const popupBounds = el.getBoundingClientRect();\r\n const additionalPaddingBottom = 20;\r\n const amountPastViewportY = popupBounds.bottom + modalDimensions.height + offsetY + additionalPaddingBottom - window.innerHeight;\r\n const amountPastViewportXLeft = popupBounds.left - (isChat ? (window.innerWidth * 10/100) : 120) - modalDimensions.width / 2 - 30;\r\n const amountPastViewportXRight = popupBounds.right + modalDimensions.width / 2 + 30 - window.innerWidth;\r\n const offsetXLeft = amountPastViewportXLeft < 0 ? amountPastViewportXLeft : 0;\r\n const offsetXRight = amountPastViewportXRight > 0 ? amountPastViewportXRight : 0;\r\n const articleContainer = document.querySelector(`#research-assistant-box-${currentIndex}`);\r\n const bounds = articleContainer.getBoundingClientRect();\r\n const x = ((popupBounds.left + popupBounds.right) / 2) - bounds.left - offsetXLeft - offsetXRight;\r\n const y = ((popupBounds.top + popupBounds.bottom) / 2) - bounds.top;\r\n setFootnoteVerticalPosition(amountPastViewportY > 0 ? 'above' : 'below');\r\n setFootnotePopupCoords({ x, y });\r\n };\r\n \r\n useEffect(() => {\r\n const handleDocumentClick = (ev) => {\r\n if (!ev.target.classList.contains('footnote-link')) return;\r\n const footnoteNum = ev.target.dataset.footnoteNum;\r\n setSelectedFootnotePopup(footnoteNum);\r\n ev.preventDefault();\r\n setPopupPosition(footnoteNum, ev.target);\r\n }\r\n const myElem = document.getElementById(`research-assistant-box-${currentIndex}`)\r\n if (myElem) {\r\n myElem.addEventListener('click', handleDocumentClick)\r\n }\r\n return () => {\r\n if (myElem) {\r\n myElem.removeEventListener('click', handleDocumentClick);\r\n }\r\n }\r\n }, []); //eslint-disable-line\r\n \r\n useEffect(() => {\r\n const handleDocumentResize = () => {\r\n if (!selectedFootnotePopup) return;\r\n setPopupPosition(selectedFootnotePopup);\r\n }\r\n window.addEventListener('resize', handleDocumentResize);\r\n return () => {\r\n window.removeEventListener('resize', handleDocumentResize);\r\n }\r\n }, [selectedFootnotePopup])//eslint-disable-line\r\n \r\n useEffect(() => {\r\n setSelectedFootnotePopup();\r\n return () => setSelectedFootnotePopup()\r\n }, [location?.pathname]);//eslint-disable-line\r\n \r\n return (\r\n\r\n\r\n
    \r\n\r\n {currentFootnote &&\r\n\r\n }\r\n\r\n
    \r\n setSelectedFootnotePopup(false)}\r\n />\r\n\r\n
    \r\n )\r\n};\r\n \r\nexport default FootnotePopup;\r\n","import React, { useState, useEffect } from 'react';\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport { useThemeContext } from \"../../contexts/ThemeContext\";\r\nimport ResolveSources from './ResolveSources';\r\nimport { RESEARCH_ASSISTANT_SOURCE_TYPES } from '../Constants/Constants';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\n\r\nfunction ResearchAssistantSources({ isResearchAssistantLoading, researchAssistantResponse }) {\r\n const [isExpand, setIsExpand] = useState(true)\r\n const { getLabel } = usePageContextLabels();\r\n const memberFirm = CONTEXTHELPERS.getMemberFirmWithTaxonomyId(researchAssistantResponse?.inputFields?.userLibrariesSelected?.[0]);\r\n const memberFirmId = researchAssistantResponse?.inputFields?.userLibrariesSelected?.[0];\r\n const knowledgeDomain = CONTEXTHELPERS.getknowledgeDomain(researchAssistantResponse?.inputFields?.userFilterSelected?.[1]?.filterID?.[0]);\r\n const knowledgeDomainId = researchAssistantResponse?.inputFields?.userFilterSelected?.[1]?.filterID?.[0];\r\n const language = CONTEXTHELPERS.getLanguageByMemberFirm(memberFirm);\r\n const { isDarkMode } = useThemeContext();\r\n\r\n return (\r\n <>\r\n \r\n
    setIsExpand(!isExpand)}>\r\n \"up-down-arrow\"\r\n down-arrow\r\n

    \r\n {getLabel('ra_DocumentSources', 'Sources')}\r\n

    \r\n
    \r\n
    \r\n {isExpand && <>\r\n {researchAssistantResponse?.documentSource?.map((item, index) => (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ))}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default ResearchAssistantSources","import React, { useState, useRef } from \"react\";\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport cx from 'classnames';\r\nimport useDCSService from '../../services/useDCSService';\r\n\r\nfunction UserFeedbackModal({ userFeedBackType, setIsFeedBackModalOpen, isFeedBackModalOpen }) {\r\n const MAX_COMMENT_LENGTH = 2000;\r\n let btnRef = useRef();\r\n const [shouldShowDarkOverlay, setshouldShowDarkOverlay] = useState(true);\r\n const [comment, setComment] = useState(\"\");\r\n const { getLabel } = usePageContextLabels();\r\n const [selectedOptons, setSelectedOptons] = useState([]);\r\n const positiveFeedBackResponse = [\"Accuracy of Response\", \"Completeness of Response\", \"Understandability of Response\", \"Other\"];\r\n const negativeFeedBackResponse = [\"Accuracy of Response\", \"Completeness of Response\", \"Understandability of Response\", \"Incorrect Topic/Off-Topic Response\", \"Correct Response provided but sources are unrelated or incomplete\", \"Inappropriate Response provided\", \"Other\"];\r\n const { researchAssistantUserFeedback } = useDCSService();\r\n\r\n function handleChange(e) {\r\n if (e.target.checked) {\r\n setSelectedOptons([...selectedOptons, e.target.value]);\r\n } else {\r\n setSelectedOptons(selectedOptons.filter((item) => item !== e.target.value));\r\n }\r\n }\r\n\r\n function handleCloseClick() {\r\n setshouldShowDarkOverlay(false);\r\n setIsFeedBackModalOpen(false);\r\n }\r\n\r\n function handleCommentChange(e) {\r\n const value = e.target.value;\r\n setComment(value.slice(0, MAX_COMMENT_LENGTH));\r\n }\r\n\r\n const handleSaveClick = async () => {\r\n let payload = {\r\n selected_Options: selectedOptons,\r\n comment: (comment.trim() && comment.trim().length > 0) ? comment : \"\",\r\n };\r\n if (payload.selected_Options.length > 0 || payload.comment.length > 0) {\r\n alert(JSON.stringify(payload));\r\n let response = await researchAssistantUserFeedback(payload);\r\n setIsFeedBackModalOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {shouldShowDarkOverlay &&\r\n
    \r\n }\r\n
    \r\n
    \r\n
    {userFeedBackType === \"Positive\" ? getLabel(\"ra_goodresponse\", \"Good Response\") : getLabel(\"ra_notagoodresponse\", \"Not a good Response\")}
    \r\n
    \r\n
    \r\n
    {userFeedBackType === \"Positive\" ? getLabel(\"ra_goodresponsetitle\", \"What did you like about the Response? Select all that apply!\") : getLabel(\"ra_notagoodresponsetitle\", \"What did you dislike about the Response? Select all that apply!\")}
    \r\n
    \r\n \r\n {\r\n positiveFeedBackResponse.map((item, index) => {\r\n return (\r\n
    \r\n \r\n {item}\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n\r\n \r\n {\r\n negativeFeedBackResponse.map((item, index) => {\r\n return (\r\n
    \r\n \r\n {item}\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {comment.length}/{MAX_COMMENT_LENGTH}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default UserFeedbackModal;","import React, { useState } from 'react';\r\nimport ShowIf from \"../Common/ShowIf\";\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport { useThemeContext } from \"../../contexts/ThemeContext\";\r\nimport { MEMBERFIRM_CONSTANTS, RESEARCH_ASSISTANT } from '../Constants/Constants';\r\n\r\nexport default function ResearchAssistantNotableExclusions({ isResearchAssistantLoading, researchAssistantResponse }) {\r\n const [isExpand, setIsExpand] = useState(false)\r\n const { getLabel } = usePageContextLabels();\r\n const { isDarkMode } = useThemeContext();\r\n\r\n\r\n return (\r\n <>\r\n \r\n
    setIsExpand(!isExpand)}>\r\n \"down-arrow\"\r\n right-arrow\r\n

    \r\n {getLabel('ra_NotableExclusions', 'Content Excluded from Response')}\r\n

    \r\n
    \r\n
    \r\n {(isExpand && !isResearchAssistantLoading && researchAssistantResponse !== null &&\r\n
    \r\n
      \r\n
    • {getLabel(\"ra_ProfessionalStandardContentExclusion\", RESEARCH_ASSISTANT.contentExclustionProfessionalStandard)}
    • \r\n
    • {getLabel(\"ra_DeloitteCommunicationContentExclusion\", RESEARCH_ASSISTANT.contentExclustionDeloitteCommunication)}
    • \r\n {researchAssistantResponse.memberFirm === MEMBERFIRM_CONSTANTS.us &&
    • {getLabel(\"ra_ConditionalStringUS\", RESEARCH_ASSISTANT.conditionalStringUS)}
    • }\r\n
    \r\n
    \r\n )}\r\n \r\n )\r\n}\r\n","import React, { useRef, useState } from \"react\";\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport useOutsideClick from \"../../hooks/useOutsideClick\";\r\nimport { RESEARCH_ASSISTANT } from \"../Constants/Constants\";\r\n\r\nconst ResearchAssistantInfoModal = ({ handlePopup }) => {\r\n const raInfoModalRef = useRef(null)\r\n const [showTermsAndCondition, setShowTermsAndCondition] = useState(false)\r\n const { getLabel, userCountry } = usePageContextLabels()\r\n\r\n useOutsideClick(raInfoModalRef, () => {\r\n handlePopup(null);\r\n }, []);\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {getLabel('ra_title', 'Research Assistant')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {getLabel('ra_Introduction', RESEARCH_ASSISTANT.raIntroduction)}

    \r\n
    \r\n
    \r\n {!showTermsAndCondition &&\r\n
    \r\n \r\n
    \r\n }\r\n {showTermsAndCondition && <>\r\n \r\n
    \r\n {getLabel('ra_TermsOfUse', RESEARCH_ASSISTANT.termsofuse)}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default ResearchAssistantInfoModal","import React, { useEffect, useState } from 'react';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport AskFollowUpButton from '../Common/AskFolllowUpButton';\r\nimport ResearchAssistantForms from './ResearchAssistantForms';\r\nimport { usePageContextLabels } from \"../../contexts/PageContext\";\r\nimport ShareReactionPanel from '../Common/ShareReactionPanel';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport FootnotePopup from './FootNotePopup';\r\nimport FilterValue from './FilterValue';\r\nimport ResearchAssistantSources from './ResearchAssistantSources';\r\nimport UserFeedbackModal from './UserFeedbackModal';\r\nimport ShareModal from '../Article/ShareModal';\r\nimport ResearchAssistantNotableExclusions from './ResearchAssistantNotableExclusions';\r\nimport { MEMBERFIRM_CONSTANTS, RESEARCH_ASSISTANT } from '../Constants/Constants';\r\nimport ResearchAssistantMessage from './ResearchAssistantMessage';\r\nimport ResearchAssistantInfoModal from './ResearchAssistantInfoModal';\r\nimport { ACTIONS, useResearchAssistantContext } from '../../contexts/ResearchAssistantContext';\r\nimport { useThemeContext } from '../../contexts/ThemeContext';\r\nfunction ChatbotResearchAssistant(\r\n {\r\n expandMore,\r\n setExpandMore,\r\n isResearchAssistantLoading,\r\n researchAssistantResponse,\r\n isConversationalMode,\r\n searchPhrase,\r\n countId,\r\n messgaeResponse,\r\n currentIndex = 1,\r\n isChat = false,\r\n handleAskFollowUpButton,\r\n errorMessage\r\n }\r\n) {\r\n const { getLabel } = usePageContextLabels();\r\n const [questiontitle, setquestionTitle] = useState(\"\");\r\n const [shouldShowShareModal, setShouldShowShareModal] = useState(false);\r\n const [shouldShowOverlay, setShouldShowOverlay] = useState(false);\r\n const [isSectionPath, setIsSectionPath] = useState(false);\r\n const [closedToolbar, setClosedToolbar] = useState(false);\r\n const { dispatch, state: raState } = useResearchAssistantContext();\r\n const [converstionpageQuestion, setConverstionpageQuestion] = useState(\"\");\r\n const [researchAssitantResponse, setresearchAssitantResponse] = useState(\"\")\r\n const { isDarkMode } = useThemeContext()\r\n const [interval, setIntervalLimit] = useState(null)\r\n const shareHandlerClick = () => {\r\n if (messgaeResponse && countId) {\r\n\r\n const question = messgaeResponse?.find((data) => (\r\n data.id === countId && data.type === \"Query\"\r\n ))\r\n setConverstionpageQuestion(question.response)\r\n const questionResponse = messgaeResponse?.find((data) => (\r\n data.id === countId && data.type === \"Answer\"\r\n ))\r\n setresearchAssitantResponse(questionResponse?.response)\r\n }\r\n setShouldShowShareModal(true);\r\n setShouldShowOverlay(true);\r\n setIsSectionPath(false);\r\n }\r\n\r\n\r\n const questions = searchPhrase\r\n useEffect(() => {\r\n\r\n setquestionTitle(questions);\r\n }, [questions])\r\n const [message, setMessage] = useState()\r\n const [chatResponse, setChatResponse] = useState()\r\n const [documentSource, setDocumentSource] = useState()\r\n const [isFeedBackModalOpen, setIsFeedBackModalOpen] = useState(false);\r\n const [isFeedBackType, setFeedBackType] = useState('');\r\n\r\n useEffect(() => {\r\n if(JSON.stringify(researchAssistantResponse?.response) !== JSON.stringify(chatResponse)) {\r\n const { message, documentSource } = UTILITIESHELPER.replaceFootnoteWithLinkInChat(researchAssistantResponse)\r\n setMessage(message)\r\n setDocumentSource(documentSource)\r\n setChatResponse(researchAssistantResponse?.response)\r\n }\r\n }, [researchAssistantResponse?.response])\r\n\r\n function callDynamicText(text, searchinfo, index) {\r\n const container = document.getElementById('text-wrapper');\r\n if (container) {\r\n container.innerHTML='';\r\n container.classList = `loading loading02 loader-title${index}`\r\n container.style.animationDuration = `${window.DART.ENV.RA_LOADER_ANIMATION_TIME_DIFFERENCE/1000}s`\r\n text.split(' ').forEach((char, index) => {\r\n const span = document.createElement('span');\r\n span.innerHTML = char + ' ';\r\n span.style.animationDelay = `${index * 0.05}s`;\r\n container.appendChild(span);\r\n });\r\n const infoElement = document.getElementById('text-info')\r\n if(infoElement) {\r\n infoElement.style.animationDuration = `${window.DART.ENV.RA_LOADER_ANIMATION_TIME_DIFFERENCE/1000 + .2}s`\r\n infoElement.innerHTML = searchinfo\r\n infoElement.classList = `textbracket loader-description${index}`\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n if (!isResearchAssistantLoading) {\r\n clearInterval(interval)\r\n }\r\n if (isResearchAssistantLoading) {\r\n callDynamicText(getLabel('ra_Analyzing_Question', 'Analyzing question...'), getLabel('ra_Analyzing_Question_Descrption', '(Hold tight, average response time is 15 seconds)'), 1);\r\n let count = 0\r\n var loaderInterval = setInterval(() => {\r\n if(count === 0) {\r\n callDynamicText(getLabel('ra_SearchingForResources', 'Searching for sources...'), getLabel('ra_SearchingForResources_Description', '(Scanning manuals and folios for you...don\\'t refresh!)'), 2);\r\n } else if(count === 1) {\r\n callDynamicText(getLabel('ra_Reading_Resources', 'Reading sources...'), getLabel('ra_Reading_Resources_Description', '(Carefully reviewing what I found...hang in there!)'), 3);\r\n } else if(count === 2) {\r\n callDynamicText(getLabel('ra_Writing_Response', 'Writing response...'), getLabel('ra_Writing_Response_Description', '(Pulling it all together...don\\'t refresh!)'), 4);\r\n } else {\r\n callDynamicText(getLabel('ra_DoubleCheckingResponse', 'Double checking response...'), getLabel('ra_DoubleCheckingResponse_Description', '(Giving it a quick review...thanks for waiting!)'), 5);\r\n }\r\n count++;\r\n }, window.DART.ENV.RA_LOADER_ANIMATION_TIME_DIFFERENCE)\r\n setIntervalLimit(loaderInterval)\r\n }\r\n }, [isResearchAssistantLoading]);\r\n\r\n const feedBackButtonClick = (feedBackType) => {\r\n window.open(window.DART.ENV.RA_FEEDBACK_URL, \"_blank\");\r\n //This feature no longer need for current release\r\n // setIsFeedBackModalOpen(true);\r\n // setFeedBackType(feedBackType);\r\n }\r\n const handlePopup = (popupIndex) => {\r\n dispatch({\r\n type: ACTIONS.RA_INFO_INDEX,\r\n payload: popupIndex,\r\n })\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {currentIndex === raState.selectedInfoIndex && }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {expandMore ?\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n :\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n \r\n
    \r\n \r\n
    \r\n

    {errorMessage}

    \r\n
    \r\n
    \r\n \r\n
    \r\n

    {getLabel('ra_unable_to_retrive', 'Unable to retrieve answer. Please try again later.')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ChatbotResearchAssistant","import React, { useState } from 'react'\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport { RESEARCH_ASSISTANT } from '../Constants/Constants';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nconst TosDeclaration = ({ handleIAgreeClick, isConvoPage, userCountry }) => {\r\n const { getLabel } = usePageContextLabels();\r\n const [expandMore, setExpandMore] = useState(isConvoPage ? false : true);\r\n\r\n return (
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {expandMore ?\r\n <>\r\n \r\n
    \r\n

    {getLabel('ra_Introduction', RESEARCH_ASSISTANT.raIntroduction)}

    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n : <>\r\n \r\n
    \r\n

    {getLabel('ra_Introduction', RESEARCH_ASSISTANT.raIntroduction)}

    \r\n
    \r\n\r\n
    \r\n
    {getLabel('ra_TocTitle', 'Generative AI Research Assistant – Acceptable Use Guidelines')}
    \r\n
    \r\n
    \r\n {getLabel('ra_TermsOfUse', RESEARCH_ASSISTANT.termsofuse)}\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    );\r\n}\r\n\r\nexport default TosDeclaration","import React, { useState, useEffect } from 'react';\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\nimport { useParams } from 'react-router-dom';\r\nimport { get } from 'lodash';\r\nimport SearchHelpers from '../../helpers/SearchHelpers';\r\nimport ChatBotCatalogSearchResultItem from '../../components/ChatBot/ChatBotCatalogSearchResultItem';\r\nimport cx from 'classnames';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { ErrorTypes } from '../Constants/Errors';\r\nimport { SCS_KEYS, getFallback } from '../Constants/SCSConstants';\r\nimport { appInsightUIMapping } from '../../helpers/log';\r\nimport ChatbotResearchAssistant from './ChatbotResearchAssistant';\r\nimport useDCSService from '../../services/useDCSService';\r\nimport { RESEARCH_ASSISTANT_FILTERS, RESEARCH_ASSISTANT} from '../Constants/Constants';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport { ACTIONS, useResearchAssistantContext } from '../../contexts/ResearchAssistantContext';\r\nimport TosDeclaration from './TosDeclaration';\r\n\r\nfunction ChatbotModal({ isResultLoading,\r\n searchOrder, filteredSearchResults,\r\n isSearchActive, counterSectionsResult,\r\n showResults, catalogs, showResaechAssistantModal, setshowResaechAssistantModal, isResearchAssistantEnabled, className, parentOnTrigger, searchResearchAssistant, setSearchResearchAssistant, expandMore, setExpandMore,\r\n searchTrigger, setSearchTrigger\r\n }) {\r\n const params = useParams();\r\n const { knowledgeDomain, memberFirm, language } = params;\r\n const { searchPhrase, setSearchPhrase, setNotification, tier ,getMemberFirmID, context, userCountry } = usePageContext();\r\n const { getLabel, getMFLabel } = usePageContextLabels();\r\n const wildcardsPrefixSearchLimitationNotification = getLabel(SCS_KEYS.wildcardsPrefixSearchLimitation, getFallback(SCS_KEYS.wildcardsPrefixSearchLimitation));\r\n const [researchAssistantResponse, setResearchAssistantResponse] = useState();\r\n const [searchContent, setSearchContent] = useState('')\r\n const { retrieveChatBotSearchResult } = useDCSService();\r\n const [isResearchAssistantLoading, setIsResearchAssistantLoading] = useState(false);\r\n const { dispatch, state: raState, tosAgreed, setTosAgreed } = useResearchAssistantContext();\r\n const [raApiFailure, setRaApiFailure ] = useState(null);\r\n\r\n useEffect(() => {\r\n setSearchContent(searchPhrase)\r\n }, [searchPhrase])\r\n\r\n function getCatalogTitleByKey(key) {\r\n let catalogTitle = \"\";\r\n let viewAllLink = \"\";\r\n let friendlyUrl = \"\";\r\n\r\n const isFolio = key === \"folio\";\r\n\r\n catalogs.forEach((catalog) => {\r\n const isMatchingCatalog = isFolio ? catalog.collectionType === 'folio' : catalog?.publicationType === key;\r\n\r\n if (isMatchingCatalog) {\r\n catalogTitle = getMFLabel(get(catalog, 'title'), []);\r\n friendlyUrl = get(catalog, 'collectionType', '');\r\n viewAllLink = ((friendlyUrl.indexOf(\"dashboard\") > -1) ? friendlyUrl : [knowledgeDomain, \"collection\", friendlyUrl].join(\"/\")) + '?' + SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase));\r\n }\r\n })\r\n\r\n\r\n return { 'catalogTitle': catalogTitle, 'viewAllLink': viewAllLink, 'friendlyUrl': friendlyUrl };\r\n }\r\n\r\n const handleAskFollowUpButton = () => {\r\n UTILITIESHELPER.setRATakeOverData(context, tier, JSON.stringify(researchAssistantResponse), getMemberFirmID());\r\n window.open(RESEARCH_ASSISTANT.RA_CONVO_URL, \"_blank\");\r\n }\r\n\r\n const getIconSrc = (friendlyUrl) => {\r\n if (!UTILITIESHELPER.isStringNullorEmpty(friendlyUrl)) {\r\n if (friendlyUrl === \"folio\")\r\n return '/images/folio-tile.svg';\r\n else if (friendlyUrl === \"manual\")\r\n return '/images/manual-tile.svg';\r\n else if (friendlyUrl === \"standards\")\r\n return '/images/standard-tile.svg';\r\n else if (friendlyUrl === \"deloitte-communications\")\r\n return '/images/deloitte-tile.svg';\r\n else if (friendlyUrl === \"professional-news\")\r\n return '/images/external-tile.svg';\r\n else\r\n return '/images/undefined-doc.svg';\r\n }\r\n else {\r\n return '/images/undefined-doc.svg';\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n const signal = controller.signal\r\n const fetchChatBotResponse = async () => {\r\n if(!showResaechAssistantModal) return\r\n try {\r\n setIsResearchAssistantLoading(true);\r\n //This Payload will get updated in next upcoming sprint\r\n var payload = {\r\n consentToRetainData: true,\r\n userLibrariesSelected: [`${getMemberFirmID()}`],\r\n userFilterSelected: [\r\n {\r\n filterField: RESEARCH_ASSISTANT_FILTERS.Frameworks,\r\n filterID: tier[memberFirm] && tier[memberFirm][knowledgeDomain] && tier[memberFirm][knowledgeDomain].length ? tier[memberFirm][knowledgeDomain].map(x => x.id) : []\r\n },\r\n {\r\n filterField: RESEARCH_ASSISTANT_FILTERS.KnowledgeDomain,\r\n filterID: [`${CONTEXTHELPERS.getknowledgeDomainId(knowledgeDomain)}`]\r\n }\r\n ],\r\n currentMessage: searchPhrase,\r\n previousMessages: []\r\n }\r\n \r\n let chatbotres = await retrieveChatBotSearchResult(payload, signal);\r\n if(chatbotres){\r\n if(chatbotres instanceof Error){\r\n setRaApiFailure(chatbotres.message);\r\n setResearchAssistantResponse({});\r\n }\r\n else{\r\n chatbotres.tier = tier[memberFirm] && tier[memberFirm][knowledgeDomain] && tier[memberFirm][knowledgeDomain].length ? tier[memberFirm][knowledgeDomain].sort((a, b) => a.id - b.id).map(x => x.value) : [];\r\n chatbotres.memberFirm = memberFirm\r\n chatbotres.knowledgeDomain=knowledgeDomain\r\n setResearchAssistantResponse(chatbotres)\r\n setRaApiFailure(null);\r\n }\r\n }\r\n setIsResearchAssistantLoading(false);\r\n }\r\n catch (err) {\r\n if(!signal.aborted) {\r\n setResearchAssistantResponse({});\r\n setIsResearchAssistantLoading(false);\r\n setRaApiFailure(null);\r\n }\r\n }\r\n }\r\n\r\n if (getMemberFirmID() && isResearchAssistantEnabled) {\r\n fetchChatBotResponse();\r\n }\r\n return () => {\r\n controller.abort()\r\n }\r\n\r\n }, [searchResearchAssistant, searchTrigger])//eslint-disable-line\r\n\r\n const handleIAgreeClick = async () => {\r\n UTILITIESHELPER.setLocalStorage(\"ra_tou_agreed_status\", true);\r\n UTILITIESHELPER.setLocalStorage(\"ra_tou_agreed_version\", String(window.DART.ENV.RA_TOSDESC_VERSION));\r\n setTosAgreed(true);\r\n };\r\n\r\n function closeModal() {\r\n setExpandMore(true);\r\n setIsResearchAssistantLoading(false);\r\n setshowResaechAssistantModal(false);\r\n document.body.style.overflow = 'auto';\r\n if(raState.selectedInfoIndex > -1) {\r\n dispatch({\r\n type: ACTIONS.RA_INFO_INDEX,\r\n payload: null\r\n })\r\n }\r\n }\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setExpandMore(true);\r\n const _searchPhrase = searchContent.trim();\r\n if (UTILITIESHELPER.isStringNullorEmpty(_searchPhrase) || _searchPhrase.length < 2) {\r\n alert(getLabel(\"s_SearchPhraseTooShort\", \"Phrase too short (for now)\"));\r\n return;\r\n }\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(_searchPhrase)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'CollectionSearchbar' });\r\n return;\r\n }\r\n if(raState.selectedInfoIndex > -1) {\r\n dispatch({\r\n type: ACTIONS.RA_INFO_INDEX,\r\n payload: null\r\n })\r\n }\r\n };\r\n\r\n const handleChange = event => {\r\n setSearchContent(event.target.value)\r\n };\r\n\r\n const handleKeyDown = (event) => {\r\n if (event.key === 'Enter') {\r\n setExpandMore(true);\r\n setSearchPhrase(searchContent)\r\n parentOnTrigger(searchContent);\r\n setSearchTrigger((prev) => prev + 1) \r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n 0}>\r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n searchOrder.map((key, idx) => {//eslint-disable-line\r\n const obj = getCatalogTitleByKey(key);\r\n if (obj.catalogTitle !== \"\") {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"ico\"\r\n
    \r\n
    {obj.catalogTitle.toUpperCase()}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n }\r\n\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {getLabel(\"s_SearchReturnedNoResults\", \"Your search returned no results\")}\r\n
    \r\n
    \r\n
    \r\n 0}>\r\n
    \r\n {\r\n searchOrder.map((key, idx) => { //eslint-disable-line\r\n if (filteredSearchResults[key]) {\r\n const obj = getCatalogTitleByKey(key);\r\n if (obj.catalogTitle !== \"\") {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"ico\" \r\n
    \r\n
    {obj.catalogTitle.toUpperCase()}
    \r\n \r\n
    \r\n\r\n {filteredSearchResults[key]?.map((result, index) => { //eslint-disable-line\r\n if (index < get(window, 'DART.ENV.REACT_APP_CATALOG_SEARCH_LIMIT', 3)) {\r\n result[\"url\"] = LINKHELPERS.resolveSearchLink(result, memberFirm, language, knowledgeDomain, obj.friendlyUrl, searchPhrase, catalogs, true);\r\n return (\r\n \r\n )\r\n }\r\n })}\r\n
    \r\n )\r\n }\r\n }\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {getLabel(\"s_SearchReturnedNoResults\", \"Your search returned no results\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ChatbotModal\r\n","import React from 'react'\r\nimport ShowIf from '../Common/ShowIf';\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport { ErrorCodes,ErrorMessages } from '../Constants/Errors';\r\nimport { page,logs } from '../../helpers/log';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport { RESEARCH_ASSISTANT_ERROR_TYPES } from '../Constants/Constants';\r\n\r\nexport default function ResearchAssistantErrorMessage(props) {\r\n const { getLabel } = usePageContextLabels()\r\n\r\n const errorMapping = (errorType) => {\r\n switch (errorType) {\r\n case RESEARCH_ASSISTANT_ERROR_TYPES.NO_CONTENT:\r\n return {\r\n label: 'err_ContentErrorMessage',\r\n fallback:\r\n 'Oh no, something has gone wrong! Please try again later. If the problem persists, please contact support. Code – ',\r\n errorCode: ErrorCodes.Publication,\r\n }\r\n default:\r\n return {\r\n label: '',\r\n fallback: '',\r\n errorCode: '',\r\n }\r\n }\r\n }\r\n\r\n const {label, fallback, errorCode} = errorMapping(props.errorType);\r\n return (\r\n
    \r\n  \r\n

    \r\n {getLabel(\r\n label,\r\n fallback\r\n )}{' '}\r\n {errorCode}\r\n

    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { get } from 'lodash'\r\nimport { useParams } from 'react-router-dom'\r\nimport { logs, page } from '../../helpers/log'\r\nimport RETRIEVALSERVICES from '../../services/rp-service'\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper'\r\nimport {\r\n usePageContext,\r\n usePageContextLabels,\r\n usePageContextSettings,\r\n} from '../../contexts/PageContext'\r\nimport { useLoadingContext } from '../../contexts/LoadingContext'\r\nimport { useThemeContext } from '../../contexts/ThemeContext'\r\nimport ShowIf from '../Common/ShowIf'\r\nimport WormholeNotification from '../Notification/WormholeNotification'\r\nimport CollectionSearchbar from './CollectionSearchbar'\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext'\r\nimport SearchHelpers from '../../helpers/SearchHelpers'\r\nimport RecentViewedService from '../../helpers/RecentlyViewedServices'\r\nimport { useLocation } from 'react-router-dom'\r\nimport RecentlyViewedHelper from '../../helpers/RecentlyViewedHelper'\r\nimport { ErrorCodes, ErrorMessages } from '../Constants/Errors'\r\nimport CatalogCards from './CatalogCards'\r\nimport useCatalogSearchQuery from '../../hooks/useCatalogSearchQuery'\r\nimport ChatbotModal from '../ChatBot/ChatbotModal';\r\nimport cx from \"classnames\";\r\nimport ResearchAssistantErrorMessage from '../Common/ResearchAssistantErrorMessage'\r\nimport { useResearchAssistantContext, ACTIONS } from '../../contexts/ResearchAssistantContext'\r\nimport { ACTION, useFolioPickerContext } from '../../contexts/FolioPickerContext';\r\n\r\nconst Catalog = () => {\r\n const params = useParams()\r\n const { knowledgeDomain, memberFirm, language } = params\r\n const [data, setData] = useState({})\r\n const [catalogs, setCatalogs] = useState([])\r\n const { isLoading, setIsLoading } = useLoadingContext()\r\n const [isResultLoading, setIsResultLoading] = useState(false)\r\n const { state, folioDispatch } = useFolioPickerContext();\r\n const {\r\n setPageTitle,\r\n currentTier, currentIndustry,\r\n tierVal,\r\n industryVal,\r\n searchPhrase,\r\n setSearchPhrase,\r\n contextMemberFirm,\r\n getMemberFirmID,\r\n setIsResearchAssistantEnabled,\r\n isResearchAssistantEnabled,\r\n countryKDSettings,\r\n context\r\n } = usePageContext()\r\n const {\r\n isDashboardEnabled,\r\n isRecentlyViewedEnabled,\r\n } = usePageContextSettings()\r\n const { getLabel,getMFLabel } = usePageContextLabels()\r\n const { isDarkMode } = useThemeContext()\r\n const [isFixed] = useState(false)\r\n const [isSearchActive, setIsSearchActive] = useState(false)\r\n const [isSearchSubmit, setSearchSubmit] = useState(false)\r\n const searchProps = {\r\n eventType: 'search',\r\n searchLocation: window.location.href,\r\n jobTitle: UTILITIESHELPER.getSessionStorage('Level'),\r\n memberFirm: UTILITIESHELPER.getSessionStorage(\r\n 'research-portal-member-firm'\r\n ),\r\n }\r\n const location = useLocation()\r\n const {\r\n filteredSearchResults,\r\n setFilteredSearchResults,\r\n } = useSearchResultContext()\r\n const [showNoResults, setShowNoResults] = useState(false);\r\n const [showResults, setShowResults] = useState(false);\r\n const [searchOrder, setSearchOrder] = useState([\r\n '60194861', //folios\r\n '60194866', //manuals\r\n '60194865', //standards\r\n '60194864', //Deloitte-communications\r\n '65511719', //Announcements\r\n ])\r\n const [counterSectionsResult, setCounterSectionsResult] = useState(0)\r\n const [catalogSearchPhrase, setCatalogSearchPhrase] = useState('')\r\n const wormholeStyling = { marginRight: '35px', marginTop: '7px' }\r\n const [showResaechAssistantModal, setshowResaechAssistantModal] = useState(false);\r\n const [searchResearchAssistant, setSearchResearchAssistant] = useState(false);\r\n const [isSearchPhraseExist, setIsSearchPhraseExist] = useState(false);\r\n const isResearchAssistantEnabledForKD = UTILITIESHELPER.isResearchAssistantEnabledForKD(countryKDSettings, context.memberFirm, context.knowledgeDomain);\r\n const isResearchAssistantActiveForUser = isResearchAssistantEnabled && isResearchAssistantEnabledForKD ? true : false;\r\n const { dispatch, state: raState } = useResearchAssistantContext();\r\n const [expandMore, setExpandMore] = useState(true);\r\n const [ searchTrigger, setSearchTrigger ] = useState(0)\r\n\r\n useEffect(() => {\r\n setIsSearchActive(false);\r\n const searchValueRA = localStorage.getItem('research-assistant-searchphrase');\r\n if(searchValueRA){\r\n setIsSearchPhraseExist(true);\r\n setSearchPhrase(searchValueRA);\r\n localStorage.removeItem('research-assistant-searchphrase');\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const fetchCatalogData = async () => {\r\n try {\r\n setPageTitle('')\r\n setIsLoading(true)\r\n setshowResaechAssistantModal(false);\r\n document.body.style.overflow = 'auto';\r\n const res = await RETRIEVALSERVICES.retrieveCatalog()\r\n logs.debug(page.Catalog, 'retrieveCatalog', 'retrieveCatalog:res', res)\r\n \r\n const taxonomyData= res.CatalogCollection[0].taxonomylist;\r\n \r\n\r\n const payload = {\r\n folioLists: taxonomyData,\r\n memberFirm:context.memberFirm\r\n }\r\n \r\n folioDispatch({\r\n type: ACTION.FOLIOPICKER_LOAD_TAXONOMY,\r\n payload: payload,\r\n\r\n\r\n })\r\n\r\n setData(res)\r\n setPageTitle(get(res, 'pageTitle'))\r\n } catch (err) {\r\n logs.error(\r\n page.Catalog,\r\n 'fetchRecentHistory',\r\n ErrorMessages.recentHistoryData,\r\n err,\r\n { eventId: ErrorCodes.Catalog }\r\n )\r\n }\r\n }\r\n\r\n fetchCatalogData()\r\n const mf = UTILITIESHELPER.getSessionStorage('MemberFirm')\r\n logs.trackPageView({\r\n name: 'Catalog - ' + knowledgeDomain + ' ' + mf,\r\n properties: {\r\n memberFirm: mf,\r\n serviceArea: UTILITIESHELPER.getSessionStorage('ServiceArea'),\r\n level: UTILITIESHELPER.getSessionStorage('Level'),\r\n },\r\n })\r\n\r\n return () => setPageTitle('')\r\n }, [memberFirm, language, knowledgeDomain, currentIndustry, currentTier, tierVal, industryVal]) //eslint-disable-line\r\n\r\n const shouldShowCard = (collection) => {\r\n const friendlyUrl = get(collection, 'collectionType', '')\r\n const viewAllLink =\r\n friendlyUrl.indexOf('dashboard') > -1\r\n ? [friendlyUrl].join('/')\r\n : ['collection', friendlyUrl].join('/')\r\n\r\n let show = true\r\n // If the collection is a dashboard and the dashboard is disabled, hide the card\r\n if (viewAllLink.indexOf('dashboard') > -1 && !isDashboardEnabled()) {\r\n show = false\r\n }\r\n\r\n // If the collection is a recently viewed and the recently viewed is disabled, hide the card\r\n if (\r\n collection.collectionType.indexOf('history') > -1 &&\r\n !isRecentlyViewedEnabled()\r\n ) {\r\n show = false\r\n }\r\n\r\n // By default show the card, add exceptions above if needed\r\n return show\r\n }\r\n\r\n useEffect(() => {\r\n const fetchCatalogHistoryData = async (_data) => {\r\n const resultLimit = _data?.CatalogCollection?.find(\r\n (q) => q.collectionType === 'dashboard/history'\r\n )?.resultLimit\r\n const recentHistoryList = JSON.parse(UTILITIESHELPER.getLocalStorage('recent-view-history'))\r\n const resCatalogHistory = recentHistoryList?.[context.memberFirm]?.[context.knowledgeDomain]?.slice(0,3) || []\r\n logs.debug(\r\n page.Catalog,\r\n 'fetchCatalogHistory',\r\n 'fetchCatalogHistory:resCatalogHistory',\r\n resCatalogHistory\r\n )\r\n const recentHistory = RecentlyViewedHelper.generateRecentHistoryLinks(\r\n resCatalogHistory\r\n )\r\n const dataWithHistory = RecentlyViewedHelper.setRecentHistoryLinks(\r\n data,\r\n recentHistory\r\n )\r\n let catalogCollections = get(dataWithHistory, 'CatalogCollection', [])\r\n const filteredCatalogs = catalogCollections.filter((catalog) =>\r\n shouldShowCard(catalog)\r\n )\r\n\r\n setCatalogs(filteredCatalogs)\r\n setIsLoading(false)\r\n if(isSearchPhraseExist){\r\n handleSearchTrigger(searchPhrase);\r\n }\r\n }\r\n\r\n const memberFirmID = getMemberFirmID()\r\n\r\n if (!UTILITIESHELPER.isNullOrUndefined(memberFirmID)) {\r\n let catalogCollections = get(data, 'CatalogCollection', [])\r\n if (catalogCollections.length > 0) {\r\n //If recently viewed is enabled, we need to load the history into this object before we load the catalog boxes\r\n if (isRecentlyViewedEnabled()) {\r\n fetchCatalogHistoryData(data)\r\n } else {\r\n const filteredCatalogs = catalogCollections.filter((catalog) =>\r\n shouldShowCard(catalog)\r\n )\r\n\r\n setCatalogs(filteredCatalogs)\r\n setIsLoading(false)\r\n }\r\n }\r\n }\r\n }, [contextMemberFirm, data]) //eslint-disable-line\r\n\r\n const handleSearchTrigger = (typedSearchPhrase) => {\r\n if (\r\n searchPhrase !== '' &&\r\n typedSearchPhrase !== '' &&\r\n String(typedSearchPhrase)?.length > 1\r\n ) {\r\n setSearchResearchAssistant(!searchResearchAssistant);\r\n setshowResaechAssistantModal(true);\r\n document.body.style.overflow = 'hidden';\r\n setExpandMore(true);\r\n setSearchSubmit(true)\r\n if (\r\n String(typedSearchPhrase.toUpperCase()) ===\r\n catalogSearchPhrase.toUpperCase() &&\r\n catalogSearchQueryresults\r\n ) {\r\n setFilteredSearchResults(catalogSearchQueryresults)\r\n setShowNoResults(\r\n Object.values(catalogSearchQueryresults).every(\r\n (arr) => Array.isArray(arr) && arr.length === 0\r\n )\r\n ? true\r\n : false\r\n )\r\n } else {\r\n setShowNoResults(false)\r\n setIsResultLoading(true)\r\n setCatalogSearchPhrase(typedSearchPhrase)\r\n }\r\n } else {\r\n setSearchSubmit(false)\r\n setIsResultLoading(false)\r\n setFilteredSearchResults([])\r\n setShowNoResults(false)\r\n }\r\n}\r\n\r\n const { data: catalogSearchQueryresults } = useCatalogSearchQuery(\r\n catalogSearchPhrase,\r\n isSearchSubmit\r\n )\r\n useEffect(() => {\r\n if (catalogSearchQueryresults && isSearchSubmit === true) {\r\n if (String(catalogSearchPhrase)?.length > 1 && catalogSearchPhrase) {\r\n searchProps.searchText = catalogSearchPhrase\r\n logs.event('search', searchProps)\r\n\r\n Object.keys(catalogSearchQueryresults).forEach((key) => {\r\n if (!searchOrder.some((item) => item === key)) {\r\n if (key === 'folio') {\r\n setSearchOrder([key, ...searchOrder])\r\n } else {\r\n setSearchOrder([...searchOrder, key])\r\n }\r\n }\r\n })\r\n\r\n determineCounterSectionsResult(catalogSearchQueryresults)\r\n\r\n if (Object.keys(catalogSearchQueryresults)?.length > 0) {\r\n setIsResultLoading(false)\r\n setFilteredSearchResults(catalogSearchQueryresults)\r\n setShowNoResults(\r\n Object.values(catalogSearchQueryresults).every(\r\n (arr) => Array.isArray(arr) && arr.length === 0\r\n )\r\n ? true\r\n : false\r\n )\r\n setSearchPhrase(catalogSearchPhrase)\r\n setIsSearchActive(true)\r\n return\r\n } else {\r\n setIsResultLoading(false)\r\n setFilteredSearchResults([])\r\n setShowNoResults(true)\r\n return\r\n }\r\n }\r\n }\r\n }, [catalogSearchQueryresults]) //eslint-disable-line\r\n\r\n function determineCounterSectionsResult(results) {\r\n let _counterSectionsResult = 0\r\n Object.keys(results).map((key) => {\r\n //eslint-disable-line\r\n const sectionResultCount = results[key]?.length ?? 0\r\n _counterSectionsResult = _counterSectionsResult + sectionResultCount\r\n })\r\n\r\n setCounterSectionsResult(_counterSectionsResult)\r\n }\r\n\r\n const closeErrorNotification=()=>{\r\n let errorPayload = {\r\n hasError:false\r\n }\r\n\r\n dispatch({\r\n type: ACTIONS.RA_HIDE_ERROR,\r\n payload: errorPayload,\r\n })\r\n}\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \"SearchText\"\r\n
    \r\n
    \r\n \r\n

    \r\n {getLabel('ra_SearchOrAsk', 'Search or Ask')}\r\n

    \r\n
    \r\n \r\n

    \r\n Search\r\n

    \r\n
    \r\n \r\n
    \r\n {getLabel('ra_FindInformationFomGenai', 'Find information from Research Portal using the AI Research Assistant')}\r\n
    \r\n
    \r\n \r\n
    \r\n {getLabel('ra_LocateInformationFromRP','Locate information from Research Portal')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Catalog\r\n","\r\nimport React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport getIconSrc from '../../helpers/getIconSrc';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport ViewAll from '../Common/ViewAll';\r\nimport HTMLContent from '../Common/HTMLContent';\r\n\r\nconst CollectionItemExpandable = ({ title, href, icon, text }) => {\r\n const [isExpanded, setIsExpanded] = useState(false)\r\n const { getLabel } = usePageContextLabels();\r\n\r\n const collectionArrowStyling= {\r\n transform: isExpanded ? 'rotate(90deg)' : '' \r\n }\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n setIsExpanded(prevVal => !prevVal)}\r\n className=\"arrow-right\"\r\n data-testid=\"arrow-right\"\r\n />\r\n \"Publication\r\n \r\n {title}\r\n \r\n
    \r\n \r\n
    \r\n \r\n

    {text}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default CollectionItemExpandable;\r\n","import React, { useState,useEffect} from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport cx from 'classnames';\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\n\r\nconst CollectionTocSearchBadge = ({ tocItem, pageControllerType, searchResultCount }) => {\r\n const { setActiveFilters, allButtonsOn, setAllButtonsOn, setAllButtonText, isTriggerAllOnOff } = useSearchResultContext();\r\n const [isActive, setIsActive] = useState(true);\r\n\r\n let query = new URLSearchParams(useLocation().search);\r\n const isSearchActive = !!query?.get('searchPhrase');\r\n\r\n useEffect(() => { \r\n var tempActiveFilter = (\"folio\".indexOf(pageControllerType) > -1) ? tocItem.id : (\"deloitte-communications|professional-news\".indexOf(pageControllerType) > -1) ? tocItem.linkExternal : tocItem.PublicationGUID;\r\n\t\tif(allButtonsOn){\r\n\t\t\tsetIsActive(false);\r\n setActiveFilters(prevFilters => [...prevFilters, tempActiveFilter])\r\n setAllButtonText(true);\r\n\t\t}else{\r\n\t\t\tsetIsActive(true);\r\n setActiveFilters(prevFilters => prevFilters.filter(x => x !== tempActiveFilter))\r\n setAllButtonText(false);\r\n\t\t}\r\n\r\n\t}, [allButtonsOn, isTriggerAllOnOff]) //eslint-disable-line\r\n\r\n useEffect(() => {\r\n return () => {\r\n setAllButtonsOn(false);\r\n }\r\n }, []) //eslint-disable-line\r\n\r\n\r\n function toggleHandler() {\r\n var tempActiveFilter = (\"folio\".indexOf(pageControllerType) > -1) ? tocItem.id : (\"deloitte-communications|professional-news\".indexOf(pageControllerType) > -1) ? tocItem.linkExternal : tocItem.PublicationGUID;\r\n\r\n if (isActive) {\r\n setIsActive(false);\r\n setActiveFilters(prevFilters => [...prevFilters, tempActiveFilter])\r\n \r\n }\r\n else {\r\n if (searchResultCount > 0) {\r\n setIsActive(true);\r\n setActiveFilters(prevFilters => prevFilters.filter(x => x !== tempActiveFilter))\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {(\r\n \r\n )}\r\n \r\n \r\n
     
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CollectionTocSearchBadge;","import React, { useCallback, useState } from 'react';\r\nimport { usePageContextLabels,usePageContext } from '../../contexts/PageContext';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport ViewAll from '../Common/ViewAll';\r\nimport CollectionTocSearchBadge from './CollectionTocSearchBadge';\r\nimport getIconSrc from '../../helpers/getIconSrc';\r\n\r\nconst CollectionTOC = ({ item, url, pageControllerType, idx, toc }) => {\r\n const { context } = usePageContext();\r\n const [isExpanded] = useState(false);\r\n const { getLabel } = usePageContextLabels();\r\n const pubType = context.pageSelectedPublicationTitle;\r\n const GetIconByPubType = useCallback(() => {\r\n let icon = getIconSrc(pageControllerType);\r\n return (\r\n
    \r\n \"Icon\"\r\n
    \r\n ); \r\n }, [pubType]);\r\n\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n {GetIconByPubType()} \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n

    {item.linkAltText}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\nexport default CollectionTOC;","import React from 'react';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nconst CollectionSearchResultItem = (props) => {\r\n const { viewAllResultsUrl, document, url } = props;\r\n\r\n function getDocumentTitle() {\r\n\t\t// fallback to Publication Nav Title just incase if NavTitle is null\r\n let documenttitle=\"\";\r\n if(url.includes(\"/folio\") || url.includes(\"/manual\") || url.includes(\"/standards\") || url.includes(\"/guidance\")){\r\n documenttitle = UTILITIESHELPER.isStringNullorEmpty(document.navTitle) ? \r\n\t\t\t(UTILITIESHELPER.isStringNullorEmpty(document.publicationNavTitle) ? ReactHtmlParser(document.publicationTitle) : ReactHtmlParser(document.publicationNavTitle))\r\n\t\t\t: ReactHtmlParser(document.navTitle);\r\n }\r\n else{\r\n documenttitle = UTILITIESHELPER.isStringNullorEmpty(document.publicationNavTitle) ? \r\n (UTILITIESHELPER.isStringNullorEmpty(document.publicationTitle) ? '' : ReactHtmlParser(document.publicationTitle))\r\n : ReactHtmlParser(document.publicationNavTitle);\r\n } \r\n\t\treturn documenttitle;\r\n\t} \r\n\r\n return (\r\n
    \r\n
    \r\n {(url.includes(\"/folio\")) ? (\r\n {getDocumentTitle()}\r\n ) : (\r\n {getDocumentTitle()}\r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default CollectionSearchResultItem;\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { usePageContextLabels, usePageContext } from \"../../contexts/PageContext\";\r\nimport RETRIEVALSERVICES from \"../../services/rp-service\";\r\nimport cx from \"classnames\";\r\nimport { get } from \"lodash\";\r\nimport EmbeddedArticle from \"../Publication/EmbeddedArticle\";\r\nimport RenderAllContainer from \"../Article/RenderAllContainer\";\r\nimport LINKHELPERS from \"../../helpers/LinkHelpers\";\r\nimport RedirectModal from \"../Article/RedirectModal\";\r\nimport { logs, page } from '../../helpers/log';\r\n\r\n\r\nexport const getIsArticlePdf = (_pubData) => {\r\n return (\r\n get(_pubData, \"content[0].content.format\")?.toLowerCase() === \".pdf\" ||\r\n get(_pubData, \"content[0].subItems[0].content.format\")?.toLowerCase() ===\r\n \".pdf\"\r\n );\r\n};\r\n\r\nfunction SearchTemplateModal({ closeModal, pageUrl, isScrollDisabled = false, searchParam }) {\r\n const [shouldShowDarkOverlay] = useState(true);\r\n const [memberFirm, language, knowledgeDomain, pageFileName] = pageUrl.substring(1).split(\"/\");\r\n const { getLabel } = usePageContextLabels();\r\n const [embeddedPubData, setEmbeddedPubData] = useState({});\r\n const [publicationData, setPublicationData] = useState(null);\r\n const [isWideMode] = useState(false);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isRedirectModalVisible, setIsRedirectModalVisible] = useState(false);\r\n const [redirectURL, setRedirectURL] = useState('');\r\n const [shouldShowOverlayRedirect, setShouldShowOverlayRedirect] = useState(false);\r\n const [messageRedirectTL, setMessageRedirectTL] = useState('');\r\n const navigate = useNavigate();\r\n const isArticlePdf = getIsArticlePdf(publicationData);\r\n const isEmbeddedMode = false;\r\n const { memberFirms } = usePageContext();\r\n const renderEmbeddedOrNormal = () => {\r\n if (isLoading) {\r\n return (\r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n else if (isEmbeddedMode) {\r\n return ;\r\n }\r\n else {\r\n return articleContent;\r\n }\r\n };\r\n\r\n const handleDocumentClick = useCallback(async (ev) => {\r\n if (ev.target.nodeName === \"path\" && ev.target.id !== '') {\r\n ev.preventDefault();\r\n }\r\n else {\r\n let targetBaseUrl = `/${memberFirm}/${language}/${knowledgeDomain}`;\r\n const tocUrls = LINKHELPERS.getTocUrls(targetBaseUrl);\r\n\r\n (async () => {\r\n let navigatableLink = await LINKHELPERS.getNavigatableLink({\r\n ev,\r\n tocUrls,\r\n memberFirm: memberFirm, language: language, knowledgeDomain: knowledgeDomain,\r\n messageCannotOpenTab: getLabel(\"l_InternalLinkCannotBeOpenedInANewTab\", \"Internal link cannot be opened in a new tab/window in Pilot\"),\r\n messageCannotResolve: getLabel(\"l_LinkCannotBeResolved\", \"Link cannot be resolved.\"),\r\n isSearchResultLink: false,\r\n popupContent: true,\r\n memberFirms\r\n });\r\n if (navigatableLink) {\r\n if (LINKHELPERS.isLocalToThisPageLink(tocUrls, navigatableLink)) {\r\n window.open(LINKHELPERS.sanitizeUrl(navigatableLink), '_blank', 'noreferrer');\r\n }\r\n else {\r\n if (navigatableLink.split(\";\").length > 1) {\r\n // TL link : Set Redirect Modal visible and send parameters from here\r\n setMessageRedirectTL(getLabel(\"l_LinkModalViewLinkTL\", \"The content requested is not currently available in ORP. Would you like to see this content in Technical Library?\"))\r\n setRedirectURL(navigatableLink.split(\";\")[0]);\r\n setShouldShowOverlayRedirect(true);\r\n setIsRedirectModalVisible(true);\r\n }\r\n else {\r\n window.open(LINKHELPERS.sanitizeUrl(navigatableLink), '_blank', 'noreferrer');\r\n }\r\n }\r\n }\r\n })();\r\n }\r\n }, []);//eslint-disable-line\r\n\r\n const renderArticleContent = (pubData) => (\r\n \r\n );\r\n\r\n const articleContent = renderArticleContent(publicationData);\r\n\r\n\r\n\r\n\r\n const retrievePublication = useCallback(async (pageUrl, isCancelled) => {\r\n try {\r\n setEmbeddedPubData({});\r\n setIsLoading(true);\r\n let res = await RETRIEVALSERVICES.retrieveGuidebookPublication(pageUrl);\r\n if (!isCancelled) {\r\n if (res) {\r\n // Filter out invalid content by checking if content object has an object_type.\r\n res.content.forEach((content) => {\r\n content.subItems = content.subItems.filter(({ content }) => {\r\n return content !== null && content.object_type !== null;\r\n });\r\n });\r\n\r\n if (pageUrl.includes(\"?wormhole=true\")) {\r\n closeModal();\r\n navigate(\r\n `/${memberFirm}/${language}/${knowledgeDomain}/collection/folio?${searchParam}&wormhole=true`\r\n );\r\n } else {\r\n setPublicationData(res);\r\n setIsLoading(false);\r\n }\r\n } else {\r\n //we assume here that the article was not available for this MF, so we WH UP to current publication in the folio (will WH from there if that does not exist)\r\n closeModal();\r\n navigate(\r\n `/${memberFirm}/${language}/${knowledgeDomain}/collection/folio?${searchParam}&wormhole=true`\r\n );\r\n }\r\n\r\n let embeddedRes = await RETRIEVALSERVICES.retrieveEmbedded();\r\n if (embeddedRes) {\r\n setEmbeddedPubData(embeddedRes);\r\n }\r\n }\r\n } catch (err) {\r\n //we assume here that the article was not available for this MF, so we WH UP to current publication in the folio (will WH from there if that does not exist)\r\n logs.info(page.Catalog, 'SearchTemplateModal', `retrievePublication::Catalog:Article was not available for this MF. pageURL: ${pageUrl}`);\r\n closeModal();\r\n navigate(\r\n `/${memberFirm}/${language}/${knowledgeDomain}/collection/folio?${searchParam}&wormhole=true`\r\n );\r\n }\r\n }, []);//eslint-disable-line\r\n\r\n useEffect(() => {\r\n let isCancelled = false;\r\n retrievePublication(pageUrl, isCancelled);\r\n const articlePopupContainerElem = document.querySelector(\".search-article-container\");\r\n articlePopupContainerElem.addEventListener(\"click\", handleDocumentClick);\r\n return () => {\r\n isCancelled = true;\r\n };\r\n }, [retrievePublication, pageUrl, handleDocumentClick]);\r\n const searchTemplateModalStyle = {\r\n paddingBottom: isArticlePdf ? 0 : 12.5,\r\n paddingRight: isWideMode ? 70 : \"\",\r\n }\r\n\r\n return (\r\n
    \r\n {shouldShowDarkOverlay && (\r\n
    \r\n )}\r\n {\r\n
    \r\n
    \r\n
    \r\n {getLabel(\"b_BinaryDownload\", \"Download\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {renderEmbeddedOrNormal()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default SearchTemplateModal;\r\n","import React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useLocation } from 'react-router-dom';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport {getIconSrc} from '../../components/Article/File';\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport SearchTemplateModal from './SearchTemplateModal';\r\nimport ARTICLEHELPERS from '../../helpers/ArticleHelpers';\r\n\r\n\r\nconst CollectionSearchResult = (props) => {\r\n\r\n\tconst [showModal, setShowModal] = useState(false);\r\n\tconst { document, highlights, url } = props;\r\n\tconst isFormatBinary = document.format !== \"\";\r\n\tconst { getLabel } = usePageContextLabels();\r\n\tconst { pageControllerType, knowledgeDomain, setIsNavigatedFromCollectionSearch } = usePageContext();\r\n\tconst { getMFLabel } = usePageContextLabels();\r\n\tlet documentformatarray = document.format.split(',');\r\n\tvar urlArray = url.split('/');\r\n\tlet searchParam = new URLSearchParams(useLocation().search);\r\n\r\n\tfunction getDocumentTitle() {\r\n\t\t// fallback to publicationTitle last, then document.publicationNavTitle but document.navTitle is priority\r\n\t\tlet documenttitle = UTILITIESHELPER.isStringNullorEmpty(document.navTitle) ?\r\n\t\t\t(UTILITIESHELPER.isStringNullorEmpty(document.publicationNavTitle) ? ReactHtmlParser(document.publicationTitle) : ReactHtmlParser(document.publicationNavTitle))\r\n\t\t\t: ReactHtmlParser(document.navTitle);\r\n\r\n\t\treturn documenttitle;\r\n\t}\r\n\r\n\tfunction GenerateCrumbFromURL() {\r\n\t\tif (pageControllerType === 'folio') {\r\n\t\t\treturn GenerateCrumbForFolios();\r\n\t\t}\r\n\r\n\t\tlet processedCrumb = [];\r\n\t\tvar MfKd = getLabel(`mf_${knowledgeDomain}Catalog`, \"Catalog...\");\r\n\t\tprocessedCrumb.push(MfKd);\r\n\t\turlArray.forEach((urlItem, index) => {\r\n\t\t\tif (index > 4 && !urlItem?.toLowerCase()?.includes('guid')) {\r\n\t\t\t\tprocessedCrumb.push(urlItem);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn processedCrumb;\r\n\t}\r\n\r\n\tfunction GenerateCrumbForFolios() {\r\n\t\tconst generateLabel = (text, isDynamicFolio) => {\r\n\t\t\tif (text === undefined) {\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\r\n\t\t\tif (text.startsWith(\"lbl_\")) {\r\n\t\t\t\treturn getMFLabel(text, \"CrumbTrail::generateLabel:text\");\r\n\t\t\t}\r\n\r\n\t\t\tif (isDynamicFolio) {\r\n\t\t\t\ttext = CONTEXTHELPERS.generateFolioTitleFromFilename(text, false);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttext = text\r\n\t\t\t\t\t.replace(\".cshtml\", \"\")\r\n\t\t\t\t\t.replaceAll(\"_\", \" \")\r\n\t\t\t\t\t.replace(\" - - \", \" - \");\r\n\t\t\t}\r\n\r\n\t\t\treturn text;\r\n\t\t};\r\n\r\n\t\tvar crumnArray = [];\r\n\t\tvar MfKd = getLabel(`mf_${knowledgeDomain}Catalog`, \"Catalog...\");\r\n\t\tcrumnArray.push(MfKd);\r\n\r\n\t\turlArray.forEach((urlItem, index) => {\r\n\t\t\tif (index > 4 && !urlItem?.toLowerCase()?.includes('searchphrase') && !urlItem?.toLowerCase()?.includes('guid-')) {\r\n\r\n\t\t\t\tif (index === 5) {\r\n\t\t\t\t\tvar a = generateLabel(urlItem, true);\r\n\t\t\t\t\tcrumnArray.push(a);\r\n\t\t\t\t}\r\n\t\t\t\telse if (index !== 6) {\r\n\t\t\t\t\tcrumnArray.push(urlItem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn crumnArray;\r\n\t}\r\n\r\n\tfunction setNavigateFromCollectionSearch() {\r\n\t\tsetIsNavigatedFromCollectionSearch(true);\r\n\t}\r\n\r\n\tconst closeModal = () => {\r\n\t\tsetShowModal(false);\r\n\t}\r\n\tfunction GenerateSearchResultIteam()\r\n\t{\r\n\t\tvar crumtrailDecoded=[];\r\n\t\tGenerateCrumbFromURL().forEach((item, index) => {\r\n\t\t\tif (!UTILITIESHELPER.isObjectNullorEmpty(item)) {\r\n\t\t\t\tconst decoded = decodeURIComponent(item);\r\n\t\t\t\tcrumtrailDecoded.push (\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{ReactHtmlParser(decoded)}\r\n\t\t\t\t\t

    \r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn crumtrailDecoded;\r\n\t}\r\n\tconst resultTitle= { marginLeft: isFormatBinary ? \"-6px\" : \"0px\" }\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{documentformatarray.map((element, index) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\t\t\t\t{showModal && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{pageControllerType === \"folio\" &&\r\n\t\t\t\t\tdocument.contentType === \"17323604\" &&\r\n\t\t\t\t\t[\"66029858\", \"58035381\", \"68489711\", \"68169717\"].includes(document.publicationType) ? (\r\n\t\t\t\t\t\t // eslint-disable-next-line\r\n\t\t\t\t\t { setShowModal(true); }}>\r\n\t\t\t\t\t\t{getDocumentTitle()}\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{getDocumentTitle()}{\" \"}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t

    {ReactHtmlParser(ARTICLEHELPERS.getHighlightedText(highlights))}

    \r\n\t\t\t{document.contentType === \"17323604\" && [\"66029858\", \"58035381\", \"68489711\", \"68169717\"].includes(document.publicationType) ? null : (\r\n\t\t\t\t
    \r\n\t\t\t\t\t{GenerateSearchResultIteam()}\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t
    \r\n\t);\r\n}\r\n\r\nexport default CollectionSearchResult;","import React, { useState } from 'react';\r\nimport ShowIf from '../Common/ShowIf';\r\n\r\n\r\nexport const InfoNotifiation = (props) => {\r\n const [showNotification, setShowNotification] = useState(true);\r\n function closeNotification() {\r\n setShowNotification(false);\r\n }\r\n return (\r\n \r\n
    \r\n  \r\n

    {props.message}

    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default InfoNotifiation;","import React from 'react'\r\nimport { usePageContextLabels, usePageContext } from \"../../contexts/PageContext\";\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport { useLocation } from 'react-router-dom';\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\n\r\nconst ResearchAssistantTile = () => {\r\n const { getLabel } = usePageContextLabels();\r\n const { searchPhrase } = usePageContext();\r\n const location = useLocation();\r\n var context = CONTEXTHELPERS.generateContext(location.pathname);\r\n\r\n const handleOpenNewTab = () => {\r\n localStorage.setItem('research-assistant-searchphrase', searchPhrase);\r\n const linkUrl = `/${context.memberFirm}/${context.language}/${context.knowledgeDomain}`;\r\n window.open(LINKHELPERS.sanitizeUrl(linkUrl), '_blank');\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\nexport default ResearchAssistantTile;","import React, { useState, useEffect} from 'react';\r\nimport cx from 'classnames';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport NavigableSearchbar from '../Common/NavigableSearchbar';\r\nimport Loading from '../Loading/Loading';\r\n\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport SearchHelpers from '../../helpers/SearchHelpers';\r\nimport { appInsightUIMapping, logs,page } from '../../helpers/log';\r\nimport { get } from 'lodash';\r\n\r\nimport { useSearchResultContext } from './../../contexts/SearchResultContext';\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport HorizontalScrollbar from './../Article/HorizontalScrollbar';\r\nimport CollectionSearchResult from './CollectionSearchResult';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport InfoNotifiation from '../Notification/InfoNotifiation';\r\nimport { SCS_KEYS, getFallback } from '../Constants/SCSConstants';\r\nimport { ErrorCodes, ErrorMessages, ErrorTypes } from '../Constants/Errors';\r\nimport useSearchService from '../../services/useSearchService';\r\nimport ResearchAssistantTile from '../Publication/ResearchAssistantTile';\r\n\r\nconst CollectionSearch = ({\r\n isWideMode,\r\n publicationType,\r\n catalogCollection,\r\n handleSearchSubmit\r\n}) => {\r\n const { getLabel } = usePageContextLabels();\r\n const {\r\n context, currentSearch, searchPhrase, setSearchPhrase,\r\n memberFirm, language, knowledgeDomain, pageControllerType, setPageURLWhereSearchInnitiated, setNotification, isResearchAssistantEnabled, countryKDSettings\r\n } = usePageContext();\r\n const navigate = useNavigate();\r\n const [searchTerms, setSearchTerms] = useState([]);\r\n const [isFixed, setIsFixed] = useState(false);\r\n const location = useLocation();\r\n const [updateRecentSearches, setUpdateRecentSearches] = useState(0);\r\n const {\r\n searchResults,\r\n setSearchResults,\r\n filteredSearchResults,\r\n setFilteredSearchResults,\r\n areSearchResultsLoading,\r\n setAreSearchResultsLoading,\r\n setActiveFilters,\r\n setSearchTimeStamp,\r\n showCollectionSearchLimitNotification\r\n } = useSearchResultContext();\r\n const wildcardsPrefixSearchLimitationNotification = getLabel(SCS_KEYS.wildcardsPrefixSearchLimitation, getFallback(SCS_KEYS.wildcardsPrefixSearchLimitation));\r\n const searchService = useSearchService();\r\n const isResearchAssistantEnabledForKD = UTILITIESHELPER.isResearchAssistantEnabledForKD(countryKDSettings, context.memberFirm, context.knowledgeDomain);\r\n const isResearchAssistantActiveForUser = isResearchAssistantEnabled && isResearchAssistantEnabledForKD ? true : false;\r\n\r\n useEffect(() => {\r\n window.onscroll = function () {\r\n var ele = document.getElementById('collection-page-search');\r\n if (ele) {\r\n if (window.pageYOffset > 60) {\r\n setIsFixed(true);\r\n } else {\r\n setIsFixed(false);\r\n }\r\n }\r\n };\r\n }, [])\r\n\r\n\r\n useEffect(() => {\r\n async function getSearchResults() {\r\n try {\r\n setAreSearchResultsLoading(true);\r\n var results = await searchService.getCollectionSearchResponses(context.pageType, currentSearch, get(window,'DART.ENV.REACT_APP_COLLECTION_SEARCH_LIMIT',0), `publication_type/${publicationType}`);\r\n\r\n if (SearchHelpers.hasSearchResults(results)) {\r\n setSearchResults(results);\r\n setPageURLWhereSearchInnitiated(location.pathname + location.search);\r\n }\r\n else {\r\n setSearchResults([]);\r\n setFilteredSearchResults([]);\r\n setAreSearchResultsLoading(false);\r\n }\r\n }\r\n catch (err) {\r\n logs.error(page.Collection, 'GetSearchResults', ErrorMessages.searchResultsCollection, err,{eventId:ErrorCodes.Collection});\r\n }\r\n }\r\n\r\n if (catalogCollection) {\r\n const catalogCollectionLinks = get(catalogCollection, 'CatalogCollection[0].Content.links', [])\r\n if ((!catalogCollectionLinks || catalogCollectionLinks?.length === 0)) {\r\n if (currentSearch.length > 2) {\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(currentSearch)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'CollectionSearch' });\r\n return;\r\n }\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null });\r\n getSearchResults();\r\n }\r\n }\r\n }\r\n\r\n return () => {\r\n setSearchResults([]);\r\n setFilteredSearchResults([]);\r\n setAreSearchResultsLoading(false);\r\n setActiveFilters([]);\r\n // setTocControl([]);\r\n }\r\n\r\n }, [catalogCollection, currentSearch]); //eslint-disable-line\r\n\r\n\r\n useEffect(() => {\r\n //setIsWideMode(false);\r\n if (!areSearchResultsLoading && filteredSearchResults?.length > 0) {\r\n\r\n const resultsContainer = document.querySelector('.search-results');\r\n const searchTerms = resultsContainer?.querySelectorAll('em');\r\n\r\n setSearchTerms(searchTerms);\r\n //setIsFixed(true);\r\n }\r\n\r\n return () => {\r\n setSearchTerms([]);\r\n }\r\n }, [searchResults, filteredSearchResults]); //eslint-disable-line\r\n\r\n const handleRecentSearchBarSubmit = (event, searchPhraseFromNavigationBarRecentSearches) => {\r\n if (event) {\r\n event.preventDefault()\r\n }\r\n\r\n const _searchPhrase = (searchPhraseFromNavigationBarRecentSearches ? searchPhraseFromNavigationBarRecentSearches : searchPhrase)?.trim();\r\n\r\n setSearchTimeStamp(Date.now())\r\n if (UTILITIESHELPER.isStringNullorEmpty(_searchPhrase) || _searchPhrase.length < 3) {\r\n alert(getLabel(\"s_SearchPhraseTooShort\", \"Phrase too short (for now)\"));\r\n return;\r\n }\r\n\r\n setUpdateRecentSearches(updateRecentSearches + 1)\r\n\r\n const currentLocation = window.location.pathname;\r\n if ((currentLocation.indexOf(\"/collection\") > 0) ||\r\n (currentLocation.indexOf(\"/manual/\") > 0) ||\r\n (currentLocation.indexOf(\"/standards/\") > 0) ||\r\n (currentLocation.indexOf(\"/roadmap/\") > 0) ||\r\n (currentLocation.indexOf(\"/folio/\") > 0)) {\r\n\r\n const parsedSearchPhrase = SearchHelpers.parse(_searchPhrase);\r\n const readableSearchPhrase = SearchHelpers.toHumanReadable(parsedSearchPhrase);\r\n\r\n setSearchPhrase(readableSearchPhrase);\r\n\r\n const qs = SearchHelpers.toQueryString(parsedSearchPhrase);\r\n\r\n navigate(`${currentLocation}?${qs}`);\r\n\r\n logs.trackEvent({\r\n name: 'Search',\r\n properties: {\r\n searchText: _searchPhrase,\r\n memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'),\r\n serviceArea: UTILITIESHELPER.getSessionStorage('ServiceArea'),\r\n level: UTILITIESHELPER.getSessionStorage('Level')\r\n }\r\n })\r\n return;\r\n }\r\n\r\n return;\r\n };\r\n\r\n\r\n const getSearchTitle = () => {\r\n return currentSearch ? ReactHtmlParser(`${getLabel(\"s_SearchResults\", \"Search Results\")} ${getLabel(\"s_SearchResultsFor\", \"for\")} ${SearchHelpers.toHumanReadable(currentSearch)}`) : '';\r\n }\r\n\r\n function handleClose() {\r\n setSearchPhrase('')\r\n }\r\n function isAllOnOffButtonExist(){\r\n return document.querySelectorAll('.toc-side-pannel-all-on-off-toggle').length > 0\r\n }\r\n function resolveUrlForCollectionSearchResult() {\r\n var resolvedUrlForCollectionSearchResult = [];\r\n filteredSearchResults.length > 0 && filteredSearchResults.forEach((result, idx) => {\r\n let idCount = idx + 1;\r\n //There seem to be a LOT of null results, how are null result items getting into the array?!\r\n if (result !== null) {\r\n if (result.document?.publicationId === null) {\r\n logs.info(page.Collection, 'filteredSearchResults', \"Getting null in the publicationId which may break some functionality and hide toc\", result);\r\n }\r\n let url = LINKHELPERS.resolveCollectionPageSearchLink(result, memberFirm, language, knowledgeDomain, pageControllerType, searchPhrase, catalogCollection);\r\n if (url !== undefined && url !== \"#\") {\r\n //Above line will a new property in result ex result.url = /global/en-EN/auditing/manual/publicationNavTitle/publicationGuid/topcNavTitle/topicGuid(which may include spine-target-pub-GUID)\r\n if (isResearchAssistantActiveForUser && ((filteredSearchResults.length <= 3 && idCount === filteredSearchResults.length) || (filteredSearchResults.length > 3 && idCount === 3))) {\r\n resolvedUrlForCollectionSearchResult.push();\r\n resolvedUrlForCollectionSearchResult.push()\r\n } else {\r\n resolvedUrlForCollectionSearchResult.push();\r\n }\r\n }\r\n else {\r\n logs.info(page.Collection, 'filteredSearchResults', \"Unresolved search result (BE cannot get resolved target for this search result)\", result);\r\n }\r\n }\r\n })\r\n\r\n if (isResearchAssistantActiveForUser && !filteredSearchResults?.length) {\r\n resolvedUrlForCollectionSearchResult.push()\r\n }\r\n return resolvedUrlForCollectionSearchResult;\r\n }\r\n if (areSearchResultsLoading) return ;\r\n\r\n return (\r\n <>\r\n 0}>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n

    {getSearchTitle()}

    \r\n \r\n
    {getLabel(\"s_SearchReturnedNoResults\", \"Your search returned no results\")}
    \r\n
    \r\n \r\n
    {getLabel(\"s_SearchReturnedNoResultsDueToAllOnOff\", \"Please turn on a toggle in the Table of Contents to view results.\")}
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n {resolveUrlForCollectionSearchResult()}\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CollectionSearch;","\r\nimport React from 'react';\r\nimport cx from 'classnames';\r\n\r\nconst MainPannel = ({ className, children, style }) => {\r\n return (\r\n
    \r\n {children}\r\n
    \r\n )\r\n}\r\n\r\nexport default MainPannel;\r\n","\r\nimport React from 'react';\r\nimport cx from 'classnames';\r\n\r\nconst TocBody = ({ children, style, classNameList, tocMaxHeight }) => {\r\n function calcMaxHeight() {\r\n\r\n if (tocMaxHeight !== undefined && tocMaxHeight !== 'none') \r\n {\r\n return tocMaxHeight\r\n }\r\n else {\r\n var sidePanelSmall = document.querySelector('.side-pannel-small');\r\n\r\n if (sidePanelSmall !== null) {\r\n var sidePanelSmallDim = sidePanelSmall.getClientRects();\r\n var elemTop = sidePanelSmallDim[0].top;\r\n var maxHeightCalc = `calc((100vh - 61px) - ${elemTop > 0 ? Math.round(elemTop) : 1}px)`\r\n\r\n return maxHeightCalc;\r\n }\r\n\r\n return 'none'\r\n }\r\n \r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n
      \r\n {children}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default TocBody;\r\n","\r\nimport React, { useCallback } from 'react';\r\nimport cx from 'classnames';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport TocBody from './TocBody';\r\nimport SidebarTocTitle from './SidebarTocTitle';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\nimport { useReadingModeContext } from '../../contexts/ReadingModeContext';\r\nimport { PAGE_CONTROLLER_TYPE } from \"../Constants/Constants\";\r\n\r\nconst SidebarTOC = ({\r\n setIsWideMode,\r\n children,\r\n style,\r\n className,\r\n isHidden,\r\n navTitle,\r\n shouldBeFixed,\r\n pubLandingUrl,\r\n yAxisOfToc,\r\n tocMaxHeight,\r\n publicationType\r\n}) => {\r\n\r\n const toggleOneWideMode = useCallback(() => setIsWideMode(true), [])\r\n const { setAllButtonsOn, allButtonText, isTriggerAllOnOff, setIsTriggerAllOnOff, isShowAllOnOffButton } = useSearchResultContext();\r\n const { searchResults } = useSearchResultContext();\r\n const isSearchActive = searchResults && searchResults?.length > 0;\r\n const location = useLocation();\r\n\tconst inArticle = !location.search.includes('searchPhrase');\r\n const { isReadingMode } = useReadingModeContext();\r\n \r\n \r\n const handleToggleAllButtons = useCallback(() =>{\r\n if(allButtonText){\r\n setAllButtonsOn(false);\r\n setIsTriggerAllOnOff(!isTriggerAllOnOff); \r\n }else{\r\n setAllButtonsOn(true);\r\n setIsTriggerAllOnOff(!isTriggerAllOnOff); \r\n }\r\n }, [allButtonText]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n {children}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nSidebarTOC.defaultProps = {\r\n setIsWideMode: () => { },\r\n navTitle: '',\r\n}\r\n\r\nexport default SidebarTOC;\r\n","import React, { useState } from 'react';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport { ErrorCodes,ErrorMessages } from '../Constants/Errors';\r\nimport { page,logs } from '../../helpers/log';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\n\r\n\r\nexport const ContentErrorMessage = () => {\r\n const [showHideErrorMessage, setShowHideErrorMessage] = useState(false);\r\n const {getLabel} = usePageContextLabels();\r\n function closeContentErrorMessage() {\r\n setShowHideErrorMessage(true);\r\n }\r\n if ((UTILITIESHELPER.getLocalStorage(\"isContentLoadError\")?.toLowerCase() === 'true') && !showHideErrorMessage) {\r\n logs.error(page.Publication, 'Publication', ErrorMessages.contentErrorMessage,\"error\",{eventId:ErrorCodes.Publication}); \r\n }\r\n return (\r\n \r\n
    \r\n  \r\n

    {getLabel(\"err_ContentErrorMessage\",\"Oh no, something has gone wrong! Please try again later. If the problem persists, please contact support. Code – \")} {ErrorCodes.Publication}

    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ContentErrorMessage;","import React from 'react';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport { usePageContext } from '../../contexts/PageContext';\r\nimport { useEffect } from 'react';\r\nimport { appInsightUIMapping, logs, page } from '../../helpers/log';\r\nimport { ErrorTypes } from '../Constants/Errors';\r\n\r\n\r\nexport const MessageNotification = () => {\r\n const { notification, setNotification, context } = usePageContext();\r\n function closeContentErrorMessage() {\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null, error: null });\r\n }\r\n\r\n useEffect(() => {\r\n if (notification && notification.display && notification.appInsightUIMapping && notification.componentName) {\r\n switch (notification.appInsightUIMapping) {\r\n case appInsightUIMapping.Error:\r\n if (notification.error)\r\n logs.error(notification.page,notification.componentName, notification.componentName, notification.message, notification.error, { memberFirm: context.memberFirm, knowledgeDomain: context.knowledgeDomain,eventId:notification.eventId });\r\n break;\r\n case appInsightUIMapping.Information:\r\n logs.info(page.Search, notification.componentName, notification.message);\r\n break;\r\n case appInsightUIMapping.Warning:\r\n logs.warning(page.Search, notification.componentName, notification.message);\r\n break;\r\n default://Do nothing\r\n break;\r\n }\r\n }\r\n }, [notification.display]); //eslint-disable-line\r\n\r\n if (notification) {\r\n return (\r\n \r\n
    \r\n  \r\n

    {notification.message}

    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n return null;\r\n}\r\n\r\nexport default MessageNotification;","import React, { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport SidebarTOC from \"./SidebarTOC\";\r\nimport IconWideModeTOC from './WideModeIconTOC';\r\nimport { useReadingModeContext } from '../../contexts/ReadingModeContext';\r\nimport WormholeNotification from '../Notification/WormholeNotification';\r\nimport ContentErrorMessage from '../Common/ContentErrorMessage';\r\nimport UTILITIESHELPER from \"../../helpers/UtilitiesHelper\";\r\nimport MessageNotification from '../Notification/MessageNotification';\r\nimport ResearchAssistantErrorMessage from '../Common/ResearchAssistantErrorMessage';\r\nimport { useResearchAssistantContext, ACTIONS } from '../../contexts/ResearchAssistantContext';\r\n\r\nconst PublicationLayout = ({\r\n children,\r\n isArticlePage,\r\n shouldBeFixed,\r\n isWideMode,\r\n setIsWideMode,\r\n publicationType,\r\n navTitle,\r\n pubLandingUrl,\r\n tocBody,\r\n yAxisOfToc,\r\n tocMaxHeight\r\n}) => {\r\n\r\n const location = useLocation();\r\n const { isReadingMode } = useReadingModeContext();\r\n const { dispatch, state: raState } = useResearchAssistantContext();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [location.pathname])\r\n\r\n useEffect(() => {\r\n UTILITIESHELPER.setLocalStorage(\"isContentLoadError\", false);\r\n }, []);\r\n\r\n const closeErrorNotification=()=>{\r\n let errorPayload = {\r\n hasError:false\r\n }\r\n\r\n dispatch({\r\n type: ACTIONS.RA_HIDE_ERROR,\r\n payload: errorPayload,\r\n })\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\t\t\t\r\n \r\n \r\n setIsWideMode(false)}\r\n />\r\n \r\n \r\n \r\n {tocBody}\r\n \r\n {children}\r\n
    \r\n )\r\n};\r\n\r\nexport default PublicationLayout;\r\n\r\n","\r\nimport React from 'react';\r\n\r\nconst SidePannel = ({ heading, children }) => {\r\n return (\r\n
    \r\n
    \r\n
    {heading}
    \r\n
    \r\n {children}\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default SidePannel;\r\n","\r\nimport React, { useState, useEffect, useMemo, useCallback } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport RETRIEVALSERVICES from '../../services/rp-service.js';\r\nimport CONTEXTHELPERS from '../../helpers/ContextHelpers';\r\nimport LINKHELPERS from '../../helpers/LinkHelpers';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport { useLoadingContext } from '../../contexts/LoadingContext';\r\nimport { usePageContext, usePageContextLabels } from '../../contexts/PageContext';\r\nimport { get,set } from 'lodash';\r\nimport { appInsightUIMapping, logs, page } from \"../../helpers/log\";\r\nimport { useSearchResultContext } from '../../contexts/SearchResultContext';\r\nimport CollectionItemExpandable from './CollectionItemExpandable';\r\nimport CollectionTOC from './CollectionTOC';\r\nimport CollectionSearchbar from \"./CollectionSearchbar\"\r\nimport CollectionSearchResultItem from \"./CollectionSearchResultItem\"\r\nimport CollectionSearch from './CollectionSearch'\r\nimport ListItem from '../Common/ListItem';\r\nimport Loading from '../Loading/Loading';\r\nimport MainPannel from '../Common/MainPannel';\r\nimport PublicationLayout from './../Publication/PublicationLayout';\r\nimport SearchHelpers from '../../helpers/SearchHelpers';\r\nimport SidePannel from '../Common/SidePannel';\r\nimport WormholeNotification from '../Notification/WormholeNotification';\r\nimport MessageNotification from '../Notification/MessageNotification.js';\r\nimport { SCS_KEYS, getFallback } from '../Constants/SCSConstants';\r\nimport { PAGE_CONTROLLER_TYPE,PUBLICATIONTYPE_IDS,PUBTYPES_CATALOG_PAGE } from '../Constants/Constants.js';\r\nimport { ErrorCodes, ErrorMessages,ErrorTypes } from '../Constants/Errors.js';\r\nimport useDCSService from '../../services/useDCSService';\r\n\r\nconst getIsJournalCollection = (_listType) => {\r\n switch (_listType) {\r\n case PUBLICATIONTYPE_IDS.deloitteCommunications: //deloitte-communications\r\n case PUBLICATIONTYPE_IDS.professionalNews: //professional-news\r\n return true;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\n\r\nconst Collection = () => {\r\n const [data, setData] = useState({});\r\n const [isFixedSearchBar, setIsFixedSearchBar] = useState(false);\r\n const navigate = useNavigate();\r\n const { getLabel, getMFLabel } = usePageContextLabels();\r\n const { isLoading, setIsLoading } = useLoadingContext()\r\n const { generateQuerySpec, getCatalogSections, getDelCummAndProfNewsCollectionSections } = useDCSService();\r\n const {\r\n pageTitle, setPageTitle, setPageDescription,\r\n isSearchPage, searchPhrase, setSearchPhrase,\r\n memberFirm, language, knowledgeDomain, pageControllerType, tierVal, industryVal, setNotification, isMemberFirmsLoaded, contextMemberFirm\r\n } = usePageContext();\r\n const wildcardsPrefixSearchLimitationNotification = getLabel(SCS_KEYS.wildcardsPrefixSearchLimitation, getFallback(SCS_KEYS.wildcardsPrefixSearchLimitation));\r\n\r\n const collectionItems = get(data, 'CatalogCollection[0].Content.links', []);\r\n const catalogCollection = get(data, 'CatalogCollection[0]', null);\r\n const collectionIcon = get(data, 'currentPageContext.pageFileName', null);\r\n const listType = get(data, 'CatalogCollection[0].Content.context.publicationType.Key', '');\r\n //StructureStandards = 60194865 <--> StructureManuals = 60194866\r\n const recentListType = (listType === PUBLICATIONTYPE_IDS.standards) ? PUBLICATIONTYPE_IDS.manual : (listType === PUBLICATIONTYPE_IDS.manual) ? PUBLICATIONTYPE_IDS.standards : (listType === PUBLICATIONTYPE_IDS.deloitteCommunications || listType === PUBLICATIONTYPE_IDS.professionalNews) ? listType : \"\";\r\n const isJournalCollection = useMemo(() => getIsJournalCollection(listType), [listType]);\r\n const sidePanelHeading = isJournalCollection ? getLabel(\"col_RecentlyPublished\", \"Recently Published\") : getLabel(\"col_SeeAlso\", \"Related Collections\");\r\n const recentLinks = listType ? get(data, 'CatalogCollection[0].Content.context.publicationLists[\"' + recentListType + '\"]', []) : [];\r\n const maxRecentLinksToDisplay = isJournalCollection ? 10 : 5;\r\n const [showResults, setShowResults] = useState(false);\r\n const [isWideMode, setIsWideMode] = useState(false)\r\n const hasAllTocDataLoaded = true;\r\n const navTitle = getMFLabel(pageTitle, \"pageTitle\");\r\n const publicationType = get(catalogCollection, \"Content.context.publicationType.Key\", \"folio\");\r\n const [groupList, setGroupList] = useState([]);\r\n const accountBalanceOptions = get(catalogCollection, 'Content.taxonomyAccountBalance.items', []);\r\n const nonAccountBalanceOptions = get(catalogCollection, 'Content.taxonomyAuditWorkflowAreaNonAccount.items', []);\r\n const assuranceOptions = get(catalogCollection, 'Content.taxonomyAssurance.items', []);\r\n\r\n const {\r\n searchResults,\r\n filteredSearchResults,\r\n setFilteredSearchResults,\r\n setSearchTimeStamp,\r\n tocControl,\r\n setTocControl,\r\n setCollectionSearchLimit,\r\n collectionSearchLimit\r\n } = useSearchResultContext();\r\n\r\n\r\n useEffect(() => {\r\n //var tocArray = getTocArray();\r\n //let tempTocItem = tocArray;\r\n //setTocControl([]);\r\n //setTocControl(tempTocItem.length > 0 ? tempTocItem : []);\r\n var tocArray = getTocArray();\r\n setTocControl(tocArray);\r\n //eslint-disable-next-line\r\n }, [searchResults, filteredSearchResults]);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (collectionSearchLimit === 0) {\r\n var collectionSearchlimitTemp = await SearchHelpers.getCollectionSearchLimitFromAppSettings();\r\n setCollectionSearchLimit(collectionSearchlimitTemp);\r\n }\r\n })();\r\n window.onscroll = function () {\r\n const ele = document.getElementById('collection-page-search');\r\n if (ele) {\r\n setIsFixedSearchBar(window.pageYOffset > 60);\r\n }\r\n };\r\n //eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n //Load the CatalogCollection\r\n useEffect(() => {\r\n async function getCollectionData(collectionType) {\r\n try {\r\n let querySpec = generateQuerySpec(null, 0);\r\n const data = await getCatalogSections(querySpec, collectionType, 'collection');\r\n const dataFormated = (UTILITIESHELPER.isArrayNullorEmpty(data) || data?.length === 0) ? [] : data; \r\n //ALREADY LOGGED IN getCatalogSections! : logs.debug(page.DCSService, 'retrieveLinks', \"retrieveLinks collectionType, dataFormated\", collection.collectionType, dataFormated);\r\n return dataFormated;\r\n }\r\n catch (error) {\r\n //ALREADY LOGGED IN getCatalogSections! : logs.error(page.DCSService, 'retrieveLinks', ErrorMessages.catalogSections + ' for ' + collection.collectionType, error, { eventId: ErrorCodes.Catalog });\r\n return [];\r\n }\r\n }\r\n\r\n //For Journal Collection\r\n async function getJournalCollectionData(collectionType, limit = 0) {\r\n try {\r\n let querySpec = generateQuerySpec(null, limit);\r\n const data = await getDelCummAndProfNewsCollectionSections(querySpec, collectionType, collectionType === \"deloitte-communications\" ? \"deloittecommunicationcollections\" : \"professionalnewscollections\");\r\n const dataFormated = (UTILITIESHELPER.isArrayNullorEmpty(data) || data?.alllinkItems.length === 0) ? [] : data; \r\n //ALREADY LOGGED IN getCatalogSections! : logs.debug(page.DCSService, 'retrieveLinks', \"retrieveLinks collectionType, dataFormated\", collection.collectionType, dataFormated);\r\n return dataFormated;\r\n }\r\n catch (error) {\r\n //ALREADY LOGGED IN getCatalogSections! : logs.error(page.DCSService, 'retrieveLinks', ErrorMessages.catalogSections + ' for ' + collection.collectionType, error, { eventId: ErrorCodes.Catalog });\r\n return [];\r\n }\r\n }\r\n\r\n //return formate data for the deloitte-communications|professional-news collection page\r\n async function FormateDelCummAndProfNewsCollectionData(data) {\r\n let linkItems = [];\r\n if (UTILITIESHELPER.isArrayNullorEmpty(data)) {\r\n return data;\r\n }\r\n data.map((item) => {\r\n const linkTextTitle = item.journal_brand;\r\n const siteLinkText = linkTextTitle.replace(\" \", \"\");\r\n const linkObj = {\r\n linkInternal: {\r\n //LinkUrl: \"/\" + memberFirm + \"/\" + language + \"/\" + knowledgeDomain + \"/\" + collectionType + \"/\" + linkTextTitle\r\n LinkUrl : `/${memberFirm}/${language}/${knowledgeDomain}/${pageControllerType}/${linkTextTitle}` \r\n },\r\n linkText: getLabel('ch_JournalBrand' + siteLinkText, linkTextTitle),\r\n linkExternal: linkTextTitle,\r\n linkAltText: getLabel('ch_JournalBrandByLine' + siteLinkText, '')\r\n };\r\n linkItems.push(linkObj);\r\n });\r\n return linkItems;\r\n }\r\n\r\n async function getData() {\r\n try {\r\n setIsLoading(true);\r\n setPageDescription(\"\");\r\n setPageTitle(\"\");\r\n setData({});\r\n\r\n const res = await RETRIEVALSERVICES.retrieveCollection();\r\n logs.debug(page.Collection, 'retrieveCollection', \"retrieveCollection:res \", res);\r\n if (pageControllerType !== PAGE_CONTROLLER_TYPE.folio) {\r\n //Check for fall-back, if we have no contnet, we do not continue...\r\n //With the collection page, you should NOT actually \"Get\" here through a navigatable link! \r\n\r\n if (`${PAGE_CONTROLLER_TYPE.deloitteCommunications}|${PAGE_CONTROLLER_TYPE.professionalNews}`.indexOf(pageControllerType) >= 0) {\r\n let catalogCollectionLinks = await getJournalCollectionData(pageControllerType, 10);\r\n let formatteddata = await FormateDelCummAndProfNewsCollectionData(catalogCollectionLinks.allcollectionsItems);\r\n let pubtype = get(res, \"CatalogCollection[0].Content.context.publicationType.Key\", pageControllerType === PUBLICATIONTYPE_IDS.deloitteCommunications ? PUBLICATIONTYPE_IDS.deloitteCommunications : PUBLICATIONTYPE_IDS.professionalNews);\r\n set(res, 'CatalogCollection[0].Content.context.publicationLists[\"' + pubtype + '\"]', catalogCollectionLinks.alllinkItems);\r\n set(res, 'CatalogCollection[0].Content.links', formatteddata);\r\n }\r\n else if((`${PAGE_CONTROLLER_TYPE.manual}|${PAGE_CONTROLLER_TYPE.standards}`.indexOf(pageControllerType) >= 0)) {\r\n const [Manuals, Standards] = await Promise.all([\r\n await getCollectionData(PAGE_CONTROLLER_TYPE.manual),\r\n await getCollectionData(PAGE_CONTROLLER_TYPE.standards),\r\n ]);\r\n if(pageControllerType === PAGE_CONTROLLER_TYPE.manual){\r\n let pubtype = get(res, \"CatalogCollection[0].Content.context.publicationType.Key\",PUBLICATIONTYPE_IDS.standards);\r\n console.log(pubtype);\r\n set(res, 'CatalogCollection[0].Content.links', Manuals);\r\n // set Recently Viewed to TOP 10 Standards\r\n set(res, 'CatalogCollection[0].Content.context.publicationLists[\"' + PUBLICATIONTYPE_IDS.standards + '\"]', Standards);\r\n }\r\n else if(pageControllerType === PAGE_CONTROLLER_TYPE.standards) {\r\n let pubtype = get(res, \"CatalogCollection[0].Content.context.publicationType.Key\",PUBLICATIONTYPE_IDS.manual);\r\n set(res, 'CatalogCollection[0].Content.links', Standards);\r\n // set Recently Viewed to TOP 10 Manuals\r\n set(res, 'CatalogCollection[0].Content.context.publicationLists[\"' + PUBLICATIONTYPE_IDS.manual + '\"]', Manuals);\r\n }\r\n }\r\n else if ((`${PAGE_CONTROLLER_TYPE.guidance}`.indexOf(pageControllerType) >= 0)) {\r\n const [Guidance, Standards] = await Promise.all([\r\n await getCollectionData(PAGE_CONTROLLER_TYPE.guidance),\r\n await getCollectionData(PAGE_CONTROLLER_TYPE.standards),\r\n ]);\r\n if (pageControllerType === PAGE_CONTROLLER_TYPE.guidance) {\r\n let pubtype = get(res, \"CatalogCollection[0].Content.context.publicationType.Key\", PUBLICATIONTYPE_IDS.standards);\r\n console.log(pubtype);\r\n set(res, 'CatalogCollection[0].Content.links', Guidance);\r\n // set Recently Viewed to TOP 10 Standards\r\n set(res, 'CatalogCollection[0].Content.context.publicationLists[\"' + PUBLICATIONTYPE_IDS.standards + '\"]', Standards);\r\n }\r\n } \r\n else {\r\n let catalogCollectionLinks = await getCollectionData(pageControllerType);\r\n set(res, 'CatalogCollection[0].Content.links', catalogCollectionLinks);\r\n }\r\n let catalogCollectionLinks = get(res, 'CatalogCollection[0].Content.links',[]);\r\n \r\n //For folio, this will be null! As there are no collection items, therefore no links.\r\n if ((!catalogCollectionLinks || catalogCollectionLinks?.length === 0) && !isSearchPage) {\r\n navigate(CONTEXTHELPERS.getFallbackUrl(window.location.href));\r\n }\r\n }\r\n\r\n setData(res);\r\n setPageTitle(get(res, 'CatalogCollection[0].Content.title.Content.title', ''))\r\n setPageDescription(get(res, 'CatalogCollection[0].Content.title.Content.intro', ''));\r\n setIsLoading(false);\r\n }\r\n catch (err) {\r\n logs.error(page.Collection, \"getCollection\", ErrorMessages.collectionData, err,{eventId:ErrorCodes.Collection});\r\n }\r\n }\r\n\r\n if(isMemberFirmsLoaded)\r\n getData();\r\n\r\n return () => {\r\n setPageTitle('');\r\n setPageDescription('');\r\n setData({});\r\n }\r\n //eslint-disable-next-line\r\n }, [tierVal, industryVal, isMemberFirmsLoaded, contextMemberFirm]);\r\n\r\n useEffect(() => {\r\n //groupList is a object array used to store unique publication id with pub nav title\r\n //this groupList is used for grouping just to display \"View All Result\" with pub nav title in the list shown below search bar as a search result\r\n var newObject = [];\r\n if (filteredSearchResults && filteredSearchResults.length > 0) {\r\n filteredSearchResults.forEach((item, index) => {\r\n if (index === 0) {\r\n let obj = { \"publicationId\": item.document?.publicationId, \"publicationNavTitle\": item.document?.publicationNavTitle, \"result\": item }\r\n newObject.push(obj);\r\n }\r\n else {\r\n if (newObject.findIndex(a => a.publicationId === item.document?.publicationId) < 0) {\r\n let obj = { \"publicationId\": item.document?.publicationId, \"publicationNavTitle\": item.document?.publicationNavTitle, \"result\": item }\r\n newObject.push(obj);\r\n }\r\n }\r\n });\r\n }\r\n\r\n setGroupList(newObject);\r\n }, [filteredSearchResults]);\r\n\r\n function SidePanelComponent() {\r\n if (!recentLinks?.length) return null;\r\n\r\n return \r\n
      \r\n {recentLinks.slice(0, maxRecentLinksToDisplay).map((item) => {\r\n return (\r\n \r\n {isJournalCollection && item?.context?.journal_brand ? item.context.journal_brand + \": \" + item.context.display_title : item.context.display_title}\r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n }\r\n\r\n const handleSearchTrigger = async (typedSearchPhrase) => {\r\n if (String(typedSearchPhrase).length > 2) {\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(searchPhrase)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'Collection' });\r\n return;\r\n }\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null });\r\n setSearchPhrase(typedSearchPhrase);\r\n }\r\n\r\n setFilteredSearchResults([]); \r\n setShowResults(false);\r\n }\r\n\r\n const handleSearchSubmit = event => {\r\n event.preventDefault();\r\n setSearchTimeStamp(Date.now())\r\n if (searchPhrase.length < 2) {\r\n alert(getLabel(\"s_SearchPhraseTooShort\", \"Phrase too short (for now)\"));\r\n return;\r\n }\r\n if (SearchHelpers.IsSearchPrefixWithWildcards(searchPhrase)) {\r\n setNotification({ message: wildcardsPrefixSearchLimitationNotification, type: ErrorTypes.Error, display: true, appInsightUIMapping: appInsightUIMapping.Warning, componentName: 'Collection' });\r\n return;\r\n }\r\n setNotification({ message: '', type: ErrorTypes.Error, display: false, appInsightUIMapping: null, componentName: null });\r\n\r\n //The human readable, is only for when we show the user what they searched for?\r\n //setSearchPhrase(SearchHelpers.toHumanReadable(parsedSearchPhrase));\r\n //TODO: Need to remove the existing QS from this ?!\r\n const currentLocation = window.location.pathname;\r\n navigate(`${currentLocation}?${SearchHelpers.toQueryString(SearchHelpers.parse(searchPhrase))}`);\r\n return;\r\n };\r\n\r\n const getSubjectTOC = (subject) => {\r\n var subjectTOC = {\r\n id: subject.id,\r\n name: subject.name,\r\n visible: false,\r\n filterAppliedStateOn: false,\r\n resultCount: 0,\r\n pageControllerType: pageControllerType,\r\n tocItem: subject,\r\n searchResult: null,\r\n href: subject.href\r\n };\r\n return subjectTOC\r\n }\r\n const getItemTOC = (item, filteredTocResults) => {\r\n var itemTOC = {\r\n id: item.linkExternal,\r\n name: item.linkText,\r\n visible: filteredTocResults.length > 0 ? true : false,\r\n filterAppliedStateOn: filteredTocResults.length > 0 ? true : false,\r\n resultCount: filteredTocResults.length,\r\n pageControllerType: pageControllerType,\r\n tocItem: item,\r\n searchResult: filteredTocResults,\r\n href: item.linkInternal.LinkUrl\r\n };\r\n return itemTOC;\r\n }\r\n const getPublicationTOC = (publication, filteredTocResults) => {\r\n var publicationTOC = {\r\n id: publication.PublicationGUID,\r\n name: publication.linkText,\r\n visible: filteredTocResults.length > 0 ? true : false,\r\n filterAppliedStateOn: filteredTocResults.length > 0 ? true : false,\r\n resultCount: filteredTocResults.length,\r\n pageControllerType: pageControllerType,\r\n tocItem: publication,\r\n searchResult: filteredTocResults,\r\n href: publication?.url\r\n };\r\n return publicationTOC;\r\n }\r\n\r\n function getTocArray() {\r\n var tocArray = [];\r\n\r\n //For Folio-Subjects, we ONLY want to start presenting Subjects when we have search results...\r\n if (isSearchPage && searchResults.length > 0) {\r\n if (pageControllerType === \"folio\") {\r\n switch (knowledgeDomain) {\r\n case \"auditing\":\r\n if (nonAccountBalanceOptions.length > 0) {\r\n nonAccountBalanceOptions.forEach((nonAccountSubject) => {\r\n var nonAccountSubjectTOC = getSubjectTOC(nonAccountSubject);\r\n tocArray.push(nonAccountSubjectTOC);\r\n });\r\n }\r\n if (accountBalanceOptions.length > 0) {\r\n accountBalanceOptions.forEach((accountSubject) => {\r\n var accountSubjectTOC = getSubjectTOC(accountSubject);\r\n tocArray.push(accountSubjectTOC);\r\n });\r\n }\r\n break;\r\n //no break, as we fall through to also add the account balance options for Auditing as well!\r\n case \"accounting\":\r\n if (accountBalanceOptions.length > 0) {\r\n accountBalanceOptions.forEach((accountSubject) => {\r\n var accountSubjectTOC = getSubjectTOC(accountSubject);\r\n tocArray.push(accountSubjectTOC);\r\n });\r\n }\r\n break;\r\n\r\n case \"assurance\":\r\n if (assuranceOptions.length > 0) {\r\n assuranceOptions.forEach((assuranceSubject) => {\r\n var assuranceSubjectTOC = getSubjectTOC(assuranceSubject);\r\n tocArray.push(assuranceSubjectTOC);\r\n });\r\n }\r\n break;\r\n default :\r\n break;\r\n }\r\n\r\n const uniqueID = {};\r\n\r\n const tmeplaterepositories = [\"68169717\",\"58035381\" , \"68489711\"];\r\n //eslint-disable-next-line\r\n tocArray.map((folioSubjectItemTOC) => {\r\n //Need to find the current Folio Subject in the search results for it to be presented\r\n //For assurance, the result.document subject source field will be the same as auditing publicationAuditWorkflowNonAccount\r\n var accountIndex = searchResults.findIndex(searchResult => (searchResult.document?.publicationAuditWorkflowAccount?.includes(folioSubjectItemTOC.id)));\r\n var nonAccountIndex = searchResults.findIndex(searchResult => (searchResult.document?.publicationAuditWorkflowNonAccount?.includes(folioSubjectItemTOC.id)));\r\n\r\n //If we found the subject inside the results... then we present it...\r\n if (accountIndex > -1 || nonAccountIndex > -1) {\r\n //folioSubjectItemTOC.visible = true; //We ONLY show the Folio Subject if we have search results for them.\r\n folioSubjectItemTOC.filterAppliedStateOn = true;\r\n var hasFTEOGuide = false;\r\n const filteredTocResults = searchResults.filter((result) => {\r\n const isTemplateRepository = tmeplaterepositories.includes(result.document?.publicationType);\r\n\r\n if(isTemplateRepository && !hasFTEOGuide){\r\n if((result.document?.auditWorkflowAccount && (result.document.auditWorkflowAccount.length > 0))\r\n || (result.document?.auditWorkflowNonAccount && (result.document.auditWorkflowNonAccount.length > 0))) {\r\n if (result.document.auditWorkflowAccount.includes(folioSubjectItemTOC.id) || result.document.auditWorkflowNonAccount.includes(folioSubjectItemTOC.id)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n else if((result.document?.publicationAuditWorkflowAccount && (result.document.publicationAuditWorkflowAccount.length > 0))\r\n || (result.document?.publicationAuditWorkflowNonAccount && (result.document.publicationAuditWorkflowNonAccount.length > 0))) {\r\n if (result.document.publicationAuditWorkflowAccount.includes(folioSubjectItemTOC.id) || result.document.publicationAuditWorkflowNonAccount.includes(folioSubjectItemTOC.id)) {\r\n hasFTEOGuide = hasFTEOGuide || result.document?.publicationType === \"66029858\";\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n });\r\n const filteredTocsearchresults = hasFTEOGuide ? filteredTocResults?.filter((result) => !tmeplaterepositories.includes(result.document?.publicationType)) : filteredTocResults ;\r\n folioSubjectItemTOC.searchResult = filteredTocsearchresults.filter(x=>{\r\n if(uniqueID[x.document.topicId+x.document.publicationObjectId]){\r\n return false;\r\n }\r\n uniqueID[x.document.topicId+x.document.publicationObjectId] = true;\r\n return true;\r\n })\r\n folioSubjectItemTOC.resultCount = folioSubjectItemTOC.searchResult.length;\r\n folioSubjectItemTOC.visible = folioSubjectItemTOC.searchResult.length > 0;\r\n }\r\n });\r\n }\r\n else if (`${PAGE_CONTROLLER_TYPE.deloitteCommunications}|${PAGE_CONTROLLER_TYPE.professionalNews}`.indexOf(pageControllerType) >= 0) {\r\n collectionItems.forEach((item, idx) => {\r\n const filteredTocResults = searchResults.filter(result => result.document.publicationObjectId === item.linkExternal);\r\n var itemTOC = getItemTOC(item, filteredTocResults);\r\n tocArray.push(itemTOC);\r\n })\r\n }\r\n else {\r\n collectionItems.forEach((publicationItem, idx) => {\r\n var filteredTocResults = searchResults.filter(result => result.document.publicationId === publicationItem.PublicationGUID);\r\n var publicationTOC = getPublicationTOC(publicationItem, filteredTocResults);\r\n tocArray.push(publicationTOC);\r\n })\r\n }\r\n }\r\n\r\n //Sort alpahbetically...\r\n tocArray = UTILITIESHELPER.sortArray(tocArray, \"name\");\r\n\r\n return tocArray;\r\n }\r\n function displayCollectionToc() \r\n {\r\n let collectionTocArray=[]\r\n if(tocControl &&\r\n tocControl.length > 0) {\r\n tocControl.forEach((tocItem, index) => {\r\n if (tocItem.visible) {\r\n collectionTocArray.push(
    \r\n \r\n
    );\r\n }\r\n })\r\n }\r\n return collectionTocArray;\r\n }\r\n const renderSearchResultTocBody = (collectionItems, searchTocBody) => {\r\n if (searchTocBody && !(Array.isArray(searchResults) && searchResults.length > 0)) {\r\n return null;\r\n }\r\n //For Folio, we have the Taxonomy values, not the collecitonItems!\r\n if (pageControllerType !== \"folio\" && (!(Array.isArray(collectionItems) && collectionItems.length > 0))) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n {\r\n displayCollectionToc()\r\n }\r\n
    \r\n );\r\n }\r\n\r\n const handlePublicationResult = (e, data) => {\r\n var publicationlink = LINKHELPERS.resolveSearchLink(data.result, memberFirm, language, knowledgeDomain, pageControllerType, searchPhrase, catalogCollection, true);\r\n navigate(`${publicationlink}`);\r\n };\r\n const handleViewAllResult = () => {\r\n\r\n setSearchTimeStamp(Date.now())\r\n\r\n if (searchPhrase.length < 3) {\r\n alert(getLabel(\"s_SearchPhraseTooShort\", \"Phrase too short (for now)\"));\r\n return;\r\n }\r\n //setTocControl([]);\r\n\r\n //parentOnSubmit(searchPhrase)\r\n\r\n const currentLocation = window.location.pathname;\r\n\r\n if ((currentLocation.indexOf(\"/collection\") > 0) && (PUBTYPES_CATALOG_PAGE.some(currentLocation))) {\r\n\r\n const parsedSearchPhrase = SearchHelpers.parse(searchPhrase);\r\n const qs = SearchHelpers.toQueryString(parsedSearchPhrase);\r\n\r\n navigate(`${currentLocation}?${qs}`);\r\n\r\n logs.trackEvent({\r\n name: 'Search',\r\n properties: {\r\n searchText: searchPhrase,\r\n memberFirm: UTILITIESHELPER.getSessionStorage('MemberFirm'),\r\n serviceArea: UTILITIESHELPER.getSessionStorage('ServiceArea'),\r\n level: UTILITIESHELPER.getSessionStorage('Level')\r\n }\r\n })\r\n return;\r\n }\r\n\r\n //alert(getLabel(\"s_SearchNotAvailableWhereYouAreCurrently\", \"Search not available where you are currently (for now)\"));\r\n\r\n return;\r\n };\r\n\r\n let pubLandingUrls=window.location.pathname;\r\n if(pageControllerType === \"folio\")\r\n {\r\n pubLandingUrls=`/${memberFirm}/${language}/${knowledgeDomain}`;\r\n }\r\n\r\n const pageProps = {\r\n isWideMode,\r\n setIsWideMode,\r\n publicationType,\r\n hasAllTocDataLoaded,\r\n navTitle,\r\n pubLandingUrl: pubLandingUrls\r\n }\r\n\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n //styling for collection search result panel\r\n const collectionSearcResult= {\r\n display: showResults ? 'block' : 'none'\r\n }\r\n function collectionSearchResultItemList(topicIndex,group){\r\n var collectionSearchResultItemList=[];\r\n filteredSearchResults.forEach((result, idx) => {\r\n if (result.document.publicationId === group.publicationId) {\r\n if (topicIndex < 3) {\r\n result[\"url\"] = LINKHELPERS.resolveSearchLink(result, memberFirm, language, knowledgeDomain, pageControllerType, searchPhrase, catalogCollection);\r\n topicIndex++;\r\n collectionSearchResultItemList.push()\r\n }\r\n }\r\n })\r\n return collectionSearchResultItemList;\r\n }\r\n function getLinkInternal(item){\r\n if (\"deloitte-communications|professional-news\".indexOf(pageControllerType) > -1)\r\n return get(item,'linkInternal.LinkUrl'); \r\n else if (pageControllerType === PAGE_CONTROLLER_TYPE.standards && item.PublicationType !== PUBLICATIONTYPE_IDS.standards) \r\n return [`/${memberFirm}/${language}/${knowledgeDomain}/${PAGE_CONTROLLER_TYPE.standard}`,get(item,'linkInternal.LinkUrl')].join('/'); \r\n else \r\n return [`/${memberFirm}/${language}/${knowledgeDomain}/${pageControllerType}`,get(item,'linkInternal.LinkUrl')].join('/'); \r\n\r\n }\r\n\r\n return (\r\n
    \r\n {\r\n isSearchPage ?\r\n \r\n \r\n :\r\n
    \r\n
    \r\n \r\n
    \r\n {groupList.map((group, idx) => {\r\n let topicIndex = 0;// this topicIndex is used to displayonly 3 sub topics uncer singlr publication\r\n\r\n return
    \r\n \r\n {collectionSearchResultItemList(topicIndex,group)}\r\n
    \r\n })}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {pageControllerType === \"folio\" ?\r\n renderSearchResultTocBody(collectionItems, false) :\r\n collectionItems.map((item, idx) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n
    \r\n }\r\n
    \r\n )\r\n}\r\n\r\nexport default Collection;\r\n","\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom'\r\nimport { useLoadingContext } from '../../contexts/LoadingContext';\r\nimport { usePageContextLabels } from '../../contexts/PageContext';\r\nimport RETRIEVALSERVICES from '../../services/rp-service';\r\nimport UTILITIESHELPER from '../../helpers/UtilitiesHelper';\r\nimport ShowIf from '../Common/ShowIf';\r\nimport HTMLContent from '../Common/HTMLContent';\r\nimport { logs, page } from '../../helpers/log';\r\nimport { ErrorCodes,ErrorMessages } from '../Constants/Errors';\r\n\r\n\r\nconst ContentArticle = () => {\r\n\tconst navigate = useNavigate();\r\n\tconst [data, setData] = useState(null);\r\n\tconst { setIsLoading } = useLoadingContext();\r\n\tconst { getLabel } = usePageContextLabels();\r\n const {language} = useParams();\r\n\r\n\tfunction InjectOneTrustCookieServiceIfItDoesntExist() {\r\n\t\tif (document.querySelectorAll(`script[src=\"${window.CookiesServices.ENV.Cookie_Service_Url}\"]`).length > 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar src = window.CookiesServices.ENV.Cookie_Service_Url;\r\n\t\tvar dataDomainScript = window.CookiesServices.ENV.Cookie_Data_Domain_Script;\r\n\t\tvar script = document.createElement(\"script\");\r\n\t\tscript.setAttribute(\"src\", src);\r\n\t\tscript.setAttribute(\"data-domain-script\", dataDomainScript);\r\n\t\tscript.setAttribute(\"type\", \"text/javascript\");\r\n\t\tscript.setAttribute(\"charset\", \"UTF-8\");\r\n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(script);\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tconst fetchArticle = async () => {\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await RETRIEVALSERVICES.retrieveContentArticle();\r\n\t\t\t\tlogs.debug(page.Article, 'ContentArticle', \"ContentArticle:retrieveContentArticle\", res);\r\n\t\t\t\tconst locationUrl = window.location.href;\r\n const isCookiesPage=locationUrl.split(\"/\");\r\n\t\t\t\tif (isCookiesPage[5].includes('content') && isCookiesPage[6].includes('cookies-notice')) {\r\n\t\t\t\t\tInjectOneTrustCookieServiceIfItDoesntExist();\r\n\t\t\t\t}\r\n\t\t\t\tsetData(res);\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t}\r\n\t\t\tcatch (err) {\r\n\t\t\t\tlogs.error(page.Article, 'ContentArticle', ErrorMessages.contentArticle, err,{eventId:ErrorCodes.Article})\r\n\t\t\t\tnavigate(\"\", 500);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfetchArticle();\r\n\t}, []);//eslint-disable-line\r\n\r\n\tfunction createMarkup(articleBody) {\r\n\t\tvar fragmentsText = \"\";\r\n\t\tarticleBody.Fragments.forEach((fragment) => {\r\n\t\t\tif (typeof (fragment) === 'string') {\r\n\t\t\t\tfragmentsText += fragment\r\n\t\t\t}\r\n\t\t\t//else {\r\n\t\t\t// //This is where we may address images, if they are resolved.\r\n\t\t\t//}\r\n\t\t})\r\n\t\treturn fragmentsText;\r\n\t}\r\n\r\n\tfunction renderArticleBody(articleBody) {\r\n\t\tif (typeof (articleBody) === 'string') {\r\n\t\t\treturn articleBody;\r\n\t\t}\r\n\t\telse if (articleBody?.Fragments) {\r\n\t\t\treturn (\r\n\t\t\t\t
    {createMarkup(articleBody)}
    \r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n\r\n\tfunction renderArticleDate(articleModel) {\r\n\t\tif (articleModel.Metadata?.standardMeta?.dateCreated) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{getLabel(\"a_ReleaseDate\", \"Date released\")}: {UTILITIESHELPER.formatDate(articleModel.Metadata?.standardMeta?.dateCreated, language)}\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n\r\n\tif (!data) {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t

    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t

    {data.articleModel.Content.headline}

    \r\n\t\t\t\t\t{renderArticleDate(data.articleModel)}\r\n\t\t\t\t\t{data.articleModel.Content.body.map((articleBody, abi) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    {articleBody.intro}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{renderArticleBody(articleBody.body)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{articleBody.image?.Metadata?.altText\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t)\r\n}\r\n\r\nexport default ContentArticle\r\n","import React from 'react';\r\nimport ShowIf from '../ShowIf';\r\nimport { useThemeContext } from '../../../contexts/ThemeContext';\r\n\r\nconst HeaderImage = (props) => {\r\n const { headerData, hasFetchedHeaderData } = props;\r\n const { isDarkMode } = useThemeContext();\r\n\r\n return (\r\n \r\n
    \r\n \"Header\"/\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default HeaderImage","import React from 'react';\r\nimport { useParams } from 'react-router'; \r\nimport { usePageContext, usePageContextLabels } from '../../../../contexts/PageContext'; \r\n\r\nconst TriggerValue = () => {\r\n const {knowledgeDomain} = useParams();\r\n const Title = () => {\r\n const { getLabel } = usePageContextLabels();\r\n const defaultTitle = getLabel(\"c_Preferences\", \"Preferences\");\r\n const { tier, industry, memberFirm } = usePageContext();\r\n\r\n const buildTitle = (parts) => {\r\n let title = parts.map(x => x.label).join('; ');\r\n if (title.length > 7) {\r\n title = title.slice(0, 7).concat('...');\r\n }\r\n title += ` (${parts.length})`;\r\n return title;\r\n }\r\n\r\n const getTitle = () => {\r\n if (industry && !tier) {\r\n if (industry[memberFirm] && industry[memberFirm][knowledgeDomain] && industry[memberFirm][knowledgeDomain].length) {\r\n return buildTitle(industry[memberFirm][knowledgeDomain]);\r\n }\r\n }\r\n if (tier && !industry) {\r\n if (tier[memberFirm] && tier[memberFirm][knowledgeDomain] && tier[memberFirm][knowledgeDomain].length) {\r\n return buildTitle(tier[memberFirm][knowledgeDomain]);\r\n }\r\n }\r\n if (tier && industry) {\r\n const isTierHasValue = tier[memberFirm] && tier[memberFirm][knowledgeDomain] && tier[memberFirm][knowledgeDomain].length;\r\n const isIndustryHasValue = industry[memberFirm] && industry[memberFirm][knowledgeDomain] && industry[memberFirm][knowledgeDomain].length;\r\n if (isTierHasValue && isIndustryHasValue) {\r\n return buildTitle([...tier[memberFirm][knowledgeDomain], ...industry[memberFirm][knowledgeDomain]]);\r\n }\r\n if (isTierHasValue && !isIndustryHasValue) {\r\n return buildTitle(tier[memberFirm][knowledgeDomain]);\r\n }\r\n if (!isTierHasValue && isIndustryHasValue) {\r\n return buildTitle(industry[memberFirm][knowledgeDomain]);\r\n }\r\n }\r\n return defaultTitle;\r\n }\r\n return {getTitle()}\r\n }\r\n\r\n return (\r\n