{"version":3,"file":"main.xxxxxxxx.chunk.js","mappings":"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","sources":["webpack://strikecommunity/webpack/runtime/chunk loaded","webpack://strikecommunity/webpack/runtime/create fake namespace object","webpack://strikecommunity/webpack/runtime/load script","webpack://strikecommunity/./src/contracts/applicationStates.ts","webpack://strikecommunity/./src/contracts/models/serverResponseContracts.ts","webpack://strikecommunity/./src/contracts/models/uiModels.ts","webpack://strikecommunity/./src/contracts/models/strikeEnums.ts","webpack://strikecommunity/./src/redux/slices.ts","webpack://strikecommunity/./src/enums/EventNotificationTemplateType.ts","webpack://strikecommunity/./src/enums/CoverImageType.ts","webpack://strikecommunity/./src/enums/FollowType.ts","webpack://strikecommunity/./src/enums/MessageType.ts","webpack://strikecommunity/./src/models/slices/app/management/appManagementInitialState.ts","webpack://strikecommunity/./src/models/slices/app/treeView/appTreeViewInitialState.ts","webpack://strikecommunity/./src/models/slices/article/articleFormInitialState.ts","webpack://strikecommunity/./src/components/common/node/activity/constants.ts","webpack://strikecommunity/./src/models/slices/comment/commentInitialState.ts","webpack://strikecommunity/./src/models/slices/event/eventFormInitialState.ts","webpack://strikecommunity/./src/models/slices/event/eventNotificationTemplatesInitialState.ts","webpack://strikecommunity/./src/models/slices/filter/filterInitialState.ts","webpack://strikecommunity/./src/components/common/user/listBox/constants.ts","webpack://strikecommunity/./src/models/slices/follow/followInitialState.ts","webpack://strikecommunity/./src/models/slices/node/nodeInitialState.ts","webpack://strikecommunity/./src/models/slices/spaces/spacesInitialState.ts","webpack://strikecommunity/./src/models/slices/tags/tagsInitialState.ts","webpack://strikecommunity/./src/redux/reducers/appManagement.ts","webpack://strikecommunity/./src/service/base/LazyServiceStarter.ts","webpack://strikecommunity/./src/redux/reducers/nodes.ts","webpack://strikecommunity/./src/redux/reducers/auth.ts","webpack://strikecommunity/./src/models/slices/auth/authInitialState.ts","webpack://strikecommunity/./src/redux/reducers/articleForm.ts","webpack://strikecommunity/./src/redux/reducers/appTreeView.ts","webpack://strikecommunity/./src/redux/reducers/comments.ts","webpack://strikecommunity/./src/redux/reducers/spaces.ts","webpack://strikecommunity/./src/redux/reducers/filter.ts","webpack://strikecommunity/./src/redux/reducers/follow.ts","webpack://strikecommunity/./src/redux/reducers/tags.ts","webpack://strikecommunity/./src/models/slices/spaces/spaceFormInitialState.ts","webpack://strikecommunity/./src/redux/reducers/spaceForm.ts","webpack://strikecommunity/./src/redux/reducers/eventForm.ts","webpack://strikecommunity/./src/redux/reducers/eventNotificationTemplates.ts","webpack://strikecommunity/./src/models/slices/banner/globalBannerFormInitialState.ts","webpack://strikecommunity/./src/redux/reducers/globalBannerForm.ts","webpack://strikecommunity/./src/models/slices/topics/topicsExpertsInitialState.ts","webpack://strikecommunity/./src/redux/reducers/topicsExperts.ts","webpack://strikecommunity/./src/redux/rootState.ts","webpack://strikecommunity/./src/redux/store.ts","webpack://strikecommunity/./src/service/message/AppMessage.ts","webpack://strikecommunity/./src/appConfigs.ts","webpack://strikecommunity/./src/api/strikeCommunityApi.ts","webpack://strikecommunity/./src/service/base/BaseHttpAPI.ts","webpack://strikecommunity/./src/service/NodeAPI.ts","webpack://strikecommunity/./src/contracts/models/constants.ts","webpack://strikecommunity/./src/lib/strikeLibrary.tsx","webpack://strikecommunity/./src/service/app/AppFileAPI.ts","webpack://strikecommunity/./src/constants/Constants.ts","webpack://strikecommunity/./src/service/AppManagementAPI.ts","webpack://strikecommunity/./src/service/app/AppMenuAPI.ts","webpack://strikecommunity/./src/service/app/AppTreeViewAPI.ts","webpack://strikecommunity/./src/service/base/NodePreprocessingAPI.ts","webpack://strikecommunity/./src/service/article/ArticleDataAPI.ts","webpack://strikecommunity/./src/redux/selectors/articleForm.ts","webpack://strikecommunity/./src/redux/selectors/nodes.ts","webpack://strikecommunity/./src/service/article/ArticleFormService.ts","webpack://strikecommunity/./src/auth/authConfig.ts","webpack://strikecommunity/./src/auth/msalService.ts","webpack://strikecommunity/./src/service/userProfile/UserProfileAPI.ts","webpack://strikecommunity/./src/service/GraphAPI.ts","webpack://strikecommunity/./src/components/router/maps/applicationRoutePaths.ts","webpack://strikecommunity/./src/redux/selectors/spaces.ts","webpack://strikecommunity/./src/service/space/SpacesAPI.ts","webpack://strikecommunity/./src/service/space/SpaceAdminAPI.ts","webpack://strikecommunity/./src/service/node/NodeAdminAPI.ts","webpack://strikecommunity/./src/service/node/SuperAdminAPI.ts","webpack://strikecommunity/./src/service/filter/FilterAPI.ts","webpack://strikecommunity/./src/redux/selectors/follow.ts","webpack://strikecommunity/./src/service/follow/FollowAPI.ts","webpack://strikecommunity/./src/models/topic/TopicRequest.ts","webpack://strikecommunity/./src/models/topic/NodeTopicUpdate.ts","webpack://strikecommunity/./src/service/topic/TopicsAPI.ts","webpack://strikecommunity/./src/service/events/eventsAPI.ts","webpack://strikecommunity/./src/redux/selectors/comments.ts","webpack://strikecommunity/./src/service/comment/CommentAPI.ts","webpack://strikecommunity/./src/service/utils/ProcessingQueueAPI.ts","webpack://strikecommunity/./src/service/space/SpaceFormService.ts","webpack://strikecommunity/./src/service/events/EventFormService.ts","webpack://strikecommunity/./src/service/events/EventAPIService.ts","webpack://strikecommunity/./src/service/utils/ContrastDetection.ts","webpack://strikecommunity/./src/service/banner/GlobalBannerFormService.ts","webpack://strikecommunity/./src/service/banner/GlobalBannerAdminAPIService.ts","webpack://strikecommunity/./src/service/base/ServiceHub.ts","webpack://strikecommunity/./src/redux/selectors/appManagement.ts","webpack://strikecommunity/./src/components/common/shimmer/Shimmer.tsx","webpack://strikecommunity/./src/components/common/shimmer/article/shimmer.article.tsx","webpack://strikecommunity/./src/components/common/shimmer/article/shimmer.articleImg.tsx","webpack://strikecommunity/./src/components/common/shimmer/article/shimmer.articleTreeView.tsx","webpack://strikecommunity/./src/components/common/shimmer/author/shimmer.authorMention.tsx","webpack://strikecommunity/./src/components/common/article/author/shared.ts","webpack://strikecommunity/./src/components/common/shimmer/form/shimmer.form.tsx","webpack://strikecommunity/./src/components/common/shimmer/question/shimmer.question.tsx","webpack://strikecommunity/./src/components/common/shimmer/topics/shimmer.topics.tsx","webpack://strikecommunity/./src/components/common/shimmer/nodeActivity/shimmer.nodeActivity.tsx","webpack://strikecommunity/./src/redux/selectors/appTreeView.ts","webpack://strikecommunity/./src/redux/selectors/auth.ts","webpack://strikecommunity/./src/hooks/auth/useAuthUser.ts","webpack://strikecommunity/./src/hooks/auth/useNodeAdminAccessControl.ts","webpack://strikecommunity/./src/hooks/space/useSpaceSlice.ts","webpack://strikecommunity/./src/redux/selectors/filter.ts","webpack://strikecommunity/./src/hooks/filter/useFilterSlice.ts","webpack://strikecommunity/./src/hooks/follower/useFollowers.ts","webpack://strikecommunity/./src/hooks/gallery/useImageGallery.ts","webpack://strikecommunity/./src/components/common/node/node.form.strings.ts","webpack://strikecommunity/./src/components/common/button/Button.tsx","webpack://strikecommunity/./src/components/common/button/icon.button.tsx","webpack://strikecommunity/./src/components/common/button/dropdown/button.dropdown.tsx","webpack://strikecommunity/./src/components/common/button/dropdown/actions/button.dropdown.actions.tsx","webpack://strikecommunity/./src/components/common/text/RichTextInput.tsx","webpack://strikecommunity/./src/components/common/text/TextInput.tsx","webpack://strikecommunity/./src/components/common/form/field.requiredMark.tsx","webpack://strikecommunity/./src/components/common/form/field.clear.tsx","webpack://strikecommunity/./src/components/common/form/form.actions.tsx","webpack://strikecommunity/./src/components/common/form/form.labels.ts","webpack://strikecommunity/./src/components/common/alert/alert.tsx","webpack://strikecommunity/./src/components/common/form/form.container.tsx","webpack://strikecommunity/./src/components/common/form/form.field.tsx","webpack://strikecommunity/./src/components/common/form/form.field.validation.tsx","webpack://strikecommunity/./src/components/common/form/form.hint.tsx","webpack://strikecommunity/./src/components/common/dropdown/shared/enhanceItems.function.ts","webpack://strikecommunity/./src/components/common/dropdown/Dropdown.tsx","webpack://strikecommunity/./src/components/common/dropdown/treeView.dropdown.tsx","webpack://strikecommunity/./src/components/common/combobox/ComboBox.tsx","webpack://strikecommunity/./src/components/pagination/pagination.tsx","webpack://strikecommunity/./src/components/pagination/pagination.light.tsx","webpack://strikecommunity/./src/components/common/image/gallery/coverImage.gallery.tsx","webpack://strikecommunity/./src/components/common/image/gallery/coverImage.gallery.strings.ts","webpack://strikecommunity/./src/components/common/image/gallery/coverImage.modal.tsx","webpack://strikecommunity/./src/components/ui/ErrorPage.tsx","webpack://strikecommunity/./src/components/common/page/UnauthorizedPage.tsx","webpack://strikecommunity/./src/hooks/node/useNodeActions.ts","webpack://strikecommunity/./src/components/common/message/action.post.message.tsx","webpack://strikecommunity/./src/components/common/tagpicker/TagPicker.tsx","webpack://strikecommunity/./src/components/common/tagpicker/AddTagPicker.tsx","webpack://strikecommunity/./src/components/common/node/node.form.tsx","webpack://strikecommunity/./src/components/common/node/richTextNode.tsx","webpack://strikecommunity/./src/components/common/contextMenu/context.menu.tsx","webpack://strikecommunity/./src/hooks/auth/useSuperAdminAccessControl.ts","webpack://strikecommunity/./src/components/common/message/message.tsx","webpack://strikecommunity/./src/components/common/message/confirmation.message.tsx","webpack://strikecommunity/./src/components/common/panel/Panel.tsx","webpack://strikecommunity/./src/components/common/node/report/node.report.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.context.menu.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.comment.actions.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.comment.form.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.comment.reply.tsx","webpack://strikecommunity/./src/components/common/icon/default.icon.tsx","webpack://strikecommunity/./src/components/common/icon/book.icon.tsx","webpack://strikecommunity/./src/components/common/icon/check.icon.tsx","webpack://strikecommunity/./src/components/common/icon/question.icon.tsx","webpack://strikecommunity/./src/components/common/icon/user.icon.tsx","webpack://strikecommunity/./src/components/common/user/userPhoto.tsx","webpack://strikecommunity/./src/components/common/user/listBox/userList.primaryAction.tsx","webpack://strikecommunity/./src/components/common/user/userPhotoFollower.tsx","webpack://strikecommunity/./src/components/common/user/listBox/userList.photo.tsx","webpack://strikecommunity/./src/components/common/user/listBox/userList.content.tsx","webpack://strikecommunity/./src/components/common/user/listBox/userList.box.tsx","webpack://strikecommunity/./src/components/common/article/author/authorMention.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.comment.body.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.comment.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.actions.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.tsx","webpack://strikecommunity/./src/components/common/node/space/space.form.strings.ts","webpack://strikecommunity/./src/hooks/node/useNodeOwner.ts","webpack://strikecommunity/./src/hooks/html/useHtmlVirtualization.ts","webpack://strikecommunity/./src/hooks/node/useNodeForm.ts","webpack://strikecommunity/./src/hooks/utils/useDownloadQueue.ts","webpack://strikecommunity/./src/hooks/utils/useAbortController.ts","webpack://strikecommunity/./src/hooks/utils/useShareContent.ts","webpack://strikecommunity/./src/hooks/screen/useScreenSize.ts","webpack://strikecommunity/./src/redux/selectors/eventForm.ts","webpack://strikecommunity/./src/hooks/event/useEventForm.ts","webpack://strikecommunity/./src/redux/selectors/eventNotificationTemplates.ts","webpack://strikecommunity/./src/hooks/event/useEventNotificationTemplates.ts","webpack://strikecommunity/./src/components/Header/shared/header.actions.tsx","webpack://strikecommunity/./src/components/Header/page.header.tsx","webpack://strikecommunity/./src/components/topics/topics.list.tsx","webpack://strikecommunity/./src/components/common/icon/favorite.icon.tsx","webpack://strikecommunity/./src/components/dashboard/node.summary.tsx","webpack://strikecommunity/./src/components/dashboard/node.summary.grid.css?6cba","webpack://strikecommunity/./src/components/dashboard/node.summary.grid.tsx","webpack://strikecommunity/./src/components/dashboard/node.summary.switcher.css?1328","webpack://strikecommunity/./src/components/dashboard/node.summary.switcher.tsx","webpack://strikecommunity/./src/components/common/follower/FollowerSection.tsx","webpack://strikecommunity/./src/components/stickyNodes/stickyNodes.tsx","webpack://strikecommunity/./src/components/common/node/space/space.details.box.tsx","webpack://strikecommunity/./src/components/filter/filter.user.custom.dashboards.tsx","webpack://strikecommunity/./src/components/filter/filter.buttons.tsx","webpack://strikecommunity/./src/models/TopicNode.tsx","webpack://strikecommunity/./src/components/common/node/topics/topics.popular.tsx","webpack://strikecommunity/./src/components/common/node/dashboards/dashboard.image.tsx","webpack://strikecommunity/./src/redux/selectors/topicsExperts.ts","webpack://strikecommunity/./src/hooks/topic/useTopicsExperts.ts","webpack://strikecommunity/./src/components/topics/topics.experts.pointsbar.tsx","webpack://strikecommunity/./src/components/topics/topics.experts.box.tsx","webpack://strikecommunity/./src/components/topics/topics.experts.tsx","webpack://strikecommunity/./src/components/dashboard/nodes.list.tsx","webpack://strikecommunity/./src/hooks/dashboard/useDashboardTitle.ts","webpack://strikecommunity/./src/components/dashboard/dashboard.tsx","webpack://strikecommunity/./src/components/loaderIndicator/loaderBar.css?315c","webpack://strikecommunity/./src/components/loaderIndicator/loaderIndicator.tsx","webpack://strikecommunity/./src/components/loaderIndicator/loaderIndicator.utils.ts","webpack://strikecommunity/./src/components/Footer/Footer.tsx","webpack://strikecommunity/./src/components/Header/shared/menuComponentByType.tsx","webpack://strikecommunity/./src/components/Header/shared/menuBuilder.tsx","webpack://strikecommunity/./src/components/Header/shared/menuUserSection.tsx","webpack://strikecommunity/./src/components/SkipMain/SkipLink.tsx","webpack://strikecommunity/./src/components/Header/header.menu.tsx","webpack://strikecommunity/./src/components/banner/banner.welcome.tsx","webpack://strikecommunity/./src/components/layout/global/layout.shared.tsx","webpack://strikecommunity/./src/components/filter/filter.tsx","webpack://strikecommunity/./src/components/filter/filter.wrapper.tsx","webpack://strikecommunity/./src/components/layout/AppLayout.tsx","webpack://strikecommunity/./src/components/topicDashboard/topicCallout.tsx","webpack://strikecommunity/./src/components/topicDashboard/topicShimmer.tsx","webpack://strikecommunity/./src/components/topicDashboard/topic.list.tsx","webpack://strikecommunity/./src/models/StrikeNode.tsx","webpack://strikecommunity/./src/components/article/articles.navigation.tsx","webpack://strikecommunity/./src/hooks/article/useTreeViewState.ts","webpack://strikecommunity/./src/hooks/treeNavigation/useTreeNavigation.ts","webpack://strikecommunity/./src/components/article/shared/article.error.tsx","webpack://strikecommunity/./src/components/common/image/display/coverDisplay.image.tsx","webpack://strikecommunity/./src/components/common/node/activity/nodeActivity.main.comment.form.tsx","webpack://strikecommunity/./src/redux/selectors/tags.ts","webpack://strikecommunity/./src/components/common/node/topics/nodeTopics.display.tsx","webpack://strikecommunity/./src/components/common/tags/showEditTags.tsx","webpack://strikecommunity/./src/components/common/node/space/nodeChangeSpace.tsx","webpack://strikecommunity/./src/components/common/breadcrumb/breadcrumb.tsx","webpack://strikecommunity/./src/components/common/share/share.content.form.tsx","webpack://strikecommunity/./src/components/common/share/share.content.panel.tsx","webpack://strikecommunity/./src/components/common/node/revisions/node.revisions.tsx","webpack://strikecommunity/./src/components/common/user/listBox/userList.contributors.tsx","webpack://strikecommunity/./src/components/common/topContributors/TopContributorsSection.tsx","webpack://strikecommunity/./src/components/article/show.article.tsx","webpack://strikecommunity/./src/components/article/article.tsx","webpack://strikecommunity/./src/components/article/shared/article.form.tsx","webpack://strikecommunity/./src/components/article/edit.article.tsx","webpack://strikecommunity/./src/components/dashboard/articles/articles.nodelist.tsx","webpack://strikecommunity/./src/components/common/shimmer/list/shimmer.list.tsx","webpack://strikecommunity/./src/components/router/maps/articleRoutes.tsx","webpack://strikecommunity/./src/components/dashboard/articles/dashboard.articles.tsx","webpack://strikecommunity/./src/components/article/article.authorUpdate.tsx","webpack://strikecommunity/./src/components/question/shared/question.form.tsx","webpack://strikecommunity/./src/components/question/edit.question.tsx","webpack://strikecommunity/./src/components/question/show.question.answers.tsx","webpack://strikecommunity/./src/components/question/show.question.tsx","webpack://strikecommunity/./src/components/dashboard/questions/questions.nodelist.tsx","webpack://strikecommunity/./src/components/router/maps/questionRoutes.tsx","webpack://strikecommunity/./src/components/question/question.tsx","webpack://strikecommunity/./src/components/dashboard/questions/dashboard.questions.tsx","webpack://strikecommunity/./src/redux/selectors/spaceForm.ts","webpack://strikecommunity/./src/hooks/space/useSpaceForm.ts","webpack://strikecommunity/./src/components/common/node/space/space.form.tsx","webpack://strikecommunity/./src/components/space/shared/space.form.tsx","webpack://strikecommunity/./src/components/space/edit.space.tsx","webpack://strikecommunity/./src/components/space/manage.space.tsx","webpack://strikecommunity/./src/redux/selectors/globalBannerForm.ts","webpack://strikecommunity/./src/hooks/banner/useBannerForm.ts","webpack://strikecommunity/./src/components/banner/shared/global.banner.form.fields.tsx","webpack://strikecommunity/./src/components/banner/shared/global.banner.form.tsx","webpack://strikecommunity/./src/components/router/maps/spaceRoutes.tsx","webpack://strikecommunity/./src/components/banner/manage.global.banner.tsx","webpack://strikecommunity/./src/components/common/datePicker/DatePicker.tsx","webpack://strikecommunity/./src/components/common/shimmer/events/shimmer.events.tsx","webpack://strikecommunity/./src/components/events/shared/event.form.fields.tsx","webpack://strikecommunity/./src/components/events/shared/event.form.tsx","webpack://strikecommunity/./src/components/events/edit.event.tsx","webpack://strikecommunity/./src/components/events/shared/event.search.form.tsx","webpack://strikecommunity/./src/components/events/shared/event.allowusers.list.tsx","webpack://strikecommunity/./src/components/events/shared/event.allowusers.form.tsx","webpack://strikecommunity/./src/components/events/shared/event.allowusers.tsx","webpack://strikecommunity/./src/components/events/shared/event.process.file.tsx","webpack://strikecommunity/./src/components/events/shared/event.search.list.tsx","webpack://strikecommunity/./src/components/event/show.event.message.tsx","webpack://strikecommunity/./src/components/events/shared/event.show.event.checkin.tsx","webpack://strikecommunity/./src/components/events/shared/event.admin.checkins.tsx","webpack://strikecommunity/./src/components/router/maps/eventRoutes.tsx","webpack://strikecommunity/./src/components/events/view.event.tsx","webpack://strikecommunity/./src/components/events/search.event.tsx","webpack://strikecommunity/./src/components/events/settings.event.tsx","webpack://strikecommunity/./src/components/events/checkin.event.tsx","webpack://strikecommunity/./src/components/events/checkins.admin.event.tsx","webpack://strikecommunity/./src/components/router/RouteErrorBoundary.tsx","webpack://strikecommunity/./src/components/router/applicationRoutes.tsx","webpack://strikecommunity/./src/hooks/router/useNavigateHelper.ts","webpack://strikecommunity/./src/components/topicDashboard/topics.dashboard.tsx","webpack://strikecommunity/./src/components/download/fileDownload.page.tsx","webpack://strikecommunity/./src/components/router/browserRouter.tsx","webpack://strikecommunity/./src/App.tsx","webpack://strikecommunity/./src/components/ui/LoadingPage.tsx","webpack://strikecommunity/./src/components/ui/AuthLoading.tsx","webpack://strikecommunity/./src/components/ui/AuthErrorPage.tsx","webpack://strikecommunity/./src/auth/axiosSetup.ts","webpack://strikecommunity/./src/InitMsalAuthentication.tsx","webpack://strikecommunity/./src/index.css?00ae","webpack://strikecommunity/./src/assets/css/semantic.min.css?258e","webpack://strikecommunity/./src/index.tsx","webpack://strikecommunity/./src/reportWebVitals.ts","webpack://strikecommunity/./src/assets/css/semantic.min.css","webpack://strikecommunity/./src/components/dashboard/node.summary.grid.css","webpack://strikecommunity/./src/components/dashboard/node.summary.switcher.css","webpack://strikecommunity/./src/components/loaderIndicator/loaderBar.css","webpack://strikecommunity/./src/index.css","webpack://strikecommunity/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://strikecommunity/webpack/bootstrap","webpack://strikecommunity/webpack/runtime/compat get default export","webpack://strikecommunity/webpack/runtime/define property getters","webpack://strikecommunity/webpack/runtime/ensure chunk","webpack://strikecommunity/webpack/runtime/get javascript chunk filename","webpack://strikecommunity/webpack/runtime/global","webpack://strikecommunity/webpack/runtime/hasOwnProperty shorthand","webpack://strikecommunity/webpack/runtime/make namespace object","webpack://strikecommunity/webpack/runtime/node module decorator","webpack://strikecommunity/webpack/runtime/publicPath","webpack://strikecommunity/webpack/runtime/jsonp chunk loading","webpack://strikecommunity/webpack/runtime/nonce","webpack://strikecommunity/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"strikecommunity:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import React from \"react\";\r\n\r\nexport interface ILoadingState {\r\n\tisLoading: boolean;\r\n}\r\n\r\nexport interface IReadOnlyState {\r\n\tisReadOnly: boolean;\r\n}\r\n\r\nexport interface IVisibleState {\r\n\tisVisible: boolean;\r\n}\r\n\r\nexport interface IEditingState {\r\n\tisDirty: boolean;\r\n}\r\n\r\nexport enum ErrorType {\r\n\tnone = 0,\r\n\tinfo = 1,\r\n\twarning = 2,\r\n\terror = 3\r\n}\r\n\r\nexport interface IErrorState {\r\n\terrorType: ErrorType;\r\n\terrorMessage: string;\r\n}\r\n\r\nexport const IErrorState_Default: IErrorState = {\r\n\terrorType: ErrorType.none,\r\n\terrorMessage: \"\"\r\n};\r\n\r\nexport enum RequestState {\r\n\tnotStarted = 0,\r\n\tinProgress = 1,\r\n\tcomplete = 2\r\n}\r\n\r\nexport interface IRequestState {\r\n\trequestState: RequestState;\r\n}\r\n\r\nexport interface IAlertProps {\r\n\ttext: string | React.ReactElement;\r\n\tcategory?: string;\r\n\thtml?: boolean;\r\n}\r\n\r\nexport enum LayoutType {\r\n\tGRID = \"GRID\",\r\n\tNORMAL_LIST = \"NORMAL_LIST\"\r\n}\r\n","//\r\n// Source: STRIKE Community API\r\n// Please do not modify unless the server API contract changes\r\n//\r\n\r\nimport { NodeType } from \"./strikeEnums\";\r\n\r\nexport interface IStrikeNodeEntity {\r\n\tId?: number;\r\n\tTitle: string;\r\n\tBody: string;\r\n\tAuthName: string;\r\n\tAuthEmail: string;\r\n\tCreatedOn: string;\r\n\tCoverImageId?: null | number;\r\n\tCoverImagePath: string;\r\n\tType: string;\r\n\tLikeCount?: number;\r\n\tLikeByUsers?: string;\r\n\tBase64CoverImage?: string;\r\n\tContainerId?: null | number;\r\n\tParentId?: null | number;\r\n\tParentTitle?: null | string;\r\n\tTopicsName: string;\r\n\tIsPublished?: null | boolean;\r\n\tIsSpaceSticky?: null | boolean;\r\n\tIsSiteSticky?: null | boolean;\r\n\tIsPrivate?: null | boolean;\r\n\tIsDeleted?: null | boolean;\r\n\tIsFavourite?: null | boolean;\r\n}\r\n\r\nexport interface INodeInfo {\r\n\tNodeId: number;\r\n\tType: string;\r\n\tLastActivity_UserId: number;\r\n\tLastActivity_UserName: string;\r\n\tLastActivity_UserFullName: string;\r\n\tLastActivity_UserEmail: string;\r\n\tLastActivity_ActionType: string;\r\n\tLastActivity_ActionDate: Date;\r\n\tLastActivity_UserProfileImage: string;\r\n\tTitle: string;\r\n\tTopics: string;\r\n\tTopicsId?: string;\r\n\tLikeCount: number;\r\n\tIsQuestionAnswered: boolean;\r\n\tAnswersCount: number;\r\n\tCoverImageThumbnail: string;\r\n\tAuthorName: string;\r\n\tAuthorEmail: string;\r\n\tIsFavourite?: boolean;\r\n}\r\n\r\nexport interface IStrikeNodes {\r\n\tspaceName: string;\r\n\tnodes: INodeInfo[];\r\n\ttotalRecordCount: number;\r\n\tSpaceCoverImageThumbnail?: string;\r\n}\r\n\r\n/**\r\n * Contract for Answers information for a specific Question node.\r\n */\r\nexport interface IStrikeNodesAnswer {\r\n\tAnswer: string;\r\n\tAnswerBy: string;\r\n\tAnswerByEmail: string;\r\n\tAnswerAccepted: string;\r\n\tAnswerOn: Date;\r\n}\r\n\r\n/**\r\n * Contract for Event Attendee information to display in Check-in process.\r\n */\r\nexport interface IEventAttendees {\r\n\tId: number;\r\n\tEmail: string;\r\n\tTeamName: string;\r\n\tName: string;\r\n\tDate: Date;\r\n\tCheckedIn: boolean;\r\n\tConfirmed: boolean;\r\n}\r\n\r\n/**\r\n * Contract for Event Registered Users Check-in process.\r\n */\r\nexport interface IEventRegisteredUsers {\r\n\tId: number;\r\n\tEmail: string;\r\n\tName: string;\r\n\tRegistrationDate: string;\r\n\tCheckedIn: boolean;\r\n\tConfirmed: boolean;\r\n\tTeamName?: string;\r\n\tCheckedInCount: number;\r\n\tConfirmedRegistrationCount: number;\r\n\tWaitingRegistrationCount: number;\r\n\tRSVPType: string;\r\n\tInPersonCount?: number;\r\n\tVirtualCount?: number;\r\n}\r\n\r\n/**\r\n * Contract for User to Check-In at specific event\r\n */\r\nexport interface IEventUserToCheckin {\r\n\tid: number;\r\n\temail: string;\r\n}\r\n\r\n/**\r\n * Contract for Node Comments for a specific node Id.\r\n */\r\nexport interface IStrikeNodesComments {\r\n\tNodeId: number;\r\n\tCommentId: number;\r\n\tParentId: number;\r\n\tTitle: string;\r\n\tCommentOn: string;\r\n\tCommentBy: string;\r\n\tCommentByName: string;\r\n\tCommentByEmail: string;\r\n\tLikeCount?: number;\r\n\tLikeByUsers?: string;\r\n\tType?: string;\r\n\tAnswerAccepted?: boolean;\r\n}\r\n\r\n/**\r\n * Contract for user authoritables information.\r\n */\r\nexport interface IUserAuthoriablesModel {\r\n\tid: string;\r\n\tname: string;\r\n\temail: string;\r\n}\r\n\r\n/**\r\n * Contract for user activity information.\r\n */\r\nexport interface IUserActivityModel {\r\n\tactionType: string;\r\n\tipAddress: string;\r\n\tnodeID: string;\r\n\temailID: string;\r\n}\r\n\r\n/**\r\n * Contract for accept answer event.\r\n */\r\nexport interface IUserAcceptAnswer {\r\n\tactionType: string;\r\n\tipAddress: string;\r\n\tnodeID: string;\r\n\temailID: string;\r\n\trootNodeID: string;\r\n}\r\n\r\n/**\r\n * Contract for Event form registration.\r\n */\r\nexport interface IEventFormInfo {\r\n\tuserName: \"string\";\r\n\tuserEmail: \"string\";\r\n\trsvp: \"string\";\r\n\ttypeOfRSVP: \"string\";\r\n\tisAzureEdge: \"string\";\r\n\tleaderName: \"string\";\r\n}\r\n\r\nexport const INodeInfo_Default: INodeInfo = {\r\n\tNodeId: 1,\r\n\tType: \"\",\r\n\tLastActivity_UserId: 101,\r\n\tLastActivity_UserName: \"\",\r\n\tLastActivity_UserFullName: \"\",\r\n\tLastActivity_UserEmail: \"\",\r\n\tLastActivity_ActionType: \"\",\r\n\tLastActivity_ActionDate: new Date(\"2024-02-13T10:30:00Z\"),\r\n\tLastActivity_UserProfileImage: \"\",\r\n\tTitle: \"\",\r\n\tTopics: \"\",\r\n\tLikeCount: 0,\r\n\tIsQuestionAnswered: false,\r\n\tAnswersCount: 0,\r\n\tCoverImageThumbnail: \"\",\r\n\tAuthorName: \"\",\r\n\tAuthorEmail: \"\"\r\n};\r\n\r\nexport const IStrikeNodes_Default: IStrikeNodes = {\r\n\tspaceName: \"\",\r\n\tnodes: [],\r\n\ttotalRecordCount: 1\r\n};\r\n\r\nconst dummyNodes: INodeInfo[] = [];\r\n\r\nconst dummyStrikeNodes: IStrikeNodes = {\r\n\tspaceName: \"\",\r\n\tnodes: dummyNodes,\r\n\ttotalRecordCount: dummyNodes.length\r\n};\r\n\r\nexport interface IStrikeAuthoringApiResponseError {\r\n\tResponseStatus: number;\r\n\tErrorMessage: string;\r\n\tValidationErrors: string[];\r\n}\r\n\r\nexport interface IStrikeAuthoringApiResponse {\r\n\tData: T;\r\n\tResponseStatus: number;\r\n\tErrorMessage: string;\r\n\tValidationErrors: string[];\r\n}\r\n\r\n// This mimics the Axios response type to decouple the API from taking a hard dependency on Axios library. See AxiosResponse type for details\r\nexport interface IAxiosErrorResponseData {\r\n\tdata: IStrikeAuthoringApiResponseError;\r\n\tstatus: number;\r\n\tstatusText: string;\r\n\theaders: any;\r\n\trequest?: any;\r\n}\r\n\r\n// This mimics the Axios response type to decouple the API from taking a hard dependency on Axios library. See AxiosError type for details\r\nexport interface IAxiosErrorResponse {\r\n\tcode?: string;\r\n\trequest?: any;\r\n\tresponse: IAxiosErrorResponseData;\r\n}\r\n\r\n/**\r\n * Contract Defined to get the Topics from DB\r\n */\r\nexport interface IStrikeTopicNode {\r\n\tTopicNodes: IStrikeTopics[];\r\n\tTotalRecordCount: number;\r\n}\r\n\r\n/**\r\n * Contract of every Topic\r\n */\r\nexport interface IStrikeTopics {\r\n\tTopicID: number;\r\n\tTitle: string;\r\n\tNodeCount: number;\r\n}\r\n\r\n/*\r\n * Contract for Comments Form Data.\r\n */\r\nexport interface ICommentFormData {\r\n\tid: string;\r\n\tparentId: null | string;\r\n\ttype: NodeType;\r\n\tbody: string;\r\n}\r\n\r\n/**\r\n * Contract for Sticky Nodes\r\n */\r\nexport interface IStrikeNodeSticky {\r\n\tNodeId: number;\r\n\tTitle: string;\r\n\tType: string;\r\n\tURLTitle: string;\r\n}\r\n\r\n/**\r\n * Contract for Breadcrum\r\n */\r\nexport interface IStrikeNodeBreadcrumb {\r\n\tNodeId: number;\r\n\tTitle: string;\r\n\tKey: number;\r\n\tURLTitle: string;\r\n\tType: string;\r\n\tParentId: number;\r\n\tIsCurrentItem: boolean;\r\n}\r\n","//\r\n// UI models used specifically by UI controls and presentational components\r\n//\r\n\r\nexport enum StrikeReviewingNode {\r\n search = 1,\r\n approval = 2\r\n}","/**\r\n * Enum to list different node types.\r\n */\r\nexport enum NodeType {\r\n\tAnswer = \"answer\",\r\n\tComment = \"comment\",\r\n\tKbentry = \"kbentry\",\r\n\tQuestion = \"question\",\r\n\tTopic = \"topic\"\r\n}\r\n\r\n/**\r\n * Enum to identify the two comment types in a node.\r\n */\r\nexport enum CommentType {\r\n\tAnswer = \"answer\",\r\n\tComment = \"comment\"\r\n}\r\n\r\n/**\r\n * Enum to identify the different views in the edit/view topics\r\n */\r\nexport enum TagsModeType {\r\n\tEdit = \"edit\",\r\n\tView = \"view\"\r\n}\r\n\r\n/**\r\n * Enum to list different types of titles in a node.\r\n */\r\nexport enum TitleType {\r\n\tEvent = \"Event\",\r\n\tKbentry = \"kbentry\",\r\n\tQuestion = \"question\",\r\n\tDashboard = \"dashboard\",\r\n\tQuestionDashboard = \"questiondashboard\",\r\n\tKbentryDashboard = \"kbentrydashboard\",\r\n\tFavoritesDashboard = \"favoritesdashboard\",\r\n\tMyActivityDashboard = \"myactivitydashboard\",\r\n\tMyFollowersDashboard = \"myfollowersdashboard\",\r\n\tMyUnansweredDashboard = \"myunanswereddashboard\",\r\n\tAllUnansweredDashboard = \"allunanswereddashboard\",\r\n}\r\n\r\n/**\r\n * Enum to identify spaces by id.\r\n */\r\nexport enum SpaceTypes {\r\n\tOnlineCourses = \"36\",\r\n\tSerpentSessions = \"383\",\r\n\tSecurityShorts = \"384\"\r\n}\r\n\r\n/**\r\n * Enum to identify courses spaces by tags/topicsS.\r\n */\r\nexport enum SpaceTags {\r\n\tOnlineCourses = \"36\", // keep using old url\r\n\tSerpentSessions = \"serpentsessions\",\r\n\tCoreSecurityPrinciples = \"coresecurityprinciples\",\r\n\tProtectTenantsAndIsolateProductionSystems = \"protecttenantsandisolateproductionsystems\",\r\n\tProtectIdentitiesAndSecrets = \"protectidentitiesandsecrets\",\r\n\tProtectNetworks = \"protectnetworks\",\r\n\tProtectEngineeringSystems = \"protectengineeringsystems\",\r\n\tAccelerateResponseAndRemediation = \"accelerateresponseandremediation\",\r\n\tSecurityShorts = \"SecurityShorts\"\r\n}\r\n\r\n/**\r\n * Enum to track Event Types\r\n */\r\n\r\nexport enum EventTypes {\r\n\tVirtual = \"Virtual\",\r\n\tInPerson = \"InPerson\",\r\n\tMixed = \"Mixed\"\r\n}\r\n\r\n/**\r\n * Enum to track Filtr types selectors\r\n */\r\nexport enum FilterActionTypes {\r\n\tUpdated = \"Updated\",\r\n\tMostViewed = \"MostViewed\",\r\n\tCreated = \"Created\",\r\n\tVotes = \"Votes\"\r\n}\r\n\r\n/**\r\n * Enum to us at the node comment level\r\n */\r\nexport enum NodeCommentStatus {\r\n\tDeletedComment = \"[DELETED COMMENT]\",\r\n\tDeletedCommentString = \"Comment Deleted by Author/Admin\",\r\n\tDeletedCommentConfirmationTitle = \"Delete Comment\",\r\n\tDeletedCommentConfirmationText = \"Are you sure you want to delete this comment?\"\r\n}\r\n\r\n/**\r\n * Enum to track Users type allowed on Events\r\n */\r\nexport enum AllowUsersType {\r\n\tRegister = \"Register\",\r\n\tVoluntary = \"Voluntary\"\r\n}\r\n\r\n/**\r\n * Enum to log user Activity\r\n * Workflow types in a node\r\n */\r\n\r\nexport enum NodeActionTypes {\r\n\tNodeView = \"nodeview\",\r\n\tVoteDown = \"voted down\",\r\n\tVoteUp = \"voted up\",\r\n\tNewKbentry = \"newkbentry\", // Article\r\n\tAsk = \"ask\", // Question\r\n\tComment = \"comment\", // Article main comment\r\n\tAnswer = \"answer\", // Answer main comment\r\n\tAnswerToComment = \"answer2comment\", //reply to comment Article\r\n\tCommentToAnswer = \"comment2answer\", // reply to answer Question\r\n\tAction = \"action\",\r\n\tAccept = \"accept\",\r\n\tAddNodeAlias = \"addNodeAlias\",\r\n\tAddToGroup = \"add-to-group\",\r\n\tAskToAnswer = \"asktoanswer\",\r\n\tBonusRep = \"bonusrep\",\r\n\tCancelVoteDown = \"cancelVoteDown\",\r\n\tCancelVoteUp = \"cancelVoteUp\",\r\n\tClose = \"close\",\r\n\tDeactivate = \"deactivate\",\r\n\tDelete = \"delete\",\r\n\tUnDelete = \"undelete\",\r\n\tMakePrivate = \"makePrivate\",\r\n\tMakePublic = \"makePublic\",\r\n\tDeleteSpace = \"delete-space\",\r\n\tEditSpace = \"edit-space\",\r\n\tEditTopicDesc = \"edit-topic-desc\",\r\n\tEditTopicName = \"edit-topic-name\",\r\n\tExpertAnswer = \"expertanswer\",\r\n\tFavorite = \"favorite\",\r\n\tFavorited = \"favorited\",\r\n\tFlag = \"flag\",\r\n\tFollow = \"follow\",\r\n\tFollowed = \"followed\",\r\n\tGhostRevise = \"ghostrevise\",\r\n\tGiveRep = \"giveRep\",\r\n\tLock = \"lock\",\r\n\tMakeSiteStickyAction = \"MakeSiteStickyAction\",\r\n\tMakeStickyAction = \"MakeStickyAction\",\r\n\tMoveToSpace = \"moveToSpace\",\r\n\tNewTopic = \"newtopic\",\r\n\tNodeview = \"nodeview\",\r\n\tOrganizational = \"organizational\",\r\n\tOutdated = \"outdated\",\r\n\tPublish = \"publish\",\r\n\tRedirectQuestion = \"redirectQuestion\",\r\n\tRedirectQuestionTo = \"redirectQuestionTo\",\r\n\tReject = \"reject\",\r\n\tRemoveFromGroup = \"removeFromGroup\",\r\n\tReOpen = \"reopen\",\r\n\tReported = \"reported\",\r\n\tModerationRequest = \"ModerationRequest\",\r\n\tReTag = \"retag\",\r\n\tRevise = \"revise\",\r\n\tRollBack = \"rollback\",\r\n\tSendToMod = \"sendToMod\",\r\n\tSmartSpace = \"smart-space\",\r\n\tSpace = \"space\",\r\n\tSuspend = \"suspend\",\r\n\tSwitchPrivacy = \"switch-privacy\",\r\n\tTopicIcon = \"topicIcon\",\r\n\tTopicUsed = \"topicUsed\",\r\n\tUnaccept = \"unaccept\",\r\n\tUndeactivate = \"undeactivate\",\r\n\tUndelete = \"undelete\",\r\n\tUndoMakeSiteSticky = \"undoMakeSiteSticky\",\r\n\tUndoMakeSticky = \"undoMakeSticky\",\r\n\tUnfavorite = \"unfavorite\",\r\n\tUnflagIndex = \"unflagIndex\",\r\n\tUnfollow = \"unfollow\",\r\n\tUnsuspend = \"unsuspend\",\r\n\tUnwikify = \"unwikify\",\r\n\tUserEdit = \"useredit\",\r\n\tUserJoins = \"userjoins\",\r\n\tUserJoinSite = \"userjoinsite\",\r\n\tViewed = \"viewed\",\r\n\tWikifyAction = \"WikifyAction\",\r\n\tAnskedToAnswer = \"asked to answer\",\r\n\tShareWith = \"share\"\r\n}\r\n\r\n/**\r\n * Enum to us as FilterType\r\n * query filter for User Custom Dashboards\r\n */\r\nexport enum UserDashboardsFiltersType {\r\n\tActivity = 'ACTIVITY',\r\n\tFollowers = 'FOLLOWERS',\r\n\tMyUnanswered = 'MY_UNANSWERED',\r\n\tAllUnanswered = 'ALL_UNANSWERED',\r\n\tMyFavorite = 'MY_FAVORITE',\r\n\tAll = ''\r\n}\r\n\r\n/**\r\n * Access to the keys provided by the Miscellaneous collection\r\n * endpoint.\r\n */\r\nexport enum MiscellaneousKeys {\r\n\tNodeIframeUrl = \"Node_Iframe_Url\"\r\n}","import { ISliceNames } from \"../contracts/slices\";\r\n\r\n/**\r\n * Centralized dictionary of Slices used within the App.\r\n */\r\nexport const AppSlices: ISliceNames = {\r\n\tappManagement: \"appManagement\",\r\n\tappTreeView: \"appTreeView\",\r\n\tarticleForm: \"articleForm\",\r\n\tnodes: \"nodes\",\r\n\tauth: \"auth\",\r\n\tcomments: \"comments\",\r\n\tspaces: \"spaces\",\r\n\tfilter: \"filter\",\r\n\tfollow: \"follow\",\r\n\ttags: \"tags\",\r\n\tspaceForm: \"spaceForm\",\r\n\teventForm: \"eventForm\",\r\n\teventNotificationTemplates: \"eventNotificationTemplates\",\r\n\tglobalBannerForm: \"globalBannerForm\",\r\n\ttopicsExperts: \"topicsExperts\"\r\n};\r\n","/**\r\n * Enumerator of the Template Types\r\n */\r\nexport enum EventNotificationTemplateType {\r\n\tMeetingInvite = \"meetingInvite\",\r\n\tAttendConfirm = \"attendConfirm\",\r\n\tAttendWaitlist = \"attendWaitlist\",\r\n\tNotAttend = \"notAttend\"\r\n}\r\n","/**\r\n * Article/Question Cover Image type definitions.\r\n */\r\nexport enum CoverImageType {\r\n\tDefault = 1,\r\n\tGallery = 2,\r\n\tUpload = 3,\r\n\tLoaded = 4\r\n}\r\n","/**\r\n * The possible Types of follow/unfollow available\r\n * in Strike App.\r\n */\r\nexport enum FollowType {\r\n\tTopic = \"topic\",\r\n\tSpace = \"space\",\r\n\tNode = \"node\"\r\n}\r\n","/**\r\n * Possible System message types.\r\n * Based on 4-level alerting system, with semaphore colors.\r\n */\r\nexport enum MessageType {\r\n\tsuccess = \"success\",\r\n\twarning = \"warning\",\r\n\terror = \"error\",\r\n\tinfo = \"info\"\r\n}\r\n","import { IAppManagementSlice } from \"../../../../contracts/slices/app/management/IAppManagementSlice\";\r\nimport { LayoutType } from \"../../../../contracts\";\r\nimport { MessageType } from \"../../../../enums\";\r\n\r\n/**\r\n * The Initial State of app Management slice.\r\n */\r\nexport const appManagementInitialState: IAppManagementSlice = {\r\n\tloader: {\r\n\t\tvisible: false,\r\n\t\ttext: \"\",\r\n\t\tsize: \"\"\r\n\t},\r\n\tmenu: {\r\n\t\tdata: [],\r\n\t\texpanded: [],\r\n\t\tselectedId: \"\",\r\n\t\tselectedIds: []\r\n\t},\r\n\tlayout: {\r\n\t\tlayoutType: LayoutType.NORMAL_LIST,\r\n\t\tisHighZoomLevel: false\r\n\t},\r\n\tbanner: {\r\n\t\tvisible: false\r\n\t},\r\n\tmessage: {\r\n\t\ttype: MessageType.info,\r\n\t\ttext: \"\",\r\n\t\tisHtml: false,\r\n\t\topen: false\r\n\t},\r\n\tstickyNodes: [],\r\n\tuserAccess: {\r\n\t\tnodeAdmin: false,\r\n\t\teventAdmin: false,\r\n\t\tsuperAdmin: false\r\n\t},\r\n};\r\n","import { IAppTreeViewSlice } from \"../../../../contracts/slices\";\r\n\r\n/**\r\n * The Initial State of app Tree View component.\r\n */\r\nexport const appTreeViewInitialState: IAppTreeViewSlice = {\r\n\texpanded: [],\r\n\tloaded: false,\r\n\trawData: [],\r\n\tloading: false,\r\n\tsearchText: \"\"\r\n};\r\n","import { NodeActionTypes, NodeType } from \"../../../contracts/models/strikeEnums\";\r\nimport { IArticleFormSlice } from \"../../../contracts/slices\";\r\nimport { CoverImageType } from \"../../../enums\";\r\n\r\n/**\r\n * The Initial State of an Article Form slice.\r\n */\r\nexport const articleFormInitialState: IArticleFormSlice = {\r\n\tlist: {\r\n\t\tcoverImages: {\r\n\t\t\titems: [],\r\n\t\t\tcurrentPage: 1,\r\n\t\t\tpageLength: 15,\r\n\t\t\ttotalCount: 0\r\n\t\t},\r\n\t\tcoverImageTypes: [],\r\n\t\tparentArticles: [],\r\n\t\tspaces: [],\r\n\t\ttopics: []\r\n\t},\r\n\tqueried: {\r\n\t\tcoverImages: false,\r\n\t\tcoverImageTypes: false,\r\n\t\tparentArticles: false,\r\n\t\tspaces: false,\r\n\t\ttopics: false,\r\n\t\tnode: false\r\n\t},\r\n\tquerying: {\r\n\t\tcoverImages: false,\r\n\t\tcoverImageTypes: false,\r\n\t\tparentArticles: false,\r\n\t\tspaces: false,\r\n\t\ttopics: false,\r\n\t\tnode: false\r\n\t},\r\n\tdata: {\r\n\t\tid: \"\",\r\n\t\tparentId: null,\r\n\t\tauthorUpn: \"\",\r\n\t\ttype: NodeType.Kbentry,\r\n\t\tactionType: NodeActionTypes.NewKbentry,\r\n\t\ttitle: \"\",\r\n\t\tbody: \"\",\r\n\t\ttopics: [],\r\n\t\taddedTopics: [],\r\n\t\tspaceId: \"\",\r\n\t\tcoverImageId: null,\r\n\t\tcommentNodeId: null,\r\n\t\tcoverImageType: CoverImageType.Default,\r\n\t\tcoverImageMimeType: null,\r\n\t\tcoverImageFile: null,\r\n\t\tcoverImagePath: \"\",\r\n\t\tcoverImageSize: null,\r\n\t\tprivate: false,\r\n\t\tsendEmailNotification: false\r\n\t},\r\n\tgallery: {\r\n\t\timagePath: {}\r\n\t},\r\n\texpandedSpaces: [],\r\n\tbodySourceMode: false,\r\n\tparentArticleQuery: \"\",\r\n\tcoverImageGalleryOpen: false,\r\n\ttopicsText: \"\",\r\n\tloading: false,\r\n\tloaded: false,\r\n\tsubmitting: false\r\n};\r\n","/**\r\n * Constants values used on Node Activity flow\r\n */\r\n\r\nconst nodeActivityConstants = {\r\n\tmaxOffset: 3,\r\n\tpaginationOffset: 6\r\n};\r\n\r\nexport default nodeActivityConstants;\r\n","import nodeActivityConstants from \"../../../components/common/node/activity/constants\";\r\nimport { ICommentSlice } from \"../../../contracts/slices/comment/ICommentSlice\";\r\n\r\n/**\r\n * The Initial State of Node Management slice.\r\n */\r\nexport const commentInitialState: ICommentSlice = {\r\n\tdata: {\r\n\t\tallNodeComments: [],\r\n\t\tlikeCount: 0,\r\n\t\tlikeByUsers: \"\",\r\n\t\tnodeCommentsTotal: 0,\r\n\t\tcommentsToShow: nodeActivityConstants.maxOffset,\r\n\t\teditingIds: []\r\n\t},\r\n\tui: {\r\n\t\tisToggledComments: false,\r\n\t\tisToggledCommentForm: false,\r\n\t\tisToggledCommentQuestionForm: false,\r\n\t\tisNodeAlreadyLiked: false,\r\n\t\treplyExpandedId: null,\r\n\t\tsubmitting: false\r\n\t},\r\n\tform: {\r\n\t\tcommentText: \"\",\r\n\t\tnodeId: \"\",\r\n\t\tbodySourceMode: false\r\n\t}\r\n};\r\n","import { IEventFormSlice } from \"../../../contracts/slices\";\r\n/**\r\n * The Initial State of an Event Form slice.\r\n */\r\nexport const eventFormInitialState: IEventFormSlice = {\r\n\tdata: {\r\n\t\tid: \"\",\r\n\t\ttitle: \"\",\r\n\t\ttype: \"\",\r\n\t\tdateStart: null,\r\n\t\tdateEnd: null,\r\n\t\tpresentedBy: null,\r\n\t\tvenue: \"\",\r\n\t\tpublishSchedule: null,\r\n\t\tpointOfContact: \"\",\r\n\t\tdescription: \"\",\r\n\t\tfood: \"\",\r\n\t\tisPublished: false,\r\n\t\tisWaitListEnabled: false,\r\n\t\tinPersonCapacity: null\r\n\t},\r\n\tselected: {\r\n\t\teventType: null,\r\n\t\teventTypeId: \"\",\r\n\t\tstartDate: null,\r\n\t\tendDate: null,\r\n\t\tpublishDate: null\r\n\t},\r\n\tevents: {\r\n\t\tlist: []\r\n\t},\r\n\tevent: {\r\n\t\tallowedUsers: []\r\n\t},\r\n\tui: {\r\n\t\tallowedUsersPanelOpen: false,\r\n\t\tprocessFilePanelOpen: false,\r\n\t\tallowedUsersChanged: false,\r\n\t\tisOpenDeleteEventModal: false,\r\n\t\tisOpenPublishEventModal: false,\r\n\t\tisEventListLoaded: false,\r\n\t\tisEventListLoading: false\r\n\t},\r\n\tcheckin: {\r\n\t\teventSelectedId: \"\"\r\n\t},\r\n\tfilter: {\r\n\t\teventFilterSearchText: \"\",\r\n\t\teventFilterSearchType: \"\",\r\n\t\teventFilterSearchTypeOption: \"\",\r\n\t\teventFilterSearchStatus: \"\",\r\n\t\teventFilterSearchStatusId: \"\"\r\n\t},\r\n\tbodySourceMode: false\r\n};\r\n","import { IEventNotificationTemplatesSlice } from \"../../../contracts/slices\";\r\nimport { EventNotificationTemplateType } from \"../../../enums\";\r\n\r\n/**\r\n * Event Notification Template Management redux slice.\r\n */\r\nexport const eventNotificationTemplatesInitialState: IEventNotificationTemplatesSlice = {\r\n\tlist: [],\r\n\tform: {\r\n\t\tid: null,\r\n\t\ttype: \"\",\r\n\t\tsubject: \"\",\r\n\t\temailContent: \"\",\r\n\t\teventId: 0,\r\n\t\tisActive: true\r\n\t},\r\n\tui: {\r\n\t\tbodySourceMode: false,\r\n\t\tediting: false,\r\n\t\tselectedType: EventNotificationTemplateType.MeetingInvite,\r\n\t\tsubmitting: false,\r\n\t\teventName: \"\"\r\n\t}\r\n};\r\n","import { IStrikeNodes_Default } from \"../../../contracts/models\";\r\nimport { UserDashboardsFiltersType } from \"../../../contracts/models/strikeEnums\";\r\nimport { IFilterSlice } from \"../../../contracts/slices\";\r\n\r\n/**\r\n * The Initial State of Node Management slice.\r\n */\r\nexport const filterInitialState: IFilterSlice = {\r\n\tdata: {\r\n\t\tsearchTopics: \"\",\r\n\t\tsearchTitle: \"\",\r\n\t\tpageIndex: 1,\r\n\t\tnodeList: IStrikeNodes_Default\r\n\t},\r\n\tui: {\r\n\t\texpanded: false,\r\n\t\tloading: false,\r\n\t\tloaded: false,\r\n\t\tnodesLoading: true,\r\n\t\tdashboardButtonTitle: \"Dashboards\",\r\n\t\tdashboardNavigation: undefined,\r\n\t\ttopicsResetKey: 0,\r\n\t\tspaceSelectedValue: undefined,\r\n\t\tisFilterVisible: false,\r\n\t\tisDashboardLoading: false,\r\n\t\tuserCustomDashboard: UserDashboardsFiltersType.All,\r\n\t\tsortByOption: \"latest\"\r\n\t}\r\n};\r\n","/**\r\n * Constants values used on Followers pagination\r\n */\r\n\r\nconst followPaginationConstants = {\r\n\tpaginationOffset: 50\r\n};\r\n\r\nexport default followPaginationConstants;\r\n","import followPaginationConstants from \"../../../components/common/user/listBox/constants\";\r\nimport { IFollowSlice } from \"../../../contracts/slices/follow/IFollowSlice\";\r\n\r\n/**\r\n * The Initial State of Follow slice.\r\n */\r\nexport const followInitialState: IFollowSlice = {\r\n\tdata: {\r\n\t\tfollowers: [],\r\n\t\ttopContributors: []\r\n\t},\r\n\tui: {\r\n\t\tfollowersToShow: followPaginationConstants.paginationOffset,\r\n\t\tquerying: false,\r\n\t\tqueried: false,\r\n\t\ttopContributorsQuerying: false,\r\n\t\ttopContributorsQueried: false,\r\n\t\tisFavourite: false\r\n\t}\r\n};\r\n","import { INodeSlice } from \"../../../contracts/slices/node/INodeSlice\";\r\n\r\n/**\r\n * The Initial State of Node Management slice.\r\n */\r\nexport const nodeInitialState: INodeSlice = {\r\n\tqueried: {},\r\n\tquerying: {},\r\n\tlist: [],\r\n\tphotos: {},\r\n\tui: {\r\n\t\tisOpenDeleteConfirmation: false,\r\n\t\tisOpenStickConfirmation: false,\r\n\t\tisOpenPrivateConfirmation: false,\r\n\t\tisActionConfirmed: false,\r\n\t\tdeleteConfirmationModalTitle: \"\",\r\n\t\tdeleteConfirmationModalSubText: \"\",\r\n\t\tdeleteConfirmationModalButtonText: \"\",\r\n\t\tconfirmationModalAction: null,\r\n\t\tconfirmationStickyAction: null,\r\n\t\tisOpenActionPostMessage: false,\r\n\t\tisChangeSpacePanelOpen: false,\r\n\t\tisRevisionsPanelOpen: false,\r\n\t\tisNodeSpaceSticky: false,\r\n\t\tisNodeSiteSticky: false,\r\n\t\tisOpenShareContent: false,\r\n\t\tisSubmittingShareContent: false,\r\n\t\tisNodePrivate: false,\r\n\t\tisNodeDeleted: false\r\n\t},\r\n\tnode: {\r\n\t\tauthorEmail: \"\",\r\n\t\trevisions: [],\r\n\t\trevisionsLoaded: false,\r\n\t\treportReasonId: null,\r\n\t\treportReasonValueId: \"\",\r\n\t\treportReasonValueOption: \"\",\r\n\t\treportReasonsData: [],\r\n\t\tquestionExperts: []\r\n\t}\r\n};\r\n","import { ISpacesSlice } from \"../../../contracts/slices/spaces/ISpacesSlice\";\r\n\r\n/**\r\n * The Initial State of Spaces List Management slice.\r\n */\r\nexport const spacesInitialState: ISpacesSlice = {\r\n\tselectedId: null,\r\n\texpandedSpaces: [],\r\n\tloaded: false,\r\n\tloading: false,\r\n\topen: false,\r\n\tspaces: [],\r\n\tmanager: {\r\n\t\titems: [],\r\n\t\tgroups: [],\r\n\t\tui: {\r\n\t\t\tdeleteConfirmationOpen: false,\r\n\t\t\tspaceToDelete: \"\",\r\n\t\t\tspaceIdToDelete: \"\",\r\n\t\t\tcurrentParentSpace: \"\"\r\n\t\t}\r\n\t},\r\n\tspaceCoverImage: \"\",\r\n\tspaceName: \"\",\r\n\tspaceCoverImageLoaded: false,\r\n\tspaceDescription: \"\",\r\n\tspaceBanner: \"\",\r\n\tspaceDetailsLoaded: false\r\n};\r\n","import { TagsModeType } from \"../../../contracts/models/strikeEnums\";\r\nimport { ITagsSlice } from \"../../../contracts/slices\";\r\n\r\n/**\r\n * The Initial State of Node Management slice.\r\n */\r\nexport const tagsInitialState: ITagsSlice = {\r\n\tdata: {\r\n\t\ttagsIds: [],\r\n\t\ttagsNames: []\r\n\t},\r\n\tui: {\r\n\t\ttagsMode: TagsModeType.View\r\n\t}\r\n};\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { appManagementInitialState } from \"../../models/slices\";\r\nimport { SystemMessageConfig } from \"../../contracts\";\r\nimport { MessageType } from \"../../enums\";\r\nimport { IStrikeNodeSticky } from \"../../contracts/models\";\r\n\r\n/**\r\n * Application Management state layer, also named Redux Slice.\r\n */\r\nexport const appManagementSlice = createSlice({\r\n\tname: AppSlices.appManagement,\r\n\tinitialState: appManagementInitialState,\r\n\treducers: {\r\n\t\tsetLoaderVisible: (state, action) => {\r\n\t\t\tstate.loader.visible = action.payload;\r\n\t\t},\r\n\t\tsetLoaderText: (state, action) => {\r\n\t\t\tstate.loader.text = action.payload;\r\n\t\t},\r\n\t\tsetAppMenuData: (state, action) => {\r\n\t\t\tstate.menu.data = action.payload;\r\n\t\t},\r\n\t\tresetAppMenuData: (state) => {\r\n\t\t\tstate.menu.data = appManagementInitialState.menu.data;\r\n\t\t},\r\n\t\tsetLayout: (state, action) => {\r\n\t\t\tstate.layout.layoutType = action.payload;\r\n\t\t},\r\n\t\tsetBannerVisible: (state, action) => {\r\n\t\t\tstate.banner.visible = action.payload;\r\n\t\t},\r\n\t\tsetMessage: (state, action: PayloadAction) => {\r\n\t\t\tstate.message = action.payload;\r\n\t\t},\r\n\t\tsetMessageText: (state, action: PayloadAction) => {\r\n\t\t\tstate.message.text = action.payload;\r\n\t\t},\r\n\t\tsetMessageType: (state, action: PayloadAction) => {\r\n\t\t\tstate.message.type = action.payload;\r\n\t\t},\r\n\t\tsetMessageOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.message.open = action.payload;\r\n\t\t},\r\n\t\tsetMessageIsHtml: (state, action: PayloadAction) => {\r\n\t\t\tstate.message.isHtml = action.payload;\r\n\t\t},\r\n\t\tsetIsHighZoomLevel: (state, action: PayloadAction) => {\r\n\t\t\tstate.layout.isHighZoomLevel = action.payload;\r\n\t\t},\r\n\t\tsetExpandedMenuItem: (state, action: PayloadAction<{ expanded: boolean; id: string }>) => {\r\n\t\t\tif (action.payload.expanded && !state.menu.expanded.includes(action.payload.id)) {\r\n\t\t\t\tstate.menu.expanded = [...state.menu.expanded, action.payload.id];\r\n\t\t\t} else if (!action.payload.expanded) {\r\n\t\t\t\tstate.menu.expanded = state.menu.expanded.filter((expandedItem: string) => {\r\n\t\t\t\t\treturn expandedItem !== action.payload.id;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\tresetMenu: (state) => {\r\n\t\t\tstate.menu.expanded = appManagementInitialState.menu.expanded;\r\n\t\t},\r\n\t\tsetMenuItemSelected: (state, action: PayloadAction) => {\r\n\t\t\tstate.menu.selectedId = action.payload;\r\n\t\t},\r\n\t\tresetMenuItemSelected: (state, action: PayloadAction) => {\r\n\t\t\tstate.menu.selectedId = appManagementInitialState.menu.selectedId;\r\n\t\t},\r\n\t\tsetMenuItemsSelected: (state, action: PayloadAction) => {\r\n\t\t\tstate.menu.selectedIds = action.payload;\r\n\t\t},\r\n\t\taddMenuItemsSelected: (state, action: PayloadAction) => {\r\n\t\t\taction.payload.forEach((addingId) => {\r\n\t\t\t\tif (!state.menu.selectedIds.includes(addingId)) {\r\n\t\t\t\t\tstate.menu.selectedIds = [...state.menu.selectedIds, addingId];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\tresetSubMenus: (state) => {\r\n\t\t\tstate.menu.selectedIds = appManagementInitialState.menu.selectedIds;\r\n\t\t},\r\n\t\tsetStickyNodes: (state, action: PayloadAction) => {\r\n\t\t\tstate.stickyNodes = action.payload;\r\n\t\t},\r\n\t\tresetStickyNodes: (state) => {\r\n\t\t\tstate.stickyNodes = appManagementInitialState.stickyNodes;\r\n\t\t},\r\n\t\tsetIsEventAdminUser: (state, action) => {\r\n\t\t\tstate.userAccess.eventAdmin = action.payload;\r\n\t\t},\r\n\t\tsetIsSuperAdminUser: (state, action) => {\r\n\t\t\tstate.userAccess.superAdmin = action.payload;\r\n\t\t},\r\n\t\tsetIsNodeAdminUser: (state, action) => {\r\n\t\t\tstate.userAccess.nodeAdmin = action.payload;\r\n\t\t},\r\n\t}\r\n});\r\n\r\nexport const {\r\n\tsetLoaderVisible,\r\n\tsetLoaderText,\r\n\tsetAppMenuData,\r\n\tresetAppMenuData,\r\n\tsetLayout,\r\n\tsetBannerVisible,\r\n\tsetMessage,\r\n\tsetMessageText,\r\n\tsetMessageType,\r\n\tsetMessageOpen,\r\n\tsetMessageIsHtml,\r\n\tsetIsHighZoomLevel,\r\n\tsetExpandedMenuItem,\r\n\tresetMenu,\r\n\tsetMenuItemSelected,\r\n\tresetSubMenus,\r\n\tsetMenuItemsSelected,\r\n\taddMenuItemsSelected,\r\n\tresetMenuItemSelected,\r\n\tsetStickyNodes,\r\n\tresetStickyNodes,\r\n\tsetIsEventAdminUser,\r\n\tsetIsNodeAdminUser,\r\n\tsetIsSuperAdminUser\r\n} = appManagementSlice.actions;\r\n\r\nexport default appManagementSlice.reducer;\r\n","/**\r\n * Instantiates a service class immediately after calling .start().\r\n * Keeps the information of the type as for using to create a new() instance of the service class.\r\n */\r\nexport class LazyServiceStarter {\r\n\tprivate serviceType: new () => T = null;\r\n\r\n\tconstructor(type: { new (): T }) {\r\n\t\tthis.serviceType = type;\r\n\t}\r\n\r\n\t/**\r\n\t * Starts up a given service,\r\n\t * based on the type passed.\r\n\t * The type must be an instantiable class.\r\n\t *\r\n\t * @returns The class instance.\r\n\t */\r\n\tstart() {\r\n\t\treturn new this.serviceType();\r\n\t}\r\n}\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { nodeInitialState } from \"../../models/slices\";\r\nimport StrikeNode from \"../../models/StrikeNode\";\r\nimport { NodeRevisionsResponseModel } from \"../../contracts/models\";\r\nimport { ISecurityGroupMembersResponse } from \"../../contracts/slices/node/askToExperts\";\r\n\r\n/**\r\n * Node Management state layer, also named after a Redux Slice.\r\n */\r\nexport const nodesSlice = createSlice({\r\n\tname: AppSlices.nodes,\r\n\tinitialState: nodeInitialState,\r\n\treducers: {\r\n\t\tsetList: (state, action: PayloadAction) => {\r\n\t\t\tstate.list = action.payload;\r\n\t\t},\r\n\t\tsetQuerying: (state, action: PayloadAction<{ userUpn: string; querying: boolean }>) => {\r\n\t\t\tstate.querying = {\r\n\t\t\t\t...state.querying,\r\n\t\t\t\t[action.payload.userUpn]: action.payload.querying\r\n\t\t\t};\r\n\t\t},\r\n\t\tsetQueried: (state, action: PayloadAction<{ userUpn: string; queried: boolean }>) => {\r\n\t\t\tstate.queried = {\r\n\t\t\t\t...state.queried,\r\n\t\t\t\t[action.payload.userUpn]: action.payload.queried\r\n\t\t\t};\r\n\t\t},\r\n\t\tsetPhotoByUserUpn: (state, action: PayloadAction<{ userUpn: string; photoUrl: string | boolean }>) => {\r\n\t\t\tstate.photos = {\r\n\t\t\t\t...state.photos,\r\n\t\t\t\t[action.payload.userUpn]: action.payload.photoUrl\r\n\t\t\t};\r\n\t\t},\r\n\t\treset: (state) => {\r\n\t\t\tstate.list = nodeInitialState.list;\r\n\t\t\tstate.queried = nodeInitialState.queried;\r\n\t\t\tstate.querying = nodeInitialState.querying;\r\n\t\t\tstate.photos = nodeInitialState.photos;\r\n\t\t},\r\n\t\tsetIsOpenDeleteConfirmation: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenDeleteConfirmation = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenStickConfirmation: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenStickConfirmation = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenShareContent: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenShareContent = action.payload;\r\n\t\t},\r\n\t\tsetIsSubmittingShareContent: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isSubmittingShareContent = action.payload;\r\n\t\t},\r\n\t\tsetIsActionConfirmed: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isActionConfirmed = action.payload;\r\n\t\t},\r\n\t\tsetDeleteConfirmationModalTitle: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.deleteConfirmationModalTitle = action.payload;\r\n\t\t},\r\n\t\tsetDeleteConfirmationModalSubText: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.deleteConfirmationModalSubText = action.payload;\r\n\t\t},\r\n\t\tsetDeleteConfirmationModalButtonText: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.deleteConfirmationModalButtonText = action.payload;\r\n\t\t},\r\n\t\tsetConfirmationModalAction: (state, action: PayloadAction<() => void>) => {\r\n\t\t\tstate.ui.confirmationModalAction = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenActionPostMessage: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenActionPostMessage = action.payload;\r\n\t\t},\r\n\t\tsetIsChangeSpacePanelOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isChangeSpacePanelOpen = action.payload;\r\n\t\t},\r\n\t\tsetIsRevisionsPanelOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isRevisionsPanelOpen = action.payload;\r\n\t\t},\r\n\t\tsetStickSpaceStatus: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isNodeSpaceSticky = action.payload;\r\n\t\t},\r\n\t\tsetStickSiteStatus: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isNodeSiteSticky = action.payload;\r\n\t\t},\r\n\t\tsetPrivateStatus: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isNodePrivate = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenPrivateConfirmation: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenPrivateConfirmation = action.payload;\r\n\t\t},\r\n\t\tsetDeletedStatus: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isNodeDeleted = action.payload;\r\n\t\t},\r\n\t\tsetNodeDetailAuthorEmail: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.authorEmail = action.payload;\r\n\t\t},\r\n\t\tsetNodeRevisions: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.revisions = action.payload;\r\n\t\t},\r\n\t\tresetNodeRevisions: (state) => {\r\n\t\t\tstate.node.revisions = nodeInitialState.node.revisions;\r\n\t\t},\r\n\t\tsetRevisionsLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.revisionsLoaded = action.payload;\r\n\t\t},\r\n\t\t//saving node report reason id on global state\r\n\t\tsetSelectedReportReason: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.reportReasonId = action.payload;\r\n\t\t},\r\n\t\t//reset node report reason id on global state\r\n\t\tresetSelectedReportReason: (state) => {\r\n\t\t\tstate.node.reportReasonId = nodeInitialState.node.reportReasonId;\r\n\t\t},\r\n\t\t//saving node report reason value id on global state\r\n\t\tsetReportReasonValueId: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.reportReasonValueId = action.payload;\r\n\t\t},\r\n\t\t//reset node report reason value id on global state\r\n\t\tresetReportReasonValueId: (state) => {\r\n\t\t\tstate.node.reportReasonValueId = nodeInitialState.node.reportReasonValueId;\r\n\t\t},\r\n\t\t//saving node report reason option text on global state\r\n\t\tsetReportReasonValueOption: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.reportReasonValueOption = action.payload;\r\n\t\t},\r\n\t\t//saving array of node report reasons options coming from db\r\n\t\tsetReportReasonsOptionsData: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.reportReasonsData = action.payload;\r\n\t\t},\r\n\t\tsetQuestionExperts: (state, action: PayloadAction) => {\r\n\t\t\tstate.node.questionExperts = action.payload;\r\n\t\t},\r\n\t}\r\n});\r\n\r\nexport const {\r\n\tsetList,\r\n\tsetQuerying,\r\n\tsetQueried,\r\n\tsetPhotoByUserUpn,\r\n\treset,\r\n\tsetIsOpenDeleteConfirmation,\r\n\tsetIsOpenStickConfirmation,\r\n\tsetIsActionConfirmed,\r\n\tsetDeleteConfirmationModalTitle,\r\n\tsetDeleteConfirmationModalSubText,\r\n\tsetDeleteConfirmationModalButtonText,\r\n\tsetConfirmationModalAction,\r\n\tsetIsOpenActionPostMessage,\r\n\tsetIsChangeSpacePanelOpen,\r\n\tsetIsRevisionsPanelOpen,\r\n\tsetStickSpaceStatus,\r\n\tsetStickSiteStatus,\r\n\tsetIsOpenShareContent,\r\n\tsetIsSubmittingShareContent,\r\n\tsetIsOpenPrivateConfirmation,\r\n\tsetPrivateStatus,\r\n\tsetDeletedStatus,\r\n\tsetNodeDetailAuthorEmail,\r\n\tsetNodeRevisions,\r\n\tresetNodeRevisions,\r\n\tsetRevisionsLoaded,\r\n\tsetSelectedReportReason,\r\n\tsetReportReasonValueId,\r\n\tsetReportReasonValueOption,\r\n\tsetReportReasonsOptionsData,\r\n\tresetReportReasonValueId,\r\n\tresetSelectedReportReason,\r\n\tsetQuestionExperts\r\n} = nodesSlice.actions;\r\n\r\nexport default nodesSlice.reducer;\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { authInitialState } from \"../../models/slices/\";\r\n\r\n/**\r\n * User Auth state layer, also named after a Redux Slice.\r\n */\r\nexport const authSlice = createSlice({\r\n\tname: AppSlices.auth,\r\n\tinitialState: authInitialState,\r\n\treducers: {\r\n\t\tsetUserDisplayName: (state, action: PayloadAction) => {\r\n\t\t\tstate.user.displayName = action.payload;\r\n\t\t},\r\n\t\tsetUserPrincipalName: (state, action: PayloadAction) => {\r\n\t\t\tstate.user.principalName = action.payload;\r\n\t\t},\r\n\t\tsetUserEmail: (state, action: PayloadAction) => {\r\n\t\t\tstate.user.email = action.payload;\r\n\t\t},\r\n\t\tsetUserId: (state, action: PayloadAction) => {\r\n\t\t\tstate.user.id = action.payload;\r\n\t\t},\r\n\t\tsetCanAccessCreateArticleComponents: (state, action: PayloadAction) => {\r\n\t\t\tstate.canAccessCreateArticleComponents = action.payload;\r\n\t\t},\r\n\t\tsetAccessRequesting: (state, action: PayloadAction) => {\r\n\t\t\tstate.accessRequesting = action.payload;\r\n\t\t},\r\n\t\tsetAccessRequested: (state, action: PayloadAction) => {\r\n\t\t\tstate.accessRequested = action.payload;\r\n\t\t},\r\n\t\tsetAuthoriableId: (state, action) => {\r\n\t\t\tstate.user.authoriableId = action.payload;\r\n\t\t},\r\n\t\tsetIsSuperAdmin: (state, action: PayloadAction) => {\r\n\t\t\tstate.isSuperAdmin = action.payload;\r\n\t\t},\r\n\t\tsetSuperAccessRequesting: (state, action: PayloadAction) => {\r\n\t\t\tstate.superAccessRequesting = action.payload;\r\n\t\t},\r\n\t\tsetSuperAccessRequested: (state, action: PayloadAction) => {\r\n\t\t\tstate.superAccessRequested = action.payload;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const {\r\n\tsetUserDisplayName,\r\n\tsetUserPrincipalName,\r\n\tsetUserId,\r\n\tsetAuthoriableId,\r\n\tsetUserEmail,\r\n\tsetCanAccessCreateArticleComponents,\r\n\tsetAccessRequesting,\r\n\tsetAccessRequested,\r\n\tsetIsSuperAdmin,\r\n\tsetSuperAccessRequesting,\r\n\tsetSuperAccessRequested\r\n} = authSlice.actions;\r\n\r\nexport default authSlice.reducer;\r\n","import { IAuthSlice } from \"../../../contracts/slices/auth/IAuthSlice\";\r\n\r\n/**\r\n * The Initial State of Node Management slice.\r\n */\r\nexport const authInitialState: IAuthSlice = {\r\n\tuser: {\r\n\t\tdisplayName: \"\",\r\n\t\tprincipalName: \"\",\r\n\t\tid: \"\",\r\n\t\temail: \"\",\r\n\t\tauthoriableId: 0\r\n\t},\r\n\tcanAccessCreateArticleComponents: false,\r\n\taccessRequesting: false,\r\n\taccessRequested: false,\r\n\tisSuperAdmin: false,\r\n\tsuperAccessRequesting: false,\r\n\tsuperAccessRequested: false\r\n};\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { articleFormInitialState } from \"../../models/slices\";\r\nimport { IArticleFormData } from \"../../contracts/article/articleForm\";\r\nimport { ICoverImageInfo, IListControl, INodeQueryResponse, ISpaceItem } from \"../../contracts\";\r\n\r\n/**\r\n * Article Form state management layer, also named after a Redux Slice.\r\n */\r\nexport const articleFormSlice = createSlice({\r\n\tname: AppSlices.articleForm,\r\n\tinitialState: articleFormInitialState,\r\n\treducers: {\r\n\t\tsetData: (state, action: PayloadAction) => {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\tresetData: (state) => {\r\n\t\t\tstate.data = articleFormInitialState.data;\r\n\t\t},\r\n\t\tsetParentArticlesList: (state, action: PayloadAction) => {\r\n\t\t\tstate.list.parentArticles = action.payload;\r\n\t\t},\r\n\t\tsetSpacesList: (state, action: PayloadAction) => {\r\n\t\t\tstate.list.spaces = action.payload;\r\n\t\t},\r\n\t\tsetCoverImageTypesList: (state, action: PayloadAction<[]>) => {\r\n\t\t\tstate.list.coverImageTypes = action.payload;\r\n\t\t},\r\n\t\tsetCoverImagesList: (state, action: PayloadAction<[]>) => {\r\n\t\t\tstate.list.coverImages.items = action.payload;\r\n\t\t},\r\n\t\tsetCoverImagesListPage: (state, action: PayloadAction) => {\r\n\t\t\tstate.list.coverImages.currentPage = action.payload;\r\n\t\t},\r\n\t\tsetCoverImagesListControl: (state, action: PayloadAction>) => {\r\n\t\t\tstate.list.coverImages = action.payload;\r\n\t\t},\r\n\t\tsetGalleryImagePathById: (state, action: PayloadAction<{ id: string; path: string }>) => {\r\n\t\t\tstate.gallery = {\r\n\t\t\t\timagePath: {\r\n\t\t\t\t\t...state.gallery.imagePath,\r\n\t\t\t\t\t[action.payload.id]: action.payload.path\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t},\r\n\t\tsetTopicsList: (state, action: PayloadAction) => {\r\n\t\t\tstate.list.topics = action.payload;\r\n\t\t},\r\n\t\tsetLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.loading = action.payload;\r\n\t\t},\r\n\t\tsetLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.loaded = action.payload;\r\n\t\t},\r\n\t\tsetQueryingParentArticles: (state, action: PayloadAction) => {\r\n\t\t\tstate.querying.parentArticles = action.payload;\r\n\t\t},\r\n\t\tsetQueryingSpaces: (state, action: PayloadAction) => {\r\n\t\t\tstate.querying.spaces = action.payload;\r\n\t\t},\r\n\t\tsetQueryingCoverImageTypes: (state, action: PayloadAction) => {\r\n\t\t\tstate.querying.coverImageTypes = action.payload;\r\n\t\t},\r\n\t\tsetQueryingCoverImages: (state, action: PayloadAction) => {\r\n\t\t\tstate.querying.coverImages = action.payload;\r\n\t\t},\r\n\t\tsetQueryingTopics: (state, action: PayloadAction) => {\r\n\t\t\tstate.querying.topics = action.payload;\r\n\t\t},\r\n\t\tsetQueryingNode: (state, action: PayloadAction) => {\r\n\t\t\tstate.querying.node = action.payload;\r\n\t\t},\r\n\t\tsetQueriedParentArticles: (state, action: PayloadAction) => {\r\n\t\t\tstate.queried.parentArticles = action.payload;\r\n\t\t},\r\n\t\tsetQueriedSpaces: (state, action: PayloadAction) => {\r\n\t\t\tstate.queried.spaces = action.payload;\r\n\t\t},\r\n\t\tsetQueriedCoverImageTypes: (state, action: PayloadAction) => {\r\n\t\t\tstate.queried.coverImageTypes = action.payload;\r\n\t\t},\r\n\t\tsetQueriedCoverImages: (state, action: PayloadAction) => {\r\n\t\t\tstate.queried.coverImages = action.payload;\r\n\t\t},\r\n\t\tsetQueriedTopics: (state, action: PayloadAction) => {\r\n\t\t\tstate.queried.topics = action.payload;\r\n\t\t},\r\n\t\tsetQueriedNode: (state, action: PayloadAction) => {\r\n\t\t\tstate.queried.node = action.payload;\r\n\t\t},\r\n\t\tsetParentArticleQuery: (state, action: PayloadAction) => {\r\n\t\t\tstate.parentArticleQuery = action.payload;\r\n\t\t},\r\n\t\tsetCoverImageGalleryOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.coverImageGalleryOpen = action.payload;\r\n\t\t},\r\n\t\tsetTopicsText: (state, action: PayloadAction) => {\r\n\t\t\tstate.topicsText = action.payload;\r\n\t\t},\r\n\t\tsetBodySourceMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.bodySourceMode = action.payload;\r\n\t\t},\r\n\t\tsetExpandedSpaceById: (state, action: PayloadAction<{ spaceId: number; expanded: boolean }>) => {\r\n\t\t\tif (action.payload.expanded && !state.expandedSpaces.includes(action.payload.spaceId)) {\r\n\t\t\t\tstate.expandedSpaces = [...state.expandedSpaces, action.payload.spaceId];\r\n\t\t\t} else if (!action.payload.expanded && state.expandedSpaces.includes(action.payload.spaceId)) {\r\n\t\t\t\tstate.expandedSpaces = state.expandedSpaces.filter((item) => item !== action.payload.spaceId);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetSubmitting: (state, action: PayloadAction) => {\r\n\t\t\tstate.submitting = action.payload;\r\n\t\t},\r\n\t\tresetExpandedSpaces: (state) => {\r\n\t\t\tstate.expandedSpaces = articleFormInitialState.expandedSpaces;\r\n\t\t},\r\n\t\tclearGalleryImagePaths: (state) => {\r\n\t\t\tstate.gallery = articleFormInitialState.gallery;\r\n\t\t},\r\n\t\treset: (state) => {\r\n\t\t\tstate.list = articleFormInitialState.list;\r\n\t\t\tstate.queried = articleFormInitialState.queried;\r\n\t\t\tstate.querying = articleFormInitialState.querying;\r\n\t\t\tstate.loading = articleFormInitialState.loading;\r\n\t\t\tstate.loaded = articleFormInitialState.loaded;\r\n\t\t\tstate.gallery = articleFormInitialState.gallery;\r\n\t\t\tstate.coverImageGalleryOpen = articleFormInitialState.coverImageGalleryOpen;\r\n\t\t\tstate.topicsText = articleFormInitialState.topicsText;\r\n\t\t\tstate.parentArticleQuery = articleFormInitialState.parentArticleQuery;\r\n\t\t\tstate.expandedSpaces = articleFormInitialState.expandedSpaces;\r\n\t\t\tstate.submitting = articleFormInitialState.submitting;\r\n\t\t},\r\n\t\tresetFormConfig: (state) => {\r\n\t\t\tstate.bodySourceMode = articleFormInitialState.bodySourceMode;\r\n\t\t\tstate.coverImageGalleryOpen = articleFormInitialState.coverImageGalleryOpen;\r\n\t\t\tstate.data = articleFormInitialState.data;\r\n\t\t\tstate.loaded = articleFormInitialState.loaded;\r\n\t\t\tstate.loading = articleFormInitialState.loading;\r\n\t\t\tstate.submitting = articleFormInitialState.submitting;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const articleFormActions = articleFormSlice.actions;\r\n\r\nexport default articleFormSlice.reducer;\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { NodeTreeItem } from \"../../contracts\";\r\nimport { appTreeViewInitialState } from \"../../models/slices\";\r\nimport { AppSlices } from \"../slices\";\r\n\r\n/**\r\n * Application Tree View component state layer, also named Redux Slice.\r\n */\r\nexport const appTreeViewSlice = createSlice({\r\n\tname: AppSlices.appTreeView,\r\n\tinitialState: appTreeViewInitialState,\r\n\treducers: {\r\n\t\t_setRawData: (state, action: PayloadAction) => {\r\n\t\t\tstate.rawData = action.payload;\r\n\t\t},\r\n\t\t_setExpandedItems: (state, action: PayloadAction) => {\r\n\t\t\tstate.expanded = action.payload;\r\n\t\t},\r\n\t\t_setLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.loaded = action.payload;\r\n\t\t},\r\n\t\t_setLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.loading = action.payload;\r\n\t\t},\r\n\t\t_reset: (state) => {\r\n\t\t\tstate.expanded = appTreeViewInitialState.expanded;\r\n\t\t\tstate.loaded = appTreeViewInitialState.loaded;\r\n\t\t\tstate.loading = appTreeViewInitialState.loading;\r\n\t\t},\r\n\t\t_resetData: (state) => {\r\n\t\t\tstate.rawData = appTreeViewInitialState.rawData;\r\n\t\t},\r\n\t\t_setTreeNavSearchText: (state, action: PayloadAction) => {\r\n\t\t\tstate.searchText = action.payload;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const { _setExpandedItems, _reset, _resetData, _setRawData, _setLoaded, _setLoading, _setTreeNavSearchText } = appTreeViewSlice.actions;\r\n\r\nexport default appTreeViewSlice.reducer;\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { commentInitialState } from \"../../models/slices/\";\r\nimport { IStrikeNodesComments } from \"../../contracts/models\";\r\n\r\nfunction removeItemFromArray(array, item) {\r\n\tconst index = array.findIndex(element => element === item);\r\n\tif (index !== -1) {\r\n\t array.splice(index, 1);\r\n\t}\r\n }\r\n\r\n/**\r\n * Node Comments Management state layer, also named after a Redux Slice.\r\n *\r\n */\r\nexport const commentsSlice = createSlice({\r\n\tname: AppSlices.comments,\r\n\tinitialState: commentInitialState,\r\n\treducers: {\r\n\t\tsetAllNodeComments: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.allNodeComments = action.payload;\r\n\t\t},\r\n\t\tsetNodeLikeCount: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.likeCount = action.payload;\r\n\t\t},\r\n\t\tsetNodeLikeByUsers: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.likeByUsers = action.payload;\r\n\t\t},\r\n\t\tsetShowAllComments: (state) => {\r\n\t\t\tstate.ui.isToggledComments = !state.ui.isToggledComments;\r\n\t\t},\r\n\t\tsetToggleCommentForm: (state) => {\r\n\t\t\tstate.ui.isToggledCommentForm = !state.ui.isToggledCommentForm;\r\n\t\t},\r\n\t\tsetToggleCommentQuestionForm: (state) => {\r\n\t\t\tstate.ui.isToggledCommentQuestionForm = !state.ui.isToggledCommentQuestionForm;\r\n\t\t},\r\n\t\tsetIsNodeAlreadyLiked: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isNodeAlreadyLiked = action.payload;\r\n\t\t},\r\n\t\tsetFormSubmitting: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.submitting = action.payload;\r\n\t\t},\r\n\t\tsetCommentText: (state, action: PayloadAction) => {\r\n\t\t\tstate.form.commentText = action.payload;\r\n\t\t},\r\n\t\tsetNodeId: (state, action: PayloadAction) => {\r\n\t\t\tstate.form.nodeId = action.payload;\r\n\t\t},\r\n\t\tsetNodeCommentsTotal: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.nodeCommentsTotal = action.payload;\r\n\t\t},\r\n\t\tsetAddCommentToList: (state, action: PayloadAction) => {\r\n\t\t\tconst copyList = [...state.data.allNodeComments, action.payload];\r\n\r\n\t\t\tstate.data.allNodeComments = copyList;\r\n\t\t},\r\n\t\taddLike: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.likeCount = state.data.likeCount + 1;\r\n\t\t\tstate.data.likeByUsers += (state.data.likeByUsers ? \",\" : \"\") + action.payload;\r\n\t\t},\r\n\t\tremoveLike: (state, action: PayloadAction) => {\r\n\t\t\tif (state.data.likeCount > 0) {\r\n\t\t\t\tstate.data.likeCount = state.data.likeCount - 1;\r\n\t\t\t}\r\n\t\t\tconst likesArray = state.data.likeByUsers.split(\",\").map((item) => parseInt(item));\r\n\t\t\tremoveItemFromArray(likesArray, action.payload);\r\n\t\t\tstate.data.likeByUsers = likesArray.join(\",\");\r\n\t\t},\r\n\t\tsetReplyItemExpandedById: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.replyExpandedId = action.payload;\r\n\t\t},\r\n\t\tsetBodySourceMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.form.bodySourceMode = action.payload;\r\n\t\t},\r\n\t\tsetCommentsToShow: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.commentsToShow = action.payload;\r\n\t\t},\r\n\t\tresetCommentsToShow: (state) => {\r\n\t\t\tstate.data.commentsToShow = commentInitialState.data.commentsToShow;\r\n\t\t},\r\n\t\tupdateAcceptedAnswer: (\r\n\t\t\tstate,\r\n\t\t\taction: PayloadAction<{ answerId: number; acceptedFlagProp: string; acceptedFlagValue: boolean }>\r\n\t\t) => {\r\n\t\t\tconst { answerId, acceptedFlagProp, acceptedFlagValue } = action.payload;\r\n\t\t\tconst answerToUpdate = state.data.allNodeComments.find((answer) => answer.CommentId === answerId);\r\n\t\t\tif (answerToUpdate) {\r\n\t\t\t\tanswerToUpdate[acceptedFlagProp] = acceptedFlagValue;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetEditingIds: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.editingIds = action.payload;\r\n\t\t},\r\n\t\tresetEditingIds: (state) => {\r\n\t\t\tstate.data.editingIds = commentInitialState.data.editingIds;\r\n\t\t},\r\n\t\tsetCommentInList: (state, action: PayloadAction) => {\r\n\t\t\tconst copyList = [...state.data.allNodeComments];\r\n\r\n\t\t\t// Finds and updates the entry in the list\r\n\t\t\tfor (let commentIndex = 0; copyList.length > commentIndex; commentIndex++) {\r\n\t\t\t\tif (copyList[commentIndex].CommentId === action.payload.CommentId) {\r\n\t\t\t\t\tcopyList[commentIndex].Title = action.payload.Title;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tstate.data.allNodeComments = copyList;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const {\r\n\tsetNodeLikeCount,\r\n\tsetNodeLikeByUsers,\r\n\tsetAllNodeComments,\r\n\tsetShowAllComments,\r\n\tsetToggleCommentForm,\r\n\tsetToggleCommentQuestionForm,\r\n\tsetIsNodeAlreadyLiked,\r\n\tsetCommentText,\r\n\tsetNodeId,\r\n\tsetNodeCommentsTotal,\r\n\tsetAddCommentToList,\r\n\taddLike,\r\n\tremoveLike,\r\n\tsetReplyItemExpandedById,\r\n\tsetFormSubmitting,\r\n\tsetBodySourceMode,\r\n\tsetCommentsToShow,\r\n\tresetCommentsToShow,\r\n\tupdateAcceptedAnswer,\r\n\tsetEditingIds,\r\n\tresetEditingIds,\r\n\tsetCommentInList\r\n} = commentsSlice.actions;\r\n\r\nexport default commentsSlice.reducer;\r\n","/**\r\n * Redux config to manage the app\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { spacesInitialState } from \"../../models/slices\";\r\nimport { ISpaceItem } from \"../../contracts\";\r\nimport { IGroup } from \"@fluentui/react\";\r\n\r\n/**\r\n * Spaces List state management layer, also named after a Redux Slice.\r\n */\r\nexport const spacesSlice = createSlice({\r\n\tname: AppSlices.spaces,\r\n\tinitialState: spacesInitialState,\r\n\treducers: {\r\n\t\tsetSelectedId: (state, action: PayloadAction) => {\r\n\t\t\tstate.selectedId = action.payload;\r\n\t\t},\r\n\t\tsetSpacesList: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaces = action.payload;\r\n\t\t},\r\n\t\tsetLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.loading = action.payload;\r\n\t\t},\r\n\t\tsetLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.loaded = action.payload;\r\n\t\t},\r\n\t\tsetExpandedSpaceById: (state, action: PayloadAction<{ spaceId: number; expanded: boolean }>) => {\r\n\t\t\tif (action.payload.expanded && !state.expandedSpaces.includes(action.payload.spaceId)) {\r\n\t\t\t\tstate.expandedSpaces = [...state.expandedSpaces, action.payload.spaceId];\r\n\t\t\t} else if (!action.payload.expanded && state.expandedSpaces.includes(action.payload.spaceId)) {\r\n\t\t\t\tstate.expandedSpaces = state.expandedSpaces.filter((item) => item !== action.payload.spaceId);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetOpen: (state, action: PayloadAction): void => {\r\n\t\t\tstate.open = action.payload;\r\n\t\t},\r\n\t\tresetExpandedSpaces: (state) => {\r\n\t\t\tstate.expandedSpaces = spacesInitialState.expandedSpaces;\r\n\t\t},\r\n\t\treset: (state) => {\r\n\t\t\tstate.selectedId = spacesInitialState.selectedId;\r\n\t\t\tstate.expandedSpaces = spacesInitialState.expandedSpaces;\r\n\t\t\tstate.loading = spacesInitialState.loading;\r\n\t\t\tstate.loaded = spacesInitialState.loaded;\r\n\t\t\tstate.spaces = spacesInitialState.spaces;\r\n\t\t},\r\n\t\tsetSpaceManagerItemsList: (state, action: PayloadAction) => {\r\n\t\t\tstate.manager.items = action.payload;\r\n\t\t},\r\n\t\tsetSpaceManagerGroupsList: (state, action: PayloadAction) => {\r\n\t\t\tstate.manager.groups = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenSpaceManagerDeleteConfirmation: (state, action: PayloadAction) => {\r\n\t\t\tstate.manager.ui.deleteConfirmationOpen = action.payload;\r\n\t\t},\r\n\t\tsetSpaceManagerSpaceToDelete: (state, action: PayloadAction) => {\r\n\t\t\tstate.manager.ui.spaceToDelete = action.payload;\r\n\t\t},\r\n\t\tsetSpaceManagerSpaceIdToDelete: (state, action: PayloadAction) => {\r\n\t\t\tstate.manager.ui.spaceIdToDelete = action.payload;\r\n\t\t},\r\n\t\tresetSpaceManagerSpaceToDelete: (state) => {\r\n\t\t\tstate.manager.ui.spaceToDelete = spacesInitialState.manager.ui.spaceToDelete;\r\n\t\t},\r\n\t\tsetManagerCurrentParentSpace: (state, action: PayloadAction) => {\r\n\t\t\tstate.manager.ui.currentParentSpace = action.payload;\r\n\t\t},\r\n\t\tsetSpaceCoverImage: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaceCoverImage = action.payload;\r\n\t\t},\r\n\t\tsetSpaceName: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaceName = action.payload;\r\n\t\t},\r\n\t\tresetSpaceCoverImage: (state) => {\r\n\t\t\tstate.spaceCoverImage = spacesInitialState.spaceCoverImage;\r\n\t\t},\r\n\t\tresetSpaceName: (state) => {\r\n\t\t\tstate.spaceName = spacesInitialState.spaceName;\r\n\t\t},\r\n\t\tsetSpaceCoverImageLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaceCoverImageLoaded = action.payload;\r\n\t\t},\r\n\t\tsetSpaceDescription: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaceDescription = action.payload;\r\n\t\t},\r\n\t\tsetSpaceBanner: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaceBanner = action.payload;\r\n\t\t},\r\n\t\tresetSpaceDescription: (state) => {\r\n\t\t\tstate.spaceDescription = spacesInitialState.spaceDescription;\r\n\t\t},\r\n\t\tresetSpaceBanner: (state) => {\r\n\t\t\tstate.spaceBanner = spacesInitialState.spaceBanner;\r\n\t\t},\r\n\t\tsetSpaceDetailsLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.spaceDetailsLoaded = action.payload;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const spacesActions = spacesSlice.actions;\r\n\r\nexport default spacesSlice.reducer;\r\n","/**\r\n * Redux config to manage filtering data\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { filterInitialState } from \"../../models/slices/\";\r\nimport { IStrikeNodes } from \"../../contracts/models\";\r\nimport { NodeType, UserDashboardsFiltersType } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Node Comments Management state layer, also named after a Redux Slice.\r\n *\r\n */\r\nexport const filterSlice = createSlice({\r\n\tname: AppSlices.filter,\r\n\tinitialState: filterInitialState,\r\n\treducers: {\r\n\t\tsetNodeList: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.nodeList = action.payload;\r\n\t\t},\r\n\t\tsetSearchTopics: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.searchTopics = action.payload;\r\n\t\t},\r\n\t\tresetSearchTopics: (state) => {\r\n\t\t\tstate.data.searchTopics = filterInitialState.data.searchTopics;\r\n\t\t},\r\n\t\tsetSearchTitle: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.searchTitle = action.payload;\r\n\t\t},\r\n\t\tresetSearchTitle: (state) => {\r\n\t\t\tstate.data.searchTitle = filterInitialState.data.searchTitle;\r\n\t\t},\r\n\t\tsetToggleExpanderFilter: (state) => {\r\n\t\t\tstate.ui.expanded = !state.ui.expanded;\r\n\t\t},\r\n\t\tsetFilterLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.loading = action.payload;\r\n\t\t},\r\n\t\tsetFilterLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.loaded = action.payload;\r\n\t\t},\r\n\t\tsetPageIndex: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.pageIndex = action.payload;\r\n\t\t},\r\n\t\tsetNodesLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.nodesLoading = action.payload;\r\n\t\t},\r\n\t\tsetDashboardButtonTitle: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.dashboardButtonTitle = action.payload;\r\n\t\t},\r\n\t\tresetDashboardButtonTitle: (state) => {\r\n\t\t\tstate.ui.dashboardButtonTitle = filterInitialState.ui.dashboardButtonTitle;\r\n\t\t},\r\n\t\tsetDashboardNavigation: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.dashboardNavigation = action.payload;\r\n\t\t},\r\n\t\tresetTopicsValues: (state) => {\r\n\t\t\tstate.ui.topicsResetKey = state.ui.topicsResetKey + 1;\r\n\t\t},\r\n\t\tsetSpaceSelectedValue: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.spaceSelectedValue = action.payload;\r\n\t\t},\r\n\t\tresetSpaceSelectedValue: (state) => {\r\n\t\t\tstate.ui.spaceSelectedValue = filterInitialState.ui.spaceSelectedValue;\r\n\t\t},\r\n\t\tsetIsFilterVisible: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isFilterVisible = action.payload;\r\n\t\t},\r\n\t\tsetIsDashboardLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isDashboardLoading = action.payload;\r\n\t\t},\r\n\t\tsetUserDashboard: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.userCustomDashboard = action.payload;\r\n\t\t},\r\n\t\tresetUserDashboard: (state) => {\r\n\t\t\tstate.ui.userCustomDashboard = filterInitialState.ui.userCustomDashboard;\r\n\t\t},\r\n\t\tsetSortByOption: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.sortByOption = action.payload;\r\n\t\t},\r\n\t\tresetSortByOption: (state) => {\r\n\t\t\tstate.ui.sortByOption = filterInitialState.ui.sortByOption;\r\n\t\t},\r\n\t}\r\n});\r\n\r\nexport const {\r\n\tsetSearchTopics,\r\n\tsetSearchTitle,\r\n\tresetSearchTopics,\r\n\tresetSearchTitle,\r\n\tsetToggleExpanderFilter,\r\n\tsetFilterLoading,\r\n\tsetFilterLoaded,\r\n\tsetPageIndex,\r\n\tsetNodeList,\r\n\tsetNodesLoading,\r\n\tsetDashboardButtonTitle,\r\n\tresetDashboardButtonTitle,\r\n\tsetDashboardNavigation,\r\n\tresetTopicsValues,\r\n\tsetSpaceSelectedValue,\r\n\tresetSpaceSelectedValue,\r\n\tsetIsFilterVisible,\r\n\tsetIsDashboardLoading,\r\n\tsetUserDashboard,\r\n\tresetUserDashboard,\r\n\tsetSortByOption,\r\n\tresetSortByOption\r\n} = filterSlice.actions;\r\n\r\nexport default filterSlice.reducer;\r\n","/**\r\n * Redux config to manage follow component state\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { followInitialState } from \"../../models/slices\";\r\nimport { IFollowRelation, INodeTopContributorsResponse } from \"../../contracts\";\r\n\r\n/**\r\n * Node Comments Management state layer, also named after a Redux Slice.\r\n *\r\n */\r\nexport const followSlice = createSlice({\r\n\tname: AppSlices.follow,\r\n\tinitialState: followInitialState,\r\n\treducers: {\r\n\t\tsetFollowers: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.followers = action.payload;\r\n\t\t},\r\n\t\tresetFollowers: (state) => {\r\n\t\t\tstate.data.followers = followInitialState.data.followers;\r\n\t\t},\r\n\t\tsetQuerying: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.querying = action.payload;\r\n\t\t},\r\n\t\tsetQueried: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.queried = action.payload;\r\n\t\t},\r\n\t\tsetFollowersToShow: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.followersToShow = action.payload;\r\n\t\t},\r\n\t\tresetFollowersToShow: (state) => {\r\n\t\t\tstate.ui.followersToShow = followInitialState.ui.followersToShow;\r\n\t\t},\r\n\t\taddFollower: (state, action: PayloadAction) => {\r\n\t\t\tif (!state.data.followers.some((item) => item.UserUPN === action.payload.UserUPN))\r\n\t\t\t\tstate.data.followers.push(action.payload);\r\n\t\t},\r\n\t\tremoveFollower: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.followers = state.data.followers.filter((item) => {\r\n\t\t\t\treturn item.UserUPN !== action.payload;\r\n\t\t\t});\r\n\t\t},\r\n\t\tresetAll: (state) => {\r\n\t\t\tstate.data = followInitialState.data;\r\n\t\t\tstate.ui = followInitialState.ui;\r\n\t\t},\r\n\t\tsetIsFavourite: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isFavourite = action.payload;\r\n\t\t},\r\n\t\tsetTopContributors: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.topContributors = action.payload;\r\n\t\t},\r\n\t\tsetTopContributorsQuerying: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.topContributorsQuerying = action.payload;\r\n\t\t},\r\n\t\tsetTopContributorsQueried: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.topContributorsQuerying = action.payload;\r\n\t\t},\r\n\t}\r\n});\r\n\r\nexport const {\r\n\tsetFollowersToShow,\r\n\tresetFollowersToShow,\r\n\tsetFollowers,\r\n\tresetFollowers,\r\n\tsetQuerying,\r\n\tsetQueried,\r\n\taddFollower,\r\n\tremoveFollower,\r\n\tresetAll,\r\n\tsetIsFavourite,\r\n\tsetTopContributors,\r\n\tsetTopContributorsQuerying,\r\n\tsetTopContributorsQueried\r\n} = followSlice.actions;\r\n\r\nexport default followSlice.reducer;\r\n","/**\r\n * Redux config to manage follow component state\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { tagsInitialState } from \"../../models/slices\";\r\nimport { TagsModeType } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Node Tags Management state layer, also named after a Redux Slice.\r\n * Save tagsMode(edit/view) and tags data as ids and names used to link a display.\r\n *\r\n */\r\nexport const tagsSlice = createSlice({\r\n\tname: AppSlices.tags,\r\n\tinitialState: tagsInitialState,\r\n\treducers: {\r\n\t\tsetTagsMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.tagsMode = action.payload;\r\n\t\t},\r\n\t\tsetTagsIds: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.tagsIds = action.payload;\r\n\t\t},\r\n\t\tsetTagsNames: (state, action: PayloadAction) => {\r\n\t\t\tstate.data.tagsNames = action.payload;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const { setTagsMode, setTagsIds, setTagsNames } = tagsSlice.actions;\r\n\r\nexport default tagsSlice.reducer;\r\n","import { ISpaceFormSlice } from \"../../../contracts/slices\";\r\nimport { CoverImageType } from \"../../../enums\";\r\n/**\r\n * The Initial State of an Space Form slice.\r\n */\r\nexport const spaceFormInitialState: ISpaceFormSlice = {\r\n\tselectedParentId: null,\r\n\tdata: {\r\n\t\tid: \"\",\r\n\t\tparentId: null,\r\n\t\tauthorUpn: \"\",\r\n\t\tname: \"\",\r\n\t\tdescription: \"\",\r\n\t\tbanner: \"\",\r\n\t\tcoverImageId: null,\r\n\t\tcoverImageType: CoverImageType.Default,\r\n\t\tcoverImageMimeType: null,\r\n\t\tcoverImageFile: null,\r\n\t\tcoverImageName: \"\",\r\n\t\tcoverImageSize: null\r\n\t},\r\n\tloading: false,\r\n\tloaded: false,\r\n\tdataLoading: false,\r\n\tdataLoaded: false,\r\n\tdataManageListLoading: false,\r\n\tdataManageHeaderLoading: false,\r\n\tdataManageListLoaded: false,\r\n\tdataManageHeaderLoaded: false,\r\n\tcoverImageFile: \"\",\r\n\tdescriptionBodySourceMode: false,\r\n\tbannerBodySourceMode: false\r\n};\r\n","/**\r\n * Redux config to manage space Form data\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { spaceFormInitialState } from \"../../models/slices/spaces/spaceFormInitialState\";\r\nimport { ISpaceFormData } from \"../../contracts\";\r\n\r\n/**\r\n * Article Form state management layer, also named after a Redux Slice.\r\n */\r\nexport const spaceFormSlice = createSlice({\r\n\tname: AppSlices.spaceForm,\r\n\tinitialState: spaceFormInitialState,\r\n\treducers: {\r\n\t\tsetSelectedParentId: (state, action: PayloadAction) => {\r\n\t\t\tstate.selectedParentId = action.payload;\r\n\t\t},\r\n\t\tresetSelectedParentId: (state) => {\r\n\t\t\tstate.selectedParentId = spaceFormInitialState.selectedParentId;\r\n\t\t},\r\n\t\tsetData: (state, action: PayloadAction) => {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\tresetData: (state) => {\r\n\t\t\tstate.data = spaceFormInitialState.data;\r\n\t\t},\r\n\t\tsetLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.loading = action.payload;\r\n\t\t},\r\n\t\tsetLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.loaded = action.payload;\r\n\t\t},\r\n\t\tsetIsDataLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.dataLoading = action.payload;\r\n\t\t},\r\n\t\tsetIsDataLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.dataLoaded = action.payload;\r\n\t\t},\r\n\t\tsetManageFormDataListIsLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.dataManageListLoading = action.payload;\r\n\t\t},\r\n\t\tsetManageFormDataHeaderIsLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.dataManageHeaderLoading = action.payload;\r\n\t\t},\r\n\t\tsetManageFormDataListIsLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.dataManageListLoaded = action.payload;\r\n\t\t},\r\n\t\tsetManageFormDataHeaderIsLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.dataManageHeaderLoaded = action.payload;\r\n\t\t},\r\n\t\tsetCoverImageFile: (state, action: PayloadAction) => {\r\n\t\t\tstate.coverImageFile = action.payload;\r\n\t\t},\r\n\t\tsetDescriptionBodySourceMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.descriptionBodySourceMode = action.payload;\r\n\t\t},\r\n\t\tsetBannerBodySourceMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.bannerBodySourceMode = action.payload;\r\n\t\t},\r\n\t}\r\n});\r\n\r\nexport const spaceFormActions = spaceFormSlice.actions;\r\n\r\nexport default spaceFormSlice.reducer;\r\n","/**\r\n * Redux config to manage space Form data\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { IEventAllowListResponse, IEventFormData, IEventFormDataResponse } from \"../../contracts/event/eventForm\";\r\nimport { eventFormInitialState } from \"../../models/slices/event/eventFormInitialState\";\r\n\r\n/**\r\n * Event Form state management layer, also named after a Redux Slice.\r\n */\r\nexport const eventFormSlice = createSlice({\r\n\tname: AppSlices.eventForm,\r\n\tinitialState: eventFormInitialState,\r\n\treducers: {\r\n\t\tsetData: (state, action: PayloadAction) => {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\tresetData: (state) => {\r\n\t\t\tstate.data = eventFormInitialState.data;\r\n\t\t},\r\n\t\tsetBodySourceMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.bodySourceMode = action.payload;\r\n\t\t},\r\n\t\tsetSelectedEventTypeId: (state, action: PayloadAction) => {\r\n\t\t\tstate.selected.eventTypeId = action.payload;\r\n\t\t},\r\n\t\tsetSelectedEventIdToCheckin: (state, action: PayloadAction) => {\r\n\t\t\tstate.checkin.eventSelectedId = action.payload;\r\n\t\t},\r\n\t\tsetSelectedStartDate: (state, action: PayloadAction) => {\r\n\t\t\tstate.selected.startDate = action.payload;\r\n\t\t},\r\n\t\tsetSelectedEndDate: (state, action: PayloadAction) => {\r\n\t\t\tstate.selected.endDate = action.payload;\r\n\t\t},\r\n\t\tsetSelectedPublishDate: (state, action: PayloadAction) => {\r\n\t\t\tstate.selected.publishDate = action.payload;\r\n\t\t},\r\n\t\tsetEventsList: (state, action: PayloadAction) => {\r\n\t\t\tstate.events.list = action.payload;\r\n\t\t},\r\n\t\tsetEventAllowedUserList: (state, action: PayloadAction) => {\r\n\t\t\tstate.event.allowedUsers = action.payload;\r\n\t\t},\r\n\t\tresetEventAllowedUserList: (state) => {\r\n\t\t\tstate.event.allowedUsers = eventFormInitialState.event.allowedUsers;\r\n\t\t},\r\n\t\tremoveUserFromAllowedList: (state, action: PayloadAction) => {\r\n\t\t\tstate.event.allowedUsers = state.event.allowedUsers.filter((item) => item.emailId !== action.payload);\r\n\t\t},\r\n\t\tsetIsAllowUsersPanelOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.allowedUsersPanelOpen = action.payload;\r\n\t\t},\r\n\t\tsetIsProcessFilePanelOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.processFilePanelOpen = action.payload;\r\n\t\t},\r\n\t\tsetIsAllowUsersChanged: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.allowedUsersChanged = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenDeleteEventModal: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenDeleteEventModal = action.payload;\r\n\t\t},\r\n\t\tsetIsOpenPublishEventModal: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isOpenPublishEventModal = action.payload;\r\n\t\t},\r\n\t\tsetIsEventListLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isEventListLoaded = action.payload;\r\n\t\t},\r\n\t\tsetIsEventListLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.isEventListLoading = action.payload;\r\n\t\t},\r\n\t\tsetEventFilterSearchText: (state, action: PayloadAction) => {\r\n\t\t\tstate.filter.eventFilterSearchText = action.payload;\r\n\t\t},\r\n\t\tsetEventFilterSearchType: (state, action: PayloadAction) => {\r\n\t\t\tstate.filter.eventFilterSearchType = action.payload;\r\n\t\t},\r\n\t\tsetEventFilterSearchTypeOption: (state, action: PayloadAction) => {\r\n\t\t\tstate.filter.eventFilterSearchTypeOption = action.payload;\r\n\t\t},\r\n\t\tsetEventFilterSearchStatus: (state, action: PayloadAction) => {\r\n\t\t\tstate.filter.eventFilterSearchStatus = action.payload;\r\n\t\t},\r\n\t\tsetEventFilterSearchStatusId: (state, action: PayloadAction) => {\r\n\t\t\tstate.filter.eventFilterSearchStatusId = action.payload;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const eventFormActions = eventFormSlice.actions;\r\n\r\nexport default eventFormSlice.reducer;\r\n","/**\r\n * Redux config to manage space Form data\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { IEventNotificationTemplateRequest } from \"../../contracts/models\";\r\nimport { eventNotificationTemplatesInitialState } from \"../../models/slices\";\r\nimport { IEventNotificationTemplate } from \"../../contracts\";\r\n\r\n/**\r\n * Event Notification Templates' state management layer, also named after a Redux Slice.\r\n */\r\nexport const eventNotificationTemplatesSlice = createSlice({\r\n\tname: AppSlices.eventNotificationTemplates,\r\n\tinitialState: eventNotificationTemplatesInitialState,\r\n\treducers: {\r\n\t\tsetForm: (state, action: PayloadAction) => {\r\n\t\t\tstate.form = action.payload;\r\n\t\t},\r\n\t\treset: (state) => {\r\n\t\t\tstate.form = eventNotificationTemplatesInitialState.form;\r\n\t\t\tstate.ui.bodySourceMode = eventNotificationTemplatesInitialState.ui.bodySourceMode;\r\n\t\t\tstate.ui.editing = eventNotificationTemplatesInitialState.ui.editing;\r\n\t\t\tstate.ui.selectedType = eventNotificationTemplatesInitialState.ui.selectedType;\r\n\t\t\tstate.ui.submitting = eventNotificationTemplatesInitialState.ui.submitting;\r\n\t\t},\r\n\t\tresetForm: (state) => {\r\n\t\t\tstate.form = eventNotificationTemplatesInitialState.form;\r\n\t\t},\r\n\t\tsetFormContentSourceMode: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.bodySourceMode = action.payload;\r\n\t\t},\r\n\t\tsetFormSelectedTemplateType: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.selectedType = action.payload;\r\n\t\t},\r\n\t\tsetFormIsEditing: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.editing = action.payload;\r\n\t\t},\r\n\t\tsetFormIsSubmitting: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.submitting = action.payload;\r\n\t\t},\r\n\t\tsetEventNotificationTemplateList: (state, action: PayloadAction) => {\r\n\t\t\tstate.list = action.payload;\r\n\t\t},\r\n\t\tresetEventNotificationTemplateList: (state) => {\r\n\t\t\tstate.list = eventNotificationTemplatesInitialState.list;\r\n\t\t},\r\n\t\tsetEventName: (state, action: PayloadAction) => {\r\n\t\t\tstate.ui.eventName = action.payload;\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const eventNotificationTemplatesActions = eventNotificationTemplatesSlice.actions;\r\n\r\nexport default eventNotificationTemplatesSlice.reducer;\r\n","import { IGlobalBannerFormSlice } from \"../../../contracts/slices/banner/IGlobalBannerFormSlice\";\r\nimport { CoverImageType } from \"../../../enums\";\r\n/**\r\n * The Initial State of an Global Banner Form slice.\r\n */\r\nexport const globalBannerFormInitialState: IGlobalBannerFormSlice = {\r\n\tdata: {\r\n\t\tid: \"\",\r\n\t\ttitle: \"\",\r\n\t\tlink: \"\",\r\n authorUpn: \"\",\r\n\t\tisCurrentBanner: false,\r\n\t\tbannerImageId: null,\r\n\t\tbannerImageType: CoverImageType.Default,\r\n\t\tbannerImageMimeType: null,\r\n\t\tbannerImageFile: null,\r\n\t\tbannerImageName: \"\",\r\n\t\tbannerImageSize: null\r\n\t}, \r\n bannerImageFile: \"\",\r\n\tbannersList: null,\r\n\tloading: false,\r\n\tloaded: false,\r\n\tbannerPanelOpen: false,\r\n\tbannerId: \"\"\r\n};","/**\r\n * Redux config to manage space Form data\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { IGlobalBannerFormData, IGlobalBannerItemsResponse, ISpaceFormData } from \"../../contracts\";\r\nimport { globalBannerFormInitialState } from \"../../models/slices/banner/globalBannerFormInitialState\";\r\n\r\n/**\r\n * Article Form state management layer, also named after a Redux Slice.\r\n */\r\nexport const globalBannerFormSlice = createSlice({\r\n\tname: AppSlices.globalBannerForm,\r\n\tinitialState: globalBannerFormInitialState,\r\n\treducers: {\r\n\t\tsetData: (state, action: PayloadAction) => {\r\n\t\t\tstate.data = action.payload;\r\n\t\t},\r\n\t\tresetData: (state) => {\r\n\t\t\tstate.data = globalBannerFormInitialState.data;\r\n\t\t},\r\n setBannerImageFile: (state, action: PayloadAction) => {\r\n\t\t\tstate.bannerImageFile = action.payload;\r\n\t\t},\r\n\t\tsetBannersList: (state, action: PayloadAction) => {\r\n\t\t\tstate.bannersList = action.payload;\r\n\t\t},\r\n\t\tsetLoading: (state, action: PayloadAction) => {\r\n\t\t\tstate.loading = action.payload;\r\n\t\t},\r\n\t\tsetLoaded: (state, action: PayloadAction) => {\r\n\t\t\tstate.loaded = action.payload;\r\n\t\t},\r\n\t\tsetBannerPanelOpen: (state, action: PayloadAction) => {\r\n\t\t\tstate.bannerPanelOpen = action.payload;\r\n\t\t},\r\n\t\tsetBannerId: (state, action: PayloadAction) => {\r\n\t\t\tstate.bannerId = action.payload;\r\n\t\t},\r\n\t\tresetBannerId: (state) => {\r\n\t\t\tstate.bannerId = globalBannerFormInitialState.bannerId;\r\n\t\t},\r\n\t}\r\n});\r\n\r\nexport const globalBannerFormActions = globalBannerFormSlice.actions;\r\n\r\nexport default globalBannerFormSlice.reducer;","import { ITopicsExpertsSlice } from \"../../../contracts/slices/topics/ITopicsExpertsSlice\";\r\n/**\r\n * The Initial State of an Global Banner Form slice.\r\n */\r\nexport const topicsExpertsInitialState: ITopicsExpertsSlice = {\r\n data: []\r\n};","/**\r\n * Redux config to manage space Form data\r\n */\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppSlices } from \"../slices\";\r\nimport { topicsExpertsInitialState } from \"../../models/slices/topics/topicsExpertsInitialState\";\r\nimport { ITopicsExpertsResponse } from \"../../contracts/topic/ITopicsExpertResponse\";\r\n\r\n/**\r\n * Article Form state management layer, also named after a Redux Slice.\r\n */\r\nexport const topicsExpertsSlice = createSlice({\r\n name: AppSlices.topicsExperts,\r\n initialState: topicsExpertsInitialState,\r\n reducers: {\r\n setTopicsExperts: (state, action: PayloadAction) => {\r\n state.data = action.payload;\r\n },\r\n resetTopicsExperts: (state) => {\r\n state.data = topicsExpertsInitialState.data;\r\n }\r\n }\r\n});\r\n\r\nexport const {\r\n setTopicsExperts,\r\n resetTopicsExperts\r\n} = topicsExpertsSlice.actions;\r\n\r\nexport default topicsExpertsSlice.reducer;","/**\r\n * Redux Store which define and control the state of the app\r\n */\r\nimport { combineReducers } from \"@reduxjs/toolkit\";\r\n\r\n// App Slices dictionary, which maintains the ref to all reducers\r\nimport { AppSlices } from \"./slices\";\r\n\r\n// App Reducer imports\r\nimport appManagementReducer from \"./reducers/appManagement\";\r\nimport nodesReducer from \"./reducers/nodes\";\r\nimport authReducer from \"./reducers/auth\";\r\nimport articleFormReducer from \"./reducers/articleForm\";\r\nimport appTreeViewReducer from \"./reducers/appTreeView\";\r\nimport commentsReducer from \"./reducers/comments\";\r\nimport spacesReducer from \"./reducers/spaces\";\r\nimport filterReducer from \"./reducers/filter\";\r\nimport followReducer from \"./reducers/follow\";\r\nimport tagsReducer from \"./reducers/tags\";\r\nimport spaceFormReducer from \"./reducers/spaceForm\";\r\nimport eventFormReducer from \"./reducers/eventForm\";\r\nimport eventNotificationTemplatesReducer from \"./reducers/eventNotificationTemplates\";\r\nimport globalBannerFormReducer from \"./reducers/globalBannerForm\";\r\nimport topicsExpertsReducer from \"./reducers/topicsExperts\";\r\n\r\n/**\r\n * Prepares the application reducer kit,\r\n * Combining them together.\r\n */\r\nexport const rootReducer = combineReducers({\r\n\t[AppSlices.auth]: authReducer,\r\n\t[AppSlices.appManagement]: appManagementReducer,\r\n\t[AppSlices.articleForm]: articleFormReducer,\r\n\t[AppSlices.appTreeView]: appTreeViewReducer,\r\n\t[AppSlices.nodes]: nodesReducer,\r\n\t[AppSlices.comments]: commentsReducer,\r\n\t[AppSlices.spaces]: spacesReducer,\r\n\t[AppSlices.filter]: filterReducer,\r\n\t[AppSlices.follow]: followReducer,\r\n\t[AppSlices.tags]: tagsReducer,\r\n\t[AppSlices.spaceForm]: spaceFormReducer,\r\n\t[AppSlices.eventForm]: eventFormReducer,\r\n\t[AppSlices.eventNotificationTemplates]: eventNotificationTemplatesReducer,\r\n\t[AppSlices.globalBannerForm]: globalBannerFormReducer,\r\n\t[AppSlices.topicsExperts]: topicsExpertsReducer,\r\n});\r\n\r\n/**\r\n * Exports the RootState type for better state structuring.\r\n */\r\nexport type RootState = ReturnType;\r\n","/**\r\n * Redux Store which define and control the state of the app\r\n */\r\nimport { configureStore } from \"@reduxjs/toolkit\";\r\n\r\n// App Reducer imports\r\nimport { rootReducer } from \"./rootState\";\r\n\r\nexport default configureStore({\r\n\treducer: rootReducer\r\n});\r\n","import store from \"../../redux/store\";\r\nimport { MessageType } from \"../../enums\";\r\nimport { setMessage, setMessageIsHtml, setMessageOpen, setMessageText } from \"../../redux/reducers/appManagement\";\r\n\r\n/**\r\n * Application Global Messaging service.\r\n * Can show/hide messages based on 4-types:\r\n * * Success\r\n * * Error\r\n * * Warning\r\n * * Info\r\n */\r\nexport class AppMessageService {\r\n\tsuccess(text: string): void {\r\n\t\tstore.dispatch(setMessage({ text, type: MessageType.success, open: true }));\r\n\t}\r\n\r\n\terror(text: string): void {\r\n\t\tstore.dispatch(setMessage({ text, type: MessageType.error, open: true }));\r\n\t}\r\n\r\n\twarning(text: string): void {\r\n\t\tstore.dispatch(setMessage({ text, type: MessageType.warning, open: true }));\r\n\t}\r\n\r\n\tinfo(text: string): void {\r\n\t\tstore.dispatch(setMessage({ text, type: MessageType.info, open: true }));\r\n\t}\r\n\r\n\tclose(): void {\r\n\t\tstore.dispatch(setMessageOpen(false));\r\n\t}\r\n\r\n\thide(): void {\r\n\t\tthis.close();\r\n\t}\r\n\r\n\tsetMessageText(text: string) {\r\n\t\tstore.dispatch(setMessageText(text));\r\n\t}\r\n\r\n\tsetMessageIsHtml(isHtml: boolean) {\r\n\t\tstore.dispatch(setMessageIsHtml(isHtml));\r\n\t}\r\n}\r\n\r\n/**\r\n * App Global Message service singleton instance.\r\n */\r\nexport const MessageServiceInstance: AppMessageService = new AppMessageService();\r\n","//\r\n// Configurations that we retrieve from the server or environment variables\r\n//\r\nimport axios from \"axios\";\r\nimport { IResourceProviderOptions, IAzureAdConfigOptions } from \"./contracts\";\r\n\r\nlet environmentConfigs: IResourceProviderOptions = null;\r\n\r\nconst GetCurrentEnvironmentConfigs = async () => {\r\n\ttry {\r\n\t\tconst response = await axios.get(\r\n\t\t\twindow.location.origin + \"/api/home/resourceProviderOptions\"\r\n\t\t);\r\n\t\tif (response && response.data) {\r\n\t\t\treturn response.data;\r\n\t\t} else {\r\n\t\t\tconsole.error(\"Failed to load initial resource configurations from the server\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error(\"Failed to load initial resource configurations from the server. Details: \" + error);\r\n\t}\r\n};\r\n\r\n// Setup test config so we don't have to start the backend\r\n// Note: DO NOT INCLUDE ANY SECRETS HERE, any information here must be public only\r\n// Note: this section should match the appsettings.development.json section\r\n\r\nconst TestResourceProviderOptions = {\r\n\tazureAD: {\r\n\t\tclientId: \"ae46ed7c-9ba0-4316-a11c-845211830382\",\r\n\t\tauthority: \"https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n\t\tredirectUri: \"/\",\r\n\t\tpostLogoutRedirectUri: \"/\"\r\n\t} as IAzureAdConfigOptions,\r\n\tendpoints: {\r\n\t\tstrikeApiBaseUrl: \"https://strikecommunitytestapi.azurewebsites.net/api/v1\",\r\n\t\tstrikeApiScope: \"https://microsoft.onmicrosoft.com/ae46ed7c-9ba0-4316-a11c-845211830382/user_impersonation\"\r\n\t}\r\n} as IResourceProviderOptions;\r\n\r\nconst GetTestEnvironmentConfigs = async (delay = 500) => {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tsetTimeout(() => {\r\n\t\t\tresolve(TestResourceProviderOptions);\r\n\t\t}, delay);\r\n\t});\r\n};\r\n\r\nexport const GetInitializedAppEnvironmentConfigs = (): IResourceProviderOptions | null => {\r\n\tif (environmentConfigs != null) {\r\n\t\treturn environmentConfigs;\r\n\t}\r\n\treturn null;\r\n};\r\n\r\nexport const InitializeAppEnvironmentConfigs = async (devMode: boolean): Promise => {\r\n\tif (!environmentConfigs) {\r\n\t\tif (devMode) {\r\n\t\t\t// Note: Only use this in local dev mode to quickly testing without loading the config from the backend\r\n\t\t\tenvironmentConfigs = await GetTestEnvironmentConfigs();\r\n\t\t} else {\r\n\t\t\tenvironmentConfigs = await GetCurrentEnvironmentConfigs();\r\n\t\t}\r\n\t}\r\n\treturn environmentConfigs;\r\n};\r\n\r\nexport const GetAppEnvironmentConfigs = () => environmentConfigs;\r\n","import axios from \"axios\";\r\nimport { GetAppEnvironmentConfigs } from \"../appConfigs\";\r\nimport {\r\n\tIEventFormInfo,\r\n\tIStrikeAuthoringApiResponse,\r\n\tIStrikeNodeEntity,\r\n\tIStrikeNodes,\r\n\tIStrikeNodesAnswer,\r\n\tIStrikeNodesComments,\r\n\tIStrikeNodesTopics,\r\n\tIStrikeTopicNode,\r\n\tIUserAcceptAnswer,\r\n\tIUserActivityModel,\r\n\tIUserAuthoriablesModel,\r\n\tQueryNodeModel,\r\n\tQueryTopicModel,\r\n\tUserAcceptAnswerModel,\r\n\tUserActivityModel,\r\n\tUserAuthoriablesModel\r\n} from \"../contracts/models\";\r\nimport { EventAuthAccessModel, EventFormInfoModel } from \"../contracts/models/request/userEventRequest\";\r\nimport { IUserProfile } from \"../contracts/userProfile\";\r\n\r\n/**\r\n * API for handling with Environment Configuration.\r\n * TODO: Inherit from BaseHttpAPI and remove repeated implementation from here.\r\n */\r\nexport default class StrikeCommunityApi {\r\n\tprivate static get BaseUrl() {\r\n\t\tconst environmentConfigs = GetAppEnvironmentConfigs();\r\n\t\tif (environmentConfigs) {\r\n\t\t\treturn environmentConfigs.endpoints.strikeApiBaseUrl;\r\n\t\t}\r\n\t\tconsole.error(\"Cannot retrieve StrikeApiBaseUrl because the environment configs doesn't exist\");\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tprivate static get(url: string): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.get>(url)\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\tprivate static post(url: string, requestBody: TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.post>(url, requestBody)\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\tprivate static put(url: string, requestBody: TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.put>(url, requestBody)\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\tprivate static delete(url: string, requestBody?: undefined | TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.delete(url, { data: requestBody, headers: { \"Content-Type\": \"application/json\" } })\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\tpublic static getUserProfile(userUpn: string): Promise {\r\n\t\treturn this.get(`${StrikeCommunityApi.BaseUrl}/userprofiles?upn=${userUpn}`);\r\n\t}\r\n\r\n\t//\r\n\t// Strike Node\r\n\t//\r\n\r\n\t/**\r\n\t * @param queryNodeModel\r\n\t * Get All node with filter of QueryNodeModel object\r\n\t */\r\n\tpublic static getAllNodes(queryNodeModel: QueryNodeModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node`;\r\n\t\treturn this.post(url, queryNodeModel);\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * Get specific node details\r\n\t */\r\n\tpublic static getNode(nodeId: number): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/GetNode/${nodeId}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * Get all topics of all nodes\r\n\t */\r\n\tpublic static getNodesAllTopics(): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/getNodesAllTopics`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * @param coverImageThumbnailPath\r\n\t * Get Base 64 format Node Cover Image Thumbnail\r\n\t */\r\n\tpublic static getNodeCoverImageThumbnail(coverImageThumbnailPath: string): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/GetCoverImageThumbnail/${coverImageThumbnailPath}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * @param attachmentImagePath\r\n\t * Get Base 64 format Image Attachment in a Node comment\r\n\t */\r\n\tpublic static getNodeAttachmentImageThumbnail(attachmentImageThumbnailPath: string): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/GetAttachmentImageThumbnail/${attachmentImageThumbnailPath}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * @param queryUserModel\r\n\t * create Authoritables User\r\n\t */\r\n\tpublic static createAuthoritablesUser(queryUserModel: UserAuthoriablesModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/userprofiles/CreateAuthoritablesUser`;\r\n\t\treturn this.post(url, queryUserModel);\r\n\t}\r\n\r\n\t/**\r\n\t * @param queryUserActivityModel\r\n\t * log User Activity\r\n\t */\r\n\tpublic static logUserActivityWorkflow(queryUserActivityModel: UserActivityModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/loguseractivity/logUserActivity`;\r\n\t\treturn this.post(url, queryUserActivityModel);\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * Get answers from a specific question node\r\n\t */\r\n\tpublic static getQuestionAllAnswers(nodeId: number): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/getNodeAllAnswers/${nodeId}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param nodeId\r\n\t * Get comments for a specific node id\r\n\t */\r\n\tpublic static getNodeComments(nodeId: number): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/getNodeComments/${nodeId}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * Check user auth to see events\r\n\t */\r\n\tpublic static getUserEventAuth(\r\n\t\tqueryEventAccess: EventAuthAccessModel,\r\n\t\tuserEmail: string,\r\n\t\teventId: string\r\n\t): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/EventRegistration/ReviewAccess/${userEmail}/${eventId}`;\r\n\t\treturn this.post(url, queryEventAccess);\r\n\t}\r\n\r\n\t/**\r\n\t * Send User Event registration info.\r\n\t */\r\n\tpublic static sendEventFormRegistration(queryEventFormInfo: EventFormInfoModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/EventRegistration//LogUserEventRegistrationResponse`;\r\n\t\treturn this.post(url, queryEventFormInfo);\r\n\t}\r\n\r\n\t/**\r\n\t * Check if user already registered to an Event\r\n\t */\r\n\tpublic static checkEventFormRegistration(queryEventFormInfo: EventFormInfoModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/EventRegistration/IsEventRegistered`;\r\n\t\treturn this.post(url, queryEventFormInfo);\r\n\t}\r\n\r\n\t/**\r\n\t * @returns Topic Object to extract the array of spaces which we have in the Strike Community\r\n\t */\r\n\tpublic static queryTopics(queryTopicModel: QueryTopicModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/getTopicsNodesCount`;\r\n\t\treturn this.post(url, queryTopicModel);\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * Get Topics Id and Topics label for a specific node id\r\n\t */\r\n\tpublic static getNodeTopics(nodeId: number): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/node/getNodeTopics/${nodeId}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * @param queryUserAcceptAnswer\r\n\t * Accept Answer event in a Question node.\r\n\t */\r\n\tpublic static logUserAcceptAnswer(queryUserAcceptAnswer: UserAcceptAnswerModel): Promise {\r\n\t\tconst url = `${StrikeCommunityApi.BaseUrl}/loguseractivity/logAcceptAnswer`;\r\n\t\treturn this.post(url, queryUserAcceptAnswer);\r\n\t}\r\n}\r\n","import axios from \"axios\";\r\nimport { GetAppEnvironmentConfigs } from \"../../appConfigs\";\r\nimport { IStrikeAuthoringApiResponse } from \"../../contracts/models\";\r\n\r\n/**\r\n * Abstract Base HTTP API for using with verbs:\r\n * * get\r\n * * post\r\n * * put\r\n * * delete\r\n */\r\nexport default abstract class BaseHttpAPI {\r\n\tprotected endpointPrefix = \"\";\r\n\r\n\tconstructor(apiEndPointPrefix: string) {\r\n\t\tthis.endpointPrefix = apiEndPointPrefix;\r\n\t}\r\n\r\n\t/**\r\n\t * Manage error message\r\n\t * @param error\r\n\t * @returns\r\n\t */\r\n\tprotected constructErrorMessage(error: any): string {\r\n\t\tconst errorObject = error?.response?.data?.errors ?? null;\r\n\t\tconst errorProps = errorObject !== null ? Object.keys(errorObject) : [];\r\n\t\tconst errorMessages = errorObject !== null ? Object.values(errorObject) : [];\r\n\r\n\t\tconst bindErrorInfo = () =>\r\n\t\t\terrorProps.map((prop, index) => {\r\n\t\t\t\treturn `${prop}: ${errorMessages[index]}`;\r\n\t\t\t});\r\n\r\n\t\treturn errorObject !== null ? bindErrorInfo() : error.message;\r\n\t}\r\n\r\n\t/**\r\n\t * Builds base url with env configs\r\n\t */\r\n\tprotected get BaseUrl() {\r\n\t\tconst environmentConfigs = GetAppEnvironmentConfigs();\r\n\t\tif (environmentConfigs) {\r\n\t\t\treturn environmentConfigs.endpoints.strikeApiBaseUrl;\r\n\t\t}\r\n\t\tconsole.error(\"Cannot retrieve StrikeApiBaseUrl because the environment configs doesn't exist\");\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares the URL for the request,\r\n\t * Allowing to use only partials.\r\n\t *\r\n\t * @param partialUrl\r\n\t * @returns\r\n\t */\r\n\tprotected prepareUrl(partialUrl: string): string {\r\n\t\tconst fullUrl =\r\n\t\t\t`${this.BaseUrl.endsWith(\"/\") ? this.BaseUrl : `${this.BaseUrl}/`}` +\r\n\t\t\t`${\r\n\t\t\t\t!this.endpointPrefix\r\n\t\t\t\t\t? \"\"\r\n\t\t\t\t\t: this.endpointPrefix.endsWith(\"/\")\r\n\t\t\t\t\t? this.endpointPrefix\r\n\t\t\t\t\t: `${this.endpointPrefix}/`\r\n\t\t\t}` +\r\n\t\t\t`${partialUrl}`;\r\n\r\n\t\treturn fullUrl;\r\n\t}\r\n\r\n\t/**\r\n\t * Executes a forced re-configuration of Axios interceptors,\r\n\t * clearing the response ones.\r\n\t *\r\n\t * @returns\r\n\t */\r\n\tclearResponseInterceptors(): BaseHttpAPI {\r\n\t\taxios.interceptors.response.clear();\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a file based on its storage URL.\r\n\t * For now, supports responses with Content-Type \"application/octet-stream\".\r\n\t * Needs further implementation for other file transfer protocols.\r\n\t *\r\n\t * @param url The URL of the file being downloaded\r\n\t * @returns A blob with the content of it\r\n\t */\r\n\tprotected getFile(url: string): Promise {\r\n\t\treturn new Promise((resolve: (value: Blob | PromiseLike) => void, reject: (error: any) => void) => {\r\n\t\t\taxios\r\n\t\t\t\t.get>(this.prepareUrl(url), {\r\n\t\t\t\t\tresponseType: \"blob\"\r\n\t\t\t\t})\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tif (response.headers[\"content-type\"] === \"application/octet-stream\") {\r\n\t\t\t\t\t\tif (!(response?.data instanceof Blob)) throw Error(`Invalid file content: ${response?.data}`);\r\n\r\n\t\t\t\t\t\tconst fileBlob = response.data as Blob;\r\n\r\n\t\t\t\t\t\treturn resolve(fileBlob);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error(\"Unable to handle unknown content-type of file response\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Executes http get to a given url\r\n\t * @param url\r\n\t * @param abortController\r\n\t * @returns\r\n\t */\r\n\tprotected get(url: string, abortController?: undefined | AbortController): Promise {\r\n\t\treturn new Promise(\r\n\t\t\t(resolve: (value: TResponse | PromiseLike) => void, reject: (error: any) => void) => {\r\n\t\t\t\taxios\r\n\t\t\t\t\t.get>(\r\n\t\t\t\t\t\tthis.prepareUrl(url),\r\n\t\t\t\t\t\tabortController?.signal\r\n\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\tsignal: abortController?.signal ?? new AbortController().signal\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t: undefined\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.then((response) => {\r\n\t\t\t\t\t\tresolve(!response.data.Data ? (response.data as TResponse) : (response.data.Data as TResponse));\r\n\t\t\t\t\t\t// TODO: Review standard resolve(!response.data.Data);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => reject(error));\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Executes http post to a given url\r\n\t */\r\n\tprotected post(url: string, requestBody: TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.post>(this.prepareUrl(url), requestBody)\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(!response.data.Data ? (response.data as TResponse) : (response.data.Data as TResponse));\r\n\t\t\t\t\t// TODO: Review standard resolve(!response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Executes http put method to a given url\r\n\t */\r\n\tprotected put(url: string, requestBody: TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.put>(this.prepareUrl(url), requestBody)\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(!response.data.Data ? (response.data as TResponse) : (response.data.Data as TResponse));\r\n\t\t\t\t\t// TODO: Review standard resolve(!response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Executes http patch method to a given url\r\n\t */\r\n\tprotected patch(url: string, requestBody?: TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.patch>(this.prepareUrl(url), requestBody)\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(!response.data.Data ? (response.data as TResponse) : (response.data.Data as TResponse));\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Executes http delete to a given url\r\n\t */\r\n\tprotected delete(url: string, data?: undefined | TRequestBody): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\taxios\r\n\t\t\t\t.delete(this.prepareUrl(url), { data, headers: { \"Content-Type\": \"application/json\" } })\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tresolve(!response.data.Data ? response.data : response.data.Data);\r\n\t\t\t\t\t// TODO: Review standard resolve(!response.data.Data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => reject(error));\r\n\t\t});\r\n\t}\r\n}\r\n","import StrikeCommunityApi from \"../api/strikeCommunityApi\";\r\nimport { IFollowRelation, IGlobalBannerItemsResponse, INodeTopContributorsResponse, ISpaceFormResponse } from \"../contracts\";\r\nimport {\r\n\tDeleteActionModel,\r\n\tEventAuthAccessModel,\r\n\tEventFormInfoModel,\r\n\tIEventFormInfo,\r\n\tINodeShareRequest,\r\n\tIStrikeNodeBreadcrumb,\r\n\tIStrikeNodeEntity,\r\n\tIStrikeNodeSticky,\r\n\tIStrikeNodes,\r\n\tIStrikeNodesAnswer,\r\n\tIStrikeNodesComments,\r\n\tIStrikeNodesTopics,\r\n\tIStrikeTopicNode,\r\n\tIUserAcceptAnswer,\r\n\tIUserActivityModel,\r\n\tIUserAuthoriablesModel,\r\n\tQueryNodeModel,\r\n\tQueryTopicModel,\r\n\tStickyNodeRequest,\r\n\tTABLE_PAGE_SIZE,\r\n\tUpdateNodeStatusActionModel,\r\n\tUserAcceptAnswerModel,\r\n\tUserActivityModel,\r\n\tUserAuthoriablesModel\r\n} from \"../contracts/models\";\r\nimport { FilterActionTypes, NodeType, UserDashboardsFiltersType } from \"../contracts/models/strikeEnums\";\r\nimport { FollowType } from \"../enums\";\r\nimport { base64Encode } from \"../lib/strikeLibrary\";\r\nimport { setIsOpenShareContent, setIsSubmittingShareContent } from \"../redux/reducers/nodes\";\r\nimport BaseHttpAPI from \"./base/BaseHttpAPI\";\r\nimport { ServiceHub } from \"./base/ServiceHub\";\r\nimport store from \"../redux/store\";\r\nimport { ISecurityGroupMembersResponse } from \"../contracts/slices/node/askToExperts\";\r\nimport { AskToExpertRequestModel } from \"../contracts/models/request/askToExpertRequest\";\r\nimport { ITopicsExpertsResponse } from \"../contracts/topic/ITopicsExpertResponse\";\r\n\r\nexport class NodeAPIService extends BaseHttpAPI {\r\n\tprivate static _instance: NodeAPIService;\r\n\r\n\tprivate constructor() {\r\n\t\tsuper(\"node\");\r\n\t}\r\n\r\n\tstatic get Instance() {\r\n\t\treturn this._instance || (this._instance = new this());\r\n\t}\r\n\r\n\tasync getById(id: number): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getNode(id);\r\n\t\t// returning the product returned by the API\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param queryNodeModel\r\n\t * @returns response\r\n\t */\r\n\tasync getAll(queryNodeModel: QueryNodeModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getAllNodes(queryNodeModel);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @returns response\r\n\t */\r\n\tasync getNodesAllTopics(): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getNodesAllTopics();\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param coverImageThumbnailPath\r\n\t * Get Base 64 format Node Cover Image Thumbnail\r\n\t * @returns response\r\n\t */\r\n\tasync getNodeCoverImageThumbnail(coverImageThumbnailPath: string): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getNodeCoverImageThumbnail(coverImageThumbnailPath);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param attachmentImageThumbnailPath\r\n\t * Get Base 64 format Node Comment Image Attachment\r\n\t * @returns response\r\n\t */\r\n\tasync getNodeAttachmentImageThumbnail(attachmentImageThumbnailPath: string): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getNodeAttachmentImageThumbnail(attachmentImageThumbnailPath);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param queryUserModel\r\n\t * create Auth Users\r\n\t */\r\n\tasync createAuthoriablesUser(queryUserModel: UserAuthoriablesModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.createAuthoritablesUser(queryUserModel);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param queryActivityModel\r\n\t * user activity workflow in a node\r\n\t */\r\n\tasync logUserActivity(queryActivityModel: UserActivityModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.logUserActivityWorkflow(queryActivityModel);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * get answers from a specific question node\r\n\t */\r\n\tasync getQuestionAllAnswers(id: number): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getQuestionAllAnswers(id);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * Get node comments for specific node id.\r\n\t * @param id\r\n\t * @returns\r\n\t */\r\n\tasync getNodeComments(id: number): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getNodeComments(id);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param\r\n\t * get user event authorization based on token\r\n\t */\r\n\tasync getUserEventAuth(\r\n\t\tqueryEventAuthAccess: EventAuthAccessModel,\r\n\t\tuserEmail: string,\r\n\t\teventId: string\r\n\t): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getUserEventAuth(queryEventAuthAccess, userEmail, eventId);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param queryEventFormInfo\r\n\t * @returns boolean\r\n\t */\r\n\tasync sendEventFormRegistration(queryEventFormInfo: EventFormInfoModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.sendEventFormRegistration(queryEventFormInfo);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * check if user event already registered to an event\r\n\t * @param queryEventFormInfo\r\n\t * @returns boolean\r\n\t */\r\n\tasync checkEventFormRegistration(queryEventFormInfo: EventFormInfoModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.checkEventFormRegistration(queryEventFormInfo);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @returns Topic Object to extract the array of spaces which we have in the Strike Community\r\n\t */\r\n\tasync queryTopics(queryTopicModel: QueryTopicModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.queryTopics(queryTopicModel);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * Get node topics for specific node id.\r\n\t * @param id\r\n\t * @returns\r\n\t */\r\n\tasync getNodeTopics(id: number): Promise {\r\n\t\tconst response = await StrikeCommunityApi.getNodeTopics(id);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * @param queryAcceptAnswer\r\n\t * accept answer in a question node.\r\n\t */\r\n\tasync logUserAcceptAnswer(queryAcceptAnswer: UserAcceptAnswerModel): Promise {\r\n\t\tconst response = await StrikeCommunityApi.logUserAcceptAnswer(queryAcceptAnswer);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * Queries for the followers of a given Node Type by the Node ID,\r\n\t * be it Topic, Space, or Node itself.\r\n\t *\r\n\t * @param nodeId The node ID to query followers for.\r\n\t * @param followType The Node type itself\r\n\t * @returns Collection of FollowRelations\r\n\t */\r\n\tasync getFollowers(\r\n\t\tnodeId: number | string,\r\n\t\tfollowType: FollowType,\r\n\t\tac: AbortController\r\n\t): Promise {\r\n\t\tconst svc = ServiceHub.followAPI.start();\r\n\r\n\t\treturn this.get(`followers/${followType}/${nodeId}`, ac)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tsvc.setFollowers(result);\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((ex) => {\r\n\t\t\t\t// TODO: Handle the load error scenario\r\n\t\t\t\treturn [];\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsvc.setQueried(true);\r\n\t\t\t\tsvc.setQuerying(false);\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Follows/unfollows a given Node ID,\r\n\t * based on the type of the Node itself\r\n\t * and whether the action is Follow or not.\r\n\t *\r\n\t * @param nodeId The node to be followed\r\n\t * @param followType The Type of the Node being followed (Topic, Space, Node)\r\n\t * @param isFollow Whether this is a follow or unfollow\r\n\t */\r\n\tasync follow(nodeId: number | string, followType: FollowType, isFollow: boolean): Promise {\r\n\t\tconst userUpn = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\t\tconst userName = await ServiceHub.userProfileAPI.start().GetCurrentUserDisplayName();\r\n\r\n\t\treturn this.post(`follow/${nodeId}`, {\r\n\t\t\tactionType: followType,\r\n\t\t\tuserUpn,\r\n\t\t\tisFollow\r\n\t\t}).then(async (result) => {\r\n\t\t\tif (isFollow) {\r\n\t\t\t\t// TODO: Dispatch thunked changes\r\n\t\t\t\tServiceHub.followAPI.start().addFollower({\r\n\t\t\t\t\tfollowType,\r\n\t\t\t\t\tNodeId: parseInt(nodeId.toString()),\r\n\t\t\t\t\tUserUPN: userUpn,\r\n\t\t\t\t\tUserName: userName\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// TODO: Dispatch thunked changes\r\n\t\t\t\tServiceHub.followAPI.start().removeFollower(userUpn);\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tasync favourite(nodeId: number | string, isFavourite: boolean): Promise {\r\n\t\tconst userUpn = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\r\n\t\treturn this.post(`favourite/`, {\r\n\t\t\tnodeId: nodeId,\r\n\t\t\tisFavourite: isFavourite,\r\n\t\t\tfavouritedBy: userUpn,\r\n\t\t}).then(async (result) => {\r\n\t\t\treturn result;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Delete Node Action\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * @returns\r\n\t */\r\n\tasync deleteNode(nodeId: string, actionType: DeleteActionModel): Promise {\r\n\t\tconst response = await ServiceHub.nodeAdminAPI.start().deleteNode(nodeId, actionType);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t * Update Node Status\r\n\t * Make Private/ Public\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * @returns\r\n\t */\r\n\tasync UpdateNodeStatus(actionType: UpdateNodeStatusActionModel): Promise {\r\n\t\tconst response = await ServiceHub.nodeAdminAPI.start().UpdateNodeStatus(actionType);\r\n\t\treturn response;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param actionType\r\n\t * @param userUpn\r\n\t * @returns\r\n\t */\r\n\tgetQueryDeleteNodeObject(actionType: string, userUpn: string, nodeId: string): DeleteActionModel {\r\n\t\treturn {\r\n\t\t\tactionType: actionType,\r\n\t\t\tuserUpn: userUpn,\r\n\t\t\tnodeId: nodeId\r\n\t\t} as DeleteActionModel;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param actionType\r\n\t * @param userUpn\r\n\t * @param nodeId\r\n\t * @returns\r\n\t */\r\n\tgetQueryUpdateStatusNodeObject(actionType: string, userUpn: string, nodeId: string): UpdateNodeStatusActionModel {\r\n\t\treturn {\r\n\t\t\tactionType: actionType,\r\n\t\t\tuserUpn: userUpn,\r\n\t\t\tnodeId: nodeId\r\n\t\t} as UpdateNodeStatusActionModel;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param actionType\r\n\t * @param ipAddress\r\n\t * @param nodeId\r\n\t * @param emailId\r\n\t * @returns\r\n\t */\r\n\tgetQueryPublishNodeObject(\r\n\t\tactionType: string,\r\n\t\tipAddress: string,\r\n\t\tnodeId: string,\r\n\t\temailID: string\r\n\t): UserActivityModel {\r\n\t\treturn {\r\n\t\t\tactionType: actionType,\r\n\t\t\tipAddress: ipAddress,\r\n\t\t\tnodeId: nodeId,\r\n\t\t\temailID: emailID\r\n\t\t} as UserActivityModel;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param nodeId\r\n\t * @param spaceId\r\n\t * @returns\r\n\t */\r\n\tgetQueryStickNodeObject(nodeId: string, spaceId?: string): StickyNodeRequest {\r\n\t\treturn {\r\n\t\t\tnodeId: nodeId,\r\n\t\t\tspaceId: spaceId\r\n\t\t} as StickyNodeRequest;\r\n\t}\r\n\t/**\r\n\t *\r\n\t * @param node_Id\r\n\t * @param queryPageIndex\r\n\t * @param querySearchTitle\r\n\t * @param querySearchTopics\r\n\t * @param querySearchUrlTopics\r\n\t * @param queryNodeType\r\n\t * @returns\r\n\t */\r\n\tgetQueryNodeObject(\r\n\t\tnode_Id: number,\r\n\t\tqueryPageIndex: number,\r\n\t\tquerySearchTitle?: string | undefined,\r\n\t\tquerySearchTopics?: string | undefined,\r\n\t\tquerySearchUrlTopics?: string | undefined,\r\n\t\tqueryNodeType?: NodeType | undefined,\r\n\t\tquerySortType?: FilterActionTypes | undefined,\r\n\t\tqueryFilterType?: UserDashboardsFiltersType | undefined,\r\n\t): QueryNodeModel {\r\n\t\tconst isTopics = location?.pathname?.includes(\"topics\") ?? false;\r\n\t\tconst resolvedNodeId = isTopics || node_Id === 0 || node_Id === null || isNaN(node_Id) ? 0 : node_Id;\r\n\t\tconst resolvedTopicId = !isTopics || node_Id === 0 ? 0 : node_Id;\r\n\r\n\t\treturn {\r\n\t\t\tNodeId: resolvedNodeId,\r\n\t\t\tTopicId: resolvedTopicId,\r\n\t\t\tPageIndex: queryPageIndex,\r\n\t\t\tPageLimit: TABLE_PAGE_SIZE,\r\n\t\t\tSearchTitle: querySearchTitle,\r\n\t\t\tSearchTopics: querySearchTopics,\r\n\t\t\tSearchUrlTopics: querySearchUrlTopics,\r\n\t\t\tType: queryNodeType,\r\n\t\t\tSortBy: querySortType,\r\n\t\t\tFilterBy: queryFilterType\r\n\t\t} as QueryNodeModel;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param node_Id\r\n\t * @param queryPageIndex\r\n\t * @param pageLimit\r\n\t * @returns\r\n\t */\r\n\tgetQueryFavoritesNodeObject(\r\n\t\tnode_Id: number,\r\n\t\tpageLimit: number,\r\n\t\tqueryPageIndex: number,\r\n\r\n\t): QueryNodeModel {\r\n\t\tconst isTopics = location?.pathname?.includes(\"topics\") ?? false;\r\n\t\tconst resolvedNodeId = isTopics || node_Id === 0 || node_Id === null || isNaN(node_Id) ? 0 : node_Id;\r\n\r\n\r\n\t\treturn {\r\n\t\t\tNodeId: resolvedNodeId,\r\n\t\t\tPageIndex: queryPageIndex,\r\n\t\t\tPageLimit: pageLimit,\r\n\t\t} as QueryNodeModel;\r\n\t}\r\n\r\n\t/**\r\n\t * Prepares the body img tags of a given Node.\r\n\t * Should receive a callback for further processing.\r\n\t *\r\n\t * @param htmlData The HTML data to pre-process\r\n\t * @param onComplete The completion callback, receives the prepared HTML content.\r\n\t * @returns String\r\n\t */\r\n\tprepareBodyImages(htmlData: string, onComplete: (processedHtml: string) => void): void {\r\n\t\tconst parser = new DOMParser();\r\n\t\tconst commentHtmlText = parser.parseFromString(htmlData, \"text/html\");\r\n\t\tconst imgElements = commentHtmlText.getElementsByTagName(\"img\");\r\n\t\tif (imgElements) {\r\n\t\t\tfor (let i = 0; i < imgElements.length; i++) {\r\n\t\t\t\tconst imageSource = imgElements[i].getAttribute(\"src\");\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\timageSource &&\r\n\t\t\t\t\t!imageSource.includes(\"data:application/octet-stream;base64\") &&\r\n\t\t\t\t\t!imageSource.includes(\"data:image/\")\r\n\t\t\t\t) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Removing default storage folder paths\r\n\t\t\t\t\t * and getting only filename.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tServiceHub.appFileAPI\r\n\t\t\t\t\t\t.start()\r\n\t\t\t\t\t\t.getAttachmentFileByURL(imageSource.replace(\"storage/attachments/\", \"\"))\r\n\t\t\t\t\t\t.then((data: void | Blob) => {\r\n\t\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t\tconst reader = new FileReader();\r\n\t\t\t\t\t\t\t\treader.readAsDataURL(data);\r\n\r\n\t\t\t\t\t\t\t\treader.onloadend = function () {\r\n\t\t\t\t\t\t\t\t\tconst base64data = reader.result;\r\n\t\t\t\t\t\t\t\t\timgElements[i].setAttribute(\"src\", base64data.toString());\r\n\t\t\t\t\t\t\t\t\tif (typeof onComplete === \"function\")\r\n\t\t\t\t\t\t\t\t\t\tonComplete(commentHtmlText.documentElement.outerHTML);\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}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get Stycky Nodes for website or space\r\n\t * @param spaceId?\r\n\t * @returns list of sticky nodes\r\n\t */\r\n\tasync getStickyNodes(spaceId?: string): Promise {\r\n\t\tlet url = `sticky`;\r\n\r\n\t\tif (spaceId !== undefined && spaceId !== null) {\r\n\t\t\turl += `/${spaceId}`;\r\n\t\t}\r\n\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the Breadcrum Route for articles and questions\r\n\t * * @param nodeId\r\n\t * @returns list of nodes which constitute the route\r\n\t */\r\n\tasync getBreadcrumbRoute(nodeId: string): Promise {\r\n\t\tconst url = `breadcrumbs/${nodeId}`;\r\n\t\treturn this.get(url);\r\n\t}\r\n\r\n\t/**\r\n\t * Redux: Sets the current state of the Share Content panel,\r\n\t * whereas true is Visible.\r\n\t *\r\n\t * @param open Whether it is open or closed.\r\n\t */\r\n\tsetShareContentOpen(open: boolean): void {\r\n\t\tstore.dispatch(setIsOpenShareContent(open));\r\n\t}\r\n\r\n\t/**\r\n\t * Redux: Sets the current Submitting state of the Share Content panel,\r\n\t * whereas true is to enable button loaders.\r\n\t *\r\n\t * @param open Whether it is submitting or not.\r\n\t */\r\n\tsetShareContentSubmitting(submitting: boolean): void {\r\n\t\tstore.dispatch(setIsSubmittingShareContent(submitting));\r\n\t}\r\n\r\n\t/**\r\n\t * Shares Node content using a centralized approach,\r\n\t * meanwhile all params are required. Use simplified methods\r\n\t * for easier calls.\r\n\t *\r\n\t * @param nodeType The Node type being shared.\r\n\t * @param recipientUserUPN The Principal Name of a user receiving the shared Node.\r\n\t * @param nodeId Node shared Id.\r\n\t * @param actionType The action type for a Share Operation.\r\n\t * @returns The result flag for whether the operation succeeded or failed.\r\n\t */\r\n\tasync shareContent(\r\n\t\tnodeId: number,\r\n\t\trecipientUserUpn: string,\r\n\t\trecipientUserAlias: string,\r\n\t\trecipientUserRealName: string\r\n\t): Promise {\r\n\t\tconst url: string = \"share\";\r\n\t\tconst base64EncodedStrings = {\r\n\t\t\trecipientUserUpn: base64Encode(recipientUserUpn),\r\n\t\t\trecipientUserAlias: base64Encode(recipientUserAlias),\r\n\t\t\trecipientUserRealName: base64Encode(recipientUserRealName)\r\n\t\t};\r\n\r\n\t\treturn this.post(url, {\r\n\t\t\tnodeId,\r\n\t\t\t...base64EncodedStrings\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get Space data details\r\n\t * @param spaceId\r\n\t * @returns\r\n\t */\r\n\tasync getSpace(spaceId: string): Promise {\r\n\t\treturn await this.get(`getSpace/${spaceId}`)\r\n\t\t\t.then((result) => result as ISpaceFormResponse)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Security Group Members\r\n\t * @param nodeId\r\n\t * @returns\r\n\t */\r\n\tasync getSecurityGroupMembers(nodeId: string): Promise {\r\n\t\treturn await this.get(`/NodeSecurityGroupMembers/${nodeId}`)\r\n\t\t\t.then((result) => result as ISecurityGroupMembersResponse)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\tsenderUserUpn: string;\r\n\tnodeId: number;\r\n\tsendCopy: boolean;\r\n\trecipientUserUpn: [];\r\n\tcustomMessage?: string;\r\n\r\n\t/**\r\n\t * \r\n\t * @param senderUserUpn \r\n\t * @param nodeId \r\n\t * @param sendCopy \r\n\t * @param recipientUserUpn \r\n\t * @param customMessage \r\n\t * @returns \r\n\t */\r\n\tgetQueryAskToExpertObject(senderUserUpn: string, nodeId: number, sendCopy: boolean, recipientUserUpn:any, customMessage?: string): AskToExpertRequestModel {\r\n\t\treturn {\r\n\t\t\tsenderUserUpn: senderUserUpn,\r\n\t\t\tnodeId: nodeId,\r\n\t\t\tsendCopy: sendCopy,\r\n\t\t\trecipientUserUpn: recipientUserUpn,\r\n\t\t\tcustomMessage: customMessage\r\n\t\t} as AskToExpertRequestModel;\r\n\t}\r\n\r\n\t/**\r\n\t * Send Ask To Experts request\r\n\t * @param nodeId\r\n\t * @returns\r\n\t */\r\n\tasync askToExperts(askToExpertRequest: AskToExpertRequestModel): Promise {\r\n\t\treturn await this.post(`asktoexperts`, askToExpertRequest )\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Node Top Contributors List\r\n\t * @param nodeId\r\n\t * @returns\r\n\t */\r\n\tasync getNodeTopContributors(nodeId: string): Promise {\r\n\t\treturn await this.get(`contributors/${nodeId}`)\r\n\t\t\t.then((result) => result as INodeTopContributorsResponse)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Current Global Banner\r\n\t * @param nodeId\r\n\t * @returns\r\n\t */\r\n\tasync getCurrentGlobalBanner(): Promise {\r\n\t\treturn await this.get(`getDashboardBannerImage/`)\r\n\t\t\t.then((result) => result as IGlobalBannerItemsResponse)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Current Global Banner\r\n\t * @param nodeId\r\n\t * @returns\r\n\t */\r\n\tasync getTopicsExperts(topicId: string): Promise {\r\n\t\treturn await this.get(`topicexperts/${topicId}`)\r\n\t\t\t.then((result) => result as ITopicsExpertsResponse[])\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n}\r\n\r\nexport const NodeAPIServiceInstance = NodeAPIService.Instance;\r\n","// General Id that is not available\r\nexport const ID_NOT_AVAILABLE = -1;\r\n\r\n// Number of entries per page on the strike review table\r\nexport const TABLE_PAGE_SIZE = 15;\r\n\r\n// Initial page number for the strike review table\r\nexport const TABLE_INITIAL_PAGE_NUMBER = 1;\r\n\r\n// Delay timer for input in ms\r\nexport const INPUT_DELAY = 1000;\r\n\r\nexport const MAXIMUM_PAGE_COUNT = 10;\r\n\r\n// Tiles View\r\nexport const TILES_PER_PAGE = 30;\r\n","import { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport moment from \"moment-timezone\";\r\nimport {\r\n\tIEventUserToCheckin,\r\n\tUserAcceptAnswerModel,\r\n\tUserActivityModel,\r\n\tUserAuthoriablesModel\r\n} from \"../contracts/models\";\r\nimport { NodeAPIServiceInstance } from \"../service/NodeAPI\";\r\nimport store from \"../redux/store\";\r\nimport { setAuthoriableId } from \"../redux/reducers/auth\";\r\nimport { EventAuthAccessModel, EventFormInfoModel } from \"../contracts/models/request/userEventRequest\";\r\nimport { setAllNodeComments, setNodeLikeByUsers, setNodeLikeCount } from \"../redux/reducers/comments\";\r\nimport { IEventRegistrationInfoRequestModel, IEventUserRegistrationRequest } from \"../contracts/event/eventForm\";\r\nimport html2pdf from 'html2pdf.js';\r\n\r\nexport const showToast = (message: string, type: string) => {\r\n\tif (type == \"success\") {\r\n\t\ttoast.success(message, {\r\n\t\t\tposition: \"top-right\",\r\n\t\t\tautoClose: 5000,\r\n\t\t\thideProgressBar: false,\r\n\t\t\tcloseOnClick: true,\r\n\t\t\tpauseOnHover: true,\r\n\t\t\tdraggable: false,\r\n\t\t\tprogress: undefined\r\n\t\t});\r\n\t}\r\n\tif (type == \"error\") {\r\n\t\ttoast.error(message, {\r\n\t\t\tposition: \"top-right\",\r\n\t\t\tautoClose: 5000,\r\n\t\t\thideProgressBar: false,\r\n\t\t\tcloseOnClick: true,\r\n\t\t\tpauseOnHover: true,\r\n\t\t\tdraggable: false,\r\n\t\t\tprogress: undefined\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport function propertyOf(name: keyof TObj) {\r\n\treturn name;\r\n}\r\n\r\n// export const getFormattedDate = (date) => {\r\n// var year = date.getFullYear();\r\n\r\n// var month = (1 + date.getMonth()).toString();\r\n// month = month.length > 1 ? month : '0' + month;\r\n\r\n// var day = date.getDate().toString();\r\n// day = day.length > 1 ? day : '0' + day;\r\n\r\n// return month + '/' + day + '/' + year;\r\n// }\r\n\r\nexport const validateEmail = (email) => {\r\n\treturn String(email)\r\n\t\t.toLowerCase()\r\n\t\t.match(\r\n\t\t\t/^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|.(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n\t\t);\r\n};\r\n\r\n/**\r\n * Utility to convert date to local time\r\n * @param inputDate\r\n * @returns\r\n */\r\nexport const utcToLocalDateTimeString = (inputDate: Date | string): string => {\r\n\t//return moment(inputDate).tz(\"America/Los_Angeles\").format('MM/DD/YYYY h:mm a');\r\n\t//return moment(inputDate).local().format('MM/DD/YYYY h:mm a');\r\n\treturn moment.utc(inputDate).local().format(\"MM/DD/YYYY h:mm A\");\r\n};\r\n\r\n/**\r\n * Utility to convert date to local time without hours information\r\n * @param inputDate\r\n * @returns\r\n */\r\nexport const utcToLocalDateString = (inputDate: Date | string): string => {\r\n\treturn moment.utc(inputDate).local().format(\"MM/DD/YYYY\");\r\n};\r\n\r\nexport const formatURLQueryString = (value: string): string => {\r\n\tif (value === value.toLowerCase()) {\r\n\t\tvalue = value.charAt(0).toUpperCase() + value.slice(1);\r\n\t}\r\n\treturn value.replace(/([A-Z])/g, \" $1\").trim();\r\n};\r\n\r\nexport const createSpaceInValue = (value: string): string => {\r\n\treturn value.replace(/([A-Z])/g, \" $1\").trim();\r\n};\r\n\r\n/**\r\n * Validate url pattern and start with https\r\n * @param url \r\n * @returns \r\n */\r\nexport const validateUrl = (url: string): boolean => {\r\n\tconst urlPattern = /^(https:\\/\\/)([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}(\\/[a-zA-Z0-9-._~:\\/?#[\\]@!$&'()*+,;=]*)?$/;\r\n\treturn urlPattern.test(url);\r\n };\r\n\r\n// export const utcToLocalDateTime = (inputDate: Date): Date => {\r\n// //return moment(inputDate).tz(\"America/Los_Angeles\").format('MM/DD/YYYY h:mm a');\r\n// //return moment(inputDate).local().format('MM/DD/YYYY h:mm a');\r\n// return moment.utc(inputDate).local().format();\r\n// }\r\n\r\nexport const geDateHoursDifference = () => {\r\n\t// var StartDateTime = moment(eventModelTemp.StartDateTime),\r\n\t// EndDateTime = moment(eventModelTemp.EndDateTime),\r\n\t// totalHours = EndDateTime.diff(StartDateTime, 'hours', true)\r\n};\r\n\r\nexport const isValidUrl = (url): boolean => {\r\n\ttry {\r\n\t\tnew URL(url);\r\n\t\treturn true;\r\n\t} catch (err) {\r\n\t\treturn false;\r\n\t}\r\n};\r\n\r\nexport const getDates = (startDate: Date, endDate: Date): any[] => {\r\n\tconst dates = [];\r\n\tlet currentDate = startDate;\r\n\tconst addDays = function (days) {\r\n\t\tconst date = new Date();\r\n\t\tdate.setDate(date.getDate() + days);\r\n\t\treturn date;\r\n\t};\r\n\twhile (currentDate <= endDate) {\r\n\t\tdates.push(currentDate);\r\n\t\tcurrentDate = addDays.call(currentDate, 1);\r\n\t}\r\n\treturn dates;\r\n};\r\n\r\n/**\r\n * Utility to render PDF fil using engine library accpting filenam params\r\n * @param nodeType \r\n * @param nodeId \r\n */\r\nexport function renderNodePdf(nodeType: string, nodeId: string) {\r\n\tconst element = document.getElementById('export-to-pdf-template');\r\n\r\n\t\tif(element) {\r\n\t\t\telement.style.display = 'block';\r\n\t\t\tconst options = {\r\n\t\t\t\tmargin: 0,\r\n\t\t\t\tfilename: 'Strike' + nodeType + '_' + nodeId + '.pdf',\r\n\t\t\t\thtml2canvas: { scale : 2},\r\n\t\t\t\tjsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },\r\n\t\t\t};\r\n\r\n\t\t\thtml2pdf()\r\n\t\t\t.set(options)\r\n\t\t\t.from(element)\r\n\t\t\t.save()\r\n\t\t\t.then(() => {\r\n\t\t\t\telement.style.display = 'none';\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('Error rendering PDF:', error);\r\n\t\t\t});\r\n\t\t}\r\n}\r\n\r\nexport const mapNodeActions = (userAction: string): string => {\r\n\tswitch (userAction) {\r\n\t\tcase \"accept\":\r\n\t\t\treturn \"accepted\";\r\n\t\tcase \"action\":\r\n\t\tcase \"addNodeAlias\":\r\n\t\tcase \"add-to-group\":\r\n\t\tcase \"cancelVoteDown\":\r\n\t\tcase \"cancelVoteUp\":\r\n\t\tcase \"close\":\r\n\t\t\treturn \"action\";\r\n\t\tcase \"answer\":\r\n\t\t\treturn \"answered\";\r\n\t\tcase \"answer2comment\":\r\n\t\t\treturn \"answeredtocomment\";\r\n\t\tcase \"ask\":\r\n\t\t\treturn \"asked\";\r\n\t\tcase \"asktoanswer\":\r\n\t\t\treturn \"asktoanswer\";\r\n\t\tcase \"bonusrep\":\r\n\t\t\treturn \"bonusrep\";\r\n\t\tcase \"bulk\":\r\n\t\t\treturn \"bulk\";\r\n\t\tcase \"comment\":\r\n\t\tcase \"comment2answer\":\r\n\t\t\treturn \"commented\";\r\n\t\tcase \"deactivate\":\r\n\t\t\treturn \"deactivate\";\r\n\t\tcase \"delete\":\r\n\t\t\treturn \"deleted\";\r\n\t\tcase \"delete-space\":\r\n\t\t\treturn \"delete-space\";\r\n\t\tcase \"edit-space\":\r\n\t\t\treturn \"edit-space\";\r\n\t\tcase \"edit-topic-desc\":\r\n\t\t\treturn \"edit-topic-desc\";\r\n\t\tcase \"edit-topic-name\":\r\n\t\t\treturn \"edit-topic-name\";\r\n\t\tcase \"expertanswer\":\r\n\t\t\treturn \"expertanswer\";\r\n\t\tcase \"favorite\":\r\n\t\t\treturn \"favorite\";\r\n\t\tcase \"flag\":\r\n\t\t\treturn \"flag\";\r\n\t\tcase \"follow\":\r\n\t\t\treturn \"followed\";\r\n\t\tcase \"ghostrevise\":\r\n\t\t\treturn \"ghostrevise\";\r\n\t\tcase \"giveRep\":\r\n\t\t\treturn \"giveRep\";\r\n\t\tcase \"lock\":\r\n\t\t\treturn \"lock\";\r\n\t\tcase \"MakeSiteStickyAction\":\r\n\t\t\treturn \"MakeSiteStickyAction\";\r\n\t\tcase \"MakeStickyAction\":\r\n\t\t\treturn \"MakeStickyAction\";\r\n\t\tcase \"moveToSpace\":\r\n\t\t\treturn \"moveToSpace\";\r\n\t\tcase \"newkbentry\":\r\n\t\t\treturn \"newkbentry\";\r\n\t\tcase \"newtopic\":\r\n\t\t\treturn \"newtopic\";\r\n\t\tcase \"nodeview\":\r\n\t\t\treturn \"nodeview\";\r\n\t\tcase \"organizational\":\r\n\t\t\treturn \"organizational\";\r\n\t\tcase \"outdated\":\r\n\t\t\treturn \"outdated\";\r\n\t\tcase \"publish\":\r\n\t\t\treturn \"published\";\r\n\t\tcase \"redirectQuestion\":\r\n\t\t\treturn \"redirectQuestion\";\r\n\t\tcase \"redirectQuestionTo\":\r\n\t\t\treturn \"redirectQuestionTo\";\r\n\t\tcase \"reject\":\r\n\t\t\treturn \"reject\";\r\n\t\tcase \"removeFromGroup\":\r\n\t\tcase \"reopen\":\r\n\t\tcase \"retag\":\r\n\t\tcase \"revise\":\r\n\t\tcase \"rollback\":\r\n\t\t\treturn \"edited\";\r\n\t\tcase \"sendToMod\":\r\n\t\t\treturn \"sendToMod\";\r\n\t\tcase \"smart-space\":\r\n\t\t\treturn \"smart-space\";\r\n\t\tcase \"space\":\r\n\t\t\treturn \"space\";\r\n\t\tcase \"suspend\":\r\n\t\t\treturn \"suspend\";\r\n\t\tcase \"switch-privacy\":\r\n\t\t\treturn \"switch-privacy\";\r\n\t\tcase \"topicIcon\":\r\n\t\t\treturn \"topicIcon\";\r\n\t\tcase \"topicUsed\":\r\n\t\t\treturn \"topicUsed\";\r\n\t\tcase \"unaccept\":\r\n\t\t\treturn \"unaccept\";\r\n\t\tcase \"undeactivate\":\r\n\t\t\treturn \"undeactivate\";\r\n\t\tcase \"undelete\":\r\n\t\t\treturn \"undelete\";\r\n\t\tcase \"undoMakeSiteSticky\":\r\n\t\t\treturn \"undoMakeSiteSticky\";\r\n\t\tcase \"undoMakeSticky\":\r\n\t\t\treturn \"undoMakeSticky\";\r\n\t\tcase \"unfavorite\":\r\n\t\t\treturn \"unfavorite\";\r\n\t\tcase \"unflagIndex\":\r\n\t\t\treturn \"unflagIndex\";\r\n\t\tcase \"unfollow\":\r\n\t\t\treturn \"unfollow\";\r\n\t\tcase \"unsuspend\":\r\n\t\t\treturn \"unsuspend\";\r\n\t\tcase \"unwikify\":\r\n\t\t\treturn \"unwikify\";\r\n\t\tcase \"useredit\":\r\n\t\t\treturn \"useredit\";\r\n\t\tcase \"userjoins\":\r\n\t\t\treturn \"userjoins\";\r\n\t\tcase \"userjoinsite\":\r\n\t\t\treturn \"userjoinsite\";\r\n\t\tcase \"votedown\":\r\n\t\t\treturn \"unliked\";\r\n\t\tcase \"voteup\":\r\n\t\t\treturn \"liked\";\r\n\t\tcase \"WikifyAction\":\r\n\t\t\treturn \"Wikify\";\r\n\t\tdefault:\r\n\t\t\treturn userAction;\r\n\t}\r\n};\r\n\r\n/**\r\n * query Model to pass userActivity object\r\n */\r\nexport function getQueryUserActivityObject(\r\n\tactionType: string,\r\n\tipAddress: string,\r\n\tnodeNumber: string,\r\n\temailID: string\r\n): UserActivityModel {\r\n\treturn {\r\n\t\tactionType: actionType,\r\n\t\tipAddress: ipAddress,\r\n\t\tnodeId: nodeNumber,\r\n\t\temailID: emailID\r\n\t} as UserActivityModel;\r\n}\r\n\r\n/**\r\n * query Model to Accept Answer object\r\n */\r\nexport function getQueryUserAcceptAnswerObject(\r\n\tactionType: string,\r\n\tipAddress: string,\r\n\tnodeNumber: string,\r\n\temailID: string,\r\n\trootNodeID: string,\r\n\tisAnswerAccepted: boolean\r\n): UserAcceptAnswerModel {\r\n\treturn {\r\n\t\tactionType: actionType,\r\n\t\tipAddress: ipAddress,\r\n\t\tnodeId: nodeNumber,\r\n\t\temailID: emailID,\r\n\t\trootNodeID: rootNodeID,\r\n\t\tisAnswerAccepted: isAnswerAccepted\r\n\t} as UserAcceptAnswerModel;\r\n}\r\n\r\n/**\r\n * method to call api and log user activity workflow\r\n */\r\nexport const activityUser = async (userActivityModel: UserActivityModel) => {\r\n\tawait NodeAPIServiceInstance.logUserActivity(userActivityModel);\r\n};\r\n\r\n/**\r\n * query Model to createAuthUser\r\n */\r\nexport function getQueryCreateAuthUser(id: string, name: string, email: string): UserAuthoriablesModel {\r\n\treturn {\r\n\t\tid: id,\r\n\t\tname: name,\r\n\t\temail: email\r\n\t} as UserAuthoriablesModel;\r\n}\r\n\r\n/**\r\n * method to create Auth user\r\n * @returns id\r\n */\r\nexport const createAuthoriableUser = async (createAuthoriableUser: UserAuthoriablesModel) => {\r\n\tlet res = await NodeAPIServiceInstance.createAuthoriablesUser(createAuthoriableUser);\r\n\tstore.dispatch(setAuthoriableId(res));\r\n};\r\n\r\n/**\r\n * get likes and comments total number and refresh comments on tree nav\r\n * @returns response\r\n */\r\nexport const getCommentActivityData = async (itemId: string) => {\r\n\tlet res = await NodeAPIServiceInstance.getById(Number(itemId));\r\n\tstore.dispatch(setNodeLikeCount(res.LikeCount));\r\n\tstore.dispatch(setNodeLikeByUsers(res.LikeByUsers));\r\n\tlet comments = await NodeAPIServiceInstance.getNodeComments(Number(itemId));\r\n\tstore.dispatch(setAllNodeComments(comments));\r\n};\r\n\r\n/**\r\n * query Model to pass User Event Registration\r\n */\r\nexport function getQueryEventRegistration(\r\n\tuserName: string,\r\n\tuserEmail: string,\r\n\trsvp: string,\r\n\ttypeOfSession?: string,\r\n\ttypeOfRSVP?: string,\r\n\tisAzureEdge?: string,\r\n\tleaderName?: string\r\n): EventFormInfoModel {\r\n\treturn {\r\n\t\tuserName: userName,\r\n\t\tuserEmail: userEmail,\r\n\t\trsvp: rsvp,\r\n\t\ttypeOfSession: typeOfSession,\r\n\t\ttypeOfRSVP: typeOfRSVP,\r\n\t\tisAzureEdge: isAzureEdge,\r\n\t\tleaderName: leaderName\r\n\t} as EventFormInfoModel;\r\n}\r\n\r\n/**\r\n * query Model Event Auth Access\r\n */\r\nexport function getQueryEventAuthAccess(userEmail: string, eventId: string): EventAuthAccessModel {\r\n\treturn {\r\n\t\tuserEmail: userEmail,\r\n\t\teventId: eventId\r\n\t} as EventAuthAccessModel;\r\n}\r\n\r\n/**\r\n * New model shape for User Registation for new Event Management\r\n */\r\nexport function shapeUserEventRegistration(\r\n\tid: null | string,\r\n\teventId: string,\r\n\tuserEmail: string,\r\n\tuserName: string,\r\n\trsvp: string,\r\n\ttypeOfRsvp: string,\r\n\tcheckedIn?: boolean\r\n): IEventUserRegistrationRequest {\r\n\treturn {\r\n\t\tid: id,\r\n\t\teventId: eventId,\r\n\t\tuserEmail: userEmail,\r\n\t\tuserName: userName,\r\n\t\trsvp: rsvp,\r\n\t\ttypeOfRsvp: typeOfRsvp,\r\n\t\tcheckedIn: checkedIn\r\n\t} as IEventUserRegistrationRequest;\r\n}\r\n\r\n/**\r\n * query Model to check User Event Registration\r\n */\r\nexport function shapeEventRegistrationInfoRequest(eventId?: number): IEventRegistrationInfoRequestModel {\r\n\treturn {\r\n\t\teventId: eventId\r\n\t} as IEventRegistrationInfoRequestModel;\r\n}\r\n\r\n/**\r\n * query Model to checkin user in Event Checkin Dashboard\r\n */\r\nexport function getQueryUserToEventCheckin(id: number, email: string): IEventUserToCheckin {\r\n\treturn {\r\n\t\tid: id,\r\n\t\temail: email\r\n\t} as IEventUserToCheckin;\r\n}\r\n\r\n/**\r\n * Encodes a raw string to a Base-64 protected one.\r\n * Can be enabled for URL format, which removes equals signs at the end.\r\n *\r\n * @param content The content to Base-64 encode\r\n * @returns The Base-64 encoded version of the string\r\n */\r\nexport function base64Encode(content: string): string {\r\n\treturn btoa(unescape(encodeURIComponent(content)));\r\n}\r\n\r\n/**\r\n * Decodes a Base-64 string to a raw one.\r\n * Can be enabled for detecting URL format, which considers equals signs at the end.\r\n *\r\n * @param content The content to Base-64 decode\r\n * @returns The raw version of the input Base-64 string\r\n */\r\nexport function base64Decode(base64Content: string): string {\r\n\treturn decodeURIComponent(escape(window.atob(base64Content)));\r\n}\r\n","import { base64Encode } from \"../../lib/strikeLibrary\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\n/**\r\n * Microservice API for handling files within the App.\r\n * Sub-service of Application Resources context.\r\n */\r\nexport class AppFileAPI extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"storage\");\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a Cover Image file from the backend, based on a given file-Path.\r\n\t *\r\n\t * @param filePath The file path to use\r\n\t * @returns The found File\r\n\t */\r\n\tasync getCoverImageByURL(filePath: string): Promise {\r\n\t\tconst base64Encoded = base64Encode(filePath);\r\n\r\n\t\treturn await this.getFile(`coverImage/${base64Encoded}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a Cover Image file from the backend, based on a given file-Path.\r\n\t *\r\n\t * @param filePath The file path to use\r\n\t * @returns The found File\r\n\t */\r\n\tasync getBannerImageByURL(filePath: string): Promise {\r\n\t\tconst base64Encoded = base64Encode(filePath);\r\n\r\n\t\treturn await this.getFile(`bannerImage/${base64Encoded}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a file from the backend, based on a given file-Path.\r\n\t *\r\n\t * @param filePath The file path to use\r\n\t * @returns The found File\r\n\t */\r\n\tasync getAttachmentFileByURL(filePath: string): Promise {\r\n\t\tconst base64Encoded = base64Encode(filePath);\r\n\r\n\t\treturn await this.getFile(`attachments/${base64Encoded}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Downloads a file by a given file path.\r\n\t * It will be passing-through the Backend WebAPI\r\n\t * for a file filtering and access authorization and control.\r\n\t *\r\n\t * @param filePath The file to be downloaded.\r\n\t */\r\n\tasync downloadFile(filePath: string): Promise {\r\n\t\tif (!filePath || filePath === \"\") {\r\n\t\t\tthrow new Error(`Unable to download a file with filePath '${filePath}'`);\r\n\t\t}\r\n\r\n\t\t// Downloads the file by its URL\r\n\t\tawait this.getAttachmentFileByURL(filePath)\r\n\t\t\t.then((fileBlob) => {\r\n\t\t\t\tif (!fileBlob) {\r\n\t\t\t\t\tthrow new Error(`An error occurred while downloading a file. It's empty.`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst browserObjectURL = URL.createObjectURL(fileBlob);\r\n\r\n\t\t\t\tlet anchorNode = document.createElement(\"a\");\r\n\t\t\t\tanchorNode.style.display = \"none\";\r\n\t\t\t\tanchorNode.setAttribute(\"href\", browserObjectURL);\r\n\t\t\t\tanchorNode.download = filePath;\r\n\t\t\t\tdocument.body.appendChild(anchorNode);\r\n\r\n\t\t\t\t// Clicking the anchor to execute the download of the file\r\n\t\t\t\tanchorNode.click();\r\n\r\n\t\t\t\t// Clean-up relay function after 200 seconds\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t// Cleans-up the URL for preventing memory-leakage\r\n\t\t\t\t\tURL.revokeObjectURL(browserObjectURL);\r\n\t\t\t\t\tdocument.body.removeChild(anchorNode);\r\n\t\t\t\t\tanchorNode = null;\r\n\t\t\t\t}, 200);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\t// handle error scenario\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads a Cover Image to Strike's blob storage.\r\n\t * Gets a string, which should be base-64 encoded to submit to the services.\r\n\t *\r\n\t * @param base64ImageContent\r\n\t * @param onUploaded\r\n\t */\r\n\tasync coverImageUpload(\r\n\t\tbase64ImageContent: string,\r\n\t\tfileName: string,\r\n\t\tonUploaded: (filePath: string) => void | Promise\r\n\t) {\r\n\t\tconst fData = new FormData();\r\n\r\n\t\tfData.append(\"file\", base64ImageContent);\r\n\t\tfData.append(\"fileName\", fileName);\r\n\r\n\t\tawait this.post(\"coverImage/upload\", fData).then((response) => {\r\n\t\t\tif (typeof onUploaded === \"function\") onUploaded(response.toString());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads a Banner to Strike's blob storage.\r\n\t * Gets a string, which should be base-64 encoded to submit to the services.\r\n\t *\r\n\t * @param base64ImageContent\r\n\t * @param onUploaded\r\n\t */\r\n\t\tasync bannerImageUpload(\r\n\t\t\tbase64ImageContent: string,\r\n\t\t\tfileName: string,\r\n\t\t\tonUploaded: (filePath: string) => void | Promise\r\n\t\t) {\r\n\t\t\tconst fData = new FormData();\r\n\t\r\n\t\t\tfData.append(\"file\", base64ImageContent);\r\n\t\t\tfData.append(\"fileName\", fileName);\r\n\t\r\n\t\t\tawait this.post(\"bannerImage/upload\", fData).then((response) => {\r\n\t\t\t\tif (typeof onUploaded === \"function\") onUploaded(response.toString());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t/**\r\n\t * Uploads an Attachment from a Node Body, as part of the HTML.\r\n\t * Gets a string File Path which must be base-64 encoded, with the location of the stored file.\r\n\t *\r\n\t * @param base64ImageContent\r\n\t * @param onUploaded\r\n\t */\r\n\tasync attachmentUpload(\r\n\t\tbase64ImageContent: string,\r\n\t\tfileName: string,\r\n\t\tonUploaded: (filePath: string) => void | Promise\r\n\t) {\r\n\t\tconst fData = new FormData();\r\n\r\n\t\tfData.append(\"file\", base64ImageContent);\r\n\t\tfData.append(\"fileName\", fileName);\r\n\r\n\t\tawait this.post(\"attachments/upload\", fData).then((response) => {\r\n\t\t\tif (typeof onUploaded === \"function\") onUploaded(response.toString());\r\n\t\t});\r\n\t}\r\n}\r\n","/**\r\n * Fists instance of Definition Constants for the Project\r\n */\r\n\r\nconst Constants = {\r\n\tfilterScroll: {\r\n\t\toffSetHeight: 76\r\n\t},\r\n\tzoom: {\r\n\t\tlevel: 200\r\n\t},\r\n\tbuttonDashboardsTexts: {\r\n\t\tDashboards: \"Dashboards\",\r\n\t\tArticles: \"Articles\",\r\n\t\tQuestions: \"Questions\"\r\n\t},\r\n\tdeleteConfirmationTexts: {\r\n\t\tDeleteText: \"Delete\",\r\n\t\tDeleteArticleTitle: \"Delete Article\",\r\n\t\tDeleteQuestionTitle: \"Delete Question\",\r\n\t\tDeleteSuccess: \"Deleted Successfully\",\r\n\t\tDeleteArticleSubText: \"Are you sure you want to delete this article?\",\r\n\t\tDeleteQuestionSubText: \"Are you sure you want to delete this question?\",\r\n\t\tDeleteGoToDashboard: \"Go to Dashboard\"\r\n\t},\r\n\tundeleteConfirmationTexts: {\r\n\t\tUndeleteText: \"Undelete\",\r\n\t\tUndeleteArticleTitle: \"Undelete Article\",\r\n\t\tUndeleteQuestionTitle: \"Undelete Question\",\r\n\t\tUndeleteSuccess: \"Undeleted Successfully\",\r\n\t\tUndeleteArticleSubText: \"Are you sure you want to undelete this article?\",\r\n\t\tUndeleteQuestionSubText: \"Are you sure you want to undelete this question?\",\r\n\t\tUndeleteGoToDashboard: \"Go to Dashboard\"\r\n\t},\r\n\tpublishConfirmationTexts: {\r\n\t\tPublishText: \"Publish\",\r\n\t\tPublishArticleTitle: \"Publish Article\",\r\n\t\tPublishArticleSubText: \"Are sure you want to publish this article?\",\r\n\t\tArticlePublished: \"Article published successfully\"\r\n\t},\r\n\tpostedConfirmationTexts: {\r\n\t\tArticlePosted: \"Article posted successfully\",\r\n\t\tArticlePostedText: \"The moderator will review and publish the Article.\"\r\n\t},\r\n\tstickConfirmationTexts: {\r\n\t\tstickToSpaceTitle: \"Stick Node to Space\",\r\n\t\tstickToSpaceSubTitle: \"Are you sure you want to stick this node to the Space?\",\r\n\t\tunstickFromSpaceTitle: \"Unstick Node from Space\",\r\n\t\tunstickFromSpaceSubTitle: \"Are you sure you want to unstick this node from the Space?\",\r\n\t\tstickToSiteTitle: \"Stick Node to Website\",\r\n\t\tstickToSiteSubTitle: \"Are you sure you want to stick this node to Website?\",\r\n\t\tunstickFromSiteTitle: \"Unstick Node from Website\",\r\n\t\tunstickFromSiteSubTitle: \"Are you sure you want to unstick this node from Website?\"\r\n\t},\r\n\tprivateConfirmationTexts: {\r\n\t\tmakeArticlePrivateTitle: \"Make Article Private\",\r\n\t\tmakeArticlePrivateSubTitle: \"Are you sure you want to set this Article as Private?\",\r\n\t\tmakeArticlePublicTitle: \"Make Article Public\",\r\n\t\tmakeArticlePublicSubTitle: \"Are you sure you want to set this Article as Public?\",\r\n\t\tmakeQuestionPrivateTitle: \"Make Question Private\",\r\n\t\tmakeQuestionPrivateSubTitle: \"Are you sure you want to set this Question as Private?\",\r\n\t\tmakeQuestionPublicTitle: \"Make Question Public\",\r\n\t\tmakeQuestionPublicSubTitle: \"Are you sure you want to set this Question as Public?\"\r\n\t},\r\n\tnavigationSideBar: {\r\n\t\ttitle: \"Navigations\"\r\n\t},\r\n\tdashboardImage: {\r\n\t\tbannerText: \"Strike Online Team videos now available\"\r\n\t},\r\n\taskToExpert: {\r\n\t\ttitle: \"Find Answers\",\r\n\t\tdescription: \"Think you know an expert who is sure to have the answer to this question? Reach out and ask them to post an answer.\"\r\n\t},\r\n};\r\n\r\nexport default Constants;\r\n","import store from \"../redux/store\";\r\nimport { NavigateFunction, NavigateOptions } from \"react-router-dom\";\r\nimport { setLoaderText, setLoaderVisible, setBannerVisible, setIsHighZoomLevel, setStickyNodes, resetStickyNodes, setIsEventAdminUser, setIsSuperAdminUser, setIsNodeAdminUser } from \"../redux/reducers/appManagement\";\r\nimport { appManagementSelectors } from \"../redux/selectors/appManagement\";\r\nimport { ServiceHub } from \"./base/ServiceHub\";\r\nimport Constants from \"../constants/Constants\";\r\nimport { resetReportReasonValueId, resetSelectedReportReason, setDeletedStatus, setNodeDetailAuthorEmail, setPrivateStatus, setReportReasonsOptionsData, setReportReasonValueId, setReportReasonValueOption, setSelectedReportReason, setStickSiteStatus, setStickSpaceStatus } from \"../redux/reducers/nodes\";\r\nimport { IStrikeNodeSticky } from \"../contracts/models\";\r\n\r\nlet _navigate: NavigateFunction = null;\r\n\r\nexport class AppManagementAPI {\r\n\tsetNavigate(navigateFn: NavigateFunction): void {\r\n\t\t_navigate = navigateFn;\r\n\t}\r\n\r\n\tgetNavigate(): NavigateFunction {\r\n\t\treturn _navigate;\r\n\t}\r\n\r\n\tsetLoaderVisible(visible: boolean) {\r\n\t\tstore.dispatch(setLoaderVisible(visible));\r\n\t}\r\n\r\n\tsetLoaderText(text: String) {\r\n\t\tstore.dispatch(setLoaderText(text));\r\n\t}\r\n\r\n\tsetBannerVisible(visible: boolean) {\r\n\t\tstore.dispatch(setBannerVisible(visible));\r\n\t}\r\n\r\n\t/**\r\n\t * Gets whether the application banner is visible at the moment.\r\n\t *\r\n\t * @returns boolean\r\n\t */\r\n\tgetBannerVisible(): boolean {\r\n\t\treturn appManagementSelectors.getBannerVisible(store.getState());\r\n\t}\r\n\r\n\t/**\r\n\t * set flag value if node its stick to the space\r\n\t * @param value\r\n\t */\r\n\tsetNodeStickSpaceStatus(value: boolean) {\r\n\t\tstore.dispatch(setStickSpaceStatus(value));\r\n\t}\r\n\r\n\t/**\r\n\t * set flag value if node its stick to the entire website\r\n\t * @param value\r\n\t */\r\n\tsetNodeStickSiteStatus(value: boolean) {\r\n\t\tstore.dispatch(setStickSiteStatus(value));\r\n\t}\r\n\r\n\t/**\r\n\t * set flag value if node its private or public\r\n\t * @param value\r\n\t */\r\n\tsetNodePrivateSiteStatus(value: boolean) {\r\n\t\tstore.dispatch(setPrivateStatus(value));\r\n\t}\r\n\r\n\t/**\r\n\t * set flag value if node its deleted or not\r\n\t * @param value\r\n\t */\r\n\tsetNodeDeletedStatus(value: boolean) {\r\n\t\tstore.dispatch(setDeletedStatus(value));\r\n\t}\r\n\r\n\t/**\r\n\t * set authorEmail value to use in node owner check globally\r\n\t * @param value\r\n\t */\r\n\tsetNodeDetailAuthorEmail(value: string) {\r\n\t\tstore.dispatch(setNodeDetailAuthorEmail(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Used for cleaning the filters and any other state,\r\n\t * in order to allow for a redirect to navigate other\r\n\t * places without restriction.\r\n\t */\r\n\tresetDashboardFilters(): void {\r\n\t\t// Cleans-up the dashboard selected Space ID, Topics Filter and Dashboard Button\r\n\t\tServiceHub.spacesAPI.start().setSelectedId(\"\");\r\n\t\tServiceHub.filterAPI.start().setSelectedDashBoardButton(Constants.buttonDashboardsTexts.Dashboards);\r\n\t\tServiceHub.filterAPI.start().resetTopicsFilters();\r\n\t}\r\n\r\n\thandleZoomLevelScroll(): void {\r\n\t\tif (Math.round(window.devicePixelRatio * 100) >= Constants.zoom.level) {\r\n\t\t\tstore.dispatch(setIsHighZoomLevel(true));\r\n\t\t} else {\r\n\t\t\tstore.dispatch(setIsHighZoomLevel(false));\r\n\t\t}\r\n\t}\r\n\r\n\tisHighZoomLevel(): boolean {\r\n\t\treturn Math.round(window.devicePixelRatio * 100) >= Constants.zoom.level;\r\n\t}\r\n\r\n\t/**\r\n\t * set stickyNodees to the stat\r\n\t * @param value\r\n\t */\r\n\tsetStickyNodes(value: IStrikeNodeSticky[]) {\r\n\t\tstore.dispatch(setStickyNodes(value));\r\n\t}\r\n\r\n\t/**\r\n\t * reset stickyNodes state value\r\n\t */\r\n\tresetStickyNodes() {\r\n\t\tstore.dispatch(resetStickyNodes());\r\n\t}\r\n\r\n\t/**\r\n\t * Navigates the system using stored navigator helper.\r\n\t *\r\n\t * @param to The route destination.\r\n\t * @param options [Optional] The options to configure the action.\r\n\t */\r\n\tnavigate(to: string, options?: NavigateOptions): void {\r\n\t\t_navigate(to, options);\r\n\t}\r\n\r\n\tprivate _resolveConfirmation: null | (() => void);\r\n\r\n\tsetConfirmationCallback(callback: null | (() => void)) {\r\n\t\tthis._resolveConfirmation = callback;\r\n\t}\r\n\r\n\tgetConfirmationCallback() {\r\n\t\treturn this._resolveConfirmation;\r\n\t}\r\n\r\n\tinvokeConfirmationCallback() {\r\n\t\tif (typeof this._resolveConfirmation === \"function\") {\r\n\t\t\tthis._resolveConfirmation();\r\n\t\t\tthis._resolveConfirmation = null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Saving Report Reason selected bt dropdown\r\n\t * @param reportReason \r\n\t */\r\n\tsetSelectedReportReason(reportReason: null | string | number): void {\r\n\t\tstore.dispatch(setSelectedReportReason(reportReason));\r\n\t}\r\n\r\n\t/**\r\n\t * Saving Report Reason selected Id value bt dropdown\r\n\t * @param reportReasonId \r\n\t */\r\n\tsetReportReasonValueId(reportReasonId: null | string): void {\r\n\t\tstore.dispatch(setReportReasonValueId(reportReasonId));\r\n\t}\r\n\r\n\t/**\r\n\t * reseting selected reason option value idto use on clean up dropdown\r\n\t */\r\n\tresetReportReasonValueId(): void {\r\n\t\tstore.dispatch(resetReportReasonValueId());\r\n\t}\r\n\r\n\t/**\r\n\t * reseting selected reason option to use on clean up dropdown\r\n\t */\r\n\tresetSelectedReportReasonId(): void {\r\n\t\tstore.dispatch(resetSelectedReportReason());\r\n\t}\r\n\r\n\t/**\r\n\t * Saving Report Reason Option text value\r\n\t * @param reportReasonOption \r\n\t */\r\n\tsetReportReasonValueOption(reportReasonOption: null | string): void {\r\n\t\tstore.dispatch(setReportReasonValueOption(reportReasonOption));\r\n\t}\r\n\r\n\t/**\r\n\t * Saving options data coming from db misc to use in dropdown\r\n\t * @param reportReasons \r\n\t */\r\n\tsetReportReasonsData(reportReasons: null | string[]): void {\r\n\t\tstore.dispatch(setReportReasonsOptionsData(reportReasons));\r\n\t}\r\n\r\n\t/**\r\n\t * set user admin access check\r\n\t * @param value\r\n\t */\r\n\tsetIsUserEventAdminAccess(value: boolean) {\r\n\t\tstore.dispatch(setIsEventAdminUser(value));\r\n\t}\r\n\r\n\t/**\r\n\t * set user node admin access check\r\n\t * @param value\r\n\t */\r\n\tsetIsUserNodeAdminAccess(value: boolean) {\r\n\t\tstore.dispatch(setIsNodeAdminUser(value));\r\n\t}\r\n\r\n\t/**\r\n\t * set user super admin access check\r\n\t * @param value\r\n\t */\r\n\tsetIsUserSuperAdminAccess(value: boolean) {\r\n\t\tstore.dispatch(setIsSuperAdminUser(value));\r\n\t}\r\n}\r\n\r\n/**\r\n * Singleton Instance of AppManagementAPI.\r\n */\r\nexport const AppManagementAPIInstance = new AppManagementAPI();\r\n","import {\r\n\taddMenuItemsSelected,\r\n\tresetMenu,\r\n\tresetMenuItemSelected,\r\n\tresetSubMenus,\r\n\tsetAppMenuData,\r\n\tsetExpandedMenuItem,\r\n\tsetMenuItemSelected,\r\n\tsetMenuItemsSelected\r\n} from \"../../redux/reducers/appManagement\";\r\nimport { appManagementSelectors } from \"../../redux/selectors/appManagement\";\r\nimport store from \"../../redux/store\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\nimport { ServiceHub } from \"../base/ServiceHub\";\r\n\r\n/**\r\n * App Menu mini API, which allows the Server-side\r\n * building of the menu content\r\n */\r\nexport class AppMenuAPI extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"resource\");\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the Application Menu from the App Backend services\r\n\t *\r\n\t * @returns a JSON with the MenuStructure within.\r\n\t */\r\n\tpublic async getMenu() {\r\n\t\treturn this.get(\"appMenu\").then((data) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tstore.dispatch(setAppMenuData(data));\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Changes the expanded/collapsed state of a menu item by its ID.\r\n\t *\r\n\t * @param menuItemId Item ID to set as expanded/collapsed\r\n\t * @param expanding Whether the item is expanding or collapsing\r\n\t */\r\n\tsetExpandedMenuItem(menuItemId: string, expanding: boolean): void {\r\n\t\tstore.dispatch(setExpandedMenuItem({ id: menuItemId, expanded: expanding }));\r\n\t}\r\n\r\n\t/**\r\n\t * Get Selected id from main menu\r\n\t * @param selectedId\r\n\t */\r\n\tsetMenuItemSelected(selectedId: string): void {\r\n\t\tstore.dispatch(setMenuItemSelected(selectedId));\r\n\t}\r\n\r\n\t/**\r\n\t * Find Parent and add into array\r\n\t * @param item\r\n\t * @param originalCollection\r\n\t * @param destinationCollection\r\n\t * @returns\r\n\t */\r\n\tfindAndAddParents(item: any, originalCollection: any[], destinationCollection: any[]) {\r\n\t\tif (!item) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst parentItem = originalCollection.find((collectionItem) => collectionItem.Id === item.ParentId);\r\n\t\tif (!parentItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (destinationCollection.some((foundItem) => foundItem.Id === parentItem.Id)) {\r\n\t\t\tdestinationCollection.push(parentItem);\r\n\t\t}\r\n\r\n\t\tif (!parentItem?.ParentId || parentItem?.ParentId === \"\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.findAndAddParents(parentItem, originalCollection, destinationCollection);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Selected ids from main menu to set expanded\r\n\t * @param selectedId\r\n\t */\r\n\tsetMenuItemsSelected(selectedId: string): void {\r\n\t\tconst selectedIdChain = [];\r\n\r\n\t\tconst normalizedItemList = appManagementSelectors.getNormalizedList(store.getState());\r\n\t\tconst currentItem = normalizedItemList.find((item) => item.Id === selectedId);\r\n\t\tconst parents = [];\r\n\r\n\t\tif (!currentItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tselectedIdChain.push(currentItem.Id);\r\n\r\n\t\tif (currentItem.ParentId) {\r\n\t\t\tif (currentItem.ParentId === \"menu-programs_1\") {\r\n\t\t\t\tstore.dispatch(resetSubMenus());\r\n\t\t\t}\r\n\r\n\t\t\tthis.findAndAddParents(currentItem, normalizedItemList, parents);\r\n\t\t\tselectedIdChain.push(...parents.map((parentItem) => parentItem.Id));\r\n\t\t}\r\n\r\n\t\tstore.dispatch(addMenuItemsSelected(selectedIdChain));\r\n\t}\r\n\r\n\t/**\r\n\t * Utily method to receive the selected menu id once\r\n\t * its clicked and add focus to the parent Nav Group Item\r\n\t * to be compliant with Accessibility Tab Navigation\r\n\t * @param selectedId\r\n\t */\r\n\tsetFocusOnParentElement(selectedId: string): void {\r\n\t\tconst normalizedList = appManagementSelectors.getNormalizedList(store.getState());\r\n\t\tconst selectedItem = normalizedList.find((item) => item.Id === selectedId);\r\n\t\tconst rootItems = normalizedList.filter((rootItem) => rootItem.Root === true);\r\n\r\n\t\tif (selectedItem.ParentId) {\r\n\t\t\tconst parentIdToAriaLabelMap: { [key: string]: string } = {};\r\n\r\n\t\t\trootItems.forEach((rootItem) => {\r\n\t\t\t\tif (rootItem.Id && rootItem.Title) {\r\n\t\t\t\t\tparentIdToAriaLabelMap[rootItem.Id] = rootItem.Title;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst ariaLabelMatch = parentIdToAriaLabelMap[selectedItem.ParentId];\r\n\r\n\t\t\tif (ariaLabelMatch) {\r\n\t\t\t\tif (selectedItem.Href === \"#\") {\r\n\t\t\t\t\tstore.dispatch(resetSubMenus());\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst mainMenuButton = document.querySelector(\r\n\t\t\t\t\t\t`[aria-label=\"${ariaLabelMatch}\"]`\r\n\t\t\t\t\t) as HTMLButtonElement;\r\n\t\t\t\t\tif (mainMenuButton) {\r\n\t\t\t\t\t\tmainMenuButton.focus();\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\t/**\r\n\t * Reset All expanded items.\r\n\t */\r\n\tresetMenu(): void {\r\n\t\tstore.dispatch(resetMenu());\r\n\t}\r\n\r\n\t/**\r\n\t * Reset Menu Item Selected\r\n\t */\r\n\tresetMenuItemSelected(): void {\r\n\t\tstore.dispatch(resetMenuItemSelected());\r\n\t}\r\n\r\n\t/**\r\n\t * Reset All Menu items\r\n\t */\r\n\tresetAllMenu(): void {\r\n\t\tstore.dispatch(resetMenu());\r\n\t\tstore.dispatch(resetMenuItemSelected());\r\n\t}\r\n\r\n\t/**\r\n\t * Reset All SubMenu expanded items.\r\n\t */\r\n\tresetSubMenus(): void {\r\n\t\tstore.dispatch(resetSubMenus());\r\n\t}\r\n\r\n\t/**\r\n\t * Get Expanded Item.\r\n\t *\r\n\t * @param menuItemId Item to check expanded state\r\n\t */\r\n\tgetIsMenuItemExpanded(menuItemId: string): boolean {\r\n\t\treturn appManagementSelectors.getIsMenuItemExpandedById(store.getState(), menuItemId);\r\n\t}\r\n\r\n\tasync checkAccess(): Promise {\r\n\t\tconst res = await ServiceHub.eventManageAPI.start().checkAdminAccess()\r\n\t\tServiceHub.appManagementAPI.setIsUserEventAdminAccess(res);\r\n\t\treturn res;\r\n\t}\r\n}\r\n","import { NodeTreeItem } from \"../../contracts\";\r\nimport { _reset, _resetData, _setExpandedItems, _setLoaded, _setLoading, _setRawData } from \"../../redux/reducers/appTreeView\";\r\nimport store from \"../../redux/store\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\n/**\r\n * App Tree view mini API, which allows the Server-side\r\n * building of the menu content\r\n */\r\nexport class AppTreeViewAPI extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"node\");\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the Application Menu from the App Backend services\r\n\t *\r\n\t * @returns a JSON with the MenuStructure within.\r\n\t */\r\n\tpublic async getNodes(nodeId: string) {\r\n\t\treturn this.get(`getNodeNavigations/${nodeId}`).then((data) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tstore.dispatch(_setRawData(data));\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t});\r\n\t}\r\n\r\n\tsetRawData(items: NodeTreeItem[]) {\r\n\t\tstore.dispatch(_setRawData(items));\r\n\t}\r\n\r\n\tsetExpandedItems(expandedItemIds: string[]) {\r\n\t\tstore.dispatch(_setExpandedItems(expandedItemIds));\r\n\t}\r\n\r\n\tsetLoaded(loaded: boolean) {\r\n\t\tstore.dispatch(_setLoaded(loaded));\r\n\t}\r\n\r\n\tsetLoading(loading: boolean) {\r\n\t\tstore.dispatch(_setLoading(loading));\r\n\t}\r\n\t\r\n\treset() {\r\n\t\tstore.dispatch(_reset());\r\n\t}\r\n\r\n\tresetData() {\r\n\t\tstore.dispatch(_resetData());\r\n\t}\r\n}\r\n","import { IArticleFormData } from \"../../contracts/article/articleForm\";\r\nimport { CoverImageType } from \"../../enums\";\r\nimport BaseHttpAPI from \"./BaseHttpAPI\";\r\nimport { ServiceHub } from \"./ServiceHub\";\r\n\r\n/**\r\n * Shared abstraction which implements shared resources,\r\n * for dealing with Node data.\r\n */\r\nexport abstract class NodePreprocessingAPI extends BaseHttpAPI {\r\n\tprivate allowedExtensionsMap = {\r\n\t\tpng: \"png\",\r\n\t\tjpg: \"jpg\",\r\n\t\tsvg: \"svg\",\r\n\t\tgif: \"gif\"\r\n\t};\r\n\r\n\tconstructor(serviceUrlPrefix: string) {\r\n\t\tsuper(serviceUrlPrefix);\r\n\t}\r\n\r\n\t/**\r\n\t * Detects all images within an Article's body data and\r\n\t * uploads all base-64 images to replace with a server-based\r\n\t * file URL.\r\n\t *\r\n\t * @param textData The text data to be processed\r\n\t */\r\n\tasync detectBodyImages(textData: string): Promise {\r\n\t\tconst appFileAPI = ServiceHub.appFileAPI.start();\r\n\t\t// To capture all images within the body of the article,\r\n\t\t// and pre-upload them to the storage for replacing with the location\r\n\t\t// from served blobstorage, there is the use of a RegExp object.\r\n\t\tconst attachmentsUploaded = [];\r\n\t\tlet dataCopy = `${textData}`;\r\n\r\n\t\t// Regex to detect images in the body of the text\r\n\t\t// - Source 1\r\n\t\t// End: /src=\"(data:image\\/[^;]+;base64,[^\"]+)\"/igm\r\n\t\t// /src=\"(data:image\\/[^;]+;base64,[^\"]+)\"/gim\r\n\t\tconst imageCaptureRegex = new RegExp(/src=\"(data:(image|application)\\/[^;]+;base64,[^\"]+)\"/gim);\r\n\r\n\t\tif (dataCopy !== \"\" && imageCaptureRegex.test(dataCopy)) {\r\n\t\t\tconst imageSafeTextTransforms: Promise[] = [];\r\n\t\t\tconst regexMatch = dataCopy.match(imageCaptureRegex);\r\n\t\t\tconst firstMatchOrNull = !regexMatch ? null : regexMatch[0];\r\n\r\n\t\t\tif (firstMatchOrNull !== null) {\r\n\t\t\t\tregexMatch.map((found) => {\r\n\t\t\t\t\tconst splitParts = found.split(\"base64,\");\r\n\r\n\t\t\t\t\t// Determines the file extension based on a map of those allowed ones\r\n\t\t\t\t\tlet imageExtension = \"ext\";\r\n\t\t\t\t\tfor (let ext in this.allowedExtensionsMap) {\r\n\t\t\t\t\t\tif (splitParts[0].includes(ext)) {\r\n\t\t\t\t\t\t\timageExtension = this.allowedExtensionsMap[ext];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet cleanBase64 = splitParts[1];\r\n\t\t\t\t\tcleanBase64 = cleanBase64.endsWith('\"')\r\n\t\t\t\t\t\t? cleanBase64.substring(0, cleanBase64.length - 1)\r\n\t\t\t\t\t\t: cleanBase64;\r\n\r\n\t\t\t\t\tif (!attachmentsUploaded.includes(cleanBase64)) {\r\n\t\t\t\t\t\timageSafeTextTransforms.push(\r\n\t\t\t\t\t\t\tappFileAPI.attachmentUpload(\r\n\t\t\t\t\t\t\t\tcleanBase64,\r\n\t\t\t\t\t\t\t\t`image-upload.${imageExtension}`,\r\n\t\t\t\t\t\t\t\t(uploadedFilePath) => {\r\n\t\t\t\t\t\t\t\t\tattachmentsUploaded.push(cleanBase64);\r\n\t\t\t\t\t\t\t\t\tdataCopy = dataCopy.replaceAll(found, `src=\"${uploadedFilePath}\"`);\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\r\n\t\t\t\t\treturn cleanBase64;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tawait Promise.all(imageSafeTextTransforms);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn dataCopy;\r\n\t}\r\n\r\n\t/**\r\n\t * Will upload a cover image, if necessary,\r\n\t * since it can contain a base-64 at the coverImageFile property.\r\n\t *\r\n\t * @param data The Node data to process\r\n\t */\r\n\tasync processCoverImage(data: IProcessCoverImage, onComplete?: (uploadedResult: string) => void): Promise {\r\n\t\tconst appFileAPI = ServiceHub.appFileAPI.start();\r\n\r\n\t\tif (data.coverImageFile !== null && data.coverImageType === CoverImageType.Upload) {\r\n\t\t\tconst coverImageFileData = data.coverImageFile.includes(\"base64,\")\r\n\t\t\t\t? data.coverImageFile.split(\"base64,\")[1]\r\n\t\t\t\t: data.coverImageFile;\r\n\r\n\t\t\tawait appFileAPI.coverImageUpload(\r\n\t\t\t\tcoverImageFileData,\r\n\t\t\t\tdata.coverImagePath,\r\n\t\t\t\ttypeof onComplete === \"function\"\r\n\t\t\t\t\t? onComplete\r\n\t\t\t\t\t: (uploadedResult) => {\r\n\t\t\t\t\t\t\tdata.coverImagePath = uploadedResult;\r\n\t\t\t\t\t\t\tdata.coverImageFile = null;\r\n\t\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Will upload a banner image, if necessary,\r\n\t * since it can contain a base-64 at the bannerImageFile property.\r\n\t *\r\n\t * @param data The Node data to process\r\n\t */\r\n\tasync processBannerImage(data: IProcessBannerImage, onComplete?: (uploadedResult: string) => void): Promise {\r\n\t\tconst appFileAPI = ServiceHub.appFileAPI.start();\r\n\r\n\t\tif (data.bannerImageFile !== null && data.bannerImageType === CoverImageType.Upload) {\r\n\t\t\tconst bannerImageFileData = data.bannerImageFile.includes(\"base64,\")\r\n\t\t\t\t? data.bannerImageFile.split(\"base64,\")[1]\r\n\t\t\t\t: data.bannerImageFile;\r\n\r\n\t\t\tawait appFileAPI.bannerImageUpload(\r\n\t\t\t\tbannerImageFileData,\r\n\t\t\t\tdata.bannerImagePath,\r\n\t\t\t\ttypeof onComplete === \"function\"\r\n\t\t\t\t\t? onComplete\r\n\t\t\t\t\t: (uploadedResult) => {\r\n\t\t\t\t\t\t\tdata.bannerImagePath = uploadedResult;\r\n\t\t\t\t\t\t\tdata.bannerImageFile = null;\r\n\t\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nexport interface IProcessCoverImage {\r\n\tcoverImageFile: string;\r\n\tcoverImageType: CoverImageType;\r\n\tcoverImagePath: string;\r\n\t[key: string]: any;\r\n}\r\n\r\nexport interface IProcessBannerImage {\r\n\tbannerImageFile: string;\r\n\tbannerImageType: CoverImageType;\r\n\tbannerImagePath: string;\r\n\t[key: string]: any;\r\n}\r\n\r\n","import { ICoverImageInfo, INodeQueryResponse, ISpaceItem } from \"../../contracts\";\r\nimport { IArticleFormData } from \"../../contracts/article/articleForm\";\r\nimport { NodeActionTypes, NodeType } from \"../../contracts/models/strikeEnums\";\r\nimport { base64Encode } from \"../../lib/strikeLibrary\";\r\nimport { NodePreprocessingAPI } from \"../base/NodePreprocessingAPI\";\r\nimport { ServiceHub } from \"../base/ServiceHub\";\r\n\r\n/**\r\n * Article Data management API. Used by the Article Form.\r\n */\r\nexport class ArticleDataAPI extends NodePreprocessingAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"node\");\r\n\t}\r\n\r\n\t/**\r\n\t * Searches articles based on text criteria.\r\n\t *\r\n\t * @param spaceId Scoped Space (Container) of the items to search within\r\n\t * @param criteria String to search based on\r\n\t * @returns Promise\r\n\t */\r\n\tasync searchArticles(spaceId: number | string, criteria: string): Promise {\r\n\t\tconst encodedSearchText = base64Encode(criteria);\r\n\r\n\t\treturn await this.get(`searchNodes/${spaceId}/${encodedSearchText}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets all spaces listed to the auth user account.\r\n\t *\r\n\t * @returns Collection of Space entries.\r\n\t */\r\n\tasync getSpaces(): Promise {\r\n\t\treturn await this.get(\"getSpaceEntities\");\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a cover image list from the services.\r\n\t *\r\n\t * @param page The current page being looked for\r\n\t * @param pageSize The size of the page retrieving\r\n\t * @returns Information regarding the Cover images, with total count\r\n\t */\r\n\tasync getCoverImages(\r\n\t\tpage: number,\r\n\t\tpageSize: number = 15\r\n\t): Promise<{ CoverImages: ICoverImageInfo[]; TotalRecordCount: number }> {\r\n\t\treturn await this.post(\"getCoverImages\", { pageIndex: page, pageLimit: pageSize });\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a list of Miscellaneous configurations from Services.\r\n\t *\r\n\t * @returns List of configs.\r\n\t */\r\n\tasync getMiscellaneous(): Promise<[]> {\r\n\t\treturn await this.get(\"getMiscellaneousEntities\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Node with provided information, and specified type.\r\n\t * Also, prepares the body to be transferred by using base-64 string encoding.\r\n\t * As a precaution, also uploads any base-64 images detected in the body\r\n\t * to be provided via the storage services.\r\n\t *\r\n\t * @param data The Node data to request creation.\r\n\t * @param type The Node type to request update.\r\n\t * @param actionType The Node Action Type to log.\r\n\t */\r\n\tasync createNode(data: IArticleFormData, type: NodeType, actionType: NodeActionTypes): Promise {\r\n\t\t// const appFileAPI = ServiceHub.appFileAPI.start();\r\n\t\tconst dataCopy = { ...data };\r\n\r\n\t\tdataCopy.type = type;\r\n\t\tdataCopy.actionType = actionType;\r\n\t\tdataCopy.authorUpn = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\r\n\t\t//Detects any body HTML base-64 image to upload it to services\r\n\t\t//As well as prepares it for transfer as a base-64 encoded string.\r\n\t\tdataCopy.body = base64Encode(await this.detectBodyImages(dataCopy.body));\r\n\t\tawait this.processCoverImage(dataCopy);\r\n\r\n\t\treturn await this.post(\"createcommunication\", dataCopy)\r\n\t\t\t.then((result: any) => {\r\n\t\t\t\tif (result?.HasError) {\r\n\t\t\t\t\tthrow Error(result.ErrorMessage);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Show a toast success message\r\n\t\t\t\treturn result.Value;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconst errorObject = error?.response?.data?.errors ?? null;\r\n\t\t\t\tconst errorProps = errorObject !== null ? Object.keys(errorObject) : [];\r\n\t\t\t\tconst errorMessages = errorObject !== null ? Object.values(errorObject) : [];\r\n\r\n\t\t\t\tconst bindErrorInfo = () =>\r\n\t\t\t\t\terrorProps.map((prop, index) => {\r\n\t\t\t\t\t\treturn `${prop}: ${errorMessages[index]}`;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\tconst errorMessage = errorObject !== null ? bindErrorInfo() : error.message;\r\n\r\n\t\t\t\tServiceHub.message.error(errorMessage);\r\n\r\n\t\t\t\tthrow Error(errorMessage);\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Node of type Question in the services.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Question data to store\r\n\t */\r\n\tasync createQuestion(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(\r\n\t\t\tdata,\r\n\t\t\tNodeType.Question,\r\n\t\t\tdata.id !== null && data.id !== \"\" ? NodeActionTypes.Revise : NodeActionTypes.Ask\r\n\t\t);\r\n\t}\r\n\r\n\t// /**\r\n\t// * Updates a Question based on provided info.\r\n\t// * Uses updateNode behind to process data.\r\n\t// *\r\n\t// * @param data The Question data to store.\r\n\t// */\r\n\t// async updateQuestion(data: IArticleFormData): Promise {\r\n\t// \treturn await this.updateNode(data, NodeType.Question, NodeActionTypes.Revise);\r\n\t// }\r\n\r\n\t/**\r\n\t * Creates a Node of type Comment in the services.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Question data to store\r\n\t */\r\n\tasync createComment(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(data, NodeType.Comment, NodeActionTypes.Comment);\r\n\t}\r\n\r\n\t// /**\r\n\t// * Updates a Comment based on provided info.\r\n\t// * Uses updateNode behind to process data.\r\n\t// *\r\n\t// * @param data The Question data to store.\r\n\t// */\r\n\t// async updateComment(data: IArticleFormData): Promise {\r\n\t// \treturn await this.updateNode(data, NodeType.Comment, NodeActionTypes.Comment);\r\n\t// }\r\n\r\n\t/**\r\n\t * Creates a Node of type Answer To Comment in the services.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Question data to store\r\n\t */\r\n\tasync createAnswerToComment(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(data, NodeType.Comment, NodeActionTypes.AnswerToComment);\r\n\t}\r\n\r\n\t// /**\r\n\t// * Updates an Answer to Comment based on provided info.\r\n\t// * Uses updateNode behind to process data.\r\n\t// *\r\n\t// * @param data The Question data to store.\r\n\t// */\r\n\t// async updateAnswerToComment(data: IArticleFormData): Promise {\r\n\t// \treturn await this.updateNode(data, NodeType.Comment, NodeActionTypes.AnswerToComment);\r\n\t// }\r\n\r\n\t/**\r\n\t * Creates a Node of type Answer in the services.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Question data to store\r\n\t */\r\n\tasync createAnswer(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(data, NodeType.Answer, NodeActionTypes.Answer);\r\n\t}\r\n\r\n\t// /**\r\n\t// * Updates an Answer based on provided info.\r\n\t// * Uses updateNode behind to process data.\r\n\t// *\r\n\t// * @param data The Question data to store.\r\n\t// */\r\n\t// async updateAnswer(data: IArticleFormData): Promise {\r\n\t// \treturn await this.updateNode(data, NodeType.Answer, NodeActionTypes.Answer);\r\n\t// }\r\n\r\n\t/**\r\n\t * Creates a Node of type Answer To Comment in the services.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Question data to store\r\n\t */\r\n\tasync createCommentToAnswer(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(data, NodeType.Answer, NodeActionTypes.CommentToAnswer);\r\n\t}\r\n\r\n\t// /**\r\n\t// * Updates an Answer to Comment based on provided info.\r\n\t// * Uses updateNode behind to process data.\r\n\t// *\r\n\t// * @param data The Question data to store.\r\n\t// */\r\n\t// async updateCommentToAnswer(data: IArticleFormData): Promise {\r\n\t// \treturn await this.updateNode(data, NodeType.Answer, NodeActionTypes.CommentToAnswer);\r\n\t// }\r\n}\r\n","import { createSelector } from \"@reduxjs/toolkit\";\r\nimport { IArticleFormData } from \"../../contracts/article/articleForm\";\r\nimport { IComboBoxOption, IDropdownOption } from \"@fluentui/react\";\r\nimport { ICoverImageInfo, IListControl, INodeQueryResponse, ISpaceItem } from \"../../contracts\";\r\nimport { DropdownItemProps } from \"semantic-ui-react\";\r\nimport { ITreeItem } from \"@coherence-design-system/tree-view\";\r\nimport React from \"react\";\r\nimport { ServiceHub } from \"../../service\";\r\n\r\n/**\r\n * Article Form data access selectors.\r\n */\r\nexport const articleFormSelectors = {\r\n\tgetData: (state): IArticleFormData => {\r\n\t\treturn state.articleForm.data;\r\n\t},\r\n\tgetParentArticlesList: (state): INodeQueryResponse[] => {\r\n\t\treturn state.articleForm.list.parentArticles;\r\n\t},\r\n\tgetSpacesList: (state): ISpaceItem[] => {\r\n\t\treturn state.articleForm.list.spaces;\r\n\t},\r\n\tgetSpaceById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, itemId: number | string) => itemId,\r\n\t\t(state, itemId): ISpaceItem => {\r\n\t\t\treturn state.articleForm.list.spaces.find((item) => item.Id === itemId);\r\n\t\t}\r\n\t),\r\n\tgetParentSpacesList: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): ISpaceItem[] => {\r\n\t\t\treturn state.articleForm.list.spaces.filter((space) => space.ParentId === null || space.ParentId === \"\");\r\n\t\t}\r\n\t),\r\n\tgetCoverImageTypesList: (state): [] => {\r\n\t\treturn state.articleForm.list.coverImageTypes;\r\n\t},\r\n\tgetCoverImagesListControl: (state): IListControl => {\r\n\t\treturn state.articleForm.list.coverImages;\r\n\t},\r\n\tgetCoverImagesListPage: (state): number => {\r\n\t\treturn state.articleForm.list.coverImages.currentPage;\r\n\t},\r\n\tgetCoverImagesListPageLength: (state): number => {\r\n\t\treturn state.articleForm.list.coverImages.pageLength;\r\n\t},\r\n\tgetCoverImagesListTotal: (state): number => {\r\n\t\treturn state.articleForm.list.coverImages.totalCount;\r\n\t},\r\n\tgetCoverImagesList: (state): ICoverImageInfo[] => {\r\n\t\treturn state.articleForm.list.coverImages.items;\r\n\t},\r\n\tgetTopicsList: (state): string[] => {\r\n\t\treturn state.articleForm.list.topics;\r\n\t},\r\n\tgetParentArticleComboBoxOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): IComboBoxOption[] => {\r\n\t\t\treturn state.articleForm.list.parentArticles.map((item) => ({ value: item.Id, text: item.Title }));\r\n\t\t}\r\n\t),\r\n\tgetExpandedSpacesById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, spaceId: number | string) => spaceId,\r\n\t\t(state, spaceId: number | string): boolean => {\r\n\t\t\treturn state.articleForm.expandedSpaces.includes(spaceId);\r\n\t\t}\r\n\t),\r\n\tgetSpacesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): IDropdownOption[] => {\r\n\t\t\treturn state.articleForm.list.spaces.map((item) => ({ value: item.Id, text: item.Title }));\r\n\t\t}\r\n\t),\r\n\tgetChildrenSpacesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, parentId: string | number) => parentId,\r\n\t\t(state, parentId: string | number): ITreeItem[] => {\r\n\t\t\treturn state.articleForm.list.spaces\r\n\t\t\t\t.filter((space) => space.ParentId === parentId)\r\n\t\t\t\t.map((item) => articleFormSelectors.makeSpacesDropdownOption(state, item));\r\n\t\t}\r\n\t),\r\n\tgetParentSpacesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): ITreeItem[] => {\r\n\t\t\treturn state.articleForm.list.spaces\r\n\t\t\t\t.filter((space) => space.ParentId === null || space.ParentId === \"\")\r\n\t\t\t\t.map((item) => articleFormSelectors.makeSpacesDropdownOption(state, item));\r\n\t\t}\r\n\t),\r\n\tmakeSpacesDropdownOption: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, item: ISpaceItem) => item,\r\n\t\t(state, item: ISpaceItem): ITreeItem => {\r\n\t\t\tconst selectedSpaceId = state.articleForm.data.spaceId;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: item.Id,\r\n\t\t\t\ttitle: item.Title,\r\n\t\t\t\tisDisabled: item.IsParent,\r\n\t\t\t\tchildren: articleFormSelectors.getChildrenSpacesDropdownOptions(state, item.Id),\r\n\t\t\t\tisExpanded: articleFormSelectors.getExpandedSpacesById(state, item.Id),\r\n\t\t\t\tisSelected: selectedSpaceId === item.Id,\r\n\t\t\t\tonClick: (event: React.MouseEvent, treeItem: ITreeItem) => {\r\n\t\t\t\t\t// Updates the state layer by adding the selected item as current selected space\r\n\t\t\t\t\tconst articleFormSvc = ServiceHub.articleForm.start();\r\n\t\t\t\t\tconst previousData = articleFormSvc.getData();\r\n\t\t\t\t\tlet newShape: IArticleFormData;\r\n\r\n\t\t\t\t\tif (!previousData.spaceId || previousData.spaceId === \"\" || previousData.spaceId !== treeItem.id) {\r\n\t\t\t\t\t\tnewShape = { ...previousData, spaceId: treeItem.id };\r\n\t\t\t\t\t\tarticleFormSvc.setData(newShape);\r\n\t\t\t\t\t\tarticleFormSvc.setExpandedSpaceById(parseInt(treeItem.id), true);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// In this case, it is unselecting the space\r\n\t\t\t\t\tnewShape = { ...previousData, spaceId: \"\" };\r\n\t\t\t\t\tarticleFormSvc.setData(newShape);\r\n\t\t\t\t\tarticleFormSvc.setExpandedSpaceById(parseInt(treeItem.id), false);\r\n\t\t\t\t}\r\n\t\t\t} as ITreeItem;\r\n\t\t}\r\n\t),\r\n\tgetCoverImageTypesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): IDropdownOption[] => {\r\n\t\t\treturn state.articleForm.list.coverImageTypes.map((item) => ({ value: item.Id, text: item.Name }));\r\n\t\t}\r\n\t),\r\n\tgetTopicsComboBoxOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, externalItems: string[]) => externalItems,\r\n\t\t(state, externalItems: string[]): DropdownItemProps[] => {\r\n\t\t\tconst resultantCollection: string[] = [\r\n\t\t\t\t...externalItems,\r\n\t\t\t\t...state.articleForm.list.topics.filter((topic: string) => !externalItems.includes(topic))\r\n\t\t\t];\r\n\r\n\t\t\t// creating set to prevent duplicated Topics coming on the options list\r\n\t\t\tconst uniqueCollection = Array.from(new Set(resultantCollection));\r\n\r\n return uniqueCollection.map(\r\n (item): DropdownItemProps => ({\r\n key: item,\r\n value: item,\r\n text: item\r\n // selected: state.articleForm.data.topics?.includes(item)\r\n })\r\n );\r\n\t\t}\r\n\t),\r\n\tgetQueryingParentArticles: (state): boolean => state.articleForm.querying.parentArticles ?? false,\r\n\tgetQueryingSpaces: (state): boolean => state.articleForm.querying.spaces ?? false,\r\n\tgetQueryingCoverImageTypes: (state): boolean => state.articleForm.querying.coverImageTypes ?? false,\r\n\tgetQueryingCoverImages: (state): boolean => state.articleForm.querying.coverImages ?? false,\r\n\tgetQueryingTopics: (state): boolean => state.articleForm.querying.topics ?? false,\r\n\tgetQueryingNode: (state): boolean => state.articleForm.querying.node ?? false,\r\n\tgetQueriedParentArticles: (state): boolean => state.articleForm.queried.parentArticles ?? false,\r\n\tgetQueriedSpaces: (state): boolean => state.articleForm.queried.spaces ?? false,\r\n\tgetQueriedCoverImageTypes: (state): boolean => state.articleForm.queried.coverImageTypes ?? false,\r\n\tgetQueriedCoverImages: (state): boolean => state.articleForm.queried.coverImages ?? false,\r\n\tgetQueriedTopics: (state): boolean => state.articleForm.queried.topics ?? false,\r\n\tgetQueriedNode: (state): boolean => state.articleForm.queried.node ?? false,\r\n\tgetLoading: (state): boolean => state.articleForm.loading ?? false,\r\n\tgetLoaded: (state): boolean => state.articleForm.loaded ?? false,\r\n\tgetParentArticleQuery: (state): string => state.articleForm.parentArticleQuery ?? \"\",\r\n\tgetCoverImageGalleryOpen: (state): boolean => state.articleForm.coverImageGalleryOpen ?? false,\r\n\tgetTopicsText: (state): string => state.articleForm.topicsText ?? \"\",\r\n\tgetBodySourceMode: (state): boolean => state.articleForm.bodySourceMode,\r\n\tgetSubmitting: (state): boolean => state.articleForm.submitting,\r\n\tgetGallery: (state): { imagePath: { [key: string]: string } } => state.articleForm.gallery,\r\n\tgetGalleryImagePathById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, imageId: string) => imageId,\r\n\t\t(state, imageId): string => state.articleForm.gallery.imagePath[imageId] ?? \"\"\r\n\t)\r\n};\r\n","import { createSelector } from \"@reduxjs/toolkit\";\r\nimport { NodeRevisionsResponseModel } from \"../../contracts/models\";\r\nimport { ITreeItem } from \"@coherence-design-system/tree-view\";\r\nimport { IReportReasonValue } from \"../../contracts/slices/node/reportValues\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { ISecurityGroupMembersResponse } from \"../../contracts/slices/node/askToExperts\";\r\n\r\n/**\r\n * Definition of selectors\r\n * for Nodes Management.\r\n */\r\nexport const nodesSelectors = {\r\n\tgetList: (state) => {\r\n\t\treturn state.nodes.list;\r\n\t},\r\n\tgetUserPhoto: (state, userUpn) => {\r\n\t\treturn state.nodes.photos?.[userUpn] ?? \"\";\r\n\t},\r\n\tgetQuerying: (state, userUpn) => state.nodes.querying?.[userUpn] ?? false,\r\n\tgetQueried: (state, userUpn) => state.nodes.queried?.[userUpn] ?? false,\r\n\tgetNodeTopicsIds: (state): string[] => state.nodes.node.topicsIds,\r\n\tgetNodeTopicsNames: (state): string[] => state.nodes.node.topicsNames,\r\n\tgetIsOpenDeleteConfirmation: (state): boolean => state.nodes.ui.isOpenDeleteConfirmation,\r\n\tgetIsOpenStickConfirmation: (state): boolean => state.nodes.ui.isOpenStickConfirmation,\r\n\tgetIsOpenShareContent: (state): boolean => state.nodes.ui.isOpenShareContent,\r\n\tgetIsSubmittingShareContent: (state): boolean => state.nodes.ui.isSubmittingShareContent,\r\n\tgetIsActionConfirmed: (state): boolean => state.nodes.ui.isActionConfirmed,\r\n\tgetNodeConfirmationTitle: (state): string => state.nodes.ui.deleteConfirmationModalTitle,\r\n\tgetNodeConfirmationSubText: (state): string => state.nodes.ui.deleteConfirmationModalSubText,\r\n\tgetNodeConfirmationButtonText: (state): string => state.nodes.ui.deleteConfirmationModalButtonText,\r\n\tgetConfirmationModalAction: (state): null => state.nodes.ui.confirmationModalAction,\r\n\tgetConfirmationStickyAction: (state): null => state.nodes.ui.confirmationStickyAction,\r\n\tgetIsOpenActionPostMessage: (state): boolean => state.nodes.ui.isOpenActionPostMessage,\r\n\tgetIsChangeSpacePanelOpen: (state): boolean => state.nodes.ui.isChangeSpacePanelOpen,\r\n\tgetIsRevisionsPanelOpen: (state): boolean => state.nodes.ui.isRevisionsPanelOpen,\r\n\tgetStickSpaceStatus: (state): boolean => state.nodes.ui.isNodeSpaceSticky,\r\n\tgetStickSiteStatus: (state): boolean => state.nodes.ui.isNodeSiteSticky,\r\n\tgetPrivateStatus: (state): boolean => state.nodes.ui.isNodePrivate,\r\n\tgetIsOpenPrivateConfirmation: (state): boolean => state.nodes.ui.isOpenPrivateConfirmation,\r\n\tgetDeletedStatus: (state): boolean => state.nodes.ui.isNodeDeleted,\r\n\tgetNodeDetailAuthorEmail: (state): string => state.nodes.node.authorEmail,\r\n\tgetReportReasonsData: (state): string[] => state.nodes.node.reportReasonsData,\r\n\tgetNodeRevisions: (state): NodeRevisionsResponseModel[] => state.nodes.node.revisions,\r\n\tgetRevisionById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, itemId: number | string) => itemId,\r\n\t\t(state, itemId): NodeRevisionsResponseModel => {\r\n\t\t\tif (!itemId || itemId === \"\") return null;\r\n\r\n\t\t\treturn state.nodes.node.revisions.find((item) => item.NodeId === parseInt(itemId));\r\n\t\t}\r\n\t),\r\n\tgetRevisionsLoaded: (state): boolean => state.nodes.node.revisionsLoaded,\r\n\tgetSelectedReportReasonById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state) => state.nodes.node.reportReasonValueId,\r\n\t\t(state, selectedReportValueId) => {\r\n\t\t\tlet reportValueById;\r\n\t\t\tconst selectedReportReasonValueId = selectedReportValueId;\r\n\r\n\t\t\tif (!selectedReportReasonValueId) return null;\r\n\r\n\t\t\treportValueById = nodesSelectors.getReasonTypeById(state, selectedReportReasonValueId);\r\n\r\n\t\t\tif (!reportValueById || reportValueById?.Name === \"\") return null;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: selectedReportReasonValueId.toString(),\r\n\t\t\t\ttext: reportValueById?.Name\r\n\t\t\t};\r\n\t\t}\r\n\t),\r\n\tgetReportReasonValues: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): ITreeItem[] => {\r\n\t\t\treturn state.nodes.node.reportReasonsData.map((item) => nodesSelectors.convertReportReasonsToOptions(state, item));\r\n\t\t}\r\n\t),\r\n\tgetReasonTypeById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, itemId: number | string) => itemId,\r\n\t\t(state, itemId): IReportReasonValue => {\r\n\t\t\treturn state.nodes.node.reportReasonsData.find((item) => item.Id === itemId);\r\n\t\t}\r\n\t),\r\n\tconvertReportReasonsToOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, item: IReportReasonValue) => item,\r\n\t\t(state, item: IReportReasonValue): ITreeItem => {\r\n\t\t\tconst selectedReportOptionId = state.nodes.node.reportReasonId;\r\n\t\t\treturn {\r\n\t\t\t\tid: item.Id,\r\n\t\t\t\ttitle: item.Name,\r\n\t\t\t\tisSelected: selectedReportOptionId === item.Id,\r\n\t\t\t\tonClick: (event: React.MouseEvent, treeItem: ITreeItem) => {\r\n\t\t\t\t\tServiceHub.appManagementAPI.setSelectedReportReason(treeItem.id);\r\n\t\t\t\t}\r\n\t\t\t} as ITreeItem;\r\n\t\t}\r\n\t),\r\n\tgetQuestionExperts: (state): ISecurityGroupMembersResponse[] => state.nodes.node.questionExperts,\r\n};\r\n","import store from \"../../redux/store\";\r\nimport { IArticleFormData } from \"../../contracts/article/articleForm\";\r\nimport { articleFormActions } from \"../../redux/reducers/articleForm\";\r\nimport { articleFormSelectors } from \"../../redux/selectors/articleForm\";\r\nimport { ICoverImageInfo, IListControl, INodeQueryResponse, ISpaceItem } from \"../../contracts\";\r\nimport { nodesSelectors } from \"../../redux/selectors/nodes\";\r\nimport { NodeRevisionsResponseModel } from \"../../contracts/models\";\r\n\r\n/**\r\n * Article Form microservice, which allows interacting with the Redux state layer.\r\n */\r\nexport class ArticleFormService {\r\n\tsetData(data: IArticleFormData): void {\r\n\t\tstore.dispatch(articleFormActions.setData(data));\r\n\t}\r\n\r\n\tsetQueriedParentArticles(queried: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueriedParentArticles(queried));\r\n\t}\r\n\r\n\tsetQueryingParentArticles(querying: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueryingParentArticles(querying));\r\n\t}\r\n\r\n\tsetQueriedSpaces(queried: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueriedSpaces(queried));\r\n\t}\r\n\r\n\tsetQueryingSpaces(querying: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueryingSpaces(querying));\r\n\t}\r\n\r\n\tsetQueriedCoverImageTypes(queried: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueriedCoverImageTypes(queried));\r\n\t}\r\n\r\n\tsetQueryingCoverImageTypes(querying: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueryingCoverImageTypes(querying));\r\n\t}\r\n\r\n\tsetQueriedCoverImages(queried: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueriedCoverImages(queried));\r\n\t}\r\n\r\n\tsetQueryingCoverImages(querying: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueryingCoverImages(querying));\r\n\t}\r\n\r\n\tsetQueriedTopics(queried: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueriedTopics(queried));\r\n\t}\r\n\r\n\tsetQueryingTopics(querying: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueryingTopics(querying));\r\n\t}\r\n\r\n\tsetQueriedNode(queried: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueriedNode(queried));\r\n\t}\r\n\r\n\tsetQueryingNode(querying: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setQueryingNode(querying));\r\n\t}\r\n\r\n\tsetParentArticlesList(items: INodeQueryResponse[]): void {\r\n\t\tstore.dispatch(articleFormActions.setParentArticlesList(items));\r\n\t}\r\n\r\n\tsetSpacesList(items: ISpaceItem[]): void {\r\n\t\tstore.dispatch(articleFormActions.setSpacesList(items));\r\n\t}\r\n\r\n\tsetCoverImageTypesList(items: []): void {\r\n\t\tstore.dispatch(articleFormActions.setCoverImageTypesList(items));\r\n\t}\r\n\r\n\tsetCoverImagesList(items: []): void {\r\n\t\tstore.dispatch(articleFormActions.setCoverImagesList(items));\r\n\t}\r\n\r\n\tsetCoverImagesListControl(coverImagesControl: IListControl): void {\r\n\t\tstore.dispatch(articleFormActions.setCoverImagesListControl(coverImagesControl));\r\n\t}\r\n\r\n\tsetCoverImagesListPage(newPage: number): void {\r\n\t\tstore.dispatch(articleFormActions.setCoverImagesListPage(newPage));\r\n\t}\r\n\r\n\tsetGalleryImagePathById(imageId: string, imagePath: string): void {\r\n\t\tstore.dispatch(articleFormActions.setGalleryImagePathById({ id: imageId, path: imagePath }));\r\n\t}\r\n\r\n\tsetTopicsList(items: string[]): void {\r\n\t\tstore.dispatch(articleFormActions.setTopicsList(items));\r\n\t}\r\n\r\n\tsetLoaded(loaded: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setLoaded(loaded));\r\n\t}\r\n\r\n\tsetLoading(loading: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setLoading(loading));\r\n\t}\r\n\r\n\tsetParentArticleQuery(query: string): void {\r\n\t\tstore.dispatch(articleFormActions.setParentArticleQuery(query));\r\n\t}\r\n\r\n\tsetCoverImageGalleryOpen(open: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setCoverImageGalleryOpen(open));\r\n\t}\r\n\r\n\tsetTopicsText(text: string): void {\r\n\t\tstore.dispatch(articleFormActions.setTopicsText(text));\r\n\t}\r\n\r\n\tsetBodySourceMode(sourceMode: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setBodySourceMode(sourceMode));\r\n\t}\r\n\r\n\tsetExpandedSpaceById(spaceId: number, expanded: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setExpandedSpaceById({ spaceId, expanded }));\r\n\t}\r\n\r\n\tsetSubmitting(submitting: boolean): void {\r\n\t\tstore.dispatch(articleFormActions.setSubmitting(submitting));\r\n\t}\r\n\r\n\tgetData(): IArticleFormData {\r\n\t\treturn articleFormSelectors.getData(store.getState());\r\n\t}\r\n\r\n\tgetParentArticlesList(): INodeQueryResponse[] {\r\n\t\treturn articleFormSelectors.getParentArticlesList(store.getState());\r\n\t}\r\n\r\n\tgetExpandedSpaceById(spaceId: number): boolean {\r\n\t\treturn articleFormSelectors.getExpandedSpacesById(store.getState(), spaceId);\r\n\t}\r\n\r\n\tgetSpacesList(): ISpaceItem[] {\r\n\t\treturn articleFormSelectors.getSpacesList(store.getState());\r\n\t}\r\n\r\n\tgetSpaceById(itemId: string | number): ISpaceItem {\r\n\t\treturn articleFormSelectors.getSpaceById(store.getState(), itemId);\r\n\t}\r\n\r\n\tgetCoverImagesList(): ICoverImageInfo[] {\r\n\t\treturn articleFormSelectors.getCoverImagesList(store.getState());\r\n\t}\r\n\r\n\tgetCoverImagesListControl(): IListControl {\r\n\t\treturn articleFormSelectors.getCoverImagesListControl(store.getState());\r\n\t}\r\n\r\n\tgetCoverImagesListPage(): number {\r\n\t\treturn articleFormSelectors.getCoverImagesListPage(store.getState());\r\n\t}\r\n\r\n\tgetCoverImagesListTotal(): number {\r\n\t\treturn articleFormSelectors.getCoverImagesListTotal(store.getState());\r\n\t}\r\n\r\n\tgetCoverImageTypesList(): [] {\r\n\t\treturn articleFormSelectors.getCoverImageTypesList(store.getState());\r\n\t}\r\n\r\n\tgetGalleryImagePathById(imageId: string): string {\r\n\t\treturn articleFormSelectors.getGalleryImagePathById(store.getState(), imageId);\r\n\t}\r\n\r\n\tgetTopicsList(): string[] {\r\n\t\treturn articleFormSelectors.getTopicsList(store.getState());\r\n\t}\r\n\r\n\tgetQueryingParentArticles(): boolean {\r\n\t\treturn articleFormSelectors.getQueryingParentArticles(store.getState());\r\n\t}\r\n\r\n\tgetQueryingSpaces(): boolean {\r\n\t\treturn articleFormSelectors.getQueryingSpaces(store.getState());\r\n\t}\r\n\r\n\tgetQueryingCoverImageTypes(): boolean {\r\n\t\treturn articleFormSelectors.getQueryingCoverImageTypes(store.getState());\r\n\t}\r\n\r\n\tgetQueryingCoverImages(): boolean {\r\n\t\treturn articleFormSelectors.getQueryingCoverImages(store.getState());\r\n\t}\r\n\r\n\tgetQueryingTopics(): boolean {\r\n\t\treturn articleFormSelectors.getQueryingTopics(store.getState());\r\n\t}\r\n\r\n\tgetQueryingNode(): boolean {\r\n\t\treturn articleFormSelectors.getQueryingNode(store.getState());\r\n\t}\r\n\r\n\tgetQueriedParentArticles(): boolean {\r\n\t\treturn articleFormSelectors.getQueriedParentArticles(store.getState());\r\n\t}\r\n\r\n\tgetQueriedSpaces(): boolean {\r\n\t\treturn articleFormSelectors.getQueriedSpaces(store.getState());\r\n\t}\r\n\r\n\tgetQueriedCoverImageTypes(): boolean {\r\n\t\treturn articleFormSelectors.getQueriedCoverImageTypes(store.getState());\r\n\t}\r\n\r\n\tgetQueriedCoverImages(): boolean {\r\n\t\treturn articleFormSelectors.getQueriedCoverImages(store.getState());\r\n\t}\r\n\r\n\tgetQueriedTopics(): boolean {\r\n\t\treturn articleFormSelectors.getQueriedTopics(store.getState());\r\n\t}\r\n\r\n\tgetQueriedNode(): boolean {\r\n\t\treturn articleFormSelectors.getQueriedNode(store.getState());\r\n\t}\r\n\r\n\tgetLoading(): boolean {\r\n\t\treturn articleFormSelectors.getLoading(store.getState());\r\n\t}\r\n\r\n\tgetLoaded(): boolean {\r\n\t\treturn articleFormSelectors.getLoaded(store.getState());\r\n\t}\r\n\r\n\tgetParentArticleQuery(): string {\r\n\t\treturn articleFormSelectors.getParentArticleQuery(store.getState());\r\n\t}\r\n\r\n\tgetCoverImageGalleryOpen(): boolean {\r\n\t\treturn articleFormSelectors.getCoverImageGalleryOpen(store.getState());\r\n\t}\r\n\r\n\tgetTopicsText(): string {\r\n\t\treturn articleFormSelectors.getTopicsText(store.getState());\r\n\t}\r\n\r\n\tgetBodySourceMode(): boolean {\r\n\t\treturn articleFormSelectors.getBodySourceMode(store.getState());\r\n\t}\r\n\r\n\tgetSubmitting(): boolean {\r\n\t\treturn articleFormSelectors.getSubmitting(store.getState());\r\n\t}\r\n\r\n\treset(): void {\r\n\t\tstore.dispatch(articleFormActions.reset());\r\n\t}\r\n\r\n\tresetData(): void {\r\n\t\tstore.dispatch(articleFormActions.resetData());\r\n\t}\r\n\r\n\t/**\r\n\t * Resets the Article (Node) form configuration.\r\n\t */\r\n\tresetFormConfig(): void {\r\n\t\tstore.dispatch(articleFormActions.resetFormConfig());\r\n\t}\r\n\r\n\tgetRevisionById(itemId: string | number): NodeRevisionsResponseModel {\r\n\t\treturn nodesSelectors.getRevisionById(store.getState(), itemId);\r\n\t}\r\n}\r\n","import { Configuration, RedirectRequest, LogLevel } from \"@azure/msal-browser\";\r\n\r\nconst ua = window.navigator.userAgent;\r\nconst msie = ua.includes(\"MSIE \") ? ua.search(\"MSIE \") : -1;\r\nconst msie11 = ua.includes(\"Trident/\") ? ua.search(\"Trident/\") : -1;\r\nconst msedge = ua.includes(\"Edge/\") ? ua.search(\"Edge/\") : -1;\r\nconst firefox = ua.includes(\"Firefox\") ? ua.search(\"Firefox\") : -1;\r\nconst isIE = msie > 0 || msie11 > 0;\r\nconst isEdge = msedge > 0;\r\nconst isFirefox = firefox > 0;\r\n\r\n// Default Config object to be passed to Msal on creation\r\nexport const msalConfig: Configuration = {\r\n\tauth: {\r\n\t\tclientId: \"64bd0c88-2d66-4227-a2bb-b1fcc3243289\",\r\n\t\tauthority: \"https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n\t\tredirectUri: \"/\",\r\n\t\tpostLogoutRedirectUri: \"/\"\r\n\t},\r\n\tcache: {\r\n\t\tcacheLocation: \"localStorage\",\r\n\t\tstoreAuthStateInCookie: isIE || isEdge || isFirefox\r\n\t},\r\n\tsystem: {\r\n\t\tallowNativeBroker: false, // Disables WAM Broker\r\n\t\tloggerOptions: {\r\n\t\t\tloggerCallback: (level, message, containsPii) => {\r\n\t\t\t\tif (containsPii) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tswitch (level) {\r\n\t\t\t\t\tcase LogLevel.Error:\r\n\t\t\t\t\t\tconsole.error(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tcase LogLevel.Info:\r\n\t\t\t\t\t\tconsole.info(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tcase LogLevel.Verbose:\r\n\t\t\t\t\t\tconsole.debug(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tcase LogLevel.Warning:\r\n\t\t\t\t\t\tconsole.warn(message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// scopes for id token to be used at MS Identity Platform endpoints.\r\nexport const loginRequest: RedirectRequest = {\r\n\tscopes: [\"User.Read\"],\r\n};\r\n\r\n// The endpoints for MS Graph API services\r\nexport const graphConfig = {\r\n\tgraphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\",\r\n\tgraphUsersEndpoint: \"https://graph.microsoft.com/v1.0/users\"\r\n};\r\n","import { AuthenticationResult, EventMessage, EventType, LogLevel, PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { useAccount, useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport { IAzureAdConfigOptions } from \"../contracts\";\r\nimport { graphConfig, loginRequest, msalConfig } from \"./authConfig\";\r\n\r\nlet publicClientApplication: PublicClientApplication;\r\n\r\ntype GraphData = {\r\n\tdisplayName: string;\r\n\tjobTitle: string;\r\n\tmail: string;\r\n\tbusinessPhones: string[];\r\n\tofficeLocation: string;\r\n};\r\n\r\n/**\r\n * An MSAL Service wrapper class.\r\n */\r\nexport class MsalService {\r\n\t/**\r\n\t * Provides an access to the current instance of the MSAL in the app.\r\n\t *\r\n\t * @returns The PublicClientApplication instantiated.\r\n\t */\r\n\tpublic static Get(): PublicClientApplication {\r\n\t\treturn publicClientApplication;\r\n\t}\r\n\r\n\t/*\r\n\t * Initialize MSAL PublicClientApplication Object\r\n\t */\r\n\tpublic static PublicClientApplication = (\r\n\t\tdevMode: boolean,\r\n\t\tazureConfigs: IAzureAdConfigOptions\r\n\t): PublicClientApplication => {\r\n\t\tif (\r\n\t\t\tazureConfigs.clientId &&\r\n\t\t\tazureConfigs.authority &&\r\n\t\t\tazureConfigs.redirectUri &&\r\n\t\t\tazureConfigs.postLogoutRedirectUri\r\n\t\t) {\r\n\t\t\tmsalConfig.auth.clientId = azureConfigs.clientId;\r\n\t\t\tmsalConfig.auth.authority = azureConfigs.authority;\r\n\t\t\tmsalConfig.auth.redirectUri = azureConfigs.redirectUri;\r\n\t\t\tmsalConfig.auth.postLogoutRedirectUri = azureConfigs.postLogoutRedirectUri;\r\n\t\t\tmsalConfig.system = devMode\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tloggerOptions: {\r\n\t\t\t\t\t\t\tloggerCallback(loglevel, message, containsPii) {\r\n\t\t\t\t\t\t\t\tif (containsPii) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tswitch (loglevel) {\r\n\t\t\t\t\t\t\t\t\tcase LogLevel.Error:\r\n\t\t\t\t\t\t\t\t\t\tconsole.error(message);\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\tcase LogLevel.Info:\r\n\t\t\t\t\t\t\t\t\t\tconsole.info(message);\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\tcase LogLevel.Verbose:\r\n\t\t\t\t\t\t\t\t\t\tconsole.debug(message);\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\tcase LogLevel.Warning:\r\n\t\t\t\t\t\t\t\t\t\tconsole.warn(message);\r\n\t\t\t\t\t\t\t\t\t\treturn;\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\tpiiLoggingEnabled: false,\r\n\t\t\t\t\t\t\tlogLevel: LogLevel.Verbose\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t: msalConfig.system;\r\n\t\t\tmsalConfig.system.allowRedirectInIframe = true;\r\n\t\t} else {\r\n\t\t\tthrow Error(\"No azure active directory configuration! Verify azure active directory configuration.\");\r\n\t\t}\r\n\r\n\t\tlet msalInstance = new PublicClientApplication(msalConfig);\r\n\r\n\t\tmsalInstance.addEventCallback((event: EventMessage) => {\r\n\t\t\tif (event.eventType === EventType.LOGIN_SUCCESS && event.payload) {\r\n\t\t\t\tconst payload = event.payload as AuthenticationResult;\r\n\t\t\t\tconst account = payload.account;\r\n\t\t\t\tmsalInstance.setActiveAccount(account);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * When using redirect APIs, handleRedirectPromise must be invoked when returning from the redirect.\r\n\t\t * This ensures that the token response from the server is properly handled and temporary cache entries are cleaned up.\r\n\t\t * */\r\n\t\tmsalInstance\r\n\t\t\t.handleRedirectPromise()\r\n\t\t\t.then((response) => {\r\n\t\t\t\tif (response !== null) {\r\n\t\t\t\t\tmsalInstance.setActiveAccount(response.account);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// need to call getAccount here?\r\n\t\t\t\t\tconst currentAccounts = msalInstance.getAllAccounts();\r\n\t\t\t\t\tif (!currentAccounts || currentAccounts.length < 1) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t} else if (currentAccounts.length > 1) {\r\n\t\t\t\t\t\t// Add choose account code here\r\n\t\t\t\t\t\t// Need to revisit here\r\n\t\t\t\t\t\tconst activeAccount = currentAccounts[0];\r\n\t\t\t\t\t\tmsalInstance.setActiveAccount(activeAccount);\r\n\t\t\t\t\t} else if (currentAccounts.length === 1) {\r\n\t\t\t\t\t\tconst activeAccount = currentAccounts[0];\r\n\t\t\t\t\t\tmsalInstance.setActiveAccount(activeAccount);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.error(err);\r\n\t\t\t\tthrow Error(\"Error in login! Verify azure active directory configuration.\");\r\n\t\t\t});\r\n\r\n\t\tpublicClientApplication = msalInstance;\r\n\r\n\t\treturn publicClientApplication;\r\n\t};\r\n\r\n\t/*\r\n\t * Get login user details from the graph API\r\n\t */\r\n\tpublic static async GetCurrentUser(): Promise {\r\n\t\tlet graphData: GraphData;\r\n\r\n\t\tawait MsalService.GetLoginUserDetailsFromGrapAPI().then((response) => {\r\n\t\t\treturn (graphData = response);\r\n\t\t});\r\n\r\n\t\treturn graphData;\r\n\t}\r\n\r\n\t/*\r\n\t * Get login user account detail\r\n\t */\r\n\tpublic static GetLoginUserAccounts = () => {\r\n\t\tconst { accounts } = useMsal();\r\n\t\tconst account = useAccount(accounts[0] || {});\r\n\t\treturn account;\r\n\t};\r\n\r\n\t/*\r\n\t * Validate the login user is authenticated\r\n\t */\r\n\tpublic static IsAuthenticated = () => {\r\n\t\tconst isAuthenticatedLogin = useIsAuthenticated();\r\n\t\treturn isAuthenticatedLogin;\r\n\t};\r\n\r\n\t/*\r\n\t * Get login interaction is in progress or all interactions are complete\r\n\t */\r\n\tpublic static GetInteractionStatus = () => {\r\n\t\tconst { inProgress } = useMsal();\r\n\t\treturn inProgress;\r\n\t};\r\n\r\n\t/*\r\n\t * Silently acquire an access token for a given set of scopes.\r\n\t */\r\n\tpublic static GetAccessToken = async (graphApiParam: any, forceRefresh: boolean) => {\r\n\t\tlet accessToken;\r\n\r\n\t\tconst account = publicClientApplication.getActiveAccount();\r\n\t\tif (!account) {\r\n\t\t\tthrow Error(\"No active account! Verify a user has been signed in and setActiveAccount has been called.\");\r\n\t\t}\r\n\r\n\t\tawait publicClientApplication\r\n\t\t\t.acquireTokenSilent({\r\n\t\t\t\t...graphApiParam,\r\n\t\t\t\taccount: account,\r\n\t\t\t\tforceRefresh: forceRefresh\r\n\t\t\t})\r\n\t\t\t.then((response) => {\r\n\t\t\t\taccessToken = response.accessToken;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.errorCode === \"consent_required\" ||\r\n\t\t\t\t\terror.errorCode === \"interaction_required\" ||\r\n\t\t\t\t\terror.errorCode === \"login_required\"\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn publicClientApplication.acquireTokenPopup(loginRequest).then((resp) => resp.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow Error(\"Error in acquireTokenSilent! {\" + error + \"}.\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tif (!accessToken)\r\n\t\t\tthrow Error(\r\n\t\t\t\t\"Error in acquireTokenSilent! Verify a user has been signed in and setActiveAccount has been called.\"\r\n\t\t\t);\r\n\r\n\t\treturn accessToken;\r\n\t};\r\n\r\n\tprivate static async GetLoginUserDetailsFromGrapAPI() {\r\n\t\tconst accessToken = await MsalService.GetAccessToken(loginRequest, true);\r\n\r\n\t\tconst headers = new Headers();\r\n\t\tconst bearer = `Bearer ${accessToken}`;\r\n\r\n\t\theaders.append(\"Authorization\", bearer);\r\n\r\n\t\tconst options = {\r\n\t\t\tmethod: \"GET\",\r\n\t\t\theaders: headers\r\n\t\t};\r\n\r\n\t\treturn fetch(graphConfig.graphMeEndpoint, options)\r\n\t\t\t.then((response) => response.json())\r\n\t\t\t.catch((error) => console.log(error));\r\n\t}\r\n}\r\n","import { setPhotoByUserUpn, setQueried, setQuerying } from \"../../redux/reducers/nodes\";\r\nimport store from \"../../redux/store\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\nimport { MsalService } from \"../../auth\";\r\nimport { base64Encode } from \"../../lib/strikeLibrary\";\r\nimport { nodesSelectors } from \"../../redux/selectors/nodes\";\r\nimport { ServiceHub } from \"../base/ServiceHub\";\r\n\r\nlet currentUserNew: any;\r\n\r\n/**\r\n * Class for handling requests to gather User Profile\r\n * info via backend services.\r\n */\r\nexport class UserProfileAPIService extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"userprofiles\");\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an User Profile picture based on its e-mail (upn).\r\n\t *\r\n\t * @param userUpn The user e-mail (upn) to query a profile picture from.\r\n\t * @param ac [optional] The abort controller\r\n\t * @returns The profile picture already acquired.\r\n\t */\r\n\tasync getProfilePhoto(userUpn: string, ac?: undefined | AbortController) {\r\n\t\tconst b64Upn = btoa(userUpn);\r\n\r\n\t\tthis.setPhotoQuerying(userUpn, true);\r\n\r\n\t\treturn this.get(`${b64Upn}/profilePhoto`, ac)\r\n\t\t\t.then(async (data) => {\r\n\t\t\t\tthis.setUserByUpn(b64Upn, data);\r\n\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch((ex) => {\r\n\t\t\t\t// TODO: Handle image loading errors\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.setPhotoQuerying(userUpn, false);\r\n\t\t\t\tthis.setPhotoQueried(userUpn, true);\r\n\t\t\t});\r\n\t}\r\n\r\n\tasync setPhotoQuerying(userUpn: string, querying: boolean) {\r\n\t\tconst b64Upn = btoa(userUpn);\r\n\r\n\t\tstore.dispatch(setQuerying({ userUpn: b64Upn, querying }));\r\n\t}\r\n\r\n\tasync setPhotoQueried(userUpn: string, queried: boolean) {\r\n\t\tconst b64Upn = btoa(userUpn);\r\n\r\n\t\tstore.dispatch(setQueried({ userUpn: b64Upn, queried }));\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an User Profile information from the graph API.\r\n\t */\r\n\r\n\tasync InitializeCurrentUserProfile() {\r\n\t\t//Getting logged user details from the Graph API\r\n\t\tconst currentUser = await MsalService.GetCurrentUser();\r\n\r\n\t\tif (!currentUser && !currentUser.userPrincipalName) {\r\n\t\t\tPromise.reject(\"Cannot retrieve current logged in user profile using MsalService\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tcurrentUserNew = currentUser;\r\n\r\n\t\t// return userProfile.UserPrincipalName ? userProfile.UserPrincipalName : null;\r\n\t\treturn currentUserNew.userPrincipalName ? currentUserNew.userPrincipalName : null;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets user photo based on userPrincipalName on the state layer\r\n\t * @param upn\r\n\t * @param data\r\n\t */\r\n\tasync setUserByUpn(upn: string, data: string | { Data: string }) {\r\n\t\tstore.dispatch(\r\n\t\t\tsetPhotoByUserUpn({\r\n\t\t\t\tuserUpn: upn,\r\n\t\t\t\tphotoUrl: typeof data === \"string\" ? data : !data.Data || data.Data === \"\" ? false : data.Data\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an User Profile information.\r\n\t *\r\n\t * @returns The user profile full name.\r\n\t */\r\n\r\n\tasync GetCurrentUserDisplayName() {\r\n\t\treturn currentUserNew && currentUserNew.givenName + \" \" + currentUserNew.surname;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an User Profile information.\r\n\t *\r\n\t * @returns The profile principal name.\r\n\t */\r\n\r\n\tasync GetCurrentUserUpn() {\r\n\t\treturn currentUserNew && currentUserNew.userPrincipalName;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an User Profile information.\r\n\t *\r\n\t * @returns The profile email.\r\n\t */\r\n\tasync GetCurrentUserEmail() {\r\n\t\treturn currentUserNew && currentUserNew.mail;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an user UPN information.\r\n\t *\r\n\t * @returns The profile email.\r\n\t */\r\n\tasync GetCurrentUserId() {\r\n\t\treturn currentUserNew && currentUserNew.id;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets an User Profile information.\r\n\t *\r\n\t * @returns The entire use profile information object.\r\n\t */\r\n\r\n\tasync GetCurrentUserProfile() {\r\n\t\treturn currentUserNew;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether the logged user can access the\r\n\t * Article and Questions component.\r\n\t *\r\n\t * @returns True if access is authorized, false if not.\r\n\t */\r\n\tasync canAccessArticleQuestion(): Promise {\r\n\t\tconst base64Upn = base64Encode(await this.GetCurrentUserUpn());\r\n\r\n\t\treturn await this.get(`CheckComponentAuthorization/${base64Upn}`)\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tasync loadProfilePictures(\r\n\t\tuserPrincipalName: string,\r\n\t\tabortController?: undefined | AbortController\r\n\t): Promise {\r\n\t\tconst state = store.getState();\r\n\t\tconst b64upn = userPrincipalName !== null ? btoa(userPrincipalName) : \"\";\r\n\t\tconst userProfilePhoto = nodesSelectors.getUserPhoto(state, b64upn);\r\n\t\tconst userProfilePhotoQuerying = nodesSelectors.getQuerying(state, b64upn);\r\n\t\tconst userProfilePhotoQueried = nodesSelectors.getQueried(state, b64upn);\r\n\r\n\t\treturn setTimeout(async () => {\r\n\t\t\ttry {\r\n\t\t\t\tif (b64upn && !userProfilePhoto && !userProfilePhotoQueried && !userProfilePhotoQuerying) {\r\n\t\t\t\t\tawait this.getProfilePhoto(userPrincipalName, abortController);\r\n\t\t\t\t}\r\n\t\t\t} catch (ex: any) {\r\n\t\t\t\tif (ex?.name === \"AbortError\") {\r\n\t\t\t\t\tabortController?.abort();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t}\r\n\r\n\t/**\r\n\t * Dedicated method to load Profile Pictures specific on Follow component\r\n\t * This version doesnt require timeOut delay\r\n\t * @param userPrincipalName\r\n\t * @param abortController\r\n\t */\r\n\tasync loadFollowersProfilePictures(\r\n\t\tuserPrincipalName: string,\r\n\t\tabortController?: undefined | AbortController\r\n\t): Promise {\r\n\t\tconst state = store.getState();\r\n\t\tconst b64upn = userPrincipalName !== null ? btoa(userPrincipalName) : \"\";\r\n\t\tconst userProfilePhoto = nodesSelectors.getUserPhoto(state, b64upn);\r\n\t\tconst userProfilePhotoQuerying = nodesSelectors.getQuerying(state, b64upn);\r\n\t\tconst userProfilePhotoQueried = nodesSelectors.getQueried(state, b64upn);\r\n\r\n\t\ttry {\r\n\t\t\tif (b64upn && !userProfilePhoto && !userProfilePhotoQueried && !userProfilePhotoQuerying) {\r\n\t\t\t\tawait this.getProfilePhoto(userPrincipalName, abortController);\r\n\t\t\t}\r\n\t\t} catch (ex: any) {\r\n\t\t\tif (ex?.name === \"AbortError\") {\r\n\t\t\t\tabortController?.abort();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { MsalService, graphConfig, loginRequest } from \"../auth\";\r\nimport { IMSGraphUserBasic } from \"../contracts/models\";\r\n\r\n/**\r\n * Mini-API for accessing MS Graph information straightforward.\r\n */\r\nexport class GraphAPIService {\r\n\t/**\r\n\t * Gets a User Photo from the MSAL using direct\r\n\t * approach, instead of passing through BE services.\r\n\t *\r\n\t * @param userUpn the User Principal Name\r\n\t * @returns\r\n\t */\r\n\tasync getProfilePhoto(userUpn: string): Promise {\r\n\t\tconst instance = MsalService.Get();\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst endpointUrl: string = graphConfig.graphUsersEndpoint + `/${userUpn}/photo/$value`;\r\n\r\n\t\t\tinstance\r\n\t\t\t\t.acquireTokenSilent({\r\n\t\t\t\t\tscopes: [\"user.read\"]\r\n\t\t\t\t})\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tfetch(graphConfig.graphUsersEndpoint + `${userUpn}/photo/$value`, {\r\n\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\tAuthorization: \"Bearer \" + response.accessToken\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\t.then((response) => (response.ok ? response.blob() : response.json()))\r\n\t\t\t\t\t\t.then((data) => {\r\n\t\t\t\t\t\t\tif (data.error) {\r\n\t\t\t\t\t\t\t\treject(data);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tresolve(URL.createObjectURL(data));\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t\t\treject(new Error(e));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a list of users from the MS Graph.\r\n\t * It uses displayName and userPrincipalName props\r\n\t * during searching for User possibilities.\r\n\t *\r\n\t * @param search The text to search users based on it.\r\n\t * @param top [Optional] The top list of users, by default, 15.\r\n\t *\r\n\t * @returns List of found users as IMSGraphUserBasic[]\r\n\t */\r\n\tasync searchUsers(search: undefined | string, top: undefined | number = 15): Promise {\r\n\t\tif (search === \"\" || !search) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst instance = MsalService.Get();\r\n\t\tconst selectParams = \"$select=displayName,userPrincipalName\";\r\n\t\tconst searchParams =\r\n\t\t\tsearch !== undefined && search !== \"\"\r\n\t\t\t\t? `$search=(\"displayName:${search}\" OR \"userPrincipalName:${search}\")&`\r\n\t\t\t\t: ``;\r\n\t\tconst filterParams = `$filter=endswith(userPrincipalName, '@microsoft.com')`;\r\n\t\tconst countParams = \"$count=true\";\r\n\t\tconst topParams = `$top=${top}`;\r\n\t\tconst orderByParams = \"$orderby=displayName\";\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tinstance\r\n\t\t\t\t.acquireTokenSilent({\r\n\t\t\t\t\tscopes: loginRequest.scopes\r\n\t\t\t\t})\r\n\t\t\t\t.then((response) => {\r\n\t\t\t\t\tfetch(\r\n\t\t\t\t\t\tgraphConfig.graphUsersEndpoint +\r\n\t\t\t\t\t\t\t`?${searchParams}${selectParams}&${filterParams}&${countParams}&${topParams}&${orderByParams}`,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\tAuthorization: `Bearer ${response.accessToken}`,\r\n\t\t\t\t\t\t\t\tConsistencyLevel: \"eventual\"\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\t\t.then((response) => (response.ok ? response.json() : response.body))\r\n\t\t\t\t\t\t.then((data) => {\r\n\t\t\t\t\t\t\tif (data.error) {\r\n\t\t\t\t\t\t\t\treject(data);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tresolve(data.value);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((e) => {\r\n\t\t\t\t\t\t\treject(new Error(e));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n","import { generatePath } from \"react-router-dom\";\r\n\r\n/**\r\n * Prepares and returns\r\n * The current application URL,\r\n * complete.\r\n *\r\n * @returns string with full current location Path.\r\n */\r\nexport function getCurrentUrl(): string {\r\n\tconst url = window.location.href;\r\n\r\n\treturn `${url}`;\r\n}\r\n\r\n/**\r\n * Prepares a Text string to be used within a URL,\r\n * safely encoded as URI Component.\r\n *\r\n * @param text The text to encode.\r\n * @returns Encoded text, as well as and <+> signs get replaced by dashes.\r\n */\r\nexport function prepareUrlText(text: string): string {\r\n\treturn encodeURIComponent(text.replaceAll(\" \", \"-\").replaceAll(\"+\", \"-\"));\r\n}\r\n\r\n/**\r\n * Maintains a centralized path configuration set.\r\n * For the application navigation and routing configuration.\r\n */\r\nexport const RoutePathStrings = {\r\n\tarticle: \"/articles/:id/:title?/*\",\r\n\tarticleComment: \"/articles/:id/:title?/comment/:commentId\",\r\n\tarticleCreate: \"/articles/create\",\r\n\tarticleEdit: \"/articles/edit/:id?\",\r\n\tarticleAuthorUpdate: \"/article/authorupdate\",\r\n\tattachmentDownload: \"/storage/attachments/:filePath\",\r\n\tdashboard: \"/Dashboard\",\r\n\t// eventRegistration: \"/registration/*\",\r\n\t// eventCheckIn: \"/registration/check-in\",\r\n\tevent: `/event/:id/:title?/*`,\r\n\teventSearch: `/event/search`,\r\n\teventCreate: `/event/create`,\r\n\teventEdit: `/event/edit/:id?`,\r\n\teventSettings: `/event/settings/:id?`,\r\n\teventCheckIn: `/event/check-in`,\r\n\teventCheckIns: `/event/checkins`,\r\n\tquestion: `/questions/:id/:title?/*`,\r\n\tquestionCreate: `/questions/create`,\r\n\tquestionEdit: `/questions/edit/:id?`,\r\n\tspaces: `/spaces/:id/:title?/*`,\r\n\tspaceManage: `/spaces/manage`,\r\n\tglobalBannerManage: `/banners/manage`,\r\n\tspaceCreate: `/spaces/create`,\r\n\tspaceEdit: `/spaces/edit/:id?`,\r\n\tspacesDashboard: `/spaces`,\r\n\ttopicsDashboard: `/topics`,\r\n\ttopics: `/topics/:id/:title?/*`,\r\n\tquestionsDashboard: `/questions`,\r\n\tarticlesDashboard: `/articles`,\r\n\troot: \"/\",\r\n\tany: \"*\"\r\n};\r\n\r\n/**\r\n * Maintains a centralized path attribution set\r\n * For the application navigation and routing configuration.\r\n */\r\nexport const ApplicationRoutePaths = {\r\n\tarticle: (id: string, title: undefined | string = \"\") =>\r\n\t\tgeneratePath(RoutePathStrings.article, {\r\n\t\t\tid,\r\n\t\t\ttitle: !title ? \"\" : prepareUrlText(title)\r\n\t\t}),\r\n\tarticleComment: (id: string, commentId: string, title?: string) => generatePath(RoutePathStrings.articleComment, { id, title, commentId }),\r\n\tarticleCreate: () => RoutePathStrings.articleCreate,\r\n\tarticleEdit: (id: string) => generatePath(RoutePathStrings.articleEdit, { id }),\r\n\tattachmentDownload: (filePath: string) => generatePath(RoutePathStrings.attachmentDownload, { filePath }),\r\n\tdashboard: () => RoutePathStrings.dashboard,\r\n\t// eventRegistration: () => RoutePathStrings.eventRegistration,\r\n\t// eventCheckIn: () => RoutePathStrings.eventCheckIn,\r\n\tevent: (id: string, title: undefined | string = \"\") =>\r\n\t\tgeneratePath(RoutePathStrings.event, { id, title: !title ? \"\" : prepareUrlText(title) }),\r\n\teventCreate: () => RoutePathStrings.eventCreate,\r\n\teventSearch: () => RoutePathStrings.eventSearch,\r\n\teventEdit: (id: string) => generatePath(RoutePathStrings.eventEdit, { id }),\r\n\teventSettings: (id: string) => generatePath(RoutePathStrings.eventSettings, { id }),\r\n\teventCheckIn: () => RoutePathStrings.eventCheckIn,\r\n\teventCheckIns: () => RoutePathStrings.eventCheckIns,\r\n\tquestion: (id: string, title: undefined | string = \"\") =>\r\n\t\tgeneratePath(RoutePathStrings.question, { id, title: !title ? \"\" : prepareUrlText(title) }),\r\n\tquestionCreate: () => RoutePathStrings.questionCreate,\r\n\tquestionEdit: (id: string) => generatePath(RoutePathStrings.questionEdit, { id }),\r\n\tspaces: (id: string, title: undefined | string = \"\") =>\r\n\t\tgeneratePath(RoutePathStrings.spaces, { id, title: !title ? \"\" : prepareUrlText(title) }),\r\n\tspaceManage: () => RoutePathStrings.spaceManage,\r\n\tglobalBannerManage: () => RoutePathStrings.globalBannerManage,\r\n\tspaceCreate: () => RoutePathStrings.spaceCreate,\r\n\tspaceEdit: (id: string) => generatePath(RoutePathStrings.spaceEdit, { id }),\r\n\tspacesDashboard: () => RoutePathStrings.spacesDashboard,\r\n\ttopicsDashboard: () => RoutePathStrings.topicsDashboard,\r\n\ttopics: (id: string, title: undefined | string = \"\") =>\r\n\t\tgeneratePath(RoutePathStrings.topics, { id, title: !title ? \"\" : prepareUrlText(title) }),\r\n\tquestionsDashboard: () => RoutePathStrings.questionsDashboard,\r\n\tarticlesDashboard: () => RoutePathStrings.articlesDashboard,\r\n\troot: () => RoutePathStrings.root,\r\n\tany: () => RoutePathStrings.any\r\n};\r\n","import React from \"react\";\r\nimport { createSelector } from \"reselect\";\r\nimport { IDropdownOption, IGroup } from \"@fluentui/react\";\r\nimport { ISpaceItem } from \"../../contracts\";\r\nimport { DropdownItemProps } from \"semantic-ui-react\";\r\nimport { ITreeItem } from \"@coherence-design-system/tree-view\";\r\nimport { ApplicationRoutePaths } from \"../../components/router\";\r\nimport { ServiceHub } from \"../../service\";\r\n\r\n/**\r\n * Article Form data access selectors.\r\n */\r\nexport const spacesSelectors = {\r\n\tgetSelectedId: (state): null | number | string => {\r\n\t\treturn state.spaces.selectedId;\r\n\t},\r\n\tgetSpacesList: (state): ISpaceItem[] => {\r\n\t\treturn state.spaces.spaces;\r\n\t},\r\n\tgetSelectedItem: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state) => state.spaces.selectedId,\r\n\t\t(state, selectedId) => {\r\n\t\t\tlet spaceById;\r\n\t\t\tconst selectedSpaceId = selectedId;\r\n\t\t\tconst loaded = spacesSelectors.getLoaded(state);\r\n\r\n\t\t\tif (!selectedSpaceId || !loaded) return null;\r\n\r\n\t\t\tspaceById = spacesSelectors.getSpaceById(state, selectedSpaceId);\r\n\r\n\t\t\tif (!spaceById || spaceById?.Title === \"\") return null;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: selectedSpaceId.toString(),\r\n\t\t\t\ttext: spaceById?.Title\r\n\t\t\t};\r\n\t\t}\r\n\t),\r\n\tgetSpaceById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, itemId: number | string) => itemId,\r\n\t\t(state, itemId): ISpaceItem => {\r\n\t\t\tif (!itemId || itemId === \"\") return null;\r\n\r\n\t\t\treturn state.spaces.spaces.find((item) => item.Id === parseInt(itemId));\r\n\t\t}\r\n\t),\r\n\tgetParentSpacesList: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): ISpaceItem[] => {\r\n\t\t\treturn state.spaces.spaces.filter((space) => space.ParentId === null || space.ParentId === \"\");\r\n\t\t}\r\n\t),\r\n\tgetExpandedSpacesById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, spaceId: number | string) => spaceId,\r\n\t\t(state, spaceId: number | string): boolean => {\r\n\t\t\treturn state.spaces.expandedSpaces.includes(spaceId);\r\n\t\t}\r\n\t),\r\n\tgetChildrenSpacesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, parentId: string | number) => parentId,\r\n\t\t(state, parentId: string | number): ITreeItem[] => {\r\n\t\t\treturn state.spaces.spaces\r\n\t\t\t\t.filter((space) => space.ParentId === parentId)\r\n\t\t\t\t.map((item) => spacesSelectors.makeSpacesDropdownOption(state, item));\r\n\t\t}\r\n\t),\r\n\tgetAllParentsSpaces: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, parentId: string | number) => parentId,\r\n\t\t(state, parentId: string | number): ITreeItem[] => {\r\n\t\t\treturn state.spaces.spaces\r\n\t\t\t\t.filter((space) => space.ParentId === parentId)\r\n\t\t\t\t.map((item) => spacesSelectors.makeSpacesDropdownOption(state, item));\r\n\t\t}\r\n\t),\r\n\tgetParentSpacesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): ITreeItem[] => {\r\n\t\t\treturn state.spaces.spaces\r\n\t\t\t\t.filter((space) => space.ParentId === null || space.ParentId === \"\")\r\n\t\t\t\t.map((item) => spacesSelectors.makeSpacesDropdownOption(state, item));\r\n\t\t}\r\n\t),\r\n\tmakeSpacesDropdownOption: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, item: ISpaceItem) => item,\r\n\t\t(state, item: ISpaceItem): ITreeItem => {\r\n\t\t\tconst selectedSpaceId = state.spaces.selectedId;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: item.Id,\r\n\t\t\t\ttitle: item.Title,\r\n\t\t\t\tchildren: spacesSelectors.getChildrenSpacesDropdownOptions(state, item.Id),\r\n\t\t\t\tisExpanded: spacesSelectors.getExpandedSpacesById(state, item.Id),\r\n\t\t\t\tisSelected: selectedSpaceId === item.Id,\r\n\t\t\t\tonClick: (event: React.MouseEvent, treeItem: ITreeItem) => {\r\n\t\t\t\t\t// Updates the state layer by adding the selected item as current selected space\r\n\t\t\t\t\tconst spacesSvc = ServiceHub.spacesAPI.start();\r\n\t\t\t\t\tconst previousSelectedId = spacesSvc.getSelectedId();\r\n\t\t\t\t\tlet newShape: null | number | string;\r\n\r\n\t\t\t\t\tif (!previousSelectedId || previousSelectedId === \"\" || previousSelectedId !== treeItem.id) {\r\n\t\t\t\t\t\tnewShape = treeItem.id;\r\n\t\t\t\t\t\tspacesSvc.setSelectedId(newShape);\r\n\t\t\t\t\t\tspacesSvc.setExpandedSpaceById(parseInt(treeItem.id), true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// In this case, it is unselecting the space\r\n\t\t\t\t\t\tnewShape = \"\";\r\n\t\t\t\t\t\tspacesSvc.setSelectedId(newShape);\r\n\t\t\t\t\t\tspacesSvc.setExpandedSpaceById(parseInt(treeItem.id), false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tspacesSvc.setOpen(false);\r\n\r\n\t\t\t\t\tconst route = ApplicationRoutePaths.spaces(treeItem.id, treeItem.title);\r\n\t\t\t\t\tServiceHub.appManagementAPI.navigate(route);\r\n\t\t\t\t}\r\n\t\t\t} as ITreeItem;\r\n\t\t}\r\n\t),\r\n\tgetCoverImageTypesDropdownOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): IDropdownOption[] => {\r\n\t\t\treturn state.spaces.list.coverImageTypes.map((item) => ({ value: item.Id, text: item.Name }));\r\n\t\t}\r\n\t),\r\n\tgetTopicsComboBoxOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, externalItems: string[]) => externalItems,\r\n\t\t(state, externalItems: string[]): DropdownItemProps[] => {\r\n\t\t\tconst resultantCollection = [\r\n\t\t\t\t...externalItems,\r\n\t\t\t\t...state.spaces.list.topics.filter((topic: string) => !externalItems.includes(topic))\r\n\t\t\t];\r\n\r\n\t\t\treturn resultantCollection.map((item) => ({ value: item, text: item }));\r\n\t\t}\r\n\t),\r\n\tgetLoading: (state): boolean => state.spaces.loading ?? false,\r\n\tgetLoaded: (state): boolean => state.spaces.loaded ?? false,\r\n\tgetOpen: (state): boolean => state.spaces.open ?? false,\r\n\tgetSpaceManagerItemsList: (state): ISpaceItem[] => state.spaces.manager.items,\r\n\tgetSpaceManagerGroupsList: (state): IGroup[] => state.spaces.manager.groups,\r\n\tgetIsOpenDeleteConfirmation: (state): boolean => state.spaces.manager.ui.deleteConfirmationOpen,\r\n\tgetSpaceToDelete: (state): string => state.spaces.manager.ui.spaceToDelete,\r\n\tgetSpaceIdToDelete: (state): string => state.spaces.manager.ui.spaceIdToDelete,\r\n\tgetCurrentParentSpace: (state): string => state.spaces.manager.ui.currentParentSpace,\r\n\tgetSpaceCoverImage: (state): string => state.spaces.spaceCoverImage,\r\n\tgetSpaceCoverImageLoaded: (state): boolean => state.spaces.spaceCoverImageLoaded,\r\n\tgetSpaceName: (state): string => state.spaces.spaceName,\r\n\tgetSpaceDescription: (state): string => state.spaces.spaceDescription,\r\n\tgetSpaceBanner: (state): string => state.spaces.spaceBanner,\r\n\tgetSpaceDetailsLoaded: (state): boolean => state.spaces.spaceDetailsLoaded,\r\n\tgetParentSpaces: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): ITreeItem[] => {\r\n\t\t\treturn state.spaces.spaces\r\n\t\t\t\t.filter((space) => space.IsParent === true)\r\n\t\t\t\t.map((item) => spacesSelectors.convertParentSpacesToOptions(state, item));\r\n\t\t}\r\n\t),\r\n\tconvertParentSpacesToOptions: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, item: ISpaceItem) => item,\r\n\t\t(state, item: ISpaceItem): ITreeItem => {\r\n\t\t\tconst selectedParentId = state.spaceForm.selectedParentId;\r\n\t\t\treturn {\r\n\t\t\t\tid: item.Id,\r\n\t\t\t\ttitle: item.Title,\r\n\t\t\t\tisSelected: selectedParentId === item.Id,\r\n\t\t\t\tonClick: (event: React.MouseEvent, treeItem: ITreeItem) => {\r\n\t\t\t\t\tServiceHub.spaceForm.start().setSelectedParentId(treeItem.id);\r\n\t\t\t\t}\r\n\t\t\t} as ITreeItem;\r\n\t\t}\r\n\t)\r\n};\r\n","import { ISpaceItem } from \"../../contracts\";\r\nimport { spacesActions } from \"../../redux/reducers/spaces\";\r\nimport { spacesSelectors } from \"../../redux/selectors/spaces\";\r\nimport store from \"../../redux/store\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\n/**\r\n * Strike Spaces (nodes) Data management API. Used by through ServiceHub.\r\n */\r\nexport class SpacesAPIService extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"\");\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the list of Spaces available to the User logged in.\r\n\t *\r\n\t * @returns A promise with a collection of Spaces\r\n\t */\r\n\tasync getSpaces(): Promise<[]> {\r\n\t\treturn await this.get(\"node/getSpaceEntities\");\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Gets the currently selected Space Id.\r\n\t *\r\n\t * @returns The currently found state value.\r\n\t */\r\n\tgetSelectedId(): null | number | string {\r\n\t\treturn spacesSelectors.getSelectedId(store.getState());\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Gets the currently open State.\r\n\t *\r\n\t * @returns The currently found state value.\r\n\t */\r\n\tgetOpen(): boolean {\r\n\t\treturn spacesSelectors.getOpen(store.getState());\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Gets a Space item based on a passed Id.\r\n\t *\r\n\t * @param spaceId The Space ID to search in the data items.\r\n\t *\r\n\t * @returns The currently found item in state.\r\n\t */\r\n\tgetSpaceById(spaceId: string | number): ISpaceItem {\r\n\t\treturn spacesSelectors.getSpaceById(store.getState(), spaceId);\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets the currently selected Space Id.\r\n\t *\r\n\t * @param id The new ID to set. Can be nulled to unselect data.\r\n\t */\r\n\tsetSelectedId(id: null | number | string): void {\r\n\t\tstore.dispatch(spacesActions.setSelectedId(id));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets whether Spaces are Loaded in the state.\r\n\t *\r\n\t * @param loaded The new state to set.\r\n\t */\r\n\tsetLoaded(loaded: boolean): void {\r\n\t\tstore.dispatch(spacesActions.setLoaded(loaded));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets whether Spaces are Loading in the state.\r\n\t *\r\n\t * @param loading The new state to set.\r\n\t */\r\n\tsetLoading(loading: boolean): void {\r\n\t\tstore.dispatch(spacesActions.setLoading(loading));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets the current Space Item expanded/collapsed, based on a boolean indicator.\r\n\t *\r\n\t * @param spaceId The space id to expand.\r\n\t * @param expanded The next expanded state.\r\n\t */\r\n\tsetExpandedSpaceById(spaceId: number, expanded: boolean): void {\r\n\t\tstore.dispatch(spacesActions.setExpandedSpaceById({ spaceId, expanded }));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets the current Space List, based on ISpaceItem[].\r\n\t *\r\n\t * @param items The items to store.\r\n\t */\r\n\tsetSpaces(items: ISpaceItem[]): void {\r\n\t\tstore.dispatch(spacesActions.setSpacesList(items));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets whether Spaces Dropdown are open in the state, or not.\r\n\t *\r\n\t * @param open The new state to set.\r\n\t */\r\n\tsetOpen(open: boolean): void {\r\n\t\tstore.dispatch(spacesActions.setOpen(open));\r\n\t}\r\n}\r\n","import { ISpaceFormData, ISpaceFormResponse } from \"../../contracts\";\r\nimport { IProcessCoverImage, NodePreprocessingAPI } from \"../base/NodePreprocessingAPI\";\r\n\r\n/**\r\n * Space Admin tooling services class.\r\n */\r\nexport class SpaceAdminAPI extends NodePreprocessingAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"admin\");\r\n\t}\r\n\r\n\t/**\r\n\t * Create new space endpoint\r\n\t * @param spaceBody\r\n\t * @returns\r\n\t */\r\n\tasync createSpace(spaceBody: ISpaceFormData): Promise {\r\n\t\tconst spaceBodyCopy: any = { ...spaceBody, coverImagePath: spaceBody.coverImageName };\r\n\t\tawait this.processCoverImage(spaceBodyCopy as IProcessCoverImage, (uploadedResult) => {\r\n\t\t\tspaceBodyCopy.coverImageName = uploadedResult;\r\n\t\t});\r\n\t\treturn await this.post(`space`, spaceBodyCopy)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Edit existing space endpoint\r\n\t * @param spaceId\r\n\t * @param spaceBody\r\n\t * @returns\r\n\t */\r\n\tasync editSpace(spaceId: string, spaceBody: ISpaceFormData): Promise {\r\n\t\tconst spaceBodyCopy: any = { ...spaceBody, coverImagePath: spaceBody.coverImageName };\r\n\t\tawait this.processCoverImage(spaceBodyCopy as IProcessCoverImage, (uploadedResult) => {\r\n\t\t\tspaceBodyCopy.coverImageName = uploadedResult;\r\n\t\t});\r\n\t\treturn await this.put(`space/${spaceId}`, spaceBodyCopy)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Delete existing space\r\n\t * @param spaceId\r\n\t * @param spaceBody\r\n\t * @returns\r\n\t */\r\n\tasync deleteSpace(spaceId: string): Promise {\r\n\t\treturn await this.delete(`space/${spaceId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result.Value;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Space data to edit\r\n\t * @param spaceId\r\n\t * @returns\r\n\t */\r\n\tasync getSpace(spaceId: string): Promise {\r\n\t\treturn await this.get(`space/${spaceId}`)\r\n\t\t\t.then((result) => result as ISpaceFormResponse)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n}\r\n","import { IArticleFormData } from \"../../contracts/article/articleForm\";\r\nimport {\r\n\tDeleteActionModel,\r\n\tUserActivityModel,\r\n\tStickyNodeRequest,\r\n\tUpdateNodeStatusActionModel,\r\n\tNodeRevisionsResponseModel\r\n} from \"../../contracts/models\";\r\nimport { NodeActionTypes, NodeType } from \"../../contracts/models/strikeEnums\";\r\nimport { base64Encode } from \"../../lib/strikeLibrary\";\r\nimport { NodePreprocessingAPI } from \"../base/NodePreprocessingAPI\";\r\nimport { ServiceHub } from \"../base/ServiceHub\";\r\n\r\n/**\r\n * Node Administrative tooling services class.\r\n */\r\nexport class NodeAdminAPI extends NodePreprocessingAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"nodeadmin\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Node with provided information, and specified type.\r\n\t * Also, prepares the body to be transferred by using base-64 string encoding.\r\n\t * As a precaution, also uploads any base-64 images detected in the body\r\n\t * to be provided via the storage services.\r\n\t *\r\n\t * @param data The Node data to request creation.\r\n\t * @param type The Node type to request update.\r\n\t * @param actionType The Node Action Type to log.\r\n\t */\r\n\tasync createNode(data: IArticleFormData, type: NodeType, actionType: NodeActionTypes): Promise {\r\n\t\tconst dataCopy = { ...data };\r\n\r\n\t\tdataCopy.type = type;\r\n\t\tdataCopy.actionType = actionType;\r\n\t\tdataCopy.authorUpn = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\r\n\t\t//Detects any body HTML base-64 image to upload it to services\r\n\t\t//As well as prepares it for transfer as a base-64 encoded string.\r\n\t\tdataCopy.body = base64Encode(await this.detectBodyImages(dataCopy.body));\r\n\t\tawait this.processCoverImage(dataCopy);\r\n\t\t// Checks whether there are New Topics (before submitting)\r\n\t\tif (type === NodeType.Kbentry) {\r\n\t\t\tconst topicsAddSucceeded = await this.checkAddedTopics(dataCopy);\r\n\r\n\t\t\tif (!topicsAddSucceeded) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn await this.post(\"create\", dataCopy)\r\n\t\t\t.then((result: any) => {\r\n\t\t\t\tif (result?.HasError) {\r\n\t\t\t\t\tthrow Error(result.ErrorMessage);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Show a toast success message\r\n\t\t\t\treturn result.Value;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconst errorMessage = this.constructErrorMessage(error);\r\n\t\t\t\tServiceHub.message.error(errorMessage);\r\n\r\n\t\t\t\tthrow Error(errorMessage);\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Updates a Node with provided information, and specified type.\r\n\t * Also, prepares the body to be transferred by using base-64 string encoding.\r\n\t * As a precaution, also uploads any base-64 images detected in the body\r\n\t * to be provided via the storage services.\r\n\t *\r\n\t * @param data The Node data to request update.\r\n\t * @param type The Node type to request update.\r\n\t * @param actionType The Node Action Type to log.\r\n\t */\r\n\tasync updateNode(data: IArticleFormData, type: NodeType, actionType: NodeActionTypes): Promise {\r\n\t\tconst dataCopy = { ...data };\r\n\r\n\t\tdataCopy.type = type;\r\n\t\tdataCopy.actionType = actionType;\r\n\t\tdataCopy.authorUpn = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\r\n\t\t//Detects any body HTML base-64 image to upload it to services\r\n\t\t//As well as prepares it for transfer as a base-64 encoded string.\r\n\t\tdataCopy.body = base64Encode(await this.detectBodyImages(dataCopy.body));\r\n\t\tawait this.processCoverImage(dataCopy);\r\n\t\t// Checks whether there are New Topics (before submitting)\r\n\t\tif (type === NodeType.Kbentry) {\r\n\t\t\tconst topicsAddSucceeded = await this.checkAddedTopics(dataCopy);\r\n\r\n\t\t\tif (!topicsAddSucceeded) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn await this.put(\"update\", dataCopy)\r\n\t\t\t.then((result: any) => {\r\n\t\t\t\tif (result.HasError) {\r\n\t\t\t\t\tthrow Error(result.ErrorMessage);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO: Show a toast success message\r\n\t\t\t\treturn result.Value;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconst errorMessage = this.constructErrorMessage(error);\r\n\t\t\t\tServiceHub.message.error(errorMessage);\r\n\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an Article with provided information.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Article data to request creation.\r\n\t */\r\n\tasync createArticle(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(\r\n\t\t\tdata,\r\n\t\t\tNodeType.Kbentry,\r\n\t\t\tdata.id !== null && data.id !== \"\" ? NodeActionTypes.Revise : NodeActionTypes.NewKbentry\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates an Article based on provided info.\r\n\t * Uses updateNode behind to process data.\r\n\t *\r\n\t * @param data The Article data to store.\r\n\t */\r\n\tasync updateArticle(data: IArticleFormData): Promise {\r\n\t\treturn await this.updateNode(data, NodeType.Kbentry, NodeActionTypes.Revise);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Topic with provided information.\r\n\t * Uses createNode behind to process data.\r\n\t *\r\n\t * @param data The Topic data to request creation.\r\n\t */\r\n\tasync createTopic(data: IArticleFormData): Promise {\r\n\t\treturn await this.createNode(\r\n\t\t\tdata,\r\n\t\t\tNodeType.Topic,\r\n\t\t\tdata.id !== null && data.id !== \"\" ? NodeActionTypes.Revise : NodeActionTypes.NewTopic\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates a Topic based on provided info.\r\n\t * Uses updateNode behind to process data.\r\n\t *\r\n\t * @param data The Topic data to store.\r\n\t */\r\n\tasync updateTopic(data: IArticleFormData): Promise {\r\n\t\treturn await this.updateNode(data, NodeType.Kbentry, NodeActionTypes.NewTopic);\r\n\t}\r\n\r\n\t/**\r\n\t * Executes a check on whether the current user\r\n\t * logged in can consume NodeAdmin services.\r\n\t *\r\n\t * @returns\r\n\t */\r\n\tasync reviewAccess(): Promise {\r\n\t\treturn await this.get(\"ReviewAccess\")\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads a Cover Image to Strike's blob storage.\r\n\t * Gets a string, which should be base-64 encoded to submit to the services.\r\n\t *\r\n\t * @param base64ImageContent\r\n\t * @param onUploaded\r\n\t */\r\n\tasync coverImageUpload(\r\n\t\tbase64ImageContent: string,\r\n\t\tfileName: string,\r\n\t\tonUploaded: (filePath: string) => void | Promise\r\n\t) {\r\n\t\tconst fData = new FormData();\r\n\r\n\t\tfData.append(\"file\", base64ImageContent);\r\n\t\tfData.append(\"fileName\", fileName);\r\n\r\n\t\tawait this.post(\"coverImage/upload\", fData).then((response) => {\r\n\t\t\tif (typeof onUploaded === \"function\") onUploaded(response.toString());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads an Attachment from a Node Body, as part of the HTML.\r\n\t * Gets a string File Path which must be base-64 encoded, with the location of the stored file.\r\n\t *\r\n\t * @param base64ImageContent\r\n\t * @param onUploaded\r\n\t */\r\n\tasync attachmentUpload(\r\n\t\tbase64ImageContent: string,\r\n\t\tfileName: string,\r\n\t\tonUploaded: (filePath: string) => void | Promise\r\n\t) {\r\n\t\tconst fData = new FormData();\r\n\r\n\t\tfData.append(\"file\", base64ImageContent);\r\n\t\tfData.append(\"fileName\", fileName);\r\n\r\n\t\tawait this.post(\"attachments/upload\", fData).then((response) => {\r\n\t\t\tif (typeof onUploaded === \"function\") onUploaded(response.toString());\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * Delete node action\r\n\t */\r\n\tasync deleteNode(nodeId: string, actionTypeObject: DeleteActionModel): Promise {\r\n\t\treturn await this.delete(`delete/${nodeId}`, actionTypeObject)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * UpdateNodeStatus action for delete and makePrivate\r\n\t */\r\n\tasync UpdateNodeStatus(actionTypeObject: UpdateNodeStatusActionModel): Promise {\r\n\t\treturn await this.delete(`UpdateNodeStatus/`, actionTypeObject)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * @param publishTypeObject\r\n\t * Publish Article action\r\n\t */\r\n\tasync publishArticle(publishTypeObject: UserActivityModel): Promise {\r\n\t\treturn await this.post(\"publishArticle\", publishTypeObject)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * From an existing Article Form Data,\r\n\t * picks the Added Topics and pre-upload\r\n\t * them for post-storage in Article.\r\n\t *\r\n\t * @param data The Article data to check for newly Added Topics.\r\n\t * @returns boolean\r\n\t */\r\n\tasync checkAddedTopics(data: IArticleFormData): Promise {\r\n\t\tif (data.addedTopics.length === 0) return true;\r\n\r\n\t\treturn await ServiceHub.topicsAPI\r\n\t\t\t.start()\r\n\t\t\t.create(data.addedTopics)\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\t// Handle error case\r\n\t\t\t\tServiceHub.message.error(error);\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * @param spaceId\r\n\t * Stick Article to Space or Website\r\n\t */\r\n\tasync addStickNode(stickyNodeModel: StickyNodeRequest): Promise {\r\n\t\treturn await this.post(`sticky/add`, stickyNodeModel)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * @param spaceId\r\n\t * Remove Stick Article to Space or Website\r\n\t */\r\n\tasync removeStickNode(stickyNodeModel: StickyNodeRequest): Promise {\r\n\t\treturn await this.post(`sticky/remove`, stickyNodeModel)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * @param nodeId\r\n\t * Get Node Revisions\r\n\t */\r\n\tasync getNodeRevisions(nodeId: string): Promise {\r\n\t\treturn await this.get(`getNodeRevision/${nodeId}`)\r\n\t\t\t.then((result) => result)\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n}\r\n","import { setNodeAuthorModel } from \"../../contracts/models\";\r\nimport { NodePreprocessingAPI } from \"../base/NodePreprocessingAPI\";\r\n\r\n/**\r\n * Super Administrative tooling services class.\r\n */\r\nexport class SuperAdminAPI extends NodePreprocessingAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"admin\");\r\n\t}\r\n\r\n\t/**\r\n\t * Executes a check on whether the current user\r\n\t * logged in can consume Super Admin services.\r\n\t *\r\n\t * @returns\r\n\t */\r\n\tasync reviewAccess(): Promise {\r\n\t\treturn await this.get(\"ReviewAccess\")\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\t/** \r\n\t * Update Article Author\r\n\t */\r\n\tasync updateArticleAuthor(setNodeAuthor: setNodeAuthorModel): Promise {\r\n\t\treturn await this.post(\"setNodeAuthor\", setNodeAuthor)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => {\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n}\r\n","import { NodeType, UserDashboardsFiltersType } from \"../../contracts/models/strikeEnums\";\r\nimport {\r\n\tresetDashboardButtonTitle,\r\n\tresetSearchTopics,\r\n\tresetSortByOption,\r\n\tresetSpaceSelectedValue,\r\n\tresetTopicsValues,\r\n\tresetUserDashboard,\r\n\tsetDashboardButtonTitle,\r\n\tsetDashboardNavigation,\r\n\tsetIsDashboardLoading,\r\n\tsetIsFilterVisible,\r\n\tsetSortByOption,\r\n\tsetUserDashboard\r\n} from \"../../redux/reducers/filter\";\r\nimport store from \"../../redux/store\";\r\n\r\n/**\r\n * Strike Spaces (nodes) Data management API. Used by through ServiceHub.\r\n */\r\nexport class FilterAPIService {\r\n\t/**\r\n\t * [Redux] Sets the currently selected Space Id.\r\n\t *\r\n\t * @param id The new ID to set. Can be nulled to unselect data.\r\n\t */\r\n\tsetSelectedDashBoardButton(text: string): void {\r\n\t\tstore.dispatch(setDashboardButtonTitle(text));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Reset Dashboard button test\r\n\t *\r\n\t */\r\n\tresetDashBoardButtonTitle(): void {\r\n\t\tstore.dispatch(resetDashboardButtonTitle());\r\n\t}\r\n\r\n\t/**\r\n\t * Resets topics input values and clean the redux saved topics\r\n\t */\r\n\tresetTopicsFilters(): void {\r\n\t\tstore.dispatch(resetTopicsValues());\r\n\t\tstore.dispatch(resetSearchTopics());\r\n\t\tstore.dispatch(resetSpaceSelectedValue());\r\n\t}\r\n\r\n\t/**\r\n\t * Reset only topics values but not space item selected.\r\n\t */\r\n\tresetOnlyTopicsValues(): void {\r\n\t\tstore.dispatch(resetTopicsValues());\r\n\t\tstore.dispatch(resetSearchTopics());\r\n\t}\r\n\r\n\t/**\r\n\t * Flag to manage loading Dashboards events\r\n\t */\r\n\tsetDashboardLoading(): void {\r\n\t\tstore.dispatch(setIsDashboardLoading(true));\r\n\t}\r\n\t/**\r\n\t * Set filter visible on certain routes\r\n\t */\r\n\tsetFilterVisible(value: boolean): void {\r\n\t\tstore.dispatch(setIsFilterVisible(value));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets Dashboard Navigation Type to use querying nodes by type\r\n\t * @param dashboardType\r\n\t */\r\n\tsetDashboardNavigation(dashboardType: NodeType | undefined): void {\r\n\t\tstore.dispatch(setDashboardNavigation(dashboardType));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Sets User Dashboard Filter Type \r\n\t * @param userCustomDashboard\r\n\t */\r\n\tsetUserCustomDashboard(userCustomDashboard: UserDashboardsFiltersType | undefined): void {\r\n\t\tstore.dispatch(setUserDashboard(userCustomDashboard));\r\n\t}\r\n\r\n\t\t\r\n\t/**\r\n\t * [Redux] Reset User Dashboard Filter Type \r\n\t * @param userCustomDashboard\r\n\t */\r\n\tresetUserCustomDashboard(): void {\r\n\t\tstore.dispatch(resetUserDashboard());\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Set Sort By Option value to watch globally\r\n\t * @param sortByOption\r\n\t */\r\n\tsetsortByOption(sortByOption: string): void {\r\n\t\tstore.dispatch(setSortByOption(sortByOption));\r\n\t}\r\n\r\n\t/**\r\n\t * [Redux] Reset sort by option\r\n\t */\r\n\tresetsortByOption(): void {\r\n\t\tstore.dispatch(resetSortByOption());\r\n\t}\r\n}\r\n","import { IFollowRelation, INodeTopContributorsResponse } from \"../../contracts\";\r\n\r\n/**\r\n * Definition of selectors\r\n * for Follow Slice.\r\n */\r\nexport const followSelectors = {\r\n\tgetFollowersToShow: (state): number => state.follow.ui.followersToShow,\r\n\tgetFollowers: (state): IFollowRelation[] => state.follow.data.followers,\r\n\tgetTopContributors: (state): INodeTopContributorsResponse[] => state.follow.data.topContributors,\r\n\tgetFollowersLength: (state): number => state.follow.data.followers?.length,\r\n\tgetQuerying: (state): boolean => state.follow.ui.querying,\r\n\tgetQueried: (state): boolean => state.follow.ui.queried,\r\n\tgetTopContributorsQueried: (state): boolean => state.follow.ui.topContributorsQueried,\r\n\tgetTopContributorsQuerying: (state): boolean => state.follow.ui.topContributorsQuerying,\r\n\tgetIsFavourite: (state): boolean => state.follow.ui.isFavourite,\r\n\tgetCurrentUserFollowing: (state, currentUserUpn: string) => {\r\n\t\treturn (\r\n\t\t\tstate.follow.data.followers?.length > 0 &&\r\n\t\t\tcurrentUserUpn !== null &&\r\n\t\t\tcurrentUserUpn != \"\" &&\r\n\t\t\tstate.follow.data.followers?.some((follower) => follower.UserUPN === currentUserUpn)\r\n\t\t);\r\n\t},\r\n\tgetFollowerNameById: (state, upn: string): string =>\r\n\t\tstate.follow.data.followers.find((follower) => follower.UserUPN === upn)?.UserName ?? \"\",\r\n\tgetTopContributorNameById: (state, upn: string): string =>\r\n\t\tstate.follow.data.topContributors.find((contributor) => contributor.UserUPN === upn)?.UserName ?? \"\"\r\n};\r\n","import { IFollowRelation } from \"../../contracts\";\r\nimport {\r\n\taddFollower,\r\n\tremoveFollower,\r\n\tresetFollowers,\r\n\tresetFollowersToShow,\r\n\tsetFollowers,\r\n\tsetFollowersToShow,\r\n\tsetQueried,\r\n\tsetQuerying,\r\n\tresetAll,\r\n\tsetIsFavourite\r\n} from \"../../redux/reducers/follow\";\r\nimport { followSelectors } from \"../../redux/selectors/follow\";\r\nimport store from \"../../redux/store\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\nexport class FollowAPI extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"node/follow\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets Length of count of the users to render offset\r\n\t * @param followersToShow\r\n\t */\r\n\tasync setFollowersToShow(followersToShow: number) {\r\n\t\tstore.dispatch(setFollowersToShow(followersToShow));\r\n\t}\r\n\r\n\t/**\r\n\t * resets offset pagination to the initial state offset value\r\n\t */\r\n\tasync resetFollowersToShow() {\r\n\t\tstore.dispatch(resetFollowersToShow());\r\n\t}\r\n\r\n\t/**\r\n\t * Used to find userName from follow relation in the state layer\r\n\t * @param upn\r\n\t * @returns\r\n\t */\r\n\tgetFollowerNameByUpn(upn: string): string {\r\n\t\treturn followSelectors.getFollowerNameById(store.getState(), upn);\r\n\t}\r\n\r\n\t/**\r\n\t * Used to find userName on Node Top Contributors\r\n\t * @param upn\r\n\t * @returns\r\n\t */\r\n\tgetTopContributorNameByUpn(upn: string): string {\r\n\t\treturn followSelectors.getTopContributorNameById(store.getState(), upn);\r\n\t}\r\n\r\n\t/**\r\n\t * Manage to set all followers object data in redux state layer\r\n\t * @param followers\r\n\t */\r\n\tasync setFollowers(followers: IFollowRelation[]) {\r\n\t\tstore.dispatch(setFollowers(followers));\r\n\t}\r\n\r\n\t/**\r\n\t * Resets the Followers data in state\r\n\t */\r\n\tasync resetFollowers() {\r\n\t\tstore.dispatch(resetFollowers());\r\n\t}\r\n\r\n\t/**\r\n\t * Boolean flag to manage querying state in component\r\n\t * @param querying\r\n\t */\r\n\tasync setQuerying(querying: boolean) {\r\n\t\tstore.dispatch(setQuerying(querying));\r\n\t}\r\n\r\n\t/**\r\n\t * Boolean flag to manage status about data queried in component\r\n\t * @param queried\r\n\t */\r\n\tasync setQueried(queried: boolean) {\r\n\t\tstore.dispatch(setQueried(queried));\r\n\t}\r\n\r\n\t/**\r\n\t * Used to add a single follower on button click action\r\n\t * @param follower\r\n\t */\r\n\tasync addFollower(follower: IFollowRelation) {\r\n\t\tstore.dispatch(addFollower(follower));\r\n\t}\r\n\r\n\t/**\r\n\t * Used to rollback and manage to unfollow action\r\n\t * @param followerUpn\r\n\t */\r\n\tasync removeFollower(followerUpn: number | string) {\r\n\t\tstore.dispatch(removeFollower(followerUpn));\r\n\t}\r\n\r\n\t/**\r\n\t * Used to reset all component state values\r\n\t */\r\n\tasync resetAll() {\r\n\t\tstore.dispatch(resetAll());\r\n\t}\r\n\r\n\t/**\r\n\t * Boolean flag to check if node isFavourite or not \r\n\t * @param isFavourite\r\n\t */\r\n\tasync setIsFavourite(isFavourite: boolean) {\r\n\t\tstore.dispatch(setIsFavourite(isFavourite));\r\n\t}\r\n}\r\n","import { ITopicRequest } from \"../../contracts\";\r\nimport { NodeActionTypes } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Provides easy creation of Topic Create Request objects.\r\n * Supports bulk-creation.\r\n */\r\nexport class TopicRequest implements ITopicRequest {\r\n\tactionType: NodeActionTypes;\r\n\ttopics: string[];\r\n\tuserUPN: string;\r\n\r\n\tconstructor(topics: string[], userUPN: string, actionType: NodeActionTypes) {\r\n\t\tthis.actionType = actionType;\r\n\t\tthis.topics = topics;\r\n\t\tthis.userUPN = userUPN;\r\n\t}\r\n}\r\n","import { INodeTopicUpdate } from \"../../contracts\";\r\nimport { NodeActionTypes } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Provides easy creation of Node Topic update Request objects.\r\n * Supports bulk-edit.\r\n */\r\nexport class NodeTopicUpdate implements INodeTopicUpdate {\r\n\tnodeId: number;\r\n\tactionType: NodeActionTypes;\r\n\ttopics: string[];\r\n\tuserUPN: string;\r\n\r\n\tconstructor(nodeId: number, topics: string[], userUPN: string, actionType: NodeActionTypes) {\r\n\t\tthis.nodeId = nodeId;\r\n\t\tthis.actionType = actionType;\r\n\t\tthis.topics = topics;\r\n\t\tthis.userUPN = userUPN;\r\n\t}\r\n}\r\n","import BaseHttpAPI from \"../base/BaseHttpAPI\";\r\nimport { NodeActionTypes } from \"../../contracts/models/strikeEnums\";\r\nimport { NodeTopicUpdate, TopicRequest } from \"../../models\";\r\nimport { ServiceHub } from \"../base/ServiceHub\";\r\n\r\n/**\r\n * Strike Topics (tags) Data management API.\r\n * To be best used by through ServiceHub.\r\n *\r\n * Consumes the following services:\r\n * - POST /nodeadmin/topics/create (create)\r\n * - PUT /node/topics/update (updateNodeTopics)\r\n */\r\nexport class TopicsAPIService extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"\");\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a list of Topics in the services\r\n\t *\r\n\t * @param topics The collection of Topics to create\r\n\t * @param actionType [Optional] If different from NodeActionTypes.NewTopic, please specify this parameter\r\n\t *\r\n\t * @returns A promise with success 200, or errors out\r\n\t */\r\n\tasync create(topics: string[], actionType: NodeActionTypes = NodeActionTypes.NewTopic): Promise<[]> {\r\n\t\tconst userPrincipalName = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\r\n\t\treturn await this.post(\"nodeadmin/topics/create\", new TopicRequest(topics, userPrincipalName, actionType));\r\n\t}\r\n\r\n\t/**\r\n\t * Updates a list of Topics within a given Node, based on its ID.\r\n\t *\r\n\t * @param nodeId The Node ID to update the entry\r\n\t * @param topics The collection of Topics to create\r\n\t * @param actionType [Optional] If different from NodeActionTypes.NewTopic, please specify this parameter\r\n\t *\r\n\t * @returns A promise with success 200, or errors out\r\n\t */\r\n\tasync updateNodeTopics(\r\n\t\tnodeId: number,\r\n\t\ttopics: string[],\r\n\t\tactionType: NodeActionTypes = NodeActionTypes.ReTag\r\n\t): Promise<[]> {\r\n\t\tconst userPrincipalName = await ServiceHub.userProfileAPI.start().GetCurrentUserUpn();\r\n\r\n\t\treturn await this.put(\"node/topics/update\", new NodeTopicUpdate(nodeId, topics, userPrincipalName, actionType));\r\n\t}\r\n}\r\n","import { IEventFormData, IEventRegistrationInfoRequestModel, IEventRegistrationInfoResponseModel, IEventUserRegistrationRequest } from \"../../contracts\";\r\nimport { IEventAttendees } from \"../../contracts/models\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\n/**\r\n * Strike Events Registration and Check-In. Used by through ServiceHub.\r\n */\r\nexport class EventsAPIService extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"EventRegistration\");\r\n\t}\r\n\r\n\t/**\r\n\t * Get Event attendees\r\n\t * @returns attendees\r\n\t */\r\n\tasync getEventAttendees(): Promise {\r\n\t\tconst response = await this.get(\"attendees\");\r\n\t\treturn response as IEventAttendees[];\r\n\t}\r\n\r\n\t/**\r\n\t * Check-In specific attendees\r\n\t * @returns boolean\r\n\t */\r\n\tasync checkInAttendee(id: number, email: string, team: string): Promise {\r\n\t\tconst response = await this.post(\"attendees/checkIn\", { id, email });\r\n\t\treturn response as boolean;\r\n\t}\r\n\r\n\t/**\r\n\t * Register and Checkin-In attendee\r\n\t * @param team\r\n\t * @param email\r\n\t * @param id\r\n\t * @returns boolean\r\n\t */\r\n\tasync registerAndCheckInAttendee(userName: string, userEmail: string, userTeam: string): Promise {\r\n\t\tconst response = await this.post(\"attendees/registerAndCheckIn\", { userName, userEmail, userTeam });\r\n\t\treturn response as boolean;\r\n\t}\r\n\r\n\t/**\r\n\t * Registration for a single user into a specific event\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync userEventRegistration(registrationData: IEventUserRegistrationRequest): Promise {\r\n\t\treturn await this.post(\r\n\t\t\t`LogUserEventRegistrationResponse`,\r\n\t\t\tregistrationData\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Event Details\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync getEvent(eventId: string): Promise {\r\n\t\treturn await this.get(`${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Check if User has Volunteer Access\r\n\t * @returns\r\n\t */\r\n\tasync getVolunteerAccess(eventId: number): Promise {\r\n\t\treturn await this.get(`IsVolunteerUser/${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => false);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Registration for a single user into a specific event\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync getUserEventRegistrationInfo(registrationData: IEventRegistrationInfoRequestModel): Promise {\r\n\t\treturn await this.post(\r\n\t\t\t`IsEventRegistered`,\r\n\t\t\tregistrationData\r\n\t\t);\r\n\t}\r\n}\r\n","import { createSelector } from \"@reduxjs/toolkit\";\r\nimport { IStrikeNodeEntity, IStrikeNodesComments } from \"../../contracts/models\";\r\nimport nodeActivityConstants from \"../../components/common/node/activity/constants\";\r\nimport { CommentType } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Definition of selectors related to Node Comments\r\n */\r\nexport const commentsSelectors = {\r\n\tgetAllNodeComments: (state): IStrikeNodesComments[] => state.comments.data.allNodeComments,\r\n\tgetOrderedNodeComments: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): IStrikeNodesComments[] => {\r\n\t\t\tlet commentsCopy = [...state.comments.data.allNodeComments];\r\n\r\n\t\t\tcommentsCopy =\r\n\t\t\t\tcommentsCopy?.sort((firstObject, secondObject) => {\r\n\t\t\t\t\tconst dateA = new Date(firstObject.CommentOn);\r\n\t\t\t\t\tconst dateB = new Date(secondObject.CommentOn);\r\n\t\t\t\t\treturn dateA.getTime() - dateB.getTime();\r\n\t\t\t\t}) ?? [];\r\n\r\n\t\t\treturn commentsCopy;\r\n\t\t}\r\n\t),\r\n\tgetRootNodeComments: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, parentId: number | string) => parentId,\r\n\t\t(state, parentId: number | string): IStrikeNodesComments[] =>\r\n\t\t\tstate.comments.data.allNodeComments.filter((comment: IStrikeNodesComments) => comment.ParentId === parentId)\r\n\t),\r\n\tgetRootNodeCommentsByTypeAnswer: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, parentId: number | string) => parentId,\r\n\t\t(state, parentId: number | string): IStrikeNodesComments[] =>\r\n\t\t\tstate.comments.data.allNodeComments.filter(\r\n\t\t\t\t(comment: IStrikeNodesComments) => comment.ParentId === parentId && comment.Type === CommentType.Answer\r\n\t\t\t)\r\n\t),\r\n\tgetRootNodeCommentsByTypeComment: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, parentId: number | string) => parentId,\r\n\t\t(state, parentId: number | string): IStrikeNodesComments[] =>\r\n\t\t\tstate.comments.data.allNodeComments.filter(\r\n\t\t\t\t(comment: IStrikeNodesComments) => comment.ParentId === parentId && comment.Type === CommentType.Comment\r\n\t\t\t)\r\n\t),\r\n\tgetShouldHideAll: (state, parentId: string | number) => {\r\n\t\tconst rootComments = commentsSelectors.getRootNodeComments(state, parentId);\r\n\t\tconst commentsToShow = commentsSelectors.getCommentsToShow(state);\r\n\t\tconst diff = rootComments.length - commentsToShow;\r\n\r\n\t\t// When the difference between total root comments and comments to show is less than the threshold, OR,\r\n\t\t// User has selected to show all comments\r\n\t\treturn diff <= nodeActivityConstants.maxOffset || commentsToShow >= rootComments.length;\r\n\t},\r\n\tgetCommentsTotalNumber: (state) => state.comments.data.nodeCommentsTotal,\r\n\tgetToggledComments: (state): boolean => state.comments.ui.isToggledComments,\r\n\tgetToggledCommentForm: (state): boolean => state.comments.ui.isToggledCommentForm,\r\n\tgetToggledCommentQuestionForm: (state): boolean => state.comments.ui.isToggledCommentQuestionForm,\r\n\tgetNodeAlreadyLiked: (state): boolean => state.comments.ui.isNodeAlreadyLiked,\r\n\tgetNodeLikeCount: (state): number => state.comments.data.likeCount,\r\n\tgetNodeLikeByUsers: (state): string => state.comments.data.likeByUsers,\r\n\tgetNodeLikeIds: createSelector(\r\n\t\t(state) => state.comments.data.likeByUsers,\r\n\t\t(likeByUsersId): number[] => {\r\n\t\t\tif (!likeByUsersId) return [];\r\n\t\t\tconst likesArray = likeByUsersId.split(\",\").map((item) => parseInt(item));\r\n\t\t\treturn likesArray;\r\n\t\t}\r\n\t),\r\n\tgetCommentText: (state): string => state.comments.form.commentText,\r\n\tgetNodeId: (state): string => state.comments.form.nodeId,\r\n\tgetReplyExpandedId: (state): string | number => state.comments.ui.replyExpandedId,\r\n\tgetPostButtonDisabled: (state): boolean => state.comments.form.commentText === \"\" || state.comments.ui.submitting,\r\n\tgetFormBodySourceMode: (state): boolean => state.comments.form.bodySourceMode,\r\n\tgetCommentsToShow: (state): number => state.comments.data.commentsToShow,\r\n\tgetEditingIds: (state): number[] => state.comments.data.editingIds,\r\n\tgetEditingItemById: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, id: number | string) => id,\r\n\t\t(state, id: number | string): null | IStrikeNodesComments => {\r\n\t\t\tconst result = state.comments.data.allNodeComments.filter((c: IStrikeNodesComments) => c.CommentId === id);\r\n\r\n\t\t\treturn result.length > 0 ? result[0] : null;\r\n\t\t}\r\n\t)\r\n};\r\n","import {IStrikeNodesComments, ReportCommentRequestModel } from \"../../contracts/models\";\r\nimport {\r\n\tresetEditingIds,\r\n\tsetCommentInList,\r\n\tsetCommentText,\r\n\tsetEditingIds,\r\n\tsetNodeId\r\n} from \"../../redux/reducers/comments\";\r\nimport { commentsSelectors } from \"../../redux/selectors/comments\";\r\nimport store from \"../../redux/store\";\r\nimport BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\n/**\r\n * Handles data management necessities with Redux,\r\n * by using the store within.\r\n */\r\nexport class CommentAPI extends BaseHttpAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"\");\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the Editing Comment ID in the form state.\r\n\t *\r\n\t * @param nodeId The comment node editing\r\n\t */\r\n\tasync setFormNodeId(nodeId: null | number): Promise {\r\n\t\tstore.dispatch(setNodeId(nodeId?.toString() ?? null));\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the Editing Comment form text field.\r\n\t *\r\n\t * @param text The text to be set to the form\r\n\t */\r\n\tasync setFormText(text: string): Promise {\r\n\t\tstore.dispatch(setCommentText(text));\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the current editing comment Ids.\r\n\t *\r\n\t * @param editingIds The editing comment Ids collection.\r\n\t */\r\n\tasync setEditingIds(editingIds: number[]): Promise {\r\n\t\tstore.dispatch(setEditingIds(editingIds));\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a comment in the list by its ID.\r\n\t *\r\n\t * @param itemId The item ID being updated\r\n\t * @param comment The comment updated data.\r\n\t */\r\n\tasync setCommentById(itemId: number, comment: IStrikeNodesComments): Promise {\r\n\t\tstore.dispatch(setCommentInList({ CommentId: itemId, ...comment }));\r\n\t}\r\n\r\n\t/**\r\n\t * Restores the editing Ids to its default state.\r\n\t */\r\n\tasync resetEditingIds(): Promise {\r\n\t\tstore.dispatch(resetEditingIds());\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the list of currently editing Ids from state.\r\n\t *\r\n\t * @returns Number collection\r\n\t */\r\n\tgetEditingIds(): number[] {\r\n\t\treturn commentsSelectors.getEditingIds(store.getState());\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a specific editing element by its ID.\r\n\t *\r\n\t * @param id The ID of the editing element\r\n\t * @returns IStrikeNodesComments\r\n\t */\r\n\tgetEditingItemById(id: number | string): IStrikeNodesComments {\r\n\t\treturn commentsSelectors.getEditingItemById(store.getState(), id);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t* Prepare query object to send in report request\r\n\t*/\r\n\t\tgetQueryObjectToReportComment(nodeId: number, reportedNodeId: number, link: string, reportedBy: string, reason: string): ReportCommentRequestModel {\r\n\t\t\treturn {\r\n\t\t\t\tnodeId: nodeId,\r\n\t\t\t\treportedNodeId: reportedNodeId,\r\n\t\t\t\tlink: link,\r\n\t\t\t\treportedBy: reportedBy,\r\n\t\t\t\treason: reason\r\n\t\t\t} as ReportCommentRequestModel;\r\n\t\t}\r\n\r\n\r\n\t/**\r\n\t * Report Comment on Node\r\n\t * @param reportQueryObject \r\n\t * @returns \r\n\t */\r\n\tasync reportComment(reportCommentQueryObject: ReportCommentRequestModel): Promise {\r\n\t\treturn await this.post(\"node/report\", reportCommentQueryObject)\r\n\t\t\t.then((result) => true)\r\n\t\t\t.catch(() => false);\r\n\t}\r\n}\r\n","import BaseHttpAPI from \"../base/BaseHttpAPI\";\r\n\r\nlet _fnQueue: (() => Promise)[] = [];\r\nlet _fnResults: any[] = [];\r\n\r\n/**\r\n * Service created to handle methods from a class\r\n * Useful to use when we need to get room from a specific\r\n * triggered action, when a batch process its happening on that moment.\r\n * More reliable to handle the status via class service, than normal state.\r\n */\r\nexport class ProcessingQueueAPI extends BaseHttpAPI {\r\n\tprivate processing: boolean = false;\r\n\r\n\tconstructor() {\r\n\t\tsuper(\"\");\r\n\t}\r\n\r\n\tsetProcessing(state: boolean): void {\r\n\t\tthis.processing = state;\r\n\t}\r\n\r\n\tgetProcessing(): boolean {\r\n\t\treturn this.processing;\r\n\t}\r\n\r\n\tprivate setFnQueue(fns: (() => Promise)[]): void {\r\n\t\tif (fns.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfns.forEach((fnToAdd) => {\r\n\t\t\tif (!_fnQueue.includes(fnToAdd)) {\r\n\t\t\t\t_fnQueue.push(fnToAdd);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tenqueueFn(fnToEnqueue: () => Promise): void {\r\n\t\tthis.setFnQueue([fnToEnqueue]);\r\n\t}\r\n\r\n\tgetQueue(): (() => Promise)[] {\r\n\t\treturn _fnQueue;\r\n\t}\r\n\r\n\tgetResults(): any[] {\r\n\t\treturn _fnResults;\r\n\t}\r\n\r\n\tprepareQueue(fns: undefined | (() => Promise)[]): void {\r\n\t\tif (!fns) return;\r\n\r\n\t\tfns.forEach((fn) => {\r\n\t\t\tthis.enqueueFn(fn);\r\n\t\t});\r\n\t}\r\n\r\n\tgetNextQueueItem(): null | (() => Promise) {\r\n\t\tif (_fnQueue.length === 0) return null;\r\n\r\n\t\tconst currentItem = _fnQueue.shift();\r\n\r\n\t\treturn currentItem;\r\n\t}\r\n\r\n\tasync checkAndProcessQueueItems(): Promise {\r\n\t\tlet currentItem: null | (() => Promise) = null;\r\n\r\n\t\tif (_fnQueue.length > 0 && !this.getProcessing()) {\r\n\t\t\tcurrentItem = this.getNextQueueItem();\r\n\r\n\t\t\tif (!currentItem) return;\r\n\r\n\t\t\tthis.setProcessing(true);\r\n\r\n\t\t\tawait currentItem().then((result) => {\r\n\t\t\t\t_fnResults.push(result);\r\n\t\t\t\tthis.setProcessing(false);\r\n\r\n\t\t\t\tthis.checkAndProcessQueueItems();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclearQueue(): void {\r\n\t\t_fnQueue = [];\r\n\t\t_fnResults = [];\r\n\t}\r\n}\r\n","import store from \"../../redux/store\";\r\nimport { ISpaceFormData, ISpaceItem } from \"../../contracts\";\r\nimport { spacesSelectors } from \"../../redux/selectors/spaces\";\r\nimport { spacesActions } from \"../../redux/reducers/spaces\";\r\nimport { IGroup } from \"@fluentui/react\";\r\nimport { spaceFormActions } from \"../../redux/reducers/spaceForm\";\r\n\r\n/**\r\n * Space Form microservice, which allows interacting with the Redux state layer.\r\n */\r\nexport class SpaceFormService {\r\n\t/**\r\n\t * Set form space data to use on create and edit space\r\n\t * @param data\r\n\t */\r\n\tsetData(data: ISpaceFormData): void {\r\n\t\tstore.dispatch(spaceFormActions.setData(data));\r\n\t}\r\n\r\n\t/**\r\n\t * resets space form data once its created or edited\r\n\t */\r\n\tresetData(): void {\r\n\t\tstore.dispatch(spaceFormActions.resetData());\r\n\t}\r\n\r\n\t/**\r\n\t * Save on state the childs items for spaces, based on space data\r\n\t * @param items\r\n\t */\r\n\tsetSpaceManagerItemsList(items: ISpaceItem[]): void {\r\n\t\tstore.dispatch(spacesActions.setSpaceManagerItemsList(items));\r\n\t}\r\n\r\n\t/**\r\n\t * Save on state to use in Manage Space List Parent spaces groups\r\n\t * @param groups\r\n\t */\r\n\tsetSpaceManagerGroupsList(groups: IGroup[]): void {\r\n\t\tstore.dispatch(spacesActions.setSpaceManagerGroupsList(groups));\r\n\t}\r\n\r\n\t/**\r\n\t * Set flag status to control data flow rendering done of Spaces List items\r\n\t * @param value\r\n\t */\r\n\tsetManageFormDataListIsLoaded(value: boolean): void {\r\n\t\tstore.dispatch(spaceFormActions.setManageFormDataListIsLoaded(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set flag status to control data flow rendering done of Spaces Headers items\r\n\t * @param value\r\n\t */\r\n\tsetManageFormDataHeaderIsLoaded(value: boolean): void {\r\n\t\tstore.dispatch(spaceFormActions.setManageFormDataHeaderIsLoaded(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set flag status to control data flow rendering in progress of Spaces List items\r\n\t * @param value\r\n\t */\r\n\tsetManageFormDataListIsLoading(value: boolean): void {\r\n\t\tstore.dispatch(spaceFormActions.setManageFormDataListIsLoading(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set flag status to control data flow rendering in progress of Spaces List items\r\n\t * @param value\r\n\t */\r\n\tsetManageFormDataHeaderIsLoading(value: boolean): void {\r\n\t\tstore.dispatch(spaceFormActions.setManageFormDataHeaderIsLoading(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set flag to control opening of the Delete confirmation modal\r\n\t * @param status\r\n\t */\r\n\tsetIsOpenSpaceManagerDeleteConfirmation(status: boolean) {\r\n\t\tstore.dispatch(spacesActions.setIsOpenSpaceManagerDeleteConfirmation(status));\r\n\t}\r\n\r\n\t/**\r\n\t * Set flag to control Delete modal to close and reset data\r\n\t */\r\n\tonCloseSpaceManagerDeleteConfirmation() {\r\n\t\tstore.dispatch(spacesActions.setIsOpenSpaceManagerDeleteConfirmation(false));\r\n\t\tstore.dispatch(spacesActions.resetSpaceManagerSpaceToDelete());\r\n\t}\r\n\r\n\t/**\r\n\t * Used to set the space name to delete and show in the confirmation modal\r\n\t * @param space\r\n\t */\r\n\tsetSpaceManagerSpaceToDelete(space: string) {\r\n\t\tstore.dispatch(spacesActions.setSpaceManagerSpaceToDelete(space));\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the id qeued to delete to use in the space deletion call\r\n\t * @param space\r\n\t */\r\n\tsetSpaceManagerSpaceIdToDelete(space: string) {\r\n\t\tstore.dispatch(spacesActions.setSpaceManagerSpaceIdToDelete(space));\r\n\t}\r\n\r\n\t/**\r\n\t * Resets from queue space to delete\r\n\t */\r\n\tresetSpaceManagerSpaceToDelete() {\r\n\t\tstore.dispatch(spacesActions.resetSpaceManagerSpaceToDelete());\r\n\t}\r\n\r\n\t/**\r\n\t * Get the list of spaces to use and process in the Manage Space feature\r\n\t * @returns\r\n\t */\r\n\tgetSpacesList(): ISpaceItem[] {\r\n\t\treturn spacesSelectors.getSpacesList(store.getState());\r\n\t}\r\n\r\n\t/**\r\n\t * It create the space data based on id\r\n\t * @param itemId\r\n\t * @returns\r\n\t */\r\n\tgetSpaceById(itemId: string | number): ISpaceItem {\r\n\t\treturn spacesSelectors.getSpaceById(store.getState(), itemId);\r\n\t}\r\n\r\n\t/**\r\n\t * Used to set the parentSpace selected in space form\r\n\t * @param parentId\r\n\t */\r\n\tsetManagerCurrentParentSpace(parentId: string) {\r\n\t\tstore.dispatch(spacesActions.setManagerCurrentParentSpace(parentId));\r\n\t}\r\n\r\n\t/**\r\n\t * Used to set the parentSpace selected in space form based on the Id\r\n\t * @param parentId\r\n\t */\r\n\tsetSelectedParentId(parentId: string) {\r\n\t\tstore.dispatch(spaceFormActions.setSelectedParentId(parentId));\r\n\t}\r\n\r\n\t/**\r\n\t * Flag to handle rendering control and status for space form\r\n\t * @param value\r\n\t */\r\n\tsetIsSpaceFormLoading(value: boolean) {\r\n\t\tstore.dispatch(spaceFormActions.setLoading(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Flag to handle loading state of form data\r\n\t * @param value\r\n\t */\r\n\tsetIsSpaceFormDataLoading(value: boolean) {\r\n\t\tstore.dispatch(spaceFormActions.setIsDataLoading(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Flag to set loaded state of form data\r\n\t * @param value\r\n\t */\r\n\tsetIsSpaceFormDataLoaded(value: boolean) {\r\n\t\tstore.dispatch(spaceFormActions.setIsDataLoaded(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Reset Parent Id when user drop form\r\n\t */\r\n\tresetSelectedParentId() {\r\n\t\tstore.dispatch(spaceFormActions.resetSelectedParentId());\r\n\t}\r\n\r\n\t/**\r\n\t * Save in state data image used to show space coverImage at the form\r\n\t * @param dataImage\r\n\t */\r\n\tsetCoverImageFile(dataImage: string) {\r\n\t\tstore.dispatch(spaceFormActions.setCoverImageFile(dataImage));\r\n\t}\r\n\r\n\tsetDescriptionBodySourceMode(sourceMode: boolean): void {\r\n\t\tstore.dispatch(spaceFormActions.setDescriptionBodySourceMode(sourceMode));\r\n\t}\r\n\r\n\tsetBannerBodySourceMode(sourceMode: boolean): void {\r\n\t\tstore.dispatch(spaceFormActions.setBannerBodySourceMode(sourceMode));\r\n\t}\r\n\r\n\t/**\r\n\t * Process spaces data and transforms to use as DetailsList component friendly format\r\n\t * @param items\r\n\t * @returns\r\n\t */\r\n\ttransFormData = (items: ISpaceItem[]) => {\r\n\t\tthis.setManageFormDataListIsLoading(true);\r\n\t\tthis.setManageFormDataHeaderIsLoading(true);\r\n\t\tthis.setManageFormDataListIsLoaded(false);\r\n\t\tthis.setManageFormDataHeaderIsLoaded(false);\r\n\r\n\t\tconst itemsList: ISpaceItem[] = [];\r\n\t\tconst headingList: IGroup[] = [];\r\n\t\tlet startIndex = 0;\r\n\r\n\t\titems.forEach((item) => {\r\n\t\t\tif (item.IsParent) {\r\n\t\t\t\tconst children = items.filter((child) => child.ParentId === item.Id);\r\n\t\t\t\theadingList.push({\r\n\t\t\t\t\tkey: item.Id.toString(),\r\n\t\t\t\t\tname: item.Title,\r\n\t\t\t\t\tstartIndex: startIndex,\r\n\t\t\t\t\tcount: children.length\r\n\t\t\t\t});\r\n\t\t\t\tstartIndex += children.length;\r\n\t\t\t\titemsList.push(...children);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.setManageFormDataListIsLoaded(true);\r\n\t\tthis.setManageFormDataHeaderIsLoaded(true);\r\n\t\tthis.setManageFormDataListIsLoading(false);\r\n\t\tthis.setManageFormDataHeaderIsLoading(false);\r\n\r\n\t\treturn { itemsList, headingList };\r\n\t};\r\n}\r\n","import store from \"../../redux/store\";\r\nimport { eventFormActions } from \"../../redux/reducers/eventForm\";\r\nimport { IEventAllowListResponse, IEventFormData, IEventFormDataResponse } from \"../../contracts/event/eventForm\";\r\n\r\n/**\r\n * Event creation/edition microserviceto interacte with Redux state layer.\r\n */\r\nexport class EventFormService {\r\n\t/**\r\n\t * Set form event data to use on create and edit event\r\n\t * @param data\r\n\t */\r\n\tsetData(data: IEventFormData): void {\r\n\t\tstore.dispatch(eventFormActions.setData(data));\r\n\t}\r\n\r\n\t/**\r\n\t * resets event form data once its created or edited\r\n\t */\r\n\tresetData(): void {\r\n\t\tstore.dispatch(eventFormActions.resetData());\r\n\t\tstore.dispatch(eventFormActions.setSelectedEventTypeId(null));\r\n\t\tstore.dispatch(eventFormActions.setSelectedStartDate(null));\r\n\t\tstore.dispatch(eventFormActions.setSelectedEndDate(null));\r\n\t\tstore.dispatch(eventFormActions.setSelectedPublishDate(null));\r\n\t}\r\n\r\n\tsetBodySourceMode(sourceMode: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setBodySourceMode(sourceMode));\r\n\t}\r\n\r\n\tsetSelectedEventTypeId(eventType: null | string | number): void {\r\n\t\tstore.dispatch(eventFormActions.setSelectedEventTypeId(eventType));\r\n\t}\r\n\r\n\tsetSelectedEventIdToCheckin(eventSelected: null | string | number): void {\r\n\t\tstore.dispatch(eventFormActions.setSelectedEventIdToCheckin(eventSelected));\r\n\t}\r\n\r\n\tsetEventsList(eventList: IEventFormDataResponse[]): void {\r\n\t\tstore.dispatch(eventFormActions.setEventsList(eventList));\r\n\t}\r\n\r\n\tsetSelectedStartDate(date: Date): void {\r\n\t\tstore.dispatch(eventFormActions.setSelectedStartDate(date));\r\n\t}\r\n\r\n\tsetSelectedEndDate(date: Date): void {\r\n\t\tstore.dispatch(eventFormActions.setSelectedEndDate(date));\r\n\t}\r\n\r\n\tsetSelectedPublishDate(date: Date): void {\r\n\t\tstore.dispatch(eventFormActions.setSelectedPublishDate(date));\r\n\t}\r\n\r\n\tsetEventAllowedUserList(allowedUsersList: IEventAllowListResponse[]): void {\r\n\t\tstore.dispatch(eventFormActions.setEventAllowedUserList(allowedUsersList));\r\n\t}\r\n\r\n\tresetEventAllowedUserList(): void {\r\n\t\tstore.dispatch(eventFormActions.resetEventAllowedUserList());\r\n\t}\r\n\r\n\tremoveUserFromAllowedList(emailId: string): void {\r\n\t\tstore.dispatch(eventFormActions.removeUserFromAllowedList(emailId));\r\n\t}\r\n\r\n\tsetIsAllowUsersPanelOpen(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsAllowUsersPanelOpen(value));\r\n\t}\r\n\r\n\tsetIsProcessFilePanelOpen(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsProcessFilePanelOpen(value));\r\n\t}\r\n\r\n\tsetIsAllowUsersChanged(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsAllowUsersChanged(value));\r\n\t}\r\n\r\n\tsetIsOpenDeleteEventModal(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsOpenDeleteEventModal(value));\r\n\t}\r\n\r\n\tsetIsOpenPublishEventModal(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsOpenPublishEventModal(value));\r\n\t}\r\n\r\n\tsetIsEventListLoaded(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsEventListLoaded(value));\r\n\t}\r\n\r\n\tsetIsEventListLoading(value: boolean): void {\r\n\t\tstore.dispatch(eventFormActions.setIsEventListLoading(value));\r\n\t}\r\n\r\n\tsetEventFilterSearchText(searchNameValue: string): void {\r\n\t\tstore.dispatch(eventFormActions.setEventFilterSearchText(searchNameValue));\r\n\t}\r\n\r\n\tsetEventFilterSearchType(searchTypeIdValue: string): void {\r\n\t\tstore.dispatch(eventFormActions.setEventFilterSearchType(searchTypeIdValue));\r\n\t}\r\n\r\n\tsetEventFilterSearchTypeOption(searchTypeTextValue: string): void {\r\n\t\tstore.dispatch(eventFormActions.setEventFilterSearchTypeOption(searchTypeTextValue));\r\n\t}\r\n\r\n\tsetEventFilterSearchStatus(searchStatusValue: string): void {\r\n\t\tstore.dispatch(eventFormActions.setEventFilterSearchStatus(searchStatusValue));\r\n\t}\r\n\r\n\tsetEventFilterSearchStatusId(searchStatusIdValue: string): void {\r\n\t\tstore.dispatch(eventFormActions.setEventFilterSearchStatusId(searchStatusIdValue));\r\n\t}\r\n\r\n\tsetSelectedEventStatusId(eventStatus: null | string): void {\r\n\t\tstore.dispatch(eventFormActions.setEventFilterSearchStatusId(eventStatus));\r\n\t}\r\n}\r\n","import { IEventNotificationTemplate } from \"../../contracts\";\r\nimport {\r\n\tIEventAllowListEntry,\r\n\tIEventAllowListPostRequest,\r\n\tIEventAllowListResponse,\r\n\tIEventFormData,\r\n\tIEventFormDataResponse,\r\n\tIEventUserRegistrationRequest\r\n} from \"../../contracts/event/eventForm\";\r\nimport { IEventNotificationTemplateRequest, IEventRegisteredUsers, IEventUserToCheckin } from \"../../contracts/models\";\r\nimport { NodePreprocessingAPI } from \"../base/NodePreprocessingAPI\";\r\n\r\n/**\r\n * Event Management tooling services class.\r\n */\r\nexport class EventManageAPI extends NodePreprocessingAPI {\r\n\tconstructor() {\r\n\t\tsuper(\"event\");\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether a logged in User has access to these service's endpoints.\r\n\t * @returns Whether the access is allowed (true) or not (false).\r\n\t */\r\n\tasync checkAdminAccess(): Promise {\r\n\t\treturn await this.get(`checkAdminAccess`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Events endpoint\r\n\t * @param eventBody\r\n\t * @returns\r\n\t */\r\n\tasync getEvents(): Promise {\r\n\t\treturn await this.get(``)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Specific Event by Id endpoint\r\n\t * @param eventBody\r\n\t * @returns\r\n\t */\r\n\tasync getEvent(eventId: string): Promise {\r\n\t\treturn await this.get(`${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Create new event endpoint\r\n\t * @param eventBody\r\n\t * @returns\r\n\t */\r\n\tasync createEvent(eventBody: IEventFormData): Promise {\r\n\t\treturn await this.post(`create`, eventBody)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Edit event endpoint\r\n\t * @param eventBody\r\n\t * @returns\r\n\t */\r\n\tasync editEvent(eventId: string, eventBody: IEventFormData): Promise {\r\n\t\treturn await this.put(`edit/${eventId}`, eventBody)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Delete event endpoint\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync deleteEvent(eventId: string): Promise {\r\n\t\treturn await this.delete<{ HasError: boolean }>(`${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Set Event Allowed Users\r\n\t * @param eventId\r\n\t * @param allowListEntry\r\n\t * @returns\r\n\t */\r\n\tasync SetEventAllowUsers(allowedUsers: IEventAllowListEntry): Promise {\r\n\t\treturn await this.patch(`/SetAllowedUsers`, allowedUsers)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Event Allowed Users\r\n\t * @param eventId\r\n\t * @param userType\r\n\t * @returns\r\n\t */\r\n\tasync GetEventAllowUsers(eventId: string, userType: string): Promise {\r\n\t\tconst parsedEventId = parseInt(eventId);\r\n\t\tif (isNaN(parsedEventId)) {\r\n\t\t\tthrow new Error(\"Invalid event ID\");\r\n\t\t}\r\n\t\treturn await this.post(`/GetAllowedUsers`, {eventId: parsedEventId, userType: userType})\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthrow error;\r\n\t\t\t});\r\n\t}\r\n\r\n\t// /**\r\n\t// * Registration for a single user into a specific event\r\n\t// * EventRegistration//LogUserEventRegistrationResponse\r\n\t// * @param eventId\r\n\t// * @returns\r\n\t// */\r\n\t// async userEventRegistration(eventId: string, registrationData: IEventUserRegistrationRequest): Promise {\r\n\t// \treturn await this.post(`${eventId}/registration`, registrationData);\r\n\t// }\r\n\r\n\t/**\r\n\t * Gets the Collection of Notification Templates to a given Event by ID.\r\n\t *\r\n\t * @param eventId The Event to get the Notification Templates for\r\n\t * @returns IEventNotificationTemplate[] or empty list.\r\n\t */\r\n\tasync getNotificationTemplates(eventId: string): Promise {\r\n\t\treturn await this.get(`${eventId}/notification/templates`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Publish Event by Id\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync publishEvent(eventId: string): Promise {\r\n\t\treturn await this.patch(`publish/${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Unpublish Event by Id\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync unpublishEvent(eventId: string): Promise {\r\n\t\treturn await this.patch(`unpublish/${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Registered Users by Event\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync getEventAttendeesList(eventId: string): Promise {\r\n\t\treturn await this.get(`attendees/${eventId}`)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Checkin User for specific event\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync setEventAttendeeCheckin(userToCheckinObject: IEventUserToCheckin): Promise {\r\n\t\treturn await this.post(`attendees/checkIn/`, userToCheckinObject)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn result;\r\n\t\t\t})\r\n\t\t\t.catch((error) => error);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an Event Notification Template,\r\n\t * for a first-time saving operation.\r\n\t *\r\n\t * @param requestData The request data to apply the save.\r\n\t * @returns Whether the operation succeeded (true), or failed (false).\r\n\t */\r\n\tasync createNotificationTemplate(requestData: IEventNotificationTemplateRequest): Promise {\r\n\t\tif (!requestData || !requestData.eventId) return false;\r\n\r\n\t\treturn await this.post(\r\n\t\t\t`${requestData.eventId}/notification/templates`,\r\n\t\t\trequestData\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an Event Notification Template,\r\n\t * for a first-time saving operation.\r\n\t *\r\n\t * @param requestData The request data to apply the save.\r\n\t * @returns Whether the operation succeeded (true), or failed (false).\r\n\t */\r\n\tasync updateNotificationTemplate(\r\n\t\ttemplateId: number,\r\n\t\trequestData: IEventNotificationTemplateRequest\r\n\t): Promise {\r\n\t\tif (!templateId || !requestData || !requestData.eventId) return false;\r\n\r\n\t\treturn await this.put(\r\n\t\t\t`${requestData.eventId}/notification/templates/${templateId}`,\r\n\t\t\trequestData\r\n\t\t)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Registration And Checkin from Registrations Page\r\n\t * @param eventId\r\n\t * @returns\r\n\t */\r\n\tasync userEventRegistrationAndCheckIn(registrationData: IEventUserRegistrationRequest): Promise {\r\n\t\treturn await this.post(\r\n\t\t\t`RegisterAndCheckIn`,\r\n\t\t\tregistrationData\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Api call to post a formData file to track Virtual events attendees\r\n\t * @param eventId \r\n\t * @param processFileData \r\n\t * @returns \r\n\t */\r\n\tasync processVirtualEventAttendance(eventId: number, processFileData: FormData): Promise {\r\n\t\treturn await this.post(\r\n\t\t\t`ProcessVirtualEventAttendance/${eventId}`,\r\n\t\t\tprocessFileData\r\n\t\t);\r\n\t}\r\n}\r\n","import { ServiceHub } from \"../base/ServiceHub\";\r\n\r\n/**\r\n * The supported color schemes.\r\n */\r\nexport enum ColorScheme {\r\n\tRGB = \"RGB\",\r\n\tRGBA = \"RGBA\",\r\n\tHEX = \"HEX\",\r\n\tUNKNOWN = \"UNKNOWN\"\r\n}\r\n\r\n/**\r\n * Holds color information.\r\n * RGB scheme.\r\n */\r\ndeclare type RGBObject = {\r\n\tr: number;\r\n\tg: number;\r\n\tb: number;\r\n};\r\n\r\n/**\r\n * Color Contrast detection service.\r\n *\r\n * Construction was based on ref from https://dev.to/alvaromontoro/building-your-own-color-contrast-checker-4j7o.\r\n */\r\nexport class ContrastDetection {\r\n\tColorContrastIndexes = {\r\n\t\tAA_Normal: 0.22222,\r\n\t\tAA_Large: 0.33333,\r\n\t\tAAA_Normal: 0.14285,\r\n\t\tAAA_Large: 0.22222\r\n\t};\r\n\r\n\t/**\r\n\t * Detects and returns which color scheme a given nuance code is.\r\n\t *\r\n\t * @param colorCode The color code to be tested\r\n\t * @returns The found color scheme\r\n\t */\r\n\tdetectColorScheme(colorCode: string): ColorScheme {\r\n\t\tif (!colorCode || colorCode.length === 0) {\r\n\t\t\tthrow Error(\"Color detection cannot handle null or empty codes\");\r\n\t\t}\r\n\r\n\t\tconst upperCaserCode = colorCode.toUpperCase();\r\n\r\n\t\tif (upperCaserCode.startsWith(\"#\")) {\r\n\t\t\treturn ColorScheme.HEX;\r\n\t\t}\r\n\r\n\t\tif (upperCaserCode.startsWith(ColorScheme.RGBA)) {\r\n\t\t\treturn ColorScheme.RGBA;\r\n\t\t}\r\n\r\n\t\tif (upperCaserCode.startsWith(ColorScheme.RGB)) {\r\n\t\t\treturn ColorScheme.RGB;\r\n\t\t}\r\n\r\n\t\treturn ColorScheme.UNKNOWN;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether a given param is an Hex-based color code.\r\n\t *\r\n\t * @param colorString The color string to check.\r\n\t * @returns Boolean whether it is true or not.\r\n\t */\r\n\tisHexColor(colorString: string): boolean {\r\n\t\tconst colorScheme = this.detectColorScheme(colorString);\r\n\r\n\t\treturn colorScheme === ColorScheme.HEX;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether a given param is an RGB-based color code.\r\n\t *\r\n\t * @param colorString The color string to check.\r\n\t * @returns Boolean whether it is true or not.\r\n\t */\r\n\tisRGBColor(colorString: string): boolean {\r\n\t\tconst colorScheme = this.detectColorScheme(colorString);\r\n\r\n\t\treturn colorScheme === ColorScheme.RGB;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether a given param is an RGBA-based color code.\r\n\t *\r\n\t * @param colorString The color string to check.\r\n\t * @returns Boolean whether it is true or not.\r\n\t */\r\n\tisRGBAColor(colorString: string): boolean {\r\n\t\tconst colorScheme = this.detectColorScheme(colorString);\r\n\r\n\t\treturn colorScheme === ColorScheme.RGBA;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether a given param is an Unknown color code.\r\n\t *\r\n\t * @param colorString The color string to check.\r\n\t * @returns Boolean whether it is true or not.\r\n\t */\r\n\tisUnknownColor(colorString: string): boolean {\r\n\t\tconst colorScheme = this.detectColorScheme(colorString);\r\n\r\n\t\treturn colorScheme === ColorScheme.UNKNOWN;\r\n\t}\r\n\r\n\t/**\r\n\t * Converts a given source color into a RGB for comparisons.\r\n\t *\r\n\t * @param sourceColor The source color to test and convert\r\n\t * @returns The resolved color code in the new scheme.\r\n\t */\r\n\tprepareColor(sourceColor: string): null | RGBObject {\r\n\t\tlet convertedColorCode: null | RGBObject;\r\n\r\n\t\tif (!sourceColor || sourceColor.length === 0) {\r\n\t\t\tthrow Error(\"Color converter cannot handle null or empty codes\");\r\n\t\t}\r\n\r\n\t\tconst colorScheme: ColorScheme = this.detectColorScheme(sourceColor);\r\n\r\n\t\tswitch (colorScheme) {\r\n\t\t\tcase ColorScheme.HEX: {\r\n\t\t\t\tconvertedColorCode = this.colorToRgb(sourceColor);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn convertedColorCode;\r\n\t}\r\n\r\n\t/**\r\n\t * Casts Hex/RGBA/any color schemes onto RGB.\r\n\t * Base on https://dev.to/alvaromontoro/building-your-own-color-contrast-checker-4j7o.\r\n\t */\r\n\tcolorToRgb(hexCode: string): null | RGBObject {\r\n\t\tconst shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n\r\n\t\tif (this.isRGBColor(hexCode)) {\r\n\t\t\t// If already RGB color, will use its structure to calculate it\r\n\t\t\tconst splitColors: string[] = hexCode.replace(\"rgb(\", \"\").replace(\")\", \"\").split(\",\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tr: parseInt(splitColors[0]),\r\n\t\t\t\tg: parseInt(splitColors[1]),\r\n\t\t\t\tb: parseInt(splitColors[2])\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.isRGBAColor(hexCode)) {\r\n\t\t\t// If already RGBA color, will use its structure to calculate it\r\n\t\t\tconst splitColors: string[] = hexCode.replace(\"rgba(\", \"\").replace(\")\", \"\").split(\",\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tr: parseInt(splitColors[0]),\r\n\t\t\t\tg: parseInt(splitColors[1]),\r\n\t\t\t\tb: parseInt(splitColors[2])\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst newHex = hexCode.replace(shorthandRegex, function (m, r, g, b) {\r\n\t\t\treturn r + r + g + g + b + b;\r\n\t\t});\r\n\r\n\t\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(newHex);\r\n\r\n\t\treturn result?.length > 0\r\n\t\t\t? {\r\n\t\t\t\tr: parseInt(result[1], 16),\r\n\t\t\t\tg: parseInt(result[2], 16),\r\n\t\t\t\tb: parseInt(result[3], 16)\r\n\t\t\t}\r\n\t\t\t: null;\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates Contrast ratio between 2 given colors.\r\n\t *\r\n\t * @param colorA The first color from the comparison\r\n\t * @param colorB Second color to compare\r\n\t * @returns The Contrast ration between colors\r\n\t */\r\n\tcalculateContrast(colorA: string, colorB: string): number {\r\n\t\t// Casting color into correct schemes\r\n\t\tconst colorArgb = this.colorToRgb(colorA);\r\n\t\tconst colorBrgb = this.colorToRgb(colorB);\r\n\r\n\t\tif (!colorArgb || !colorBrgb) {\r\n\t\t\tthrow new Error(\"Invalid or Unsupported color format\");\r\n\t\t}\r\n\r\n\t\t// calculate the relative luminance\r\n\t\tconst colorAluminance = this.luminance(colorArgb.r, colorArgb.g, colorArgb.b);\r\n\t\tconst colorBluminance = this.luminance(colorBrgb.r, colorBrgb.g, colorBrgb.b);\r\n\r\n\t\t// calculate the color contrast ratio\r\n\t\tconst ratio =\r\n\t\t\tcolorAluminance > colorBluminance\r\n\t\t\t\t? (colorBluminance + 0.05) / (colorAluminance + 0.05)\r\n\t\t\t\t: (colorAluminance + 0.05) / (colorBluminance + 0.05);\r\n\r\n\t\treturn ratio;\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates luminance for a given combination of Red-Green-Blue color tone.\r\n\t *\r\n\t * @param r Color's Red intensity\r\n\t * @param g Color's Green intensity\r\n\t * @param b Color's Blue intensity\r\n\t * @returns The index of luminance for the given RGB-based color\r\n\t */\r\n\tluminance(r: number, g: number, b: number): number {\r\n\t\tconst a = [r, g, b].map(function (v) {\r\n\t\t\tv /= 255;\r\n\t\t\treturn v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\r\n\t\t});\r\n\r\n\t\treturn a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks whether a given HTMLElement can color-contrast with a given Background-color.\r\n\t *\r\n\t * @param element The element to test the style.color property\r\n\t * @param backgroundColor [Optional] The background color to be used during the test\r\n\t * @param correctiveColor [Optional] The corrective color code to be used during the fix\r\n\t */\r\n\tcheckElementColorContrast(\r\n\t\telement: HTMLElement,\r\n\t\tbackgroundColor?: undefined | string,\r\n\t\tcorrectionColor?: undefined | string\r\n\t) {\r\n\t\tconst bodyComputedStyleMap = window.getComputedStyle(document.body);\r\n\t\tconst bodyBackgroundColor: string =\r\n\t\t\tbackgroundColor && backgroundColor.length > 0\r\n\t\t\t\t? backgroundColor\r\n\t\t\t\t: element.style.backgroundColor !== \"\"\r\n\t\t\t\t? element.style.backgroundColor\r\n\t\t\t\t: bodyComputedStyleMap.backgroundColor;\r\n\t\tconst bodyCorrectiveColor: string =\r\n\t\t\tcorrectionColor && correctionColor.length > 0 ? correctionColor : bodyComputedStyleMap.color;\r\n\r\n\t\ttry {\r\n\t\t\t//Defines the contrast ration between the 2 given colors\r\n\t\t\tconst contrastRatio = this.calculateContrast(element.style.color, bodyBackgroundColor);\r\n\r\n\t\t\t// If any WCAG validation instance fails over\r\n\t\t\tif (\r\n\t\t\t\tcontrastRatio > this.ColorContrastIndexes.AA_Normal ||\r\n\t\t\t\tcontrastRatio > this.ColorContrastIndexes.AA_Large ||\r\n\t\t\t\tcontrastRatio > this.ColorContrastIndexes.AAA_Normal ||\r\n\t\t\t\tcontrastRatio > this.ColorContrastIndexes.AAA_Large\r\n\t\t\t) {\r\n\t\t\t\t// If minimum contrast ratio has not been achieved\r\n\t\t\t\t// Applies the correction to this item specifically\r\n\t\t\t\telement.style.setProperty(\"color\", `${bodyCorrectiveColor}`);\r\n\t\t\t}\r\n\t\t} catch (ex) {\r\n\t\t\t// Process future logging\r\n\t\t}\r\n\t}\r\n}\r\n","import store from \"../../redux/store\";\r\nimport { IGlobalBannerFormData, IGlobalBannerItemsResponse} from \"../../contracts\";\r\nimport { IGroup } from \"@fluentui/react\";\r\nimport { spaceFormActions } from \"../../redux/reducers/spaceForm\";\r\nimport { globalBannerFormActions } from \"../../redux/reducers/globalBannerForm\";\r\n\r\n/**\r\n * Space Form microservice, which allows interacting with the Redux state layer.\r\n */\r\nexport class GlobalBannerFormService {\r\n\t/**\r\n\t * Set form space data to use on create and edit space\r\n\t * @param data\r\n\t */\r\n\tsetData(data: IGlobalBannerFormData): void {\r\n\t\tstore.dispatch(globalBannerFormActions.setData(data));\r\n\t}\r\n\r\n\t/**\r\n\t * resets space form data once its created or edited\r\n\t */\r\n\tresetData(): void {\r\n\t\tstore.dispatch(globalBannerFormActions.resetData());\r\n\t}\r\n\r\n\t/**\r\n\t * Save in state data image used to show space coverImage at the form\r\n\t * @param dataImage\r\n\t */\r\n\tsetBannerImageFile(dataImage: string) {\r\n\t\tstore.dispatch(globalBannerFormActions.setBannerImageFile(dataImage));\r\n\t}\r\n\r\n\t/**\r\n\t * Set Banner Dashboard items to display in Table\r\n\t */\r\n\tsetBannersList(bannersList: IGlobalBannerItemsResponse[]): void {\r\n\t\tstore.dispatch(globalBannerFormActions.setBannersList(bannersList));\r\n\t}\r\n\r\n\t/**\r\n\t * Set loadimg flag to manage content loading process\r\n\t */\r\n\tsetBannersLoading(value: boolean) {\r\n\t\tstore.dispatch(globalBannerFormActions.setLoading(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set loadimg flag to manage content loading process\r\n \t */\r\n\tsetBannersLoaded(value: boolean) {\r\n\t\tstore.dispatch(globalBannerFormActions.setLoaded(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set banner panel open flag\r\n \t */\r\n\tsetBannerPanelOpen(value: boolean) {\r\n\t\tstore.dispatch(globalBannerFormActions.setBannerPanelOpen(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Set banner Id to switch to edit mode\r\n \t */\r\n\tsetBannerId(value: string) {\r\n\t\tstore.dispatch(globalBannerFormActions.setBannerId(value));\r\n\t}\r\n\r\n\t/**\r\n\t * Reset banner Id to switch to edit mode\r\n\t */\r\n\tresetBannerId() {\r\n\t\tstore.dispatch(globalBannerFormActions.resetBannerId());\r\n\t}\r\n}\r\n","import { IGlobalBannerFormData, IGlobalBannerItemsResponse, ISpaceFormData, ISpaceFormResponse } from \"../../contracts\";\r\nimport { IProcessBannerImage, IProcessCoverImage, NodePreprocessingAPI } from \"../base/NodePreprocessingAPI\";\r\n\r\n/**\r\n * Space Admin tooling services class.\r\n */\r\nexport class GlobalBannerAdminAPI extends NodePreprocessingAPI {\r\n constructor() {\r\n super(\"admin\");\r\n }\r\n\r\n \t/**\r\n\t * Create new global Banner endpoint\r\n\t * @param globalBannerBody\r\n\t * @returns\r\n\t */\r\n\tasync createGlobalBanner(globalBannerBody: IGlobalBannerFormData): Promise {\r\n\t\tconst globalBannerBodyCopy: any = { ...globalBannerBody, bannerImagePath: globalBannerBody.bannerImageName };\r\n\t\tawait this.processBannerImage(globalBannerBodyCopy as IProcessBannerImage, (uploadedResult) => {\r\n\t\t\tglobalBannerBodyCopy.bannerImageName = uploadedResult;\r\n\t\t});\r\n\t\treturn await this.post(`setDashboardBannerImage`, globalBannerBodyCopy)\r\n\t\t\t.then((result) => {\r\n\t\t\t\treturn !result.HasError;\r\n\t\t\t})\r\n\t\t\t.catch(() => false);\r\n\t}\r\n\r\n /**\r\n * Get all Global Banners\r\n * @returns\r\n */\r\n async getDashboardBannerImages(): Promise {\r\n return await this.get(`getDashboardBannerImages`)\r\n .then((result) => result as IGlobalBannerItemsResponse)\r\n .catch((error) => error);\r\n }\r\n\r\n\t/**\r\n\t * @param bannerId\r\n\t */\r\n\tasync deleteBannerImage(bannerId: string): Promise{\r\n return await this.get(`deleteDashboardBannerImage/${bannerId}`)\r\n .then((result) => true)\r\n .catch((error) => error);\r\n }\r\n\r\n\t/**\r\n\t * @param bannerId\r\n\t */\r\n\tasync getBannerImage(bannerId: string): Promise{\r\n return await this.get(`getDashboardBannerImage/${bannerId}`)\r\n .then((result) => result as IGlobalBannerItemsResponse)\r\n .catch((error) => error);\r\n }\r\n}\r\n","/* Structural parts' imports */\r\nimport { LazyServiceStarter } from \"./LazyServiceStarter\";\r\nimport { IServiceHubFixture } from \"../../contracts/services/IServiceHubFixture\";\r\n\r\n/* Importing every referential service */\r\nimport { AppMessageService, MessageServiceInstance } from \"../message/AppMessage\";\r\nimport { AppFileAPI } from \"../app/AppFileAPI\";\r\nimport { AppManagementAPI, AppManagementAPIInstance } from \"../AppManagementAPI\";\r\nimport { AppMenuAPI } from \"../app/AppMenuAPI\";\r\nimport { AppTreeViewAPI } from \"../app/AppTreeViewAPI\";\r\nimport { ArticleDataAPI } from \"../article/ArticleDataAPI\";\r\nimport { ArticleFormService } from \"../article/ArticleFormService\";\r\nimport { GraphAPIService } from \"../GraphAPI\";\r\nimport { NodeAPIService, NodeAPIServiceInstance } from \"../NodeAPI\";\r\nimport { UserProfileAPIService } from \"../userProfile/UserProfileAPI\";\r\nimport { SpacesAPIService } from \"../space/SpacesAPI\";\r\nimport { SpaceAdminAPI } from \"../space/SpaceAdminAPI\";\r\nimport { NodeAdminAPI } from \"../node/NodeAdminAPI\";\r\nimport { SuperAdminAPI } from \"../node/SuperAdminAPI\";\r\nimport { FilterAPIService } from \"../filter/FilterAPI\";\r\nimport { FollowAPI } from \"../follow/FollowAPI\";\r\nimport { TopicsAPIService } from \"../topic/TopicsAPI\";\r\nimport { EventsAPIService } from \"../events/eventsAPI\";\r\nimport { CommentAPI } from \"../comment/CommentAPI\";\r\nimport { ProcessingQueueAPI } from \"../utils/ProcessingQueueAPI\";\r\nimport { SpaceFormService } from \"../space/SpaceFormService\";\r\nimport { EventFormService } from \"../events/EventFormService\";\r\nimport { EventManageAPI } from \"../events/EventAPIService\";\r\nimport { ContrastDetection } from \"../utils/ContrastDetection\";\r\nimport { GlobalBannerFormService } from \"../banner/GlobalBannerFormService\";\r\nimport { GlobalBannerAdminAPI } from \"../banner/GlobalBannerAdminAPIService\";\r\n\r\n/**\r\n * Strike Application's Service Hub.\r\n * Concentrates all services used through the system in an effort\r\n * to maintain them across an individual reference/injection point.\r\n */\r\nclass ServiceHubCentral implements IServiceHubFixture {\r\n\t// Singleton services\r\n\tnodeAPI: NodeAPIService;\r\n\tmessage: AppMessageService;\r\n\tappManagementAPI: AppManagementAPI;\r\n\tprocessingQueueAPI: ProcessingQueueAPI;\r\n\r\n\t// Lazy services\r\n\tappFileAPI: LazyServiceStarter;\r\n\tappMenuAPI: LazyServiceStarter;\r\n\tappTreeViewAPI: LazyServiceStarter;\r\n\tarticleForm: LazyServiceStarter;\r\n\tarticleDataAPI: LazyServiceStarter;\r\n\tspaceAdminAPI: LazyServiceStarter;\r\n\tcommentAPI: LazyServiceStarter;\r\n\tgraphAPI: LazyServiceStarter;\r\n\tuserProfileAPI: LazyServiceStarter;\r\n\tspacesAPI: LazyServiceStarter;\r\n\tnodeAdminAPI: LazyServiceStarter;\r\n\tsuperAdminAPI: LazyServiceStarter;\r\n\tfilterAPI: LazyServiceStarter;\r\n\tfollowAPI: LazyServiceStarter;\r\n\ttopicsAPI: LazyServiceStarter;\r\n\teventsAPI: LazyServiceStarter;\r\n\tspaceForm: LazyServiceStarter;\r\n\tglobalBannerForm: LazyServiceStarter;\r\n\tglobalBannerAdminAPI: LazyServiceStarter;\r\n\teventForm: LazyServiceStarter;\r\n\teventManageAPI: LazyServiceStarter;\r\n\tcontrastDetection: LazyServiceStarter;\r\n\r\n\tconstructor() {\r\n\t\t// Begin: Singleton services, then those which\r\n\t\t// must be always available.\r\n\t\tthis.nodeAPI = NodeAPIServiceInstance;\r\n\t\tthis.message = MessageServiceInstance;\r\n\t\tthis.appManagementAPI = AppManagementAPIInstance;\r\n\t\tthis.processingQueueAPI = new ProcessingQueueAPI();\r\n\r\n\t\t// Begin: Lazy services,\r\n\t\t// which must be started by calling .start() prior to their own function calling.\r\n\t\tthis.appFileAPI = new LazyServiceStarter(AppFileAPI);\r\n\t\tthis.appMenuAPI = new LazyServiceStarter(AppMenuAPI);\r\n\t\tthis.appTreeViewAPI = new LazyServiceStarter(AppTreeViewAPI);\r\n\t\tthis.articleForm = new LazyServiceStarter(ArticleFormService);\r\n\t\tthis.articleDataAPI = new LazyServiceStarter(ArticleDataAPI);\r\n\t\tthis.spaceAdminAPI = new LazyServiceStarter(SpaceAdminAPI);\r\n\t\tthis.commentAPI = new LazyServiceStarter(CommentAPI);\r\n\t\tthis.graphAPI = new LazyServiceStarter(GraphAPIService);\r\n\t\tthis.userProfileAPI = new LazyServiceStarter(UserProfileAPIService);\r\n\t\tthis.spacesAPI = new LazyServiceStarter(SpacesAPIService);\r\n\t\tthis.nodeAdminAPI = new LazyServiceStarter(NodeAdminAPI);\r\n\t\tthis.filterAPI = new LazyServiceStarter(FilterAPIService);\r\n\t\tthis.followAPI = new LazyServiceStarter(FollowAPI);\r\n\t\tthis.topicsAPI = new LazyServiceStarter(TopicsAPIService);\r\n\t\tthis.eventsAPI = new LazyServiceStarter(EventsAPIService);\r\n\t\tthis.spaceForm = new LazyServiceStarter(SpaceFormService);\r\n\t\tthis.eventForm = new LazyServiceStarter(EventFormService);\r\n\t\tthis.superAdminAPI = new LazyServiceStarter(SuperAdminAPI);\r\n\t\tthis.eventManageAPI = new LazyServiceStarter(EventManageAPI);\r\n\t\tthis.contrastDetection = new LazyServiceStarter(ContrastDetection);\r\n\t\tthis.globalBannerForm = new LazyServiceStarter(GlobalBannerFormService);\r\n\t\tthis.globalBannerAdminAPI = new LazyServiceStarter(GlobalBannerAdminAPI);\r\n\t}\r\n}\r\n\r\n/**\r\n * Strike Application's Service Hub instance.\r\n * Access services by navigating the props.\r\n * Lazy services should be activated first, by calling .start().\r\n */\r\nexport const ServiceHub: ServiceHubCentral = new ServiceHubCentral();\r\n","import { INavLink, INavLinkGroup } from \"@fluentui/react\";\r\nimport { SystemMessageConfig } from \"../../contracts\";\r\nimport { IHeaderMenuItem } from \"../../contracts/appMenu\";\r\nimport { MessageType } from \"../../enums\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { createSelector } from \"@reduxjs/toolkit\";\r\nimport { IStrikeNodeSticky } from \"../../contracts/models\";\r\n\r\n/**\r\n * creating id based on title, id or timestamp\r\n * @param item\r\n * @param index\r\n * @returns\r\n */\r\nconst getItemId = (item: any, index: number = 1) => {\r\n\tconst currentTimeStamp = new Date().getTime();\r\n\tlet idOrTitle = currentTimeStamp;\r\n\r\n\tif (item) {\r\n\t\tif (item?.Id && item?.Id !== null) {\r\n\t\t\tidOrTitle = item.Id;\r\n\t\t} else if (item?.Title) {\r\n\t\t\tidOrTitle = item?.Title?.replaceAll(\" \", \"_\");\r\n\t\t}\r\n\t}\r\n\r\n\tconst newItemId = `${idOrTitle}_${index}`;\r\n\treturn newItemId;\r\n};\r\n\r\nconst processItems = (parentItem, elementList) => {\r\n\tif (parentItem.Items) {\r\n\t\tparentItem.Items.filter((item) => item.Divider === false).forEach((childItem, index) => {\r\n\t\t\telementList.push({ ...childItem, Id: getItemId(childItem, index), ParentId: parentItem.Id });\r\n\t\t});\r\n\t}\r\n\tdelete parentItem.Items;\r\n};\r\n\r\n/**\r\n * Definition of selectors\r\n */\r\nexport const appManagementSelectors = {\r\n\tgetLoaderVisible: (state) => {\r\n\t\treturn state.appManagement.loader.visible;\r\n\t},\r\n\tgetLoaderText: (state) => state.appManagement.loader.text,\r\n\tgetIsEventAdminUser: (state) => state.appManagement.userAccess.eventAdmin,\r\n\tgetIsNodeAdminUser: (state) => state.appManagement.userAccess.nodeAdmin,\r\n\tgetIsSuperAdminUser: (state) => state.appManagement.userAccess.superAdmin,\r\n\tgetAppMenuData: (state) => state.appManagement.menu.data,\r\n\tlayout: (state) => state.appManagement.layout.layoutType,\r\n\tgetBannerVisible: (state) => state.appManagement.banner.visible,\r\n\tgetMessage: (state): SystemMessageConfig => state.appManagement.message,\r\n\tgetMessageText: (state): string => state.appManagement.message.text,\r\n\tgetMessageType: (state): MessageType => state.appManagement.message.type,\r\n\tgetMessageOpen: (state): boolean => state.appManagement.message.open,\r\n\tgetMessageIsHtml: (state): boolean => state.appManagement.message.isHtml,\r\n\tgetIsHighZoomLevel: (state): boolean => state.appManagement.layout.isHighZoomLevel,\r\n\tgetIsMenuItemExpandedById: (state, menuItemId: string): boolean =>\r\n\t\tstate.appManagement.menu.expanded?.includes(menuItemId),\r\n\tgetMenuItemSelected: (state): string => state.appManagement.menu.selectedId,\r\n\tgetSelectedIds: (state): string[] => {\r\n\t\treturn state.appManagement.menu.selectedIds;\r\n\t},\r\n\tgetParentById: (state, parentId: string): string => {\r\n\t\tconst parentItem = state.appManagement.menu.data?.Items.filter((item) => item.Id === parentId);\r\n\t\treturn parentItem;\r\n\t},\r\n\tgetNormalizedList: createSelector(\r\n\t\t(state) => state,\r\n\t\t(state): any[] => {\r\n\t\t\tconst elementList = [];\r\n\t\t\tconst rootList = [];\r\n\r\n\t\t\t// creating normalized from original to fill and create undefined fields\r\n\t\t\tstate.appManagement.menu.data?.Items.forEach((rootItem, index) => {\r\n\t\t\t\trootList.push({ ...rootItem, Id: getItemId(rootItem, index) });\r\n\t\t\t});\r\n\r\n\t\t\trootList.forEach((parentItem) => {\r\n\t\t\t\tprocessItems(parentItem, elementList);\r\n\t\t\t});\r\n\r\n\t\t\telementList.forEach((parentItem) => {\r\n\t\t\t\tprocessItems(parentItem, elementList);\r\n\t\t\t});\r\n\t\t\treturn [...rootList, ...elementList];\r\n\t\t}\r\n\t),\r\n\tgetTransformedNavLinks: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, hasEventAccess: boolean) => hasEventAccess,\r\n\t\t(state, hasEventAccess: boolean): INavLinkGroup[] => {\r\n\t\t\tconst transformToNavLinks = (item: IHeaderMenuItem): INavLinkGroup => {\r\n\t\t\t\tconst transform = (childItems: IHeaderMenuItem[]): INavLink[] => {\r\n\t\t\t\t\tconst selectChains = appManagementSelectors.getSelectedIds(state);\r\n\r\n\t\t\t\t\treturn childItems\r\n\t\t\t\t\t\t.filter((childItem) => childItem.Divider === false)\r\n\t\t\t\t\t\t.map((childItem, index) => {\r\n\t\t\t\t\t\t\t// Removes unauthorized items, until authorization is provided\r\n\t\t\t\t\t\t\tif (childItem?.Authorize && !hasEventAccess) return null;\r\n\r\n\t\t\t\t\t\t\tconst newItemId = getItemId(childItem, index);\r\n\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tkey: newItemId,\r\n\t\t\t\t\t\t\t\tname: childItem.Title,\r\n\t\t\t\t\t\t\t\turl: childItem.Route,\r\n\t\t\t\t\t\t\t\texpandAriaLabel: `Show more: ${childItem.Title}`,\r\n\t\t\t\t\t\t\t\tlinks: childItem.Items?.length ? transform(childItem.Items) : null,\r\n\t\t\t\t\t\t\t\tisExpanded: selectChains.includes(newItemId)\r\n\t\t\t\t\t\t\t} as INavLink;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.filter((item) => item !== null);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Removes unauthorized items, until authorization is provided\r\n\t\t\t\tif (item?.Authorize && !hasEventAccess) return null;\r\n\r\n\t\t\t\tconst isItemGroupExpanded = appManagementSelectors.getIsMenuItemExpandedById(state, item.Id);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonHeaderClick: () => {\r\n\t\t\t\t\t\tServiceHub.appMenuAPI.start().resetAllMenu();\r\n\t\t\t\t\t\tServiceHub.appMenuAPI.start().resetSubMenus();\r\n\t\t\t\t\t\tServiceHub.appMenuAPI.start().setExpandedMenuItem(item.Id, !isItemGroupExpanded);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisExpanded: isItemGroupExpanded,\r\n\t\t\t\t\tname: item.Title,\r\n\t\t\t\t\tcollapseByDefault: true,\r\n\t\t\t\t\tcollapseAriaLabel: item.Title,\r\n\t\t\t\t\texpandAriaLabel: item.Title,\r\n\t\t\t\t\tlinks: item.Items?.length ? transform(item.Items) : null\r\n\t\t\t\t};\r\n\t\t\t};\r\n\r\n\t\t\treturn !state.appManagement.menu?.data?.Items\r\n\t\t\t\t? []\r\n\t\t\t\t: state.appManagement.menu.data?.Items.map((rootMenuItem) => transformToNavLinks(rootMenuItem)).filter(\r\n\t\t\t\t\t\t(item) => item !== null\r\n\t\t\t\t );\r\n\t\t}\r\n\t),\r\n\tgetStickyNodes: (state): IStrikeNodeSticky[] => state.appManagement.stickyNodes,\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport {\r\n\tShimmer as FluentShimmer,\r\n\tShimmerElementsGroup,\r\n\tIShimmerElement,\r\n\tShimmerElementType,\r\n\tcreateTheme,\r\n\tmergeStyleSets\r\n} from \"@fluentui/react\";\r\n\r\n/**\r\n * Regulates the properties accepted by Shimmer implementation.\r\n */\r\nexport interface IShimmerProps {\r\n\twidth?: string | number;\r\n\theight?: string | number;\r\n\ttype?: ShimmerElementType;\r\n\tshimmerElements?: IShimmerElement[];\r\n\tclassName?: undefined | string;\r\n\ttitle?: undefined | string;\r\n\talt?: undefined | string;\r\n}\r\n\r\nconst customThemeForShimmer = createTheme({\r\n\tpalette: {\r\n\t\t// palette slot used in Shimmer for all the space around the shimmering elements\r\n\t\twhite: \"transparent\"\r\n\t}\r\n});\r\n\r\nconst classNames = mergeStyleSets({\r\n\tthemedBackgroundWrapper: {\r\n\t\t// using the palette color to match the gaps and borders of the shimmer.\r\n\t\tbackground: customThemeForShimmer.palette.white\r\n\t}\r\n});\r\n\r\n/**\r\n * Shimmer wrapper implementation for the application.\r\n *\r\n * @param props\r\n * @returns JSX.Element\r\n */\r\nexport const Shimmer: React.FunctionComponent = (props) => {\r\n\tconst regExpOnlyDigits = new RegExp(/[^\\d]/, \"gi\");\r\n\tconst {\r\n\t\tclassName = \"\",\r\n\t\tshimmerElements = [],\r\n\t\ttitle = \"\",\r\n\t\talt = \"\",\r\n\t\ttype = ShimmerElementType.line,\r\n\t\twidth = \"44\",\r\n\t\theight = \"14\"\r\n\t} = props;\r\n\tconst resolvedWidth = useMemo(() => {\r\n\t\tconst _w = width?.toString();\r\n\r\n\t\treturn parseInt(_w.replace(regExpOnlyDigits, \"\"));\r\n\t}, [width]);\r\n\tconst resolvedHeight = useMemo(() => {\r\n\t\tconst _h = height?.toString();\r\n\r\n\t\treturn type === ShimmerElementType.circle ? resolvedWidth : parseInt(_h.replace(regExpOnlyDigits, \"\"));\r\n\t}, [height, resolvedWidth]);\r\n\r\n\t/**\r\n\t * Builds the shimmer as an Element group,\r\n\t * allowing for flex use of it.\r\n\t *\r\n\t * @returns An element group (ShimmerElementsGroup)\r\n\t */\r\n\tconst getElementGroup = () => {\r\n\t\treturn (\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{shimmerElements?.length > 0 ? (\r\n\t\t\t\t\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","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Article-specific Shimmer build-up.\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const ArticleShimmer: React.FunctionComponent = () => {\r\n\treturn (\r\n\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\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
\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\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
\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\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
\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\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Article-specific Shimmer build-up.\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const ArticleImgShimmer: React.FunctionComponent = () => {\r\n\treturn (\r\n\t\t<>\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","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Article tree view specific Shimmer build-up.\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const ArticleTreeViewShimmer: React.FunctionComponent = () => {\r\n\treturn (\r\n\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\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
\r\n\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\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
\r\n\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\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
\r\n\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\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
\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\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Shimmer } from \"..\";\r\nimport { IShimmerElement, ShimmerElementType } from \"@fluentui/react\";\r\nimport { authorMentionShared } from \"../../article/author/shared\";\r\n\r\n/**\r\n * Article Author mentioning Shimmer component.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const AuthorMentionShimmer: React.FC = () => {\r\n\tconst shimmerElements: IShimmerElement[] = [\r\n\t\t{\r\n\t\t\twidth: authorMentionShared.userIconWidth,\r\n\t\t\theight: authorMentionShared.userIconHeight,\r\n\t\t\ttype: ShimmerElementType.circle\r\n\t\t},\r\n\t\t{\r\n\t\t\twidth: 15,\r\n\t\t\ttype: ShimmerElementType.gap\r\n\t\t},\r\n\t\t{\r\n\t\t\twidth: 200,\r\n\t\t\theight: 16,\r\n\t\t\ttype: ShimmerElementType.line\r\n\t\t}\r\n\t];\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t prev + parseInt(`${curr.width}`), 0)}\r\n\t\t\t\tshimmerElements={shimmerElements}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n","/**\r\n * Default and shared Article Author Mention configs.\r\n */\r\nexport const authorMentionShared = {\r\n\tuserIconHeight: 36,\r\n\tuserIconWidth: 36\r\n};\r\n","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Form-generic Shimmer build-up.\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const FormShimmer: React.FunctionComponent = () => {\r\n\treturn (\r\n\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\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\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\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
\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\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
\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\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
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Question-specific Shimmer build-up.\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const QuestionShimmer: React.FunctionComponent = () => {\r\n\treturn (\r\n\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\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
\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\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
\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\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
\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\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Topics-specific Shimmer build-up.\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const TopicsShimmer: React.FunctionComponent = () => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\t\r\n\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","import React from \"react\";\r\nimport { Shimmer } from \"@fluentui/react\";\r\n\r\n/**\r\n * Node Activity Shimmer\r\n *\r\n * @returns React.FunctionComponent\r\n */\r\nexport const NodeActivityShimmer: React.FunctionComponent = () => {\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\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","import { createSelector } from \"@reduxjs/toolkit\";\r\nimport { NodeTreeItem } from \"../../contracts\";\r\n\r\n/**\r\n * Definition of selectors which will be used in the AppTreeView Reducer to manage the state of the TreeView in the Article Section\r\n */\r\nexport const appTreeViewSelectors = {\r\n\tgetExpanded: (state): string[] => {\r\n\t\treturn state.appTreeView.expanded;\r\n\t},\r\n\tgetIsExpanded: createSelector(\r\n\t\t(state) => state,\r\n\t\t(_, itemId: string) => itemId,\r\n\t\t(state, itemId: string): boolean => {\r\n\t\t\tconst isExpanded = state.appTreeView.expanded.includes(itemId);\r\n\r\n\t\t\treturn isExpanded;\r\n\t\t}\r\n\t),\r\n\tgetData: (state): NodeTreeItem[] => {\r\n\t\treturn state.appTreeView.rawData;\r\n\t},\r\n\tgetIsLoaded: (state): boolean => state.appTreeView.loaded,\r\n\tgetLoading: (state): boolean => state.appTreeView.loading,\r\n\tgetSearchText: (state): string => state.appTreeView.searchText\r\n};\r\n","/**\r\n * Definition of selectors\r\n * for User Auth.\r\n */\r\nexport const authSelectors = {\r\n\tgetUserDisplayName: (state) => {\r\n\t\treturn state.auth.user.displayName;\r\n\t},\r\n\tgetUserPrincipalName: (state) => {\r\n\t\treturn state.auth.user.principalName ?? \"\";\r\n\t},\r\n\tgetUserEmail: (state) => {\r\n\t\treturn state.auth.user.email ?? \"\";\r\n\t},\r\n\tgetUserId: (state) => {\r\n\t\treturn state.auth.user.id ?? \"\";\r\n\t},\r\n\tgetCanAccessCreateArticleComponents: (state): boolean => {\r\n\t\treturn state.auth.canAccessCreateArticleComponents ?? false;\r\n\t},\r\n\tgetAuthoriableId: (state) => {\r\n\t\treturn state.auth.user.authoriableId ?? \"\";\r\n\t},\r\n\tgetAccessRequesting: (state): boolean => {\r\n\t\treturn state.auth.accessRequesting;\r\n\t},\r\n\tgetAccessRequested: (state): boolean => {\r\n\t\treturn state.auth.accessRequested;\r\n\t},\r\n\tgetIsSuperAdminAccess: (state): boolean => {\r\n\t\treturn state.auth.isSuperAdmin ?? false;\r\n\t},\r\n\tgetSuperAccessRequesting: (state): boolean => {\r\n\t\treturn state.auth.superAccessRequesting;\r\n\t},\r\n\tgetSuperAccessRequested: (state): boolean => {\r\n\t\treturn state.auth.superAccessRequested;\r\n\t}\r\n};\r\n","import { useEffect } from \"react\";\r\nimport { setUserDisplayName, setUserId, setUserPrincipalName, setUserEmail } from \"../../redux/reducers/auth\";\r\nimport { useSelector } from \"react-redux\";\r\nimport store from \"../../redux/store\";\r\nimport { UserProfileAPIService } from \"../../service/userProfile/UserProfileAPI\";\r\nimport { authSelectors } from \"../../redux/selectors/auth\";\r\n\r\nconst userProfile = new UserProfileAPIService();\r\n\r\n/**\r\n * Hook that gets authenticated user information from store.\r\n *\r\n * @returns user authentication object\r\n */\r\nconst useAuthUser = () => {\r\n\tconst userDisplayName = useSelector(authSelectors.getUserDisplayName);\r\n\tconst userPrincipalName = useSelector(authSelectors.getUserPrincipalName);\r\n\tconst userId = useSelector(authSelectors.getUserId);\r\n\tconst userEmail = useSelector(authSelectors.getUserEmail);\r\n\r\n\tconst setDisplayName = (displayName: string) => {\r\n\t\tstore.dispatch(setUserDisplayName(displayName));\r\n\t};\r\n\r\n\tconst setPrincipalName = (principalName: string) => {\r\n\t\tstore.dispatch(setUserPrincipalName(principalName));\r\n\t};\r\n\r\n\tconst setId = (id: string) => {\r\n\t\tstore.dispatch(setUserId(id));\r\n\t};\r\n\r\n\tconst setEmail = (email: string) => {\r\n\t\tstore.dispatch(setUserEmail(email));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tasync function getInfo() {\r\n\t\t\tif (!userDisplayName || userDisplayName == \"\") {\r\n\t\t\t\tuserProfile.GetCurrentUserDisplayName().then((data) => {\r\n\t\t\t\t\tsetDisplayName(data);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (!userPrincipalName || userPrincipalName == \"\") {\r\n\t\t\t\tuserProfile.GetCurrentUserUpn().then((data) => {\r\n\t\t\t\t\tsetPrincipalName(data);\r\n\t\t\t\t\tconst username = data.split(\"@\");\r\n\t\t\t\t\tsetId(username[0]);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (!userEmail || userEmail == \"\") {\r\n\t\t\t\tuserProfile.GetCurrentUserEmail().then((data) => {\r\n\t\t\t\t\tsetEmail(data);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tgetInfo();\r\n\t}, [userDisplayName, userPrincipalName, userEmail, userId]);\r\n\r\n\treturn {\r\n\t\tuserDisplayName,\r\n\t\tuserPrincipalName,\r\n\t\tuserEmail,\r\n\t\tuserId\r\n\t};\r\n};\r\n\r\nexport { useAuthUser };\r\n","import { useCallback, useEffect, useRef } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { authSelectors } from \"../../redux/selectors/auth\";\r\nimport {\r\n\tsetAccessRequested,\r\n\tsetAccessRequesting,\r\n\tsetCanAccessCreateArticleComponents\r\n} from \"../../redux/reducers/auth\";\r\nimport store from \"../../redux/store\";\r\nimport { NodeType } from \"../../contracts/models/strikeEnums\";\r\nimport { appManagementSelectors } from \"../../redux/selectors/appManagement\";\r\n\r\n/**\r\n * Defines the return types for Access Control hook.\r\n */\r\nexport interface IAccessControlInfo {\r\n\tcanAccess: boolean;\r\n\tuserId: string;\r\n\trequesting: boolean;\r\n\trequested: boolean;\r\n\tcanUserAccessNodeType: (nodeType: NodeType | string) => boolean;\r\n}\r\n\r\n/**\r\n * Checks whether the user can access Node Admin functions.\r\n * In this case, restriction is controlled by backend.\r\n * Components should use this hook for deciding on whether to render, or not.\r\n *\r\n * @returns Access Control object result.\r\n */\r\nexport const useNodeAdminAccessControl = (): IAccessControlInfo => {\r\n\tconst dispatch = useDispatch();\r\n\tconst userId = useSelector(authSelectors.getUserId);\r\n\t//const canAccess = useSelector(authSelectors.getCanAccessCreateArticleComponents);\r\n\tconst canAccess = useSelector(appManagementSelectors.getIsNodeAdminUser);\r\n\tconst requestingAccess = useSelector(authSelectors.getAccessRequesting);\r\n\tconst requestedAccess = useSelector(authSelectors.getAccessRequested);\r\n\r\n\t/**\r\n\t * Tests whether the access is restricted to a given NodeType item.\r\n\t */\r\n\tconst isRestrictedNodeType = useCallback((nodeType: NodeType | string) => {\r\n\t\tconst restrictedTypes = [NodeType.Kbentry, null];\r\n\t\tconst foundType =\r\n\t\t\tnodeType === null\r\n\t\t\t\t? null\r\n\t\t\t\t: typeof nodeType === \"string\"\r\n\t\t\t\t? Object.values(NodeType).find((fType) => fType === nodeType)\r\n\t\t\t\t: NodeType[nodeType];\r\n\r\n\t\treturn restrictedTypes.includes(foundType);\r\n\t}, []);\r\n\r\n\t/**\r\n\t * Consumes from the access control whether the user can\r\n\t * access the Node Admin routes and data.\r\n\t * Also, consider that the NodeType which subjects to the\r\n\t * rule should be NodeType.Kbentry only.\r\n\t */\r\n\tconst canUserAccessNodeType = useCallback(\r\n\t\t(nodeType: NodeType | string) => {\r\n\t\t\tconst isRestricted = isRestrictedNodeType(nodeType);\r\n\r\n\t\t\treturn !isRestricted || (isRestricted && canAccess);\r\n\t\t},\r\n\t\t[isRestrictedNodeType, canAccess]\r\n\t);\r\n\r\n\treturn { canAccess, userId, requesting: requestingAccess, requested: requestedAccess, canUserAccessNodeType };\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { spacesSelectors } from \"../../redux/selectors/spaces\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ITreeItem } from \"@coherence-design-system/tree-view\";\r\nimport { SpacesAPIService } from \"../../service/space/SpacesAPI\";\r\nimport { ISpaceItem } from \"../../contracts\";\r\n\r\n/**\r\n * Contract for the Spaces Slice hook.\r\n */\r\ninterface ISpaceSliceHook {\r\n\tservice: SpacesAPIService;\r\n\tspaces: ISpaceItem[];\r\n\ttreeView: ITreeItem[];\r\n\tselectedId: null | number | string;\r\n\tselectedItem: { id: string; text: string };\r\n\tloading: boolean;\r\n\tloaded: boolean;\r\n\topen: boolean;\r\n\tsetOpen: (open: boolean) => void;\r\n}\r\n\r\n/**\r\n * Prepares the Spaces List, and returns a controller\r\n * hook which can access Redux state layer for Spaces Slice.\r\n *\r\n * @returns ISpaceSliceHook\r\n */\r\nexport const useSpaceSlice = (): ISpaceSliceHook => {\r\n\tconst spaceAPI = useRef(ServiceHub.spacesAPI.start());\r\n\tconst spaceTree: ITreeItem[] = useSelector(spacesSelectors.getParentSpacesDropdownOptions);\r\n\tconst selectedSpaceId: null | number | string = useSelector(spacesSelectors.getSelectedId);\r\n\tconst selectedItem: { id: string; text: string } = useSelector(spacesSelectors.getSelectedItem);\r\n\tconst spaces: ISpaceItem[] = useSelector(spacesSelectors.getSpacesList);\r\n\tconst loading: boolean = useSelector(spacesSelectors.getLoading);\r\n\tconst loaded: boolean = useSelector(spacesSelectors.getLoaded);\r\n\tconst open: boolean = useSelector(spacesSelectors.getOpen);\r\n\r\n\tuseEffect(() => {\r\n\t\t/**\r\n\t\t * Gets the spaces list to keep it ready for user navigation.\r\n\t\t */\r\n\t\tasync function loadSpaces() {\r\n\t\t\tif (!loading && !loaded) {\r\n\t\t\t\tspaceAPI.current.setLoading(true);\r\n\r\n\t\t\t\tspaceAPI.current\r\n\t\t\t\t\t.getSpaces()\r\n\t\t\t\t\t.then(async (items) => {\r\n\t\t\t\t\t\tspaceAPI.current.setSpaces(items);\r\n\t\t\t\t\t\tspaceAPI.current.setLoading(false);\r\n\t\t\t\t\t\tspaceAPI.current.setLoaded(true);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((ex) => {\r\n\t\t\t\t\t\tspaceAPI.current.setLoading(false);\r\n\t\t\t\t\t\tspaceAPI.current.setLoaded(true);\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 1. Pre-loads the spaces list for using\r\n\t\tloadSpaces();\r\n\t}, [loading, loaded, spaceAPI.current]);\r\n\r\n\treturn {\r\n\t\tservice: spaceAPI.current,\r\n\t\ttreeView: spaceTree,\r\n\t\tselectedId: selectedSpaceId,\r\n\t\tselectedItem,\r\n\t\tloading,\r\n\t\tloaded,\r\n\t\topen,\r\n\t\tspaces,\r\n\t\tsetOpen: (open: boolean) => spaceAPI.current.setOpen(open)\r\n\t};\r\n};\r\n","import { ITreeItem } from \"@coherence-design-system/tree-view\";\r\nimport { IStrikeNodes } from \"../../contracts/models\";\r\nimport { NodeType } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Definition of selectors related to main Filter\r\n */\r\nexport const filterSelectors = {\r\n\tgetSearchTopics: (state) => state.filter.data.searchTopics,\r\n\tgetSearchTitle: (state) => state.filter.data.searchTitle,\r\n\tgetToggleExpanderFilter: (state) => state.filter.ui.expanded,\r\n\tgetFilterLoaded: (state): boolean => state.filter.ui.loaded,\r\n\tgetFilterLoading: (state): boolean => state.filter.ui.loading,\r\n\tgetPageIndex: (state): number => state.filter.data.pageIndex,\r\n\tgetNodeList: (state): IStrikeNodes => state.filter.data.nodeList,\r\n\tgetNodesLoading: (state): boolean => state.filter.ui.nodesLoading,\r\n\tgetDashboardButtonTitle: (state): string => state.filter.ui.dashboardButtonTitle,\r\n\tgetDashboardNavigation: (state): NodeType | undefined => state.filter.ui.dashboardNavigation,\r\n\tgetTopicsResetKey: (state): number => state.filter.ui.topicsResetKey,\r\n\tgetSpaceSelectedValue: (state): ITreeItem => state.filter.ui.spaceSelectedValue,\r\n\tgetIsFilterVisible: (state): any => state.filter.ui.isFilterVisible,\r\n\tgetIsDashboardLoading: (state): any => state.filter.ui.isDashboardLoading,\r\n\tgetUserCustomDashboard: (state): any => state.filter.ui.userCustomDashboard,\r\n\tgetSortByOption: (state): string => state.filter.ui.sortByOption\r\n};\r\n","import { useMemo } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { filterSelectors } from \"../../redux/selectors/filter\";\r\nimport { useParams, useSearchParams } from \"react-router-dom\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { IStrikeNodes, QueryNodeModel } from \"../../contracts/models\";\r\nimport { NodeType, UserDashboardsFiltersType } from \"../../contracts/models/strikeEnums\";\r\nimport { setIsDashboardLoading, setNodeList, setNodesLoading } from \"../../redux/reducers/filter\";\r\nimport { NodeAPIServiceInstance } from \"../../service/NodeAPI\";\r\nimport { spacesSelectors } from \"../../redux/selectors/spaces\";\r\nimport { spacesActions } from \"../../redux/reducers/spaces\";\r\n\r\n/**\r\n * Contract for the Filter Slice hook.\r\n */\r\ninterface IFilterSliceHook {\r\n\tsearchTopics: string;\r\n\tsearchTitle: string;\r\n\tisFilterExpanded: boolean;\r\n\tisLoading: boolean;\r\n\tisLoaded: boolean;\r\n\tpageIndex: number;\r\n\tonSearch: (pageIndex: number, title: string, topics: string, type?: NodeType, filterBy?: UserDashboardsFiltersType) => void;\r\n\tgetNodesList: (queryNodeModel: QueryNodeModel) => void;\r\n\tsearchTopic: string;\r\n\tnodeList: IStrikeNodes;\r\n\tisNodesLoading: boolean;\r\n\tdashboardButtonTitle: string;\r\n\tdashboardNavigation: NodeType;\r\n\tsortByOption: string;\r\n\tuserCustomDashboard: UserDashboardsFiltersType;\r\n\ttopicsResetKey: number;\r\n\tisDashboardLoading: boolean;\r\n\tspaceCoverImage: string;\r\n\tspaceCoverImageLoaded: boolean;\r\n\tspaceName: string;\r\n\tspaceDescription: string;\r\n\tspaceBanner: string;\r\n\tisSpaceDetailsLoaded: boolean;\r\n\tgetSpaceIsolatedData: (spaceId: string) => void;\r\n\tsetSpaceCoverImageLoaded: (value: boolean) => void;\r\n\tsetSpaceDetailsLoaded: (value: boolean) => void;\r\n}\r\n\r\n/**\r\n * Hook to use Filtering globally\r\n *\r\n * @returns ISpaceSliceHook\r\n */\r\nexport const useFilterSlice = (): IFilterSliceHook => {\r\n\tconst params = useParams();\r\n\tconst [searchParams] = useSearchParams();\r\n\tconst nodeId = useMemo(() => (params?.id ? Number(params.id) : null), [params.id]);\r\n\tconst searchTopic = useMemo(() => searchParams.get(\"topics\"), [searchParams]);\r\n\tconst searchTopics: string = useSelector(filterSelectors.getSearchTopics);\r\n\tconst searchTitle: string = useSelector(filterSelectors.getSearchTitle);\r\n\tconst isFilterExpanded: boolean = useSelector(filterSelectors.getToggleExpanderFilter);\r\n\tconst pageIndex: number = useSelector(filterSelectors.getPageIndex);\r\n\tconst isLoading: boolean = useSelector(filterSelectors.getFilterLoading);\r\n\tconst isLoaded: boolean = useSelector(filterSelectors.getFilterLoaded);\r\n\tconst nodeList: IStrikeNodes = useSelector(filterSelectors.getNodeList);\r\n\tconst isNodesLoading: boolean = useSelector(filterSelectors.getNodesLoading);\r\n\tconst dashboardButtonTitle: string = useSelector(filterSelectors.getDashboardButtonTitle);\r\n\tconst dashboardNavigation: NodeType = useSelector(filterSelectors.getDashboardNavigation);\r\n\tconst userCustomDashboard: UserDashboardsFiltersType = useSelector(filterSelectors.getUserCustomDashboard);\r\n\tconst topicsResetKey: number = useSelector(filterSelectors.getTopicsResetKey);\r\n\tconst isDashboardLoading: boolean = useSelector(filterSelectors.getIsDashboardLoading);\r\n\tconst sortByOption: string = useSelector(filterSelectors.getSortByOption);\r\n\tconst spaceCoverImage: string = useSelector(spacesSelectors.getSpaceCoverImage);\r\n\tconst spaceCoverImageLoaded: boolean = useSelector(spacesSelectors.getSpaceCoverImageLoaded);\r\n\tconst spaceName: string = useSelector(spacesSelectors.getSpaceName);\r\n\tconst spaceDescription: string = useSelector(spacesSelectors.getSpaceDescription);\r\n\tconst spaceBanner: string = useSelector(spacesSelectors.getSpaceBanner);\r\n\tconst isSpaceDetailsLoaded: boolean = useSelector(spacesSelectors.getSpaceDetailsLoaded);\r\n\tconst dispatch = useDispatch();\r\n\r\n\t/**\r\n\t * Prepare query object to get node list\r\n\t * @param pageIndex\r\n\t * @param title\r\n\t * @param topics\r\n\t * @param type\r\n\t */\r\n\tconst onSearch = (pageIndex: number, title: string, topics: string, type: NodeType, filterBy: UserDashboardsFiltersType): void => {\r\n\t\tlet queryModel = ServiceHub.nodeAPI.getQueryNodeObject(nodeId, pageIndex, title, topics, searchTopic, type, undefined, userCustomDashboard);\r\n\t\tgetNodesList(queryModel);\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API endpoint to get all nodes based on the query\r\n\t * @param queryNodeModel\r\n\t */\r\n\tconst getNodesList = async (queryNodeModel: QueryNodeModel) => {\r\n\t\tlet res = await NodeAPIServiceInstance.getAll(queryNodeModel);\r\n\t\tif (await res.nodes) {\r\n\t\t\tdispatch(setNodeList(res));\r\n\t\t\tdispatch(setNodesLoading(false));\r\n\t\t\tdispatch(setIsDashboardLoading(false));\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Utility to convert space image string path to data image\r\n\t * @param imagePath\r\n\t */\r\n\tconst getSpaceCoverImageData = (imagePath: string) => {\r\n\t\tServiceHub.appFileAPI\r\n\t\t\t.start()\r\n\t\t\t.getCoverImageByURL(imagePath)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tconst imageData = result ? URL.createObjectURL(result) : null;\r\n\t\t\t\tdispatch(spacesActions.setSpaceCoverImage(imageData));\r\n\t\t\t\tdispatch(spacesActions.setSpaceCoverImageLoaded(true));\r\n\t\t\t});\r\n\t};\r\n\r\n\t/**\r\n\t * Flag to control image loading on Space Box Details\r\n\t * @param value\r\n\t */\r\n\tconst setSpaceCoverImageLoaded = (value: boolean) => {\r\n\t\tdispatch(spacesActions.setSpaceCoverImageLoaded(value));\r\n\t};\r\n\r\n\t/**\r\n\t * Flag to control details data loaded Space Box Details\r\n\t * @param value\r\n\t */\r\n\tconst setSpaceDetailsLoaded = (value: boolean) => {\r\n\t\tdispatch(spacesActions.setSpaceDetailsLoaded(value));\r\n\t};\r\n\r\n\t/**\r\n\t * Get specific isolated space data re-using Space Management endpoint\r\n\t * @param spaceId\r\n\t */\r\n\tconst getSpaceIsolatedData = (spaceId: string) => {\r\n\t\tNodeAPIServiceInstance.getSpace(spaceId).then((result: any) => {\r\n\t\t\tif (result instanceof Error) {\r\n\t\t\t\tServiceHub.message.error(result.message);\r\n\t\t\t\tthrow result;\r\n\t\t\t}\r\n\t\t\tdispatch(spacesActions.setSpaceName(result.Value.Name));\r\n\t\t\tif (result.Value.CoverImagePath) {\r\n\t\t\t\tgetSpaceCoverImageData(result.Value.CoverImagePath);\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(spacesActions.resetSpaceCoverImage());\r\n\t\t\t}\r\n\t\t\tif (result.Value.Description) {\r\n\t\t\t\tdispatch(spacesActions.setSpaceDescription(result.Value.Description));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(spacesActions.resetSpaceDescription());\r\n\t\t\t}\r\n\t\t\tif (result.Value.Banner) {\r\n\t\t\t\tdispatch(spacesActions.setSpaceBanner(result.Value.Banner));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(spacesActions.resetSpaceBanner());\r\n\t\t\t}\r\n\t\t\tdispatch(spacesActions.setSpaceDetailsLoaded(true));\r\n\t\t});\r\n\t};\r\n\r\n\treturn {\r\n\t\tsearchTopics,\r\n\t\tsearchTitle,\r\n\t\tisFilterExpanded,\r\n\t\tisLoading,\r\n\t\tisLoaded,\r\n\t\tpageIndex,\r\n\t\tonSearch,\r\n\t\tgetNodesList,\r\n\t\tsearchTopic,\r\n\t\tnodeList,\r\n\t\tisNodesLoading,\r\n\t\tdashboardButtonTitle,\r\n\t\tdashboardNavigation,\r\n\t\tuserCustomDashboard,\r\n\t\ttopicsResetKey,\r\n\t\tisDashboardLoading,\r\n\t\tspaceCoverImage,\r\n\t\tspaceCoverImageLoaded,\r\n\t\tspaceName,\r\n\t\tspaceDescription,\r\n\t\tspaceBanner,\r\n\t\tisSpaceDetailsLoaded,\r\n\t\tgetSpaceIsolatedData,\r\n\t\tsetSpaceCoverImageLoaded,\r\n\t\tsetSpaceDetailsLoaded,\r\n\t\tsortByOption\r\n\t};\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport { ServiceHub } from \"../../service\";\r\nimport { FollowType } from \"../../enums\";\r\nimport { IFollowRelation } from \"../../contracts\";\r\nimport { useAuthUser } from \"../auth/useAuthUser\";\r\nimport { followSelectors } from \"../../redux/selectors/follow\";\r\n\r\n/**\r\n * Contract for consuming the retrieved followers\r\n * list.\r\n */\r\nexport interface IUseFollowersHook {\r\n\tfollowers: IFollowRelation[];\r\n\ttype: FollowType;\r\n\tquerying: boolean;\r\n\tqueried: boolean;\r\n\tcurrentUserFollowing: boolean;\r\n\trefresh: () => Promise;\r\n}\r\n\r\n/**\r\n * Handles the preparation of a list of Followers,\r\n * To a given Topic, Space, or Node.\r\n * It uses the ID of the item to query for the collection.\r\n *\r\n * @param nodeId The Node ID having its followers queried\r\n * @param followType The Type of Node being Followed/Unfollowed\r\n * @returns IUseFollowersHook\r\n */\r\nexport const useFollowers = (nodeId: number | string, followType: FollowType) => {\r\n\t// Local states\r\n\tconst queryTimeoutController = useRef(null);\r\n\tconst previousNodeId = useRef(null);\r\n\tconst followService = useRef(ServiceHub.followAPI.start());\r\n\r\n\t// Selectors\r\n\tconst followers = useSelector(followSelectors.getFollowers);\r\n\tconst querying = useSelector(followSelectors.getQuerying);\r\n\tconst queried = useSelector(followSelectors.getQueried);\r\n\tconst nodeIsFavourite = useSelector(followSelectors.getIsFavourite);\r\n\tconst currentUser = useAuthUser();\r\n\tconst currentUserFollowing = useSelector((state) =>\r\n\t\tfollowSelectors.getCurrentUserFollowing(state, currentUser.userPrincipalName)\r\n\t);\r\n\r\n\t/**\r\n\t * Executes query for followers\r\n\t */\r\n\tconst queryFollowers = async () => {\r\n\t\tconst abortController = new AbortController();\r\n\r\n\t\tqueryTimeoutController.current = setTimeout(async () => {\r\n\t\t\tif (!querying && !queried) {\r\n\t\t\t\tfollowService.current.setQuerying(true);\r\n\r\n\t\t\t\t// Stores the current querying ID\r\n\t\t\t\tpreviousNodeId.current = nodeId;\r\n\r\n\t\t\t\tServiceHub.nodeAPI.getFollowers(nodeId, followType, abortController);\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t};\r\n\r\n\t/**\r\n\t * Refreshes the internal component data\r\n\t */\r\n\tconst refresh = async () => {\r\n\t\tresetFollowers();\r\n\t\tfollowService.current.setQueried(false);\r\n\t\tfollowService.current.setFollowers([]);\r\n\t\tqueryFollowers();\r\n\t};\r\n\r\n\t/**\r\n\t * Resets the count of displaying followers to default\r\n\t */\r\n\tconst resetFollowers = (): void => {\r\n\t\tfollowService.current.resetFollowersToShow();\r\n\t};\r\n\r\n\t// Will monitor and refresh the data,\r\n\t// when the last ID is different from the current\r\n\tuseEffect(() => {\r\n\t\tasync function checkNodeIdChanged() {\r\n\t\t\tif (previousNodeId.current !== null && previousNodeId.current !== nodeId) {\r\n\t\t\t\trefresh();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcheckNodeIdChanged();\r\n\r\n\t\t() => {\r\n\t\t\tif (queryTimeoutController.current) clearTimeout(queryTimeoutController.current);\r\n\t\t};\r\n\t}, [previousNodeId, nodeId]);\r\n\r\n\t// Does the initial data load for the hook\r\n\tuseEffect(() => {\r\n\t\tqueryFollowers();\r\n\r\n\t\t() => {\r\n\t\t\tif (queryTimeoutController.current) clearTimeout(queryTimeoutController.current);\r\n\t\t};\r\n\t}, [querying, queried]);\r\n\r\n\t// Clean-up useEffect\r\n\tuseEffect(\r\n\t\t() => () => {\r\n\t\t\tfollowService.current.resetAll();\r\n\t\t},\r\n\t\t[]\r\n\t);\r\n\r\n\treturn { followers, type: followType, querying, queried, nodeIsFavourite, currentUserFollowing, refresh };\r\n};\r\n","import { useCallback, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { articleFormSelectors } from \"../../redux/selectors/articleForm\";\r\n\r\n/**\r\n * Handles the Node Cover Image Gallery selection.\r\n *\r\n * @returns A handset of Image Gallery controls.\r\n */\r\nexport const useImageGallery = () => {\r\n\tconst articleFormService = useRef(ServiceHub.articleForm.start());\r\n\tconst imagePathGallery = useSelector(articleFormSelectors.getGallery);\r\n\tconst coverImagesListControl = useSelector(articleFormSelectors.getCoverImagesListControl);\r\n\tconst coverImagesList = useSelector(articleFormSelectors.getCoverImagesList);\r\n\r\n\t/**\r\n\t * Queries for objects from the gallery\r\n\t */\r\n\tconst queryGallery = useCallback(\r\n\t\tasync (page: number, length: number) => {\r\n\t\t\tawait ServiceHub.articleDataAPI\r\n\t\t\t\t.start()\r\n\t\t\t\t.getCoverImages(page, length)\r\n\t\t\t\t.then((result) => {\r\n\t\t\t\t\tarticleFormService.current.setCoverImagesListControl({\r\n\t\t\t\t\t\titems: result.CoverImages,\r\n\t\t\t\t\t\tcurrentPage: page,\r\n\t\t\t\t\t\ttotalCount: result.TotalRecordCount,\r\n\t\t\t\t\t\tpageLength: length\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tresult.CoverImages.forEach((coverItem) => {\r\n\t\t\t\t\t\tif (imagePathGallery.imagePath[coverItem.Id]) return;\r\n\r\n\t\t\t\t\t\t// Image not yet available, download from storage\r\n\t\t\t\t\t\tServiceHub.appFileAPI\r\n\t\t\t\t\t\t\t.start()\r\n\t\t\t\t\t\t\t.getCoverImageByURL(coverItem.CoverImagePath)\r\n\t\t\t\t\t\t\t.then((imageDownloadResult) => {\r\n\t\t\t\t\t\t\t\tconst imageData = imageDownloadResult ? URL.createObjectURL(imageDownloadResult) : null;\r\n\r\n\t\t\t\t\t\t\t\tarticleFormService.current.setGalleryImagePathById(coverItem.Id, imageData);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t[imagePathGallery, articleFormService]\r\n\t);\r\n\r\n\t/**\r\n\t * Handles the page change command for a pagination kit.\r\n\t *\r\n\t * @param pageIndex The next page index\r\n\t * @param pageSize The page size to query from service\r\n\t */\r\n\tconst onPageChange = useCallback(\r\n\t\t(pageIndex: number, pageSize: number) => {\r\n\t\t\tarticleFormService.current.setCoverImagesListControl({\r\n\t\t\t\titems: coverImagesListControl.items,\r\n\t\t\t\tcurrentPage: pageIndex,\r\n\t\t\t\ttotalCount: coverImagesListControl.pageLength,\r\n\t\t\t\tpageLength: pageSize\r\n\t\t\t});\r\n\t\t\tqueryGallery(pageIndex, pageSize);\r\n\t\t},\r\n\t\t[queryGallery, coverImagesListControl, articleFormService]\r\n\t);\r\n\r\n\treturn {\r\n\t\tcoverImagesList,\r\n\t\tcoverImagesListControl,\r\n\t\timagePathGallery,\r\n\t\tonPageChange,\r\n\t\tqueryGallery\r\n\t};\r\n};\r\n","/**\r\n * Ids of Fields used on Node Form component.\r\n */\r\nexport const NodeFormFieldIds = {\r\n\tparent: \"parentId\",\r\n\ttitle: \"title\",\r\n\tbody: \"body\",\r\n\ttopics: \"topics\",\r\n\taddTopics: \"addTopics\",\r\n\tspace: \"spaceId\",\r\n\tcoverImageType: \"coverImageType\",\r\n\tselectCover: \"articleSelectCover\",\r\n\tselectedCoverView: \"articleSelectedCover\",\r\n\tprivate: \"private\"\r\n};\r\n\r\n/**\r\n * Labels used on Node Form component.\r\n */\r\nexport const NodeFormLabels = {\r\n\ttop: {\r\n\t\tkbentry: { pageTitleCreate: \"Create an Article\", pageTitleEdit: \"Edit Article\" },\r\n\t\tquestion: { pageTitleCreate: \"Ask a Question\", pageTitleEdit: \"Edit a Question\" }\r\n\t},\r\n\tactions: {\r\n\t\tpreviewMode: \"Preview\",\r\n\t\tsourceMode: \"Source\",\r\n\t\tselectCover: \"Select Cover Image\",\r\n\t\tsubmit: \"Post\",\r\n\t\tcancel: \"Discard\",\r\n\t\tupdateSpace: \"Update Space\"\r\n\t},\r\n\thints: [\r\n\t\t\"Tab to the formatting toolbar with Alt/Option + F10. If inside toolbar, press ESC to return to editor.\"\r\n\t],\r\n\tparent: \"Parent Article\",\r\n\ttitle: \"Title\",\r\n\tbody: \"Body\",\r\n\ttopics: \"Topics\",\r\n\taddTopics: \"Add New Topics\",\r\n\tspace: \"Space\",\r\n\tselectCover: \"Select Cover Image\",\r\n\tselectedCoverView: \"Selected Cover Image\",\r\n\tprivate: {\r\n\t\tkbentry: \"Make this Article Private\",\r\n\t\tquestion: \"Make this Question Private\"\r\n\t},\r\n\tvalidation: {\r\n\t\tspaceId: \"Space was not selected\",\r\n\t\ttitle: \"Title is required\",\r\n\t\tbody: \"Body is required\"\r\n\t}\r\n};\r\n\r\n/**\r\n * Placeholders used on Node Form component.\r\n */\r\nexport const NodeFormPlaceholders = {\r\n\tkbentry: {\r\n\t\tparent: \"Start typing a parent Article's Title\",\r\n\t\ttitle: \"Start typing your Article's title\",\r\n\t\tbody: \"Write your Article's content here\",\r\n\t\tbodySourceMode: \"Write your Article's HTML here\",\r\n\t\ttopics: \"Select Article's topics\",\r\n\t\tspace: \"Select a space for your Article\"\r\n\t},\r\n\tquestion: {\r\n\t\ttitle: \"Start typing your Question's title\",\r\n\t\tbody: \"Write your Question's content here\",\r\n\t\tbodySourceMode: \"Write your Question's HTML here\",\r\n\t\ttopics: \"Select Question's topics\",\r\n\t\tspace: \"Select a Space for your Question\"\r\n\t}\r\n};\r\n","import React from \"react\";\r\nimport { ButtonProps, IconProps, Button as SemanticButton, SemanticShorthandItem } from \"semantic-ui-react\";\r\n\r\n/**\r\n * Controls the possible variations of the button\r\n */\r\ndeclare type ButtonVariation = \"primary\" | \"secondary\";\r\n/**\r\n * Controls the possible types of the button\r\n */\r\ndeclare type ButtonType = \"submit\" | \"button\" | \"reset\";\r\n\r\n/**\r\n * Controls the Strike general Button input props as per\r\n * contract.\r\n */\r\nexport interface IButtonProps {\r\n\ttext: string;\r\n\tonClick?: (event: React.MouseEvent, data: ButtonProps) => void | Promise;\r\n\ttype?: undefined | ButtonType;\r\n\tclassName?: undefined | string;\r\n\tdisabled?: undefined | boolean;\r\n\ticon?: undefined | SemanticShorthandItem;\r\n\tvariation?: undefined | ButtonVariation;\r\n\tloading?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Renders a wrapped Semantic UI button for the application.\r\n *\r\n * @param props Props to process for the button\r\n * @returns React.FC\r\n */\r\nexport const Button: React.FC = (props) => {\r\n\tconst conditions = {\r\n\t\tprimary: !props?.variation || props.variation === \"primary\",\r\n\t\tsecondary: props?.variation === \"secondary\",\r\n\t\ttype: props?.type ?? \"button\",\r\n\t\tvariation: props?.variation ?? \"primary\",\r\n\t\tonClick: props?.onClick ?? undefined,\r\n\t\tdisabled: props?.disabled ?? undefined,\r\n\t\tloading: props?.loading ?? undefined\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{props.text}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { IconButton as FluentIconButton, CommandBarButton } from \"@fluentui/react\";\r\nimport { ScreenWidthSize, useScreenSize } from \"../../../hooks\";\r\n\r\n/**\r\n * Controls the input properties of Icon Button component\r\n */\r\nexport interface IIconButtonProps {\r\n\ticonName: string;\r\n\tonClick: (event: React.MouseEvent) => void | Promise;\r\n\ttext?: undefined | string;\r\n\tclassName?: undefined | string;\r\n\ttabIndex?: undefined | number;\r\n\tariaLabel?: undefined | string;\r\n\ttitle?: undefined | string;\r\n\tdisabled?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Reusable Icon button for Strike application.\r\n */\r\nexport const IconButton: React.FC = (props) => {\r\n\tconst iconProps = { iconName: props.iconName ?? \"\" };\r\n\tconst isTablet = useScreenSize(ScreenWidthSize.Tablet);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import * as React from \"react\";\r\nimport { useBoolean } from \"@fluentui/react-hooks\";\r\nimport { DefaultButton } from \"@fluentui/react/lib/Button\";\r\nimport { Callout } from \"@fluentui/react/lib/Callout\";\r\nimport { IContextualMenuProps, IContextualMenuItem } from \"@fluentui/react/lib/ContextualMenu\";\r\nimport { IIconProps } from \"@fluentui/react\";\r\n\r\n/**\r\n * Contract for the use of Button Dropdown as a group of actions.\r\n */\r\ninterface IButtonDropdownProps {\r\n\tcallToActionText: string;\r\n\titems: IContextualMenuItem[];\r\n\tfullWidth?: undefined | boolean;\r\n\tclassName?: undefined | string;\r\n\ticonProps?: undefined | IIconProps\r\n}\r\n\r\n/**\r\n * Renders an inline Button with child dropdown of possible actions.\r\n * There will be a default callToActionText defined at the root of the button.\r\n *\r\n * @param props IButtonDropdownProps\r\n * @returns React.FC\r\n */\r\nexport const ButtonDropdown: React.FC = (props) => {\r\n\tconst [showCallout, { setFalse: onHideCallout }] = useBoolean(false);\r\n\r\n\tconst menuProps: IContextualMenuProps = React.useMemo(\r\n\t\t() => ({\r\n\t\t\tshouldFocusOnMount: true,\r\n\t\t\titems: props.items\r\n\t\t}),\r\n\t\t[props.items]\r\n\t);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t{showCallout && (\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
\r\n\t);\r\n};\r\n","import React, { useMemo, useRef } from \"react\";\r\nimport { IContextualMenuItem, IIconProps } from \"@fluentui/react\";\r\nimport { ServiceHub } from \"../../../../../service\";\r\nimport { ButtonDropdown } from \"../button.dropdown\";\r\nimport { ApplicationRoutePaths } from \"../../../../router\";\r\nimport { useFilterSlice } from \"../../../../../hooks/filter/useFilterSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { resetSearchTopics } from \"../../../../../redux/reducers/filter\";\r\n\r\n/**\r\n * Renders a re-usable Action Button group for Strike App.\r\n * Includes actions:\r\n * - Topics\r\n * - Articles\r\n * - Questions\r\n *\r\n * @returns React.FC\r\n */\r\nexport const ButtonDropdownActions: React.FC = () => {\r\n\tconst filterData = useFilterSlice();\r\n\tconst buttonTitle = filterData.dashboardButtonTitle;\r\n\tconst dispatch = useDispatch();\r\n\tconst filterAPI = useRef(ServiceHub.filterAPI.start());\r\n\r\n\r\n\t/** Method to reset topic on Dashboard switch */\r\n\tconst resetFilterTopics = () => {\r\n\t\tconst topics = document.querySelectorAll(`.filter-topics-tags button`);\r\n\t\ttopics.forEach(button => button.remove());\r\n\t}\r\n\r\n\t/**\r\n\t * Redirects the UI to the View Topics List page.\r\n\t *\r\n\t * @param event\r\n\t */\r\n\tconst handleViewTopics = (\r\n\t\tev?: React.MouseEvent | React.KeyboardEvent,\r\n\t\titem?: IContextualMenuItem\r\n\t) => {\r\n\t\tServiceHub.appManagementAPI.navigate(ApplicationRoutePaths.topicsDashboard());\r\n\t\tdispatch(resetSearchTopics());\r\n\t\tfilterAPI.current.resetUserCustomDashboard();\r\n\t};\r\n\r\n\t/**\r\n\t * Redirects the UI to the View only Articles.\r\n\t *\r\n\t */\r\n\tconst handleViewArticles = (\r\n\t\tev?: React.MouseEvent | React.KeyboardEvent,\r\n\t\titem?: IContextualMenuItem\r\n\t) => {\r\n\t\tif (ev.preventDefault) {\r\n\t\t\tev.preventDefault();\r\n\t\t}\r\n\t\tresetFilterTopics();\r\n\t\tfilterAPI.current.resetUserCustomDashboard();\r\n\t\tServiceHub.appManagementAPI.navigate(ApplicationRoutePaths.articlesDashboard());\r\n\t};\r\n\r\n\t/**\r\n\t * Redirects the UI to the View only Questions.\r\n\t *\r\n\t */\r\n\tconst handleViewQuestions = (\r\n\t\tev?: React.MouseEvent | React.KeyboardEvent,\r\n\t\titem?: IContextualMenuItem\r\n\t) => {\r\n\t\tif (ev.preventDefault) {\r\n\t\t\tev.preventDefault();\r\n\t\t}\r\n\t\tresetFilterTopics();\r\n\t\tfilterAPI.current.resetUserCustomDashboard();\r\n\t\tServiceHub.appManagementAPI.navigate(ApplicationRoutePaths.questionsDashboard());\r\n\t};\r\n\r\n\r\n\r\n\t/**\r\n\t * List of the buttons which will be rendered in the dropdown.\r\n\t */\r\n\tconst buttonItems = useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tkey: \"seeArticlesDashboard\",\r\n\t\t\t\ttext: \"Articles\",\r\n\t\t\t\tonClick: handleViewArticles,\r\n\t\t\t\ttitle: \"Activate to View the Articles Dashboard\",\r\n\t\t\t\ticonProps: {\r\n\t\t\t\t\ticonName: \"Articles\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"seeQuestionsDashboard\",\r\n\t\t\t\ttext: \"Questions\",\r\n\t\t\t\tonClick: handleViewQuestions,\r\n\t\t\t\ttitle: \"Activate to View the Questions Dashboard\",\r\n\t\t\t\ticonProps: {\r\n\t\t\t\t\ticonName: \"SurveyQuestions\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: \"seeTopicsDashboard\",\r\n\t\t\t\ttext: \"Topics\",\r\n\t\t\t\tonClick: handleViewTopics,\r\n\t\t\t\ttitle: \"Activate to View the Topics List\",\r\n\t\t\t\ticonProps: {\r\n\t\t\t\t\ticonName: \"Tag\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t],\r\n\t\t[]\r\n\t);\r\n\r\n\t/**\r\n\t * prepared memo to detect location and set button label name and icon\r\n\t */\r\n\tconst mainButtonLabel = useMemo(() => {\r\n\t\tif (location.pathname === '/articles') {\r\n\t\t\treturn 'Articles'\r\n\t\t} else if (location.pathname === '/questions') {\r\n\t\t\treturn 'SurveyQuestions'\r\n\t\t} else if (location.pathname === '/topics') {\r\n\t\t\treturn 'Tag'\r\n\t\t} else {\r\n return 'PageList'\r\n\t\t}\r\n\t}, [location.pathname]);\r\n\r\n\r\n\tconst labelIcon: IIconProps = { iconName: mainButtonLabel };\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { RichTextEditor } from \"@coherence-design-system/rich-text-editor\";\r\n\r\n/**\r\n * Allows the Div to be used as a RichTextInput entry point.\r\n */\r\nexport declare type DivEventHandler = (\r\n\tevent: React.FormEvent | React.FocusEventHandler | string\r\n) => void;\r\n\r\n/**\r\n * Allows Input/TextAreas to be used as a RichTextInput entry point.\r\n */\r\nexport declare type InputTextEventHandler = (\r\n\tevent: React.FormEvent | string\r\n) => void;\r\n\r\n/**\r\n * Controls the properties offered by Strike's\r\n * Rich Text Input component.\r\n */\r\ninterface IRichTextInput {\r\n\tid?: undefined | string;\r\n\tplaceholder?: undefined | string;\r\n\tvalue?: undefined | string;\r\n\tlabel?: undefined | string;\r\n\tonChange?: undefined | DivEventHandler | InputTextEventHandler;\r\n\tonBlur?: undefined | ((event: React.FocusEvent) => void);\r\n\tclassName?: undefined | string;\r\n\tcharacterMax?: undefined | number;\r\n\tsourceMode?: undefined | boolean;\r\n\trequired?: undefined | boolean;\r\n\terror?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Structures the component to act as a Rich Text\r\n * editor.\r\n * Also called RTE.\r\n *\r\n * @returns React.FC\r\n */\r\nconst RichTextInput: React.FC = (props) => {\r\n\tconst { id, placeholder, value, onChange, characterMax, label, ...otherProps } = props;\r\n\tconst conditions = {\r\n\t\tid: id ?? undefined,\r\n\t\tplaceholder: placeholder ?? undefined,\r\n\t\tvalue: value ?? undefined,\r\n\t\tcharacterMax: characterMax ?? 9999,\r\n\t\tlabel: label ?? \"\",\r\n\t\tonChange: onChange ?? undefined\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t// Function to handle the elements when they are added to the DOM\r\n\t\tconst handleNewElements = () => {\r\n\t\t\tconst allRichTextControls = document.querySelectorAll('.ms-OverflowSet-overflowButton button');\r\n\t\t\tallRichTextControls.forEach(button => {\r\n\t\t\t\t// Check if the current aria-label is 'Overflow'\r\n\t\t\t\tif (button.getAttribute('aria-label') === 'Overflow') {\r\n\t\t\t\t\t// Change the aria-label content\r\n\t\t\t\t\tbutton.setAttribute('aria-label', 'More Options');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t\r\n\t\t// Create a MutationObserver instance\r\n\t\tconst observer = new MutationObserver((mutationsList) => {\r\n\t\t\tfor (let mutation of mutationsList) {\r\n\t\t\t\tif (mutation.type === 'childList') {\r\n\t\t\t\t\thandleNewElements();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\r\n\t\t// Start observing the RichTextInput component for added nodes\r\n\t\tconst richTextInputElement = document.getElementById(props.id);\r\n\t\tif (richTextInputElement) {\r\n\t\t\tobserver.observe(richTextInputElement, {\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tsubtree: true\r\n\t\t\t});\r\n\t\t}\r\n\t\r\n\t\t// Initial check in case the elements are already present\r\n\t\thandleNewElements();\r\n\t\r\n\t\t// Cleanup function to disconnect the observer when the component unmounts\r\n\t\treturn () => {\r\n\t\t\tobserver.disconnect();\r\n\t\t};\r\n\t}, [props.id]);\r\n\t\r\n\r\n\treturn props.sourceMode ? (\r\n\t\t\r\n\t\t\t{conditions.value ?? \"\"}\r\n\t\t\r\n\t) : (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { RichTextInput };\r\n","import React, { useMemo } from \"react\";\r\nimport { Input } from \"semantic-ui-react\";\r\n\r\n/**\r\n * Input-level action button props,\r\n * At this moment, supported by Semantic-UI.\r\n */\r\nexport interface IInputActionProps {\r\n\ticon: string;\r\n\tonClick: (event: any) => void;\r\n\t\"aria-label\": string;\r\n\tname: undefined | string;\r\n\ttitle: undefined | string;\r\n\tclassName: undefined | string;\r\n}\r\n\r\n/**\r\n * Controls the input properties of TextInput\r\n */\r\nexport interface IInputProps {\r\n\ttype?: undefined | string;\r\n\tid?: undefined | string;\r\n\tplaceholder?: undefined | string;\r\n\tvalue?: undefined | string;\r\n\trequired?: undefined | boolean;\r\n\terror?: undefined | boolean;\r\n\tminLength?: undefined | number;\r\n\tmaxLength?: undefined | number;\r\n\tonChange?: undefined | ((event: React.FormEvent) => Promise | void);\r\n\tdisabled?: undefined | boolean;\r\n\taction?: undefined | IInputActionProps;\r\n\ttabIndex?: undefined | number;\r\n}\r\n\r\n/**\r\n * A wrapper component for Dropdown, within Strike app.\r\n * Implements Fluent UI 8 Dropdown within.\r\n *\r\n * @param props IInputProps\r\n * @returns React.FC\r\n */\r\nexport const TextInput: React.FC = (props) => {\r\n\tconst resolvedType = useMemo(() => {\r\n\t\treturn props.type ?? \"text\";\r\n\t}, [props.type]);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\n\r\n/**\r\n * Standard required field marking,\r\n * for using within form-labels.\r\n *\r\n * @returns Span with an included asterisk, in red color.\r\n */\r\nexport const FieldRequiredMark: React.FC = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t*\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\n\r\n/**\r\n * Contract for the Clear form Field Props.\r\n */\r\nexport interface IFieldClearProps {\r\n\tvalue?: undefined | null | string | number | [] | string[] | boolean;\r\n\tonClear: (event: React.MouseEvent | React.KeyboardEvent) => void;\r\n}\r\n\r\n/**\r\n * Form field clear selection button (anchor).\r\n *\r\n * @param props IFieldClearProps\r\n * @returns React.FC\r\n */\r\nexport const FieldClear: React.FC = (props) => {\r\n\tconst isPopulatedArray = Array.isArray(props.value) && props.value.length > 0;\r\n\r\n\treturn undefined !== props.value &&\r\n\t\tprops.value !== null &&\r\n\t\t((typeof props.value === \"string\" && props.value !== \"\") ||\r\n\t\t\tisPopulatedArray ||\r\n\t\t\tNumber.isInteger(props.value)) ? (\r\n\t\t {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tprops.onClear(event);\r\n\t\t\t}}\r\n\t\t\tonKeyDown={(event) => {\r\n\t\t\t\tif (event.key === 'Enter' || event.key === ' ') {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tprops.onClear(event);\r\n\t\t\t\t}\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\tClear Selection\r\n\t\t\r\n\t) : null;\r\n};\r\n","import React from \"react\";\r\nimport { Button, IButtonProps } from \"../button\";\r\n\r\n/**\r\n * The FormField properties to control its input.\r\n */\r\nexport interface IFormActionProps {\r\n\tactions: IButtonProps[];\r\n\tclassName?: undefined | string;\r\n}\r\n\r\n/**\r\n * Form bottom Actions component. Should be used within a form element,\r\n * by passing properties to it. Mainly it should also be the last component in the tree.\r\n *\r\n * @param props Properties to enable the FormActions component.\r\n * @returns React.FC\r\n */\r\nexport const FormActions: React.FC = (props) => {\r\n\tconst conditions = {\r\n\t\tclassName: `form-actions ${props?.className ?? \"\"}`\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{props.actions.map((action, index) => {\r\n\t\t\t\treturn (\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\n * Re-usable string dictionary\r\n */\r\nexport const FormLabels = {\r\n\trequiredInfo: \"Denotes required field\"\r\n};\r\n","import React from \"react\";\r\nimport { IAlertProps } from \"../../../contracts\";\r\nimport { RichTextNode } from \"../node\";\r\n\r\nconst validCategories = [\"info\", \"warning\", \"success\", \"danger\"];\r\n\r\n/* The purpose for this parameter 'category' its to be able to\r\n * customize the colors of the message notification,\r\n * being by default (if not custom value its passed) an alert-info look and feel message.\r\n * Another available values could be: warning, success or danger,\r\n * depending of the subject of the message to display.\r\n */\r\nexport const Alert: React.FunctionComponent = (props) => {\r\n\tconst category = validCategories.includes(props.category) ? props.category : \"info\";\r\n\r\n\treturn
\r\n\t\t{ !props.html ? props.text : {props.text} }\r\n\t\t
\r\n};\r\n\r\nAlert.defaultProps = {\r\n\tcategory: \"info\"\r\n};\r\n","import React from \"react\";\r\nimport { FormLabels } from \"./form.labels\";\r\nimport { FieldRequiredMark } from \"./field.requiredMark\";\r\nimport { Alert } from \"../alert\";\r\n\r\n/**\r\n * Re-usable Form Container component domain definition.\r\n */\r\nexport interface IFormContainerProps {\r\n\tchildren: React.ReactElement | React.ReactElement[] | JSX.Element | JSX.Element[];\r\n\tonSubmit: (event: React.FormEvent) => void | Promise;\r\n\ttitle?: undefined | string;\r\n\tuseModerationAlert?: undefined | boolean;\r\n\thideShadow?: undefined | boolean;\r\n\thideLateralPadding?: undefined | boolean;\r\n\thideRequiredNotice?: undefined | boolean;\r\n\ttransparentBg?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Form Container component. Re-usable for the Strike App.\r\n *\r\n * @param props IFormContainerProps\r\n * @returns React.FC\r\n */\r\nexport const FormContainer: React.FC = (props) => {\r\n\tconst alertTextAriaLabel =\r\n\t\t`Info: After you submit your article, ` +\r\n\t\t`it will be subject to a “Moderation Review” by the ` +\r\n\t\t`Strike Online Team. Team will review and, if approved, ` +\r\n\t\t`publish your article. You will receive a notification once it is live on the site.`;\r\n\tconst renderAlertText = () => {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\tAfter you submit your article, it will be subject to a “Moderation Review” by the{\" \"}\r\n\t\t\t\tStrike Online Team.
\r\n\t\t\t\tTeam will review and, if approved, publish your article. You will receive a notification once it is live\r\n\t\t\t\ton the site.\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{props?.useModerationAlert ? (\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderAlertText()}\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) : null}\r\n\t\t\t
\r\n\t\t\t\t{undefined !== props?.title && props?.title !== \"\" ?

{props.title}

: \"\"}\r\n\t\t\t\t{!props?.hideRequiredNotice ? (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t {FormLabels.requiredInfo}\r\n\t\t\t\t\t
\r\n\t\t\t\t) : null}\r\n\t\t\t
\r\n\t\t\t{props.children}\r\n\t\t\t{props?.useModerationAlert ? (\r\n\t\t\t\t
\r\n\t\t\t\t\tPlease, note: \r\n\t\t\t\t\t{renderAlertText()}\r\n\t\t\t\t
\r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { FieldClear } from \"./field.clear\";\r\nimport { FieldRequiredMark } from \"./field.requiredMark\";\r\n\r\n/**\r\n * The FormField properties to control its input.\r\n */\r\nexport interface IFormFieldProps {\r\n\tchildren: React.ReactElement | React.ReactElement[] | JSX.Element | JSX.Element[];\r\n\tid: number | string;\r\n\tlabel?: undefined | string;\r\n\tlabelId?: undefined | string;\r\n\tclassName?: undefined | string;\r\n\trequired?: undefined | boolean;\r\n\tvalue?: undefined | string | number | string[] | [] | boolean;\r\n\tonClear?: (event: React.MouseEvent | React.KeyboardEvent) => void;\r\n}\r\n\r\n/**\r\n * Standard form field component. Should be used within a form element,\r\n * by passing properties to it.\r\n *\r\n * @param props Properties to enable the FormField component.\r\n * @returns React.FC\r\n */\r\nexport const FormField: React.FC = (props) => {\r\n\tconst conditions = {\r\n\t\tclassName: `form-field ${props?.className ?? \"\"}`\r\n\t};\r\n\tconst fieldId = props.id.toString();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{props?.label && props?.label !== \"\" ? (\r\n\t\t\t\t\r\n\t\t\t) : null}\r\n\t\t\t{props.children}\r\n\t\t
\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { Alert } from \"../alert\";\r\n\r\n/**\r\n * Contract for the input props of Form Validation Message.\r\n */\r\nexport interface IFormValidationMessageProps {\r\n\thide: undefined | boolean;\r\n\tpropNames: string[];\r\n\tpropValidation: {\r\n\t\t[propName: string]: boolean;\r\n\t};\r\n\tpropMessages: {\r\n\t\t[propName: string]: string;\r\n\t};\r\n}\r\n\r\n/**\r\n * Standard form Validation message display,\r\n * to be used on the bottom of Forms.\r\n *\r\n * @param props IFormValidationMessageProps\r\n * @returns React.FC\r\n */\r\nexport const FormValidationMessage: React.FC = (props) => {\r\n\treturn props?.hide ? null : (\r\n\t\t\r\n\t\t\t\t\tSome fields might require attention:\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{props?.propNames.map((validationPropName, index) =>\r\n\t\t\t\t\t\t\tprops?.propValidation[validationPropName] ? null : (\r\n\t\t\t\t\t\t\t\t
  • {props?.propMessages[validationPropName]}
  • \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","import React from \"react\";\r\n\r\n/**\r\n * The FormHint properties to control its input.\r\n */\r\nexport interface IFormHintProps {\r\n\tchildren: string | React.ReactElement | JSX.Element | string[] | React.ReactElement[] | JSX.Element[];\r\n\tclassName?: undefined | string;\r\n}\r\n\r\n/**\r\n * Standard form hint piece. Should be used within a form-group,\r\n * by passing a property to it.\r\n *\r\n * @param props Properties to enable the FormHint component.\r\n * @returns React.FC\r\n */\r\nexport const FormHint: React.FC = (props) => {\r\n\tconst conditions = {\r\n\t\tclassName: `form-field-hint ${props?.className ?? \"\"}`\r\n\t};\r\n\r\n\tconst renderChildren = (items: string[] | React.ReactElement[] | JSX.Element[]) => {\r\n\t\treturn items?.map((child: React.ReactElement | JSX.Element | string, index: number) => {\r\n\t\t\treturn typeof child === \"string\" ? child : React.cloneElement(child, { key: index });\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{Array.isArray(props.children) ? renderChildren(props.children) : props.children}\r\n\t\t
\r\n\t);\r\n};\r\n","/**\r\n * Escape Keyboard Event capturing abstraction layer.\r\n *\r\n * @param event The event\r\n * @param onCloseCallback The callback to run on capture\r\n */\r\nexport const handleCallOnEscape = (event: KeyboardEvent, onCloseCallback: () => void) => {\r\n\tif (event?.key === \"Escape\" && typeof onCloseCallback === \"function\") {\r\n\t\tonCloseCallback();\r\n\t\tevent.stopPropagation();\r\n\t\treturn;\r\n\t}\r\n};\r\n\r\n/**\r\n * Handles the Escape Key down event by applying the following commands:\r\n * - handleCallOnEscape.\r\n *\r\n * @param event The event to capture the key from\r\n * @param onCaptureCallback The callback to be ran through the handler.\r\n */\r\nexport const handleEscapeKeyDown = (event: Event, onCaptureCallback: () => void) => {\r\n\tconst kbdEvent = event as KeyboardEvent;\r\n\r\n\t// Handles the call on Escape capture\r\n\thandleCallOnEscape(kbdEvent, onCaptureCallback);\r\n};\r\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport {\r\n\tDropdownItemProps,\r\n\tDropdownOnSearchChangeData,\r\n\tDropdownProps,\r\n\tLabelProps,\r\n\tDropdown as SemanticDropdown\r\n} from \"semantic-ui-react\";\r\nimport { handleEscapeKeyDown } from \"./shared/enhanceItems.function\";\r\n\r\n/**\r\n * Controls the input props of Strike's Dropdown.\r\n */\r\nexport interface IDropdownProps {\r\n\t// Semantic-UI\r\n\toptions: DropdownItemProps[];\r\n\tonChange: (event: React.SyntheticEvent, data: DropdownProps) => Promise | void;\r\n\tonClose?: (event: React.SyntheticEvent, data: DropdownProps) => Promise | void;\r\n\tonSearchChange?:\r\n\t\t| undefined\r\n\t\t| ((event: React.SyntheticEvent, data: DropdownOnSearchChangeData) => Promise | void);\r\n\trenderLabel?: undefined | ((item: DropdownItemProps, index: number, defaultLabelProps: LabelProps) => any);\r\n\tonAddItem?: undefined | ((event: React.SyntheticEvent, data: DropdownProps) => void);\r\n\tid?: undefined | string;\r\n\ttitle?: undefined | string;\r\n\tariaLabel?: undefined | string;\r\n\tclassName?: undefined | string;\r\n\tselectedValue?: undefined | number | string | number[] | string[];\r\n\tdisabled?: undefined | boolean;\r\n\tmultiSelect?: undefined | boolean;\r\n\tplaceholder?: undefined | string;\r\n\trequired?: undefined | boolean;\r\n\terror?: undefined | boolean;\r\n\tloading?: undefined | boolean;\r\n\tfluid?: undefined | boolean;\r\n\tkey?: undefined | number;\r\n\tsearch?: undefined | boolean;\r\n\tselection?: undefined | boolean;\r\n\tallowAdditions?: undefined | boolean;\r\n\tcloseOnBlur?: undefined | boolean;\r\n\tcloseOnEscape?: undefined | boolean;\r\n\twrapSelection?: undefined | boolean;\r\n\twidth?: undefined | number;\r\n\talt?: undefined | string;\r\n\tuseEnhancements?: undefined | boolean;\r\n\tskipTabIndexing?: undefined | boolean;\r\n\tstopNarratorItems?: undefined | boolean;\r\n\tcomponentAreaLabel?: undefined | string;\r\n\tnotListItemInput?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Renders a Strike-standard Dropdown component.\r\n * Implements a Semantic UI Dropdown within.\r\n *\r\n * @param props IDropdownProps\r\n * @returns React.FC\r\n */\r\nexport const Dropdown: React.FC = (props) => {\r\n\tconst prevSelectedValue = useRef([]);\r\n\tconst dropdownRef = useRef(null);\r\n\tconst DropdownNarrator = useRef(null);\r\n\tconst abortController = useRef(new AbortController());\r\n\r\n\t/**\r\n\t * Wraps the functional On Change event of the dropdown,\r\n\t * to keep the enhancement functionality for the List Items while changing selections.\r\n\t *\r\n\t * @param event\r\n\t * @param data\r\n\t */\r\n\tconst handleChange = (event: React.SyntheticEvent, data: DropdownProps) => {\r\n\t\tif (typeof props?.onChange === \"function\") {\r\n\t\t\tprops.onChange(event, data);\r\n\t\t}\r\n\t\tconst selectionInput = event.currentTarget.querySelector('input');\r\n\t\tif(selectionInput) {\r\n\t\t\tselectionInput.focus();\r\n\t\t}\r\n\r\n\t\t// Selects the last Remove button automatically,\r\n\t\t// After changing options - if any.\r\n\t\t// Otherwise, just skips the focus action.\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst elements = document.querySelectorAll(`div[id=${props.id}] a.ui.label i.icon`);\r\n\r\n\t\t\tif (elements.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t(elements.item(elements.length - 1) as HTMLElement).focus();\r\n\t\t}, 180);\r\n\t};\r\n\r\n\t/**\r\n\t * Wraps the functional On Search Change of the dropdown,\r\n\t * Keeping control of the item indexing and roles.\r\n\t *\r\n\t * @param event\r\n\t * @param data\r\n\t */\r\n\tconst handleSearchChange = (event: React.SyntheticEvent, data: DropdownOnSearchChangeData) => {\r\n\t\tif (typeof props?.onSearchChange === \"function\") {\r\n\t\t\tprops.onSearchChange(event, data);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Wraps the functional On Search Change of the dropdown,\r\n\t * Keeping control of the item indexing and roles.\r\n\t *\r\n\t * @param event\r\n\t * @param data\r\n\t */\r\n\tconst handleAddItem = (event: React.SyntheticEvent, data: DropdownProps) => {\r\n\t\tif (typeof props?.onAddItem === \"function\") {\r\n\t\t\tprops?.onAddItem(event, data);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Enhances the tab-indexing of the items listed below a .menu div.\r\n\t * Also, enhances the control Items accessibility,\r\n\t * By adding roles to .menu items. Finally,\r\n\t * Enhances the accessibility for search Items focus trapping,\r\n\t * Enabling tab-based navigation and enter-based selection.\r\n\t */\r\n\tconst enhanceSearchItems = useCallback(() => {\r\n\t\tconst elements = document.querySelectorAll(`div[id=${props.id}] div.menu > div:not(.message)`);\r\n\r\n\t\telements.forEach((el, index) => {\r\n\t\t\tif (!props?.skipTabIndexing && !el.hasAttribute(\"tabindex\")) {\r\n\t\t\t\tel.setAttribute(\"tabindex\", `0`);\r\n\t\t\t}\r\n\r\n\t\t\t// Sets the role of each option/item under .menu group,\r\n\t\t\t// Only for those missing it. Note: Adding a partial-list threshold cut-line.\r\n\t\t\tif (!el.hasAttribute(\"role\")) {\r\n\t\t\t\tel.setAttribute(\"role\", \"option\");\r\n\t\t\t}\r\n\r\n\t\t\t// Cut-down to 30 elements with events;\r\n\t\t\tif (index >= 30) return;\r\n\r\n\t\t\t/**\r\n\t\t\t * Manages to include a handler function to an element, when focusing it, to control an emit a delegate on KeyDown.\r\n\t\t\t * The handle\r\n\t\t\t *\r\n\t\t\t * @param onFocusEvent\r\n\t\t\t */\r\n\t\t\tconst onFocusIn = (onFocusInEvent) => {\r\n\t\t\t\tconst onKeyDown = (eventOnKeyDown) => {\r\n\t\t\t\t\tconst kbdEvent = eventOnKeyDown as KeyboardEvent;\r\n\r\n\t\t\t\t\tif (kbdEvent.key === \"Enter\") {\r\n\t\t\t\t\t\t(el as HTMLElement).click();\r\n\t\t\t\t\t\tkbdEvent.stopPropagation();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Clean-up any previous events, then sets-up new events listeners\r\n\t\t\t\tel.addEventListener(\"keydown\", onKeyDown, true);\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Cleans-up the added event handlers\r\n\t\t\t\t */\r\n\t\t\t\tconst onFocusOut = (onFocusOutEvent) => {\r\n\t\t\t\t\t// return\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Clean-up any previous events, then sets-up new events listeners\r\n\t\t\t\tel.addEventListener(\"focusout\", onFocusOut, true);\r\n\t\t\t};\r\n\r\n\t\t\t// If not using extra enhancements, skips event tracking\r\n\t\t\tif (props?.useEnhancements) {\r\n\t\t\t\t// Clean-up any previous events, then sets-up new events listeners\r\n\t\t\t\tel.addEventListener(\"focusin\", onFocusIn, true);\r\n\t\t\t}\r\n\t\t});\r\n\t}, [props.id, props?.skipTabIndexing, props?.useEnhancements]);\r\n\r\n\t/**\r\n\t * Enhances the accessibility for Item Labels,\r\n\t * Enabling tab-based navigation.\r\n\t */\r\n\tconst enhanceItemLabelIconAccessibility = useCallback(() => {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst elements = document.querySelectorAll(\r\n\t\t\t\t`div[id=${props.id}] a.ui.label i.icon, div[id=${props.id}] a.ui.active.label i.icon`\r\n\t\t\t);\r\n\t\t\telements.forEach((el, index) => {\r\n\t\t\t\t/**\r\n\t\t\t\t * Manages to include a handler function to an element, when focusing it, to control an emit a delegate on KeyDown.\r\n\t\t\t\t * The handle\r\n\t\t\t\t *\r\n\t\t\t\t * @param onFocusEvent\r\n\t\t\t\t */\r\n\t\t\t\tconst onFocusIn = (onFocusEvent) => {\r\n\t\t\t\t\t// If this event has not been tracked yet\r\n\t\t\t\t\tconst onKeyDown = (onKeyDownEvent) => {\r\n\t\t\t\t\t\tconst kbdEvent = onKeyDownEvent as KeyboardEvent;\r\n\r\n\t\t\t\t\t\tif (kbdEvent.key === \"Enter\") {\r\n\t\t\t\t\t\t\t(el as HTMLElement).click();\r\n\t\t\t\t\t\t\tkbdEvent.stopPropagation();\r\n\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\tconst elements = document.querySelectorAll(`div[id=${props.id}] a.ui.label i.icon`);\r\n\r\n\t\t\t\t\t\t\t\tif (elements.length === 0) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t(elements.item(elements.length - 1) as HTMLElement).focus();\r\n\t\t\t\t\t\t\t}, 180);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Clean-up any previous events, then sets-up new events listeners\r\n\t\t\t\t\tel.addEventListener(\"keydown\", onKeyDown, true);\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Cleans-up the added event handlers\r\n\t\t\t\t\t */\r\n\t\t\t\t\tconst onFocusOut = (onFocusOutEvent) => {\r\n\t\t\t\t\t\t// return\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Clean-up any previous events, then sets-up new events listeners\r\n\t\t\t\t\tel.addEventListener(\"focusout\", onFocusOut, true);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// If not using extra enhancements, skips event tracking\r\n\t\t\t\tif (props?.useEnhancements) {\r\n\t\t\t\t\t// Clean-up any previous events, then sets-up new events listeners\r\n\t\t\t\t\tel.addEventListener(\"focusin\", onFocusIn, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If no tabindex was given yet\r\n\t\t\t\tif (!props?.skipTabIndexing && !el.hasAttribute(\"tabindex\")) {\r\n\t\t\t\t\tel.setAttribute(\"tabindex\", `0`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If no tabindex was given yet\r\n\t\t\t\tif (!el.hasAttribute(\"aria-label\")) {\r\n\t\t\t\t\tconst parentText = el.parentElement?.textContent?.trim();\r\n\t\t\t\t\tif (parentText) {\r\n\t\t\t\t\t\tel.setAttribute(\"aria-label\", `Remove item: ${parentText}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If no tabindex was given yet\r\n\t\t\t\tif (!el.hasAttribute(\"role\")) {\r\n\t\t\t\t\tel.setAttribute(\"role\", `button`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Clean-up undesired attributes/data\r\n\t\t\t\tif (el.hasAttribute(\"aria-hidden\")) {\r\n\t\t\t\t\tel.removeAttribute(\"aria-hidden\");\r\n\t\t\t\t}\r\n\t\t\t}, 180);\r\n\t\t});\r\n\t}, [props.id, props.selectedValue, props?.useEnhancements, props?.skipTabIndexing]);\r\n\r\n\t/**\r\n\t * Enhancement for the Items Label accessibility review.\r\n\t */\r\n\tconst enhanceItemLabelAccessibility = useCallback(() => {\r\n\t\tconst elements = document.querySelectorAll(\r\n\t\t\t`div[id=${props.id}] a.ui.label, div[id=${props.id}] a.ui.active.label`\r\n\t\t);\r\n\t\telements.forEach((el, index) => {\r\n\t\t\tif (!el.hasAttribute(\"role\")) {\r\n\t\t\t\tel.setAttribute(\"role\", \"presentation\");\r\n\t\t\t}\r\n\t\t});\r\n\t}, [props.id, props.selectedValue]);\r\n\r\n\t/**\r\n\t * Runs a clean-up of the focus functions given to the list-item icons.\r\n\t */\r\n\tconst cleanupItemLabelFocusTrap = () => {\r\n\t\tabortController.current.abort();\r\n\r\n\t\treturn;\r\n\t};\r\n\r\n\tconst generateHandlerEscapeKeyDown = useCallback((_element: HTMLElement) => {\r\n\t\treturn (event) => handleEscapeKeyDown(event as KeyboardEvent, () => _element.blur());\r\n\t}, []);\r\n\r\n\t/**\r\n\t * Enhances the Main (parent) component,\r\n\t * by adding aria-controls and other missing accessibility aspects.\r\n\t */\r\n\tconst enhanceMasterComponents = () => {\r\n\t\t// 1. Accessibility: Prepares the group parent element, master one\r\n\t\tconst masterElement = document.querySelector(`div[id=${props.id}]`);\r\n\r\n\t\t// Sets the missing aria-controls attribute,\r\n\t\t// if missing it.\r\n\t\tif (!masterElement.hasAttribute(\"aria-controls\")) {\r\n\t\t\tmasterElement.setAttribute(\"aria-controls\", props.id);\r\n\t\t}\r\n\r\n\t\t// If not using extra enhancements, skips event tracking\r\n\t\tif (!props?.useEnhancements) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// 2. Enhancements: Prepares the search input for manually supporting tab-back commands\r\n\t\tconst inputEl = document.querySelector(`div[id=${props.id}] input`);\r\n\r\n\t\tconst onKeyDown = (event: Event) => {\r\n\t\t\tconst htmlInput = inputEl as HTMLElement;\r\n\t\t\tconst gnFn = generateHandlerEscapeKeyDown(htmlInput);\r\n\r\n\t\t\tgnFn(event);\r\n\t\t};\r\n\r\n\t\tconst onFocusOut = (onFocusOutEvent) => {\r\n\t\t\t// Return\r\n\t\t};\r\n\r\n\t\tconst onFocusIn = (onFocusEvent) => {\r\n\t\t\tinputEl.addEventListener(\"keydown\", onKeyDown, true);\r\n\t\t\tinputEl.addEventListener(\"focusout\", onFocusOut, true);\r\n\t\t};\r\n\r\n\t\tinputEl.addEventListener(\"focusin\", onFocusIn, true);\r\n\t};\r\n\r\n\t/**\r\n\t * When initially loading,\r\n\t * prepares the Dropdown for accessibility.\r\n\t */\r\n\tconst applyEnhancements = useCallback(() => {\r\n\t\t// Pre-aborts all previous signals passed\r\n\t\tabortController.current.abort();\r\n\t\tabortController.current = new AbortController();\r\n\r\n\t\t// General element enhancements\r\n\t\tenhanceMasterComponents();\r\n\r\n\t\tif (\r\n\t\t\tundefined !== props.selectedValue &&\r\n\t\t\tprops.selectedValue !== null &&\r\n\t\t\tArray.isArray(props.selectedValue) &&\r\n\t\t\tprops.selectedValue.length > 0 &&\r\n\t\t\tJSON.stringify(prevSelectedValue.current) !== JSON.stringify(props.selectedValue)\r\n\t\t) {\r\n\t\t\t// Selected items' enhancements\r\n\t\t\tenhanceItemLabelAccessibility();\r\n\t\t\tenhanceItemLabelIconAccessibility();\r\n\t\t\tprevSelectedValue.current = props.selectedValue;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Monitors the Loading state of the component, in order to trigger the review of\r\n\t\t * the tab indexes and other search result items found.\r\n\t\t * Search result list enhancements.\r\n\t\t */\r\n\t\tif (!props.loading && props.options.length > 0) {\r\n\t\t\tenhanceSearchItems();\r\n\t\t}\r\n\t}, [\r\n\t\tabortController.current,\r\n\t\tprops.loading,\r\n\t\tprops.selectedValue,\r\n\t\tprops.options,\r\n\t\tprevSelectedValue.current,\r\n\t\tenhanceItemLabelAccessibility,\r\n\t\tenhanceItemLabelIconAccessibility,\r\n\t\tenhanceSearchItems\r\n\t]);\r\n\r\n\t/**\r\n\t * When initially loading,\r\n\t * prepares the Dropdown for accessibility.\r\n\t */\r\n\tuseEffect(() => {\r\n\t\tapplyEnhancements();\r\n\t}, [applyEnhancements]);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tcleanupItemLabelFocusTrap();\r\n\t\t};\r\n\t}, []);\r\n\r\n\t// Starts narrator\r\n\r\n\tconst [narrator, setNarrator] = useState(\"\");\r\n\tconst delayTimeout = useRef(null);\r\n\r\n\tconst handleFocus = (event) => {\r\n\t\tconst mainDiv = document.getElementById('shareUser');\r\n\t\tif(mainDiv){\r\n\t\t\tmainDiv.querySelector('input').setAttribute('role','none');\r\n\t\t}\r\n\r\n\t\tconst topicsDiv = document.getElementById('topics');\r\n\t\tif(topicsDiv){\r\n\t\t\tconst allTopicsItems = topicsDiv.querySelectorAll('[aria-multiselectable=\"true\"] div[role=\"option\"]');\r\n\t\t\tallTopicsItems.forEach((topicItem, index) => {\r\n\t\t\t\ttopicItem.setAttribute('aria-setsize', props?.options.length.toString())\r\n\t\t\t\ttopicItem.setAttribute('aria-posinset', (index + 1).toString());\r\n\t\t\t\ttopicItem.setAttribute('data-is-focusable', 'true');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst topicFilterDropdown = document.getElementById('search-nav-topic-dropdown');\r\n\t\tif (topicFilterDropdown) {\r\n\t\t\tconst inputElement = topicFilterDropdown.querySelector('input');\r\n\t\t\tif (inputElement) {\r\n\t\t\t\tinputElement.setAttribute('role', 'dropdown');\r\n\t\t\t}\r\n\t\t\ttopicFilterDropdown.style.border = '';\r\n\t\t\ttopicFilterDropdown.style.outline = '';\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tconst parent = event.target;\r\n\t\t\tconst siblingListbox = parent.parentElement.querySelector('[role=\"listbox\"]');\r\n\r\n\t\t\tif(!props.stopNarratorItems){\r\n\t\t\t\tparent.setAttribute(\"aria-live\", \"off\");\r\n\t\t\t\tparent.setAttribute(\"aria-relevant\", \"additions\");\r\n\t\t\t\tif(!props.notListItemInput) {\r\n\t\t\t\t\tsiblingListbox ? siblingListbox.setAttribute(\"role\", \"listitem\") : \"\";\r\n\t\t\t\t\tparent ? parent.setAttribute(\"role\", \"listitem\") : \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tconst items = Array.from(siblingListbox.querySelectorAll(\".item\")) as HTMLElement[];\r\n\t\t\tlet selectedIndex = items.findIndex((item) => item.classList.contains(\"selected\"));\r\n\r\n\t\t\tif (parent && siblingListbox) {\r\n\t\t\t\tparent.addEventListener(\"keydown\", (event) => {\r\n\t\t\t\t\tif (event.key === \"ArrowDown\") {\r\n\t\t\t\t\t\tselectedIndex = (selectedIndex + 1) % items.length;\r\n\t\t\t\t\t} else if (event.key === \"ArrowUp\") {\r\n\t\t\t\t\t\tselectedIndex = (selectedIndex - 1 + items.length) % items.length;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (delayTimeout.current) {\r\n\t\t\t\t\t\tclearTimeout(delayTimeout.current);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdelayTimeout.current = setTimeout(() => {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tsetNarrator(`${items[selectedIndex].innerText}`);\r\n\t\t\t\t\t\t} catch {}\r\n\t\t\t\t\t}, 500);\r\n\t\t\t\t});\r\n\r\n\t\t\t\titems.forEach((item) => {\r\n\t\t\t\t\titem.addEventListener(\"mouseenter\", (e) => {\r\n\t\t\t\t\t\tif (delayTimeout.current) {\r\n\t\t\t\t\t\t\tclearTimeout(delayTimeout.current);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdelayTimeout.current = setTimeout(() => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tsetNarrator(`${item.innerText}`);\r\n\t\t\t\t\t\t\t} catch {}\r\n\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} catch {}\r\n\t};\r\n\t// End narrator\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{narrator}\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\r\n\t);\r\n};\r\n","import React, { useCallback, useEffect, useMemo, useRef, useState, RefObject } from \"react\";\r\nimport { Icon } from \"semantic-ui-react\";\r\nimport { ITreeItem, TreeView } from \"@coherence-design-system/tree-view\";\r\nimport { ServiceHub } from \"../../../service\";\r\nimport { ApplicationRoutePaths } from \"../../router\";\r\n/**\r\n * Tree item definition\r\n */\r\nexport interface TreeItem extends ITreeItem {}\r\n\r\n/**\r\n * Controls the input props of Strike's Dropdown.\r\n */\r\nexport interface ITreeViewDropdownProps {\r\n\toptions: TreeItem[];\r\n\tonItemToggled?: (item: ITreeItem, isExpanded: boolean) => Promise | void;\r\n\tariaLabel?: undefined | string;\r\n\tariaRequired?: undefined | boolean;\r\n\ttitle?: undefined | string;\r\n\talt?: undefined | string;\r\n\texpandAriaLabel?: undefined | string;\r\n\tselectedItem?: undefined | { id?: undefined | string; text?: undefined | string };\r\n\tplaceholder?: undefined | string;\r\n\topen?: undefined | boolean;\r\n\tsetOpen?: undefined | ((open: boolean) => void);\r\n\tonClear?: undefined | (() => void);\r\n\tid?: undefined | string;\r\n\tdisabled?: undefined | boolean;\r\n\trequired?: undefined | boolean;\r\n\tinline?: undefined | boolean;\r\n\tsearch?: undefined | boolean;\r\n\terror?: undefined | boolean;\r\n\tnoCloseOnSelect?: undefined | boolean;\r\n\tonChange?: undefined | ((clickedItem: ITreeItem) => void);\r\n\tnavigable?: undefined | boolean;\r\n\tspecificParent?: undefined | string;\r\n\tinputId?: undefined | string;\r\n\tnotReadOnly?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Renders a Strike-standard Dropdown component.\r\n * Implements a Fluent UI 8 Dropdown within.\r\n *\r\n * @param props IDropdownProps\r\n * @returns React.FC\r\n */\r\nexport const TreeViewDropdown: React.FC = (props) => {\r\n\tconst divRef = useRef(null);\r\n\tconst [listOpen, setListOpen] = useState(props?.open ?? false);\r\n\r\n\tconst item = useMemo(\r\n\t\t() => (!props?.selectedItem?.id || props.selectedItem.id === \"\" ? null : props.selectedItem),\r\n\t\t[props?.selectedItem]\r\n\t);\r\n\tconst isOpen = useMemo(() => {\r\n\t\treturn undefined !== props?.open ? props.open : listOpen;\r\n\t}, [props?.open, listOpen]);\r\n\r\n\tconst toggleOpen = useCallback(() => {\r\n\t\tif (props.disabled) return false;\r\n\r\n\t\t// Toggles the list to open/closed\r\n\t\tif (undefined !== props.open && typeof props?.setOpen === \"function\") {\r\n\t\t\tprops.setOpen(!props?.open);\r\n\t\t} else {\r\n\t\t\tsetListOpen(!listOpen);\r\n\t\t}\r\n\t}, [props.disabled, props.open, props.setOpen, listOpen]);\r\n\r\n\t/**\r\n\t * Generates a function-wrapper to automatically close the select on click\r\n\t */\r\n\tconst createOnItemClick = useCallback(\r\n\t\t(item: TreeItem) => (ev: React.MouseEvent, clickedItem: ITreeItem) => {\r\n\t\t\tconst fnCopy = item.onClick;\r\n\t\t\thideTooltip();\r\n\r\n\t\t\tfnCopy(ev, clickedItem);\r\n\r\n\t\t\tif (props?.noCloseOnSelect) return;\r\n\r\n\t\t\tif (typeof props?.onChange === \"function\") props?.onChange(clickedItem);\r\n\r\n\t\t\ttoggleOpen();\r\n\t\t},\r\n\t\t[props?.onChange, props?.noCloseOnSelect, toggleOpen]\r\n\t);\r\n\r\n\t/**\r\n\t * Maps an item, and its children to a protected\r\n\t * clicking function which wraps each item's call with a component-controlled\r\n\t * item clicking function.\r\n\t */\r\n\tconst mapItemClick = useCallback(\r\n\t\t(item: TreeItem) => {\r\n\t\t\tlet mappedChildren = [];\r\n\r\n\t\t\tif (item?.children?.length > 0) {\r\n\t\t\t\tmappedChildren = item.children.map(mapItemClick);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ...item, onClick: createOnItemClick(item), children: mappedChildren };\r\n\t\t},\r\n\t\t[createOnItemClick]\r\n\t);\r\n\r\n\t/**\r\n\t * Reference to the props.options mapped to use the dropdown treeview.close function\r\n\t */\r\n\tconst closeEnabledOptions = useMemo(() => props?.options.map(mapItemClick) ?? [], [props.options, mapItemClick]);\r\n\r\n\t/**\r\n\t * Handles the dropdown Selector opener/closer events.\r\n\t *\r\n\t * @param event The Keyboard/Mouse event\r\n\t */\r\n\tconst handleSelectClick = (event: React.FormEvent) => {\r\n\t\tif (props.disabled) return false;\r\n\t\tconst inputId = document.getElementById(`${props.inputId}`);\r\n\t\tif(inputId) {\r\n\t\t\tinputId.removeAttribute('readonly');\r\n\t\t}\r\n\r\n\t\t// Toggles the list to open, if not yet\r\n\t\tif (!isOpen) {\r\n\t\t\ttoggleOpen();\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Manages the entering-field event.\r\n\t * Opens or closes the popover at desired steps,\r\n\t * be it Tab in, or Tab out.\r\n\t *\r\n\t * @param event The Keyboard/Mouse event\r\n\t */\r\n\tconst handleFocus = (event) => {\r\n\t\t// To capture only scenarios where it was not open yet,\r\n\t\t// And the shiftKey is not pressed (reverse command, for instance)\r\n\t\tif (event.nativeEvent.type === \"focusout\" && !event.shiftKey) return;\r\n\r\n\t\thandleSelectClick(event);\r\n\t};\r\n\r\n\t/**\r\n\t * Handles the KeyDown events processed within the\r\n\t * main TreeView component, the Input field.\r\n\t *\r\n\t * @param event The Keyboard/Mouse event\r\n\t */\r\n\tconst handleKeyDown = async (event) => {\r\n\t\tconst openFieldKeys = [\"Enter\", \"Space\"];\r\n\t\tconst closeFieldKeys = [\"Escape\", \"Enter\"];\r\n\t\tconst clearFieldKeys = [\"Backspace\", \"Delete\"];\r\n\r\n\t\t// If the keys pressed were any of the field activator ones\r\n\t\tif (openFieldKeys.includes(event.key) && !isOpen && !props?.disabled) {\r\n\t\t\thandleSelectClick(event);\r\n\t\t}\r\n\r\n\t\t// Handling the backwards Tab field leave case-scenario\r\n\t\tif (event.shiftKey && event.key === \"Tab\" && isOpen && !props?.disabled) {\r\n\t\t\ttoggleOpen();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If the keys pressed were any of the field closing ones\r\n\t\tif (closeFieldKeys.includes(event.key) && isOpen && !props?.disabled) {\r\n\t\t\ttoggleOpen();\r\n\t\t\thideTooltip();\r\n\t\t}\r\n\r\n\t\t// If the key activated is the Return or Delete, and onClear function was provided.\r\n\t\tif (clearFieldKeys.includes(event.key) && !props.disabled) {\r\n\t\t\tif (typeof props?.onClear === \"function\") {\r\n\t\t\t\tprops?.onClear();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handles the KeyDown events processed within the\r\n\t * opened TreeView popover.\r\n\t *\r\n\t * @param event The Keyboard/Mouse event\r\n\t */\r\n\tconst handleDropdownKeyDown = async (event) => {\r\n\t\tconst closeKeys = [\"Tab\", \"Escape\"];\r\n\t\tconst clearKeys = [\"Backspace\", \"Delete\"];\r\n\r\n\t\tif (props?.disabled) return;\r\n\r\n\t\tif (!isOpen) return;\r\n\r\n\t\tif (closeKeys.includes(event.key)) {\r\n\t\t\ttoggleOpen();\r\n\t\t\thideTooltip();\r\n\t\t}\r\n\r\n\t\tif (clearKeys.includes(event.key) && typeof props.onClear === \"function\") {\r\n\t\t\tprops?.onClear();\r\n\t\t\ttoggleOpen();\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tfunction handleClickOutside(event) {\r\n\t\t\tif (divRef.current && !divRef.current.contains(event.target)) {\r\n\t\t\t\ttoggleOpen();\r\n\t\t\t\thideTooltip();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isOpen) {\r\n\t\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\t// Unbind the event listener on clean up\r\n\t\t\tdocument.removeEventListener(\"mousedown\", handleClickOutside);\r\n\t\t};\r\n\t}, [isOpen, divRef.current]);\r\n\r\n\t//////////////////////////////////////\r\n\tconst [itemSelectedNew, setItemSelectedNew] = useState();\r\n\tconst [focusedIndex, setFocusedIndex] = useState(0);\r\n\tconst treeItemsRef = useRef([]);\r\n\tlet isTruncated = false;\r\n\tconst [tooltipText, setTooltipText] = useState(\"\");\r\n\r\n\t//hide custom tooltip and show the default one to being capable of use it on another page\r\n\tconst hideTooltip = () => {\r\n\t\ttry {\r\n\t\t\tconst toolTipDefault = document.getElementById(\"fluent-default-layer-host\");\r\n\t\t\tconst tooltipCallout = document.getElementById(\"my-tooltip\");\r\n\t\t\tif (tooltipCallout) {\r\n\t\t\t\ttooltipCallout.style.display = \"none\";\r\n\t\t\t}\r\n\t\t\tif (toolTipDefault) {\r\n\t\t\t\ttoolTipDefault.style.display = \"block\";\r\n\t\t\t}\r\n\t\t} catch {\r\n\t\t\t// Implement a handler for the catch scenario\r\n\t\t}\r\n\t};\r\n\t//hide tooltip on scroll\r\n\r\n\twindow.addEventListener(\"scroll\", () => {\r\n\t\thideTooltip();\r\n\t});\r\n\r\n\t//hide tooltip on resize\r\n\twindow.addEventListener(\"resize\", () => {\r\n\t\thideTooltip();\r\n\t});\r\n\r\n\t//handle focus of item, take the dimensions of the container and use it to resize the tooltip\r\n\t//Check if the item is truncated and activate the tooltip if it is focused by tabulation\r\n\tconst handleFocusItem = (event) => {\r\n\t\tconst target = event.target;\r\n\t\tconst textDiv = target.querySelector(\".ms-TooltipHost\");\r\n\t\tconst childDiv = textDiv.querySelector(\"div[hidden]\");\r\n\t\tconst tooltip = document.getElementById(\"my-tooltip\");\r\n\r\n\t\tisTruncated = textDiv.scrollWidth > textDiv.clientWidth;\r\n\t\tsetTooltipText(textDiv.innerText);\r\n\r\n\t\tconst textDivRect = textDiv.getBoundingClientRect();\r\n\t\tconst containerRect = target.getBoundingClientRect();\r\n\r\n\t\tconst top = containerRect.top - textDivRect.height;\r\n\t\tconst left = containerRect.left + containerRect.width / 2;\r\n\r\n\t\ttooltip.style.top = `${top}px`;\r\n\t\ttooltip.style.left = `${left}px`;\r\n\t\ttooltip.style.transform = `translate(-50%, -50%)`;\r\n\t\ttooltip.style.display = \"block\";\r\n\r\n\t\tconst toolTipDefault = document.getElementById(\"fluent-default-layer-host\");\r\n\r\n\t\tif (isTruncated) {\r\n\t\t\tdocument.getElementById(\"my-tooltip\").hidden = false;\r\n\t\t\tif (toolTipDefault) {\r\n\t\t\t\ttoolTipDefault.style.display = \"none\";\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\thideTooltip();\r\n\t\t}\r\n\r\n\t\tsetItemSelectedNew(event.target.innerText);\r\n\t};\r\n\r\n\t/**\r\n\t * Utility to handle item selection by keyboard after Enter key\r\n\t * @param text \r\n\t */\r\n\tconst handleItemKeyboardSelection = (text: string) => {\r\n\r\n\t\tconst selectedItemByKeyboard = props.options.find((item) => item.title === text);\r\n\r\n\t\tif (typeof props?.onChange === \"function\") props?.onChange(selectedItemByKeyboard);\r\n\t\ttoggleOpen();\r\n\t\thideTooltip();\r\n\r\n\t\tif(props.navigable) {\r\n\t\t\tconst resolvedPath = ApplicationRoutePaths.spaces(selectedItemByKeyboard.id, selectedItemByKeyboard.title);\r\n\t\t\tServiceHub.appManagementAPI.navigate(resolvedPath);\r\n\t\t}\r\n\t}\r\n\r\n\t//manage how is focused by tabulation\r\n\tconst handleKeyDownItem = (event) => {\r\n\t\tif (event.key === \"ArrowDown\") {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tsetFocusedIndex((prevIndex) => (prevIndex + 1) % treeItemsRef.current.length);\r\n\t\t} else if (event.key === \"ArrowUp\") {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tsetFocusedIndex((prevIndex) => (prevIndex - 1 + treeItemsRef.current.length) % treeItemsRef.current.length);\r\n\t\t} else if (event.key === \"Escape\") {\r\n\t\t\thideTooltip();\r\n\t\t} else if (event.key === \"Enter\") {\r\n\t\t\tif (event.currentTarget.innerText) {\r\n\t\t\t\thandleItemKeyboardSelection(event.currentTarget.innerText);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t//adding event listeners to being capable of detect when is focused and when it has to display the tooltip.\r\n\tuseEffect(() => {\r\n\t\tconst treeItems = document.querySelectorAll('tree-view-dropdown [role=\"roleName\"]');\r\n\t\ttreeItems.forEach((item, index) => {\r\n\t\t\titem.setAttribute(\"tabindex\", \"0\");\r\n\t\t\titem.addEventListener(\"focus\", handleFocusItem);\r\n\t\t\titem.addEventListener(\"keydown\", handleKeyDownItem);\r\n\t\t\titem.addEventListener(\"mouseenter\", handleFocusItem);\r\n\t\t\titem.addEventListener(\"mouseleave\", hideTooltip);\r\n\t\t\ttreeItemsRef.current[index] = item;\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\ttreeItems.forEach((item) => {\r\n\t\t\t\titem.removeEventListener(\"focus\", handleFocusItem);\r\n\t\t\t\titem.removeEventListener(\"keydown\", handleKeyDownItem);\r\n\t\t\t\titem.removeEventListener(\"mouseenter\", handleFocusItem);\r\n\t\t\t\titem.removeEventListener(\"mouseleave\", hideTooltip);\r\n\t\t\t});\r\n\t\t};\r\n\t}, [isOpen]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (treeItemsRef.current[focusedIndex]) {\r\n\t\t\ttreeItemsRef.current[focusedIndex].focus();\r\n\t\t}\r\n\t}, [focusedIndex]);\r\n\r\n\tuseEffect(() => {\r\n\t\thideTooltip();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t// Select all tree items\r\n\tlet treeItems;\r\n\tif(props.specificParent) {\r\n\t\tconst specificParent = document.getElementById(`${props.specificParent}`)\r\n\t\ttreeItems = specificParent.querySelectorAll('li[role=\"treeitem\"]');\r\n\t} else {\r\n\t\ttreeItems = document.querySelectorAll('li[role=\"treeitem\"]');\r\n\t}\r\n\r\n\t// Iterate through each tree item\r\n\tif(isOpen) {\r\n\t\ttreeItems.forEach((item, index) => {\r\n\t\t\tconst itemOption = item.querySelector('div > div');\r\n\t\t\titemOption.setAttribute('role', 'treeitem')\r\n\t\t\titemOption.setAttribute('aria-setsize', props?.options.length.toString())\r\n\t\t\tif (props.specificParent) {\r\n\t\t\t\titemOption.setAttribute('aria-posinset', (index + 1).toString());\r\n\t\t\t}\r\n\t\t\tif (itemOption.parentElement.parentElement.getAttribute('aria-selected') === 'true') {\r\n\t\t\t\titemOption.setAttribute('aria-selected', 'true');\r\n\t\t\t}\r\n\t\t\tif (item.hasAttribute('aria-expanded')) {\r\n\t\t\t\tconst hiddenDiv = item.querySelector('div[hidden]');\r\n\t\t\t\tif (hiddenDiv) {\r\n\t\t\t\t\thiddenDiv.parentElement.setAttribute('aria-hidden', 'true');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst allExpanderButtons = document.querySelectorAll('.tree-view-dropdown-options-container .ms-Button.ms-Button--icon');\r\n\r\n\t\t// Set attribute \"aria-disabled\"=\"false\" for each button\r\n\t\tallExpanderButtons.forEach(expanderButton => {\r\n\t\t\texpanderButton.setAttribute('aria-disabled', 'false');\r\n});\r\n\t}\r\n\t\r\n\t}, [isOpen]);\r\n\r\n\t//////////////////////////\r\n\treturn (\r\n\t\t\r\n\t\t\t{/* Custom ToolTip to display at DropDown */}\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{tooltipText}\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\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
\r\n\t\t\t\r\n\t\t\t{!props?.disabled && isOpen ? (\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
\r\n\t\t\t\t\r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport {\r\n\tDropdownItemProps,\r\n\tDropdownOnSearchChangeData,\r\n\tDropdownProps,\r\n\tDropdown as SemanticCombo\r\n} from \"semantic-ui-react\";\r\n\r\n/**\r\n * Controls the input props of Strike's ComboBox.\r\n */\r\nexport interface IComboBoxProps {\r\n\toptions: DropdownItemProps[];\r\n\tonChange: (event: React.SyntheticEvent, data: DropdownProps) => Promise | void;\r\n\tonType?:\r\n\t\t| undefined\r\n\t\t| ((event: React.SyntheticEvent, data: DropdownOnSearchChangeData) => Promise | void);\r\n\tcanAdd?: undefined | boolean;\r\n\tid?: undefined | string;\r\n\tariaLabel?: undefined | string;\r\n\tclassName?: undefined | string;\r\n\tselectedValue?: undefined | string | string[] | number | number[];\r\n\tdisabled?: undefined | boolean;\r\n\tmultiSelect?: undefined | boolean;\r\n\tplaceholder?: undefined | string;\r\n}\r\n\r\n/**\r\n * Renders a Strike-standard ComboBox component.\r\n * Implements a Semantic UI ComboBox within.\r\n *\r\n * @param props IComboBoxProps\r\n * @returns React.FC\r\n */\r\nexport const ComboBox: React.FC = (props) => {\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { PivotItem } from \"@fluentui/react\";\r\nimport { IPaginationProps, OverflowOption, Pagination } from \"@coherence-design-system/pagination/lib\";\r\n\r\ninterface Props {\r\n\ttotalPages: number;\r\n\tonPageChange: (pageIndex: number, pageNumber?: number | null) => void;\r\n\tpageLength?: undefined | number;\r\n\tpage?: undefined | number;\r\n}\r\n//export const StrikePagination = (): React.ReactElement => {\r\nexport const StrikePagination: React.FunctionComponent = (props): React.ReactElement => {\r\n\tconst totalPages = props.totalPages;\r\n\r\n\t//const itemsPerPageList: IComboBoxNumberOption[] = [\r\n\t// { key: 5, text: '5' },\r\n\t// { key: 10, text: '10' },\r\n\t// { key: 15, text: '15' },\r\n\t// { key: 20, text: '20' }\r\n\t//];\r\n\r\n\t// DataGrid setup\r\n\t//const [previewData, setPreviewData] = React.useState([]);\r\n\t//const [isLoadingTable, setIsLoadingTable] = React.useState(false);\r\n\r\n\t// Pagination setup\r\n\tconst [currentOverflowOption, setCurrentOverflowOption] = React.useState();\r\n\tconst [currentPage, setCurrentPage] = React.useState(props?.page ?? 1);\r\n\tconst [currentPageSize, setCurrentPageSize] = React.useState(props?.pageLength ?? 10);\r\n\r\n\tconst handleOnPageChange = (_event: React.MouseEvent, selectedPage: number): void => {\r\n\t\tconst startRowValue = currentPageSize * (selectedPage - 1) + 1;\r\n\t\tconst endRowValue = startRowValue - 1 + currentPageSize;\r\n\t\tsetCurrentPage(selectedPage);\r\n\t\tprops.onPageChange(selectedPage);\r\n\t};\r\n\r\n\tconst handleOverflowClick: NonNullable[\"onClick\"] = (_event) => {\r\n\t\tconst updateOverflow = currentOverflowOption ? undefined : \"textfieldAndPageDropdown\";\r\n\t\tsetCurrentOverflowOption(updateOverflow);\r\n\t};\r\n\r\n\tconst handlePivotClick = (\r\n\t\tpivot?: PivotItem | undefined,\r\n\t\t_ev?: React.MouseEvent | undefined\r\n\t): void => {\r\n\t\tconst currentNumber = parseInt((pivot && pivot.props.headerText) || \"1\");\r\n\t\tconst startRowIndex = currentPageSize * (currentNumber - 1) + 1;\r\n\t\tconst endRowIndex = startRowIndex + currentPageSize - 1;\r\n\t\tsetCurrentPage(currentNumber);\r\n\t\tprops.onPageChange(currentNumber);\r\n\t};\r\n\r\n\t//const handleOnItemsPerPageChange = (_event: React.FormEvent, pageNumber: number): void => {\r\n\t// props.onPageChange(currentPage, pageNumber);\r\n\t//};\r\n\r\n\tconst paginationProps: IPaginationProps = {\r\n\t\tpreviousPage: {\r\n\t\t\tariaLabel: \"Previous Page\",\r\n\t\t\ttitle: 'Previous Page',\r\n\t\t},\r\n\t\tnextPage: {\r\n\t\t\tariaLabel: \"Next Page\",\r\n\t\t\ttitle: 'Next Page',\r\n\t\t},\r\n\t\toverflowButtonProps: {\r\n\t\t\tariaLabel: 'More Pages',\r\n\t\t\ttitle: 'More Pages',\r\n\t\t\tonClick: handleOverflowClick\r\n\t\t},\r\n\t\tpageControls: {\r\n\t\t\tcurrentPage: currentPage,\r\n\t\t\tpages: totalPages,\r\n\t\t\toverflowOption: currentOverflowOption,\r\n\t\t\tonPivotClick: handlePivotClick\r\n\t\t},\r\n\t\tonPageChange: handleOnPageChange\r\n\t\t//itemsPerPageProps: {\r\n\t\t// currentPageSize: currentPageSize,\r\n\t\t// itemsPerPageList: itemsPerPageList,\r\n\t\t// onItemsPerPageChange: handleOnItemsPerPageChange\r\n\t\t//}\r\n\t};\r\n\r\n\treturn totalPages > 1 ? (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t) : (\r\n\t\t
\r\n\t);\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { PivotItem } from \"@fluentui/react\";\r\nimport { IPaginationProps, OverflowOption, Pagination } from \"@coherence-design-system/pagination/lib\";\r\n\r\n/**\r\n * Contract for the Light Pagination component.\r\n */\r\ninterface IPaginationLightProps {\r\n\ttotalPages: number;\r\n\tonPageChange: (pageIndex: number, pageNumber?: number | null) => void;\r\n\tpageLength?: undefined | number;\r\n\tpage?: undefined | number;\r\n}\r\n\r\n/**\r\n * Light Strike application pagination component.\r\n * More or it should be controlled from outside\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const LightPagination: React.FunctionComponent = ({\r\n\tpageLength = 15,\r\n\tpage = 1,\r\n\t...props\r\n}): React.ReactElement => {\r\n\tconst totalPages = props.totalPages;\r\n\r\n\t// Pagination setup\r\n\tconst [currentOverflowOption, setCurrentOverflowOption] = React.useState();\r\n\tconst [currentPage, setCurrentPage] = React.useState(page);\r\n\r\n\tconst handleOnPageChange = (_event: React.MouseEvent, selectedPage: number): void => {\r\n\t\tsetCurrentPage(selectedPage);\r\n\r\n\t\tprops.onPageChange(selectedPage, pageLength);\r\n\t};\r\n\r\n\tconst handleOverflowClick: NonNullable[\"onClick\"] = (_event) => {\r\n\t\tconst updateOverflow = currentOverflowOption ? undefined : \"textfieldAndPageDropdown\";\r\n\t\tsetCurrentOverflowOption(updateOverflow);\r\n\t};\r\n\r\n\tconst handlePivotClick = (\r\n\t\tpivot?: PivotItem | undefined,\r\n\t\t_ev?: React.MouseEvent | undefined\r\n\t): void => {\r\n\t\tconst currentNumber = parseInt((pivot && pivot.props.headerText) || \"1\");\r\n\r\n\t\tsetCurrentPage(currentNumber);\r\n\t\tprops.onPageChange(currentNumber, pageLength);\r\n\t};\r\n\r\n\tconst paginationProps: IPaginationProps = useMemo(\r\n\t\t() => ({\r\n\t\t\tpreviousPage: {\r\n\t\t\t\tariaLabel: \"Previous Page\",\r\n\t\t\t\ttitle:'Previous Page',\r\n\t\t\t},\r\n\t\t\tnextPage: {\r\n\t\t\t\tariaLabel: \"Next Page\",\r\n\t\t\t\ttitle:'Next Page',\r\n\t\t\t},\r\n\t\t\toverflowButtonProps: {\r\n\t\t\t\tariaLabel:'More Pages',\r\n\t\t\t\ttitle:'More Pages',\r\n\t\t\t\tonClick: handleOverflowClick\r\n\t\t\t},\r\n\t\t\tpageControls: {\r\n\t\t\t\tcurrentPage: currentPage,\r\n\t\t\t\tpages: totalPages,\r\n\t\t\t\toverflowOption: currentOverflowOption,\r\n\t\t\t\tonPivotClick: handlePivotClick\r\n\t\t\t},\r\n\t\t\tonPageChange: handleOnPageChange\r\n\t\t\t//itemsPerPageProps: {\r\n\t\t\t// currentPageSize: currentPageSize,\r\n\t\t\t// itemsPerPageList: itemsPerPageList,\r\n\t\t\t// onItemsPerPageChange: handleOnItemsPerPageChange\r\n\t\t\t//}\r\n\t\t}),\r\n\t\t[currentPage, totalPages, currentOverflowOption]\r\n\t);\r\n\r\n\treturn totalPages > 1 ? (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t) : (\r\n\t\t
\r\n\t);\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { useImageGallery } from \"../../../../hooks\";\r\nimport { LightPagination } from \"../../../pagination\";\r\nimport { Loader } from \"semantic-ui-react\";\r\n\r\n/**\r\n * Controls the input of the Cover Images Gallery modal.\r\n */\r\nexport interface ICoverImageGalleryProps {\r\n\tonSelect?: undefined | ((itemId: string | number, item: string) => void);\r\n}\r\n\r\n/**\r\n * Renders the Cover Image Gallery component.\r\n * Used within the Article/Question form for Cover Image selection from a pre-existing image gallery.\r\n *\r\n * @param props ICoverImageGalleryProps\r\n * @returns React.FC\r\n */\r\nexport const CoverImageGallery: React.FC = (props) => {\r\n\tconst imageGalleryControls = useImageGallery();\r\n\tconst totalPages = useMemo(() => {\r\n\t\treturn (\r\n\t\t\t1 +\r\n\t\t\tMath.floor(\r\n\t\t\t\timageGalleryControls.coverImagesListControl.totalCount /\r\n\t\t\t\t\timageGalleryControls.coverImagesListControl.pageLength\r\n\t\t\t)\r\n\t\t);\r\n\t}, [\r\n\t\timageGalleryControls.coverImagesListControl.totalCount,\r\n\t\timageGalleryControls.coverImagesListControl.pageLength\r\n\t]);\r\n\r\n\tconst handleKeyDown = (event, coverItemPath) => {\r\n if (event.key === 'Enter') {\r\n props.onSelect && props.onSelect(event.currentTarget.id, coverItemPath);\r\n }\r\n };\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{imageGalleryControls?.coverImagesList?.map((coverItem, index) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t handleKeyDown(event, coverItem.CoverImagePath)}\r\n\t\t\t\t\t\t\tonClick={() => props.onSelect && props.onSelect(coverItem.Id, coverItem.CoverImagePath)}\r\n\t\t\t\t\t\t\ttabIndex={0}\r\n\t\t\t\t\t\t\taria-label={`Cover Image Item ${index + 1}: ${coverItem.Name}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{!imageGalleryControls.imagePathGallery?.imagePath[coverItem.Id] ? (\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\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\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n","/**\r\n * Ids of Fields used on Article Form component.\r\n */\r\nexport const CoverImageFieldIds = {\r\n\tuploadCoverImageInput: \"uploadCoverImageInput\"\r\n};\r\n\r\n/**\r\n * Labels used on Article Form component.\r\n */\r\nexport const CoverImageLabels = {\r\n\tactions: {\r\n\t\tcoverSelectorTitle: \"Pick a Cover Image\",\r\n\t\tgalleryTitle: \"Select Image from Gallery\"\r\n\t}\r\n};\r\n\r\n/**\r\n * Placeholders used on Article Form component.\r\n */\r\nexport const CoverImagePlaceholders = {\r\n\tdefaultCoverImageUrl: \"/img/strikeAppLogo.png\"\r\n};\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { Modal } from \"@coherence-design-system/modal\";\r\nimport { Icon } from \"semantic-ui-react\";\r\nimport { CoverImageType } from \"../../../../enums\";\r\nimport { CoverImageFieldIds, CoverImageLabels } from \"./coverImage.gallery.strings\";\r\nimport { CoverImageGallery } from \"./coverImage.gallery\";\r\nimport { useImageGallery } from \"../../../../hooks\";\r\n\r\n/**\r\n * Controls the input of the Cover Images parent Modal.\r\n */\r\nexport interface ICoverImageModal {\r\n\topen?: undefined | boolean;\r\n\tonClose?: undefined | (() => void);\r\n\ttitle?: undefined | string;\r\n\tonDefault?: undefined | (() => void);\r\n\tonUpload?: undefined | ((event: React.FormEvent) => void);\r\n\tonSelectFromGallery?: undefined | ((itemId: string | number, item: string) => void);\r\n\tselectedImage?: undefined | string;\r\n\taccepts?: undefined | string[];\r\n}\r\n\r\n/**\r\n * Renders the Cover Image parent Modal component.\r\n * Used within the Article/Question form for Cover Image selection:\r\n * - Using default image.\r\n * - Selecting from a pre-existing image gallery.\r\n * - Uploading a new image.\r\n *\r\n * By default, accepts \"image/png\", \"image/jpeg\", and \"image/gif\".\r\n *\r\n * @param props ICoverImageModal\r\n * @returns React.FC\r\n */\r\nexport const CoverImageModal: React.FC = (props) => {\r\n\tconst defaultAccepts = [\"image/png\", \"image/jpeg\", \"image/gif\", \"image/svg+xml\"];\r\n\tconst imageGalleryControls = useImageGallery();\r\n\tconst [selectedMode, setSelectedMode] = useState(\"\");\r\n\tconst resolvedAccepts = useMemo(() => {\r\n\t\treturn defaultAccepts.concat(props?.accepts ?? []).join(\",\");\r\n\t}, []);\r\n\tconst resolvedTitle = useMemo(() => {\r\n\t\treturn props?.title\r\n\t\t\t? props.title\r\n\t\t\t: selectedMode === CoverImageType.Gallery.toString()\r\n\t\t\t? CoverImageLabels.actions.galleryTitle\r\n\t\t\t: CoverImageLabels.actions.coverSelectorTitle;\r\n\t}, [props.title, selectedMode]);\r\n\r\n\t/**\r\n\t * Interaction from the buttons in the cover image mode selector.\r\n\t *\r\n\t * @param event React.MouseEvent\r\n\t */\r\n\tconst onClickModeSelectorItem = (event: React.MouseEvent) => {\r\n\t\tconst nextMode = event.currentTarget.id;\r\n\r\n\t\tsetSelectedMode(nextMode);\r\n\r\n\t\tswitch (nextMode) {\r\n\t\t\tcase CoverImageType.Gallery.toString(): {\r\n\t\t\t\t// Handled by state management\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase CoverImageType.Upload.toString(): {\r\n\t\t\t\tdocument.getElementById(CoverImageFieldIds.uploadCoverImageInput).click();\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tdefault:\r\n\t\t\t\tprops?.onDefault();\r\n\t\t\t\tprops?.onClose();\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!props.open) {\r\n\t\t\tsetSelectedMode(\"\");\r\n\t\t}\r\n\t}, [props.open]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Pre-loads the gallery list with default selections,\r\n\t\t// To deliver a better visual effect with images already present\r\n\t\timageGalleryControls.queryGallery(\r\n\t\t\timageGalleryControls.coverImagesListControl.currentPage,\r\n\t\t\timageGalleryControls.coverImagesListControl.pageLength\r\n\t\t);\r\n\t}, []);\r\n\r\n\tconst strings = {\r\n\t\tcoverImageOptions: {\r\n\t\t\tdefault: \"Use default Cover Image\",\r\n\t\t\tgallery: \"Pick it from the Gallery\",\r\n\t\t\tupload: \"Upload from this Device\"\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleKeyDown = (event) => {\r\n if (event.key === 'Enter') {\r\n onClickModeSelectorItem(event);\r\n }\r\n };\r\n\r\n\treturn props.open ? (\r\n\t\t\r\n\t\t\t{selectedMode === CoverImageType.Gallery.toString() ? (\r\n\t\t\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\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
{strings.coverImageOptions.default}
\r\n\t\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
{strings.coverImageOptions.gallery}
\r\n\t\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
{strings.coverImageOptions.upload}
\r\n\t\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)}\r\n\t\t\r\n\t) : null;\r\n};\r\n","import React from \"react\";\r\nimport { Segment, Header, Icon, SemanticICONS } from \"semantic-ui-react\";\r\n\r\ntype Props = {\r\n\theader: string;\r\n\tmessage: string | JSX.Element;\r\n\ticonName?: SemanticICONS;\r\n\tisHtml?: boolean;\r\n};\r\n\r\nconst ErrorPage: React.FC = (props) => {\r\n\tconst icon = props.iconName || \"frown\";\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t{props.header}\r\n\t\t\t
\r\n\t\t\t{props.isHtml ?
: props.message}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ErrorPage;\r\n","import React from \"react\";\r\nimport ErrorPage from \"../../ui/ErrorPage\";\r\nimport { Button } from \"../button\";\r\nimport { ApplicationRoutePaths } from \"../../router\";\r\nimport { ServiceHub } from \"../../../service\";\r\n\r\n/**\r\n * Reusable Unauthorized access page.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const UnauthorizedPage: React.FC = () => {\r\n\tconst onReturn = () => {\r\n\t\tServiceHub.appManagementAPI.navigate(ApplicationRoutePaths.root());\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\tStrikeonline Team\r\n\t\t\t\t\tfor granting an Authorization.\r\n `}\r\n\t\t\t/>\r\n\t\t\t
\r\n\t);\r\n};\r\n","import { useDispatch, useSelector } from \"react-redux\";\r\nimport { nodesSelectors } from \"../../redux/selectors/nodes\";\r\nimport {\r\n\tsetDeleteConfirmationModalSubText,\r\n\tsetDeleteConfirmationModalTitle,\r\n\tsetIsActionConfirmed,\r\n\tsetIsOpenDeleteConfirmation,\r\n\tsetIsChangeSpacePanelOpen,\r\n\tsetStickSpaceStatus,\r\n\tsetStickSiteStatus,\r\n\tsetIsOpenStickConfirmation,\r\n\tsetIsOpenPrivateConfirmation,\r\n\tsetPrivateStatus,\r\n\tsetDeletedStatus,\r\n\tsetDeleteConfirmationModalButtonText,\r\n\tsetIsRevisionsPanelOpen,\r\n\tsetNodeRevisions,\r\n\tresetNodeRevisions,\r\n\tsetRevisionsLoaded\r\n} from \"../../redux/reducers/nodes\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { NodeActionTypes, NodeType } from \"../../contracts/models/strikeEnums\";\r\nimport { NodeAPIServiceInstance } from \"../../service/NodeAPI\";\r\nimport { StickyNodeRequest, UpdateNodeStatusActionModel, UserActivityModel } from \"../../contracts/models\";\r\nimport Constants from \"../../constants/Constants\";\r\nimport { ITreeItem } from \"@coherence-design-system/tree-view\";\r\n\r\n/**\r\n * Contract for the Node Actions hook.\r\n */\r\ninterface INodeActionsSliceHook {\r\n\tisOpenDeleteConfirmation: boolean;\r\n\tisOpenStickConfirmation: boolean;\r\n\tisOpenShareContent: boolean;\r\n\tisSubmittingShareContent: boolean;\r\n\tisOpenPrivateConfirmation: boolean;\r\n\tonClose: () => void;\r\n\tonCloseStickyConfirmation: () => void;\r\n\tonClosePrivateConfirmation: () => void;\r\n\tdismissChangeSpacePanel: () => void;\r\n\topenChangeSpacePanel: () => void;\r\n\tdismissRevisionsPanel: () => void;\r\n\topenRevisionsPanel: () => void;\r\n\tonDeleteConfirmation: (nodeId: string, actionType: NodeActionTypes, userUpn: string, type?: NodeType) => void;\r\n\tonUndeleteConfirmation: (nodeId: string, actionType: NodeActionTypes, userUpn: string, type?: NodeType) => void;\r\n\tonPublishConfirmation: (actionType: NodeActionTypes, ipAddress: string, nodeId: string, emailID: string) => void;\r\n\tisActionConfirmed: boolean;\r\n\tconfirmationModalTitle: string;\r\n\tconfirmationModalSubText: string;\r\n\tconfirmationModalButtonText: string;\r\n\tconfirmationModalAction: () => void;\r\n\tconfirmationStickyAction: () => void;\r\n\tisOpenActionPostMessage: boolean;\r\n\tisChangeSpacePanelOpen: boolean;\r\n\tisRevisionsPanelOpen: boolean;\r\n\tonAddStickNode: (nodeId: string, spaceId?: string | null) => void;\r\n\tonRemoveStickNode: (nodeId: string, spaceId?: string | null) => void;\r\n\tonGetNodeRevisions: (nodeId: string) => void;\r\n\tonMakeNodePrivate: (nodeId: string, actionType: NodeActionTypes, userUpn: string, type?: NodeType) => void;\r\n\tonMakeNodePublic: (nodeId: string, actionType: NodeActionTypes, userUpn: string, type?: NodeType) => void;\r\n\tselectedReportReasonItem: any;\r\n\treportReasons: ITreeItem[];\r\n\treportReasonsOptionsData: string[]\r\n}\r\n\r\n/**\r\n * Hook to use shared Node Actions globally\r\n *\r\n * @returns INodeActionsSliceHook\r\n */\r\nexport const useNodeActionsSlice = (): INodeActionsSliceHook => {\r\n\tconst dispatch = useDispatch();\r\n\tconst isOpenDeleteConfirmation: boolean = useSelector(nodesSelectors.getIsOpenDeleteConfirmation);\r\n\tconst isOpenStickConfirmation: boolean = useSelector(nodesSelectors.getIsOpenStickConfirmation);\r\n\tconst isOpenPrivateConfirmation: boolean = useSelector(nodesSelectors.getIsOpenPrivateConfirmation);\r\n\tconst isOpenActionPostMessage: boolean = useSelector(nodesSelectors.getIsOpenActionPostMessage);\r\n\tconst isOpenShareContent: boolean = useSelector(nodesSelectors.getIsOpenShareContent);\r\n\tconst reportReasons = useSelector(nodesSelectors.getReportReasonValues);\r\n\tconst selectedReportReasonItem = useSelector(nodesSelectors.getSelectedReportReasonById);\r\n\tconst reportReasonsOptionsData: string[] = useSelector(nodesSelectors.getReportReasonsData);\r\n\tconst isActionConfirmed: boolean = useSelector(nodesSelectors.getIsActionConfirmed);\r\n\tconst isChangeSpacePanelOpen: boolean = useSelector(nodesSelectors.getIsChangeSpacePanelOpen);\r\n\tconst isRevisionsPanelOpen: boolean = useSelector(nodesSelectors.getIsRevisionsPanelOpen);\r\n\tconst isSubmittingShareContent: boolean = useSelector(nodesSelectors.getIsSubmittingShareContent);\r\n\tconst confirmationModalTitle: string = useSelector(nodesSelectors.getNodeConfirmationTitle);\r\n\tconst confirmationModalSubText: string = useSelector(nodesSelectors.getNodeConfirmationSubText);\r\n\tconst confirmationModalButtonText: string = useSelector(nodesSelectors.getNodeConfirmationButtonText);\r\n\tconst confirmationModalAction: () => void = useSelector(nodesSelectors.getConfirmationModalAction);\r\n\tconst confirmationStickyAction: () => void = useSelector(nodesSelectors.getConfirmationStickyAction);\r\n\r\n\t/**\r\n\t * Generic method to get focus back to node settings button\r\n\t */\r\n\tconst focusBackSettingsButton = () => {\r\n\t\tconst nodeSettingsButton = document.querySelector('.page-header-actions button')\r\n\t\tif(nodeSettingsButton) {\r\n\t\t\tnodeSettingsButton.focus();\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Triggered on Generic Confirmation modal close action\r\n\t */\r\n\tconst onClose = (): void => {\r\n\t\tdispatch(setIsOpenDeleteConfirmation(false));\r\n\t\tdispatch(setDeleteConfirmationModalButtonText(\"\"));\r\n\t};\r\n\r\n\t/**\r\n\t * Triggered on Sticky features Confirmation modal close action\r\n\t */\r\n\tconst onCloseStickyConfirmation = (): void => {\r\n\t\tdispatch(setIsOpenStickConfirmation(false));\r\n\t};\r\n\r\n\t/**\r\n\t * Triggered on Private/Public features Confirmation modal close action\r\n\t */\r\n\tconst onClosePrivateConfirmation = (): void => {\r\n\t\tdispatch(setIsOpenPrivateConfirmation(false));\r\n\t};\r\n\r\n\t/**\r\n\t * Exit action on Change Space feature cancel button\r\n\t */\r\n\tconst dismissChangeSpacePanel = (): void => {\r\n\t\tdispatch(setIsChangeSpacePanelOpen(false));\r\n\t\tfocusBackSettingsButton();\r\n\t};\r\n\r\n\t/**\r\n\t * Calling Panel to show Change Space feature form\r\n\t */\r\n\tconst openChangeSpacePanel = (): void => {\r\n\t\tdispatch(setIsChangeSpacePanelOpen(true));\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Exit action on Revisions node info panel\r\n\t */\r\n\tconst dismissRevisionsPanel = (): void => {\r\n\t\tdispatch(setIsRevisionsPanelOpen(false));\r\n\t\tdispatch(resetNodeRevisions())\r\n\t\tfocusBackSettingsButton();\r\n\t};\r\n\r\n\t/**\r\n\t * Calling Panel to show Revisions content\r\n\t */\r\n\tconst openRevisionsPanel = (): void => {\r\n\t\tdispatch(setIsRevisionsPanelOpen(true));\r\n\t};\r\n\r\n\t/**\r\n\t * Manage object data used on Delete node feature\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * @param userUpn\r\n\t * @param type\r\n\t */\r\n\tconst onDeleteConfirmation = (\r\n\t\tnodeId: string,\r\n\t\tactionType: NodeActionTypes,\r\n\t\tuserUpn: string,\r\n\t\ttype: NodeType\r\n\t): void => {\r\n\t\tlet queryModel = ServiceHub.nodeAPI.getQueryUpdateStatusNodeObject(actionType, userUpn, nodeId);\r\n\t\tdeleteNode(queryModel, type);\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API endpoint to delete a node action\r\n\t * @param queryDeleteNode\r\n\t * @param type\r\n\t */\r\n\tconst deleteNode = async (queryDeleteNode: UpdateNodeStatusActionModel, type: NodeType) => {\r\n\t\tlet res;\r\n\t\tif (type === NodeType.Kbentry) {\r\n\t\t\tres = await ServiceHub.nodeAdminAPI.start().UpdateNodeStatus(queryDeleteNode);\r\n\t\t} else {\r\n\t\t\tres = await NodeAPIServiceInstance.UpdateNodeStatus(queryDeleteNode);\r\n\t\t}\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsActionConfirmed(true));\r\n\t\t\tdispatch(setDeleteConfirmationModalTitle(Constants.deleteConfirmationTexts.DeleteSuccess));\r\n\t\t\tdispatch(setDeleteConfirmationModalSubText(\"\"));\r\n\t\t\tdispatch(setDeletedStatus(true));\r\n\t\t\tdispatch(setDeleteConfirmationModalButtonText(\"\"));\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Manage object data to use on Undelete node action\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * @param userUpn\r\n\t * @param type\r\n\t */\r\n\tconst onUndeleteConfirmation = (\r\n\t\tnodeId: string,\r\n\t\tactionType: NodeActionTypes,\r\n\t\tuserUpn: string,\r\n\t\ttype: NodeType\r\n\t): void => {\r\n\t\tlet queryModel = ServiceHub.nodeAPI.getQueryUpdateStatusNodeObject(actionType, userUpn, nodeId);\r\n\t\tundeleteNode(queryModel, type);\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API endpoints to execute undelete node\r\n\t * @param queryDeleteNode\r\n\t * @param type\r\n\t */\r\n\tconst undeleteNode = async (queryDeleteNode: UpdateNodeStatusActionModel, type: NodeType) => {\r\n\t\tlet res;\r\n\t\tif (type === NodeType.Kbentry) {\r\n\t\t\tres = await ServiceHub.nodeAdminAPI.start().UpdateNodeStatus(queryDeleteNode);\r\n\t\t} else {\r\n\t\t\tres = await NodeAPIServiceInstance.UpdateNodeStatus(queryDeleteNode);\r\n\t\t}\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsActionConfirmed(true));\r\n\t\t\tdispatch(setDeleteConfirmationModalTitle(Constants.undeleteConfirmationTexts.UndeleteSuccess));\r\n\t\t\tdispatch(setDeleteConfirmationModalSubText(\"\"));\r\n\t\t\tdispatch(setDeletedStatus(false));\r\n\t\t\tdispatch(setDeleteConfirmationModalButtonText(\"\"));\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Manage object data to publish node action\r\n\t * @param actionType\r\n\t * @param ipAddress\r\n\t * @param nodeId\r\n\t * @param emailID\r\n\t */\r\n\tconst onPublishConfirmation = (\r\n\t\tactionType: NodeActionTypes,\r\n\t\tipAddress: string,\r\n\t\tnodeId: string,\r\n\t\temailID: string\r\n\t): void => {\r\n\t\tlet queryModel = ServiceHub.nodeAPI.getQueryPublishNodeObject(actionType, ipAddress, nodeId, emailID);\r\n\t\tpublishNode(queryModel);\r\n\t};\r\n\r\n\t/**\r\n\t * API endpoints call via service to publish article\r\n\t * @param queryPublishArticle\r\n\t */\r\n\tconst publishNode = async (queryPublishArticle: UserActivityModel) => {\r\n\t\tlet res = await ServiceHub.nodeAdminAPI.start().publishArticle(queryPublishArticle);\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsActionConfirmed(true));\r\n\t\t\tdispatch(setDeleteConfirmationModalTitle(Constants.publishConfirmationTexts.ArticlePublished));\r\n\t\t\tdispatch(setDeleteConfirmationModalSubText(\"\"));\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Add Stick article to space or website\r\n\t * @param nodeId\r\n\t * @param spaceId\r\n\t */\r\n\tconst onAddStickNode = (nodeId: string, spaceId?: string): void => {\r\n\t\tlet queryModel = ServiceHub.nodeAPI.getQueryStickNodeObject(nodeId, spaceId);\r\n\t\taddStickNode(queryModel);\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API via service to process sticky feature\r\n\t * @param queryStickyNode\r\n\t */\r\n\tconst addStickNode = async (queryStickyNode: StickyNodeRequest) => {\r\n\t\tlet res = await ServiceHub.nodeAdminAPI.start().addStickNode(queryStickyNode);\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsOpenStickConfirmation(false));\r\n\t\t\tif (queryStickyNode.spaceId) {\r\n\t\t\t\tdispatch(setStickSpaceStatus(true));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(setStickSiteStatus(true));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Manage object data to prep set node as Private setting\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * @param userUpn\r\n\t * @param type\r\n\t */\r\n\tconst onMakeNodePrivate = (nodeId: string, actionType: NodeActionTypes, userUpn: string, type: NodeType): void => {\r\n\t\tlet queryPrivateNode = ServiceHub.nodeAPI.getQueryUpdateStatusNodeObject(actionType, userUpn, nodeId);\r\n\t\tmakeNodePrivate(queryPrivateNode, type);\r\n\t};\r\n\r\n\t/**\r\n\t * API endpoints call to set node Private switching between node type\r\n\t * @param queryPrivateNode\r\n\t * @param type\r\n\t */\r\n\tconst makeNodePrivate = async (queryPrivateNode: UpdateNodeStatusActionModel, type: NodeType) => {\r\n\t\tlet res;\r\n\t\tif (type === NodeType.Kbentry) {\r\n\t\t\tres = await ServiceHub.nodeAdminAPI.start().UpdateNodeStatus(queryPrivateNode);\r\n\t\t} else {\r\n\t\t\tres = await NodeAPIServiceInstance.UpdateNodeStatus(queryPrivateNode);\r\n\t\t}\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsOpenPrivateConfirmation(false));\r\n\t\t\tdispatch(setPrivateStatus(true));\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Managing object data to set a node back as Public\r\n\t * @param nodeId\r\n\t * @param actionType\r\n\t * @param userUpn\r\n\t * @param type\r\n\t */\r\n\tconst onMakeNodePublic = (nodeId: string, actionType: NodeActionTypes, userUpn: string, type: NodeType): void => {\r\n\t\tlet queryPrivateNode = ServiceHub.nodeAPI.getQueryUpdateStatusNodeObject(actionType, userUpn, nodeId);\r\n\t\tmakeNodePublic(queryPrivateNode, type);\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API endpoints via service to set node as Public\r\n\t * @param queryPrivateNode\r\n\t * @param type\r\n\t */\r\n\tconst makeNodePublic = async (queryPrivateNode: UpdateNodeStatusActionModel, type: NodeType) => {\r\n\t\tlet res;\r\n\t\tif (type === NodeType.Kbentry) {\r\n\t\t\tres = await ServiceHub.nodeAdminAPI.start().UpdateNodeStatus(queryPrivateNode);\r\n\t\t} else {\r\n\t\t\tres = await NodeAPIServiceInstance.UpdateNodeStatus(queryPrivateNode);\r\n\t\t}\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsOpenPrivateConfirmation(false));\r\n\t\t\tdispatch(setPrivateStatus(false));\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Remove Stick article to space or website\r\n\t * @param nodeId\r\n\t * @param spaceId\r\n\t */\r\n\tconst onRemoveStickNode = (nodeId: string, spaceId?: string): void => {\r\n\t\tlet queryModel = ServiceHub.nodeAPI.getQueryStickNodeObject(nodeId, spaceId);\r\n\t\tremoveStickNode(queryModel);\r\n\t};\r\n\r\n\t/**\r\n\t * Call Node Admin API method to get Revisions\r\n\t * @param nodeId\r\n\t */\r\n\tconst onGetNodeRevisions = (nodeId: string): void => {\r\n\t\tdispatch(setRevisionsLoaded(false));\r\n\t\tgetNodeRevisions(nodeId);\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API to remove stick on node\r\n\t * @param queryStickyNode\r\n\t */\r\n\tconst removeStickNode = async (queryStickyNode: StickyNodeRequest) => {\r\n\t\tlet res = await ServiceHub.nodeAdminAPI.start().removeStickNode(queryStickyNode);\r\n\t\tif (res) {\r\n\t\t\tdispatch(setIsOpenStickConfirmation(false));\r\n\t\t\tif (queryStickyNode.spaceId) {\r\n\t\t\t\tdispatch(setStickSpaceStatus(false));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(setStickSiteStatus(false));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Calling API to get Node Revisions\r\n\t * @param nodeId\r\n\t */\r\n\tconst getNodeRevisions = async (nodeId: string) => {\r\n\t\tlet res = await ServiceHub.nodeAdminAPI.start().getNodeRevisions(nodeId);\r\n\t\tif (res) {\r\n\t\t\tdispatch(setNodeRevisions(res))\r\n\t\t\tdispatch(setRevisionsLoaded(true));\r\n\t\t}\r\n\t};\r\n\r\n\treturn {\r\n\t\tisOpenDeleteConfirmation,\r\n\t\tisOpenStickConfirmation,\r\n\t\tisOpenShareContent,\r\n\t\tisSubmittingShareContent,\r\n\t\tisOpenPrivateConfirmation,\r\n\t\tonClose,\r\n\t\tonCloseStickyConfirmation,\r\n\t\tonClosePrivateConfirmation,\r\n\t\tdismissChangeSpacePanel,\r\n\t\topenChangeSpacePanel,\r\n\t\tdismissRevisionsPanel,\r\n\t\topenRevisionsPanel,\r\n\t\tonDeleteConfirmation,\r\n\t\tonUndeleteConfirmation,\r\n\t\tonPublishConfirmation,\r\n\t\tisActionConfirmed,\r\n\t\tconfirmationModalTitle,\r\n\t\tconfirmationModalSubText,\r\n\t\tconfirmationModalButtonText,\r\n\t\tconfirmationModalAction,\r\n\t\tconfirmationStickyAction,\r\n\t\tisOpenActionPostMessage,\r\n\t\tisChangeSpacePanelOpen,\r\n\t\tisRevisionsPanelOpen,\r\n\t\tonAddStickNode,\r\n\t\tonRemoveStickNode,\r\n\t\tonGetNodeRevisions,\r\n\t\tonMakeNodePrivate,\r\n\t\tonMakeNodePublic,\r\n\t\treportReasons,\r\n\t\tselectedReportReasonItem,\r\n\t\treportReasonsOptionsData\r\n\t};\r\n};\r\n","import React from \"react\";\r\nimport { ContextualMenu, Dialog, DialogFooter, DialogType } from \"@fluentui/react\";\r\nimport { Button } from \"../button\";\r\nimport Constants from \"../../../constants/Constants\";\r\nimport { ServiceHub } from \"../../../service\";\r\nimport { ApplicationRoutePaths } from \"../../router\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { setIsOpenActionPostMessage, setIsOpenDeleteConfirmation } from \"../../../redux/reducers/nodes\";\r\nimport { useNodeActionsSlice } from \"../../../hooks/node/useNodeActions\";\r\n\r\nconst modalPropsStyles = {\r\n\tmain: {\r\n\t\tselectors: {\r\n\t\t\t[\"@media (max-width: 480px)\"]: {\r\n\t\t\t\tmaxWidth: \"450px\"\r\n\t\t\t},\r\n\t\t\t[\"@media (min-width: 992px)\"]: {\r\n\t\t\t\tmaxWidth: \"500px\"\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tfooter: { display: \"flex\", justifyContent: \"center\" }\r\n};\r\n\r\nconst modalFooterPropsStyles = {\r\n\tactions: { display: \"flex\", justifyContent: \"right\", marginTop: \"30px\" }\r\n};\r\n\r\n/**\r\n * Global Confirmation Message component contract.\r\n */\r\nexport interface IActionPostMessageProps {\r\n\tblockScreen?: undefined | boolean;\r\n\tdraggable?: undefined | boolean;\r\n\tonClose?: () => void;\r\n\ttext: string;\r\n\ttitle: string;\r\n}\r\n\r\n/**\r\n * Confirmation message component.\r\n * Activation based on parent props.\r\n *\r\n * @param props IConfirmationMessageProps\r\n * @returns React.FC\r\n */\r\nexport const ActionPostMessage: React.FC = (props) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst ActionPostData = useNodeActionsSlice();\r\n\tconst isOpenActionPostMessage = ActionPostData.isOpenActionPostMessage;\r\n\r\n\tconst dragOptions = React.useMemo(\r\n\t\t() => ({\r\n\t\t\tmoveMenuItemText: \"Move\",\r\n\t\t\tcloseMenuItemText: \"Close\",\r\n\t\t\tmenu: ContextualMenu\r\n\t\t}),\r\n\t\t[]\r\n\t);\r\n\tconst modalProps = React.useMemo(\r\n\t\t() => ({\r\n\t\t\tisBlocking: props.blockScreen ?? true,\r\n\t\t\tstyles: modalPropsStyles,\r\n\t\t\tdragOptions: props.draggable ? dragOptions : undefined\r\n\t\t}),\r\n\t\t[props]\r\n\t);\r\n\r\n\tconst dialogContentProps = React.useMemo(\r\n\t\t() => ({\r\n\t\t\ttype: DialogType.close,\r\n\t\t\ttitle: props.title,\r\n\t\t\tsubText: props.text\r\n\t\t}),\r\n\t\t[props.title, props.text]\r\n\t);\r\n\r\n\tconst onReturn = () => {\r\n\t\tServiceHub.appManagementAPI.navigate(ApplicationRoutePaths.root());\r\n\t\tdispatch(setIsOpenActionPostMessage(false));\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 \r\n option.value.toString())}\r\n >\r\n \r\n \r\n {selectedOptions.map((option) => {\r\n const [firstPart, secondPart] = option.text.split('<');\r\n return (\r\n {\r\n e.preventDefault(); // Prevent default link behavior\r\n removeItem(e, option.key);\r\n }}\r\n >\r\n
{`${firstPart}`}
\r\n {secondPart ?
{`<${secondPart}`}
: null}\r\n \r\n );\r\n })}\r\n
\r\n {buttonText ? (\r\n {buttonText}\r\n ) : (\r\n changeText(e.target.value)}\r\n placeholder={placeholder ?? undefined}\r\n ref={tagPickerInputControl}\r\n />\r\n )}\r\n
\r\n {children}\r\n \r\n
\r\n \r\n );\r\n};","import * as React from \"react\";\r\nimport {\r\n TagPicker,\r\n TagPickerInput,\r\n TagPickerControl,\r\n TagPickerProps,\r\n TagPickerGroup,\r\n DropdownProps,\r\n} from \"@fluentui/react-components\";\r\nimport { Tag, Avatar, Field } from \"@fluentui/react-components\";\r\n\r\ninterface TagProps {\r\n onOptionSelectItem: (selectedOptions: string[]) => void;\r\n ref?: any;\r\n placeholder?: string | undefined;\r\n ariaLabel?: string | undefined;\r\n}\r\nexport const AddTagPickerDropdown: React.FC = ({ ariaLabel, placeholder, onOptionSelectItem }) => {\r\n const [selectedOptions, setSelectedOptions] = React.useState([]);\r\n const [inputValue, setInputValue] = React.useState(\"\");\r\n\r\n const onOptionSelect: TagPickerProps[\"onOptionSelect\"] = (_, data) => {\r\n const newSelectedOptions = data.selectedOptions;\r\n setSelectedOptions(newSelectedOptions);\r\n onOptionSelectItem(newSelectedOptions);\r\n };\r\n\r\n const handleChange = (event: React.ChangeEvent) => {\r\n setInputValue(event.currentTarget.value);\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === \"Enter\" && inputValue && !selectedOptions.includes(inputValue)) {\r\n const newSelectedOptions = [...selectedOptions, inputValue];\r\n setInputValue(\"\");\r\n setSelectedOptions(newSelectedOptions);\r\n onOptionSelectItem(newSelectedOptions);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {selectedOptions.map((option, index) => (\r\n \r\n {option}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import React, { SyntheticEvent, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\r\nimport { useNavigate } from \"react-router\";\r\nimport { CheckboxProps, DropdownOnSearchChangeData, DropdownProps } from \"semantic-ui-react\";\r\n\r\nimport { Button } from \"../../common/button\";\r\nimport { DivEventHandler, InputTextEventHandler, RichTextInput, TextInput } from \"../../common/text\";\r\nimport {\r\n\tFieldRequiredMark,\r\n\tFormActions,\r\n\tFormContainer,\r\n\tFormField,\r\n\tFormHint,\r\n\tFormValidationMessage\r\n} from \"../../common/form\";\r\nimport { Dropdown, TreeViewDropdown } from \"../../common/dropdown\";\r\nimport { ApplicationRoutePaths } from \"../../router\";\r\nimport { ComboBox } from \"../../common/combobox\";\r\nimport { ServiceHub } from \"../../../service\";\r\nimport { CoverImageType } from \"../../../enums\";\r\nimport { NodeFormFieldIds, NodeFormLabels, NodeFormPlaceholders } from \"./node.form.strings\";\r\nimport { useNodeForm, useNodeOwner } from \"../../../hooks\";\r\nimport { CoverImageModal, CoverImagePlaceholders } from \"../image/gallery\";\r\nimport { NodeType } from \"../../../contracts/models/strikeEnums\";\r\nimport { UnauthorizedPage } from \"../page\";\r\nimport { ActionPostMessage } from \"../message/action.post.message\";\r\nimport { setIsOpenActionPostMessage } from \"../../../redux/reducers/nodes\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport Constants from \"../../../constants/Constants\";\r\nimport { FormShimmer, Shimmer } from \"../shimmer\";\r\nimport defaultCoverImage from \"../../../strikeAppLogo.png\"\r\nimport { Toggle } from \"@fluentui/react/lib/Toggle\";\r\nimport { TagPickerDropdown } from \"../tagpicker/TagPicker\";\r\nimport { AddTagPickerDropdown } from \"../tagpicker/AddTagPicker\";\r\n\r\n\r\n\r\n\r\n/**\r\n * Contract for the input props of the NodeForm.\r\n */\r\nexport interface INodeFormProps {\r\n\ttype: NodeType;\r\n\tonSubmit: (event: React.FormEvent) => Promise | void;\r\n}\r\n\r\ninterface DropdownItemProps {\r\n\tkey?: string | any;\r\n\ttext?: React.ReactNode | string | any;\r\n\tvalue?: string | any;\r\n}\r\n\r\n/**\r\n * Dropdown Item interface\r\n */\r\ninterface DropdownItem {\r\n\tid: string;\r\n\ttitle: string;\r\n}\r\n\r\n/**\r\n * Re-usable Article creation form\r\n *\r\n * @returns React.FC\r\n */\r\nexport const NodeForm: React.FC = (props) => {\r\n\t// APIs handled within\r\n\tconst navigate = useNavigate();\r\n\tconst dispatch = useDispatch();\r\n\tconst articleFormService = useRef(ServiceHub.articleForm.start());\r\n\tconst articleDataAPI = useRef(ServiceHub.articleDataAPI.start());\r\n\tconst nodeAPI = useRef(ServiceHub.nodeAPI);\r\n\tconst [parentArticlesCount, setParentArticlesCount] = useState(0);\r\n\tconst notificationRef = useRef(null);\r\n\tconst editorModeRef = useRef(null);\r\n\tconst [selectedOptions, setSelectedOptions] = React.useState([]);\r\n\r\n\t/** tag picker option */\r\n\tconst searchTimeout = useRef(null);\r\n\tconst [filteredSearchTopics, setFilteredSearchTopics] = useState([]);\r\n\tconst notificationShareRef = useRef(null);\r\n\r\n\t/* Tag Picker Topics */\r\n\tconst [currentSearch, setCurrentSearch] = useState(\"\");\r\n\r\n\tconst {\r\n\t\t// Main form state elements\r\n\t\tformData,\r\n\t\tparentArticles,\r\n\t\taddedTopics,\r\n\t\ttopics,\r\n\t\tparentSpaces,\r\n\t\tcoverImageGalleryOpen,\r\n\t\t// Differentiates between New and Edit modes\r\n\t\tcanAccessNodeType,\r\n\t\tcanAddTopics,\r\n\t\tisNewArticle,\r\n\t\tenableModerationMessage,\r\n\t\tarticleCoverImagePreview,\r\n\t\tbodySourceMode,\r\n\t\tvirtualHTML,\r\n\t\thasError,\r\n\t\tcanSubmit,\r\n\t\tvalidation,\r\n\t\t// Loading control state\r\n\t\tsubmitting,\r\n\t\tloading,\r\n\t\tloaded,\r\n\t\tqueryingSpaces,\r\n\t\tspaces,\r\n\t\tisFieldEnabled\r\n\t\t// setAddedTopics\r\n\t} = useNodeForm(props.type);\r\n\tconst isUserOwner = useNodeOwner();\r\n\tconst resolvedNodeOwner = isUserOwner({ Id: parseInt(formData.id), AuthEmail: formData.authorUpn });\r\n\r\n\tconst selectedSpaceItem = useMemo(() => {\r\n\t\tif (!formData.spaceId) return null;\r\n\r\n\t\tconst foundArticle = articleFormService.current.getSpaceById(formData.spaceId);\r\n\r\n\t\tif (!foundArticle || foundArticle === null) return null;\r\n\r\n\t\treturn {\r\n\t\t\tid: formData.spaceId.toString(),\r\n\t\t\ttext: foundArticle.Title\r\n\t\t};\r\n\t}, [formData.spaceId, articleFormService.current, spaces]);\r\n\r\n\tconst submitDisabled = useMemo(() => submitting || loading || !canSubmit, [submitting, loading, canSubmit]);\r\n\r\n\tconst onUpdateParentArticlesList = useCallback(\r\n\t\tasync (query: string) => {\r\n\t\t\tif (!query || query.length === 0 || !validation.spaceId) return;\r\n\r\n\t\t\treturn articleDataAPI.current.searchArticles(formData.spaceId, query).then((data) => {\r\n\t\t\t\tarticleFormService.current.setParentArticlesList(data);\r\n\t\t\t\tsetParentArticlesCount(data.length);\r\n\t\t\t});\r\n\t\t},\r\n\t\t[articleDataAPI, articleFormService, formData.spaceId, validation.spaceId]\r\n\t);\r\n\r\n\tconst onSetStateProp = useCallback(\r\n\t\tfunction (prop: string, value: any) {\r\n\t\t\tarticleFormService.current.setData({\r\n\t\t\t\t...formData,\r\n\t\t\t\t[prop]: value\r\n\t\t\t});\r\n\t\t},\r\n\t\t[articleFormService, formData]\r\n\t);\r\n\r\n\tconst onChange = useCallback(\r\n\t\t(prop: string) => (event: React.FormEvent) => {\r\n\t\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\r\n\t\t\tonSetStateProp(prop, typeof event === \"string\" ? event : event.currentTarget?.value);\r\n\t\t},\r\n\t\t[onSetStateProp]\r\n\t);\r\n\r\n\tconst onChangeGeneric = useCallback(\r\n\t\t(prop: string) => (event: React.FocusEvent) => {\r\n\t\t\tonSetStateProp(prop, typeof event === \"string\" ? event : event.currentTarget.innerText);\r\n\t\t\t// When setting this state, clearing the errors to reprocess them\r\n\t\t\tvirtualHTML.onClearErrors();\r\n\t\t},\r\n\t\t[onSetStateProp, virtualHTML.onClearErrors]\r\n\t);\r\n\r\n\tconst onChangeVirtualHtml = useCallback(\r\n\t\t(prop: string) => (event: React.FormEvent) => {\r\n\t\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\r\n\t\t\tvirtualHTML.onChange(typeof event === \"string\" ? event : event.currentTarget?.value);\r\n\t\t},\r\n\t\t[virtualHTML]\r\n\t);\r\n\r\n\tconst onTypeSearchParentArticles = useCallback(\r\n\t\t(event: SyntheticEvent, data: DropdownOnSearchChangeData) => {\r\n\t\t\tarticleFormService.current.setParentArticleQuery(data.searchQuery);\r\n\r\n\t\t\tif (data.searchQuery && data.searchQuery.length > 0) {\r\n\t\t\t\tonUpdateParentArticlesList(data.searchQuery);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[articleFormService, onUpdateParentArticlesList]\r\n\t);\r\n\r\n\tconst onChangeParentArticleSelection = useCallback(\r\n\t\t(event: SyntheticEvent, data: DropdownProps) => {\r\n\t\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\r\n\t\t\tonSetStateProp(\"parentId\", data?.value ?? null);\r\n\t\t},\r\n\t\t[onSetStateProp]\r\n\t);\r\n\r\n\tconst onTypeSearchTopics = useCallback(\r\n\t\t(event: SyntheticEvent, data: DropdownOnSearchChangeData) => {\r\n\t\t\tarticleFormService.current.setTopicsText(data.searchQuery);\r\n\r\n\t\t\tif ((!topics || topics.length === 0) && data.searchQuery.length > 0) {\r\n\t\t\t\tnodeAPI.current.getNodesAllTopics().then((result) => {\r\n\t\t\t\t\tarticleFormService.current.setTopicsList(result);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t[articleFormService, topics, nodeAPI]\r\n\t);\r\n\r\n\tconst onChangeTopicsSelection = useCallback(\r\n\t\t(event: SyntheticEvent, data: DropdownProps) => {\r\n\t\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\t\t\tlet dropdownItems: Set;\r\n\t\t\tlet resultAddedTopics = [];\r\n\r\n\t\t\tif (Array.isArray(data?.value)) {\r\n\t\t\t\tdropdownItems = new Set(data?.value?.map((item) => item.toString().toUpperCase()) as string[]);\r\n\r\n\t\t\t\t// If any removed item should be removed from Added Topics\r\n\t\t\t\t// Removes the item, if manually included by the end-user\r\n\t\t\t\tif (addedTopics.length > 0 && dropdownItems.entries.length > 0) {\r\n\t\t\t\t\tresultAddedTopics = addedTopics.filter((addedTopic) => dropdownItems.has(addedTopic));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresultAddedTopics = addedTopics;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdropdownItems = new Set([data?.value.toString()]);\r\n\t\t\t}\r\n\r\n\t\t\tarticleFormService.current.setData({\r\n\t\t\t\t...formData,\r\n\t\t\t\ttopics: Array.from(dropdownItems),\r\n\t\t\t\taddedTopics: resultAddedTopics\r\n\t\t\t});\r\n\t\t},\r\n\t\t[articleFormService.current, formData, addedTopics]\r\n\t);\r\n\r\n\tconst onAddTopic = useCallback(\r\n\t\t(event: SyntheticEvent, data: DropdownProps) => {\r\n\t\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\r\n\t\t\tconst dataValue = !data.value ? \"\" : data.value.toString().toUpperCase();\r\n\r\n\t\t\tif (!dataValue || addedTopics.includes(dataValue)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\t// Adds the topic to the Added list, since it is controlled separately\r\n\t\t\tarticleFormService.current.setData({\r\n\t\t\t\t...formData,\r\n\t\t\t\taddedTopics: [...addedTopics, dataValue],\r\n\t\t\t\ttopics: !formData.topics.includes(dataValue) ? [...formData.topics, dataValue] : formData.topics\r\n\t\t\t});\r\n\t\t},\r\n\t\t[articleFormService.current, addedTopics, formData]\r\n\t);\r\n\r\n\r\n\tconst handleTopicChange = (event, data) => {\r\n\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\r\n\t\tconst topicSelector = document.getElementById('form-field-topics');\r\n\t\tif (topicSelector) {\r\n\t\t\ttopicSelector.querySelector('input').value = '';\r\n\t\t}\r\n\t};\r\n\r\n\r\n\tconst handleAddTagPickerSelect = (newTags: string[]) => {\r\n\t\tlet updatedFormDataTopics: string[];\r\n\t\tlet dropdownItems = new Set();\r\n\r\n\t\t// Clear existing added topics from formData.topics\r\n\t\tupdatedFormDataTopics = formData.topics.filter(sourceElement =>\r\n\t\t\t!formData.addedTopics.some(removeElement => sourceElement.toLowerCase() === removeElement.toLowerCase())\r\n\t\t);\r\n\r\n\t\tarticleFormService.current.setData({\r\n\t\t\t...formData,\r\n\t\t\taddedTopics: [],\r\n\t\t\ttopics: Array.from(updatedFormDataTopics),\r\n\t\t});\r\n\r\n\t\t// Adding added and selected topics for formData.topics and formData.addedTopics\r\n\t\tdropdownItems = new Set(newTags.map((item) => item.toUpperCase()));\r\n\t\tconst mergedTopics = new Set([...updatedFormDataTopics, ...dropdownItems]);\r\n\r\n\t\tarticleFormService.current.setData({\r\n\t\t\t...formData,\r\n\t\t\taddedTopics: newTags,\r\n\t\t\ttopics: Array.from(mergedTopics),\r\n\t\t});\r\n\t};\r\n\r\n\tconst onCheck = useCallback(\r\n\t\t(prop: string) => (event: React.FormEvent, data: CheckboxProps) => {\r\n\t\t\tonSetStateProp(prop, data?.checked);\r\n\t\t},\r\n\t\t[articleFormService, formData]\r\n\t);\r\n\r\n\tfunction onOpenCoverImageGallery() {\r\n\t\tarticleFormService.current.setCoverImageGalleryOpen(true);\r\n\t}\r\n\r\n\tfunction onCloseCoverImageGallery() {\r\n\t\tarticleFormService.current.setCoverImageGalleryOpen(false);\r\n\t}\r\n\r\n\tconst onClearSelection = useCallback(\r\n\t\t(prop: string, clearValue: undefined | string | [] = \"\") => {\r\n\t\t\treturn (event: React.MouseEvent) => {\r\n\t\t\t\tonSetStateProp(prop, clearValue);\r\n\t\t\t};\r\n\t\t},\r\n\t\t[onSetStateProp]\r\n\t);\r\n\r\n\tconst onHandleCoverImage = function (event: React.FormEvent) {\r\n\t\tonOpenCoverImageGallery();\r\n\t};\r\n\r\n\tconst onSelectGalleryCoverImage = useCallback(\r\n\t\t(imageId: string | number, imagePath: string) => {\r\n\t\t\tarticleFormService.current.setData({\r\n\t\t\t\t...formData,\r\n\t\t\t\tcoverImageType: CoverImageType.Gallery,\r\n\t\t\t\tcoverImageFile: null,\r\n\t\t\t\tcoverImageMimeType: null,\r\n\t\t\t\tcoverImageSize: null,\r\n\t\t\t\tcoverImagePath: imagePath,\r\n\t\t\t\tcoverImageId: imageId\r\n\t\t\t});\r\n\r\n\t\t\tonCloseCoverImageGallery();\r\n\t\t},\r\n\t\t[formData, articleFormService]\r\n\t);\r\n\r\n\tconst onUploadCoverImage = useCallback(\r\n\t\t(event: React.FormEvent) => {\r\n\t\t\tconst { files } = event.currentTarget;\r\n\r\n\t\t\tif (!files || files.length === 0) return;\r\n\r\n\t\t\tconst fileUnit = files[0];\r\n\t\t\tconst reader: FileReader = new FileReader();\r\n\r\n\t\t\treader.onload = function (this: FileReader, ev: ProgressEvent) {\r\n\t\t\t\tarticleFormService.current.setData({\r\n\t\t\t\t\t...formData,\r\n\t\t\t\t\tcoverImageType: CoverImageType.Upload,\r\n\t\t\t\t\tcoverImageFile: reader.result.toString(),\r\n\t\t\t\t\tcoverImageMimeType: fileUnit.type,\r\n\t\t\t\t\tcoverImageSize: fileUnit.size,\r\n\t\t\t\t\tcoverImagePath: fileUnit.name,\r\n\t\t\t\t\tcoverImageId: \"\"\r\n\t\t\t\t});\r\n\r\n\t\t\t\tonCloseCoverImageGallery();\r\n\t\t\t};\r\n\r\n\t\t\treader.readAsDataURL(fileUnit);\r\n\t\t},\r\n\t\t[formData, articleFormService]\r\n\t);\r\n\r\n\tconst onSelectDefaultCoverImage = useCallback(() => {\r\n\t\t// Use Default Image\r\n\t\tarticleFormService.current.setData({\r\n\t\t\t...formData,\r\n\t\t\tcoverImageType: CoverImageType.Default,\r\n\t\t\tcoverImageFile: null,\r\n\t\t\tcoverImageMimeType: null,\r\n\t\t\tcoverImageSize: null,\r\n\t\t\tcoverImagePath: \"\",\r\n\t\t\tcoverImageId: \"\"\r\n\t\t});\r\n\r\n\t\tif (coverImageGalleryOpen) onCloseCoverImageGallery();\r\n\t}, [formData, articleFormService, coverImageGalleryOpen]);\r\n\r\n\t/**\r\n\t * Sets the Article Body writing mode,\r\n\t * based on the a currentTarget.value\r\n\t *\r\n\t * @param event\r\n\t */\r\n\tfunction onSetBodySourceMode(event: React.FormEvent) {\r\n\t\tconst value = event.currentTarget.value === \"true\";\r\n\r\n\t\tarticleFormService.current.setBodySourceMode(value);\r\n\r\n\t\teditorModeRef.current.focus();\r\n\t}\r\n\r\n\t/**\r\n\t * Cancels the edit of the form,\r\n\t * resetting states.\r\n\t *\r\n\t * @param event The event triggering the action.\r\n\t * @returns Navigation to another route\r\n\t */\r\n\tfunction onCancel(event: React.FormEvent) {\r\n\t\tarticleFormService.current.reset();\r\n\t\tarticleFormService.current.resetData();\r\n\t\treturn navigate(ApplicationRoutePaths.dashboard());\r\n\t}\r\n\r\n\tfunction onActionPostClose() {\r\n\t\tdispatch(setIsOpenActionPostMessage(false));\r\n\t}\r\n\r\n\tconst renderLoading = () => {\r\n\t\treturn ;\r\n\t};\r\n\tconst renderUnauthorized = () => {\r\n\t\treturn ;\r\n\t};\r\n\r\n\tconst onSearch = async () => {\r\n\t\tif (!currentSearch || currentSearch.trim() === '') {\r\n\t\t\tsetFilteredSearchTopics([]);\r\n\t\t\tconst uniqueSelectedItems = Array.from(\r\n\t\t\t\tnew Map(topics.map(item => [item.key, item])).values()\r\n\t\t\t);\r\n\t\t\t// If currentSearch is blank, set filteredSearchTopics to all topics\r\n\t\t\tsetFilteredSearchTopics(uniqueSelectedItems);\r\n\t\t\tsetCurrentSearch(\"\");\r\n\t\t} else {\r\n\t\t\tconst seen = new Set();\r\n\t\t\tconst result = topics.filter((item: any) => {\r\n\t\t\t\tconst isMatch = item.text.toLowerCase().includes(currentSearch.toLowerCase());\r\n\t\t\t\tif (isMatch && !seen.has(item.value)) {\r\n\t\t\t\t\tseen.add(item.value);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t\tsetFilteredSearchTopics(result);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tasync function delayedSearch() {\r\n\t\t\t// Forcing a clean-up before a new timeout, since\r\n\t\t\t// It generates debounce effect\r\n\t\t\tif (searchTimeout.current !== null) clearTimeout(searchTimeout.current);\r\n\r\n\t\t\tsearchTimeout.current = setTimeout(() => {\r\n\t\t\t\tonSearch();\r\n\t\t\t}, 400);\r\n\t\t}\r\n\r\n\t\t// Pre-processes the query, if specified\r\n\t\tdelayedSearch();\r\n\t}, [currentSearch]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst seen = new Set();\r\n\t\tconst allTopics = topics.filter((item: any) => {\r\n\t\t\tconst isMatch = item.value.toLowerCase();\r\n\t\t\tif (isMatch && !seen.has(item.value)) {\r\n\t\t\t\tseen.add(item.value);\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\tsetFilteredSearchTopics(allTopics);\r\n\t}, [topics]);\r\n\r\n\t/**\r\n\t * Prepares the Form Validation\r\n\t * additional properties, including virtualization\r\n\t * steps.\r\n\t */\r\n\tconst formValidation = useMemo(() => {\r\n\t\tconst additionalErrors = virtualHTML.erroredElements;\r\n\t\tconst additionalErrorKeys = additionalErrors?.map((error) => error.elementType) ?? [];\r\n\r\n\t\tconst propNames = [...Object.keys(validation)];\r\n\t\tconst propValidation = { ...validation };\r\n\t\tconst propMessages = { ...NodeFormLabels.validation };\r\n\r\n\t\tif (additionalErrorKeys.length) {\r\n\t\t\tconst additionalErrorsMap = additionalErrors.reduce((acc, error) => {\r\n\t\t\t\tacc[error.elementType] = error.error;\r\n\t\t\t\treturn acc;\r\n\t\t\t}, {});\r\n\r\n\t\t\tadditionalErrorKeys.forEach((addErrorKey) => {\r\n\t\t\t\t// When error prop is not yet added\r\n\t\t\t\tif (!propNames.includes(addErrorKey)) {\r\n\t\t\t\t\tpropNames.push(addErrorKey);\r\n\t\t\t\t\tpropValidation[addErrorKey] = false;\r\n\t\t\t\t\tpropMessages[addErrorKey] = additionalErrorsMap[addErrorKey];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\thide: canSubmit,\r\n\t\t\tpropNames,\r\n\t\t\tpropValidation,\r\n\t\t\tpropMessages\r\n\t\t};\r\n\t}, [canSubmit, validation, virtualHTML.erroredElements]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (parentArticlesCount > 0 && notificationRef.current) {\r\n\t\t\tnotificationRef.current.focus();\r\n\t\t}\r\n\t}, [parentArticlesCount]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tconst parentSpacesInputElement = document.querySelector(\"#parentId input\");\r\n\r\n\t\tconst topicInputElement = document.querySelector(\"#topics input\");\r\n\r\n\t\tif (parentSpacesInputElement) {\r\n\t\t\tparentSpacesInputElement.setAttribute(\"title\", NodeFormPlaceholders[props.type].parent);\r\n\t\t}\r\n\r\n\t\tif (topicInputElement) {\r\n\t\t\ttopicInputElement.setAttribute(\"title\", NodeFormPlaceholders[props.type].topics);\r\n\t\t}\r\n\t}, [loaded]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (notificationShareRef.current) {\r\n\t\t\tnotificationShareRef.current.focus();\r\n\t\t}\r\n\t}, [filteredSearchTopics]);\r\n\r\n\tconst selectParentSpacSelection = (item: DropdownItem) => {\r\n\t\tconst landingInput = document.getElementById('selectParentSpaceInput');\r\n\t\tlandingInput.setAttribute('aria-label', `Option Selected ${item.title}`);\r\n\t\tlandingInput.setAttribute('value', ``);\r\n\t\tlandingInput.setAttribute('placeholder', ``);\r\n\t\tlandingInput.setAttribute('role', `option`);\r\n\t\tlandingInput.focus();\r\n\t}\r\n\r\n\tif ((isNewArticle && canAccessNodeType) || canAccessNodeType || (formData.authorUpn !== \"\" && resolvedNodeOwner))\r\n\t\treturn (\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\t) : isNewArticle ? (\r\n\t\t\t\t\t\t\t\tNodeFormLabels.top[props.type].pageTitleCreate\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\tNodeFormLabels.top[props.type].pageTitleEdit\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tuseModerationAlert={loaded && !loading && enableModerationMessage}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{!loaded || loading ? (\r\n\t\t\t\t\t\t\trenderLoading()\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\t{isFieldEnabled(NodeFormFieldIds.space) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\tarticleFormService.current.setExpandedSpaceById(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt(item.id),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tisExpanded\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tselectedItem={selectedSpaceItem}\r\n\t\t\t\t\t\t\t\t\t\t\tdisabled={queryingSpaces}\r\n\t\t\t\t\t\t\t\t\t\t\terror={formData.spaceId === \"\" && hasError}\r\n\t\t\t\t\t\t\t\t\t\t\tariaRequired\r\n\t\t\t\t\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\t\t\t\t\tonChange={selectParentSpacSelection}\r\n\t\t\t\t\t\t\t\t\t\t\tinputId=\"selectParentSpaceInput\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.parent) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{/* Narrator to announce the number of items filtered and displayed in the drop down */}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{parentArticlesCount > 1 ? `. ${parentArticlesCount} articles found.` : `. ${parentArticlesCount} article found.`}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.title) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.body) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{NodeFormLabels.actions.previewMode}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{NodeFormLabels.actions.sourceMode}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{bodySourceMode ? 'Source mode selected' : 'Preview mode selected'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvirtualHTML.onSyncOriginal(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.currentTarget.innerHTML,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(newContent: string) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSetStateProp(\"body\", newContent);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{NodeFormLabels.hints.map((hint, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t
{hint}
\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.topics) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{`. ${filteredSearchTopics.length} ${filteredSearchTopics.length === 1 ? \"result found.\" : \"results found.\"}`}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.topics) && props.type === NodeType.Kbentry ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.selectCover) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{coverImageGalleryOpen ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{isFieldEnabled(NodeFormFieldIds.selectedCoverView) ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t{/* {isFieldEnabled(NodeFormFieldIds.private) ? (\r\n\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) : null} */}\r\n\r\n\t\t\t\t\t\t\t\t{!isNewArticle ?\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t, checked: boolean) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tonSetStateProp(\"sendEmailNotification\", checked);\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t

**Note: Please send an email to the audience only for major updates in content, not for minor updates like text changes.

\r\n\t\t\t\t\t\t\t\t\t
: null}\r\n\r\n\t\t\t\t\t\t\t\t\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\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\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\tRemember To…\r\n\t\t\t\t\t\t

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

Keep it relevant.

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

\r\n\t\t\t\t\t\t\tMake sure you've selected the correct space to post in so your content is seen by the\r\n\t\t\t\t\t\t\tappropriate audience.\r\n\t\t\t\t\t\t

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

Keep it clear and concise.

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

\r\n\t\t\t\t\t\t\tProvide enough details so that other users will be able to better help and engage with you.\r\n\t\t\t\t\t\t

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

Avoid duplicate posts.

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

\r\n\t\t\t\t\t\t\tSearch for your questions or content to see if any answers or related posts have already\r\n\t\t\t\t\t\t\tbeen provided.\r\n\t\t\t\t\t\t

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

Be polite.

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

\r\n\t\t\t\t\t\t\tRefrain from using unnecessary formatting or bad language and be respectful of others in the\r\n\t\t\t\t\t\t\tcommunity.\r\n\t\t\t\t\t\t

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

Embedded content.

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

\r\n\t\t\t\t\t\t\tYou would better experience with <iframe>, <embed>, or \r\n\t\t\t\t\t\t\t<video>, by using Source Edit mode tab.\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\r\n\t\t\t\r\n\t\t);\r\n\r\n\tif (\r\n\t\tloaded &&\r\n\t\t!loading &&\r\n\t\t!canAccessNodeType &&\r\n\t\t(isNewArticle ||\r\n\t\t\t(formData.authorUpn !== \"\" && !isUserOwner({ Id: parseInt(formData.id), AuthEmail: formData.authorUpn })))\r\n\t) {\r\n\t\treturn renderUnauthorized();\r\n\t}\r\n};\r\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { ServiceHub } from \"../../../service\";\r\n\r\n/**\r\n * Contract for the Rich Text component.\r\n */\r\nexport interface IRichTextNodeProps {\r\n\tchildren: any | string;\r\n}\r\n\r\n/**\r\n * Reusable component to render rich text html\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const RichTextNode: React.FC = (props) => {\r\n\tconst contrastDetectorService = useRef(ServiceHub.contrastDetection.start());\r\n\tconst [hasRendered, setHasRendered] = useState(false);\r\n\r\n\t/**\r\n\t * Checks and individual element's contrasting correctly\r\n\t * against a foreground color.\r\n\t */\r\n\tfunction checkElementContrast(element: HTMLElement) {\r\n\t\tlet containerElement = document.querySelector(\".strike-rich-text-node\");\r\n\t\tlet backgroundColor: string;\r\n\t\tlet correctiveColor: string;\r\n\r\n\t\t// container element not yet found\r\n\t\tif (containerElement === null) {\r\n\t\t\tcontainerElement = document.body;\r\n\t\t\tconst computedStyleMap = containerElement.computedStyleMap();\r\n\t\t\tbackgroundColor = computedStyleMap.get(\"background-color\").toString();\r\n\t\t\tcorrectiveColor = computedStyleMap.get(\"color\").toString();\r\n\t\t} else {\r\n\t\t\tconst computedStyleMap = window.getComputedStyle(document.body);\r\n\t\t\tbackgroundColor = computedStyleMap.backgroundColor;\r\n\t\t\tcorrectiveColor = computedStyleMap.color;\r\n\t\t}\r\n\r\n\t\t// If any failure is detected, auto-correction is applied based on an element's correction color\r\n\t\tcontrastDetectorService.current.checkElementColorContrast(element, backgroundColor, correctiveColor);\r\n\t}\r\n\r\n\t/**\r\n\t * Identifies elements while iterating an HTMLCollection,\r\n\t * which might need specific contrast ratio check\r\n\t */\r\n\tfunction iterateContent(elements: HTMLCollection) {\r\n\t\t// Step 0: Contrast color checking the components\r\n\t\tfor (let i = 0; i < elements.length; i++) {\r\n\t\t\tconst child = elements[i] as HTMLElement;\r\n\r\n\t\t\tif (child instanceof HTMLElement && child.style.color && (!child.style.backgroundColor || child.style.backgroundColor === \"\")) {\r\n\t\t\t\tcheckElementContrast(child);\r\n\t\t\t}\r\n\r\n\t\t\tif (child.children && child.children.length > 0) {\r\n\t\t\t\titerateContent(child.children);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Pre-processes and resolves any pending children processing,\r\n\t * before displaying to the end-user.\r\n\t */\r\n\tconst resolvedChildren = useMemo(() => {\r\n\t\tif (Array.isArray(props.children)) {\r\n\t\t\treturn props.children.filter((line) => {\r\n\t\t\t\tif (line.trim() !== \"\") return line;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (props.children === \"\") {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\t// Contrast detection mechanism application\r\n\t\tconst parser = new DOMParser();\r\n\t\tconst htmlString = props.children;\r\n\t\tconst doc = parser.parseFromString(htmlString, \"text/html\");\r\n\t\tconst divElement = doc.body; // Get the inner element\r\n\r\n\t\t// Runs through the content, checking for text\r\n\t\t// editor aspects and subjects which might need real-time adjustment\r\n\t\titerateContent(divElement.children);\r\n\r\n\t\tif (!hasRendered) {\r\n\t\t\tsetHasRendered(true);\r\n\t\t}\r\n\r\n\t\treturn divElement.innerHTML;\r\n\t}, [props.children, hasRendered]);\r\n\r\n\t// Prepares the main aria-label content\r\n\tconst ariaLabel = useMemo(() => {\r\n\t\treturn `Body Section content: ${resolvedChildren}`;\r\n\t}, [resolvedChildren]);\r\n\r\n\tuseEffect(() => {\r\n\t\t/**\r\n\t\t * Handles the functions to be triggered when the theme is changed by the user.\r\n\t\t *\r\n\t\t * @param param0\r\n\t\t */\r\n\t\tconst handleChangeThemeColor = ({ matches }) => {\r\n\t\t\tif (matches) {\r\n\t\t\t\t// Switched to dark mode\r\n\t\t\t\tsetHasRendered(false);\r\n\t\t\t} else {\r\n\t\t\t\t// Switched to light mode\r\n\t\t\t}\r\n\r\n\t\t\tsetHasRendered(false);\r\n\t\t};\r\n\r\n\t\t// Instantiates a theme color checker monitor\r\n\t\twindow.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", handleChangeThemeColor);\r\n\r\n\t\treturn () => {\r\n\t\t\t// Removes the theme checker monitor\r\n\t\t\twindow.matchMedia(\"(prefers-color-scheme: dark)\").removeEventListener(\"change\", handleChangeThemeColor);\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn resolvedChildren ? (\r\n\t\t\r\n\t) : null;\r\n};\r\n","import React from \"react\";\r\nimport { CommandBar, DirectionalHint, IButtonProps, ICommandBarItemProps } from \"@fluentui/react\";\r\n\r\n/**\r\n * Contract for the input props of the Standard Contextual Menu.\r\n */\r\nexport interface IContextMenuProps {\r\n\titems: ICommandBarItemProps[];\r\n\tariaLabel?: undefined | string;\r\n\ttitle?: undefined | string;\r\n}\r\n\r\n/**\r\n * Strike Standard Context Menu, which allows\r\n * to wrap and single-way apply customization\r\n * to Fluent UI's Command Bar.\r\n *\r\n * @param props IContextMenuProps\r\n * @returns React.FC\r\n */\r\nexport const ContextMenu: React.FC = (props) => {\r\n\tconst overflowProps: IButtonProps = {\r\n\t\tariaLabel: props?.ariaLabel ?? \"Actions\",\r\n\t\ttitle: props?.title ?? \"Actions\",\r\n\t\tmenuProps: {\r\n\t\t\titems: undefined,\r\n\t\t\tdirectionalHint: DirectionalHint.bottomRightEdge\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t undefined}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { authSelectors } from \"../../redux/selectors/auth\";\r\nimport {\r\n\tsetAccessRequested,\r\n\tsetAccessRequesting,\r\n\tsetCanAccessCreateArticleComponents,\r\n\tsetIsSuperAdmin,\r\n\tsetSuperAccessRequested,\r\n\tsetSuperAccessRequesting\r\n} from \"../../redux/reducers/auth\";\r\nimport store from \"../../redux/store\";\r\nimport { appManagementSelectors } from \"../../redux/selectors/appManagement\";\r\n\r\n/**\r\n * Defines the return types for Super Admin Access Control hook.\r\n */\r\nexport interface ISuperAccessControlInfo {\r\n\tisSuperAdmin: boolean;\r\n\tuserId: string;\r\n\trequesting: boolean;\r\n\trequested: boolean;\r\n}\r\n\r\n/**\r\n * Checks Super Admin role functions.\r\n *\r\n * @returns Super Admin Access Control object result.\r\n */\r\nexport const useSuperAdminAccessControl = (): ISuperAccessControlInfo => {\r\n\tconst userId = useSelector(authSelectors.getUserId);\r\n\tconst isSuperAdmin = useSelector(authSelectors.getIsSuperAdminAccess);\r\n\tconst requestingSuperAccess = useSelector(authSelectors.getSuperAccessRequesting);\r\n\tconst requestedSuperAccess = useSelector(authSelectors.getSuperAccessRequested);\r\n\r\n\treturn { isSuperAdmin, userId, requesting: requestingSuperAccess, requested: requestedSuperAccess };\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ContextualMenu, Dialog, DialogFooter, DialogType } from \"@fluentui/react\";\r\nimport { appManagementSelectors } from \"../../../redux/selectors/appManagement\";\r\nimport store from \"../../../redux/store\";\r\nimport { setMessageOpen } from \"../../../redux/reducers/appManagement\";\r\nimport { MessageType } from \"../../../enums\";\r\nimport { Button } from \"../button\";\r\n\r\nconst modalPropsStyles = { main: { maxWidth: 450 } };\r\n\r\n/**\r\n * Global Message component contract.\r\n */\r\nexport interface IMessageProps {\r\n\tblockScreen?: undefined | boolean;\r\n\tdraggable?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Re-usable global message component.\r\n * Operates its state by selecting the Redux state layer.\r\n * Activation should be done via dispatch.\r\n *\r\n * @param props IMessageProps\r\n * @returns React.FC\r\n */\r\nexport const Message: React.FC = (props) => {\r\n\t// const [hideDialog, { toggle: toggleHideDialog }] = useBoolean(true);\r\n\tconst dragOptions = React.useMemo(\r\n\t\t() => ({\r\n\t\t\tmoveMenuItemText: \"Move\",\r\n\t\t\tcloseMenuItemText: \"Close\",\r\n\t\t\tmenu: ContextualMenu\r\n\t\t}),\r\n\t\t[]\r\n\t);\r\n\tconst modalProps = React.useMemo(\r\n\t\t() => ({\r\n\t\t\tisBlocking: props.blockScreen ?? true,\r\n\t\t\tstyles: modalPropsStyles,\r\n\t\t\tdragOptions: props.draggable ? dragOptions : undefined\r\n\t\t}),\r\n\t\t[props]\r\n\t);\r\n\r\n\tconst messageText = useSelector(appManagementSelectors.getMessageText);\r\n\tconst messageOpen = useSelector(appManagementSelectors.getMessageOpen);\r\n\tconst messageIsHtml = useSelector(appManagementSelectors.getMessageIsHtml);\r\n\tconst messageType = useSelector(appManagementSelectors.getMessageType);\r\n\r\n\tconst messageTitle = useMemo(() => {\r\n\t\tswitch (messageType) {\r\n\t\t\tcase MessageType.info: {\r\n\t\t\t\treturn \"Info\";\r\n\t\t\t}\r\n\t\t\tcase MessageType.error: {\r\n\t\t\t\treturn \"Error\";\r\n\t\t\t}\r\n\t\t\tcase MessageType.success: {\r\n\t\t\t\treturn \"Success\";\r\n\t\t\t}\r\n\t\t\tdefault:\r\n\t\t\t\treturn \"Warning\";\r\n\t\t}\r\n\t}, [messageType]);\r\n\r\n\tconst dialogContentProps = React.useMemo(\r\n\t\t() => ({\r\n\t\t\ttype: DialogType.close,\r\n\t\t\ttitle: messageTitle,\r\n\t\t\tsubText: messageText\r\n\t\t}),\r\n\t\t[messageTitle, messageText]\r\n\t);\r\n\r\n\tconst onClose = () => {\r\n\t\tstore.dispatch(setMessageOpen(false));\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\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t {likeNumber}{\" \"}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{/* Reply functionality disabled until next PR */}\r\n\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\t
  • \r\n\t\t\t\t\t\t{props.nodeType ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : null}\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","import React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport { DivEventHandler, InputTextEventHandler, RichTextInput } from \"../../text\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { commentsSelectors } from \"../../../../redux/selectors/comments\";\r\nimport {\r\n\tsetAddCommentToList,\r\n\tsetCommentText,\r\n\tsetFormSubmitting,\r\n\tsetReplyItemExpandedById,\r\n\tsetToggleCommentForm,\r\n\tsetBodySourceMode,\r\n\tsetToggleCommentQuestionForm\r\n} from \"../../../../redux/reducers/comments\";\r\nimport { NodeActionTypes } from \"../../../../contracts/models/strikeEnums\";\r\nimport { IArticleFormData } from \"../../../../contracts/article/articleForm\";\r\nimport { ServiceHub } from \"../../../../service\";\r\nimport { useAuthUser, useHtmlVirtualization } from \"../../../../hooks\";\r\nimport { IStrikeNodesComments } from \"../../../../contracts/models\";\r\nimport { FormActions } from \"../../form\";\r\n\r\n/**\r\n * Properties scope of Node Activity Comment form.\r\n */\r\nexport interface INodeActivityCommentFormProps {\r\n\theadlineText: string;\r\n\tbuttonText: string;\r\n\tid?: undefined | string | number;\r\n\tparentId?: number;\r\n\tmainComment?: boolean;\r\n\tactionType?: NodeActionTypes;\r\n\ttabIndex?: undefined | number;\r\n\tonCancel?: undefined | (() => Promise);\r\n\tisNew?: undefined | boolean;\r\n\tshadow?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Comment Form component.\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const NodeActivityCommentForm: React.FC = ({ shadow = false, ...props }) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst commentSvc = useRef(ServiceHub.commentAPI.start());\r\n\tconst bodySourceMode = useSelector(commentsSelectors.getFormBodySourceMode);\r\n\tconst expandedId = useSelector(commentsSelectors.getReplyExpandedId);\r\n\tconst commentText = useSelector(commentsSelectors.getCommentText);\r\n\tconst isOpenToggleForm = useSelector(commentsSelectors.getToggledCommentForm);\r\n\tconst isOpenToggleQuestionForm = useSelector(commentsSelectors.getToggledCommentQuestionForm);\r\n\tconst nodeId = useSelector(commentsSelectors.getNodeId);\r\n\tconst previousNodeId = useRef(nodeId);\r\n\tconst parentId = props.parentId?.toString() ?? nodeId;\r\n\tconst userData = useAuthUser();\r\n\tconst virtualHtml = useHtmlVirtualization(commentText);\r\n\tconst [preprocessedHtmlBody, setPreprocessedHtmlBody] = useState(null);\r\n\tconst editorModeRef = useRef(null);\r\n\tconst getPreprocessedHtml = useCallback(\r\n\t\t(htmlData: string) =>\r\n\t\t\tServiceHub.nodeAPI.prepareBodyImages(htmlData, (result) => {\r\n\t\t\t\tsetPreprocessedHtmlBody(result);\r\n\t\t\t}),\r\n\t\t[]\r\n\t);\r\n\r\n\t// Tracks the edited HTML and renders it with proper images displaying\r\n\tuseEffect(() => {\r\n\t\tif (!preprocessedHtmlBody) {\r\n\t\t\tgetPreprocessedHtml(virtualHtml.virtualHtml);\r\n\t\t}\r\n\t}, [preprocessedHtmlBody, virtualHtml.virtualHtml]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Checks nodeId changed, invoke the update commentText.\r\n\t\tif (nodeId !== previousNodeId.current) {\r\n\t\t\tpreviousNodeId.current = nodeId;\r\n\t\t\tvirtualHtml.onClearAll();\r\n\t\t}\r\n\t}, [nodeId, previousNodeId.current]);\r\n\r\n\tconst submitDisabled = useSelector(commentsSelectors.getPostButtonDisabled);\r\n\r\n\tconst onAddedComment = useCallback(\r\n\t\t(addedComment: any) => {\r\n\t\t\tdispatch(\r\n\t\t\t\tsetAddCommentToList({\r\n\t\t\t\t\tAnswerAccepted: false,\r\n\t\t\t\t\tCommentBy: userData.userPrincipalName,\r\n\t\t\t\t\tCommentByEmail: userData.userEmail,\r\n\t\t\t\t\tCommentByName: userData.userDisplayName,\r\n\t\t\t\t\tCommentId: parseInt(addedComment.Id.toString()),\r\n\t\t\t\t\tNodeId: parseInt(addedComment.ParentId.toString()),\r\n\t\t\t\t\tParentId: parseInt(addedComment.ParentId.toString()),\r\n\t\t\t\t\tTitle: addedComment.Body,\r\n\t\t\t\t\tCommentOn: new Date().toISOString().replace(\"Z\", \"\"), // TODO: Review the use of UTC time\r\n\t\t\t\t\tType: props?.actionType,\r\n\t\t\t\t\tLikeByUsers: \"\",\r\n\t\t\t\t\tLikeCount: 0\r\n\t\t\t\t} as IStrikeNodesComments)\r\n\t\t\t);\r\n\r\n\t\t\t// In case the added node is of type comment/answer\r\n\t\t\t// Scrolls to the added element\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tdispatch(setCommentText(\"\"));\r\n\r\n\t\t\t\t// Apply the following scroll functionality to those CommentToAnswer and AnswerToComment NodeActionTypes\r\n\t\t\t\tif ([NodeActionTypes.CommentToAnswer, NodeActionTypes.AnswerToComment].includes(props?.actionType)) {\r\n\t\t\t\t\tdispatch(\r\n\t\t\t\t\t\tsetReplyItemExpandedById(\r\n\t\t\t\t\t\t\tprops.parentId.toString() === expandedId ? null : props.parentId.toString()\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Apply the following scroll functionality to those Comment and Answer NodeActionTypes\r\n\t\t\t\tif ([NodeActionTypes.Comment, NodeActionTypes.Answer].includes(props?.actionType)) {\r\n\t\t\t\t\tif (isOpenToggleForm) {\r\n\t\t\t\t\t\tdispatch(setToggleCommentForm());\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isOpenToggleQuestionForm) {\r\n\t\t\t\t\t\tdispatch(setToggleCommentQuestionForm());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 150);\r\n\t\t},\r\n\t\t[userData, props?.actionType, expandedId]\r\n\t);\r\n\r\n\tconst onChangeCommentText = useCallback(\r\n\t\t(event: React.FormEvent) => {\r\n\t\t\tif (typeof event?.preventDefault === \"function\") event.preventDefault();\r\n\r\n\t\t\tvirtualHtml.onChange(typeof event === \"string\" ? event : event.currentTarget?.value);\r\n\t\t\tdispatch(setCommentText(typeof event === \"string\" ? event : event.currentTarget.value));\r\n\t\t},\r\n\t\t[virtualHtml.onChange]\r\n\t);\r\n\r\n\tconst onChangeCommentTextDiv = useCallback((event: React.FocusEvent) => {\r\n\t\tdispatch(setCommentText(typeof event === \"string\" ? event : event.currentTarget.innerText));\r\n\t}, []);\r\n\r\n\t/**\r\n\t * query Model to pass Form Comment Data\r\n\t */\r\n\tfunction getQueryFormCommentData(rootId: string, _parentId: string, body: string): IArticleFormData {\r\n\t\tconst response = {\r\n\t\t\tid: !props?.isNew && props?.id ? `${props.id}` : null,\r\n\t\t\tparentId: _parentId,\r\n\t\t\tcommentNodeId: rootId,\r\n\t\t\tbody: body\r\n\t\t};\r\n\r\n\t\treturn response as IArticleFormData;\r\n\t}\r\n\r\n\tconst onSubmitComment = useCallback(\r\n\t\t(event) => {\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tdispatch(setFormSubmitting(true));\r\n\r\n\t\t\tlet commentFormData: IArticleFormData = getQueryFormCommentData(nodeId, parentId, commentText);\r\n\r\n\t\t\tlet serviceCall: Promise;\r\n\r\n\t\t\tswitch (props.actionType) {\r\n\t\t\t\tcase NodeActionTypes.Comment: {\r\n\t\t\t\t\tserviceCall = ServiceHub.articleDataAPI.start().createComment(commentFormData);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase NodeActionTypes.Answer: {\r\n\t\t\t\t\tserviceCall = ServiceHub.articleDataAPI.start().createAnswer(commentFormData);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase NodeActionTypes.CommentToAnswer: {\r\n\t\t\t\t\tserviceCall = ServiceHub.articleDataAPI.start().createCommentToAnswer(commentFormData);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase NodeActionTypes.AnswerToComment: {\r\n\t\t\t\t\tserviceCall = ServiceHub.articleDataAPI.start().createAnswerToComment(commentFormData);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tdefault: {\r\n\t\t\t\t\t// serviceCall = ServiceHub.articleDataAPI.start().createNode(commentFormData, props.nodeType);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tserviceCall\r\n\t\t\t\t.then((added: any) => {\r\n\t\t\t\t\tif (!added.Id) {\r\n\t\t\t\t\t\tthrow Error(\"An error occurred while posting the comment\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (props.isNew) {\r\n\t\t\t\t\t\tonAddedComment(added);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t(async () => {\r\n\t\t\t\t\t\t\tawait commentSvc.current.setCommentById(added.Id, {\r\n\t\t\t\t\t\t\t\tTitle: added.Body\r\n\t\t\t\t\t\t\t} as IStrikeNodesComments);\r\n\t\t\t\t\t\t\tawait commentSvc.current.resetEditingIds();\r\n\t\t\t\t\t\t\tdispatch(setCommentText(\"\"));\r\n\t\t\t\t\t\t\tvirtualHtml.onClearAll();\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.catch((ex) => {\r\n\t\t\t\t\tServiceHub.message.error(ex);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tdispatch(setFormSubmitting(false));\r\n\t\t\t\t});\r\n\r\n\t\t\treturn;\r\n\t\t},\r\n\t\t[nodeId, parentId, commentText]\r\n\t);\r\n\r\n\tconst onCancel = () => {\r\n\t\tdispatch(setCommentText(\"\"));\r\n\t\t// Apply the following scroll functionality to those CommentToAnswer and AnswerToComment NodeActionTypes\r\n\t\tif ([NodeActionTypes.CommentToAnswer, NodeActionTypes.AnswerToComment].includes(props?.actionType)) {\r\n\t\t\tdispatch(\r\n\t\t\t\tsetReplyItemExpandedById(props.parentId.toString() === expandedId ? null : props.parentId.toString())\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Apply the following scroll functionality to those Comment and Answer NodeActionTypes\r\n\t\tif ([NodeActionTypes.Comment, NodeActionTypes.Answer].includes(props?.actionType)) {\r\n\t\t\tdispatch(setToggleCommentForm()); // this is needed only for main comment/answers\r\n\t\t}\r\n\r\n\t\tif (typeof props.onCancel === \"function\") {\r\n\t\t\tprops.onCancel();\r\n\t\t}\r\n\t};\r\n\r\n\tconst onSetBodySourceMode = (sourceMode: boolean) => {\r\n\t\tdispatch(setBodySourceMode(sourceMode))\r\n\t\teditorModeRef.current.focus();\r\n\t}\r\n\r\n\tconst editModeAriaLabel =\r\n\t\t(props?.actionType === NodeActionTypes.Answer\r\n\t\t\t? \"Answer\"\r\n\t\t\t: props?.actionType === NodeActionTypes.Comment\r\n\t\t\t\t? \"Comment\"\r\n\t\t\t\t: \"Reply\") + \" edit mode selector\";\r\n\r\n\tconst formAriaLabel =\r\n\t\tprops?.actionType === NodeActionTypes.Answer\r\n\t\t\t? \"New Answer\"\r\n\t\t\t: props?.actionType === NodeActionTypes.Comment\r\n\t\t\t\t? \"New Comment\"\r\n\t\t\t\t: \"New Reply\";\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
    {/*aria-label={editModeAriaLabel} */}\r\n\t\t\t\t\t\t onSetBodySourceMode(false)}\r\n\t\t\t\t\t\t\tclassName={`${!bodySourceMode ? \"selected\" : \"\"}`}\r\n\t\t\t\t\t\t\ttitle={`Preview mode ${!bodySourceMode ? \"selected\" : \"\"}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tPreview\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t onSetBodySourceMode(true)}\r\n\t\t\t\t\t\t\tclassName={`${bodySourceMode ? \"selected\" : \"\"}`}\r\n\t\t\t\t\t\t\ttitle={`Source mode ${bodySourceMode ? \"selected\" : \"\"}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tSource\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{bodySourceMode ? 'Source mode selected' : 'Preview mode selected'}\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
    \r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tvirtualHtml.onSyncOriginal(event.currentTarget?.innerHTML, (finalHtml: string) => {\r\n\t\t\t\t\t\t\t\tdispatch(setCommentText(finalHtml));\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\t\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { NodeActivityCommentForm } from \"./nodeActivity.comment.form\";\r\nimport { NodeActionTypes, NodeType } from \"../../../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * Interface for Node Comment Reply\r\n * need commentId to know parent.\r\n */\r\ninterface INodeActivityCommentReplyProps {\r\n\tcommentId: number;\r\n\tactionType: NodeActionTypes;\r\n}\r\n\r\n/**\r\n * Comment Reply component showing\r\n * textarea and send comment button\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const NodeActivityCommentReply: React.FC = (props) => {\r\n\tconst headlineText =\r\n\t\tprops.actionType === NodeActionTypes.CommentToAnswer ? \"Reply to this answer:\" : \"Reply to this comment:\";\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { Icon, SemanticCOLORS, SemanticICONS } from \"semantic-ui-react\";\r\nimport { IconSizeProp } from \"semantic-ui-react/dist/commonjs/elements/Icon/Icon\";\r\n\r\n/**\r\n * Shared Icon prop interface.\r\n */\r\nexport interface IBasicIconProps {\r\n\tsize?: undefined | IconSizeProp;\r\n\tcolor?: undefined | SemanticCOLORS;\r\n\talt?: undefined | string;\r\n\tariaLabel?: undefined | string;\r\n\trole?: undefined | string;\r\n\ttitle?: undefined | string;\r\n\tbordered?: undefined | boolean;\r\n\tinverted?: undefined | boolean;\r\n\tclassName?: undefined | string;\r\n\tstyle?: undefined | React.CSSProperties;\r\n\ttabIndex?: undefined | number;\r\n}\r\n\r\n/**\r\n * Contract for the shape of the Icon rendering\r\n */\r\nexport interface IDefaultIconProps extends IBasicIconProps {\r\n\tname: SemanticICONS;\r\n}\r\n\r\n/**\r\n * Default ball-based Icon.\r\n * Helps avoid Icon rendering repetitions by\r\n * abstracting part of the TSX work.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const DefaultIcon: React.FC = (props) => {\r\n\tconst { size, color, name, ...otherProps } = props;\r\n\tconst resolvedSize = useMemo(() => size ?? \"small\", [size]);\r\n\tconst resolvedColor = useMemo(() => color ?? \"grey\", [color]);\r\n\tconst ariaLabel = props?.ariaLabel\r\n\t\t? props?.ariaLabel\r\n\t\t: props?.alt\r\n\t\t? props?.alt\r\n\t\t: props?.title\r\n\t\t? props.title\r\n\t\t: undefined;\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { DefaultIcon, IBasicIconProps } from \"./default.icon\";\r\n\r\n/**\r\n * Book ball Icon.\r\n * Helps avoid Icon rendering repetitions by\r\n * abstracting part of the TSX work.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const BookIcon: React.FC = (props) => {\r\n\treturn ;\r\n};\r\n","import React from \"react\";\r\nimport { DefaultIcon, IBasicIconProps } from \"./default.icon\";\r\n\r\n/**\r\n * Check ball Icon.\r\n * Helps avoid Icon rendering repetitions by\r\n * abstracting part of the TSX work.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const CheckIcon: React.FC = (props) => {\r\n\treturn ;\r\n};\r\n","import React from \"react\";\r\nimport { DefaultIcon, IBasicIconProps } from \"./default.icon\";\r\n\r\n/**\r\n * Question Mark ball Icon.\r\n * Helps avoid Icon rendering repetitions by\r\n * abstracting part of the TSX work.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const QuestionIcon: React.FC = (props) => {\r\n\treturn ;\r\n};\r\n","import React from \"react\";\r\nimport { DefaultIcon, IBasicIconProps } from \"./default.icon\";\r\n\r\n/**\r\n * User ball Icon.\r\n * Helps avoid Icon rendering repetitions by\r\n * abstracting part of the TSX work.\r\n *\r\n * @returns React.FC\r\n */\r\nexport const UserIcon: React.FC = (props) => {\r\n\treturn ;\r\n};\r\n","import React, { useLayoutEffect, useMemo, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { nodesSelectors } from \"../../../redux/selectors/nodes\";\r\nimport { UserProfileAPIService } from \"../../../service/userProfile/UserProfileAPI\";\r\nimport { UserIcon } from \"../icon\";\r\nimport { UserIconSize } from \"../../../contracts\";\r\nimport { IconSizeProp } from \"semantic-ui-react/dist/commonjs/elements/Icon/Icon\";\r\n\r\n/**\r\n * Contract for the User Profile photo display component.\r\n */\r\nexport interface IUserPhotoProps {\r\n\tuserPrincipalName: string;\r\n\theight?: undefined | string | number;\r\n\twidth?: undefined | string | number;\r\n\tclassName?: undefined | string;\r\n\talt?: undefined | string;\r\n\ttitle?: undefined | string;\r\n\tsize?: undefined | UserIconSize;\r\n\tnoMargin?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Displays a User Profile photo.\r\n * If the picture hasn't been loaded in the state layer,\r\n * It will request it first, then display it.\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const UserPhoto: React.FC = (props) => {\r\n\tconst { userPrincipalName } = props;\r\n\tconst b64Upn = useMemo(() => (!userPrincipalName ? \"\" : btoa(userPrincipalName)), [userPrincipalName]);\r\n\tconst userProfileService = useRef(new UserProfileAPIService());\r\n\tconst userProfilePhoto = useSelector((state) => nodesSelectors.getUserPhoto(state, b64Upn));\r\n\t// const userProfilePhotoQuerying = useSelector((state) => nodesSelectors.getQuerying(state, b64Upn));\r\n\t// const userProfilePhotoQueried = useSelector((state) => nodesSelectors.getQueried(state, b64Upn));\r\n\tconst resolvedHeight = useMemo(() => {\r\n\t\tconst _h = props?.height ?? 44;\r\n\r\n\t\treturn typeof _h === \"string\" && _h.includes(\"px\") ? _h : `${_h}px`;\r\n\t}, [props.height]);\r\n\tconst resolvedWidth = useMemo(() => {\r\n\t\tconst _w = props?.width ?? 44;\r\n\r\n\t\treturn typeof _w === \"string\" && _w.includes(\"px\") ? _w : `${_w}px`;\r\n\t}, [props.width]);\r\n\tconst resolvedAlt = useMemo(() => props?.alt ?? userPrincipalName, [props.alt, userPrincipalName]);\r\n\tconst resolvedSize = useMemo(() => props?.size ?? \"lg\", [props.size]);\r\n\tconst resolvedSizeSemantic = useMemo(\r\n\t\t() => (!props?.size || props.size === \"lg\" ? \"large\" : \"small\"),\r\n\t\t[resolvedSize]\r\n\t);\r\n\tconst resolvedTitle = useMemo(() => props?.title ?? userPrincipalName, [props.title, userPrincipalName]);\r\n\tconst resolvedClassName = useMemo(() => {\r\n\t\treturn `img-thumbnail rounded-circle avatar-${resolvedSize} ${props?.className ?? \"\"}`;\r\n\t}, [props.className]);\r\n\r\n\tconst iconStyles = {\r\n\t\tpadding: \"0.1rem\",\r\n\t\tborder: \"1px white solid\",\r\n\t\tborderRadius: \"50%\",\r\n\t\tmargin: `1px !important`\r\n\t};\r\n\r\n\t// Self-loading the user profile picture\r\n\tuseLayoutEffect(() => {\r\n\t\tconst abortController = new AbortController();\r\n\r\n\t\tasync function getPhotoAsync() {\r\n\t\t\tawait userProfileService.current.loadProfilePictures(userPrincipalName, abortController);\r\n\t\t}\r\n\r\n\t\tgetPhotoAsync();\r\n\r\n\t\t() => {\r\n\t\t\tabortController?.abort();\r\n\t\t};\r\n\t}, [userProfileService, userPrincipalName]);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{!userProfilePhoto || userProfilePhoto === \"\" ? (\r\n\t\t\t\t\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","import React, { useCallback } from \"react\";\r\nimport { IconButton } from \"../../button\";\r\n\r\n/**\r\n *\r\n */\r\nexport interface IUserListPrimaryActionProps {\r\n\ttitle: string;\r\n\tonClick: (event: React.MouseEvent) => Promise;\r\n\tvariation?: undefined | \"primary\" | \"secondary\";\r\n\ticonName?: undefined | string;\r\n}\r\n\r\n/**\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const UserListPrimaryAction: React.FC = (props) => {\r\n\tconst memoPrimaryActionClick = async (event: React.MouseEvent): Promise => {\r\n\t\treturn typeof props?.onClick === \"function\" ? props.onClick(event) : null;\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useLayoutEffect, useMemo, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { nodesSelectors } from \"../../../redux/selectors/nodes\";\r\nimport { UserProfileAPIService } from \"../../../service/userProfile/UserProfileAPI\";\r\nimport { UserIcon } from \"../icon\";\r\nimport { UserIconSize } from \"../../../contracts\";\r\nimport { IconSizeProp } from \"semantic-ui-react/dist/commonjs/elements/Icon/Icon\";\r\n\r\n/**\r\n * Contract for the User Profile photo display component.\r\n */\r\nexport interface IUserPhotoFollowerProps {\r\n\tuserPrincipalName: string;\r\n\theight?: undefined | string | number;\r\n\twidth?: undefined | string | number;\r\n\tclassName?: undefined | string;\r\n\talt?: undefined | string;\r\n\ttitle?: undefined | string;\r\n\tsize?: undefined | UserIconSize;\r\n\tnoMargin?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Displays a User Profile photo.\r\n * If the picture hasn't been loaded in the state layer,\r\n * It will request it first, then display it.\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const UserPhotoFollower: React.FC = (props) => {\r\n\tconst { userPrincipalName } = props;\r\n\tconst b64Upn = useMemo(() => (!userPrincipalName ? \"\" : btoa(userPrincipalName)), [userPrincipalName]);\r\n\tconst userProfilePhoto = useSelector((state) => nodesSelectors.getUserPhoto(state, b64Upn));\r\n\tconst resolvedHeight = useMemo(() => {\r\n\t\tconst _h = props?.height ?? 44;\r\n\r\n\t\treturn typeof _h === \"string\" && _h.includes(\"px\") ? _h : `${_h}px`;\r\n\t}, [props.height]);\r\n\tconst resolvedWidth = useMemo(() => {\r\n\t\tconst _w = props?.width ?? 44;\r\n\r\n\t\treturn typeof _w === \"string\" && _w.includes(\"px\") ? _w : `${_w}px`;\r\n\t}, [props.width]);\r\n\tconst resolvedAlt = useMemo(() => props?.alt ?? userPrincipalName, [props.alt, userPrincipalName]);\r\n\tconst resolvedSize = useMemo(() => props?.size ?? \"lg\", [props.size]);\r\n\tconst resolvedSizeSemantic = useMemo(\r\n\t\t() => (!props?.size || props.size === \"lg\" ? \"large\" : \"small\"),\r\n\t\t[resolvedSize]\r\n\t);\r\n\tconst resolvedTitle = useMemo(() => props?.title ?? userPrincipalName, [props.title, userPrincipalName]);\r\n\tconst resolvedClassName = useMemo(() => {\r\n\t\treturn `img-thumbnail rounded-circle avatar-${resolvedSize} ${props?.className ?? \"\"}`;\r\n\t}, [props.className]);\r\n\r\n\tconst iconStyles = {\r\n\t\tpadding: \"0.1rem\",\r\n\t\tborder: \"1px white solid\",\r\n\t\tborderRadius: \"50%\",\r\n\t\tmargin: `1px !important`\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{!userProfilePhoto || userProfilePhoto === \"\" ? (\r\n\t\t\t\t\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","import React from \"react\";\r\nimport { UserPhotoFollower } from \"../userPhotoFollower\";\r\n\r\n/**\r\n * Contract for the input props of the User List Box photo item.\r\n */\r\nexport interface IUserListBoxPhoto {\r\n\tuserUpn: string;\r\n\tuserName: string;\r\n}\r\n\r\n/**\r\n * User List Box photo item.\r\n *\r\n * @param props IUserListBoxPhoto\r\n * @returns React.FC\r\n */\r\nexport const UserListBoxPhoto: React.FC = (props) => (\r\n\t\r\n);\r\n","import React, { useMemo, useEffect } from \"react\";\r\nimport { UserListBoxPhoto } from \"./userList.photo\";\r\nimport followPaginationConstants from \"./constants\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { followSelectors } from \"../../../../redux/selectors/follow\";\r\nimport { setFollowersToShow } from \"../../../../redux/reducers/follow\";\r\nimport { useRef } from \"react\";\r\nimport { ServiceHub } from \"../../../../service\";\r\nimport { useAbortController, useDownloadQueue } from \"../../../../hooks\";\r\n\r\n/**\r\n * Controls the User List Box Content input props.\r\n */\r\nexport interface IUserListBoxContentProps {\r\n\tusersUpn: string[];\r\n\thideEmptyRecordsMessage?: undefined | boolean;\r\n\ttype?: undefined | string;\r\n}\r\n\r\n/**\r\n * User List Box Content component.\r\n *\r\n * @param props IUserListBoxContentProps\r\n * @returns React.FC\r\n */\r\nexport const UserListBoxContent: React.FC = (props) => {\r\n\tconst followAPI = useRef(ServiceHub.followAPI.start());\r\n\tconst followersToShow = useSelector(followSelectors.getFollowersToShow);\r\n\tconst dispatch = useDispatch();\r\n\tconst downloadQueue = useDownloadQueue();\r\n\tconst abortController = useAbortController();\r\n\tconst renderUserPhoto = (userUpn: string, index: number) => (\r\n\t\t\r\n\t);\r\n\r\n\tconst topContributorsQueried = useSelector(followSelectors.getTopContributorsQueried);\r\n\r\n\t/**\r\n\t * Memo to manage rendering photos if there is available Followers\r\n\t */\r\n\tconst memoRenderUserProfiles = useMemo(() => {\r\n\t\treturn props?.usersUpn.length > 0\r\n\t\t\t? props.usersUpn.slice(0, Math.min(followersToShow, props.usersUpn.length)).map(renderUserPhoto) // split-test scenario\r\n\t\t\t: // ? props.usersUpn.map(renderUserPhoto) // prop-scenario\r\n\t\t\tprops?.hideEmptyRecordsMessage\r\n\t\t\t? \"\"\r\n\t\t\t: props?.type === undefined ? \"No records\" : !topContributorsQueried ? \"Loading\" : \"No records\";\r\n\t}, [props?.usersUpn, props?.hideEmptyRecordsMessage, followersToShow]);\r\n\r\n\t/**\r\n\t * Memo of number of followers to display tracked by the folowersToShow variable by user interaction.\r\n\t */\r\n\tconst followersUpnSlice = useMemo(() => {\r\n\t\treturn props?.usersUpn.length > 0\r\n\t\t\t? props.usersUpn.slice(0, Math.min(followersToShow, props.usersUpn.length))\r\n\t\t\t: [];\r\n\t}, [props?.usersUpn, followersToShow]);\r\n\r\n\t/**\r\n\t * Calling the specific Followers photo method voa ServiceHub\r\n\t * @param upn\r\n\t * @returns\r\n\t */\r\n\tconst loadUPNImage = async (upn: string) => {\r\n\t\treturn ServiceHub.userProfileAPI\r\n\t\t\t.start()\r\n\t\t\t.loadFollowersProfilePictures(upn, abortController.abortController ?? undefined);\r\n\t};\r\n\r\n\t/**\r\n\t * Tracking if there is followersUpn to add to the queue and download image\r\n\t * and only process the Queue if status its not processing.\r\n\t */\r\n\tuseEffect(() => {\r\n\t\tif (followersUpnSlice.length > 0) {\r\n\t\t\tfollowersUpnSlice?.forEach((upn) => {\r\n\t\t\t\tdownloadQueue.enqueue(async () => loadUPNImage(upn));\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (!downloadQueue.isProcessing()) {\r\n\t\t\tdownloadQueue.processQueue();\r\n\t\t}\r\n\t}, [downloadQueue, followersUpnSlice]);\r\n\r\n\tconst loadMoreFollowers = () => {\r\n\t\tdispatch(\r\n\t\t\tsetFollowersToShow(\r\n\t\t\t\tprops.usersUpn.length <= followersToShow\r\n\t\t\t\t\t? props.usersUpn.length\r\n\t\t\t\t\t: followersToShow + followPaginationConstants.paginationOffset\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{memoRenderUserProfiles}\r\n\t\t\t{props.usersUpn.length > followersToShow ? (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n};\r\n","import React from \"react\";\r\nimport { UserListPrimaryAction } from \"./userList.primaryAction\";\r\nimport { UserListBoxContent } from \"./userList.content\";\r\nimport { appManagementSelectors } from \"../../../../redux/selectors/appManagement\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { IconButton } from \"../../button\";\r\n\r\n/**\r\n * Controls the Properties assignable to UserListBox component.\r\n */\r\nexport interface IUserListBox {\r\n\ttitle: string;\r\n\tprimaryActionTitle: string;\r\n\tfavoriteActionTitle: string;\r\n\tprimaryActionIcon?: undefined | string;\r\n\tprimaryActionClick: (event: React.MouseEvent) => Promise;\r\n\tsecondaryActionClick: (event: React.MouseEvent) => Promise;\r\n\tprimaryActionVariation?: undefined | \"primary\" | \"secondary\";\r\n\tusersUpn: string[];\r\n\tbaselineText?: undefined | string | React.ReactElement;\r\n\thideEmptyRecordsMessage?: undefined | boolean;\r\n}\r\n\r\n/**\r\n * Renders a standard User Profile list box,\r\n * for using with context-specific user listing.\r\n * E.g. Followers Box\r\n *\r\n * @param props IUserListBox\r\n * @returns React.FC\r\n */\r\nexport const UserListBox: React.FC = (props) => {\r\n\tconst isHighZoomLevel = useSelector(appManagementSelectors.getIsHighZoomLevel);\r\n\r\n\tconst onFavoriteButtonClick = () => {\r\n\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
    \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
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t{props.baselineText ? (\r\n\t\t\t\t
    \r\n\t\t\t\t\t{props.baselineText}\r\n\t\t\t\t
    \r\n\t\t\t) : null}\r\n\t\t
    \r\n\t);\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport { utcToLocalDateTimeString } from \"../../../../lib/strikeLibrary\";\r\nimport { UserPhoto } from \"../../user\";\r\nimport { AuthorMentionShimmer } from \"../../shimmer/author/shimmer.authorMention\";\r\nimport { authorMentionShared } from \"./shared\";\r\n\r\n/**\r\n * Regulates the Article Author Mention component props.\r\n */\r\nexport interface IAuthorMentionProps {\r\n\tauthEmail: string;\r\n\tauthName: string;\r\n\tcreatedOn: string;\r\n}\r\n\r\n/**\r\n * Standard re-usable Article Author mentioning\r\n * component.\r\n *\r\n * @param props\r\n * @returns React.FC\r\n */\r\nexport const AuthorMention: React.FC = (props) => {\r\n\tconst resolvedCreatedDate = useMemo(() => {\r\n\t\tif (!props.createdOn) return \"\";\r\n\r\n\t\tconst articleDate = new Date(props.createdOn);\r\n\r\n\t\treturn utcToLocalDateTimeString(articleDate);\r\n\t}, [props]);\r\n\tconst authorMentionAriaLabel = useMemo(() => {\r\n\t\treturn `Author: ${props.authName}, Created on: ${resolvedCreatedDate}`;\r\n\t}, [props.authName, resolvedCreatedDate]);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{!props.authEmail ? (\r\n\t\t\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\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\tby \r\n\t\t\t\t\t\t\t\t{props.authName}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t on \r\n\t\t\t\t\t\t\t
    {resolvedCreatedDate}
    \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","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { AuthorMention } from \"../../article\";\r\nimport { RichTextNode } from \"../richTextNode\";\r\nimport { IStrikeNodesComments } from \"../../../../contracts/models\";\r\nimport { utcToLocalDateTimeString } from \"../../../../lib/strikeLibrary\";\r\nimport { ServiceHub } from \"../../../../service\";\r\nimport { NodeCommentStatus } from \"../../../../contracts/models/strikeEnums\";\r\n\r\ninterface INodeActivityCommentBodyProps {\r\n\tcomment: IStrikeNodesComments;\r\n}\r\n\r\n/**\r\n * Comment Body to show comments elements\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const NodeActivityCommentBody: React.FC = ({ comment }) => {\r\n\tconst [commentBody, setCommentBody] = useState(comment.Title);\r\n\tconst formattedDate = useCallback(\r\n\t\t(comment: IStrikeNodesComments) => utcToLocalDateTimeString(comment.CommentOn),\r\n\t\t[]\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst parser = new DOMParser();\r\n\t\tconst commentHtmlText = parser.parseFromString(comment.Title, \"text/html\");\r\n\t\t\r\n\t\tconst textContainer = document.querySelector('.node-activity-comment-text')\r\n\t\tif (comment.Title === NodeCommentStatus.DeletedComment) {\r\n\t\t\tconst commentElement = document.getElementById(comment.CommentId.toString());\r\n\t\t\tif (commentElement) {\r\n\t\t\t\tconst textContainerDiv = commentElement.querySelector('.node-activity-comment-text') as HTMLElement;\r\n\t\t\t\tif (textContainerDiv) {\r\n\t\t\t\t\tconst textContainer = textContainerDiv.lastElementChild as HTMLElement;\r\n\t\t\t\t\ttextContainer.textContent = NodeCommentStatus.DeletedCommentString;\r\n\t\t\t\t\ttextContainer.classList.add('deleted-comment')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tconst imgElements = commentHtmlText.getElementsByTagName(\"img\");\r\n\t\tif (imgElements) {\r\n\t\t\tfor (let i = 0; i < imgElements.length; i++) {\r\n\t\t\t\tconst imageSource = imgElements[i].getAttribute(\"src\");\r\n\r\n\t\t\t\tif (imageSource && !imageSource.includes(\"data:application/octet-stream;base64\")) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Removing defaut storage folder paths\r\n\t\t\t\t\t * and getting only filename.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tServiceHub.appFileAPI\r\n\t\t\t\t\t\t.start()\r\n\t\t\t\t\t\t.getAttachmentFileByURL(imageSource.replace(\"storage/attachments/\", \"\"))\r\n\t\t\t\t\t\t.then((data: void | Blob) => {\r\n\t\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t\tconst reader = new FileReader();\r\n\t\t\t\t\t\t\t\treader.readAsDataURL(data);\r\n\r\n\t\t\t\t\t\t\t\treader.onloadend = function () {\r\n\t\t\t\t\t\t\t\t\tconst base64data = reader.result;\r\n\t\t\t\t\t\t\t\t\timgElements[i].setAttribute(\"src\", base64data.toString());\r\n\t\t\t\t\t\t\t\t\tsetCommentBody(commentHtmlText.documentElement.outerHTML);\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}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [comment.Title]);\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
    \r\n\t\t\t
    \r\n\t\t\t\t{commentBody}\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n","import React, { useCallback, useMemo, useRef } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { NodeActivityCommentActions } from \"./nodeActivity.comment.actions\";\r\nimport { IStrikeNodesComments } from \"../../../../contracts/models\";\r\nimport { Button } from \"../../button\";\r\nimport nodeActivityConstants from \"./constants\";\r\nimport { NodeActivityCommentReply } from \"./nodeActivity.comment.reply\";\r\nimport { NodeActivityCommentBody } from \"./nodeActivity.comment.body\";\r\nimport { commentsSelectors } from \"../../../../redux/selectors/comments\";\r\nimport { NodeActionTypes, NodeType } from \"../../../../contracts/models/strikeEnums\";\r\nimport { setCommentsToShow, setReplyItemExpandedById } from \"../../../../redux/reducers/comments\";\r\nimport { ServiceHub } from \"../../../../service\";\r\nimport { NodeActivityCommentForm } from \"./nodeActivity.comment.form\";\r\n\r\n/**\r\n * Interface for comments main component\r\n */\r\ninterface INodeActivityCommentProps {\r\n\tcomments: IStrikeNodesComments[];\r\n\tparentId?: number;\r\n\tnodeType: NodeType;\r\n\tariaLevel?: undefined | number;\r\n}\r\n\r\n/**\r\n * Main component to handle comments information\r\n * in a specific article/question\r\n * @param comments\r\n * @param parentId\r\n * @returns\r\n */\r\nexport const NodeActivityComment: React.FC = ({\r\n\tcomments,\r\n\tparentId,\r\n\tnodeType,\r\n\tariaLevel = 1\r\n}) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst commentSvc = useRef(ServiceHub.commentAPI.start());\r\n\tconst expandedId = useSelector(commentsSelectors.getReplyExpandedId);\r\n\tconst rootComments = useSelector((state) => commentsSelectors.getRootNodeComments(state, parentId));\r\n\tconst commentsToShow = useSelector(commentsSelectors.getCommentsToShow);\r\n\tconst hideShowAllButton = useSelector((state) => commentsSelectors.getShouldHideAll(state, parentId));\r\n\r\n\t/**\r\n\t * Ordering comments from oldest to newest\r\n\t */\r\n\tconst orderedRootComments = useMemo(\r\n\t\t() =>\r\n\t\t\trootComments?.sort((firstObject, secondObject) => {\r\n\t\t\t\tconst dateA = new Date(firstObject.CommentOn);\r\n\t\t\t\tconst dateB = new Date(secondObject.CommentOn);\r\n\t\t\t\treturn dateA.getTime() - dateB.getTime();\r\n\t\t\t}) ?? [],\r\n\t\t[rootComments]\r\n\t);\r\n\r\n\t/**\r\n\t * Setting up ranges for comments to display above and below\r\n\t * the 'show more comments' pagination\r\n\t */\r\n\tconst rootCommentsEndList = useMemo(() => {\r\n\t\treturn !hideShowAllButton && orderedRootComments.length > nodeActivityConstants.maxOffset\r\n\t\t\t? orderedRootComments.slice(-nodeActivityConstants.maxOffset)\r\n\t\t\t: [];\r\n\t}, [hideShowAllButton, orderedRootComments]);\r\n\tconst rootCommentsStartList = useMemo(() => {\r\n\t\treturn !hideShowAllButton\r\n\t\t\t? orderedRootComments.slice(0, Math.min(orderedRootComments.length, commentsToShow))\r\n\t\t\t: orderedRootComments;\r\n\t}, [hideShowAllButton, orderedRootComments, commentsToShow]);\r\n\r\n\t/**\r\n\t * Utility to expand the comment box for each comment\r\n\t * when 'Reply' button clicked.\r\n\t * @param itemId\r\n\t */\r\n\tconst handleReplyExpand = (itemId: number) => {\r\n\t\tdispatch(setReplyItemExpandedById(itemId === expandedId ? null : itemId));\r\n\t};\r\n\r\n\t/**\r\n\t * Method used for pagination triggered by\r\n\t * 'show more comments' button\r\n\t */\r\n\tconst showMoreComments = () => {\r\n\t\tdispatch(\r\n\t\t\tsetCommentsToShow(\r\n\t\t\t\torderedRootComments.length <= commentsToShow\r\n\t\t\t\t\t? orderedRootComments.length\r\n\t\t\t\t\t: commentsToShow + nodeActivityConstants.maxOffset\r\n\t\t\t)\r\n\t\t);\r\n\t};\r\n\r\n\tconst isEditing = useCallback(\r\n\t\t(comment: IStrikeNodesComments) => commentSvc.current.getEditingIds().includes(comment.CommentId),\r\n\t\t[commentSvc]\r\n\t);\r\n\r\n\tconst renderCommentBody = useCallback(\r\n\t\t(comment: IStrikeNodesComments) => {\r\n\t\t\tconst nodeActionType = comment.Type as NodeActionTypes;\r\n\t\t\t// const editHeadlineText = `Editing ${\r\n\t\t\t// \tcomment.Type === NodeType.Question ? NodeActionTypes.Answer : NodeActionTypes.Comment\r\n\t\t\t// }`;\r\n\r\n\t\t\tlet _headlineTextPart = \"\";\r\n\r\n\t\t\tswitch (nodeActionType) {\r\n\t\t\t\tcase NodeActionTypes.Answer: {\r\n\t\t\t\t\t_headlineTextPart = \"Answer\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase NodeActionTypes.Comment: {\r\n\t\t\t\t\t_headlineTextPart = \"Comment\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tdefault: {\r\n\t\t\t\t\t_headlineTextPart = \"Reply\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_headlineTextPart = `Editing ${_headlineTextPart}:`;\r\n\r\n\t\t\treturn isEditing(comment) ? (\r\n\t\t\t\t
    \r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tServiceHub.commentAPI.start().resetEditingIds();\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\t\r\n\t\t\t);\r\n\t\t},\r\n\t\t[isEditing]\r\n\t);\r\n\r\n\t/**\r\n\t * Reaching end of the levels\r\n\t */\r\n\tif (orderedRootComments.length === 0) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
      \r\n\t\t\t\t{rootCommentsStartList.length > 0\r\n\t\t\t\t\t? rootCommentsStartList.map((comment, index) => {\r\n\t\t\t\t\t\t\tconst editing = isEditing(comment);\r\n\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{renderCommentBody(comment)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{expandedId === comment.CommentId ? (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t) : null}\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: null}\r\n\t\t\t\t{!hideShowAllButton && orderedRootComments.length > commentsToShow ? (\r\n\t\t\t\t\t
    • \r\n\t\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
    • \r\n\t\t\t\t) : null}\r\n\t\t\t\t{!hideShowAllButton && rootCommentsEndList.length > 0\r\n\t\t\t\t\t? rootCommentsEndList.map((comment, index) => {\r\n\t\t\t\t\t\t\tconst editing = isEditing(comment);\r\n\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{renderCommentBody(comment)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{expandedId === comment.CommentId ? (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t) : null}\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: null}\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Icon } from \"semantic-ui-react\";\r\nimport { commentsSelectors } from \"../../../../redux/selectors/comments\";\r\nimport { getQueryUserActivityObject, validateEmail } from \"../../../../lib/strikeLibrary\";\r\nimport { NodeActionTypes, NodeType } from \"../../../../contracts/models/strikeEnums\";\r\nimport { useAuthUser, useFollowers } from \"../../../../hooks\";\r\nimport {\r\n\taddLike,\r\n\tremoveLike,\r\n\tresetCommentsToShow,\r\n\tsetCommentsToShow,\r\n\tsetIsNodeAlreadyLiked,\r\n\tsetToggleCommentForm,\r\n\tsetToggleCommentQuestionForm\r\n} from \"../../../../redux/reducers/comments\";\r\nimport { authSelectors } from \"../../../../redux/selectors/auth\";\r\nimport { NodeAPIServiceInstance } from \"../../../../service/NodeAPI\";\r\nimport { UserActivityModel } from \"../../../../contracts/models\";\r\nimport nodeActivityConstants from \"./constants\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { ConfirmationMessage } from \"../../message\";\r\nimport { ServiceHub } from \"../../../../service\";\r\nimport { FollowType } from \"../../../../enums\";\r\n\r\n/**\r\n * Interface for comments main actions component\r\n */\r\ninterface INodeActivityActionsProps {\r\n\tnodeId: number;\r\n\ttype: NodeType;\r\n}\r\n\r\n/**\r\n * Comments Actions component\r\n * to handle Node Like, Comment and Show toggle\r\n * @param props\r\n * @returns\r\n */\r\nexport const NodeActivityActions: React.FC = (props) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst authoriableUserId = useSelector(authSelectors.getAuthoriableId);\r\n\r\n\tconst [likeTriggered, setLikeTriggered] = useState(false);\r\n\tconst [voteDown, setVoteDown] = useState(false);\r\n\tconst isNodeLikeMatching = useSelector(commentsSelectors.getNodeAlreadyLiked);\r\n\tconst [isNodeLikeMatchingHandler, setIsNodeLikeMatchingHandler] = useState(isNodeLikeMatching);\r\n\r\n\tconst likeCount = useSelector(commentsSelectors.getNodeLikeCount);\r\n\tconst allNodeComments = useSelector(commentsSelectors.getAllNodeComments);\r\n\tconst isHideButton = useSelector((state) => commentsSelectors.getShouldHideAll(state, props.nodeId));\r\n\tconst rootComments = useSelector((state) => commentsSelectors.getRootNodeComments(state, props.nodeId));\r\n\tconst rootCommentsTypeAnswer = useSelector((state) =>\r\n\t\tcommentsSelectors.getRootNodeCommentsByTypeAnswer(state, props.nodeId)\r\n\t);\r\n\tconst rootCommentsTypeComment = useSelector((state) =>\r\n\t\tcommentsSelectors.getRootNodeCommentsByTypeComment(state, props.nodeId)\r\n\t);\r\n\tconst ipAddress = \"\";\r\n\tconst { userPrincipalName } = useAuthUser();\r\n\tconst likesArray = useSelector(commentsSelectors.getNodeLikeIds);\r\n\tconst isQuestion = props.type === NodeType.Question;\r\n\tconst { commentId } = useParams<{ commentId: string }>();\r\n\tconst svc = ServiceHub.commentAPI.start();\r\n\tconst [isOpenReportOutdatedConfirmation, setIsOpenReportOutdatedConfirmation] = useState(false);\r\n\tconst followersData = useFollowers(props.nodeId, FollowType.Node);\r\n\tconst isUserFavourite = followersData.nodeIsFavourite;\r\n\tconst favouriteAPI = useRef(ServiceHub.followAPI.start());\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tif (commentId && allNodeComments.length > 0) {\r\n\t\t\tdispatch(setCommentsToShow(rootComments.length));\r\n\t\t}\r\n\t}, [commentId, allNodeComments]);\r\n\r\n\t/**\r\n\t * Part of User Interface\r\n\t * Triggering redux state to change boolean flag\r\n\t * It is reseting pagination showing all comments (show all)\r\n\t * or going back to initial state(hide all).\r\n\t */\r\n\tconst showAllCommentsToggle = () => {\r\n\t\t// Hide mode, when showing all the items\r\n\t\tif (isHideButton) {\r\n\t\t\tdispatch(resetCommentsToShow());\r\n\t\t} else {\r\n\t\t\t// Show all mode, when not\r\n\t\t\tdispatch(setCommentsToShow(rootComments.length));\r\n\t\t}\r\n\r\n\t\t// dispatch(setShowAllComments());\r\n\t};\r\n\r\n\tconst toggleCommentForm = () => {\r\n\t\tdispatch(setToggleCommentForm());\r\n\t};\r\n\r\n\tconst toggleCommentQuestionForm = () => {\r\n\t\tdispatch(setToggleCommentQuestionForm());\r\n\t};\r\n\r\n\t/**\r\n\t * Handle live event activity and mocking like values on the fly.\r\n\t * @param userActivityModel\r\n\t */\r\n\tconst logLikeEventActivity = async (userActivityModel: UserActivityModel) => {\r\n\t\tlet res = await NodeAPIServiceInstance.logUserActivity(userActivityModel);\r\n\t\tif (await res) {\r\n\t\t\tif (res) {\r\n\t\t\t\tif (!voteDown) {\r\n\t\t\t\t\tdispatch(addLike(authoriableUserId));\r\n\t\t\t\t} else if (voteDown) {\r\n\t\t\t\t\tdispatch(removeLike(authoriableUserId));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmonitorLikeState();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle live event action triggered by 'Like' button\r\n\t */\r\n\tconst handleNodeLikeEvent = (e) => {\r\n\t\tsetLikeTriggered(true);\r\n\r\n\t\tif (validateEmail(userPrincipalName)) {\r\n\t\t\tconst actionType = voteDown ? NodeActionTypes.VoteDown : NodeActionTypes.VoteUp;\r\n\r\n\t\t\tconst queryLikeActivity = getQueryUserActivityObject(\r\n\t\t\t\tactionType,\r\n\t\t\t\tipAddress,\r\n\t\t\t\tprops.nodeId.toString(),\r\n\t\t\t\tuserPrincipalName\r\n\t\t\t);\r\n\t\t\tlogLikeEventActivity(queryLikeActivity);\r\n\t\t}\r\n\t\tconst button = e.currentTarget;\r\n\t\tconst icon = button.querySelector('i');\r\n\t\tconst parent = button.parentNode;\r\n\r\n\t\tif (parent) {\r\n\t\t\tif (!voteDown) {\r\n\t\t\t\tif (icon) {\r\n\t\t\t\t\ticon.classList.remove('outline');\r\n\t\t\t\t}\r\n\t\t\t\tparent.classList.add('node-liked-button');\r\n\t\t\t\tparent.classList.remove('node-like-button');\r\n\t\t\t\tupdateAriaLiveRegion(`Liked. Total likes: ${likeCount + 1}`);\r\n\t\t\t} else {\r\n\t\t\t\tif (icon) {\r\n\t\t\t\t\ticon.classList.add('outline');\r\n\t\t\t\t}\r\n\t\t\t\tparent.classList.remove('node-liked-button');\r\n\t\t\t\tparent.classList.add('node-like-button');\r\n\t\t\t\tupdateAriaLiveRegion(`Unliked. Total likes: ${likeCount - 1}`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsetVoteDown(!voteDown);\r\n\t};\r\n\r\n\t/**\r\n\t * Monitor if the authId for a user its present in the LikeByUsers list\r\n\t * If there is match means user already liked it the node and action should be disabled.\r\n\t */\r\n\tconst monitorLikeState = () => {\r\n\t\tif (likesArray.length === 0 || !authoriableUserId || authoriableUserId === 0) {\r\n\t\t\tdispatch(setIsNodeAlreadyLiked(false));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tdispatch(setIsNodeAlreadyLiked(likesArray.includes(parseInt(authoriableUserId))));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tmonitorLikeState();\r\n\r\n\t\t// redux true & like trigered false -> base case -> cant like\r\n\t\tif (isNodeLikeMatching && !likeTriggered) {\r\n\t\t\tsetIsNodeLikeMatchingHandler(true);\r\n\t\t}\r\n\t\t// redux false & like triggered false -> base case -> can like\r\n\t\telse if (!isNodeLikeMatching && !likeTriggered) {\r\n\t\t\tsetIsNodeLikeMatchingHandler(false);\r\n\t\t}\r\n\t\t// redux true & like triggered true -> was clicked here -> can dislike and like till component unmount\r\n\t\telse if (isNodeLikeMatching && likeTriggered) {\r\n\t\t\tsetIsNodeLikeMatchingHandler(false);\r\n\t\t}\r\n\t}, [monitorLikeState]);\r\n\r\n\t/**\r\n\t * Triggering API to report node as 'Outdated' reason\r\n\t */\r\n\tfunction reportOutdatedNode() {\r\n\t\tconst nodeUrl = window.location.toString();\r\n\t\tconst reportQueryObject = svc.getQueryObjectToReportComment(props.nodeId, props.nodeId, nodeUrl, userPrincipalName, 'Outdated');\r\n\r\n\t\tsvc.reportComment(reportQueryObject).then((result: any) => {\r\n\t\t\tif (result instanceof Error) {\r\n\t\t\t\tServiceHub.message.error(result.message);\r\n\t\t\t\tthrow result;\r\n\t\t\t}\r\n\t\t\tsetIsOpenReportOutdatedConfirmation(false);\r\n\t\t})\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Opening Report Outdated confirmation modal\r\n\t */\r\n\tconst handleReportOutdatedNode = () => {\r\n\t\tsetIsOpenReportOutdatedConfirmation(true);\r\n\t\tServiceHub.appManagementAPI.setConfirmationCallback(reportOutdatedNode);\r\n\t}\r\n\r\n\t/**\r\n\t * Closing Report Outdated confirmation modal\r\n\t */\r\n\tconst onCloseReportOutdatedConfirmation = () => {\r\n\t\tsetIsOpenReportOutdatedConfirmation(false);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the Follow/Unfollow states of this follower section.\r\n\t */\r\n\tasync function handleFavouriteNode() {\r\n\t\tawait ServiceHub.nodeAPI.favourite(props.nodeId, !isUserFavourite)\r\n\t\t.then((result) => {\r\n\t\t\tif (isUserFavourite) {\r\n\t\t\t\tfavouriteAPI.current.setIsFavourite(false)\r\n\t\t\t} else {\r\n\t\t\t\tfavouriteAPI.current.setIsFavourite(true)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tconst updateAriaLiveRegion = (message) => {\r\n const ariaLiveRegion = document.getElementById('aria-live-region');\r\n if (ariaLiveRegion) {\r\n ariaLiveRegion.textContent = message;\r\n\t\t\tariaLiveRegion.focus();\r\n }\r\n };\r\n\r\n\tconst likeNumberAriaLabel = `${likeCount === 0 ? \"No\" : likeCount} like${likeCount === 1 ? \"\" : \"s\"}`;\r\n\r\n\tconst totalCommentCountAriaLabel = ` comment${allNodeComments.length === 1 ? \"\" : \"s\"}`;\r\n\r\n\tconst answersCountAriaLabel = `${rootCommentsTypeAnswer.length === 0\r\n\t\t? \"No answers\"\r\n\t\t: rootCommentsTypeAnswer.length === 1\r\n\t\t\t? `${rootCommentsTypeAnswer.length} answer`\r\n\t\t\t: `${rootCommentsTypeAnswer.length} answers`\r\n\t\t}`;\r\n\r\n\tconst commentCountAriaLabel = `${rootCommentsTypeComment.length === 0\r\n\t\t? \"No comments\"\r\n\t\t: rootCommentsTypeComment.length === 1\r\n\t\t\t? `${rootCommentsTypeComment.length} comment`\r\n\t\t\t: `${rootCommentsTypeComment.length} comments`\r\n\t\t}`;\r\n\r\n\treturn (\r\n\t\t<>\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
      \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {likeCount}\r\n\t\t\t\t\t\r\n\t\t\t\t
    • \r\n\t\t\t\t{!isQuestion && rootComments.length > nodeActivityConstants.paginationOffset ? (\r\n\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{allNodeComments.length}\r\n\t\t\t\t\t
    • \r\n\t\t\t\t) : !isQuestion && allNodeComments.length ? (\r\n\t\t\t\t\t
    • \r\n\t\t\t\t\t\t{allNodeComments.length}{\" \"}\r\n\t\t\t\t\t\t{allNodeComments.length === 1 ? \"comment\" : \"comments\"}\r\n\t\t\t\t\t
    • \r\n\t\t\t\t) : null}\r\n\t\t\t\t{isQuestion && rootComments.length > 0 ? (\r\n\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{rootCommentsTypeAnswer.length} \r\n\t\t\t\t\t\t\t{rootCommentsTypeAnswer.length === 1 ? \"answer\" : \"answers\"}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{rootCommentsTypeComment.length} \r\n\t\t\t\t\t\t\t{rootCommentsTypeComment.length === 1 ? \"comment\" : \"comments\"}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : null}\r\n\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\t\r\n\t\t\t\t
  • \r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { NodeActivityComment } from \"./nodeActivity.comment\";\r\nimport { setNodeCommentsTotal, setNodeId } from \"../../../../redux/reducers/comments\";\r\nimport { commentsSelectors } from \"../../../../redux/selectors/comments\";\r\nimport { NodeActivityActions } from \"./nodeActivity.actions\";\r\nimport { NodeType } from \"../../../../contracts/models/strikeEnums\";\r\nimport { ServiceHub } from \"../../../../service\";\r\n\r\n/**\r\n * Contract for Comment Section component\r\n */\r\nexport interface INodeActivityProps {\r\n\tnodeId: number;\r\n\ttype: NodeType;\r\n}\r\n\r\n/**\r\n * Node Activity component\r\n * Like and Comment actions\r\n *\r\n * @param props\r\n * @returns\r\n */\r\nexport const NodeActivity: React.FC = (props) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst allNodeComments = useSelector(commentsSelectors.getOrderedNodeComments);\r\n\tconst nodeActivityAriaLabel = useMemo(() => {\r\n\t\tswitch (props.type) {\r\n\t\t\tcase NodeType.Kbentry: {\r\n\t\t\t\treturn \"User interactions in this Article\";\r\n\t\t\t}\r\n\t\t\tcase NodeType.Question: {\r\n\t\t\t\treturn \"User interactions in this Question\";\r\n\t\t\t}\r\n\t\t\tcase NodeType.Comment: {\r\n\t\t\t\treturn \"User Comment\";\r\n\t\t\t}\r\n\t\t\tcase NodeType.Answer: {\r\n\t\t\t\treturn \"User Answer\";\r\n\t\t\t}\r\n\t\t\tcase NodeType.Topic: {\r\n\t\t\t\treturn \"Topic\";\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\treturn \"Interactions from All users\";\r\n\t\t\t}\r\n\t\t}\r\n\t}, [props.type]);\r\n\r\n\tconst [dataLoaded, setDataLoaded] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!dataLoaded) {\r\n\t\t\tsetDataLoaded(true);\r\n\t\t\tdispatch(setNodeCommentsTotal(allNodeComments.length));\r\n\t\t\tdispatch(setNodeId(props.nodeId.toString()));\r\n\t\t}\r\n\t}, [props.nodeId]);\r\n\r\n\t// Used for general clean-up when this component unmounts\r\n\tuseEffect(\r\n\t\t() => () => {\r\n\t\t\t// Clears the editing comment IDs\r\n\t\t\tconst commentSvc = ServiceHub.commentAPI.start();\r\n\t\t\tcommentSvc.resetEditingIds();\r\n\t\t\tcommentSvc.setFormText(\"\");\r\n\t\t\tcommentSvc.setFormNodeId(null);\r\n\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
    \r\n\t\t\t{props?.type !== NodeType.Question ? (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n};\r\n","/**\r\n * Labels used on Space Form component.\r\n */\r\nexport const SpaceFormLabels = {\r\n\ttop: {\r\n\t\tpageSpaceCreate: \"Create Space\",\r\n\t\tpageSpaceEdit: \"Edit Space\"\r\n\t},\r\n\tvalidation: {\r\n\t\tparentId: \"Parent Space was not selected\",\r\n\t\tname: \"Name is required\"\r\n\t}\r\n};\r\n\r\n/**\r\n * Placeholders used on Space Form component.\r\n */\r\nexport const SpaceFormPlaceholders = {\r\n\tspace: {\r\n\t\tparentSpace: \"Select Parent Space from the list\",\r\n\t\tname: \"Start typing your Space's name\",\r\n\t\tdescription: \"Write your Space's description here\"\r\n\t}\r\n};\r\n","import { useAuthUser } from \"../auth/useAuthUser\";\r\n\r\n/**\r\n * Defines the type of the Function returned by the useNodeOwner hook.\r\n */\r\nexport declare type IsUserOwnerCallback = (node: { Id: number; AuthEmail?: undefined | string }) => boolean;\r\n\r\n/**\r\n * Gets a function to check whether the Logged User owns a Node.\r\n */\r\nexport const useNodeOwner = (): IsUserOwnerCallback => {\r\n\tconst { userPrincipalName } = useAuthUser();\r\n\r\n\t/**\r\n\t * Checks whether the user UPN passing is the owner of the current Node loaded\r\n\t */\r\n\tconst isUserOwner = (node: { Id: number; AuthEmail?: undefined | string }) => {\r\n\t\treturn !node.Id || (node.AuthEmail !== \"\" && userPrincipalName !== \"\" && userPrincipalName === node.AuthEmail);\r\n\t};\r\n\r\n\treturn isUserOwner;\r\n};\r\n","import { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { ServiceHub } from \"../../service\";\r\nimport { MiscellaneousKeys } from \"../../contracts/models/strikeEnums\";\r\n\r\n/**\r\n * XHTML namespace pointer URL,\r\n * used across the file.\r\n */\r\nconst _xhtmlNamespace = \"http://www.w3.org/1999/xhtml\";\r\n\r\n/**\r\n * Controls the return type of the HTML Virtualization hook.\r\n */\r\nexport interface IHtmlVirtualizationHook {\r\n\tvirtualHtml: string;\r\n\toriginalHtml: string;\r\n\tvirtualElementIds: string[];\r\n\tvirtualElements: Element[];\r\n\toriginalElements: Element[];\r\n\terroredElements: { elementType: string; error: string }[];\r\n\tonChange: (newContent: string) => void;\r\n\tonSyncOriginal: (realHtml: string, onComplete?: undefined | ((finalHtml: string) => void)) => void;\r\n\tonClearAll: () => void;\r\n\tonClearErrors: () => void;\r\n}\r\n\r\n/**\r\n * Virtualize an HTML passed,\r\n * transforming protected tags to use
    replacers instead.\r\n *\r\n * @param stringHtml The HTML to virtualize.\r\n * @returns IHtmlVirtualizationHook\r\n */\r\nexport const useHtmlVirtualization = (stringHtml: string): IHtmlVirtualizationHook => {\r\n\tconst virtualElementsRef = useRef([]);\r\n\tconst originalElementsRef = useRef([]);\r\n\tconst virtualElementIdsRef = useRef([]);\r\n\tconst [erroredElements, setErroredElements] = useState<{ elementType: string; error: string }[]>([]);\r\n\tconst virtualHtmlRef = useRef(null);\r\n\tconst originalHtmlRef = useRef(null);\r\n\tconst previousHtmlString = useRef(null);\r\n\tconst nodeIframeUrl = useRef(null);\r\n\r\n\t/**\r\n\t * Gets Miscellaneous data to use for virtualization purposes\r\n\t */\r\n\tasync function getMiscData() {\r\n\t\tawait ServiceHub.articleDataAPI\r\n\t\t\t.start()\r\n\t\t\t.getMiscellaneous()\r\n\t\t\t.then((result) => {\r\n\t\t\t\tif (!Array.isArray(result)) return;\r\n\r\n\t\t\t\tnodeIframeUrl.current = result;\r\n\t\t\t})\r\n\t\t\t.catch((ex) => {\r\n\t\t\t\t// TODO: Handle error\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Gets a specific Miscellaneous key,\r\n\t * Based on the data key value\r\n\t *\r\n\t * @param key\r\n\t * @returns\r\n\t */\r\n\tasync function getMiscellaneousKey(key: string): Promise<{ DataKey: string; Value: string }> {\r\n\t\tif (!nodeIframeUrl.current) {\r\n\t\t\tawait getMiscData();\r\n\t\t}\r\n\r\n\t\tconst itemByKey = nodeIframeUrl.current.find((item: any) => item?.DataKey && item.DataKey === key);\r\n\r\n\t\treturn itemByKey;\r\n\t}\r\n\r\n\tconst onClearErrors = () => {\r\n\t\tsetErroredElements([]);\r\n\t};\r\n\r\n\t/**\r\n\t * Clears the Virtualization properties,\r\n\t * for using when quitting/re-init.\r\n\t */\r\n\tconst onReset = () => {\r\n\t\tvirtualHtmlRef.current = null;\r\n\t\toriginalElementsRef.current = [];\r\n\t\tvirtualElementsRef.current = [];\r\n\t\tvirtualElementIdsRef.current = [];\r\n\t\toriginalHtmlRef.current = null;\r\n\r\n\t\tonClearErrors();\r\n\t};\r\n\r\n\t/**\r\n\t * For a given Document or Element,\r\n\t * gets its content inner HTML.\r\n\t *\r\n\t * @param htmlDocument The Document or Element to get content from\r\n\t * @returns string\r\n\t */\r\n\tconst getBodyContent = (htmlDocument: Document | Element): string => {\r\n\t\tconst baseElement = htmlDocument instanceof Element ? htmlDocument : htmlDocument.documentElement;\r\n\r\n\t\tconst bodiesElements = baseElement.getElementsByTagNameNS(_xhtmlNamespace, \"body\");\r\n\t\tconst hasBody = bodiesElements.length > 0;\r\n\r\n\t\treturn hasBody ? bodiesElements[0].innerHTML : baseElement.innerHTML;\r\n\t};\r\n\r\n\t/**\r\n\t * Sets a body content for a given html document passed.\r\n\t *\r\n\t * @param htmlDocument The document having its content set.\r\n\t * @param newContent The new content to set in the document.\r\n\t */\r\n\tconst setBodyContent = (htmlDocument: Document, newContent: string): void => {\r\n\t\tconst bodiesElements = htmlDocument.documentElement.getElementsByTagNameNS(_xhtmlNamespace, \"body\");\r\n\t\tconst hasBody = bodiesElements.length > 0;\r\n\r\n\t\tif (hasBody) {\r\n\t\t\tbodiesElements[0].innerHTML = newContent;\r\n\t\t} else {\r\n\t\t\thtmlDocument.documentElement.innerHTML = newContent;\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Sync-up the virtual HTML back to the high-fidelity,\r\n\t * the one without placeholder tags.\r\n\t *\r\n\t * @param event The event of change.\r\n\t * @param onComplete An onComplete callback to process additional steps.\r\n\t */\r\n\tconst onSyncVirtualToOriginal = (event, onComplete?: undefined | ((finalHtml: string) => void)): void => {\r\n\t\tlet newContent = virtualHtmlRef.current.documentElement.cloneNode(true) as Element;\r\n\r\n\t\t// Pre-clears the errors list\r\n\t\tonClearErrors();\r\n\r\n\t\t// Create a map of virtualElement.outerHTML to originalElement.outerHTML\r\n\t\tconst replacements = new Map();\r\n\t\tvirtualElementsRef.current.forEach((virtualElement, index) => {\r\n\t\t\tconst originalElement = originalElementsRef.current.find(\r\n\t\t\t\t(item) => item.getAttribute(\"data-id\") === virtualElement.getAttribute(\"data-id\")\r\n\t\t\t);\r\n\r\n\t\t\tif (originalElement) {\r\n\t\t\t\t// Removes the attribute, since it was only for tracking purposes\r\n\t\t\t\toriginalElement.removeAttribute(\"data-id\");\r\n\t\t\t\treplacements.set(virtualElement.outerHTML, originalElement.outerHTML);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (replacements.size > 0) {\r\n\t\t\t// Replace all occurrences in one go\r\n\t\t\tnewContent.innerHTML = newContent.innerHTML.replace(\r\n\t\t\t\tnew RegExp(Array.from(replacements.keys()).join(\"|\"), \"g\"),\r\n\t\t\t\t(matched) => replacements.get(matched)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Gets the new HTML content, which is the one listened by source editors\r\n\t\tconst finalContent = getBodyContent(newContent);\r\n\t\tsetBodyContent(originalHtmlRef.current, finalContent);\r\n\r\n\t\t// If an onComplete callback was provided, consume it\r\n\t\tif (typeof onComplete === \"function\") onComplete(finalContent);\r\n\t};\r\n\r\n\t/**\r\n\t * Changes a virtual HTML, which includes protected tags\r\n\t * controlled by placeholder state trackers.\r\n\t *\r\n\t * @param newContent The new content being set.\r\n\t */\r\n\tconst onChangeVirtualHtml = (newContent: string): void => {\r\n\t\tif (!virtualHtmlRef.current || virtualHtmlRef.current === null) {\r\n\t\t\tif (!newContent || newContent === \"\") return;\r\n\r\n\t\t\tonPrepareState(newContent);\r\n\t\t}\r\n\r\n\t\tsetBodyContent(virtualHtmlRef.current, newContent);\r\n\t};\r\n\r\n\t/**\r\n\t * The memoized version of the Virtual inner HTML.\r\n\t */\r\n\tconst virtualHtmlMemo = useMemo(\r\n\t\t() => (virtualHtmlRef.current ? getBodyContent(virtualHtmlRef.current) : \"\"),\r\n\t\t[virtualHtmlRef.current]\r\n\t);\r\n\r\n\t/**\r\n\t * Validates an