{"version":3,"sources":["img/banner/stars.png","img/auth/insert-coin.gif","img/navbarbg.png","img/placeholder/static.gif","components/Layout.js","components/authentication/FormLogin.js","components/authentication/FormSignUp.js","context/Reducers.jsx","context/State.jsx","context/Provider.jsx","components/authentication/AuthenticationModal.jsx","components/GameScroller.js","components/appBar/MainDrawerContents.js","editor/decorator.jsx","components/AuthorLink.js","components/Avatar.js","constants/Constants.jsx","editor/EditorReducers.jsx","editor/EditorState.jsx","editor/EditorProvider.jsx","editor/plugins/custom-inline-toolbar-plugin/src/utils/createStore.js","editor/plugins/custom-inline-toolbar-plugin/src/components/Toolbar/index.js","editor/plugins/custom-inline-toolbar-plugin/src/components/Separator/index.js","editor/plugins/custom-inline-toolbar-plugin/src/theme.js","editor/plugins/custom-inline-toolbar-plugin/src/index.js","editor/plugins.jsx","components/VisibilityToggle.js","components/AdaptiveLikeIcon.js","components/LoginPrompt.js","components/spinners/OverlaySpinner.js","components/ContentList.js","views/User.jsx","components/CategoryCounts.js","views/Content.jsx","views/NotFound.jsx","components/HeaderBanner.js","components/PopularContent.js","views/Home.jsx","components/PropsDebugger.js","views/Administration/AdministrationDrafts.jsx","views/Administration/AdministrationMedia.jsx","editor/StyleControls/StyleControls.jsx","editor/CustomStyleMap.jsx","editor/DraftEditor.jsx","views/WebEditor.jsx","views/Administration/AdministrationEdit.jsx","views/Administration/AdministrationRoles.jsx","views/Administration/AdministrationCategories.jsx","views/Administration/AdministrationPublished.jsx","views/Administration/AdministrationUsers.jsx","views/Administration/AdministrationReview.jsx","views/Administration.jsx","views/Articles.jsx","views/Article.jsx","views/Lab.jsx","views/Tools.jsx","views/Community.jsx","components/AboutBanner.js","views/About.jsx","views/Search.jsx","data/directory.jsx","components/UserMenu.js","components/ApplicationAppBar.js","components/Footer.js","jss/theme.jsx","components/BodySwitch.js","auth/AuthenticationProvider.js","App.js","registerServiceWorker.js","index.js"],"names":["module","exports","useStyles","makeStyles","theme","createStyles","container","paddingTop","spacing","backgroundColor","extendedProperties","background","primary","paddingBottom","minHeight","item","height","width","flex","innerContainer","Layout","props","classes","children","suppressPadding","Grid","justify","className","xs","root","display","flexWrap","margin","textField","flexBasis","loginField","FormLogin","useState","showPassword","password","setPassword","handleClose","alignItems","alignContent","style","textAlign","TextField","fullWidth","label","type","value","onChange","InputProps","endAdornment","InputAdornment","position","IconButton","aria-label","onClick","setState","state","fontSize","to","variant","color","window","location","href","FormSignUp","handleChange","prop","event","target","handleClickShowPassword","initialState","this","formData","validationSchema","Yup","title","required","composeType","initialValues","onSubmit","values","actions","handleSubmit","Fragment","registerField","Typography","React","Component","withStyles","appReducer","action","console","log","authenticated","identifier","username","userId","email","allowedActions","userMenuOpen","activeElement","redirect","redirectUri","contentMenuOpen","categories","authModalOpen","authModalTab","profileMenuOpen","mobileMenuOpen","drawerOpen","administrationLoading","editorState","editorPlugins","contentList","search","Error","authenticationModal","open","tab","anchorEl","mobileMoreAnchorEl","isMenuOpen","drawerType","AppStateContext","createContext","AppDispatchContext","AppProvider","useReducer","dispatch","Provider","useAppState","context","useContext","undefined","useAppDispatch","useAppContext","formDialogTitle","mainContainer","transition","overflow","primaryBox","padding","flexDirection","justifyContent","secondaryBox","insertCoin","tabClass","borderBottom","marginBottom","AuthenticationModal","Dialog","maxWidth","sm","md","component","gutterBottom","Tabs","indicatorColor","textColor","centered","Tab","Box","lg","xl","clone","align","src","insert_coin","alt","cards","GameScroller","map","card","key","Card","CardMedia","cardMedia","image","CardContent","cardContent","layout","cardGrid","palette","flexGrow","typography","MainDrawerContents","HASHTAG_REGEX","linkify","linkifyIt","decorators","strategy","contentBlock","callback","links","match","getText","forEach","link","index","lastIndex","block","regex","matchArr","start","text","exec","length","findWithRegex","AuthorLink","authorFormattedName","authorName","replace","toLowerCase","authorId","detailBoxAvatar","borderRadius","detailBoxDate","grayscale","detailBoxAuthor","textDecoration","detailBoxDetails","paddingLeft","detailBoxHorizontalDetails","authorLink","linkColor","fontWeight","Avatar","size","backgroundImage","hash","AvatarDetails","author","format","createdDtm","AvatarHorizontalDetails","BLOB_STORAGE_URI","editorReducer","editorRef","plugins","editorUi","contentLoading","contentId","bannerId","category","subcategories","subcategory","slug","categoryId","subCategoryId","bannerUri","attachments","editorInitialState","ReactEditorState","createEmpty","editorStateRaw","isSubmitting","EditorStateContext","EditorDispatchContext","EditorProvider","useEditorState","useEditorDispatch","useEditorContext","createStore","listeners","subscribeToItem","push","unsubscribeFromItem","filter","listener","updateItem","getItem","Toolbar","isVisible","overrideContent","onOverrideContent","onSelectionChanged","setTimeout","toolbar","store","editorRoot","refs","editor","indexOf","parentNode","editorRootRect","getBoundingClientRect","parentWindow","ownerDocument","defaultView","selectionRect","getVisibleSelectionRect","top","offsetTop","offsetHeight","left","offsetLeft","handleToolbarRef","node","selection","getSelection","isCollapsed","getHasFocus","visibility","transform","OverrideContent","childrenProps","buttonStyles","getEditorState","setEditorState","toolbarStyles","getStyle","ref","defaultProps","externalProps","separator","borderRight","Separator","defaultTheme","buttonWrapper","button","active","linkPlugin","createLinkPlugin","placeholder","imagePlugin","createImagePlugin","toolbarPlugin","createToolbarPlugin","prismPlugin","createPrismPlugin","prism","Prism","focusPlugin","createFocusPlugin","resizeablePlugin","createResizeablePlugin","blockDndPlugin","createBlockDndPlugin","alignmentPlugin","createAlignmentPlugin","emojiPlugin","createEmojiPlugin","inlineToolbarPlugin","EmojiSelect","AlignmentTool","LinkButton","config","InlineToolbar","initialize","getEditorRef","createInlineToolbarPlugin","composeDecorators","videoPlugin","createVideoPlugin","iframeContainer","iframe","invalidVideoSrc","video","VisibilityToggle","AdaptiveLikeIcon","liked","LoginPrompt","handleLogin","onClose","aria-labelledby","id","DialogContentText","DialogActions","override","css","OverlaySpinner","loading","marginTop","headerContainer","userImage","backgroundSize","userBio","marginLeft","foreground","footer","paper","cardHeader","accents","darkLink","main","fontFamily","headerFontFamily","textTransform","tags","conversationButton","border","backgroundRepeat","backgroundPosition","flexShrink","cardAction","sideTitle","sideAuthor","sideDate","sideRank","paddingRight","contentContainer","LoaderComponent","speed","viewBox","foregroundColor","x","y","rx","ry","ContentList","setContentList","setLoading","limit","subcategoryId","params","useEffect","a","fetch","response","json","data","error","getRecentContent","then","promise","content","itemBackground","bannerThumbnailUri","authorUsername","itemId","subCategory","authorDisplayName","body","UserLoader","cx","cy","r","User","test","useParams","useNavigate","composeContainerProperties","path","element","UserUnknown","UserDetail","user","userDetails","setUserDetails","loadingDetail","setLoadingDetail","getUserDetails","avatarUri","avatarSet","displayName","fromNow","date","bio","recentContent","categoryTitle","categoryTitleNum","subCategoryTitle","subCategoryTitleNum","CategoryCountItems","categorySlug","categoryCount","subCategorySlug","subCategoryCount","CategoryCounts","categoryHeader","iconContainer","icon","alignSelf","contentDetailBox","editButton","feedbackButton","EditButton","DiMsqlServer","GoGraph","GrCube","MdPermDataSetting","BsClipboardData","AiOutlineFolder","navigate","Array","isArray","some","actionName","FeedbackSection","setLiked","clickTimes","setClickTimes","likeClick","flag","e","getContentFeedback","borderTop","AuthorSection","marginRight","repo","ContentDefault","classNames","whitespace","gutter","ContentItem","appDispatch","EditorState","contentData","setContentData","contentDetails","setContentDetails","newTitle","ItemContentLoader","useRef","scrollTo","itemContent","createWithContent","convertFromRaw","JSON","parse","publishedDtm","authorHash","getSavedContent","loginPromptOpen","paperGrid","handleOpen","newEditorState","getCurrentContent","getBlockForKey","getStartKey","currentContent","newContent","getType","equals","getData","merge","language","newBlock","newContentState","blockMap","getBlockMap","set","selectionAfter","readOnly","blockStyleFn","CategoryLister","SubcategoryLister","Content","NotFound","appBar","heroUnit","heroContent","heroBackground","zIndex","animatedBackground","heroButton","textShadow","overrides","MuiFilledInput","Link","borderColor","boxShadow","borderBottomColor","input","banana","HeaderBanner","noValidate","autoComplete","autoFocus","setSearch","onKeyPress","ev","startAdornment","inputProps","paragraph","breakpoints","up","stepper","buttons","heroButtons","slideContainer","spaceBanner","backgroundAttachment","animation","Home","news","getNews","NewsLoader","RecentNews","PropsDebugger","clear","stringify","table","dropzone","boxSizing","dropzoneActive","dropzoneReject","dropzoneDisabled","AdministrationDrafts","openPublishDialog","setOpenPublishDialog","publishItemId","setPublishItemId","setOpenDeleteDialog","setDeleteItemId","PublishDialog","apiUri","method","headers","cogoToast","success","publishItemFinalize","options","referrer","setTableData","GetDrafts","tableData","Table","TableHead","TableRow","TableCell","TableBody","row","ListItem","ListItemIcon","ListItemText","modifiedDtm","Publish","UploadImageDialog","Uploader","styles","inputLabel","getUploadParams","file","url","fields","fileName","meta","name","onChangeStatus","status","files","allFiles","f","remove","accept","drawerList","float","AdministrationMedia","mediaList","setMediaList","mediaCategory","setMediaCategory","uploadDialogOpen","setUploadDialogOpen","loadingMedia","setLoadingMedia","GetMedia","MediaLoader","labelId","MenuItem","onMouseDown","CardActionArea","filename","editorContainer","cursor","addVideoPopover","addImagePopover","publicDraftEditorContent","headlineButtonWrapper","headlineButton","verticalAlign","minWidth","fill","BLOCK_TYPES","INLINE_STYLES","AddImage","setAnchorEl","setUrl","Boolean","AttachmentList","attachment","attachmentUri","uri","addImage","ToggleButton","currentTarget","anchorOrigin","vertical","horizontal","transformOrigin","evt","InlineControl","AddVideo","addVideo","StyleControls","toggleBlock","toggleStyle","classList","blockType","currentStyle","getCurrentInlineStyle","direction","ToggleButtonGroup","exclusive","selected","preventDefault","has","customStyleMap","publicDraftEditorcontent","DraftEditor","saveForm","highlightAll","RichUtils","toggleBlockType","toggleInlineStyle","current","focus","keyBindingFn","currentState","keyCode","shiftKey","newBlockState","Modifier","replaceText","onTab","ctrlKey","getDefaultKeyBinding","handleKeyCommand","command","newState","insertSoftNewline","disabled","spellCheck","checkboxLabel","checkboxRoot","containerRoot","controlPadding","tableWrapper","overflowX","skinnyHeader","subheader","editorStyle","editorWrapper","bottom","right","inputLabelWithFiles","preview","previewImage","submitButtonContainer","submitButton","parentId","Attachments","attachmentBox","join","visibleItem","invisibleItem","whiteSpace","textOverflow","attachmentButtonClick","itemStyle","itemIcon","data-attachment","attachmentId","BannerDialog","activeBannerSelection","inactiveBannerSelection","temporaryMediaSelection","setTemporaryMediaSelection","getMedia","activeClass","commitBannerImage","ContentForm","handleDetailChange","change","plainTextContent","getPlainText","rawDraftContentState","convertToRaw","parseInt","contentText","getSubCategories","handleBannerDialog","setBannerImageDialogOpen","bannerImageDialogOpen","getCategories","FormControl","InputLabel","InputLabelProps","shrink","LinearProgress","WebEditor","AdministrationEdit","AdministrationRoles","NewCategory","inputCategory","setInputCategory","SubmitCategories","alert","NewSubCategory","inputParentCategoryId","setInputParentCategoryId","inputSubCategory","setInputSubcategory","SubmitSubCategories","AdministrationCategories","categoryDetail","setCategoryDetail","newCategoryOpen","setNewCategoryOpen","newSubCategoryOpen","setNewSubCategoryOpen","getCategoryDetail","AdministrationPublished","GetPublished","AdministrationUsers","getDrafts","GetUsers","AdministrationReview","drawerPaper","composerContainer","fakeDrawer","elevation","adaptedLayout","AdministrationModule","AdministrationNew","setOpen","setTitle","catch","finally","info","Administration","List","cardMediaz","imageRendering","backgroundMedia","StaticPlaceholder","repeatBg","paddedTop","articleInfoContainer","authorIcon","Article","Lab","WebFont","load","google","families","Tools","columns","field","render","rowData","description","filtering","pageSize","buttonStyle","question","suggestionContent","suggestionTitle","suggestionDescription","RequestForm","multiline","rows","defaultValue","Community","suggestFormOpen","setSuggestFormOpen","justifySelf","aboutImage","aboutText","aboutContainer","paperCard","About","getRecent","searchItem","searchHeadline","searchSummary","loader","overlayLoader","q","searchLoading","setSearchLoading","searchResults","setSearchResults","getSearchResults","LoadingHelper","SearchResults","result","document","ItemUri","Title","ItemTextConcat","DIRECTORY_MAIN","showMenu","submenu","requiredAction","StyledMenu","Menu","getContentAnchorEl","StyledMenuItem","common","white","UserMenu","openLogout","setOpenLogout","handleLogoutClose","keepMounted","Person","Close","aria-describedby","drawerRoot","drawerPaperAnchorTop","grow","appBarButton","NavBarBackground","gameDrawerContainer","logoImageStyle","shape","fade","searchIcon","pointerEvents","inputInput","transitions","create","sectionDesktop","sectionMobile","loginButton","menuButton","desktopMenu","desktopMenuButton","logoFontFamily","activeTab","navLink","activeClassName","underConstruction","brandText","RenderMenu","RenderMobileMenu","Badge","badgeContent","ApplicationAppBar","AppBar","exact","dir","toUpperCase","aria-haspopup","anchor","modal","drawerModal","paperAnchorTop","footerContainer","fadedText","artificialPadding","gridItem","Footer","lightTheme","bodyFontFamily","secondary","tertiary","light","dark","contrastText","alternateTextColor","mobileStepper","drawer","snackbar","tooltip","MuiButton","MuiCard","MuiDialog","MuiPaper","fourth","darkTheme","createLocalTheme","themeType","createMuiTheme","BodySwitch","pageTitle","isExact","toString","includes","AuthenticationProvider","now","Date","epoch","Math","round","getTime","expiration","timer","clearTimeout","authStatus","getAuthStatus","baseUrl","getElementsByTagName","getAttribute","App","ReactGA","debug","pathname","CssBaseline","basename","isLocalhost","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","ReactDOM","querySelector","publicUrl","URL","process","origin","addEventListener","get","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.daa62eaa.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAH9CAYAAADyJsMAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsSAAALEgHS3X78AAAXV0lEQVR42u3de3Dcdd3o8bRbd7Ob67abpE3Se0gDvWGhEAZmIuViK8UKDDgMLVedOoBDi9CidZAHOIhTdZDbtM+AHNE5CCrgDUccHmEYfYQBpKWPMC3Y0wtSSW3pPRu7+Z5/9DlHDmihzX53s6/XX20ys33/8k9/+f2+3++nqgqoqqqqqpo8efLMTCaTjt0BAAAAAAAAAAAAAAAAAAyWkSNHtjz00EOhu7v7gtgtQJnKZrO52267bV17e3tX7BaAQ5FOp1MhhPDGG2+E6urqVOwe4L0Njx3wz+zcuXP7SSedNHX+/Pk3xm4BOBQHDhzIz5kz5zPPPfdc1YgRI5Kxe4AylkwmE7Ebiq2hoSGbSqUq7roBoBhK+gnQ3/X39xdiN8QwbNiwEbEbhoLTTz/9yhUrVjw7YcKEGbFbAACK4qqrrno4hBCuueaaxyvxaSIAUIFGjRrVsmnTprBr166QyWQysXsAAIqirq6u7uyzz14euwMAAAAAAAAoSalUKtHa2toRuwPgwyqLbfBAacnn84VCodAfuwMAAAAAAN6bQ+GAISGZTCa+9rWvvbF///4dmzdvXhu7Byht1gABQ0J/f3+hpqYmN2/ePOc9AQCVZdSoUS2xGwAAAAAAAAAAAAAAAAAAgCEvmUw6tBOAI8ZBiJSFRCIxIpVKuQkCBs3ixYsfXL58+VOxOygON0CUhQMHDuTz+XwhdkcxpVKpxLx585am0+lU7BaoBOvXr39m2rRpc2J3AFS8l156Kdx2223rYncAABRNa2trx7HHHjsvdgcAAAAAAAAAHKLOzs7uU045ZVHsDgCAokmn06lsNpuL3VFpop2r8pOf/CQ0NDRMeeGFF34U+4cAALEcPHiw0NfXtz92B0Xy4osvhhBCiN0BAFBUU6dO7YndAAB8MLW1tXWxGwAAAAAAAAAAAADKSmdnZ/fxxx+/IHYHAEDRnHjiiec9+uijoaamJhO7BQCgaNz8AAAAAADw/qLNAgMOzS233LKmtra2Yf369b+J3QIwVAyPHUB5+tznPve/FixYsCJ2RyXYuXPnm0cfffSZsTsASk0ymfQgh+JauXLlH19++WXDbAGIJpvN5lavXr1v1qxZ82O3UEEaGxtzsRuKpb29vevUU0+9InYHAP/oG9/4xqZrr732idgdMCRNnjx5VgghrFy58o+xW6AUzZ49e8H3v//9UEm/GFHerAGCQ/DGG2+8tHr16j3jx4+fGLsFStGrr776H/39/VWTJk3qjt0CAAAAAAAAAAAAg6qurq4udgMAUHmi7gLr6em58te//nWor6/Pxv5BAAAURU1NTeaZZ54JZ5xxxpWxWwAAAAAAAAAAAAAAACiiZDKZGDlyZEvsDigHQ34Y6vnnn3/rscceOy92B8BgSyQSIxoaGtwAwSEY8jdAnZ2dPd3d3YtidwAMtgMHDuQ3bty4NnbHkTBq1Cg3csDQ0tPTc+kFF1xwe+yOWObPn7+8p6fn0tgdUKqSyWSis7OzO3YHQ9uQfwJE6fnzn//8+sDAwMHD/Zzx48dPLcdxKt3d3YuefvrpBz760Y96NQvvob+/v7B+/frfxe4AKEnNzc3jMplMJnbHh/HNb35z0wknnHBe7A4AAAAAAAAAAACgdDU0NGQnTpw4I3ZHKUrEDgAABkcqlUrfd999/3v37t37NmzY8NvYPaXEDRAADFH5fL7vtddee37Hjh1b33777Y2xeyhxDQ0N2cbGxlzsDgBgcIyIHVCKkslkevjw4X42AAAAAAAAAACUlba2to45c+Ysjt0BADDY/nsafF9f355p06bNa2hoyMaOAgAAAIDK48kcABw5ww//IyiGmTNnLti+fXuYNm3anNgtAABF86c//SnceOONz8fuAAAoqlQqZX4bAAAA8MF4mgCDZOHChXcmEomqbdu2vR67BYB/5AYIBklfX9/OXbt2bdu9e/f22C0A8IG1tbV1jB49emLsDgDgyLAN/hC0t7fPPO64486L3QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOUjl8u1fvGLX3w6lUolYrcAg6y6ujp19tlnL4/dARBbbW1tXQgh/PjHPw6xW4BBlkqlEjt37gyPP/548FsPUOkWLlx453333dcXuwMogvnz5y8PIYRx48ZNjd0CAFA0I0eObIndAAAAAAAAAAAAAAAAAAAAAAAAUIoaGxtzU6dO7YndAQBQNNlsNhdCCEuWLPlp7BaAUjE8dgAwuHbu3Ln96quvfmTfvn3bY7dweMaOHdu1aNGiO2N3AAAUTXV1dWr69OlzYncAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBokslkIpVKJWJ3AAAAAAAAAEVXV1dX19ra2hG7AwCgqDKZTCZ2AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKQ0NjbmkslkInYHAMAR09zcPG7kyJEtsTuGujFjxkw0WwsAqCgf+9jHrrjkkkvuid0BAFBUTU1NrbEbAIay+++//+Bll122KnYHQ8iJJ554Xnt7e1fsDgB4P/fee++OtWvXhtgdDCG5XK61tra2LnYHALyf2traumnTps2J3QEAAAAAAAAAAAAAAAAAAPAuqVQqYfwMDA3DYwcAlIumpqajpkyZ0hO7AwAA4ANLxA4AysNDDz0U2traPvrcc899P3YLAEBRPPfccyGEEGbMmHFm7BaAw2UNEHBIzj333KN+//vfV3V1dZmJBABUlpqaGrugAAAAAAAAKks2m83FbgDgn7MIGo6wo446qufRRx8NboQASpdzgOAIe/PNN19NJpOjNm/e/NLevXvfid0DAAAAAEAMnZ2d3XV1dXWxOyqVNUAAEMmwYcNGxG4AAAAAAAAAhgTb4AHKWE9Pz6XZbHbMtm3bXo/dAuXEImiAMjYwMFBIpVIG1AJAObr66qt/uHr16n2xO+BQnXvuuf+2cOHCO2N38OF4AgSUhB07dmxetGhRZvLkybNit8Ch2L59+8YZM2bMi90xlJxzzjk3nnDCCefF7gAoqgkTJsxwMBxUrtNOO23xvHnzlsbuAAAAAAAAAACAGNLpdCp2QzmxCwyAsjVhwoQZZ5111nWxO0pBQ0NDa0NDQzZ2BwAwyDo7O7tDCGHx4sUPxm6hvIyIHQAAH9b69et/N2fOnM8UCoVC7BYAAAAAAIakXC7Xesstt6xpaWkZF7sFAKAoMplMZuPGjWHRokWGA1LR1q5dG6699tonYncAUETV1dXOoqCiPfHEE2HDhg0hdgcAQFHV1tYa6goAAAAAAACUqtbW1o4rr7zy4fr6eqMmhgizwADgX9ixY8eWfD6/p7q62touAAAAAAAAAAAAAACAkpDJZDKxGwAYPLbBw3sYGBgoxG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrJ+PHjp8ZuAAAoqhBC+O53vxtid1DZhscOAKCyPPjgg1UdHR2xMwAAAAAAAAAAACgjjY2Nufb29q6//z0ROwgAYLCFEPKFQuFgPp/vi90CAAAAAAAAAAAAAEAlmzlz5pmxGwAAiuqxxx4Lv/rVr0JtbW1d7BYAoIyMHDmypaamJhO748M47bTTFq9fvz7kcrnW2C0AAAAAAOVt0qRJsyZMmDAjdseRlk6nU7EbAKBsVFdXV8R/nBMmTJjxwx/+MNxwww1PhxDC3Llzl8ZuOpKOOeaYns7Ozu7YHQBACamvr8/m8/nw85//PLz++uvhW9/61rbYTUfSsmXLngohhE984hPXxW4BAErIxz/+8c9v3bo1TJs2bU7sliPthhtuePrtt98Oa9asCY7WAAD+QX19fTZ2w2A46qijZm/cuDFs2bIlXHbZZati9wAAFMWSJUt+GkIIv/jFL0LsFhgsI2IHAFBa7rjjjrMHBgYeLxQK+cH6N5YtW/ZUX1/fnjvvvPNTsa8XAKAo7r///oMhBE+YKG+Zv4ndAUD5mDFjhkXWlLempqZW4xcAAAAAoJQ0NjbmvvrVr77a3t7eFbsFAIotETvgSBkzZszE8ePHz+zt7d0Uu6Uc9PX17a+vrx+1bdu213bt2tUbuwcA+BDa2to6vvCFLzxhkB8AAAAAlaO5uXlcV1fXKbE7AKDUOAl6CNu7d+/2gYGBg7E7AACoEMuWLXvq61//+h9jdwDw/xsyu8Cg1CQSieHV1dV1zz///COxWwCAD6G1tbXDad8ADBXDYwdQHvL5/J6//vWvB2J3lJJUKpXo7u6+IJlMepIKZWD+/PnLr7/++l/G7qA0WATNIfnLX/7y59gNpSafzxcGBgYKw4YNi50CHIK1a9f+bP/+/e/E7gAAAAAAAAAAADgSmpqaWi+88MKVsTsAAIomm83mQgjhrrvu6o3dEoNt8HAIMplMJnYDwJG0c+fO7VddddUjfX19e2K3AFBCRo0a1dLc3Dwudgdw5HkCBPA+BgYGCiEEA4UBAAAAAAAAAAAoOy0tLeMMe4YIrrjiivs+85nPPBC7A6ASDfXjP+wCo2Rt2bJlTSaTycbuAKhE+/fv3x+7AQAAAOC9ZbPZXOwGSp9XYAAMKUuWLPnlrbfeui52BwBA0YwdO7brhBNOOC92BwAAAAAAQIlKp9OphoaGI3IcQ1NTU+uUKVO6Y18TAEDRtLS0jNuzZ09YsGDBitgtUOkccQ1QJPv27dv1yiuv9PX29r6xdevW/4rdAwAAAAAAAAAAAAD/IJ1Op2I3APDe7AKDQTJr1qxPNTY2Nvf29m6K3QIAUDTV1dWeAgFQWlKpVOLxxx8P99xzz47YLQAARZFKpRL79u0LIYRwyy23rIndAwAUx/DYATHl8/nCkiVL/mdVVVVVR0fHjNg9AABFc8UVV9xnQCEAAAAAAAB/U19fn21tbe2I3QEAcKgOexF0bW3tqDPOOGNp7AsBAAAAAAAAAAAAAAAAAAAAAAAAAEpf4v2+MW7cuKkDAwN9/f39/bEjAQCKIplM/vfN0bx585Y2NzePi90EAHAkvO8ToEKhEP7+53Q6ndm7d+/b+/fv3xM7GAAAAACgvB1//PELLrzwwpWxOwAAimbKlCnd27dvD7NmzZofuwUAoGgmTZo0q62trSN2BwAAAAAAAAAA5aG+vj4buwEAoKhee+218NJLL4XD/yQAgDJx11139YYQQjabzcVuAYB/5rLLLlt19NFHnxK7gyFi0qRJs2I3AMC/cs899+xYuXLlH2N3AAAU1ejRoyfGbgCgSGpqajKxG2CoSBz+RwBQDE1NTeOHDRsW8vl8X+wWAP6JVCpVMTfZ7e3tXel0OhW7AwAoAXPnzl16+eWX3xe7Y7CtW7cu/OAHP3CcAABQVfW73/0uhBDCihUrns1kMkN2DcMDDzwQQgjh9NNPvzJ2CwAMCclksmxfJV100UXfDCGELVu2hLlz5y6N3TOYbrrpphdnz569IHYHAFACXnnllRBCCOeee+6/xW4BgOGxA6gM8+bNO/qZZ56JnQEAUHzl/CoPAAAAAAAAAAAAAAAAorAjB3hPY8eO7aqqqioYvAkAVAyDXQEAAAAAgDJw9tlnL7/11lvXVVdXe7UBAFSGk08++cIQQli1atXu2C1A8dXX12djN0CpsAusgmzZsmXdsGHDPvnCCy/8cN26db+K3QMU15o1aw40NDSc/uyzzz4QuwUAoCguvfTSVRdccMHtsTsAAAAAAAafNUDAYbvuuut+mc1mR2/YsOG3sVsAKAO2pDMUhL9pbW3tiN0CcCiGxw6odH19ffnYDXC4zjrrrOurqqqqzjnnnP8RuwUAoGjmz5+/fPbs2Qtid1CZksmkJR0AQGU5//zzb3344YdD7A7Kx4jYAQBwuJ555pl/37t3719idwAAQMnyzhQA3mXs2LFdyWQyuX///j2xWwAAAAAAOGQNDQ3Z2A0AEIuDEA/D0qVLf7pw4cI7Y3d8GAsXLlz15JNP2jJa4qZMmdJ90UUXfTN2B8BQ4wboMGzatOmldDpdF7vjw3jsscdWbN68Od/W1mZ0QQnLZDLZ733ve0uXLVv2VOwWABgynJ5a+i655JJ7zj///FtjdwDwNzU1NZnYDQAAH9RhvQJraWnpWr169b729vau2BcCAHCoDuv1x86dO99KpVKpt95669Vdu3b1xr4YAEpHbW1tXXV1dU0+n++L3QIAUDTWGQIAAAAAAIdg9OjRE208ADg8DkKEMtPZ2dlz6qmnXhm7AwAAAAAAACh5mUwmk8vlWmN3AIPPGiCAv6mrq8t9/vOf/2l9fX02dgsAQNGMGjWqpbq6OhW7AwAAAAAAAAAAAHh/pvQCVLhp06bNqaqqKuzbt29X7BYolhGxAwCI6+KLL14dQqhavnz5UbFbAACKIp1Op9ra2jpidwAAAFBuJkyYMKOjo2N27A4AgKI56aSTLti6dWtoaWkZF7sFAN7NLjAOy5QpU7pra2sbdu3a1fv/fn3r1q3/tX79+r633nrr1b17974TuxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBdksmk0R0AAAAAAAAAAAAAAAAAAAAAAAAAAEDpq62trfv0pz99e2NjYy52CxDX8NgBAMXS39+/v1AoHKypqWmM3QIAAAAAAHxokydPnnXWWWddF7sDAEqJNUBDXG9v78Z33nnnzdgdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5aKxsTF33HHHzY/dAVCKDEOlpF188cX3XHXVVQ/H7ihH+Xx+z4gRI1KxOwCAD+hLX/rSsyGEcPHFF98TuwWoDCtWrHh22rRpc2J3ABXuO9/5Tli8ePGDsTuAyrBq1ardf/jDH0JtbW1d7BYAgKJIpVKJyy+//L76+vps7BagzE2YMGFGe3t7V+wOAICiuf7663/Z398fTj755AtjtwAAFMX06dPnhBDCt7/97YOxWwCGqmw2m4vdALzLpz71qRtnz569IHYHwFBUU1OTefLJJ8NnP/vZB2K3AAAUzU033fTij370o5BMJhOxWwAAiiaXy7XGbgAAAAAq2Ze//OX/vPnmm9fE7gCzwAAomhdffPGRRCJhfQoAAAAAAAAAAAAAAHwQJbsS//rrr//lrl27tvT29m6K3QLwbp/85CdXtLW1HbNx48YXY7cAQ8hrr70Wnn/++RC7A+C9zJ07d+ndd9/dG7sDGGLGjBkz8cwzz/x87A6A9zNy5MiW2A0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADElU6nU7EbDlUidgCUmttvv/3VZDKZ3rBhw29jtwCUk9/85jcHC4XCmJdffvlnsVv+leGxA6DUTJ8+vetnP/vZysbGxlzsFoBycu+9996bz+f3x+4APoRsNpv7yle+8nxzc/O42C0AAAAAAAAAAAAAQGRTp07taW1t7YjdwQeXTqdTHR0ds2N3ABwJtsFTVIVCofCRj3ykbA7K4v86cOBA/p133nkzdgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKUsETsA4HD19PRcWigU+nbv3r09dgtQHswCA8re9OnT5z/yyCOv1tfXZ2O3AAAUzTXXXPP46NGjJ77f98eNGze1ubl5XOxOAICiGT169MSmpqbW2B0AAPwLyWQy0dXVdUrsDgCAokkmk4nNmzeHm2++eU3sFhhKLIIGKGH9/f2FO+644xft7e1TY7cAAAAAAAAAQGypVCpRW1tbF7sDgPhOPvnkCxsbG3OxO4inYhZBNzc3HzV16tQzY3cAEN/kyZNPmTlz5vzYHQAAUDSGoQIcplwu1xpC6D948GAhdgtwaCrmFRjAYDn66KNPO+aYY86I3QEAUFTJZNITdQAAAAAAAAAAACgSi/YAIrn77rt78/n87o0bN74YuwUAoCieeuqp8Mgjj4TYHQAARWUeFQAAAAAAAAAAAAAAAHxQp59++pVNTU2tsTsAGDzDYwdAqamtrc21t7fPjN0BAAAAUHypVMroFACGhP8Dt0kSEjvem0EAAAAASUVORK5CYII=\"","module.exports = \"data:image/gif;base64,R0lGODlhDwEPAJECABkZGf///////wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJjAACACwAAAAADwEPAAAC/4yFFpjLotSDMb56JpaT7dxpoOc01gVyYfiV1LmSMDq/KI3R8m3yZq4AmIQN4iv3qxhbOOWqZYwFRUTm8BoTbaqfrDUJmxZlmKWBGzCj1WSlWEwxpwH085COl+ftjPoZ//SXFxWYRpUw+MYHl9UHEAT4smdYOKmHt8gX9+A3RyezRhI6dpeYSbmJhfApKaWpCdrI2EhGVhWlSDlL20rDVsmpJ6oKqxrbmwr3WtyrjLprrPXrK8tMG4Gmi3s6ynv8bR1NTepMiHxcTvzMnFuyjCrtum4OPe49JPGoPZ5rfl2cDpjAZCrYGdRVEOG8b+jOHICFpI0LiQtY2Sukook7O/+AFm1T2O3erIAswiHj9hCeuH4pu73LyDINRCcS6ZUZiPFgv0MQPo6q5wXgMn/iwIF0qPIcliBIXa7D1tCQPpWTNnqyKXMOzpJXQwwKSXDLUpPyCJHsADTglKlY215hq+6SxZ2kuIKl9qhstaT/VHqs+pPs1rPxBnIbVpjf0LgMxy4UmNbjVrSC7fKERxeoXnsmIz8mrLTZ4pNP3ZJeUtizGctB+e41uy/q3b6wH7OmwBkk4ouOf5HcRTcVmEhfTlN2TXHEZsSYDx+pwAs4dItc8320zjix7N055nYJPhNq8tK7Gx+/+fqyT8foW2PVPPx8+GnmwT8d+UFIJAH7+RMx+jrBV/0N6E9/KwhIXQwG+tdHgBbthyBRDhY4CC8AdnChI1EkuAqH/hlBYDB5YIhgAQAh+QQFRgACACwAAAAADwEPAAACRJSPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1Kp9Sq9YrNarfcLrAAADs=\"","module.exports = __webpack_public_path__ + \"static/media/navbarbg.ecaf7619.png\";","module.exports = __webpack_public_path__ + \"static/media/static.c1b4e0c3.gif\";","import React, { Component } from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n container: {\r\n paddingTop: theme.spacing(2),\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n paddingBottom: theme.spacing(4),\r\n minHeight: '85vh',\r\n },\r\n item: {\r\n height: '100%',\r\n width: '100%',\r\n flex: 1,\r\n },\r\n innerContainer: {\r\n\r\n },\r\n}));\r\n\r\nexport const Layout = (props) => {\r\n \r\n const classes = useStyles();\r\n const { children, suppressPadding } = props;\r\n \r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n};","import React, {useState, setState} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport { NavLink } from 'react-router-dom';\r\nimport {Formik} from \"formik\";\r\nimport * as Yup from \"yup\";\r\n\r\nimport createStyles from \"@material-ui/styles/createStyles\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nimport { Redirect } from 'react-router-dom';\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n root: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n margin: {\r\n margin: theme.spacing(1),\r\n },\r\n textField: {\r\n flexBasis: 200,\r\n },\r\n loginField: {\r\n paddingBottom: 20,\r\n }\r\n}));\r\n\r\nexport default function FormLogin() {\r\n \r\n const [showPassword, setShowPassword] = useState(false);\r\n const [password, setPassword] = useState('');\r\n const [formData, setFormData] = useState('');\r\n \r\n const classes = useStyles();\r\n \r\n const handleClose = () => {\r\n \r\n };\r\n \r\n const handleSubmit = () => {\r\n \r\n };\r\n\r\n const handleChange = prop => event => {\r\n setState({ [prop]: event.target.value });\r\n };\r\n\r\n const handleClickShowPassword = () => {\r\n setState(state => ({ showPassword: !state.showPassword }));\r\n };\r\n\r\n const handleMicrosoftLogin = () => {\r\n window.location.href = '/auth/login';\r\n };\r\n\r\n const initialState = formData;\r\n \r\n return (\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n Remember Me\r\n \r\n \r\n \r\n \r\n \r\n Forgot your password?\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n ---------- OR ----------\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\n\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\n\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { Formik } from 'formik';\r\n\r\nimport * as Yup from 'yup';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n margin: {\r\n margin: theme.spacing(1),\r\n },\r\n textField: {\r\n flexBasis: 200,\r\n },\r\n registerField: {\r\n paddingBottom: 10,\r\n }\r\n});\r\n\r\nclass FormSignUp extends React.Component {\r\n \r\n state = {\r\n showPassword: false,\r\n };\r\n\r\n handleChange = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleClickShowPassword = () => {\r\n this.setState(state => ({ showPassword: !state.showPassword }));\r\n };\r\n\r\n render() {\r\n \r\n const { classes } = this.props;\r\n const initialState = this.props.formData;\r\n const validationSchema = Yup.object({\r\n title: Yup.string(\"Enter a title\")\r\n .required(\"An article title is required.\"),\r\n });\r\n \r\n return (\r\n \r\n\r\n \r\n \r\n {\r\n this.handleSubmit(values, actions);\r\n }}\r\n >\r\n {props => {\r\n\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showPassword ? : }\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n By clicking Sign Up, you are indicating that you have read and agree to our Terms of Service.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nFormSignUp.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles)(FormSignUp);","export function appReducer(state: State, action: Action) {\r\n\r\n const { type, value } = action;\r\n \r\n \r\n // HELLO FROM APP REDUCER\r\n console.log('ACTION:');\r\n console.log(action);\r\n console.log('STATE:');\r\n console.log(state);\r\n console.log('VALUE:');\r\n console.log(value);\r\n \r\n switch (type) {\r\n case 'SET_AUTH_STATUS':\r\n return {\r\n ...state,\r\n authenticated: value.authenticated,\r\n identifier: value.identifier,\r\n username: value.username,\r\n userId: value.userId,\r\n email: value.email,\r\n allowedActions: value.allowedActions\r\n };\r\n case 'SET_TITLE':\r\n return {\r\n ...state,\r\n title: value,\r\n };\r\n case 'TOGGLE_USER_MENU':\r\n return {\r\n ...state,\r\n userMenuOpen: !(state.userMenuOpen),\r\n activeElement: value,\r\n };\r\n case 'CLEAR_REDIRECT':\r\n return {\r\n ...state,\r\n redirect: false,\r\n redirectUri: null,\r\n };\r\n case 'SET_REDIRECT':\r\n return {\r\n ...state,\r\n redirect: true,\r\n redirectUri: value,\r\n };\r\n \r\n case 'TOGGLE_CONTENT_MENU':\r\n return {\r\n ...state,\r\n contentMenuOpen: true,\r\n };\r\n case 'SET_CATEGORIES':\r\n return {\r\n ...state,\r\n categories: value,\r\n };\r\n case 'TOGGLE_AUTH_MODAL':\r\n return {\r\n ...state,\r\n authModalOpen: !(state.authModalOpen)\r\n };\r\n case 'OPEN_AUTH_MODAL':\r\n return {\r\n ...state,\r\n authModalOpen: true,\r\n };\r\n case 'CLOSE_AUTH_MODAL':\r\n return {\r\n ...state,\r\n authModalOpen: false,\r\n };\r\n case 'SET_AUTH_MODAL_TAB':\r\n \r\n // 'Login' 'SignUp'\r\n return {\r\n ...state,\r\n authModalOpen: true,\r\n authModalTab: value\r\n };\r\n \r\n \r\n case 'TOGGLE_PROFILE_MENU':\r\n return {\r\n ...state,\r\n profileMenuOpen: !state.profileMenuOpen,\r\n };\r\n \r\n \r\n case 'CLOSE_MOBILE_MENU':\r\n return {\r\n ...state,\r\n mobileMenuOpen: false,\r\n };\r\n\r\n case 'OPEN_MOBILE_MENU':\r\n return {\r\n ...state,\r\n mobileMenuOpen: true,\r\n };\r\n \r\n case 'OPEN_DRAWER':\r\n return {\r\n ...state,\r\n drawerOpen: true,\r\n };\r\n\r\n case 'CLOSE_DRAWER':\r\n return {\r\n ...state,\r\n drawerOpen: false,\r\n };\r\n\r\n case 'TOGGLE_DRAWER':\r\n return {\r\n ...state,\r\n drawerOpen: !(state.drawerOpen),\r\n };\r\n case 'HANDLE_LOGOUT':\r\n return {\r\n ...state,\r\n authenticated: false,\r\n identifier: null,\r\n username: null,\r\n email: null,\r\n allowedActions: [],\r\n };\r\n\r\n case 'SET_ADMINISTRATION_LOADING':\r\n return {\r\n ...state,\r\n administrationLoading: value,\r\n };\r\n\r\n case 'SET_EDITOR':\r\n return {\r\n ...state,\r\n editorState: value,\r\n };\r\n case 'SET_EDITOR_PLUGINS':\r\n return {\r\n ...state,\r\n editorPlugins: value\r\n };\r\n \r\n case 'SET_CONTENT_LIST':\r\n {\r\n /*\r\n let mappedContentList = {\r\n itemId: value.itemId,\r\n title: value.title,\r\n slug: value.slug,\r\n createdDtm: value.createdDtm,\r\n modifiedDtm: value.modifiedDtm,\r\n publishedDtm: value.publishedDtm,\r\n categoryId: value.categoryId,\r\n category: value.category,\r\n subCategoryId: value.subCategoryId,\r\n authorId: value.authorId,\r\n authorDisplayName: value.authorDisplayName,\r\n bannerId: value.bannerId,\r\n bannerUri: value.bannerUri,\r\n bannerThumbnailUri: value.bannerThumbnailUri,\r\n };\r\n */\r\n return {\r\n ...state,\r\n contentList: value\r\n };\r\n }\r\n \r\n case 'SET_SEARCH_TEXT':\r\n return {\r\n ...state,\r\n search: value,\r\n };\r\n\r\n default: {\r\n throw new Error(`Unhandled action type: ${action.type}`)\r\n }\r\n }\r\n}","export const initialState = {\r\n authenticationModal: {open: false, tab: 'login'},\r\n anchorEl: null,\r\n mobileMoreAnchorEl: null,\r\n userMenuOpen: false,\r\n isMenuOpen: false,\r\n mobileMenuOpen: false,\r\n authModalTab: 'Login',\r\n authModalOpen: false,\r\n drawerType: 'Support',\r\n drawerOpen: false,\r\n profileMenuOpen: false,\r\n authenticated: false,\r\n identifier: '',\r\n userId: 0,\r\n username: '',\r\n email: '',\r\n allowedActions: {},\r\n activeElement: null,\r\n contentList: [],\r\n administrationLoading: false,\r\n title: 'Business Wintelligence'\r\n};","import React, { useReducer, useContext } from \"react\";\r\nimport { appReducer } from \"./Reducers\";\r\nimport { initialState } from \"./State\";\r\nimport { Action } from \"./Actions\";\r\n\r\ntype Dispatch = (action: Action) => void\r\n\r\ntype AppProviderProps = {children: React.ReactNode}\r\n\r\nconst AppStateContext = React.createContext();\r\nconst AppDispatchContext = React.createContext();\r\n\r\n// PROVIDER\r\nfunction AppProvider({children}: AppProviderProps) {\r\n \r\n const [state, dispatch] = useReducer(appReducer, initialState);\r\n \r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nfunction useAppState() {\r\n const context = useContext(AppStateContext);\r\n if (context === undefined) {\r\n throw new Error('useAppState must be used within a AppProvider')\r\n }\r\n return context\r\n}\r\n\r\nfunction useAppDispatch() {\r\n const context = useContext(AppDispatchContext);\r\n if (context === undefined) {\r\n throw new Error('useAppDispatch must be used within a AppProvider')\r\n }\r\n return context\r\n}\r\n\r\nfunction useAppContext() {\r\n return [useAppState(AppStateContext), useAppDispatch(AppDispatchContext)]\r\n}\r\n\r\nexport {AppProvider, useAppState, useAppDispatch, useAppContext}","import React, {useState} from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FormLogin from './FormLogin';\r\nimport FormSignUp from './FormSignUp';\r\nimport Box from '@material-ui/core/Box';\r\nimport insert_coin from './../../img/auth/insert-coin.gif';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {useAppContext} from \"../../context/Provider\";\r\n\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n formDialogTitle: {\r\n color: 'primary',\r\n },\r\n\r\n mainContainer: {\r\n transition: 'all 1s ease !important',\r\n overflow: 'hidden',\r\n },\r\n primaryBox: {\r\n padding: 40,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n },\r\n secondaryBox: {\r\n padding: 40,\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n backgroundColor: '#000000',\r\n color: '#ffffff',\r\n textAlign: 'center',\r\n },\r\n insertCoin: {\r\n width: 271,\r\n height: 15,\r\n margin: '0 auto 0 auto',\r\n },\r\n tabClass: {\r\n borderBottom: 'solid 1px #cccccc', \r\n marginBottom: 16,\r\n },\r\n}));\r\n\r\nexport default function AuthenticationModal() {\r\n \r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n \r\n return(\r\n \r\n \r\n \r\n \r\n \r\n GG\r\n \r\n \r\n { dispatch({ type: 'SET_AUTH_MODAL_TAB', value })}}\r\n indicatorColor=\"primary\"\r\n textColor=\"primary\"\r\n centered\r\n className={classes.tabClass}\r\n >\r\n \r\n \r\n \r\n\r\n\r\n {state.authModalTab === \"Login\" && }\r\n {state.authModalTab === \"SignUp\" && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n GG THIS IS MOBILE HIDDEN\r\n \r\n \"Insert\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\n\r\nimport CardMedia from '@material-ui/core/CardMedia';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\n\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n\r\nconst cards = [1, 2, 3, 4, 5, 6];\r\n\r\nconst styles = theme => ({\r\n root: {\r\n flex: 1,\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'stretch',\r\n padding: '35px',\r\n },\r\n\r\n layout: {\r\n overflow: 'hidden',\r\n padding: '50px',\r\n position: 'relative',\r\n margin: '50px 0px 50px 0px',\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`,\r\n },\r\n card: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.palette.background.primary,\r\n\r\n },\r\n cardMedia: {\r\n paddingTop: '56.25%', // 16:9\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n typography: {\r\n color: '#ffffff',\r\n }\r\n },\r\n});\r\n\r\nclass GameScroller extends Component {\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n {cards.map(card => (\r\n \r\n \r\n \r\n \r\n \r\n Game Name\r\n \r\n \r\n\r\n \r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(GameScroller);\r\n","import React from \"react\";\r\nimport GameScroller from \"./../../components/GameScroller\";\r\n\r\nconst MainDrawerContents = props => {\r\n const { drawerType } = props;\r\n return (\r\n \r\n {drawerType === \"Guild\" && }\r\n {drawerType === \"Game\" && }\r\n {drawerType === \"Community\" && }\r\n {drawerType === \"Marketplace\" && }\r\n {drawerType === \"Support\" && }\r\n \r\n );\r\n};\r\n\r\nexport default MainDrawerContents;\r\n","import React from 'react';\r\nimport linkifyIt from 'linkify-it';\r\n\r\nexport const LINK_REGEX = /(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?/;\r\nexport const HASHTAG_REGEX = /(#[A-Z0-9a-zÀ-ÖØ-öø-ÿ]+)/g;\r\nconst linkify = linkifyIt();\r\n\r\nfunction findWithRegex(regex, contentBlock, callback) {\r\n const text = contentBlock.getText();\r\n let matchArr;\r\n let start;\r\n while ((matchArr = regex.exec(text)) !== null) {\r\n start = matchArr.index;\r\n callback(start, start + matchArr[0].length);\r\n }\r\n}\r\n\r\nconst linkStrategy = (contentBlock: Object, callback: Function) => {\r\n const links = linkify.match(contentBlock.getText());\r\n if (typeof links !== 'undefined' && links !== null) {\r\n links.forEach((link) => callback(link.index, link.lastIndex));\r\n }\r\n};\r\n\r\nconst LinkComponent = ({ children }, props) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nfunction hashtagStrategy(block, callback, state) {\r\n findWithRegex(HASHTAG_REGEX, block, callback);\r\n}\r\n\r\nconst HashtagComponent = ({ children }, props) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport const decorators = [\r\n {\r\n strategy: linkStrategy,\r\n component: LinkComponent\r\n },\r\n {\r\n strategy: hashtagStrategy,\r\n component: HashtagComponent\r\n }\r\n];\r\n\r\nexport default decorators;","import {Link} from \"react-router-dom\";\r\nimport React from \"react\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nexport const AuthorLink = (props) => {\r\n \r\n // requires authorName, authorId\r\n \r\n let authorFormattedName = props.authorName.replace(/\\s/g, '-').toLowerCase();\r\n\r\n return (\r\n \r\n \r\n {props.authorName}\r\n \r\n \r\n )\r\n}","import React from \"react\";\r\nimport {createStyles, makeStyles} from \"@material-ui/core/styles\";\r\nimport Moment from \"react-moment\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {AuthorLink} from \"./AuthorLink\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n detailBoxAvatar: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n borderRadius: 50,\r\n backgroundColor: '#cccccc',\r\n },\r\n\r\n detailBoxDate: {\r\n fontSize: 16,\r\n color: theme.extendedProperties.grayscale.primary,\r\n },\r\n\r\n detailBoxAuthor: {\r\n fontSize: 20,\r\n textDecoration: 'none',\r\n color: theme.extendedProperties.grayscale.primary,\r\n },\r\n\r\n detailBoxDetails: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: 400,\r\n paddingLeft: 10,\r\n justifyContent: 'center',\r\n alignItems: 'bottom',\r\n },\r\n\r\n detailBoxHorizontalDetails: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n paddingLeft: 10,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n \r\n },\r\n\r\n authorLink: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n fontWeight: 400,\r\n fontSize: 24,\r\n margin: 0,\r\n },\r\n\r\n}));\r\n\r\nexport const Avatar = (props) => {\r\n \r\n const classes = useStyles();\r\n var size = props.size || 80;\r\n \r\n return (\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport const AvatarDetails = (props) => {\r\n\r\n const classes = useStyles();\r\n var size = props.size || 64;\r\n \r\n return (\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n {props.createdDtm}\r\n
\r\n\r\n
\r\n )\r\n};\r\n\r\nexport const AvatarHorizontalDetails = (props) => {\r\n\r\n const classes = useStyles();\r\n var size = props.size || 64;\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n —\r\n
\r\n \r\n
\r\n {props.createdDtm}\r\n
\r\n\r\n
\r\n )\r\n};","export const BLOB_STORAGE_URI = 'https://hyper.blob.core.windows.net/biwin/';\r\nexport const BLOB_STORAGE_URL_OLD = 'https://hyper.blob.core.windows.net/biwin/';","import type { EditorState } from \"./EditorState\";\r\n//import type { EditorAction } from \"./EditorActions\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\n\r\n\r\nexport function editorReducer(state: EditorState, action: EditorAction) {\r\n\r\n const { type, value } = action;\r\n \r\n // HELLO FROM APP REDUCER\r\n console.log(action);\r\n\r\n switch (type) {\r\n\r\n case 'SET_EDITOR_STATE':\r\n return {\r\n ...state,\r\n editorState: value\r\n };\r\n case 'SET_EDITOR_REF':\r\n return {\r\n ...state,\r\n editorRef: true,\r\n };\r\n case 'SET_EDITOR_PLUGINS':\r\n return {\r\n ...state,\r\n plugins: value\r\n };\r\n case 'SET_EDITOR_DECORATORS':\r\n return {\r\n ...state,\r\n decorators: value\r\n };\r\n\r\n case 'SET_EDITOR_UI':\r\n return {\r\n ...state,\r\n editorUi: value\r\n };\r\n case 'SET_CONTENT_LOADING':\r\n return {\r\n ...state,\r\n contentLoading: value,\r\n };\r\n case 'SET_CONTENT_ID':\r\n return {\r\n ...state,\r\n contentId: value,\r\n };\r\n \r\n case 'SET_BANNER_ID':\r\n return {\r\n ...state,\r\n bannerId: value,\r\n };\r\n \r\n case 'SET_CATEGORIES':\r\n return {\r\n ...state,\r\n categories: value,\r\n };\r\n\r\n case 'SET_CATEGORY':\r\n return {\r\n ...state,\r\n category: value,\r\n };\r\n\r\n case 'SET_SUBCATEGORIES':\r\n return {\r\n ...state,\r\n subcategories: value,\r\n };\r\n \r\n case 'SET_SUBCATEGORY':\r\n return {\r\n ...state,\r\n subcategory: value,\r\n };\r\n case 'SET_CONTENT_DETAIL':\r\n return {\r\n ...state,\r\n slug: value.slug,\r\n title: value.title,\r\n category: value.categoryId,\r\n subcategory: value.subCategoryId,\r\n bannerId: value.bannerId,\r\n bannerUri: BLOB_STORAGE_URI + value.bannerUri\r\n };\r\n case 'LOAD_CONTENT':\r\n if (typeof(value.attachments) === 'undefined') {\r\n value.attachments = [];\r\n }\r\n return {\r\n ...state,\r\n slug: value.slug,\r\n title: value.title,\r\n category: value.categoryId,\r\n subcategory: value.subCategoryId,\r\n editorState: value.editorState,\r\n attachments: value.attachments,\r\n bannerId: value.bannerId,\r\n bannerUri: BLOB_STORAGE_URI + value.bannerUri\r\n };\r\n case 'HANDLE_CHANGE':\r\n return {\r\n ...state,\r\n ...value\r\n };\r\n default: {\r\n throw new Error(`Unhandled action type: ${action.type}`)\r\n }\r\n }\r\n}","import Draft, {\r\n convertToRaw,\r\n convertFromRaw,\r\n ContentState,\r\n EditorState as ReactEditorState,\r\n} from \"draft-js\";\r\n\r\nimport React from \"react\";\r\n\r\n\r\nexport type EditorState = {\r\n editorState: string,\r\n contentId: number,\r\n editorRef: object,\r\n isSubmitting: boolean,\r\n categories: [],\r\n subcategories: [],\r\n category: number,\r\n subcategory: number,\r\n slug: string,\r\n title: string,\r\n attachments: [],\r\n bannerId: number,\r\n bannerUri: string,\r\n contentLoading: boolean,\r\n plugins: []\r\n}\r\n\r\nexport const editorInitialState = {\r\n editorState: ReactEditorState.createEmpty(),\r\n editorStateRaw: '',\r\n contentId: '',\r\n editorRef: null,\r\n isSubmitting: false,\r\n categories: [{undefined}],\r\n subcategories: [{undefined}],\r\n category: '',\r\n subcategory: '',\r\n slug: '',\r\n title: '',\r\n attachments: [{undefined}],\r\n bannerId: -1,\r\n bannerUri: '',\r\n plugins: [],\r\n decorators: [],\r\n editorUi: {},\r\n contentLoading: false,\r\n};","import React, { createContext, useReducer, useContext } from \"react\";\r\nimport { editorReducer } from \"./EditorReducers\";\r\nimport { editorInitialState, EditorState } from \"./EditorState\";\r\ntype Dispatch = (action: Action) => void\r\ntype EditorProviderProps = {children: React.ReactNode}\r\n//import { EditorAction } from \"./EditorActions\";\r\n\r\nconst EditorStateContext = React.createContext();\r\nconst EditorDispatchContext = React.createContext();\r\n\r\n// PROVIDER\r\nfunction EditorProvider({children}) {\r\n const [state, dispatch] = useReducer(editorReducer, editorInitialState);\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nfunction useEditorState() {\r\n const context = useContext(EditorStateContext);\r\n if (context === undefined) {\r\n throw new Error('useEditortate must be used within a EditorProvider')\r\n }\r\n return context\r\n}\r\n\r\nfunction useEditorDispatch() {\r\n const context = useContext(EditorDispatchContext);\r\n if (context === undefined) {\r\n throw new Error('useEditorDispatch must be used within a EditorProvider')\r\n }\r\n return context\r\n}\r\n\r\nfunction useEditorContext() {\r\n return [useEditorState(EditorStateContext), useEditorDispatch(EditorDispatchContext)]\r\n}\r\n\r\nexport {EditorProvider, useEditorState, useEditorDispatch, useEditorContext}","const createStore = initialState => {\n let state = initialState || {};\n const listeners = {};\n\n const subscribeToItem = (key, callback) => {\n listeners[key] = listeners[key] || [];\n listeners[key].push(callback);\n };\n\n const unsubscribeFromItem = (key, callback) => {\n listeners[key] = listeners[key].filter(listener => listener !== callback);\n };\n\n const updateItem = (key, item) => {\n state = {\n ...state,\n [key]: item,\n };\n if (listeners[key]) {\n listeners[key].forEach(listener => listener(state[key]));\n }\n };\n\n const getItem = key => state[key];\n\n return {\n subscribeToItem,\n unsubscribeFromItem,\n updateItem,\n getItem,\n };\n};\n\nexport default createStore;\n","/* eslint-disable react/no-array-index-key */\n/** @jsx jsx */\nimport { jsx } from '@emotion/core';\nimport React from 'react';\nimport { getVisibleSelectionRect } from 'draft-js';\nimport {\n ItalicButton,\n BoldButton,\n UnderlineButton,\n CodeButton,\n} from 'draft-js-buttons';\n\nexport default class Toolbar extends React.Component {\n static defaultProps = {\n children: externalProps => (\n // may be use React.Fragment instead of div to improve perfomance after React 16\n
\n \n \n \n \n
\n ),\n };\n\n state = {\n isVisible: false,\n position: undefined,\n\n /**\n * If this is set, the toolbar will render this instead of the children\n * prop and will also be shown when the editor loses focus.\n * @type {Component}\n */\n overrideContent: undefined,\n };\n\n UNSAFE_componentWillMount() {\n this.props.store.subscribeToItem('selection', this.onSelectionChanged);\n }\n\n componentWillUnmount() {\n this.props.store.unsubscribeFromItem('selection', this.onSelectionChanged);\n }\n\n /**\n * This can be called by a child in order to render custom content instead\n * of the children prop. It's the responsibility of the callee to call\n * this function again with `undefined` in order to reset `overrideContent`.\n * @param {Component} overrideContent\n */\n onOverrideContent = overrideContent => {\n this.setState({ overrideContent });\n };\n\n onSelectionChanged = () => {\n // need to wait a tick for window.getSelection() to be accurate\n // when focusing editor with already present selection\n setTimeout(() => {\n if (!this.toolbar) return;\n\n // The editor root should be two levels above the node from\n // `getEditorRef`. In case this changes in the future, we\n // attempt to find the node dynamically by traversing upwards.\n const editorRef = this.props.store.getItem('getEditorRef')();\n if (!editorRef) return;\n\n // This keeps backwards compatibility with React 15\n let editorRoot =\n editorRef.refs && editorRef.refs.editor\n ? editorRef.refs.editor\n : editorRef.editor;\n while (editorRoot.className.indexOf('DraftEditor-root') === -1) {\n editorRoot = editorRoot.parentNode;\n }\n const editorRootRect = editorRoot.getBoundingClientRect();\n\n const parentWindow = editorRoot.ownerDocument && editorRoot.ownerDocument.defaultView;\n const selectionRect = getVisibleSelectionRect(parentWindow || window);\n if (!selectionRect) return;\n\n // The toolbar shouldn't be positioned directly on top of the selected text,\n // but rather with a small offset so the caret doesn't overlap with the text.\n const extraTopOffset = -5;\n\n const position = {\n top:\n editorRoot.offsetTop -\n this.toolbar.offsetHeight +\n (selectionRect.top - editorRootRect.top) +\n extraTopOffset,\n left:\n editorRoot.offsetLeft +\n (selectionRect.left - editorRootRect.left) +\n selectionRect.width / 2,\n };\n this.setState({ position });\n });\n };\n\n getStyle() {\n const { store } = this.props;\n const { overrideContent, position } = this.state;\n const selection = store\n .getItem('getEditorState')()\n .getSelection();\n // overrideContent could for example contain a text input, hence we always show overrideContent\n // TODO: Test readonly mode and possibly set isVisible to false if the editor is readonly\n const isVisible =\n (!selection.isCollapsed() && selection.getHasFocus()) || overrideContent;\n const style = { ...position };\n\n if (isVisible) {\n style.visibility = 'visible';\n style.transform = 'translate(-50%) scale(1)';\n style.transition = 'transform 0.15s cubic-bezier(.3,1.2,.2,1)';\n } else {\n style.transform = 'translate(-50%) scale(0)';\n style.visibility = 'hidden';\n }\n\n return style;\n }\n\n handleToolbarRef = node => {\n this.toolbar = node;\n };\n\n render() {\n const { theme, store } = this.props;\n const { overrideContent: OverrideContent } = this.state;\n const childrenProps = {\n theme: theme.buttonStyles,\n getEditorState: store.getItem('getEditorState'),\n setEditorState: store.getItem('setEditorState'),\n onOverrideContent: this.onOverrideContent,\n };\n\n return (\n \n {OverrideContent ? (\n \n ) : (\n this.props.children(childrenProps)\n )}\n \n );\n }\n}\n","import React from 'react';\nimport { css } from '@emotion/core';\nimport {createStyles, makeStyles} from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles((theme) => createStyles({\n separator: {\n display: 'inline-block',\n borderRight: '1px solid #ddd',\n height: 24,\n margin: '0 0.5em',\n },\n}));\n\nexport const Separator = () => {\n const classes = useStyles();\n return (\n
\n )\n}\n\n","import { css } from 'linaria';\n\nconst buttonStyles = {\n buttonWrapper: css`\n display: inline-block;\n `,\n\n button: css`\n background: #fbfbfb;\n color: #888;\n font-size: 18px;\n border: 0;\n padding-top: 5px;\n vertical-align: bottom;\n height: 34px;\n width: 36px;\n &:hover,\n &:focus {\n background: #f3f3f3;\n outline: 0; /* reset for :focus */\n }\n svg {\n fill: #888;\n }\n `,\n\n active: css`\n background: #efefef;\n color: #444;\n svg {\n fill: #444;\n }\n `,\n};\n\nconst toolbarStyles = {\n toolbar: css`\n left: 50%;\n transform: translate(-50%) scale(0);\n position: absolute;\n border: 1px solid #ddd;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0px 1px 3px 0px rgba(220, 220, 220, 1);\n z-index: 2;\n box-sizing: border-box;\n &:after,\n &:before {\n top: 100%;\n left: 50%;\n border: solid transparent;\n content: ' ';\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n }\n &:after {\n border-color: rgba(255, 255, 255, 0);\n border-top-color: #fff;\n border-width: 4px;\n margin-left: -4px;\n }\n &:before {\n border-color: rgba(221, 221, 221, 0);\n border-top-color: #ddd;\n border-width: 6px;\n margin-left: -6px;\n }\n `,\n};\n\nexport const defaultTheme = {\n buttonStyles,\n toolbarStyles,\n};\n","import React from 'react';\nimport createStore from './utils/createStore';\nimport Toolbar from './components/Toolbar';\nimport {Separator} from './components/Separator';\nimport { defaultTheme } from './theme.js';\n\nexport default (config = {}) => {\n const store = createStore({\n isVisible: false,\n });\n\n const { theme = defaultTheme } = config;\n\n const InlineToolbar = props => (\n \n );\n\n return {\n initialize: ({ getEditorState, setEditorState, getEditorRef }) => {\n store.updateItem('getEditorState', getEditorState);\n store.updateItem('setEditorState', setEditorState);\n store.updateItem('getEditorRef', getEditorRef);\n },\n // Re-Render the text-toolbar on selection change\n onChange: editorState => {\n store.updateItem('selection', editorState.getSelection());\n return editorState;\n },\n InlineToolbar,\n };\n};\n\nexport { Separator };\n","import Prism from 'prismjs';\r\nimport createPrismPlugin from 'draft-js-prism-plugin';\r\nimport { composeDecorators } from 'draft-js-plugins-editor';\r\nimport 'prismjs/components/prism-powershell';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/components/prism-sql\";\r\nimport \"prismjs/components/prism-c\";\r\nimport './../editor/theme/prism-material-dark.css';\r\nimport React, {useEffect, useState} from \"react\";\r\nimport { DefaultVideoComponent} from \"./plugins/video/DefaultVideoComponent\";\r\nimport createImagePlugin from \"draft-js-image-plugin\";\r\nimport createToolbarPlugin from \"draft-js-static-toolbar-plugin\";\r\nimport createLinkPlugin from 'draft-js-anchor-plugin';\r\nimport createAlignmentPlugin from 'draft-js-alignment-plugin';\r\nimport createFocusPlugin from 'draft-js-focus-plugin';\r\nimport createResizeablePlugin from 'draft-js-resizeable-plugin';\r\nimport createBlockDndPlugin from 'draft-js-drag-n-drop-plugin';\r\nimport createEmojiPlugin from 'draft-js-emoji-plugin';\r\nimport linkStyles from './theme/linkStyles.css';\r\nimport createInlineToolbarPlugin from \"./plugins/custom-inline-toolbar-plugin/src\";\r\nimport createVideoPlugin from \"draft-js-video-plugin\";\r\nimport { css } from 'linaria';\r\n\r\nimport { Entity } from 'draft-js';\r\nimport utils from 'draft-js-video-plugin/lib/video/utils';\r\nimport addVideo from 'draft-js-video-plugin/lib/video/modifiers/addVideo';\r\nimport * as customType from 'draft-js-video-plugin/lib/video/constants';\r\n\r\nimport { useEditorContext } from \"./EditorProvider\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport createStyles from \"@material-ui/styles/createStyles\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\n\r\nconst linkPlugin = createLinkPlugin({\r\n theme: linkStyles,\r\n placeholder: 'http://…'\r\n});\r\n\r\nexport const imagePlugin = createImagePlugin({\r\n theme: {\r\n image: 'editorImage'\r\n }\r\n});\r\n\r\nconst toolbarPlugin = createToolbarPlugin();\r\n\r\nconst prismPlugin = createPrismPlugin({\r\n // It's required to provide your own instance of Prism\r\n prism: Prism\r\n});\r\n\r\nconst focusPlugin = createFocusPlugin();\r\nconst resizeablePlugin = createResizeablePlugin();\r\nconst blockDndPlugin = createBlockDndPlugin();\r\nconst alignmentPlugin = createAlignmentPlugin();\r\nconst emojiPlugin = createEmojiPlugin();\r\n\r\nexport const { EmojiSuggestions, EmojiSelect } = emojiPlugin;\r\nexport const { AlignmentTool } = alignmentPlugin;\r\nexport const { Toolbar } = toolbarPlugin;\r\nexport const { LinkButton } = linkPlugin;\r\n\r\nexport const inlineToolbarPlugin = createInlineToolbarPlugin();\r\n\r\n//export const { InlineToolbar } = inlineToolbarPlugin;\r\n\r\nexport const decorators = composeDecorators(\r\n resizeablePlugin.decorator,\r\n focusPlugin.decorator,\r\n blockDndPlugin.decorator,\r\n);\r\n\r\nconst videoPluginTheme = {\r\n iframeContainer: css`\r\n width: 100%;\r\n height: 0;\r\n position: relative;\r\n padding-bottom: 56.25%;\r\n `,\r\n\r\n iframe: css`\r\n width: 100%;\r\n height: 100%;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n `,\r\n\r\n invalidVideoSrc: css`\r\n text-align: center;\r\n background-color: #eaeaea;\r\n padding: 1em;\r\n `,\r\n\r\n video: css`\r\n width: 100%;\r\n height: 100%;\r\n `,\r\n};\r\n\r\n// source to use as guide: https://github.com/draft-js-plugins/draft-js-plugins/tree/master/draft-js-video-plugin/src\r\nexport const videoPlugin = createVideoPlugin({\r\n theme: videoPluginTheme,\r\n});\r\n\r\nexport const plugins = [\r\n prismPlugin,\r\n emojiPlugin,\r\n focusPlugin,\r\n alignmentPlugin,\r\n inlineToolbarPlugin,\r\n toolbarPlugin,\r\n resizeablePlugin,\r\n linkPlugin,\r\n videoPlugin,\r\n imagePlugin,\r\n];\r\n","import React from \"react\";\r\n\r\nexport const VisibilityToggle = (props) => {\r\n\r\n const {visibility} = props; \r\n\r\n if (visibility) {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n }\r\n return null\r\n \r\n};\r\n","import {ColorInactiveLikeIcon, ColorLikeIcon} from \"../icons/Icons\";\r\nimport React from \"react\";\r\n\r\n\r\nexport const AdaptiveLikeIcon = (props) => {\r\n \r\n const { liked, size } = props;\r\n \r\n if (!liked) {\r\n return (\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n}","import DialogTitle from \"@material-ui/core/DialogTitle/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent/DialogContent\";\r\nimport TextField from \"@material-ui/core/TextField/TextField\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport React from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\n\r\n\r\nexport const LoginPrompt = (props) => {\r\n\r\n const { open, handleClose, handleLogin } = props;\r\n \r\n return (\r\n \r\n Please Login\r\n \r\n \r\n You'll need to login to do that. If you don't have an account, registering is easy. All you need is an \r\n existing Microsoft account. \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import {css} from \"@emotion/core\";\r\nimport PuffLoader from \"react-spinners/PuffLoader\";\r\nimport React from \"react\";\r\n\r\nconst override = css`\r\n position: fixed;\r\n top: 20%;\r\n left: 50%;\r\n display: block;\r\n margin: 0 auto;\r\n border-color: #0fb28e;\r\n`;\r\n\r\nexport const OverlaySpinner = (props) => {\r\n \r\n //BeatLoader\r\n \r\n return (\r\n \r\n )\r\n};\r\n","import Grid from \"@material-ui/core/Grid\";\r\nimport Card from \"@material-ui/core/Card/Card\";\r\nimport {Link, Route, Routes, useNavigate, useParams} from \"react-router-dom\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport CardActions from \"@material-ui/core/CardActions/CardActions\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport createStyles from \"@material-ui/styles/createStyles\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n container: {\r\n marginTop: 10,\r\n padding: '0px 50px 0px 50px',\r\n minHeight: 800,\r\n },\r\n headerContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n userImage: {\r\n width: 200,\r\n height: 200,\r\n borderRadius: 100,\r\n backgroundColor: '#cccccc',\r\n backgroundImage: 'url(`${BLOB_STORAGE_URI}/biwin/images/about/user.jpg`)',\r\n backgroundSize: 'cover',\r\n },\r\n userBio: {\r\n flexGrow: 1,\r\n height: 200,\r\n marginLeft: 40,\r\n padding: 40,\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardContent: {\r\n padding: '10px 0px 0px 0px',\r\n\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n cardHeader: {\r\n color: '#cccccc',\r\n margin: 0,\r\n fontSize: 18,\r\n },\r\n link: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n darkLink: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.main,\r\n\r\n },\r\n authorName: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n },\r\n authorLink: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n tags: {\r\n fontSize: 13,\r\n },\r\n conversationButton: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'center',\r\n margin: '10px 0px 10px 0px',\r\n padding: '10px 0px 10px 0px',\r\n border: 'solid 1px ' + theme.palette.primary.linkColor,\r\n color: theme.palette.primary.linkColor,\r\n },\r\n cardMedia: {\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right bottom',\r\n width: '100%',\r\n height: 130,\r\n margin: 0,\r\n flexShrink: 0,\r\n border: 'none',\r\n },\r\n title: {\r\n fontSize: 22,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: theme.palette.primary.textColor,\r\n transition: '0.3s',\r\n textDecoration: 'none',\r\n display: 'inline-block',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n cardAction: {\r\n padding: 0,\r\n textAlign: 'left',\r\n },\r\n categories: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n width: '100%',\r\n color: '#cccccc',\r\n padding: 0,\r\n margin: 0,\r\n },\r\n sideTitle: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n },\r\n sideAuthor: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n paddingTop: 4,\r\n },\r\n sideDate: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n },\r\n sideRank: {\r\n paddingRight: 20,\r\n paddingTop: 10,\r\n fontSize: 28,\r\n color: '#cccccc',\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n\r\n}));\r\n\r\nconst LoaderComponent = () => {\r\n\r\n let newsNum = [0,1,2,3,4,5];\r\n return (\r\n \r\n {newsNum.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n};\r\n\r\nexport const ContentList = (props) => {\r\n \r\n const [contentList, setContentList] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const { limit, authorId, categoryId, subcategoryId } = props;\r\n const classes = useStyles();\r\n let params = '';\r\n params = `limit=${limit ?? 14}`;\r\n \r\n if (typeof authorId !== 'undefined'){\r\n params = params + `&authorId=${props.authorId}`\r\n }\r\n if (typeof categoryId !== 'undefined'){\r\n params = params + `&categoryId=${props.categoryId}`\r\n }\r\n if (typeof subcategoryId !== 'undefined'){\r\n params = params + `&subcategoryId=${props.subcategoryId}`\r\n }\r\n \r\n useEffect(() => {\r\n\r\n async function getRecentContent() {\r\n try {\r\n const response = await fetch(\r\n `/api/content/get-list?${params}`\r\n );\r\n const data = await response.json();\r\n setContentList(data);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n }\r\n getRecentContent().then(promise => {\r\n });\r\n \r\n }, []);\r\n\r\n if (loading) {\r\n return (\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n {contentList.map((content, index) => {\r\n\r\n let itemBackground;\r\n if (content.bannerThumbnailUri !== null && content.bannerThumbnailUri.length > 0) {\r\n itemBackground = 'url(' + BLOB_STORAGE_URI + content.bannerThumbnailUri + ')';\r\n }\r\n else {\r\n itemBackground = '#efefef';\r\n }\r\n let authorFormattedName = content.authorUsername.replace(/\\s/g, '-').toLowerCase();\r\n\r\n return (\r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n {content.category} > {content.subCategory}\r\n
\r\n
\r\n WRITTEN BY {content.authorDisplayName}\r\n
\r\n \r\n \r\n \r\n {content.title}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n )})\r\n }\r\n \r\n )\r\n }\r\n \r\n};","\r\nimport React, {useEffect, useState} from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {Route, Routes, useNavigate, useParams} from \"react-router\";\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport {OverlaySpinner} from \"../components/spinners/OverlaySpinner\";\r\nimport { Layout } from \"./../components/Layout\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {ContentList} from \"../components/ContentList\";\r\nimport Moment from \"react-moment\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n \r\n container: {\r\n marginTop: 10,\r\n padding: '0px 50px 0px 50px',\r\n minHeight: 800,\r\n },\r\n \r\n headerContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n \r\n userImage: {\r\n width: 200,\r\n height: 200,\r\n borderRadius: 100,\r\n backgroundColor: '#cccccc',\r\n backgroundSize: 'cover',\r\n },\r\n \r\n userBio: {\r\n flexGrow: 1,\r\n height: 200,\r\n marginLeft: 40,\r\n padding: 40,\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardContent: {\r\n padding: '10px 0px 0px 0px',\r\n\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n cardHeader: {\r\n color: '#cccccc',\r\n margin: 0,\r\n fontSize: 18,\r\n },\r\n link: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n '&:hover': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n darkLink: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.main,\r\n '&:hover': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n authorName: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n },\r\n authorLink: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n '&:hover': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n tags: {\r\n fontSize: 13,\r\n },\r\n conversationButton: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'center',\r\n margin: '10px 0px 10px 0px',\r\n padding: '10px 0px 10px 0px',\r\n border: 'solid 1px ' + theme.palette.primary.linkColor,\r\n color: theme.palette.primary.linkColor,\r\n },\r\n cardMedia: {\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right bottom',\r\n width: '100%',\r\n height: 130,\r\n margin: 0,\r\n flexShrink: 0,\r\n border: 'none',\r\n },\r\n title: {\r\n fontSize: 22,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n },\r\n cardAction: {\r\n padding: 0,\r\n textAlign: 'left',\r\n },\r\n categories: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n width: '100%',\r\n color: '#cccccc',\r\n padding: 0,\r\n margin: 0,\r\n },\r\n sideTitle: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n },\r\n sideAuthor: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n paddingTop: 4,\r\n },\r\n sideDate: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n },\r\n sideRank: {\r\n paddingRight: 20,\r\n paddingTop: 10,\r\n fontSize: 28,\r\n color: '#cccccc',\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n body: {\r\n paddingBottom: 50,\r\n }\r\n\r\n}));\r\n\r\nconst UserLoader = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport const User = () => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const classes = useStyles();\r\n const { userId } = useParams();\r\n const navigate = useNavigate();\r\n const test = useParams();\r\n \r\n console.log(test);\r\n return (\r\n
\r\n \r\n \r\n }/>\r\n }/>\r\n \r\n
\r\n\r\n );\r\n};\r\n\r\nexport const UserUnknown = () => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const classes = useStyles();\r\n \r\n const navigate = useNavigate();\r\n\r\n return (\r\n
\r\n IDK WHO I AM\r\n
\r\n\r\n );\r\n};\r\n\r\nexport const UserDetail = (props) => {\r\n\r\n const classes = useStyles();\r\n const { user } = useParams();\r\n const [userDetails, setUserDetails] = useState({});\r\n const [loadingDetail, setLoadingDetail] = useState(true);\r\n const [contentList, setContentList] = useState([]);\r\n \r\n useEffect(() => {\r\n async function getUserDetails() {\r\n try {\r\n const response = await fetch(\r\n `/api/user/details?id=${user}`\r\n );\r\n const data = await response.json();\r\n setUserDetails(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n setLoadingDetail(false);\r\n }\r\n }\r\n\r\n getUserDetails().then(promise => {\r\n });\r\n }, []);\r\n \r\n \r\n\r\n console.log(userDetails);\r\n \r\n if (loadingDetail) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n } else {\r\n\r\n let avatarUri = `${BLOB_STORAGE_URI}/biwin/images/about/user.jpg`;\r\n \r\n if (userDetails.avatarSet) {\r\n avatarUri = `${BLOB_STORAGE_URI}users/${user}/avatar.jpg`;\r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {userDetails.displayName}\r\n \r\n
Member since
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Bio\r\n \r\n \r\n {userDetails.bio}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Recent Content\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n }\r\n};\r\n","import Grid from \"@material-ui/core/Grid\";\r\nimport Card from \"@material-ui/core/Card/Card\";\r\nimport {Link, Route, Routes, useNavigate, useParams} from \"react-router-dom\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport CardActions from \"@material-ui/core/CardActions/CardActions\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport {OverlaySpinner} from \"./spinners/OverlaySpinner\";\r\nimport {UserDetail, UserUnknown} from \"../views/User\";\r\nimport createStyles from \"@material-ui/styles/createStyles\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport Moment from \"react-moment\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport StaticPlaceholder from \"../img/placeholder/static.gif\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n container: {\r\n marginTop: 10,\r\n padding: '0px 50px 0px 50px',\r\n minHeight: 800,\r\n },\r\n headerContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n userImage: {\r\n width: 200,\r\n height: 200,\r\n borderRadius: 100,\r\n backgroundColor: '#cccccc',\r\n backgroundImage: 'url(`${BLOB_STORAGE_URI}/biwin/images/about/user.jpg`)',\r\n backgroundSize: 'cover',\r\n },\r\n userBio: {\r\n flexGrow: 1,\r\n height: 200,\r\n marginLeft: 40,\r\n padding: 40,\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardContent: {\r\n padding: '10px 0px 0px 0px',\r\n\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n cardHeader: {\r\n color: '#cccccc',\r\n margin: 0,\r\n fontSize: 18,\r\n },\r\n link: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n darkLink: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.main,\r\n\r\n },\r\n authorName: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n },\r\n authorLink: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n tags: {\r\n fontSize: 13,\r\n },\r\n conversationButton: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'center',\r\n margin: '10px 0px 10px 0px',\r\n padding: '10px 0px 10px 0px',\r\n border: 'solid 1px ' + theme.palette.primary.linkColor,\r\n color: theme.palette.primary.linkColor,\r\n },\r\n cardMedia: {\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right bottom',\r\n width: '100%',\r\n height: 130,\r\n margin: 0,\r\n flexShrink: 0,\r\n border: 'none',\r\n },\r\n title: {\r\n fontSize: 30,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: theme.palette.primary.textColor,\r\n margin: 0,\r\n padding: 0,\r\n display: 'block',\r\n },\r\n cardAction: {\r\n padding: 0,\r\n textAlign: 'left',\r\n },\r\n categories: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n width: '100%',\r\n color: '#cccccc',\r\n padding: 0,\r\n margin: 0,\r\n },\r\n sideTitle: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n },\r\n sideAuthor: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n paddingTop: 4,\r\n },\r\n sideDate: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n },\r\n sideRank: {\r\n paddingRight: 20,\r\n paddingTop: 10,\r\n fontSize: 28,\r\n color: '#cccccc',\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n categoryTitle: {\r\n fontSize: 22,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: theme.palette.primary.textColor,\r\n transition: '0.3s',\r\n textDecoration: 'none',\r\n display: 'inline-block',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n categoryTitleNum: {\r\n fontSize: 22,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cccccc',\r\n textDecoration: 'none',\r\n display: 'inline-block',\r\n },\r\n subCategoryTitle: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: theme.palette.primary.textColor,\r\n padding: 0,\r\n margin: 0,\r\n transition: '0.3s',\r\n textDecoration: 'none',\r\n display: 'inline-block',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n subCategoryTitleNum: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cccccc',\r\n textDecoration: 'none',\r\n display: 'inline-block',\r\n },\r\n block: {\r\n display: 'block',\r\n padding: 0,\r\n }\r\n\r\n}));\r\n\r\nconst LoaderComponent = () => {\r\n\r\n let newsNum = [0,1,2,3,4,5];\r\n return (\r\n \r\n {newsNum.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n};\r\n\r\nconst CategoryCountItems = (props) => {\r\n\r\n const { contentList } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n

Browse by Category

\r\n
\r\n {contentList.map((category, index) => (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n

{category.category}

\r\n \r\n  ({category.categoryCount})\r\n
\r\n {\r\n typeof(category.subcategories) !== 'undefined' && category.subcategories.map((subcategory, index) => (\r\n
\r\n \r\n

{subcategory.subCategory}

\r\n \r\n  ({subcategory.subCategoryCount})\r\n
\r\n )\r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n )\r\n};\r\n\r\nexport const CategoryCounts = (props) => {\r\n\r\n const [contentList, setContentList] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n\r\n async function getRecentContent() {\r\n try {\r\n const response = await fetch(\r\n '/api/content/category-counts'\r\n );\r\n const data = await response.json();\r\n setContentList(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n getRecentContent().then(promise => {\r\n\r\n });\r\n }, []);\r\n\r\n\r\n\r\n if (loading) {\r\n return (\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n};\r\n","\r\nimport React, {useEffect, useRef, useState} from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport StaticPlaceholder from \"../img/placeholder/static.gif\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport classNames from \"classnames\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport CardActions from \"@material-ui/core/CardActions\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {Route, Routes, useNavigate, useParams, Link} from \"react-router-dom\";\r\nimport {convertFromRaw, EditorState, getDefaultKeyBinding, Modifier, RichUtils} from \"draft-js\";\r\nimport Editor from 'draft-js-plugins-editor';\r\nimport { Layout } from \"../components/Layout\";\r\nimport decorators from \"../editor/decorator\";\r\nimport {Avatar, AvatarDetails, AvatarHorizontalDetails} from \"../components/Avatar\";\r\nimport { MdPermDataSetting} from \"react-icons/md\";\r\nimport { DiMsqlServer } from \"react-icons/di\";\r\nimport {AiOutlineFolder } from \"react-icons/ai\";\r\nimport { GrCube } from \"react-icons/gr\";\r\nimport { GoGraph } from \"react-icons/go\";\r\nimport { BsClipboardData } from \"react-icons/bs\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport {EditorProvider, useEditorContext} from \"../editor/EditorProvider\";\r\nimport {decorator, plugins} from \"../editor/plugins\";\r\nimport Prism from \"prismjs\";\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport {VisibilityToggle} from \"../components/VisibilityToggle\";\r\nimport {ColorLikeIcon, ColorInactiveLikeIcon, CommentIcon} from '../icons/Icons';\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport {AdaptiveLikeIcon} from \"../components/AdaptiveLikeIcon\";\r\nimport {LoginPrompt} from \"../components/LoginPrompt\";\r\nimport ReactUtterences from \"react-utterances\";\r\nimport {CategoryCounts} from \"../components/CategoryCounts\";\r\nimport {AuthorLink} from \"../components/AuthorLink\"\r\nimport {ContentList} from \"../components/ContentList\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n categoryHeader: {\r\n width: '100%',\r\n height: 50,\r\n \r\n },\r\n iconContainer: {\r\n display: 'flex',\r\n backgroundColor: '#efefef', \r\n color: 'black', \r\n borderRadius: 50, \r\n padding: 10, \r\n width: 50, \r\n height: 50,\r\n justifyContent: 'center',\r\n },\r\n icon: {\r\n alignSelf: 'center',\r\n },\r\n contentDetailBox: {\r\n display: 'flex',\r\n width: '100%',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n alignItems: 'center',\r\n height: 44,\r\n },\r\n editButton: {\r\n height: 'auto',\r\n },\r\n authorLink: { \r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n fontWeight: 800,\r\n },\r\n feedbackButton: {\r\n borderRadius: 50, \r\n margin: '0px 5px 0px 5px', \r\n padding: '10px 20px 10px 20px', \r\n backgroundColor: '#efefef'\r\n }\r\n}));\r\n\r\nconst cards = [\r\n {\r\n key: 1,\r\n title: 'SQL Server',\r\n icon: DiMsqlServer\r\n },\r\n {\r\n key: 2,\r\n title: 'SQL Server Reporting Services',\r\n icon: GoGraph,\r\n },\r\n {\r\n key: 3,\r\n title: 'SQL Server Integration Services',\r\n icon: GrCube,\r\n },\r\n {\r\n key: 4,\r\n title: 'SQL Server Analysis Services',\r\n icon: MdPermDataSetting,\r\n },\r\n {\r\n key: 5,\r\n title: 'Power BI',\r\n icon: BsClipboardData,\r\n },\r\n {\r\n key: 6,\r\n title: 'Other',\r\n icon: AiOutlineFolder\r\n },\r\n ];\r\n\r\nconst EditButton = () => {\r\n \r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n const navigate = useNavigate();\r\n const { id } = useParams();\r\n\r\n if (typeof(state.allowedActions) !== 'undefined'\r\n && Array.isArray(state.allowedActions)\r\n && state.allowedActions.some(action => action.actionName === 'global_admin')) \r\n {\r\n return (\r\n \r\n )\r\n }\r\n else {\r\n return null;\r\n }\r\n \r\n};\r\n\r\nconst FeedbackSection = (props) => {\r\n\r\n const classes = useStyles();\r\n const [userDetails, setUserDetails] = useState({});\r\n const [loadingDetail, setLoadingDetail] = useState(true);\r\n const [liked, setLiked] = useState(false);\r\n const [clickTimes, setClickTimes] = useState(0);\r\n const { id } = useParams();\r\n \r\n useEffect(() => {\r\n if (props.authorId > 0) {\r\n getContentFeedback().then(promise => {\r\n });\r\n }\r\n }, [props.authorId]);\r\n \r\n function increaseClickCount(){\r\n setClickTimes(clickTimes + 1);\r\n }\r\n \r\n async function getContentFeedback() {\r\n try {\r\n const response = await fetch(\r\n `/api/user/details?id=${props.authorId}`\r\n );\r\n //const data = await response.json();\r\n //setUserDetails(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n setLoadingDetail(true);\r\n }\r\n }\r\n\r\n function commentClick() {\r\n\r\n }\r\n\r\n function likeClick() {\r\n if (clickTimes < 10) {\r\n increaseClickCount();\r\n\r\n let flag = !liked;\r\n \r\n try {\r\n const response = fetch(\r\n `/api/content/like?itemId=${id}&like=${flag}`\r\n );\r\n const data = response.json();\r\n\r\n //dispatch({ type: 'SET_CATEGORIES', value: data });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n \r\n \r\n setLiked(!liked);\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n};\r\n\r\nconst AuthorSection = (props) => {\r\n\r\n const classes = useStyles();\r\n const [userDetails, setUserDetails] = useState({});\r\n const [loadingDetail, setLoadingDetail] = useState(true);\r\n\r\n useEffect(() => {\r\n if (props.authorId > 0) {\r\n getUserDetails().then(promise => {\r\n });\r\n }\r\n }, [props.authorId]);\r\n\r\n async function getUserDetails() {\r\n try {\r\n const response = await fetch(\r\n `/api/user/details?id=${props.authorId}`\r\n );\r\n const data = await response.json();\r\n setUserDetails(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n setLoadingDetail(false);\r\n }\r\n }\r\n\r\n let avatarUri = `${BLOB_STORAGE_URI}/biwin/images/about/user.jpg`;\r\n\r\n if (userDetails.avatarSet) {\r\n avatarUri = `${BLOB_STORAGE_URI}users/${props.authorId}/avatar.jpg`;\r\n }\r\n \r\n let authorDisplayName = '';\r\n if (typeof(userDetails.displayName) !== 'undefined') {\r\n authorDisplayName = userDetails.displayName.toLowerCase().replace(' ', '');\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {userDetails.bio}\r\n
\r\n
\r\n \r\n \r\n )\r\n};\r\n\r\nconst ContentDefault = (props) => {\r\n \r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n\r\n useEffect(() => {\r\n dispatch({type: 'SET_TITLE', value: \"Business wIntelligence - Home of Microsoft BI Nerds\"});\r\n }, []);\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst ContentItem = (props) => {\r\n\r\n const { id } = useParams();\r\n const classes = useStyles();\r\n const [state, dispatch] = useEditorContext();\r\n const [appState, appDispatch] = useAppContext();\r\n const [contentData, setContentData] = useState(EditorState.createEmpty());\r\n const [contentDetails, setContentDetails] = useState({\r\n title: 'Business Wintelligence Article',\r\n author: '',\r\n createdDtm: '',\r\n categoryId: 1,\r\n subCategoryId: 1,\r\n authorId: -1,\r\n });\r\n\r\n useEffect(() => {\r\n const newTitle = contentDetails.title + \" - Business wIntelligence\";\r\n appDispatch({type: 'SET_TITLE', value: newTitle ?? \"Business wIntelligence\"});\r\n },[contentDetails.title]);\r\n\r\n const ItemContentLoader = (props) => {\r\n\r\n if (state.contentLoading) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n } else {\r\n return null\r\n }\r\n };\r\n\r\n const editorRef = useRef();\r\n\r\n const getBlockStyle = (block) => {\r\n switch (block.getType()) {\r\n case 'code-block':\r\n return 'language-sql';\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const keyBinding = (e) => {\r\n if (e.keyCode === 13 && e.shiftKey) return 'soft-break';\r\n const selection = contentData.getSelection();\r\n const block = contentData\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey());\r\n if (e.key === 'Tab' && block.getType() === 'code-block') return 'code-tab';\r\n return getDefaultKeyBinding(e);\r\n };\r\n\r\n const handleKeyCommand = (command, state) => {\r\n\r\n const newState = RichUtils.handleKeyCommand(state, command);\r\n\r\n if (command === 'code-block') {\r\n setContentData(RichUtils.toggleBlockType(state, 'code-block'));\r\n return 'handled';\r\n }\r\n else if (command === 'soft-break') {\r\n setContentData(RichUtils.insertSoftNewline(state));\r\n return 'handled';\r\n }\r\n else if (command === 'code-tab') {\r\n const currentState = state;\r\n const newBlockState = Modifier.replaceText(\r\n currentState.getCurrentContent(),\r\n currentState.getSelection(),\r\n '\\t'\r\n );\r\n (\r\n setContentData(EditorState.push(currentState, newBlockState, 'insert-characters'))\r\n );\r\n }\r\n if (newState) {\r\n (\r\n setContentData(newState)\r\n );\r\n return 'handled';\r\n }\r\n return 'not-handled';\r\n };\r\n\r\n const toggleBlockType = (type) => {\r\n (\r\n setContentData(RichUtils.toggleBlockType(contentData, type))\r\n );\r\n };\r\n\r\n const handleChange = (newEditorState) => {\r\n const selection = newEditorState.getSelection();\r\n const block = newEditorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey());\r\n const currentContent = contentData.getCurrentContent();\r\n const newContent = newEditorState.getCurrentContent();\r\n if (\r\n block.getType() === 'code-block' &&\r\n !newContent.equals(currentContent)\r\n ) {\r\n const data = block.getData().merge({ language: 'sql' });\r\n const newBlock = block.merge({ data });\r\n const newContentState = newEditorState.getCurrentContent().merge({\r\n blockMap: newEditorState\r\n .getCurrentContent()\r\n .getBlockMap()\r\n .set(selection.getStartKey(), newBlock),\r\n selectionAfter: selection\r\n });\r\n (\r\n setContentData(EditorState.push(newEditorState, newContentState, 'change-block-data'))\r\n );\r\n } else (\r\n setContentData(newEditorState)\r\n );\r\n };\r\n \r\n useEffect(() => {\r\n \r\n let authorId = -1;\r\n async function getSavedContent() {\r\n try {\r\n window.scrollTo(0, 0);\r\n dispatch({type: 'SET_CONTENT_LOADING', value: true});\r\n\r\n const response = await fetch(\r\n `/api/content/retrieve?itemId=${id}`\r\n );\r\n\r\n const data = await response.json();\r\n if (data.itemContent) {\r\n data.editorState = EditorState.createWithContent(convertFromRaw(JSON.parse(data.itemContent)));\r\n setContentData(data.editorState);\r\n setContentDetails({\r\n title: data.title,\r\n authorId: data.authorId,\r\n authorDisplayName: data.authorDisplayName,\r\n createdDtm: data.createdDtm,\r\n publishedDtm: data.publishedDtm,\r\n category: data.category,\r\n subCategory: data.subCategory,\r\n authorHash: data.authorHash,\r\n bannerUri: BLOB_STORAGE_URI + data.bannerUri,\r\n });\r\n\r\n authorId = data.authorId;\r\n }\r\n } \r\n catch (e) {\r\n console.error(e);\r\n }\r\n finally{\r\n dispatch({type: 'SET_CONTENT_LOADING', value: false});\r\n }\r\n }\r\n\r\n getSavedContent().then(promise => {\r\n });\r\n \r\n }, []);\r\n \r\n const [loginPromptOpen, setLoginPromptOpen] = useState(false);\r\n \r\n function handleLoginPromptOpen(){\r\n \r\n }\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{contentDetails.category} > {contentDetails.subCategory}

\r\n

{contentDetails.title}

\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n )\r\n};\r\n\r\nconst CategoryLister = (props) => {\r\n\r\n const { id } = useParams();\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst SubcategoryLister = (props) => {\r\n\r\n const { id } = useParams();\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default function Content() {\r\n\r\n return (\r\n \r\n \r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n \r\n }/>\r\n }/>\r\n }/>\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Layout } from './../components/Layout';\r\n\r\nexport const NotFound = (props) => {\r\n return (\r\n (\r\n \r\n\r\n \r\n )\r\n );\r\n};\r\n\r\n\r\n","import React, {useState} from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Stars from './../img/banner/stars.png';\r\nimport { css } from \"linaria\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport { SearchIcon } from '../icons/Icons';\r\nimport {useNavigate} from \"react-router\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport createStyles from \"@material-ui/styles/createStyles\";\r\n\r\nconst animatedBackground = css`\r\n @keyframes starMovement {\r\n 0% { background-position: 0px 0; }\r\n 100% { background-position: 0px 509px; }\r\n }\r\n animation: starMovement 10s linear infinite\r\n`;\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2),\r\n },\r\n heroUnit: {\r\n backgroundColor: '#aedcd2',//theme.palette.background.paper,\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n margin: '0 auto',\r\n padding: `${theme.spacing(4)}px 0 ${theme.spacing(6)}px`,\r\n width: '100%',\r\n height: '400px',\r\n overflow: 'hidden',\r\n color: '#ffffff'\r\n },\r\n heroBackground: {\r\n background: 'radial-gradient(ellipse at bottom, #19163e 0%, #000000 100%)',\r\n width: '100%',\r\n height: '400px',\r\n padding: '0px',\r\n zIndex: 5,\r\n position: 'relative',\r\n },\r\n animatedBackground: {\r\n margin: '0 auto',\r\n padding: `${theme.spacing(8)}px 0 ${theme.spacing(6)}px`,\r\n background: 'url(' + Stars + ')',\r\n backgroundRepeat: 'repeat',\r\n width: '100%',\r\n height: '400px',\r\n overflow: 'hidden',\r\n position: 'absolute',\r\n },\r\n heroButton: {\r\n marginTop: theme.spacing(4),\r\n textShadow: '1px 1px 1px rgba(0,0,0,0.1)',\r\n },\r\n layout: {\r\n width: 'auto',\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n },\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(8)}px 0`,\r\n },\r\n card: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n cardMedia: {\r\n paddingTop: '56.25%', // 16:9\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n },\r\n footer: {\r\n padding: theme.spacing(6),\r\n },\r\n link: {\r\n color: \"#c3e475\",\r\n },\r\n overrides: {\r\n MuiFilledInput: {padding: 0},\r\n Link: {\r\n text: {\r\n color: \"#c3e475\",\r\n },\r\n link: {\r\n color: \"#c3e475\",\r\n },\r\n \r\n },\r\n },\r\n search: {\r\n width: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n fontWeight: 500,\r\n background: '#ffffff',\r\n borderRadius: 5,\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n borderColor: 'green !important',\r\n '&:focus': {\r\n boxShadow: `${(theme.palette.primary.main, 0.25)} 0 0 0 0.2rem`,\r\n borderColor: '#9c27b0',\r\n },\r\n \r\n '& label.Mui-focused': {\r\n color: '#9c27b0',\r\n },\r\n '& .MuiInput-underline:after': {\r\n borderBottomColor: '#9c27b0',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& fieldset': {\r\n borderColor: '#9c27b0',\r\n },\r\n '&:hover fieldset': {\r\n borderColor: '#9c27b0',\r\n },\r\n '&.Mui-focused fieldset': {\r\n borderColor: '#9c27b0',\r\n },\r\n },\r\n },\r\n input: {\r\n color: '#000000',\r\n padding: '0 5 0 5',\r\n },\r\n\r\n banana: {\r\n color: '#000000',\r\n padding: '0 5 0 5',\r\n }\r\n}));\r\n\r\nexport const HeaderBanner = (props) => {\r\n\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const [search, setSearch] = useState(''); \r\n \r\n function handleSearch (e) {\r\n setSearch(e.target.value);\r\n }\r\n \r\n function executeSearch() {\r\n navigate(`/search/${search}`);\r\n }\r\n \r\n\r\n\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Winning with Data!\r\n \r\n \r\n \r\n
\r\n {\r\n if (ev.key === 'Enter') {\r\n ev.preventDefault();\r\n executeSearch();\r\n }\r\n }}\r\n classes={{\r\n root: classes.root, // class name, e.g. `classes-nesting-root-x`\r\n input: classes.banana, // class name, e.g. `classes-nesting-label-x`\r\n MuiFilledInput: { style: {padding: 0}},\r\n }}\r\n classes={{\r\n root: classes.root, // class name, e.g. `classes-nesting-root-x`\r\n label: classes.label, // class name, e.g. `classes-nesting-label-x`\r\n }}\r\n InputProps={{\r\n startAdornment: ,\r\n inputProps: {style: {padding: '15px 10px 15px 10px'}},\r\n }} \r\n />\r\n \r\n
\r\n
\r\n \r\n Just a few notes on Power BI Report Server, SSRS, SSAS, SSIS, and SQL Server\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import Grid from \"@material-ui/core/Grid\";\r\nimport Card from \"@material-ui/core/Card/Card\";\r\nimport {Link, Route, Routes, useNavigate, useParams} from \"react-router-dom\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport CardActions from \"@material-ui/core/CardActions/CardActions\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport {OverlaySpinner} from \"./spinners/OverlaySpinner\";\r\nimport {UserDetail, UserUnknown} from \"../views/User\";\r\nimport createStyles from \"@material-ui/styles/createStyles\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport Moment from \"react-moment\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n container: {\r\n marginTop: 10,\r\n padding: '0px 50px 0px 50px',\r\n minHeight: 800,\r\n },\r\n headerContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n userImage: {\r\n width: 200,\r\n height: 200,\r\n borderRadius: 100,\r\n backgroundColor: '#cccccc',\r\n backgroundImage: 'url(`${BLOB_STORAGE_URI}/biwin/images/about/user.jpg`)',\r\n backgroundSize: 'cover',\r\n },\r\n userBio: {\r\n flexGrow: 1,\r\n height: 200,\r\n marginLeft: 40,\r\n padding: 40,\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardContent: {\r\n padding: '10px 0px 0px 0px',\r\n\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n cardHeader: {\r\n color: '#cccccc',\r\n margin: 0,\r\n fontSize: 18,\r\n },\r\n link: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n darkLink: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.main,\r\n\r\n },\r\n authorName: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n },\r\n authorLink: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: '#cdcdcd',\r\n fontSize: 13,\r\n textTransform: 'uppercase',\r\n marginTop: 2,\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n tags: {\r\n fontSize: 13,\r\n },\r\n conversationButton: {\r\n display: 'flex',\r\n alignContent: 'center',\r\n justifyContent: 'center',\r\n margin: '10px 0px 10px 0px',\r\n padding: '10px 0px 10px 0px',\r\n border: 'solid 1px ' + theme.palette.primary.linkColor,\r\n color: theme.palette.primary.linkColor,\r\n },\r\n cardMedia: {\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right bottom',\r\n width: '100%',\r\n height: 130,\r\n margin: 0,\r\n flexShrink: 0,\r\n border: 'none',\r\n },\r\n title: {\r\n fontSize: 22,\r\n fontWeight: 400,\r\n fontFamily: theme.typography.headerFontFamily,\r\n color: theme.palette.primary.textColor,\r\n transition: '0.3s',\r\n textDecoration: 'none',\r\n display: 'inline-block',\r\n '&:hover': {\r\n color: theme.extendedProperties.accents.primary,\r\n },\r\n },\r\n cardAction: {\r\n padding: 0,\r\n textAlign: 'left',\r\n },\r\n categories: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n width: '100%',\r\n color: '#cccccc',\r\n padding: 0,\r\n margin: 0,\r\n },\r\n sideTitle: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n },\r\n sideAuthor: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n paddingTop: 4,\r\n },\r\n sideDate: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n },\r\n sideRank: {\r\n paddingRight: 20,\r\n paddingTop: 10,\r\n fontSize: 28,\r\n color: '#cccccc',\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n\r\n}));\r\n\r\nconst LoaderComponent = () => {\r\n\r\n let newsNum = [0,1,2,3,4,5];\r\n return (\r\n \r\n {newsNum.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n};\r\n\r\nconst PopularListItems = (props) => {\r\n\r\n const { contentList } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n Popular Content\r\n {contentList.map((content, index) => (\r\n
\r\n
\r\n {index + 1}\r\n
\r\n
\r\n \r\n {content.title}\r\n \r\n \r\n {content.authorDisplayName}\r\n \r\n {content.publishedDtm}\r\n\r\n
\r\n
\r\n ))}\r\n
\r\n )\r\n};\r\n\r\nexport const PopularList = (props) => {\r\n\r\n const [popularList, setPopularList] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n\r\n async function getPopularContent() {\r\n try {\r\n const response = await fetch(\r\n '/api/content/top'\r\n );\r\n const data = await response.json();\r\n setPopularList(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n getPopularContent().then(promise => {\r\n\r\n });\r\n }, []);\r\n\r\n\r\n\r\n if (loading) {\r\n return (\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n};\r\n","import React, {useEffect, useState} from 'react';\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./../components/HeaderBanner\";\r\nimport { Layout } from \"../components/Layout\";\r\nimport { HeaderBanner } from \"../components/HeaderBanner\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {AppProvider, useAppState, useAppDispatch, useAppContext} from \"../context/Provider\";\r\nimport Moment from 'react-moment';\r\nimport 'moment-timezone';\r\nimport ContentLoader from 'react-content-loader';\r\nimport {Avatar, AvatarDetails} from '../components/Avatar';\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport {Link, useNavigate} from 'react-router-dom';\r\nimport {plugins} from \"../editor/plugins\";\r\nimport decorators from \"../editor/decorator\";\r\nimport Editor from \"draft-js-plugins-editor\";\r\nimport {BLOB_STORAGE_URI} from './../constants/Constants';\r\n\r\nimport {convertFromRaw, EditorState, getDefaultKeyBinding, Modifier, RichUtils} from \"draft-js\";\r\nimport {ContentList} from \"../components/ContentList\";\r\nimport {PopularList} from \"../components/PopularContent\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n \r\n link: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.linkColor,\r\n },\r\n tags: {\r\n fontSize: 13,\r\n },\r\n conversationButton: {\r\n display: 'flex', \r\n alignContent: 'center', \r\n justifyContent: 'center', \r\n margin: '10px 0px 10px 0px', \r\n padding: '10px 0px 10px 0px', \r\n border: 'solid 1px ' + theme.palette.primary.linkColor, \r\n color: theme.palette.primary.linkColor,\r\n },\r\n cardMedia: {\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right bottom',\r\n width: '100%',\r\n height: 130,\r\n margin: 0,\r\n flexShrink: 0,\r\n border: 'none',\r\n },\r\n cardAction: {\r\n padding: 0,\r\n textAlign: 'left',\r\n },\r\n categories: {\r\n fontFamily: theme.typography.headerFontFamily,\r\n width: '100%',\r\n color: '#cccccc',\r\n padding: 0,\r\n margin: 0,\r\n },\r\n sideTitle: {\r\n fontSize: 18,\r\n fontWeight: 400,\r\n },\r\n sideAuthor: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n paddingTop: 4,\r\n },\r\n sideDate: {\r\n fontSize: 14,\r\n color: '#b2b2b2',\r\n },\r\n sideRank: {\r\n paddingRight: 20, \r\n paddingTop: 10, \r\n fontSize: 28,\r\n color: '#cccccc',\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(3)\r\n },\r\n textAlign: \"center\",\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.extendedProperties.background.primary //theme.palette.text.secondary\r\n },\r\n stepper: {\r\n padding: `${theme.spacing(1) * 3}px 0 ${theme.spacing(1) * 5}px`\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1)\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2)\r\n },\r\n heroUnit: {\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n margin: \"0 auto\",\r\n padding: `${theme.spacing(8)}px 0 ${theme.spacing(6)}px`\r\n },\r\n heroButtons: {\r\n marginTop: theme.spacing(4)\r\n },\r\n layout: {\r\n width: \"auto\",\r\n marginTop: 0,\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1200 + theme.spacing(3) * 2)]: {\r\n width: 1200,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n },\r\n minHeight: '90vh',\r\n paddingTop: 10,\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardContent: {\r\n padding: '10px 0px 0px 0px',\r\n \r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n cardHeader: {\r\n color: '#cccccc',\r\n margin: 0,\r\n fontSize: 18,\r\n },\r\n slideContainer: {\r\n height: 200,\r\n width: 400\r\n },\r\n spaceBanner: {\r\n background: 'url(../images/stars.png) repeat',\r\n backgroundAttachment: 'fixed',\r\n width: '100%',\r\n height: '400px',\r\n animation: 'animatedBackground linear 45s infinite',\r\n overflow: 'hidden',\r\n },\r\n\r\n}));\r\n\r\n\r\n\r\nexport default function Home() {\r\n\r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n const [news, setNews] = useState([]);\r\n\r\n const [contentData, setContentData] = useState(EditorState.createEmpty());\r\n const [contentDetails, setContentDetails] = useState({\r\n title: '',\r\n author: '',\r\n createdDtm: '',\r\n categoryId: 1,\r\n subCategoryId: 1,\r\n });\r\n\r\n const getBlockStyle = (block) => {\r\n switch (block.getType()) {\r\n case 'code-block':\r\n return 'language-sql';\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const handleChange = (newEditorState) => {\r\n const selection = newEditorState.getSelection();\r\n const block = newEditorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey());\r\n const currentContent = contentData.getCurrentContent();\r\n const newContent = newEditorState.getCurrentContent();\r\n if (\r\n block.getType() === 'code-block' &&\r\n !newContent.equals(currentContent)\r\n ) {\r\n const data = block.getData().merge({ language: 'sql' });\r\n const newBlock = block.merge({ data });\r\n const newContentState = newEditorState.getCurrentContent().merge({\r\n blockMap: newEditorState\r\n .getCurrentContent()\r\n .getBlockMap()\r\n .set(selection.getStartKey(), newBlock),\r\n selectionAfter: selection\r\n });\r\n (\r\n setContentData(EditorState.push(newEditorState, newContentState, 'change-block-data'))\r\n );\r\n } else (\r\n setContentData(newEditorState)\r\n );\r\n };\r\n \r\n useEffect(() => {\r\n\r\n async function getNews() {\r\n try {\r\n const response = await fetch(\r\n `/api/content/news`\r\n );\r\n const data = await response.json();\r\n\r\n if (data.itemContent) {\r\n data.editorState = EditorState.createWithContent(convertFromRaw(JSON.parse(data.itemContent)));\r\n\r\n setContentData(data.editorState);\r\n setContentDetails({\r\n title: data.title,\r\n authorDisplayName: data.authorDisplayName,\r\n createdDtm: data.createdDtm,\r\n publishedDtm: data.publishedDtm,\r\n category: data.category,\r\n subCategory: data.subCategory,\r\n authorHash: data.authorHash,\r\n bannerUri: BLOB_STORAGE_URI + data.bannerUri,\r\n });\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n dispatch({type: 'SET_TITLE', value: \"Business wIntelligence - Home of Microsoft BI Nerds\"});\r\n \r\n getNews().then(promise => { });\r\n \r\n }, []);\r\n \r\n const NewsLoader = () => {\r\n \r\n return (\r\n \r\n )\r\n };\r\n \r\n const RecentNews = () => {\r\n console.log(\"content data: \")\r\n console.log(contentData)\r\n return (\r\n \r\n {news.map((news, index) => (\r\n \r\n
\r\n Recent Updates\r\n
\r\n \r\n
\r\n {news.title}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n Author section\r\n
\r\n
\r\n \r\n
\r\n news\r\n
\r\n
\r\n \r\n
\r\n See Responses (0)\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n )\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport {useEditorContext} from \"../editor/EditorProvider\";\r\n\r\nfunction PropsDebugger() {\r\n\r\n const [state, dispatch] = useEditorContext();\r\n \r\n return(\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n state ={' '}\r\n {JSON.stringify(state, null, 2)}\r\n \r\n \r\n
\r\n
\r\n )\r\n\r\n}\r\n\r\n\r\nexport default (PropsDebugger);","import {useAppContext} from \"../../context/Provider\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport {useNavigate} from \"react-router\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport {createStyles, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {EditIcon} from \"../../icons/Icons\";\r\nimport Moment from \"react-moment\";\r\nimport {DeleteOutline as DeleteIcon, Publish as PublishIcon} from \"@material-ui/icons\";\r\nimport Dropzone from \"react-dropzone-uploader\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport cogoToast from \"cogo-toast\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n table: {\r\n\r\n },\r\n dropzone: {\r\n backgroundColor: '#efefef',\r\n border: 'dashed 2px #cccccc',\r\n width: '100%',\r\n color: '#cccccc',\r\n fontWeight: 800,\r\n padding: 0,\r\n margin: '5 0 10 0',\r\n textAlign: 'center',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n minHeight: 120,\r\n position: 'relative',\r\n boxSizing: 'border-box',\r\n /*\r\n -webkit-transition: all .15s linear;\r\n -o-transition: all .15s linear;*/\r\n transition: 'all .15s linear',\r\n },\r\n dropzoneActive: {\r\n },\r\n dropzoneReject: {\r\n },\r\n dropzoneDisabled: {\r\n },\r\n\r\n}));\r\n\r\nexport const AdministrationDrafts = (props) => {\r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n const [openPublishDialog, setOpenPublishDialog] = useState(false);\r\n const [publishItemId, setPublishItemId] = useState(false);\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false);\r\n const [deleteItemId, setDeleteItemId] = useState(false);\r\n\r\n function publishItemTrigger(itemId) {\r\n setPublishItemId(itemId);\r\n setOpenPublishDialog(true);\r\n }\r\n function deleteItemTrigger(itemId) {\r\n setDeleteItemId(itemId);\r\n setOpenDeleteDialog(true);\r\n }\r\n\r\n function deleteItemFinalize() {\r\n console.log('publish: ' + publishItemId);\r\n }\r\n\r\n const PublishDialog = () => {\r\n\r\n function publishItemFinalize() {\r\n let apiUri = `/api/content/publish?published=true&itemId=${publishItemId}`;\r\n let options= {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n\r\n fetch(apiUri, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json; charset=utf-8',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n //body: JSON.stringify(data),\r\n }).then(\r\n data => {\r\n cogoToast.success('Publish Complete!')\r\n }\r\n );\r\n\r\n setOpenPublishDialog(false);\r\n }\r\n\r\n return (\r\n setOpenPublishDialog(false)} aria-labelledby=\"form-dialog-title\">\r\n Publish Content\r\n \r\n \r\n Please confirm you would like to submit this content to be published.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n\r\n function GetDrafts() {\r\n let apiUri = \"/api/content/get-drafts?published=0\";\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n useEffect(() => {\r\n async function GetDrafts() {\r\n try {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setTableData(data);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n }\r\n }\r\n GetDrafts().then(promise => {\r\n });\r\n }, []);\r\n }\r\n\r\n GetDrafts();\r\n \r\n const [tableData, setTableData] = React.useState([{}]);\r\n const navigate = useNavigate();\r\n\r\n return (\r\n \r\n \r\n

Drafts

\r\n \r\n \r\n \r\n Item\r\n Modified\r\n Created\r\n \r\n \r\n \r\n \r\n {tableData.map((row, index) => (\r\n \r\n \r\n navigate(`/administration/edit/${row.itemId}`)}>\r\n \r\n \r\n \r\n \r\n {row.modifiedDtm}\r\n {row.createdDtm}\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n )\r\n};\r\n\r\nexport const UploadImageDialog = (props) => {\r\n\r\n return (\r\n \r\n Upload Media\r\n \r\n \r\n All items uploaded to the media library will be accessible to all editors and can be used in any\r\n content on the site. Deleting this media can break content using it.\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n};\r\n\r\nconst Uploader = () => {\r\n\r\n const classes = useStyles();\r\n const styles = {\r\n dropzone: classes.dropzone,\r\n //dropzoneActive: classes.dropzoneActive,\r\n //dropzoneReject: classes.dropzoneReject,\r\n //dropzoneDisabled: classes.dropzoneDisabled,\r\n //input: classes.input,\r\n inputLabel: classes.inputLabel,\r\n //inputLabelWithFiles: classes.inputLabelWithFiles,\r\n //preview: classes.preview,\r\n //previewImage: classes.previewImage,\r\n //submitButtonContainer: classes.submitButtonContainer,\r\n //submitButton: classes.submitButton\r\n };\r\n \r\n const getUploadParams = ({ file, meta }) => {\r\n const url = '/api/files/upload';\r\n //const body = new FormData();\r\n const fields = {\r\n fileName: meta.name\r\n };\r\n return { url, fields };\r\n };\r\n\r\n // called every time a file's `status` changes\r\n const handleChangeStatus = ({ meta, file }, status) => { console.log(status, meta, file) };\r\n\r\n // receives array of files that are done uploading when submit button is clicked\r\n const handleSubmit = (files, allFiles) => {\r\n console.log(files.map(f => f.meta));\r\n allFiles.forEach(f => f.remove());\r\n };\r\n\r\n return (\r\n \r\n )\r\n};","import {useAppContext} from \"../../context/Provider\";\r\nimport React, {useEffect} from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport Select from \"@material-ui/core/Select/Select\";\r\nimport Card from \"@material-ui/core/Card/Card\";\r\nimport {BLOB_STORAGE_URI} from \"../../constants/Constants\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport {UploadImageDialog} from \"./AdministrationDrafts\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport {createStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n \r\n drawerList: {\r\n marginTop: theme.spacing(1),\r\n width: '100%',\r\n display: 'block',\r\n float: 'left',\r\n },\r\n \r\n}));\r\n\r\n\r\nexport const AdministrationMedia = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const classes = useStyles();\r\n const [mediaList, setMediaList] = React.useState([{}]);\r\n const [mediaPage, setMediaPage] = React.useState([{}]);\r\n const [mediaCategory, setMediaCategory] = React.useState(-1);\r\n const [mediaSubcategory, setMediaSubcategory] = React.useState([{}]);\r\n const [mediaCategoryList, setMediaCategoryList] = React.useState([{}]);\r\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\r\n const openUploadDialog = () => {\r\n setUploadDialogOpen(true);\r\n };\r\n const [loadingMedia, setLoadingMedia] = React.useState(true);\r\n\r\n GetMedia();\r\n\r\n const MediaLoader = () => {\r\n\r\n if (loadingMedia) {\r\n const group = [1,2,3,4,5,6,7,8];\r\n return (\r\n \r\n {group.map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n }\r\n else {\r\n return (null);\r\n }\r\n\r\n };\r\n\r\n function GetMedia() {\r\n let apiUri = `/api/files/media-library?cat=${mediaCategory}`;\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n useEffect(() => {\r\n async function GetMedia() {\r\n try {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setMediaList(data);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n setLoadingMedia();\r\n }\r\n }\r\n GetMedia().then(promise => {\r\n });\r\n }, []);\r\n }\r\n\r\n return (\r\n \r\n {setUploadDialogOpen(false)}}/>\r\n
\r\n
\r\n

Media

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n None\r\n \r\n Ten\r\n Twenty\r\n Thirty\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {mediaList.map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n )\r\n};","import React, {useEffect, useState} from 'react';\r\n\r\nimport {\r\n FaHeading,\r\n FaListOl,\r\n FaListUl,\r\n FaCode,\r\n FaQuoteRight,\r\n FaBold, \r\n FaItalic, \r\n FaUnderline,\r\n FaHighlighter,\r\n FaFileVideo,\r\n FaVideo,\r\n FaFileImage\r\n} from 'react-icons/fa';\r\nimport {useEditorContext} from \"../EditorProvider\";\r\nimport {createStyles, makeStyles} from \"@material-ui/core/styles\";\r\nimport ToggleButton from '@material-ui/lab/ToggleButton';\r\nimport ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Popover from \"@material-ui/core/Popover/Popover\";\r\nimport Input from \"@material-ui/core/Input/Input\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {BLOB_STORAGE_URI} from \"../../constants/Constants\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport {\r\n BlockquoteButton,\r\n BoldButton, CodeBlockButton,\r\n CodeButton, HeadlineOneButton, HeadlineThreeButton, HeadlineTwoButton,\r\n ItalicButton,\r\n OrderedListButton,\r\n UnderlineButton,\r\n UnorderedListButton\r\n} from \"draft-js-buttons\";\r\n\r\nimport { plugins, LinkButton, inlineToolbarPlugin, videoPlugin, imagePlugin } from '../plugins';\r\nimport {Separator} from \"../plugins/custom-inline-toolbar-plugin/src/components/Separator\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n editorContainer: {\r\n width: '100%',\r\n minHeight: 250,\r\n boxSizing: 'border-box',\r\n border: '2px solid #ddd',\r\n cursor: 'text',\r\n padding: 16,\r\n borderRadius: 2,\r\n marginBottom: '2em',\r\n background: '#fefefe'\r\n //boxShadow: 'inset 0px 1px 1px -1px #ABABAB',\r\n },\r\n\r\n addVideoPopover: {\r\n padding: 15, \r\n },\r\n \r\n addImagePopover: {\r\n padding: 15,\r\n },\r\n\r\n editor: {\r\n cursor: 'text',\r\n padding: 16,\r\n marginBottom: '2em',\r\n },\r\n\r\n publicDraftEditorContent: {\r\n minHeight: 140\r\n },\r\n\r\n headlineButtonWrapper: {\r\n display: 'inline-block',\r\n },\r\n\r\n headlineButton: {\r\n background: '#fbfbfb',\r\n color: '#888',\r\n fontSize: 18,\r\n border: 0,\r\n paddingTop: 5,\r\n verticalAlign: 'bottom',\r\n height: 36,\r\n width: 36\r\n },\r\n\r\n toolbar: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n borderBottom: 'solid 1.7px rgba(199, 198, 255, 0.15)',\r\n padding: '10px 0',\r\n margin: '0 0 10px 0',\r\n '& button' : {\r\n height: 40,\r\n padding: 0,\r\n minWidth: 40,\r\n transition: '0.1s ease-in',\r\n '&.active': {\r\n backgroundColor: '#007bff',\r\n color: 'white'\r\n }\r\n }\r\n },\r\n\r\n button: {\r\n background: '#fbfbfb',\r\n color: '#888',\r\n fontSize: 18,\r\n border: 0,\r\n paddingTop: 5,\r\n verticalAlign: 'bottom',\r\n\r\n \"&:active\": {\r\n color: '#000000',\r\n },\r\n \"&:active svg\": {\r\n fill: '#6a9cc9',\r\n },\r\n\r\n\r\n }\r\n\r\n}));\r\n\r\nconst StyleButton = ({\r\n active,\r\n toggleBlock,\r\n toggleStyle,\r\n style,\r\n label\r\n }) => {\r\n \r\n const toggleActiveBlock = (e) => {\r\n e.preventDefault();\r\n toggleBlock(style);\r\n };\r\n \r\n const classes = useStyles();\r\n const [state, dispatch] = useEditorContext();\r\n \r\n return (\r\n \r\n );\r\n};\r\n\r\nconst BLOCK_TYPES = [\r\n {\r\n label: (\r\n \r\n \r\n \r\n 1\r\n \r\n \r\n ),\r\n style: 'header-one'\r\n },\r\n {\r\n label: (\r\n \r\n \r\n \r\n 2\r\n \r\n \r\n ),\r\n style: 'header-two'\r\n },\r\n {\r\n label: (\r\n \r\n \r\n \r\n 3\r\n \r\n \r\n ),\r\n style: 'header-three'\r\n },\r\n {\r\n label: (\r\n \r\n \r\n \r\n 4\r\n \r\n \r\n ),\r\n style: 'header-four'\r\n },\r\n { label: , style: 'blockquote' },\r\n { label: , style: 'unordered-list-item' },\r\n { label: , style: 'ordered-list-item' },\r\n { label: , style: 'code-block' },\r\n];\r\n\r\nconst INLINE_STYLES = [\r\n { label: , style: 'BOLD' },\r\n { label: , style: 'ITALIC' },\r\n { label: , style: 'UNDERLINE' },\r\n { label: , style: 'CODE' },\r\n { label: , style: 'HIGHLIGHT' }\r\n];\r\n\r\nexport const AddImage = () => {\r\n \r\n const classes = useStyles();\r\n const [state, dispatch] = useEditorContext();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [url, setUrl] = useState('');\r\n \r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n const id = open ? 'simple-popover' : undefined;\r\n\r\n const addImage = () => {\r\n handleClose();\r\n dispatch({type: 'SET_EDITOR_STATE', value: imagePlugin.addImage(state.editorState, url )});\r\n };\r\n\r\n const changeUrl = (evt) => {\r\n setUrl(evt.target.value);\r\n };\r\n \r\n const attachmentClick = (value) => {\r\n dispatch({type: 'SET_EDITOR_STATE', value: imagePlugin.addImage(state.editorState, value )});\r\n handleClose();\r\n };\r\n \r\n const AttachmentList = () => {\r\n \r\n if (typeof(state.attachments) !== 'undefined' && state.attachments !== null && state.attachments.length > 0) {\r\n \r\n return (\r\n \r\n {state.attachments.map((attachment, index) => {\r\n const attachmentUri = BLOB_STORAGE_URI + attachment.uri;\r\n return (\r\n \r\n )\r\n }\r\n \r\n )}\r\n \r\n )\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport const InlineControl = (props) => {\r\n \r\n const { InlineToolbar } = inlineToolbarPlugin;\r\n const {state, dispatch, editorRef} = props;\r\n\r\n function getEditorState() {\r\n const returnState = state.editorState;\r\n return (returnState);\r\n }\r\n \r\n function setEditorState(desiredState) {\r\n dispatch({type: 'SET_EDITOR_STATE', value: desiredState});\r\n }\r\n function getEditorRef() {\r\n return (editorRef)\r\n }\r\n \r\n return (\r\n \r\n {\r\n (externalProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n};\r\n\r\nexport const AddVideo = () => {\r\n \r\n const classes = useStyles();\r\n const [state, dispatch] = useEditorContext();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [url, setUrl] = useState('');\r\n \r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n const id = open ? 'simple-popover' : undefined;\r\n\r\n const addVideo = () => {\r\n handleClose();\r\n dispatch({type: 'SET_EDITOR_STATE', value: videoPlugin.addVideo(state.editorState, { src: url })});\r\n };\r\n\r\n const changeUrl = (evt) => {\r\n setUrl(evt.target.value);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport const HeadlinesPicker = (props) => {\r\n\r\n useEffect(() => {\r\n\r\n setTimeout(() => { window.addEventListener('click', props.onWindowClick); });\r\n\r\n return function cleanup() {\r\n window.removeEventListener('click', props.onWindowClick);\r\n }\r\n\r\n }, []);\r\n\r\n props.onWindowClick = () =>\r\n // Call `onOverrideContent` again with `undefined`\r\n // so the toolbar can show its regular content again.\r\n props.onOverrideContent(undefined);\r\n\r\n const buttons = [HeadlineOneButton, HeadlineTwoButton, HeadlineThreeButton];\r\n return (\r\n
\r\n {buttons.map((Button, i) => // eslint-disable-next-line\r\n
\r\n );\r\n};\r\n\r\nexport const HeadlinesButton = (props) => {\r\n // When using a click event inside overridden content, mouse down\r\n // events needs to be prevented so the focus stays in the editor\r\n // and the toolbar remains visible onMouseDown = (event) => event.preventDefault()\r\n props.onMouseDown = (event) => event.preventDefault();\r\n\r\n props.onClick = () =>\r\n // A button can call `onOverrideContent` to replace the content\r\n // of the toolbar. This can be useful for displaying sub\r\n // menus or requesting additional information from the user.\r\n props.onOverrideContent(HeadlinesPicker);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const StyleControls = ({ toggleBlock, toggleStyle, classList }) => {\r\n\r\n const [state, dispatch] = useEditorContext();\r\n const classes = useStyles();\r\n \r\n const selection = state.editorState.getSelection();\r\n const blockType = state.editorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey())\r\n .getType();\r\n\r\n const currentStyle = state.editorState.getCurrentInlineStyle();\r\n \r\n //console.log(\"CURRENT BLOCK TYPE: \" + blockType);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {BLOCK_TYPES.map((type) => {\r\n\r\n const toggleActive = (e) => {\r\n e.preventDefault();\r\n toggleBlock(type.style);\r\n };\r\n \r\n return(\r\n \r\n {type.label}\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n {INLINE_STYLES.map((type, index) => {\r\n\r\n const toggleActive = (e) => {\r\n e.preventDefault();\r\n toggleStyle(type.style);\r\n };\r\n \r\n return(\r\n \r\n {type.label}\r\n \r\n )\r\n })}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","export const customStyleMap = {\r\n 'HIGHLIGHT': {\r\n backgroundColor: '#faed27',\r\n }\r\n};","import React, {useEffect, useRef} from 'react';\r\nimport {\r\n EditorState,\r\n RichUtils,\r\n getDefaultKeyBinding,\r\n Modifier,\r\n convertToRaw, convertFromRaw\r\n} from 'draft-js';\r\n\r\nimport Editor from 'draft-js-plugins-editor';\r\n\r\nimport {InlineControl, StyleControls} from './StyleControls/StyleControls';\r\n\r\nimport {useEditorContext} from './EditorProvider';\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {useParams} from 'react-router-dom';\r\nimport {plugins, decorators} from './plugins';\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport Prism from 'prismjs';\r\nimport { customStyleMap } from './CustomStyleMap';\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n \r\n editorContainer: {\r\n width: '100%',\r\n minHeight: 250,\r\n boxSizing: 'border-box',\r\n border: '2px solid #ddd',\r\n cursor: 'text',\r\n padding: 16,\r\n borderRadius: 2,\r\n marginBottom: '2em',\r\n //boxShadow: 'inset 0px 1px 1px -1px #ABABAB',\r\n background: '#fefefe'\r\n },\r\n editor: {\r\n cursor: 'text',\r\n padding: 16,\r\n marginBottom: '2em',\r\n },\r\n publicDraftEditorcontent: {\r\n minHeight: 140\r\n },\r\n headlineButtonWrapper: {\r\n display: 'inline-block',\r\n },\r\n headlineButton: {\r\n background: '#fbfbfb',\r\n color: '#888',\r\n fontSize: 18,\r\n border: 0,\r\n paddingTop: 5,\r\n verticalAlign: 'bottom',\r\n height: 34,\r\n width: 36\r\n },\r\n}));\r\n\r\nexport const DraftEditor = ({ readOnly, classList, saveForm }) => {\r\n\r\n const [state, dispatch] = useEditorContext();\r\n const { id } = useParams();\r\n const classes = useStyles();\r\n const editorRef = useRef(null);\r\n \r\n /*\r\n useEffect(() => {\r\n dispatch({type: 'SET_EDITOR_PLUGINS', value: plugins});\r\n dispatch({type: 'SET_EDITOR_DECORATORS', value: decorators});\r\n Prism.highlightAll()\r\n }, plugins);*/\r\n \r\n useEffect(() => {\r\n Prism.highlightAll()\r\n })\r\n\r\n const getBlockStyle = (block) => {\r\n switch (block.getType()) {\r\n case 'code-block':\r\n return 'language-sql';\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const keyBinding = (e) => {\r\n let currentState = state.editorState\r\n const selection = state.editorState.getSelection();\r\n const block = state.editorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey());\r\n const blockType = currentState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey())\r\n .getType();\r\n \r\n if (e.keyCode === 13 && e.shiftKey) \r\n {\r\n return 'soft-break';\r\n }\r\n else if (e.key === 'Tab') {\r\n if(blockType === \"unordered-list-item\" || blockType === \"ordered-list-item\")\r\n {\r\n handleChange(RichUtils.onTab(e, currentState, 3));\r\n }\r\n else\r\n {\r\n const newBlockState = Modifier.replaceText(\r\n currentState.getCurrentContent(),\r\n currentState.getSelection(),\r\n '\\t'\r\n );\r\n //dispatch({type: 'SET_EDITOR_STATE', value: EditorState.push(currentState, newBlockState, 'insert-characters')})\r\n dispatch({type: 'SET_EDITOR_STATE', value: EditorState.push(currentState, newBlockState, 'change-block-data')})\r\n //handleChange(EditorState.push(currentState, newBlockState, 'insert-characters'))\r\n return 'handled';\r\n }\r\n }\r\n else if (e.key === 'Tab' && block.getType() === 'code-block') \r\n {\r\n return 'code-tab';\r\n }\r\n else if (e.key === 's' && e.ctrlKey) \r\n {\r\n return 'save-shortcut';\r\n }\r\n \r\n return getDefaultKeyBinding(e);\r\n };\r\n\r\n const handleKeyCommand = (command, state) => {\r\n \r\n const newState = RichUtils.handleKeyCommand(state, command);\r\n \r\n if (command === 'code-block') {\r\n dispatch({type: 'SET_EDITOR_STATE', value: RichUtils.toggleBlockType(state, 'code-block')});\r\n return 'handled';\r\n }\r\n else if (command === 'soft-break') {\r\n dispatch({type: 'SET_EDITOR_STATE', value: RichUtils.insertSoftNewline(state)});\r\n return 'handled';\r\n }\r\n /*\r\n else if (command === 'code-tab') {\r\n const currentState = state;\r\n const newBlockState = Modifier.replaceText(\r\n currentState.getCurrentContent(),\r\n currentState.getSelection(),\r\n '\\t');\r\n dispatch({type: 'SET_EDITOR_STATE', value: EditorState.push(currentState, newBlockState, 'insert-characters')})\r\n return 'handled';\r\n }\r\n \r\n else if (command === 'code-tab') {\r\n const currentState = state;\r\n const newBlockState = Modifier.replaceText(\r\n currentState.getCurrentContent(),\r\n currentState.getSelection(),\r\n '\\t');\r\n dispatch({type: 'SET_EDITOR_STATE', value: EditorState.push(currentState, newBlockState, 'insert-characters')})\r\n }*/\r\n else if (command === 'save-shortcut') {\r\n // Perform a request to save your contents, set\r\n // a new `editorState`, etc.\r\n saveForm();\r\n }\r\n \r\n \r\n if (newState) {\r\n (\r\n dispatch({type: 'SET_EDITOR_STATE', value: newState})\r\n );\r\n return 'handled';\r\n }\r\n return 'not-handled';\r\n };\r\n\r\n const toggleBlockType = (type) => {\r\n (\r\n dispatch({type: 'SET_EDITOR_STATE', value: RichUtils.toggleBlockType(state.editorState, type)})\r\n );\r\n };\r\n\r\n const toggleStyleType = (type) => {\r\n (\r\n dispatch({type: 'SET_EDITOR_STATE', value: RichUtils.toggleInlineStyle(state.editorState, type)})\r\n );\r\n };\r\n\r\n const handleChange = (newEditorState) => {\r\n \r\n const selection = newEditorState.getSelection();\r\n const block = newEditorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey());\r\n const currentContent = state.editorState.getCurrentContent();\r\n const newContent = newEditorState.getCurrentContent();\r\n const blockType = block.getType();\r\n \r\n if (\r\n blockType === 'code-block' &&\r\n !newContent.equals(currentContent)\r\n ) \r\n {\r\n const data = block.getData().merge({ language: 'sql' });\r\n const newBlock = block.merge({ data });\r\n const newContentState = newEditorState.getCurrentContent().merge({\r\n blockMap: newEditorState\r\n .getCurrentContent()\r\n .getBlockMap()\r\n .set(selection.getStartKey(), newBlock),\r\n selectionAfter: selection\r\n });\r\n dispatch({type: 'SET_EDITOR_STATE', value: EditorState.push(newEditorState, newContentState, 'change-block-data')})\r\n } \r\n else (\r\n dispatch({type: 'SET_EDITOR_STATE', value: newEditorState})\r\n );\r\n };\r\n \r\n const focusEditor = () => {\r\n editorRef.current.focus()\r\n }\r\n \r\n return (\r\n \r\n {!readOnly && (\r\n \r\n \r\n \r\n )}\r\n focusEditor()}\r\n >\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DraftEditor;","import React, {useEffect, useState} from 'react';\r\nimport * as Yup from 'yup';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport {Button, LinearProgress, MenuItem, FormControlLabel, createStyles, emphasize} from '@material-ui/core';\r\nimport DraftEditor from \"../editor/DraftEditor\";\r\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\r\nimport {EditorProvider, useEditorContext} from \"../editor/EditorProvider\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport Select from \"@material-ui/core/Select\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport {useParams} from \"react-router-dom\";\r\nimport 'react-dropzone-uploader/dist/styles.css';\r\nimport Dropzone from 'react-dropzone-uploader';\r\n\r\nimport {\r\n AttachmentIcon,\r\n BugIcon,\r\n DeleteIcon,\r\n DislikeIcon,\r\n EtcIcon,\r\n ExcelIcon,\r\n FavoriteIcon,\r\n FavoriteIconEmpty,\r\n HappyIcon,\r\n ImageIcon,\r\n LikeIcon,\r\n LogIcon,\r\n LogoutIcon,\r\n MailIcon,\r\n PDFIcon,\r\n PhotoIcon,\r\n PowerBIIcon,\r\n SaveIcon,\r\n SQLIcon,\r\n TextIcon,\r\n UnhappyIcon,\r\n VideoIcon,\r\n VisibilityIcon,\r\n VisibilityOffIcon,\r\n WordIcon,\r\n ZipIcon,\r\n} from '../icons/Icons';\r\nimport Dialog from \"@material-ui/core/Dialog/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport Card from \"@material-ui/core/Card/Card\";\r\nimport CardActionArea from \"@material-ui/core/CardActionArea\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport cogoToast from 'cogo-toast';\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\n\r\nfunction useCallback() {\r\n \r\n}\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n \r\n textField: {\r\n color: 'black',\r\n },\r\n checkboxLabel: {\r\n fontSize: 16,\r\n },\r\n checkboxRoot: {\r\n margin: '15px 0px 15px 0px',\r\n },\r\n containerRoot: {\r\n flexGrow: 1,\r\n },\r\n controlPadding: {\r\n padding: '30px',\r\n },\r\n tableWrapper: {\r\n overflowX: 'auto',\r\n },\r\n skinnyHeader: {\r\n fontWeight: 300,\r\n },\r\n subheader: {\r\n margin: '0px 0px 30px 0px',\r\n fontSize: '18px',\r\n paddingTop: '5px',\r\n },\r\n editorStyle: {\r\n },\r\n editorWrapper: {\r\n },\r\n toolbarStyles:{\r\n margin: '0 0 50 0',\r\n },\r\n\r\n dropzone: {\r\n backgroundColor: '#efefef',\r\n border: 'dashed 2px #cccccc',\r\n width: '100%',\r\n color: '#cccccc',\r\n fontWeight: 800,\r\n padding: 0,\r\n margin: '5 0 10 0',\r\n textAlign: 'center',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n minHeight: 120,\r\n position: 'relative',\r\n boxSizing: 'border-box',\r\n /*\r\n -webkit-transition: all .15s linear;\r\n -o-transition: all .15s linear;*/\r\n transition: 'all .15s linear',\r\n },\r\n dropzoneActive: {\r\n },\r\n dropzoneReject: {\r\n },\r\n dropzoneDisabled: {\r\n },\r\n input: {\r\n },\r\n inputLabel: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n //fontFamily: \r\n fontSize: 20,\r\n fontWeight: 600,\r\n //color: #2484FF;\r\n //-moz-osx-font-smoothing: grayscale,\r\n //-webkit-font-smoothing: antialiased;\r\n cursor: 'pointer',\r\n },\r\n inputLabelWithFiles: {\r\n },\r\n preview: {\r\n },\r\n previewImage: {\r\n },\r\n submitButtonContainer: {\r\n },\r\n submitButton: {\r\n },\r\n \r\n}));\r\n\r\nconst Uploader = () => {\r\n\r\n const classes = useStyles();\r\n const { id } = useParams();\r\n\r\n const styles = {\r\n dropzone: classes.dropzone,\r\n //dropzoneActive: classes.dropzoneActive,\r\n //dropzoneReject: classes.dropzoneReject,\r\n //dropzoneDisabled: classes.dropzoneDisabled,\r\n //input: classes.input,\r\n inputLabel: classes.inputLabel,\r\n //inputLabelWithFiles: classes.inputLabelWithFiles,\r\n //preview: classes.preview,\r\n //previewImage: classes.previewImage,\r\n //submitButtonContainer: classes.submitButtonContainer,\r\n //submitButton: classes.submitButton\r\n };\r\n\r\n const getUploadParams = ({ file, meta }) => {\r\n const url = '/api/files/upload';\r\n\r\n //const body = new FormData();\r\n const fields = {\r\n parentId: id,\r\n fileName: meta.name\r\n };\r\n const method = 'method';\r\n const headers = {\r\n };\r\n return { url, fields };\r\n };\r\n\r\n // called every time a file's `status` changes\r\n const handleChangeStatus = ({ meta, file }, status) => { console.log(status, meta, file) };\r\n\r\n // receives array of files that are done uploading when submit button is clicked\r\n const handleSubmit = (files, allFiles) => {\r\n console.log(files.map(f => f.meta));\r\n allFiles.forEach(f => f.remove());\r\n };\r\n\r\n console.log(styles);\r\n\r\n return (\r\n \r\n )\r\n};\r\n\r\nconst Attachments = () => {\r\n \r\n const attachmentType = (filename) => {\r\n const extension = filename.split('.').pop().toLowerCase();\r\n if (extension === 'sql') {\r\n return SQLIcon;\r\n }\r\n else if (extension === 'zip') {\r\n return ZipIcon;\r\n }\r\n else {\r\n return EtcIcon;\r\n }\r\n };\r\n\r\n const useStyles = makeStyles((theme) => createStyles({\r\n attachments: {\r\n backgroundColor: '#ffffff',\r\n border: 'solid 2px #cccccc',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n marginBottom: 40,\r\n },\r\n attachmentBox: {\r\n padding: '15px 15px 15px 15px',\r\n },\r\n classes: {\r\n padding: 10,\r\n color: '#9a9a9a'\r\n },\r\n title: {\r\n fontSize: 14,\r\n fontWeight: 600,\r\n fontFamily: [\r\n 'Work Sans',\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n color: '#cccccc',\r\n position: 'relative',\r\n top: 6,\r\n left: 10,\r\n },\r\n visibleItem: {\r\n width: 120,\r\n height: 120,\r\n borderRadius: 3,\r\n alignItems: 'center',\r\n paddingTop: 6,\r\n backgroundColor: 'transparent',\r\n border: 'solid 1px #efefef',\r\n display: 'block',\r\n\r\n /*\r\n \"&:hover, &:focus\": {\r\n backgroundColor: ({ hoverBackgroundColor, backgroundColor }) =>\r\n hoverBackgroundColor\r\n ? hoverBackgroundColor\r\n : emphasize(backgroundColor, 0.08)\r\n },\r\n \"&:active\": {\r\n backgroundColor: ({ hoverBackgroundColor, backgroundColor }) =>\r\n emphasize(\r\n hoverBackgroundColor ? hoverBackgroundColor : backgroundColor,\r\n 0.12\r\n )\r\n }*/\r\n },\r\n invisibleItem: {\r\n width: 120,\r\n height: 120,\r\n borderRadius: 3,\r\n alignItems: 'center',\r\n paddingTop: 6,\r\n backgroundColor: 'transparent',\r\n border: 'solid 1px #efefef',\r\n \r\n },\r\n filename: {\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n display: 'block',\r\n fontSize: 12,\r\n color: '#333333',\r\n marginTop: 6,\r\n }\r\n }));\r\n \r\n const [state, dispatch] = useEditorContext();\r\n const classes = useStyles();\r\n const { id } = useParams();\r\n\r\n const attachmentButtonClick = (e) => {\r\n e.preventDefault();\r\n };\r\n\r\n if (state.attachments !== null && state.attachments.length > 0) {\r\n return (\r\n
\r\n
\r\n ATTACHMENTS\r\n
\r\n
\r\n {state.attachments.map((attachment, index) => {\r\n\r\n let itemStyle;\r\n let itemIcon;\r\n let visibilityIcon;\r\n \r\n if (attachment.visibility) {\r\n itemStyle = classes.visibleItem;\r\n itemIcon = ;\r\n visibilityIcon = ;\r\n }\r\n else {\r\n itemStyle = classes.invisibleItem;\r\n itemIcon = ;\r\n visibilityIcon = ;\r\n }\r\n \r\n const banana = () => {\r\n return (\r\n \r\n {visibilityIcon}\r\n \r\n \r\n )\r\n };\r\n \r\n return (\r\n \r\n )}\r\n )}\r\n
\r\n
\r\n \r\n )\r\n }\r\n else {\r\n return null;\r\n }\r\n};\r\n\r\nconst validationSchema = Yup.object({\r\n title: Yup.string(\"Enter a title\")\r\n .required(\"An article title is required.\"),\r\n});\r\n\r\nconst BannerDialog = (props) => {\r\n\r\n const useStyles = makeStyles((theme) => createStyles({\r\n\r\n activeBannerSelection: {\r\n border: 'solid 1px red',\r\n margin: 0,\r\n },\r\n inactiveBannerSelection: {\r\n margin: 1,\r\n },\r\n }));\r\n\r\n const [state, dispatch] = useEditorContext();\r\n const classes = useStyles();\r\n const [mediaList, setMediaList] = React.useState([]);\r\n const [mediaPage, setMediaPage] = React.useState([]);\r\n const [mediaCategory, setMediaCategory] = React.useState([]);\r\n const [mediaSubcategory, setMediaSubcategory] = React.useState([]);\r\n const [mediaCategoryList, setMediaCategoryList] = React.useState([]);\r\n const [mediaSubcategoryList, setMediaSubcategoryList] = React.useState([]);\r\n\r\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\r\n \r\n const [temporaryMediaSelection, setTemporaryMediaSelection] = React.useState(false);\r\n \r\n const openUploadDialog = () => {\r\n setUploadDialogOpen(true);\r\n };\r\n\r\n const setBannerImage = (value) => {\r\n\r\n setTemporaryMediaSelection(value);\r\n };\r\n \r\n const commitBannerImage = (e) => {\r\n dispatch({type: 'SET_BANNER_ID', value: temporaryMediaSelection});\r\n props.handleClose(e);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n \r\n async function getMedia() {\r\n let apiUri = `/api/files/media-library?cat=${mediaCategory}`;\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n referrer: 'no-referrer',\r\n };\r\n try {\r\n //dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setTemporaryMediaSelection(state.bannerId);\r\n setMediaList(data);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n //dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n }\r\n }\r\n if (props.open){\r\n getMedia();\r\n }\r\n }, [props.open]);\r\n\r\n return (\r\n \r\n Banner Image\r\n \r\n \r\n \r\n {mediaList.map((row, index) => {\r\n let activeClass;\r\n if (temporaryMediaSelection === row.itemId) {\r\n activeClass = classes.activeBannerSelection;\r\n }\r\n else {\r\n activeClass = classes.inactiveBannerSelection;\r\n }\r\n return(\r\n \r\n \r\n \r\n setBannerImage(row.itemId)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst ContentForm = (props) => {\r\n\r\n const [state, dispatch] = useEditorContext();\r\n const { id } = useParams();\r\n \r\n useEffect(() => {\r\n dispatch({type: 'SET_CONTENT_ID', value: id})\r\n }, []);\r\n \r\n const handleDetailChange = (event) => {\r\n let change = {};\r\n change[event.target.name] = event.target.value;\r\n dispatch({type: 'HANDLE_CHANGE', value: change})\r\n };\r\n \r\n const handleCategoryChange = (event) => {\r\n dispatch({ type: 'SET_CATEGORY', value: event.target.value });\r\n getSubCategories(event.target.value).then(r => { });\r\n };\r\n\r\n const handleSubCategoryChange = (event) => {\r\n dispatch({ type: 'SET_SUBCATEGORY', value: event.target.value })\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n\r\n const currentContent = state.editorState.getCurrentContent();\r\n const plainTextContent = currentContent.getPlainText();\r\n const rawDraftContentState = JSON.stringify(convertToRaw(currentContent));\r\n \r\n const data = {\r\n itemId: parseInt(state.contentId),\r\n categoryId: state.category,\r\n subcategoryId: state.subcategory,\r\n title: state.title,\r\n slug: state.slug,\r\n content: rawDraftContentState,\r\n contentText: plainTextContent,\r\n bannerId: state.bannerId,\r\n };\r\n\r\n const apiUri = \"/api/content/save\";\r\n\r\n \r\n \r\n fetch(apiUri, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json; charset=utf-8',\r\n 'Content-Type': 'application/json;charset=UTF-8'\r\n },\r\n body: JSON.stringify(data),\r\n }).then(\r\n \r\n ).then(\r\n data => {\r\n cogoToast.success('Save Complete!')\r\n \r\n }\r\n )\r\n };\r\n\r\n useEffect(() => {\r\n async function getSavedContent() {\r\n try {\r\n \r\n const response = await fetch(\r\n `/api/content/retrieve?itemId=${id}`\r\n );\r\n \r\n const data = await response.json();\r\n dispatch({ type: 'SET_CATEGORY', value: data.categoryId });\r\n\r\n if (data.categoryId > 0){\r\n getSubCategories(data.categoryId).then(r => { });\r\n //getSubCategories(data.categoryId).then(r => { //dispatch({ type: 'SET_SUBCATEGORY', value: data.subCategoryId }); });\r\n }\r\n \r\n if (data.itemContent) {\r\n data.editorState = EditorState.createWithContent(convertFromRaw(JSON.parse(data.itemContent)));\r\n }\r\n else {\r\n data.editorState = EditorState.createEmpty();\r\n }\r\n \r\n dispatch({ type: 'LOAD_CONTENT', value: data });\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n getSavedContent().then(promise => { });\r\n }, []);\r\n\r\n async function getCategories() {\r\n try {\r\n const response = await fetch(\r\n '/api/content/categories'\r\n );\r\n const data = await response.json();\r\n\r\n dispatch({ type: 'SET_CATEGORIES', value: data });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n async function getSubCategories(categoryId) {\r\n if (categoryId > 0) {\r\n try {\r\n const response = await fetch(\r\n `/api/content/subcategories?categoryId=${categoryId}`\r\n );\r\n const data = await response.json();\r\n return (dispatch({ type: 'SET_SUBCATEGORIES', value: data }))\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n \r\n const handleBannerDialog = (e, active) => {\r\n e.preventDefault();\r\n setBannerImageDialogOpen(active);\r\n };\r\n\r\n const [bannerImageDialogOpen, setBannerImageDialogOpen] = useState(false);\r\n \r\n useEffect(() => {\r\n getCategories().then(promise => { });\r\n }, []);\r\n \r\n return (\r\n
\r\n handleBannerDialog(e,false)}/>\r\n \r\n \r\n\r\n \r\n Category\r\n \r\n {state.categories.map((item, index) => (\r\n \r\n {item.category}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SubCategory\r\n \r\n {state.subcategories.map((item, index) => (\r\n \r\n {item.subCategory}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n Banner Image\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {state.isSubmitting && }\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n)};\r\n\r\nexport default function WebEditor () {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import {useAppContext} from \"../../context/Provider\";\r\nimport React from \"react\";\r\nimport WebEditor from \"../WebEditor\";\r\n\r\nexport const AdministrationEdit = (props) => {\r\n const [state, dispatch] = useAppContext();\r\n return (\r\n \r\n \r\n \r\n )\r\n};","import {useAppContext} from \"../../context/Provider\";\r\nimport React from \"react\";\r\nimport WebEditor from \"../WebEditor\";\r\n\r\nexport const AdministrationRoles = (props) => {\r\n const [state, dispatch] = useAppContext();\r\n return (\r\n \r\n \r\n \r\n )\r\n};","import {useAppContext} from \"../../context/Provider\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel/InputLabel\";\r\nimport Select from \"@material-ui/core/Select/Select\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport {createStyles, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {EditIcon} from \"../../icons/Icons\";\r\nimport Moment from \"react-moment\";\r\nimport {DeleteOutline as DeleteIcon, Publish as PublishIcon} from \"@material-ui/icons\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n table: {\r\n \r\n },\r\n}));\r\n\r\nconst NewCategory = (props) => {\r\n const [inputCategory, setInputCategory] = useState([]);\r\n const handleInputCategory = (event) => {\r\n setInputCategory(event.target.value);\r\n };\r\n\r\n async function SubmitCategories() {\r\n let apiUri = `/api/content/set-category?categoryId=-1&category=${inputCategory}`;\r\n let options= {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n referrer: 'no-referrer',\r\n };\r\n try {\r\n await fetch(apiUri, options);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n \r\n const handleSubmit = () => {\r\n if (inputCategory.length > 1) {\r\n SubmitCategories();\r\n props.onClose();\r\n }\r\n else {\r\n alert(\"Invalid Category!\");\r\n }\r\n };\r\n \r\n return (\r\n \r\n New Category\r\n \r\n \r\n This will permanently add a new main category. Use caution.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst NewSubCategory = (props) => {\r\n const [state, dispatch] = useAppContext();\r\n const [inputParentCategoryId, setInputParentCategoryId] = useState(0);\r\n const [inputSubCategory, setInputSubcategory] = useState('');\r\n \r\n async function SubmitSubCategories() {\r\n let apiUri = `/api/content/set-subcategory?categoryId=${inputParentCategoryId}&subcategory=${inputSubCategory}`;\r\n let options= {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n referrer: 'no-referrer',\r\n };\r\n try {\r\n await fetch(apiUri, options);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n \r\n const handleInputCategoryId = (event) => {\r\n setInputParentCategoryId(event.target.value);\r\n };\r\n\r\n const handleInputSubcategory = (event) => {\r\n setInputSubcategory(event.target.value);\r\n };\r\n\r\n const handleSubmit = () => {\r\n if (inputSubCategory.length > 1 && inputParentCategoryId > 0) {\r\n SubmitSubCategories();\r\n props.onClose();\r\n }\r\n else {\r\n alert(\"Invalid SubCategory Submission!\");\r\n }\r\n };\r\n \r\n \r\n \r\n return (\r\n \r\n New SubCategory\r\n \r\n \r\n This will permanently add a new subcategory. Use caution.\r\n \r\n\r\n \r\n Category\r\n \r\n {\r\n state.categories.map((category, index) => {\r\n return (\r\n {category.category}\r\n )})\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport const AdministrationCategories = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const [categoryDetail, setCategoryDetail] = useState([]);\r\n const classes = useStyles();\r\n\r\n // Input Category Variable\r\n const [newCategoryOpen, setNewCategoryOpen] = useState(false);\r\n\r\n // Input SubCategory Variables\r\n const [newSubCategoryOpen, setNewSubCategoryOpen] = useState(false);\r\n \r\n useEffect(() => {\r\n \r\n async function getCategoryDetail() {\r\n let apiUri = \"/api/content/category-detail\";\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n referrer: 'no-referrer',\r\n };\r\n\r\n try {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setCategoryDetail(data);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n }\r\n\r\n }\r\n getCategoryDetail().then(promise => { });\r\n }, []);\r\n\r\n return (\r\n \r\n setNewCategoryOpen(false)}/>\r\n setNewSubCategoryOpen(false)}/>\r\n
\r\n
\r\n

Categories

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Edit\r\n Category\r\n SubCategory\r\n Created\r\n \r\n \r\n \r\n {categoryDetail.map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.category}\r\n {row.subCategory}\r\n {row.createdDtm}\r\n \r\n \r\n\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n )\r\n};","import {useAppContext} from \"../../context/Provider\";\r\nimport {useNavigate} from \"react-router\";\r\nimport React, {useEffect} from \"react\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport {createStyles, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {EditIcon} from \"../../icons/Icons\";\r\nimport Moment from \"react-moment\";\r\nimport {DeleteOutline as DeleteIcon, Publish as PublishIcon} from \"@material-ui/icons\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n table: {\r\n\r\n },\r\n\r\n}));\r\n\r\n\r\nexport const AdministrationPublished = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const navigate = useNavigate();\r\n\r\n async function GetPublished() {\r\n useEffect(() => {\r\n async function GetPublished() {\r\n\r\n const apiUri = `/api/content/get-list?authorId=${state.userId}&published=1`;\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n\r\n if (state.userId > 0) {\r\n try {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setTableData(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n }\r\n }\r\n }\r\n GetPublished().then(promise => { });\r\n }, [state.userId]);\r\n }\r\n GetPublished();\r\n const classes = useStyles();\r\n const [tableData, setTableData] = React.useState([{}]);\r\n return (\r\n \r\n

Published

\r\n \r\n \r\n \r\n Item\r\n Modified\r\n Created\r\n \r\n \r\n \r\n \r\n {tableData.map((row, index) => (\r\n \r\n \r\n navigate(`/administration/edit/${row.itemId}`)}>\r\n \r\n \r\n \r\n \r\n {row.modifiedDtm}\r\n {row.createdDtm}\r\n \r\n \r\n\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n )\r\n};","import {useAppContext} from \"../../context/Provider\";\r\nimport React, {useEffect} from \"react\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {createStyles, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport Moment from \"react-moment\";\r\nimport {DeleteOutline as DeleteIcon, Publish as PublishIcon} from \"@material-ui/icons\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n table: {\r\n \r\n },\r\n \r\n}));\r\n\r\nexport const AdministrationUsers = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n\r\n function GetUsers() {\r\n let apiUri = '/auth/user-list';\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n\r\n useEffect(() => {\r\n async function getDrafts() {\r\n try {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setTableData(data);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n }\r\n }\r\n getDrafts().then(promise => {\r\n });\r\n }, []);\r\n }\r\n\r\n GetUsers();\r\n const classes = useStyles();\r\n const [tableData, setTableData] = React.useState([{}]);\r\n\r\n return (\r\n \r\n

Users

\r\n \r\n \r\n \r\n UserID\r\n Display Name\r\n Username\r\n E-mail\r\n Created Dtm\r\n Actions\r\n \r\n \r\n \r\n {tableData.map((row, index) => (\r\n \r\n {row.userId}\r\n {row.displayName}\r\n {row.username}\r\n {row.email}\r\n {row.createdDtm}\r\n \r\n \r\n\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n )\r\n};","import {useAppContext} from \"../../context/Provider\";\r\nimport {useNavigate} from \"react-router\";\r\nimport React, {useEffect} from \"react\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport {createStyles, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {EditIcon} from \"../../icons/Icons\";\r\nimport Moment from \"react-moment\";\r\nimport {DeleteOutline as DeleteIcon, Publish as PublishIcon} from \"@material-ui/icons\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n table: {\r\n\r\n },\r\n\r\n}));\r\n\r\nexport const AdministrationReview = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const navigate = useNavigate();\r\n\r\n async function GetPublished() {\r\n useEffect(() => {\r\n async function GetPublished() {\r\n\r\n const apiUri = `/api/content/get-list?authorId=${state.userId}&published=1`;\r\n let options= {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n\r\n if (state.userId > 0) {\r\n try {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n const response = await fetch(apiUri, options);\r\n const data = await response.json();\r\n setTableData(data);\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n }\r\n }\r\n }\r\n GetPublished().then(promise => { });\r\n }, [state.userId]);\r\n }\r\n GetPublished();\r\n const classes = useStyles();\r\n const [tableData, setTableData] = React.useState([{}]);\r\n return (\r\n \r\n

Review

\r\n \r\n \r\n \r\n Item\r\n Modified\r\n Created\r\n \r\n \r\n \r\n \r\n {tableData.map((row, index) => (\r\n \r\n \r\n navigate(`/administration/edit/${row.itemId}`)}>\r\n \r\n \r\n \r\n \r\n {row.modifiedDtm}\r\n {row.createdDtm}\r\n \r\n \r\n\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n )\r\n};","import React, {useEffect, useState} from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport {createStyles} from \"@material-ui/core\";\r\nimport {Route, Routes, useNavigate, Link} from 'react-router-dom';\r\nimport PropsDebugger from \"../components/PropsDebugger\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport 'moment-timezone';\r\nimport { css } from \"@emotion/core\";\r\nimport PuffLoader from \"react-spinners/PuffLoader\";\r\nimport { ListItemIcon, ListItemText } from '@material-ui/core';\r\nimport {useAppContext} from \"../context/Provider\";\r\n\r\nimport {\r\n ColorReviewIcon,\r\n ColorGlobeIcon,\r\n ColorUserIcon,\r\n EditIcon,\r\n ColorPictureIcon, \r\n ColorAddIcon, \r\n ColorDocumentIcon, \r\n ColorKeyIcon,\r\n ColorCategoriesIcon,\r\n} from \"../icons/Icons\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\nimport {AdministrationMedia} from \"./Administration/AdministrationMedia\";\r\nimport {AdministrationDrafts} from \"./Administration/AdministrationDrafts\";\r\nimport {AdministrationEdit} from \"./Administration/AdministrationEdit\";\r\nimport {AdministrationRoles} from \"./Administration/AdministrationRoles\";\r\nimport {AdministrationCategories} from \"./Administration/AdministrationCategories\";\r\nimport {AdministrationPublished} from \"./Administration/AdministrationPublished\";\r\nimport {AdministrationUsers} from \"./Administration/AdministrationUsers\";\r\nimport {AdministrationReview} from \"./Administration/AdministrationReview\";\r\n\r\n// Can be a string as well. Need to ensure each key-value pair ends with ;\r\nconst override = css`\r\n position: fixed;\r\n top: 20%;\r\n left: 50%;\r\n display: block;\r\n margin: 0 auto;\r\n border-color: #0fb28e;\r\n`;\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n drawerPaper: {\r\n zIndex: theme.zIndex.appBar - 1,\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n composerContainer: {\r\n position: 'relative',\r\n margin: 'none',\r\n padding: 'none',\r\n },\r\n fakeDrawer: {\r\n height: '100%',\r\n zIndex: theme.zIndex.appBar - 1,\r\n width: drawerWidth,\r\n elevation: 5,\r\n borderRight: 'solid 1px #cccccc',\r\n //boxShadow: '0 10px 5px rgba(0,0,0,.05)',\r\n display: 'block',\r\n flexShrink: 0,\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n },\r\n drawerList: {\r\n marginTop: theme.spacing(1),\r\n width: '100%',\r\n display: 'block',\r\n float: 'left',\r\n },\r\n adaptedLayout: {\r\n marginLeft: drawerWidth,\r\n minHeight: \"82vh\",\r\n },\r\n \r\n \r\n composeContainerProperties: {\r\n display: \"block\",\r\n overflow: \"hidden\",\r\n padding: '10px 40px 10px 40px',\r\n\r\n },\r\n editorContainer:{\r\n padding: '20px',\r\n },\r\n skinnyHeader: {\r\n fontWeight: 300,\r\n },\r\n icon:{\r\n marginLeft: 10,\r\n minWidth: 50,\r\n },\r\n\r\n \r\n}));\r\n\r\nconst AdministrationModule = (props) => {\r\n \r\n return (\r\n
\r\n \"Are you lost? {props.match.params.module} doesn't exist.\"\r\n \r\n
\r\n )\r\n};\r\n\r\nconst AdministrationNew = (props) => {\r\n\r\n const [open, setOpen] = useState(true);\r\n const [title, setTitle] = useState('');\r\n const [state, dispatch] = useAppContext();\r\n const navigate = useNavigate();\r\n \r\n function handleClose() {\r\n setOpen(false);\r\n }\r\n \r\n const HandleCreate = () => {\r\n \r\n let apiUri = \"/api/content/create?title=\" + title;\r\n let options= {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n //body: JSON.stringify(data),\r\n referrer: 'no-referrer',\r\n };\r\n\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: true });\r\n \r\n fetch(apiUri, options)\r\n .then(data => data.json())\r\n .then((data) => {\r\n console.log(\"Well this was returned: \");\r\n console.log(data);\r\n navigate(`/administration/edit/${data}`);\r\n })\r\n .catch(error => {\r\n console.error('Error:', error)\r\n })\r\n .finally(info => {\r\n dispatch({ type: 'SET_ADMINISTRATION_LOADING', value: false });\r\n })\r\n }\r\n \r\n return (\r\n \r\n Create New\r\n \r\n \r\n Please enter a name for the new content item.\r\n \r\n setTitle(e.target.value)}\r\n value={title}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport const ContentLoading = (props) => {\r\n return (\r\n \r\n \r\n )\r\n};\r\n\r\nexport default function Administration () {\r\n \r\n const [state, dispatch] = useAppContext();\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n \r\n //dispatch({ type: 'SET_TITLE', value: 'Business Wintelligence Administration' });\r\n \r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n navigate('/administration/media/')}>\r\n \r\n \r\n \r\n navigate('/administration/new/')}>\r\n \r\n \r\n \r\n navigate('/administration/drafts/')}>\r\n \r\n \r\n \r\n navigate('/administration/review/')}>\r\n \r\n \r\n \r\n navigate('/administration/published/')}>\r\n \r\n \r\n \r\n navigate('/administration/users/')}>\r\n \r\n \r\n \r\n navigate('/administration/roles/')}>\r\n \r\n \r\n \r\n navigate('/administration/categories/')}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n );\r\n}\r\n\r\n\r\n","\r\nimport React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport StaticPlaceholder from \"../img/placeholder/static.gif\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport classNames from \"classnames\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport CardActions from \"@material-ui/core/CardActions\";\r\nimport CardMedia from \"@material-ui/core/CardMedia\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(3)\r\n },\r\n textAlign: \"center\",\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.extendedProperties.background.primary, //theme.palette.text.secondary\r\n },\r\n stepper: {\r\n padding: `${theme.spacing(1) * 3}px 0 ${theme.spacing(1) * 5}px`\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1)\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2)\r\n },\r\n heroUnit: {\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n margin: \"0 auto\",\r\n padding: `${theme.spacing(8)}px 0 ${theme.spacing(6)}px`\r\n },\r\n heroButtons: {\r\n marginTop: theme.spacing(4)\r\n },\r\n\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n }\r\n },\r\n\r\n whitespace: {\r\n width: 'auto',\r\n background: '#ffffff',\r\n padding: '0 0 100 0',\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary,\r\n },\r\n cardMediaz: {\r\n padding: 0,\r\n margin: 0,\r\n height: 250,\r\n width: '100%',\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'tile',\r\n imageRendering: 'pixelated',\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n typography: {\r\n color: theme.palette.primary.textColor\r\n },\r\n backgroundMedia: `url('${StaticPlaceholder}')`,\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n\r\n repeatBg: {\r\n height: 250,\r\n backgroundRepeat: 'repeat',\r\n backgroundSize: 'auto',\r\n },\r\n slideContainer: {\r\n height: 200,\r\n width: 400\r\n },\r\n paddedTop: {\r\n alignContent: 'center',\r\n paddingTop: theme.spacing(2),\r\n },\r\n spaceBanner: {\r\n background: 'url(../images/stars.png) repeat',\r\n backgroundAttachment: 'fixed',\r\n width: '100%',\r\n height: '400px',\r\n animation: 'animatedBackground linear 45s infinite',\r\n overflow: 'hidden',\r\n },\r\n search: {\r\n width: '100%',\r\n },\r\n gutter: {\r\n marginTop: 20,\r\n paddingTop: 50, \r\n }\r\n}));\r\n\r\nconst cards = [1, 2, 3, 4];\r\n\r\nexport default function Articles() {\r\n\r\n const classes = useStyles();\r\n \r\n return (\r\n \r\n\r\n \r\n {cards.map(card => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Heading\r\n \r\n \r\n This is a media card. You can use this section to describe\r\n the content.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n List of Links\r\n
\r\n Link one\r\n
\r\n Link one\r\n
\r\n Link one\r\n
\r\n Link one\r\n
\r\n Link one\r\n
\r\n
\r\n\r\n \r\n \r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n

This is a test

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, {useEffect} from \"react\";\r\nimport { Layout } from './../components/Layout';\r\nimport StaticPlaceholder from \"../img/placeholder/static.gif\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {useParams} from \"react-router-dom\";\r\nimport {useAppContext} from \"../context/Provider\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(3)\r\n },\r\n textAlign: \"center\",\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.extendedProperties.background.primary //theme.palette.text.secondary\r\n },\r\n\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n }\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardMediaz: {\r\n padding: 0,\r\n margin: 0,\r\n\r\n height: 250,\r\n width: '100%',\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'tile',\r\n imageRendering: 'pixelated',\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n typography: {\r\n color: theme.palette.primary.textColor\r\n },\r\n backgroundMedia: `url('${StaticPlaceholder}')`,\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n\r\n repeatBg: {\r\n height: 250,\r\n backgroundRepeat: 'repeat',\r\n backgroundSize: 'auto',\r\n },\r\n slideContainer: {\r\n height: 200,\r\n width: 400\r\n },\r\n paddedTop: {\r\n alignContent: 'center',\r\n paddingTop: theme.spacing(2),\r\n },\r\n spaceBanner: {\r\n background: 'url(../images/stars.png) repeat',\r\n backgroundAttachment: 'fixed',\r\n width: '100%',\r\n height: '400px',\r\n animation: 'animatedBackground linear 45s infinite',\r\n overflow: 'hidden',\r\n },\r\n\r\n articleInfoContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n \r\n },\r\n\r\n authorIcon: {\r\n height: 50,\r\n width: 50,\r\n marginRight: 10,\r\n backgroundColor: 'red',\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n}));\r\n\r\n\r\nexport default function Article () {\r\n\r\n const classes = useStyles();\r\n const { id } = useParams();\r\n const [state, dispatch] = useAppContext();\r\n\r\n \r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React from \"react\";\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Layout } from './../components/Layout';\r\n\r\nconst styles = theme => ({\r\n\r\n});\r\n\r\nexport default function Lab () {\r\n return (\r\n \r\n
hi there
\r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","\r\nimport React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport StaticPlaceholder from \"../img/placeholder/static.gif\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport MaterialTable from \"material-table\";\r\nimport WebFont from 'webfontloader';\r\n\r\nWebFont.load({\r\n google: {\r\n families: ['Material Icons']\r\n }\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n \r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(3)\r\n },\r\n textAlign: \"center\",\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.extendedProperties.background.primary, //theme.palette.text.secondary\r\n },\r\n stepper: {\r\n padding: `${theme.spacing(1) * 3}px 0 ${theme.spacing(1) * 5}px`\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1)\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2)\r\n },\r\n heroUnit: {\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n margin: \"0 auto\",\r\n padding: `${theme.spacing(8)}px 0 ${theme.spacing(6)}px`\r\n },\r\n heroButtons: {\r\n marginTop: theme.spacing(4)\r\n },\r\n\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n }\r\n },\r\n\r\n whitespace: {\r\n width: 'auto',\r\n background: '#ffffff',\r\n padding: '0 0 100 0',\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary,\r\n },\r\n cardMediaz: {\r\n padding: 0,\r\n margin: 0,\r\n height: 250,\r\n width: '100%',\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'tile',\r\n imageRendering: 'pixelated',\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n typography: {\r\n color: theme.palette.primary.textColor\r\n },\r\n backgroundMedia: `url('${StaticPlaceholder}')`,\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n\r\n repeatBg: {\r\n height: 250,\r\n backgroundRepeat: 'repeat',\r\n backgroundSize: 'auto',\r\n },\r\n slideContainer: {\r\n height: 200,\r\n width: 400\r\n },\r\n paddedTop: {\r\n alignContent: 'center',\r\n paddingTop: theme.spacing(2),\r\n },\r\n spaceBanner: {\r\n background: 'url(../images/stars.png) repeat',\r\n backgroundAttachment: 'fixed',\r\n width: '100%',\r\n height: '400px',\r\n animation: 'animatedBackground linear 45s infinite',\r\n overflow: 'hidden',\r\n },\r\n search: {\r\n width: '100%',\r\n },\r\n gutter: {\r\n marginTop: 20,\r\n paddingTop: 50,\r\n }\r\n}));\r\n\r\nconst cards = [1, 2, 3, 4];\r\n\r\nexport default function Tools() {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n (link)}\r\n /*\r\n {\r\n title: 'Birth Place',\r\n field: 'birthCity',\r\n lookup: { 34: 'İstanbul', 63: 'Şanlıurfa' },\r\n },\r\n */\r\n ]}\r\n data={[\r\n { name: 'Microsoft Network Monitor', description: 'The Network Monitor tool (NetMon.exe) is a Windows-based application that you can use to view traces from WPD components. The tool replaces WpdMon.exe and provides a new means of collecting and viewing WPD traces in Windows 8.', link: 'https://www.microsoft.com/en-us/download/details.aspx?id=4865' },\r\n { name: 'Fiddler', description: 'Fiddler is a web debugging tool which logs all HTTP(S) traffic between your computer and the internet. Inspect traffic, set breakpoints, and fiddle with incoming and outgoing data.', link: 'https://www.telerik.com/download/fiddler' },\r\n {name: 'Quicktype', description: 'quicktype generates strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL queries, making it a breeze to work with JSON type-safely in many programming languages.', link: 'https://quicktype.io/csharp/'},\r\n {name: 'Visual Studio Code', description: 'At its heart, Visual Studio Code features a lightning fast source code editor, perfect for day-to-day use. With support for hundreds of languages, VS Code helps you be instantly productive with syntax highlighting, bracket-matching, auto-indentation, box-selection, snippets, and more. Intuitive keyboard shortcuts, easy customization and community-contributed keyboard shortcut mappings let you navigate your code with ease.', link: 'https://code.visualstudio.com/'},\r\n {name: 'Docker', description: 'Docker Desktop is an application for MacOS and Windows machines for the building and sharing of containerized applications and microservices.', link: 'https://www.docker.com/products/docker-desktop'},\r\n {name: 'Power BI Desktop', description: 'Power BI Desktop is a free application you install on your local computer that lets you connect to, transform, and visualize your data. With Power BI Desktop, you can connect to multiple different sources of data, and combine them (often called modeling) into a data model. This data model lets you build visuals, and collections of visuals you can share as reports, with other people inside your organization. Most users who work on business intelligence projects use Power BI Desktop to create reports, and then use the Power BI service to share their reports with others.', link: 'https://powerbi.microsoft.com/en-us/desktop/'},\r\n {name: 'Color Themes for Visual Studio', description: 'A collection of themes for Visual Studio that can be used in conjunction with Color Theme Editor for Visual Studio.', link: 'https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.ColorThemesforVisualStudio'},\r\n {name: 'Color Theme Editor for Visual Studio 2017', description: 'Allows users to customize the Visual Studio 2017 color palette.', link: 'https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.VisualStudio2017ColorThemeEditor'},\r\n {name: 'Color Theme Editor for Visual Studio 2019', description: 'Allows users to customize the Visual Studio 2019 color palette.', link: 'https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.VisualStudio2019ColorThemeEditor'},\r\n {name: 'VS Code Themes', description: 'Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. It includes support for development operations like debugging, task running, and version control. It aims to provide just the tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs, such as Visual Studio IDE.', link: 'https://vscodethemes.com/'},\r\n {name: 'Remote Desktop Manager', description: 'Remote Desktop Manager (RDM) centralizes all remote connections on a single platform that is securely shared between users and across the entire team. With support for hundreds of integrated technologies — including multiple protocols and VPNs — along with built-in enterprise-grade password management tools, global and granular-level access controls, and robust mobile apps to complement desktop clients for Windows and Mac, RDM is a Swiss Army knife for remote access. RDM empowers IT departments to drive security, speed and productivity throughout the organization, while reducing inefficiency, cost and risk.', link: 'https://remotedesktopmanager.com/home/downloadfree'},\r\n {name: 'Hyper', description: 'Hyper is an Electron-based terminal built on HTML/CSS/JS. It is fully extensible.', link: 'https://hyper.is/'},\r\n \r\n ]}\r\n options={{\r\n filtering: true,\r\n pageSize: 20,\r\n }}\r\n />\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","\r\nimport React, {useState} from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport StaticPlaceholder from \"../img/placeholder/static.gif\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Layout } from \"../components/Layout\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n buttonStyle: {\r\n backgroundColor: theme.extendedProperties.accents.primary,\r\n color: theme.extendedProperties.foreground.primary,\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n minHeight: \"82vh\",\r\n color: theme.palette.primary.textColor\r\n },\r\n card: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n backgroundColor: theme.extendedProperties.foreground.primary,\r\n marginBottom: 10,\r\n },\r\n question: {\r\n backgroundImage: `url(${BLOB_STORAGE_URI}images/ask/ask.png)`,\r\n backgroundSize: 'stretch',\r\n backgroundPosition: 'bottom left',\r\n backgroundRepeat: 'no-repeat',\r\n height: 300,\r\n padding: '50px 0px 50px 0px',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n },\r\n suggestionContent: {\r\n padding: '16px 16px 16px 16px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n \r\n suggestionTitle: {\r\n fontSize: 18,\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n suggestionDescription: {\r\n fontSize: 16,\r\n color: '#a1a1a1',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(3)\r\n },\r\n textAlign: \"center\",\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.extendedProperties.background.primary, //theme.palette.text.secondary\r\n },\r\n stepper: {\r\n padding: `${theme.spacing(1) * 3}px 0 ${theme.spacing(1) * 5}px`\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1)\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2)\r\n },\r\n heroUnit: {\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n margin: \"0 auto\",\r\n padding: `${theme.spacing(8)}px 0 ${theme.spacing(6)}px`\r\n },\r\n heroButtons: {\r\n marginTop: theme.spacing(4)\r\n },\r\n\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n }\r\n },\r\n\r\n whitespace: {\r\n width: 'auto',\r\n background: '#ffffff',\r\n padding: '0 0 100 0',\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n cardMediaz: {\r\n padding: 0,\r\n margin: 0,\r\n height: 250,\r\n width: '100%',\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'tile',\r\n imageRendering: 'pixelated',\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n typography: {\r\n color: theme.palette.primary.textColor\r\n },\r\n backgroundMedia: `url('${StaticPlaceholder}')`,\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n\r\n repeatBg: {\r\n height: 250,\r\n backgroundRepeat: 'repeat',\r\n backgroundSize: 'auto',\r\n },\r\n slideContainer: {\r\n height: 200,\r\n width: 400\r\n },\r\n paddedTop: {\r\n alignContent: 'center',\r\n paddingTop: theme.spacing(2),\r\n },\r\n spaceBanner: {\r\n background: 'url(../images/stars.png) repeat',\r\n backgroundAttachment: 'fixed',\r\n width: '100%',\r\n height: '400px',\r\n animation: 'animatedBackground linear 45s infinite',\r\n overflow: 'hidden',\r\n },\r\n search: {\r\n width: '100%',\r\n },\r\n gutter: {\r\n marginTop: 20,\r\n paddingTop: 50,\r\n }\r\n}));\r\n\r\nconst Submit = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n};\r\n\r\nconst RequestForm = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n \r\n if (state.authenticated){\r\n return (\r\n \r\n Describe Your Request\r\n \r\n \r\n \r\n There's no guarantee it'll get done, but asking is the first step. If there's something you'd like \r\n to see created, ask away. If it's popular enough, it might just get done! \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n Register\r\n \r\n \r\n You need to be registered to submit a suggestion. Would you like to register? It will require a Microsoft account.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n};\r\n\r\nexport default function Community() {\r\n\r\n const classes = useStyles();\r\n const [suggestFormOpen, setSuggestFormOpen] = useState(false);\r\n\r\n const handleSuggestFormOpen = () => {\r\n console.log(\"HELLO THERE FORM OPEN\");\r\n setSuggestFormOpen(true);\r\n };\r\n\r\n const handleSuggestFormClose = () => {\r\n setSuggestFormOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n Have a Question
or a Request?\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vote for Your Favorite Suggestion / Request\r\n \r\n \r\n Is there something that you've especially struggled to understand? Maybe there's a script \r\n or report you wish existed that would help your life out a lot, but you don't know how to\r\n go about building it. Here's your opportunity to knock that out! Convince us it's a worthy \r\n issue and we'll try to solve it for you.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
10
\r\n \r\n
\r\n \r\n
\r\n \r\n This is a media card. You can use this section to describe\r\n the content.\r\n \r\n\r\n \r\n This is a detail card. You can use this section to describe\r\n the content.\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n This is a media card. You can use this section to describe\r\n the content.\r\n \r\n\r\n \r\n This is a detail card. You can use this section to describe\r\n the content.\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Stars from './../img/banner/stars.png';\r\nimport {css} from \"linaria\";\r\n\r\nconst animatedBackground = css`\r\n @keyframes starMovement {\r\n 0% { background-position: 0px 0; }\r\n 100% { background-position: 0px 509px; }\r\n }\r\n animation: starMovement 10s linear infinite\r\n`;\r\n\r\nconst styles = theme => ({\r\n appBar: {\r\n position: 'relative',\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2),\r\n },\r\n heroUnit: {\r\n backgroundColor: '#aedcd2',//theme.palette.background.paper,\r\n //backgroundImage: `url(${Background})`,\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n paddingTop: 30,\r\n margin: '0 auto',\r\n width: '100%',\r\n height: '200px',\r\n overflow: 'hidden',\r\n color: '#ffffff'\r\n },\r\n\r\n heroBackground: {\r\n background: 'radial-gradient(ellipse at bottom, #19163e 0%, #000000 100%)',\r\n width: '100%',\r\n height: '200px',\r\n padding: '0px',\r\n zIndex: 5,\r\n position: 'relative',\r\n },\r\n animatedBackground: {\r\n margin: '0 auto',\r\n background: 'url(' + Stars + ')',\r\n backgroundRepeat: 'repeat',\r\n width: '100%',\r\n height: '200px',\r\n overflow: 'hidden',\r\n position: 'absolute',\r\n },\r\n layout: {\r\n width: 'auto',\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n },\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(8)}px 0`,\r\n },\r\n card: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n cardMedia: {\r\n paddingTop: '56.25%', // 16:9\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n },\r\n footer: {\r\n //backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6),\r\n },\r\n link: {\r\n color: \"#c3e475\",\r\n },\r\n overrides: {\r\n Link: {\r\n text: {\r\n color: \"#c3e475\",\r\n },\r\n link: {\r\n color: \"#c3e475\",\r\n },\r\n\r\n },\r\n },\r\n search: {\r\n width: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n paddingBottom: 0,\r\n marginTop: 0,\r\n fontWeight: 500,\r\n background: '#ffffff',\r\n borderRadius: 5,\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n\r\n\r\n\r\n borderColor: 'green !important',\r\n '&:focus': {\r\n boxShadow: `${(theme.palette.primary.main, 0.25)} 0 0 0 0.2rem`,\r\n borderColor: '#9c27b0',\r\n },\r\n\r\n '& label.Mui-focused': {\r\n color: '#9c27b0',\r\n },\r\n '& .MuiInput-underline:after': {\r\n borderBottomColor: '#9c27b0',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& fieldset': {\r\n borderColor: '#9c27b0',\r\n },\r\n '&:hover fieldset': {\r\n borderColor: '#9c27b0',\r\n },\r\n '&.Mui-focused fieldset': {\r\n borderColor: '#9c27b0',\r\n },\r\n },\r\n },\r\n input: {\r\n color: '#000000',\r\n padding: '0 5 0 5',\r\n }\r\n});\r\n\r\nfunction AboutBanner(props) {\r\n const { classes } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n About\r\n \r\n\r\n \r\n Meet the team and learn about what we're doing.\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default withStyles(styles)(AboutBanner);","import React, {useEffect, } from 'react';\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport \"./../components/HeaderBanner\";\r\nimport AboutBanner from \"../components/AboutBanner\";\r\nimport StaticPlaceholder from \"./../img/placeholder/static.gif\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport {BLOB_STORAGE_URI} from \"../constants/Constants\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n container: {\r\n display: 'flex',\r\n width: '100%',\r\n flexDirection: 'column',\r\n paddingTop: theme.spacing(4),\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n },\r\n item: {\r\n height: '100%',\r\n width: '100%',\r\n flex: 1,\r\n },\r\n title: {\r\n fontSize: 18,\r\n },\r\n aboutImage: {\r\n height: 200,\r\n width: 200,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center',\r\n backgroundSize: 'cover',\r\n flexShrink: 0,\r\n},\r\n aboutText: {\r\n flexGrow: 1,\r\n padding: 20,\r\n },\r\n aboutContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n backgroundColor: theme.palette.background.paper,\r\n flexWrap: 'nowrap',\r\n marginBottom: 20,\r\n },\r\n categories: {\r\n width: '100%',\r\n color: '#cccccc',\r\n padding: 0,\r\n margin: 0,\r\n },\r\n contentContainer: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n padding: 25,\r\n marginTop: 25,\r\n marginBottom: 25,\r\n color: theme.palette.primary.textColor\r\n },\r\n paper: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(600 + theme.spacing(2) * 2)]: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(3),\r\n padding: theme.spacing(3)\r\n },\r\n textAlign: \"center\",\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.extendedProperties.background.primary //theme.palette.text.secondary\r\n },\r\n paperCard: {\r\n padding: '30px !important',\r\n textAlign: 'left',\r\n color: theme.palette.primary.textColor,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n stepper: {\r\n padding: `${theme.spacing(1) * 3}px 0 ${theme.spacing(1) * 5}px`\r\n },\r\n buttons: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n },\r\n button: {\r\n marginTop: theme.spacing(3),\r\n marginLeft: theme.spacing(1)\r\n },\r\n icon: {\r\n marginRight: theme.spacing(2)\r\n },\r\n heroUnit: {\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n heroContent: {\r\n maxWidth: 600,\r\n margin: \"0 auto\",\r\n padding: `${theme.spacing(8)}px 0 ${theme.spacing(6)}px`\r\n },\r\n heroButtons: {\r\n marginTop: theme.spacing(4)\r\n },\r\n\r\n layout: {\r\n width: \"auto\",\r\n marginLeft: theme.spacing(3),\r\n marginRight: theme.spacing(3),\r\n [theme.breakpoints.up(1100 + theme.spacing(3) * 2)]: {\r\n width: 1100,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n }\r\n },\r\n cardGrid: {\r\n padding: `${theme.spacing(0)}px 0`\r\n },\r\n card: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n backgroundColor: theme.extendedProperties.foreground.primary\r\n },\r\n cardMediaz: {\r\n padding: 0,\r\n margin: 0,\r\n\r\n height: 250,\r\n width: '100%',\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'tile',\r\n imageRendering: 'pixelated',\r\n },\r\n cardContent: {\r\n flexGrow: 1,\r\n typography: {\r\n color: theme.palette.primary.textColor\r\n },\r\n backgroundMedia: `url('${StaticPlaceholder}')`,\r\n },\r\n footer: {\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(6)\r\n },\r\n\r\n repeatBg: {\r\n height: 250,\r\n backgroundRepeat: 'repeat',\r\n backgroundSize: 'auto',\r\n },\r\n slideContainer: {\r\n height: 200,\r\n width: 400\r\n },\r\n paddedTop: {\r\n alignContent: 'center',\r\n paddingTop: theme.spacing(2),\r\n },\r\n spaceBanner: {\r\n background: 'url(../images/stars.png) repeat',\r\n backgroundAttachment: 'fixed',\r\n width: '100%',\r\n height: '400px',\r\n animation: 'animatedBackground linear 45s infinite',\r\n overflow: 'hidden',\r\n }\r\n}));\r\n\r\nexport default function About() {\r\n\r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n \r\n useEffect(() => {\r\n async function getRecent() {\r\n try {\r\n\r\n const response = await fetch(\r\n `/api/content/get-list?limit=4`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n console.log(\"Loading content:\");\r\n console.log(data);\r\n\r\n dispatch({type: 'SET_CONTENT_LIST', value: data});\r\n\r\n\r\n\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n dispatch({ type: 'SET_TITLE', value: 'About Business Wintelligence' });\r\n \r\n getRecent().then(promise => { });\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n This Ain't Some Wordpress Blog, Amigo\r\n \r\n \r\n Business wIntelligence runs on custom .NET Core on the back end and a React front end. The editor is built\r\n on Draft.js, the data lives in Azure SQL, search glides on Azure Cognitive Services, images and video\r\n are stored in Azure Blob Storage, and it's served up by Kestrel web server (not IIS). That server is\r\n hosted inside of a Docker container running in a CentOS (Linux) VM in Azure and is accessed through\r\n an Nginx reverse proxy server.\r\n
\r\n
\r\n I would recommend this path to nearly no one when you can go with a one click WordPress implementation in\r\n minutes versus months. I would recommend it to those that love to learn and want to build a blazing fast\r\n experience with no dearth of opportunities to build experience in some of the most impressive technologies\r\n out on the web. \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Contributors\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Pedro Salinas-Ruiz\r\n \r\n \r\n I've been a SQL developer for over a decade, working mostly within the Microsoft BI ecosystem. I've spent \r\n a lot of time using SSRS, SSIS, SSAS, and Power BI. I work for Microsoft as a SQL BI support engineer.\r\n Business wIntelligence is unaffiliated with Microsoft; any opinions or comments expressed are our own.\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Tofu\r\n \r\n \r\n Tofu is the most useless contributor. He is my cat and he likes to sleep. When he isn't sleeping, he's meowing directly into my face.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Collaborators\r\n \r\n \r\n Visitors far and wide are welcome to collaborate. Thanks for helping!\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n );\r\n}\r\n","import React, {useEffect, useState,} from 'react';\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport \"./../components/HeaderBanner\";\r\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\r\nimport {useNavigate, useParams} from \"react-router\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport PuffLoader from \"react-spinners/PuffLoader\";\r\nimport {css} from \"@emotion/core\";\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n searchItem: {\r\n display: 'flex', flexDirection: 'column', textAlign: 'left', justifyContent: 'left', alignContent: 'left', alignItems: 'flex-start',\r\n },\r\n searchHeadline: {\r\n margin: '0px 0px 0px 0px',\r\n color: '#7f4cc4',\r\n textDecoration: 'none',\r\n fontSize: 16,\r\n },\r\n searchSummary: {\r\n margin: '0px 0px 40px 0px',\r\n },\r\n loader: {\r\n position: 'fixed',\r\n zIndex: 9999999999,\r\n overflow: 'hidden',\r\n top: '20%',\r\n left: '50%',\r\n display: 'block',\r\n margin: '0 auto',\r\n borderColor: '#0fb28e',\r\n },\r\n innerContainer: {\r\n minHeight: 800,\r\n }\r\n}));\r\n\r\nconst overlayLoader = css`\r\n position: fixed;\r\n top: 20%;\r\n left: 50%;\r\n display: block;\r\n margin: 0 auto;\r\n border-color: #0fb28e;\r\n`;\r\n\r\nexport default function About() {\r\n\r\n const classes = useStyles();\r\n const { q } = useParams();\r\n const [searchLoading, setSearchLoading] = useState(false);\r\n const [searchResults, setSearchResults] = useState([]);\r\n \r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n async function getSearchResults() {\r\n try {\r\n setSearchLoading(true);\r\n const response = await fetch(\r\n `/api/search/find?q=${q}`\r\n );\r\n \r\n const data = await response.json();\r\n setSearchResults(data.value);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n finally{\r\n setSearchLoading(false);\r\n }\r\n }\r\n getSearchResults().then(promise => {});\r\n }, []);\r\n\r\n const LoadingHelper = () => {\r\n \r\n if (searchLoading) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n else {\r\n return (null)\r\n }\r\n }\r\n \r\n const SearchResults = () => {\r\n if (searchLoading){\r\n return \r\n }\r\n else if (searchResults.length === 0) {\r\n return (\r\n \r\n Sorry, no results.\r\n

Darn, it looks like your search didn't match up with anything we have in our data banks. Sorry!

\r\n
\r\n )\r\n }\r\n else {\r\n return (\r\n \r\n {searchResults.map((result, index) => {\r\n\r\n console.log(result.document);\r\n\r\n return (\r\n
\r\n

{result.document.Title}

\r\n

{result.document.ItemTextConcat}\r\n
\r\n {result.document.ItemUri}\r\n

\r\n
)}\r\n )}\r\n
\r\n )\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n

Search

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n );\r\n}\r\n","import { Article, Home, Content, Articles, Tools, User, NotFound, Administration, WebEditor, Lab, Community, About, Search } from './../views';\r\nimport React from \"react\";\r\n\r\nexport const DIRECTORY_MAIN = [\r\n {\r\n id: 1,\r\n title: 'Home',\r\n slug: '',\r\n component: ,\r\n showMenu: false,\r\n },\r\n {\r\n id: 2,\r\n title: 'Content',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'content',\r\n component: ,\r\n showMenu: true,\r\n submenu: [\r\n {\r\n id: 1,\r\n title: 'Find a Guild',\r\n },\r\n {\r\n id: 2,\r\n title: 'Create a Guild',\r\n }\r\n ]\r\n },\r\n {\r\n id: 4,\r\n title: 'Tools',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'tools',\r\n component: ,\r\n showMenu: true,\r\n requiredAction: 'admin_panel_access',\r\n },\r\n {\r\n id: 5,\r\n title: 'Community',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'community',\r\n component: ,\r\n showMenu: true,\r\n requiredAction: 'admin_panel_access',\r\n },\r\n {\r\n id: 6,\r\n title: 'About',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'about',\r\n component: ,\r\n showMenu: true,\r\n },\r\n {\r\n id: 6,\r\n title: 'Lab',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'lab',\r\n component: ,\r\n showMenu: true,\r\n requiredAction: 'admin_panel_access',\r\n },\r\n {\r\n id: 8,\r\n title: 'Article',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'article/:articleId',\r\n component:
,\r\n showMenu: false,\r\n },\r\n {\r\n id: 97,\r\n title: 'NotFound',\r\n slug: 'not-found',\r\n component: ,\r\n showMenu: false,\r\n },\r\n {\r\n id: 95,\r\n title: 'Search',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'search/:q',\r\n component: ,\r\n showMenu: false,\r\n },\r\n {\r\n id: 96,\r\n title: 'User',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'user/:user',\r\n component: ,\r\n showMenu: false,\r\n },\r\n {\r\n id: 98,\r\n title: 'Process Sign-In',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'signin-microsoft',\r\n component: ,\r\n showMenu: false,\r\n },\r\n {\r\n id: 99,\r\n title: 'Administration',\r\n description: 'A REST API that I built from scratch with GET and POST requests!',\r\n slug: 'administration',\r\n requiredAction: 'admin_panel_access',\r\n component: ,\r\n showMenu: true,\r\n },\r\n \r\n];\r\n\r\nexport default null;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nimport { Send as SendIcon, \r\n Close as CloseIcon, \r\n Drafts as DraftsIcon, \r\n MoveToInbox as InboxIcon,\r\n Person as PersonIcon,\r\n} from '@material-ui/icons';\r\n\r\n\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport {useNavigate} from \"react-router\";\r\n\r\nconst StyledMenu = withStyles({\r\n paper: {\r\n border: '1px solid #d3d4d5',\r\n },\r\n})(props => (\r\n \r\n));\r\n\r\nconst StyledMenuItem = withStyles(theme => ({\r\n root: {\r\n '&:focus': {\r\n backgroundColor: theme.palette.primary.main,\r\n '& .MuiListItemIcon-root, & .MuiListItemText-primary': {\r\n color: theme.palette.common.white,\r\n },\r\n },\r\n },\r\n}))(MenuItem);\r\n\r\n\r\n\r\nexport default function UserMenu(props) {\r\n \r\n const [state, dispatch] = useAppContext();\r\n const [openLogout, setOpenLogout] = React.useState(false);\r\n const navigate = useNavigate();\r\n\r\n const handleClose = () => {\r\n dispatch({type: 'TOGGLE_USER_MENU', value: null})\r\n };\r\n \r\n \r\n const handleLogoutPromptClose = () => {\r\n setOpenLogout(false);\r\n };\r\n\r\n const handleLogoutClose = () => {\r\n setOpenLogout(false);\r\n };\r\n \r\n const handleProfile = () => {\r\n \r\n };\r\n\r\n \r\n \r\n const handleLogoutPrompt = () => {\r\n setOpenLogout(true);\r\n handleClose();\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"Logout\"}\r\n \r\n \r\n Are you sure you want to logout?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, {useEffect} from 'react';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport Badge from '@material-ui/core/Badge';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport {createStyles, makeStyles} from '@material-ui/core/styles';\r\nimport AccountCircle from '@material-ui/icons/AccountCircle';\r\nimport NotificationsIcon from '@material-ui/icons/Notifications';\r\nimport MoreIcon from '@material-ui/icons/MoreVert';\r\nimport Button from '@material-ui/core/Button';\r\nimport SwipeableDrawer from '@material-ui/core/Drawer';\r\nimport AuthenticationModal from './../components/authentication/AuthenticationModal';\r\nimport { fade } from '@material-ui/core/styles/colorManipulator';\r\nimport MainDrawerContents from './../components/appBar/MainDrawerContents';\r\nimport {Link, NavLink, useNavigate} from 'react-router-dom';\r\nimport { DIRECTORY_MAIN } from './../data/directory';\r\nimport { useAppContext } from \"./../context/Provider\";\r\nimport UserMenu from \"./UserMenu\";\r\nimport NavBarBackground from './../img/navbarbg.png';\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n\r\n drawerRoot: {\r\n position: 'fixed !important',\r\n zIndex: theme.zIndex.appBar - 1 + ' !important',\r\n },\r\n drawerPaperAnchorTop: {\r\n top: 64,\r\n right: 17,\r\n },\r\n drawerPaper: {\r\n display: 'block',\r\n },\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n appBarButton: {\r\n color: '#ffffff',\r\n margin: theme.spacing(0.5),\r\n },\r\n appBar: {\r\n background: `url(${NavBarBackground})`,\r\n backgroundSize: 'cover',\r\n },\r\n gameDrawerContainer: {\r\n position: 'relative !important',\r\n zIndex: theme.zIndex.appBar - 1 + ' !important',\r\n marginTop: '250px !important',\r\n },\r\n\r\n logoImageStyle: {\r\n width: '80px',\r\n height: '64px',\r\n margin: '0px 5px 0px 0px',\r\n },\r\n\r\n search: {\r\n position: 'relative',\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n '&:hover': {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginRight: theme.spacing(2),\r\n marginLeft: 0,\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: theme.spacing(3),\r\n width: 'auto',\r\n },\r\n },\r\n searchIcon: {\r\n width: theme.spacing(9),\r\n height: '100%',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputInput: {\r\n paddingTop: theme.spacing(1),\r\n paddingRight: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n paddingLeft: theme.spacing(10),\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n [theme.breakpoints.up('md')]: {\r\n width: 200,\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'inline-block',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n\r\n loginButton: {\r\n marginLeft: '10px'\r\n },\r\n menuButton: {\r\n marginLeft: -12,\r\n marginRight: 20,\r\n },\r\n desktopMenu: {\r\n paddingLeft: '100px;',\r\n },\r\n\r\n desktopMenuButton: {\r\n fontFamily: theme.typography.logoFontFamily,\r\n fontSize: 14,\r\n minHeight: '64px',\r\n color: 'rgba(255, 255, 255, 0.7)',\r\n borderRadius: 0,\r\n textTransform: 'none',\r\n padding: '0px 15px 0px 15px',\r\n '&:hover': {\r\n color: 'white',\r\n textDecoration: 'none',\r\n },\r\n '&:active': {\r\n boxShadow: 'inset 0px -6px 0px 0px rgba(0,0,0,0.75);',\r\n color: '#ffffff',\r\n }\r\n },\r\n activeTab: {\r\n boxShadow: `inset 0px -6px 0px 0px ${theme.extendedProperties.accents.primary};`,\r\n },\r\n navLink: {\r\n textDecoration: 'none',\r\n },\r\n\r\n activeClassName: {\r\n boxShadow: 'inset 0 0 10px #0f0',\r\n },\r\n underConstruction: {\r\n position: 'absolute',\r\n fontSize: 8,\r\n bottom: 12,\r\n backgroundColor: 'rgba(147,92,223,.4)',//theme.extendedProperties.accents.primary,\r\n color: '#ffffff',\r\n borderRadius: 2,\r\n padding: '0px 4px 0px 4px',\r\n right: 0,\r\n fontFamily: theme.typography.logoFontFamily,\r\n fontWeight: 400,\r\n\r\n },\r\n brandText: {\r\n\r\n },\r\n}));\r\n\r\nconst RenderMenu = (props) => {\r\n\r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n\r\n return (\r\n \r\n dispatch({type: 'TOGGLE_PROFILE_MENU'})}\r\n >\r\n console.log(\"TODO\")}>Profile\r\n console.log(\"TODO\")}>My account\r\n \r\n\r\n \r\n )};\r\n\r\nconst RenderMobileMenu = (props) => {\r\n\r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n \r\n return (\r\n dispatch({type: 'CLOSE_MOBILE_MENU'})}>\r\n \r\n console.log(\"TODO\")}>\r\n \r\n \r\n \r\n \r\n \r\n

Notifications

\r\n
\r\n console.log(\"TODO\")}>\r\n \r\n \r\n \r\n

Profile

\r\n \r\n console.log(\"TODO\")}\r\n variant=\"outlined\">\r\n Log In\r\n \r\n \r\n )\r\n};\r\n\r\nexport function ApplicationAppBar() {\r\n\r\n const classes = useStyles();\r\n const [state, dispatch] = useAppContext();\r\n const navigate = useNavigate(); \r\n /*\r\n useEffect(() => {\r\n async function getCategories() {\r\n try {\r\n const response = await fetch(\r\n '/api/content/categories'\r\n );\r\n const data = await response.json();\r\n\r\n dispatch({ type: 'SET_CATEGORIES', value: data });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n getCategories().then(promise => { });\r\n }, []);\r\n */\r\n\r\n const handleMicrosoftLogin = () => {\r\n navigate('/auth/login');\r\n };\r\n\r\n const handleMicrosoftRegister = () => {\r\n navigate('/auth/login');\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n {\r\n DIRECTORY_MAIN.map(dir => {\r\n if (typeof(dir.requiredAction) == 'undefined') {\r\n return (\r\n (dir.showMenu) ?\r\n \r\n \r\n : ''\r\n )}\r\n else {\r\n \r\n if (typeof(state.allowedActions) !== 'undefined' \r\n && Array.isArray(state.allowedActions)\r\n && state.allowedActions.some(action => action.actionName === dir.requiredAction)) {\r\n return (\r\n (dir.showMenu) ?\r\n \r\n \r\n : ''\r\n )}\r\n \r\n }\r\n })\r\n }\r\n\r\n
\r\n\r\n {/*\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n dispatch({type: 'TOGGLE_DRAWER'})}\r\n className={classes.appBarButton}\r\n >\r\n O\r\n \r\n */}\r\n \r\n
\r\n {state.authenticated &&\r\n \r\n \r\n dispatch({type: 'TOGGLE_USER_MENU', value: event.currentTarget })}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n {!state.authenticated &&\r\n \r\n \r\n \r\n Login\r\n \r\n \r\n\r\n \r\n Sign Up\r\n \r\n \r\n }\r\n
\r\n\r\n \r\n\r\n
\r\n dispatch({type: OPEN_MOBILE_MENU})}*/ color=\"inherit\">\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n { dispatch({ type: 'CLOSE_DRAWER' })}}\r\n classes={{ root: classes.drawerRoot, modal: classes.drawerModal, paper: classes.drawerPaper, paperAnchorTop: classes.drawerPaperAnchorTop}}\r\n >\r\n \r\n \r\n\r\n\r\n\r\n \r\n );\r\n};\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport Grid from '@material-ui/core/Grid';\r\nimport './../components/HeaderBanner';\r\nimport {createStyles, makeStyles, withStyles} from '@material-ui/core/styles';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport {useAppContext} from \"../context/Provider\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nfunction ListItemLink(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => createStyles({\r\n footerContainer:{\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.fadedText,\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(6),\r\n },\r\n artificialPadding: {\r\n backgroundColor: theme.extendedProperties.background.primary,\r\n },\r\n contentContainer: {\r\n\r\n },\r\n\r\n gridItem: {\r\n\r\n },\r\n\r\n footer: {\r\n backgroundColor: theme.palette.primary.main,\r\n padding: theme.spacing(2),\r\n\r\n },\r\n}));\r\n\r\nexport const Footer = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n const classes = useStyles();\r\n \r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n © 2020 Pedro Salinas-Ruiz. All rights reserved.\r\n \r\n \r\n\r\n \r\n \r\n \r\n )\r\n};","import { createMuiTheme } from \"@material-ui/core\";\r\n\r\nexport const lightTheme = {\r\n typography: {\r\n logoFontFamily: [\r\n 'Work Sans',\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n headerFontFamily: [\r\n 'Open Sans',\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n bodyFontFamily: [\r\n 'Open Sans',\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n fontFamily: [\r\n 'Work Sans',\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n },\r\n palette: {\r\n type: 'light',//theme.paletteType,\r\n background: {\r\n primary: '#212121',//'#282a36',//theme.paletteType === 'light' ? '#000' : '#fff',\r\n secondary: '#292d3e',\r\n tertiary: '#4e5579',\r\n },\r\n primary: {\r\n main: '#111111',//'#282a36',\r\n light: '#292d3e', //#4527a0\r\n dark: '#4e5579',\r\n contrastText: 'rgba(255,255,255, 0.9)',\r\n textColor: '#3a3a3a',\r\n fadedText: 'rgba(255,255,255, 0.2)',\r\n linkColor: '#7f6cb8',\r\n },\r\n secondary: {\r\n main: '#0fb28e', // 625aab // orange e6684a green 7ec980\r\n light: '#0fb28e', // 8079e9\r\n contrastText: \"#fff\",\r\n textColor: \"white\",\r\n alternateTextColor: \"white\",\r\n },\r\n },\r\n zIndex: {\r\n mobileStepper: 1000,\r\n appBar: 1100,\r\n drawer: 1200,\r\n modal: 1300,\r\n snackbar: 1400,\r\n tooltip: 1500,\r\n },\r\n overrides: {\r\n MuiButton: {\r\n root: {\r\n borderRadius: 0, \r\n },\r\n \r\n },\r\n MuiCard: {\r\n root: {\r\n borderRadius: 0,\r\n //boxShadow: '0px 1px 2px 0px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 2px 1px -1px rgba(0,0,0,0.12)',\r\n boxShadow: 'none',\r\n },\r\n },\r\n MuiDialog: {\r\n paper: {\r\n borderRadius: 0,\r\n }\r\n },\r\n MuiPaper: {\r\n root: {\r\n borderRadius: 0,\r\n }\r\n }\r\n },\r\n extendedProperties: {\r\n accents: {\r\n primary: '#945ee5', //#945ee5\r\n secondary: '#90e76c',\r\n tertiary: '#82aaff',\r\n fourth: '#f68b54',\r\n },\r\n background: {\r\n primary: '#ffffff',\r\n },\r\n foreground: {\r\n primary: '#ffffff',\r\n },\r\n grayscale: {\r\n primary: '#999999',\r\n },\r\n paper: {\r\n primary: '#ffffff',\r\n secondary: '#ffffff',\r\n },\r\n }\r\n};\r\n\r\nexport const darkTheme = lightTheme; /*{\r\n \r\n \r\n typography: {\r\n \r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n },\r\n\r\n /* 222533 - darker navy blue\r\n * #292d3e - dark navy blue\r\n * #c792ea - light purple\r\n * #7ec980 - light green\r\n * #e6684a - orangered\r\n */\r\n /*\r\n palette: {\r\n \r\n type: 'light',//theme.paletteType,\r\n background: {\r\n default: '#292d3e',//theme.paletteType === 'light' ? '#000' : '#fff',\r\n },\r\n primary: {\r\n main: '#7ec980',\r\n light: '#292d3e',\r\n \r\n },\r\n secondary: {\r\n main: '#a163c9', // 625aab // orange e6684a green 7ec980\r\n light: '#c792ea', // 8079e9\r\n \r\n },\r\n },\r\n zIndex: {\r\n mobileStepper: 1000,\r\n appBar: 1100,\r\n drawer: 1200,\r\n modal: 1300,\r\n snackbar: 1400,\r\n tooltip: 1500,\r\n },\r\n \r\n \r\n}; */\r\n\r\n\r\n\r\n\r\nexport const createLocalTheme = (themeType) => {\r\n \r\n if (themeType === 'dark') {\r\n\r\n let tempTheme = createMuiTheme(darkTheme);\r\n return(tempTheme);\r\n }\r\n else {\r\n let tempTheme = createMuiTheme(lightTheme);\r\n return(tempTheme);\r\n }\r\n \r\n};\r\n\r\nexport default createLocalTheme;","import {DIRECTORY_MAIN} from \"../data/directory\";\r\nimport {Route, Routes} from \"react-router-dom\";\r\nimport React, {useEffect} from \"react\";\r\nimport {useAppContext} from \"../context/Provider\";\r\n\r\nexport const BodySwitch = () => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n \r\n useEffect(() => {\r\n const pageTitle = state.title ?? \"Title\";\r\n document.title = pageTitle;\r\n }, [state.title]);\r\n \r\n return (\r\n \r\n {\r\n DIRECTORY_MAIN.map((dir, index) => {\r\n \r\n const isExact = (dir.slug === '').toString();\r\n \r\n if (typeof(dir.allowedActions) == 'undefined') {\r\n return (\r\n \r\n )\r\n }\r\n else if (state.authenticated && state.allowedActions.includes(dir.requiredAction)) {\r\n return (\r\n \r\n )}\r\n else if (dir.allowedActions == null) {\r\n return (\r\n \r\n )}\r\n \r\n })\r\n }\r\n \r\n )\r\n};\r\n","import {useAppContext} from \"../context/Provider\";\r\nimport {useEffect} from \"react\";\r\n\r\nexport const AuthenticationProvider = (props) => {\r\n\r\n const [state, dispatch] = useAppContext();\r\n\r\n useEffect(() => {\r\n async function getAuthStatus() {\r\n try {\r\n const response = await fetch(\r\n '/auth/status'\r\n );\r\n const data = await response.json();\r\n\r\n if (data.authenticated) {\r\n\r\n const now = new Date();\r\n const epoch = Math.round(now.getTime() / 1000);\r\n\r\n const expiration = data.expiration - epoch - 60;\r\n console.log('expiration is at: ' + data.expiration);\r\n console.log('now is at: ' + epoch);\r\n const timer = setTimeout(() => {\r\n console.log('You will be logged out in sixty seconds.');\r\n }, expiration);\r\n\r\n dispatch({ type: 'SET_AUTH_STATUS', value: data });\r\n \r\n return () => clearTimeout(timer);\r\n }\r\n else {\r\n let authStatus = {\r\n authenticated: false,\r\n };\r\n return (dispatch({ type: 'SET_AUTH_STATUS', value: authStatus }))\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n getAuthStatus().then(promise => { });\r\n }, []);\r\n\r\n return (props.children);\r\n};","import { Layout } from './components/Layout';\r\nimport React, {useEffect} from \"react\";\r\nimport { BrowserRouter, Routes, Router } from 'react-router-dom';\r\nimport { ApplicationAppBar } from \"./components/ApplicationAppBar\";\r\nimport { Footer } from \"./components/Footer\";\r\nimport { DIRECTORY_MAIN } from './data/directory'\r\nimport { createLocalTheme } from './jss/theme';\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport { AppProvider, useAppContext } from \"./context/Provider\";\r\nimport { MuiThemeProvider } from '@material-ui/core/styles';\r\nimport { BodySwitch } from \"./components/BodySwitch\";\r\nimport { AuthenticationProvider } from \"./auth/AuthenticationProvider\";\r\nimport * as ReactGA from 'react-ga';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\n\r\n//const theme = createLocalTheme('dark');\r\n//const theme = createMuiTheme(lightTheme);\r\n\r\nconst theme = createLocalTheme('light');\r\n\r\nexport const App = () => {\r\n\r\n useEffect(() => {\r\n ReactGA.initialize('UA-176841674-1', { debug: true });\r\n ReactGA.pageview(window.location.pathname + window.location.search);\r\n //ReactGA.pageview(window.location.pathname + window.location.search);\r\n \r\n }, []);\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n