{"version":3,"sources":["top_nav.tsx","assets/poi/lightbulb.png","assets/poi/leadership.png","assets/poi/orange_gears.png","components/home/components/point_of_interest.tsx","assets/poi/growth.png","assets/Github.png","assets/Email.png","assets/LinkedIn.png","components/footer.tsx","assets/NickBagalay_headshot.jpg","components/home/home.tsx","components/home/components/skills.js","components/projects/project_helper_funcs.ts","components/projects/projects_history.tsx","routes.tsx","reportWebVitals.ts","index.tsx"],"names":["TopNav","useMediaQuery","query","isTabletOrMobile","DisplayNavigationDesktop","React","forwardRef","Navbar","bg","variant","Brand","href","Nav","Link","className","NavDropdown","title","id","Item","DisplayNavigationMobile","size","color","Divider","style","paddingLeft","HomePointOfInterest","PoiCardDetails","props","resumeData","PointsOfInterest","map","rowItem","rowIndex","SectionImage","Image","src","thumbnail","LightbulbImg","LeadershipImg","OrangeGearsImg","SectionTitle","Details","Footer","LinkedInImg","GitHubImg","EmailImg","Date","toLocaleDateString","year","Home","useState","showScroll","setShowScroll","useEffect","window","addEventListener","checkScrollTop","removeEventListener","changeSkillsChart","pageYOffset","height","width","resumeSkillsSet","margin","barWidth","barHeight","svg","d3","append","attr","x","domain","d","Rating","rangeRound","y","range","align","Title","padding","g","call","ticks","tickFormat","tickSizeInner","selectAll","data","enter","bandwidth","SkillsGraph","Skills","sort","comparatorSkills","item1","item2","DisplayAboutMeParagraph","AboutMeBio","text","DisplayWorkHistory","WorkHistory","Company","TimePeriod","SectionDetails","length","rowSecDetItem","rowSecDetIndex","Description","SupportItems","paddingTop","rowItemList","rowIndexList","ItemDetail","paddingBottom","DisplayEducationHistory","Education","School","Degree","ProgramOfStudy","ListOfItems","HeadshotImage","roundedCircle","Name","WebsiteTitle","Button","activeClass","to","spy","smooth","duration","ShowSkillsSection","onClick","scrollTo","top","behavior","display","reactSelectCustomStyles","option","provided","state","borderBottom","isSelected","singleValue","opacity","isDisabled","transition","radios","name","value","ProjectsHistory","attributeTypeOptions","setAttributeTypeOptions","selectedSearch","setSelectedSearch","radioValue","setRadioValue","projectSearchResults","setProjectSearchResults","getAvailableTagsOptions","getSearchResults","isTabletOrMobileDevice","makeAnimated","comparator","item1Date","StartDate","valueOf","selectedSearchSet","selectedSearchInclude","finalSearchResults","undefined","forEach","val","push","lengthOfSearch","filterSearch","projectData","Projects","filter","projItems","KeywordTags","keywordItem","includes","TagName","index","sectionDetFinal","subindex","finalSubJson","finalJson","EndDate","MilestoneDates","ProjectUrl","i","newHighlightedTags","currentFilterTags","j","currentTagRow","finalSortedFilter","item","DisplaySearchResults","toLocaleString","month","timeZone","DisplaySearchResultTags","keywordTagItems","DisplaySearchResultSection","sectionItems","propRow","refRow","sectionItemSet","setSectionItemSet","setKeywordItem","getKeywordTagDescription","tagValue","results","AvailableTags","valueDesc","a","b","TagMatch","paddingRight","OverlayTrigger","placement","overlay","Tooltip","finalOptions","tempOpt","label","ProjHistoryDetails","ButtonGroup","toggle","radio","idx","ToggleButton","type","checked","onChange","e","currentTarget","isMulti","isSearchable","closeMenuOnSelect","styles","autoComplete","classNamePrefix","options","Routes","ReactGa","initialize","pageview","location","pathname","search","exact","path","component","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","history","createBrowserHistory","basename","process","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.a57fe20b.chunk.js","sourcesContent":["import React, { useState } from 'react';\r\nimport { Nav, Navbar, NavDropdown, Button, Image , Row, Col } from 'react-bootstrap';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { FaBars } from \"react-icons/fa\"; //FaList\r\nimport './corestyles.css';\r\n\r\n/* \r\n Resume\r\n*/\r\n\r\nconst TopNav = () => {\r\n const isDesktopOrLaptop = useMediaQuery({\r\n query: '(min-device-width: 1224px)'\r\n })\r\n const isBigScreen = useMediaQuery({ query: '(min-device-width: 1824px)' })\r\n const isTabletOrMobile = useMediaQuery({ query: '(max-width: 1224px)' })\r\n const isTabletOrMobileDevice = useMediaQuery({\r\n query: '(max-device-width: 1224px)'\r\n })\r\n const isPortrait = useMediaQuery({ query: '(orientation: portrait)' })\r\n const isRetina = useMediaQuery({ query: '(min-resolution: 2dppx)' })\r\n\r\n const DisplayNavigationDesktop = React.forwardRef(() => {\r\n return (\r\n \r\n Bagalay Solutions\r\n\r\n \r\n\r\n \r\n \r\n )\r\n })\r\n\r\n const DisplayNavigationMobile = React.forwardRef(() => {\r\n return (\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 {!isTabletOrMobile ? \r\n : }\r\n
\r\n );\r\n}\r\n\r\nexport default TopNav;","export default __webpack_public_path__ + \"static/media/lightbulb.4b0d4f1b.png\";","export default __webpack_public_path__ + \"static/media/leadership.84d7e4ac.png\";","export default __webpack_public_path__ + \"static/media/orange_gears.e5955d39.png\";","import React, { forwardRef, useEffect } from \"react\";\r\nimport { Image } from 'react-bootstrap';\r\nimport resumeData from '../../../resume_content.json';\r\nimport './point_of_interest.css'\r\n\r\nimport GrowthImg from '../../../assets/poi/growth.png';\r\nimport LightbulbImg from '../../../assets/poi/lightbulb.png';\r\nimport LeadershipImg from '../../../assets/poi/leadership.png';\r\nimport OrangeGearsImg from '../../../assets/poi/orange_gears.png';\r\n\r\nconst HomePointOfInterest = forwardRef(() => {\r\n\r\n const PoiCardDetails = React.forwardRef((props?: any) => {\r\n\r\n return (\r\n <>\r\n {resumeData.PointsOfInterest\r\n .map((rowItem, rowIndex) => (\r\n <> \r\n
\r\n
\r\n {rowItem.SectionImage === `growth.png` ? :<>}\r\n {rowItem.SectionImage === `lightbulb.png` ? :<>}\r\n {rowItem.SectionImage === `leadership.png` ? :<>}\r\n {rowItem.SectionImage === `orange_gears.png` ? :<>}\r\n
\r\n
\r\n
\r\n {rowItem.SectionTitle}\r\n
\r\n
\r\n {rowItem.Details}\r\n
\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\nexport default HomePointOfInterest;","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/Github.b17807d8.png\";","export default __webpack_public_path__ + \"static/media/Email.5b559c52.png\";","export default __webpack_public_path__ + \"static/media/LinkedIn.daf47e5d.png\";","import React, { forwardRef } from \"react\";\r\nimport { Image } from 'react-bootstrap';\r\nimport './footer.css';\r\n\r\nimport GitHubImg from '../assets/Github.png';\r\nimport EmailImg from '../assets/Email.png';\r\nimport LinkedInImg from '../assets/LinkedIn.png';\r\n\r\nconst Footer = forwardRef(() => {\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 {`© Copyright ${new Date().toLocaleDateString('en-US', { year: \"numeric\" })} Nick Bagalay • Design by Bagalay Solutions`}\r\n
\r\n
\r\n )\r\n})\r\n\r\nexport default Footer;","export default __webpack_public_path__ + \"static/media/NickBagalay_headshot.01c4fd69.jpg\";","import React, { useEffect, useState, useCallback, useRef } from 'react';\r\nimport { Button, Container, Image } from 'react-bootstrap';\r\nimport { Link, animateScroll as scroll } from \"react-scroll\";\r\nimport {FaArrowCircleUp} from 'react-icons/fa';\r\nimport _, { isUndefined } from \"lodash\";\r\nimport HomePointOfInterest from './components/point_of_interest';\r\nimport resumeData from '../../resume_content.json';\r\nimport Footer from '../footer';\r\n\r\n/* IMAGES - Since REQUIRE doesn't work, we'll set a reference then do a check */\r\nimport HeadshotImage from '../../assets/NickBagalay_headshot.jpg';\r\n\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport '../../corestyles.css'\r\nimport { SkillsGraph } from './components/skills';\r\n\r\nexport default function Home() {\r\n const [showScroll, setShowScroll] = useState(false);\r\n\r\n useEffect(() => { \r\n window.addEventListener('scroll', checkScrollTop)\r\n return function cleanup() {\r\n window.removeEventListener('scroll', checkScrollTop);\r\n }\r\n })\r\n\r\n useEffect(() => {\r\n changeSkillsChart()\r\n }, [])\r\n\r\n const checkScrollTop = () => {\r\n if (!showScroll && window.pageYOffset > 300){\r\n setShowScroll(true)\r\n } else if (showScroll && window.pageYOffset <= 300){\r\n setShowScroll(false)\r\n }\r\n };\r\n\r\n const scrollTop = () => {\r\n window.scrollTo({top: 0, behavior: 'smooth'});\r\n };\r\n\r\n const changeSkillsChart = () => {\r\n SkillsGraph(375, 1050, resumeData.Skills.sort(comparatorSkills));\r\n }\r\n\r\n const comparatorSkills = (item1: any, item2: any) => {\r\n // Decending order.\r\n return (item1.Rating - item2.Rating);\r\n }\r\n\r\n const DisplayAboutMeParagraph = React.forwardRef(() => {\r\n \r\n return (\r\n <>\r\n {resumeData.AboutMeBio\r\n .map((rowItem, rowIndex) => (\r\n <>\r\n

{rowItem.text}

\r\n \r\n )\r\n )}\r\n \r\n )\r\n })\r\n \r\n const DisplayWorkHistory = React.forwardRef(() => {\r\n\r\n return (\r\n <>\r\n {resumeData.WorkHistory\r\n .map((rowItem, rowIndex) => (\r\n <>\r\n {(rowIndex - 1) >= 0 ?\r\n <>\r\n\r\n {resumeData.WorkHistory[rowIndex - 1].Company !== rowItem.Company ?\r\n <>
\r\n {rowItem.Company}\r\n
\r\n
\r\n \r\n :<>}\r\n\r\n \r\n :\r\n <>\r\n
\r\n {rowItem.Company}\r\n
\r\n
\r\n }\r\n\r\n
\r\n
\r\n {`${rowItem.Title} •`}\r\n
\r\n
\r\n {rowItem.TimePeriod}\r\n
\r\n
\r\n
\r\n\r\n {resumeData.WorkHistory[rowIndex].SectionDetails.length > 0 ?\r\n <>\r\n {rowItem.SectionDetails\r\n .map((rowSecDetItem, rowSecDetIndex) => (\r\n <>\r\n
\r\n {rowSecDetItem.Description}\r\n
\r\n\r\n {rowSecDetItem.SupportItems.length > 0 ?\r\n
\r\n \r\n
\r\n : <>
}\r\n \r\n ))}\r\n \r\n :<>}\r\n\r\n
\r\n \r\n )\r\n )}\r\n \r\n )\r\n })\r\n\r\n const DisplayEducationHistory = React.forwardRef(() => {\r\n\r\n return (\r\n <>\r\n {resumeData.Education\r\n .map((rowItem, rowIndex) => (\r\n <>\r\n
\r\n {rowItem.School}\r\n
\r\n
\r\n
\r\n {`${rowItem.Degree} •`}\r\n
\r\n
\r\n {rowItem.ProgramOfStudy}\r\n
\r\n
\r\n
\r\n {rowItem.TimePeriod}\r\n
\r\n
\r\n
\r\n {rowItem.Details}\r\n
\r\n\r\n {rowItem.ListOfItems.length > 0 ?\r\n
\r\n \r\n
\r\n : <>}\r\n\r\n
\r\n \r\n )\r\n )} \r\n \r\n )\r\n })\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 {`I am ${resumeData.Name}`}\r\n
\r\n
\r\n {`${resumeData.WebsiteTitle}`}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n {resumeData.ShowSkillsSection ?\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n :<>}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Points of Interest

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

WORK SECTION

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {resumeData.ShowSkillsSection ?\r\n
\r\n
\r\n
\r\n

Skills

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

EDUCATION

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\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 * as d3 from 'd3';\r\nimport './skills_graph.css'\r\n\r\nexport function SkillsGraph(height, width, resumeSkillsSet) {\r\n var margin = {\r\n top: 30,\r\n right: 40,\r\n bottom: 50,\r\n left: 210\r\n },\r\n barWidth = width - margin.left - margin.right,\r\n barHeight = height - margin.top - margin.bottom;\r\n\r\n var svg = d3.select(\"#skillset\")\r\n .append(\"svg\") \r\n .attr(\"width\", barWidth + margin.left + margin.right)\r\n .attr(\"height\", barHeight + margin.top + margin.bottom);\r\n\r\n var x = d3.scaleLinear()\r\n .domain([0, d3.max(resumeSkillsSet, function(d) { return d.Rating; })])\r\n .rangeRound([0, barWidth]);\r\n //.range([0, barWidth]);\r\n\r\n var y = d3.scaleBand()\r\n .range([barHeight, 0])\r\n .align(0.1)\r\n .domain(resumeSkillsSet.map(function(d) { return d.Title; })).padding(0.1);\r\n\r\n var g = svg.append(\"g\")\r\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\r\n\r\n // Setting the Data on Lines\r\n g.append(\"g\")\r\n .attr(\"class\", \"x axis\")\r\n .attr(\"transform\", \"translate(0,\" + barHeight + \")\")\r\n .call(d3.axisBottom(x).ticks(4).tickFormat((d) => {\r\n switch(d) {\r\n case 1:\r\n return `Basic Knowledge`;\r\n case 2:\r\n return `Some Proficiency`;\r\n case 3:\r\n return `Proficient`;\r\n case 4:\r\n return `Advanced`;\r\n default:\r\n return ``;\r\n }\r\n return `Hello`; //parseInt(d);\r\n }).tickSizeInner([-barHeight]))\r\n .style(\"font-size\", \"14px\");\r\n //ORIGINAL .call(d3.axisBottom(x).ticks(5).tickFormat(function(d) { return parseInt(d); }).tickSizeInner([-barHeight]));\r\n \r\n g.append(\"g\")\r\n .attr(\"class\", \"y axis\")\r\n .call(d3.axisLeft(y))\r\n .style(\"font-size\", \"14px\");\r\n\r\n g.selectAll(\".bar\")\r\n .data(resumeSkillsSet)\r\n .enter().append(\"rect\")\r\n .attr(\"class\", \"bar\")\r\n .attr(\"x\", 0)\r\n .attr(\"height\", y.bandwidth())\r\n .attr(\"y\", function(d) { return y(d.Title); })\r\n .attr(\"width\", function(d) { return x(d.Rating); });\r\n /*\r\n var svg = d3.select(\"#graphic\").append(\"svg\")\r\n .attr(\"width\", barWidth + margin.left + margin.right)\r\n .attr(\"height\", barHeight + margin.top + margin.bottom)\r\n .append(\"g\")\r\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\r\n\r\n var x = d3.scaleLinear()\r\n .range([0, barWidth])\r\n .domain([0, d3.max(resumeSkillsSet, function (d) {\r\n return d.Rating;\r\n })]);\r\n */\r\n}","import { Styles } from \"react-select\"\r\n\r\nexport const reactSelectCustomStyles: Partial = {\r\n option: (provided, state) => ({\r\n ...provided,\r\n borderBottom: '1px dotted orange',\r\n color: state.isSelected ? 'orange' : 'black',\r\n padding: 8,\r\n }),\r\n singleValue: (provided, state) => {\r\n const opacity = state.isDisabled ? 0.5 : 1;\r\n const transition = 'opacity 300ms';\r\n \r\n return { ...provided, opacity, transition };\r\n }\r\n}","import React, { useEffect, useState, useCallback, useRef } from 'react';\r\nimport { Button, ButtonGroup, OverlayTrigger, Tooltip, Image, ToggleButton } from 'react-bootstrap';\r\nimport Select, { OptionTypeBase, Styles, ValueType } from 'react-select';\r\nimport { reactSelectCustomStyles } from './project_helper_funcs';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport {FaArrowCircleUp} from 'react-icons/fa';\r\nimport makeAnimated from 'react-select/animated';\r\nimport Footer from '../footer';\r\nimport projectData from '../../project_content.json';\r\nimport '../../corestyles.css'\r\nimport './projects_history.css'\r\n\r\n/* IMAGES - Since REQUIRE doesn't work, we'll set a reference then do a check */\r\nimport HeadshotImage from '../../assets/NickBagalay_headshot.jpg';\r\n\r\nconst radios = [\r\n { name: 'Must Contain', value: '1' },\r\n { name: 'At Least Contain', value: '2' },\r\n ];\r\n\r\nexport interface ReactSelectOptValues {\r\n value: any;\r\n label: any;\r\n}\r\n\r\ninterface PropDisplaySearchResultTags {\r\n keywordTagItems: Array | undefined | null\r\n}\r\n\r\ninterface PropDisplaySearchResultSection {\r\n sectionItems: Array | undefined | null;\r\n}\r\n\r\ninterface GridSearchResultsTop {\r\n Title: string;\r\n Company: string | null;\r\n StartDate: string;\r\n EndDate: string;\r\n MilestoneDates: Array | undefined;\r\n ProjectUrl: string | undefined | null;\r\n KeywordTags: Array | null | undefined;\r\n SectionDetails: Array;\r\n}\r\n\r\ninterface SearchResultsMilestoneDates {\r\n StartDate: Date;\r\n EndDate: Date;\r\n Summary: string;\r\n}\r\n\r\ninterface SearchResultsKeywordTags {\r\n TagName: string;\r\n TagMatch?: boolean | undefined;\r\n}\r\n\r\ninterface SearchResultsSectionDetails { \r\n Description: string;\r\n SupportItems: Array | undefined;\r\n SectionTitle?: string | null;\r\n}\r\n\r\ninterface SearchResultsSectionDetailsSupItems {\r\n ItemDetail: string;\r\n}\r\n\r\n\r\nconst ProjectsHistory = () => {\r\n const [attributeTypeOptions, setAttributeTypeOptions] = useState();\r\n const [selectedSearch, setSelectedSearch] = useState>();\r\n const [radioValue, setRadioValue] = useState('1');\r\n const [projectSearchResults, setProjectSearchResults] = useState>([]);\r\n const [showScroll, setShowScroll] = useState(true);\r\n\r\n useEffect(() => { \r\n window.addEventListener('scroll', checkScrollTop)\r\n return function cleanup() {\r\n window.removeEventListener('scroll', checkScrollTop);\r\n }\r\n })\r\n \r\n useEffect(() => {\r\n getAvailableTagsOptions();\r\n //checkScrollProjTop(); // Remove if you uncomment the showScrollProj condition\r\n\r\n getSearchResults([]);\r\n }, [])\r\n\r\n const checkScrollTop = () => {\r\n setShowScroll(true)\r\n /*\r\n if (!showScroll && window.pageYOffset > 300){\r\n setShowScroll(true)\r\n } else if (showScroll && window.pageYOffset <= 300){\r\n setShowScroll(false)\r\n }\r\n */\r\n };\r\n\r\n const scrollTop = () => {\r\n window.scrollTo({top: 0, behavior: 'smooth'});\r\n };\r\n\r\n const animatedComponents = makeAnimated();\r\n\r\n const isTabletOrMobileDevice = useMediaQuery({\r\n query: '(max-device-width: 1224px)'\r\n })\r\n\r\n const comparator = (item1: any, item2: any) => {\r\n // Decending order.\r\n var item1Date = new Date(item1.StartDate).valueOf();\r\n var item2Date = new Date(item2.StartDate).valueOf();\r\n\r\n return item2Date - item1Date;\r\n }\r\n\r\n const getSearchResults = (selectedSearchSet: ValueType) => {\r\n var selectedSearchInclude: Array = [];\r\n var finalSearchResults: Array = [];\r\n\r\n if (selectedSearchSet !== undefined && selectedSearchSet !== null) {\r\n selectedSearchSet.forEach((val) => {\r\n selectedSearchInclude.push(val.value);\r\n })\r\n }\r\n\r\n // We need to get the selected options and build a select statement\r\n if (selectedSearchInclude.length > 0) {\r\n\r\n // Contains Option: If Must contain, the length of the tag search Must equal\r\n // what was specified. At least contain means only one option\r\n var lengthOfSearch: number = 0;\r\n if (radioValue === `1`) {\r\n lengthOfSearch = selectedSearchInclude.length;\r\n } else {\r\n // Since this is the contains, we just need to find ONE match up\r\n lengthOfSearch = 1;\r\n }\r\n\r\n var filterSearch = projectData.Projects.filter((projItems) => {\r\n var filterByKeyword = projItems.KeywordTags.filter((keywordItem) => {\r\n return selectedSearchInclude.includes(keywordItem.TagName);\r\n });\r\n \r\n // For all the keywords selected, we want to return the results\r\n // that match ALL the tags selected\r\n //if (filterByKeyword.length >= selectedSearchSet.length) {\r\n if (filterByKeyword.length >= lengthOfSearch) {\r\n return projItems;\r\n }\r\n })\r\n \r\n for (let index = 0; index < filterSearch.length; index++) {\r\n var sectionDetFinal: Array | null = [];\r\n\r\n for (let subindex = 0; subindex < filterSearch[index].SectionDetails.length; subindex++) {\r\n var finalSubJson:SearchResultsSectionDetails = {\r\n SectionTitle: filterSearch[index].SectionDetails[subindex]?.SectionTitle,\r\n Description: filterSearch[index].SectionDetails[subindex].Description,\r\n SupportItems: filterSearch[index].SectionDetails[subindex]?.SupportItems \r\n }\r\n sectionDetFinal.push(finalSubJson)\r\n }\r\n\r\n var finalJson: GridSearchResultsTop = {\r\n Company: filterSearch[index].Company,\r\n EndDate: filterSearch[index].EndDate,\r\n KeywordTags: filterSearch[index].KeywordTags,\r\n MilestoneDates: undefined,\r\n ProjectUrl: null,\r\n SectionDetails: filterSearch[index].SectionDetails.length > 0 ? sectionDetFinal : [],\r\n StartDate: filterSearch[index].StartDate,\r\n Title: filterSearch[index].Title\r\n }\r\n finalSearchResults.push(finalJson);\r\n }\r\n \r\n\r\n } else {\r\n for (let index = 0; index < projectData.Projects.length; index++) {\r\n var sectionDetFinal: Array | null = [];\r\n\r\n for (let subindex = 0; subindex < projectData.Projects[index].SectionDetails.length; subindex++) {\r\n var finalSubJson: SearchResultsSectionDetails = {\r\n SectionTitle: projectData.Projects[index].SectionDetails[subindex]?.SectionTitle,\r\n Description: projectData.Projects[index].SectionDetails[subindex].Description,\r\n SupportItems: projectData.Projects[index].SectionDetails[subindex]?.SupportItems\r\n }\r\n sectionDetFinal.push(finalSubJson)\r\n }\r\n\r\n var finalJson: GridSearchResultsTop = {\r\n Company: projectData.Projects[index].Company,\r\n EndDate: projectData.Projects[index].EndDate,\r\n KeywordTags: projectData.Projects[index].KeywordTags,\r\n MilestoneDates: undefined,\r\n ProjectUrl: null,\r\n SectionDetails: projectData.Projects[index].SectionDetails.length > 0 ? sectionDetFinal : [],\r\n StartDate: projectData.Projects[index].StartDate,\r\n Title: projectData.Projects[index].Title\r\n }\r\n finalSearchResults.push(finalJson);\r\n }\r\n\r\n }\r\n \r\n /* --KEYWORD TAG MATCH: If a match is found, add a bool flag to Tags */\r\n for (var i = 0; i < finalSearchResults.length; i++) {\r\n var newHighlightedTags: Array = [];\r\n var currentFilterTags: Array | null | undefined = finalSearchResults[i].KeywordTags;\r\n\r\n if (currentFilterTags === undefined || currentFilterTags === null) continue;\r\n\r\n for (var j = 0; j < currentFilterTags.length; j++) {\r\n var currentTagRow = currentFilterTags[j];\r\n var includedRecs = selectedSearchInclude.includes(currentFilterTags[j].TagName);\r\n\r\n if (includedRecs) {\r\n currentTagRow[\"TagMatch\"] = true;\r\n newHighlightedTags.push(currentTagRow);\r\n } else {\r\n currentTagRow[\"TagMatch\"] = false;\r\n newHighlightedTags.push(currentTagRow);\r\n }\r\n }\r\n finalSearchResults[i].KeywordTags = newHighlightedTags;\r\n }\r\n\r\n /* There is a default template project. We don't need it */\r\n finalSearchResults = finalSearchResults.filter((item) => {\r\n return item.Title !== `TEMPLATE EXAMPLE`;\r\n })\r\n\r\n var finalSortedFilter = finalSearchResults.sort(comparator);\r\n setProjectSearchResults(finalSortedFilter);\r\n //return finalSortedFilter;\r\n }\r\n\r\n const DisplaySearchResults = React.forwardRef(() => {\r\n \r\n return ( \r\n <>\r\n {projectSearchResults\r\n .map((rowItem, rowIndex) => (\r\n <>\r\n
\r\n {rowItem.Title}\r\n
\r\n
\r\n \r\n
\r\n {`${new Date(rowItem.StartDate).toLocaleString('en-US', { month: \"long\", year: \"numeric\", timeZone: 'UTC' })} To ${(new Date(rowItem.EndDate) > new Date()) ? 'Present' : new Date(rowItem.EndDate).toLocaleString('en-US', { month: \"long\", year: \"numeric\", timeZone: 'UTC' })}`}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n ))}\r\n \r\n )\r\n });\r\n\r\n const DisplaySearchResultSection = React.forwardRef((propRow: PropDisplaySearchResultSection, refRow) => {\r\n const [sectionItemSet, setSectionItemSet] = useState>([]);\r\n useEffect(() => {\r\n if (propRow?.sectionItems) {\r\n setSectionItemSet(propRow.sectionItems);\r\n } \r\n }, [propRow?.sectionItems])\r\n\r\n return (\r\n <>\r\n {sectionItemSet\r\n .map((rowSecDetItem, rowIndex) => (\r\n <>\r\n {(rowSecDetItem.SectionTitle !== undefined &&\r\n rowSecDetItem.SectionTitle !== '' &&\r\n rowSecDetItem.SectionTitle !== null) ?\r\n
\r\n {rowSecDetItem.SectionTitle}\r\n
\r\n :<>}\r\n\r\n
\r\n {rowSecDetItem.Description}\r\n
\r\n\r\n {(rowSecDetItem.SupportItems !== undefined &&\r\n rowSecDetItem.SupportItems.length > 0) ?\r\n
\r\n
    \r\n {rowSecDetItem.SupportItems\r\n .map((rowItemList, rowIndexList) => (\r\n <>\r\n
  • {rowItemList.ItemDetail}
  • \r\n \r\n )) }\r\n
\r\n
\r\n : <>
}\r\n \r\n ))}\r\n \r\n )\r\n })\r\n\r\n const DisplaySearchResultTags = React.forwardRef((propRow: PropDisplaySearchResultTags, refRow) => {\r\n const [keywordItem, setKeywordItem] = useState>([]);\r\n\r\n useEffect(() => {\r\n if (propRow?.keywordTagItems) {\r\n setKeywordItem(propRow.keywordTagItems);\r\n } \r\n }, [propRow?.keywordTagItems])\r\n \r\n const getKeywordTagDescription = (tagValue: any) => {\r\n var results = projectData.AvailableTags.filter((valueDesc) => {\r\n return valueDesc.TagName === tagValue;\r\n })\r\n if (results.length > 0) {\r\n return results[0].Description;\r\n }\r\n\r\n return ``;\r\n }\r\n\r\n return (\r\n <>\r\n {keywordItem\r\n .sort((a, b) => { return ((a.TagName > b.TagName) ? 1 : -1 ) })\r\n .map((rowItem, rowIndex) => (\r\n (rowItem.TagMatch === true) ?\r\n
\r\n \r\n {getKeywordTagDescription(rowItem.TagName)}\r\n \r\n }>\r\n \r\n \r\n
\r\n :
\r\n \r\n {getKeywordTagDescription(rowItem.TagName)}\r\n \r\n }>\r\n \r\n \r\n
\r\n ))}\r\n \r\n )\r\n });\r\n\r\n const getAvailableTagsOptions = () => {\r\n var finalOptions: Array = [];\r\n\r\n projectData.AvailableTags.forEach(item => {\r\n var tempOpt = {\r\n value: item.TagName,\r\n label: item.TagName\r\n }\r\n\r\n finalOptions.push(tempOpt);\r\n });\r\n \r\n setAttributeTypeOptions(finalOptions.sort((a, b) => { \r\n return ((b.value < a.value) ? 1 : -1);\r\n }));\r\n }\r\n \r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n {`Projects and History`}\r\n
\r\n
\r\n\r\n
\r\n {`${projectData.ProjHistoryDetails}`}\r\n
\r\n\r\n
\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 {radios.map((radio, idx) => (\r\n setRadioValue(e.currentTarget.value)}\r\n >\r\n {radio.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n