{"version":3,"sources":["components/NavMenu.js","components/Layout.js","components/FilterItem.js","components/Subsection.js","components/Logo.js","components/OverviewSection.js","components/FilterTable.js","components/ExperienceSection.js","components/EducationSection.js","components/ProjectsSection.js","components/Home.js","components/FetchData.js","components/Counter.js","components/MarkdownEditor.js","App.js","registerServiceWorker.js","index.js"],"names":["NavMenu","_Component","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","toggleNavbar","bind","assertThisInitialized","state","collapsed","inherits","createClass","key","value","setState","react_default","a","createElement","reactstrap_es","className","light","tag","Link","to","onClick","isOpen","navbar","Component","displayName","name","Layout","apply","arguments","NavMenu_NavMenu","children","FilterItem","defineProperty","_handleExternalChange","writable","toggleCheckboxChange","isChecked","objectSpread","table","item","setFilter","isPressed","getFilter","handleExternalChange","registerChangeListener","unregisterChangeListener","colorName","toLowerCase","border","background","friendlyName","labelColor","label","_this$state","colors","getColors","borderColor","backgroundColor","textColor","style","display","onMouseDownCapture","mouseDown","onMouseUpCapture","mouseUp","color","concat","type","checked","onChange","Subsection","backgroundSize","position","width","height","left","right","top","bottom","zIndex","undefined","imageUrl","backgroundImage","sectionItem","platformsTable","languagesTable","frameworksTable","itemType","platforms","length","map","p","FilterItem_FilterItem","languages","frameworks","react_awesome_grid","title","subtitle","overview","dist_default","Fragment","sectionItems","widthThreshold","pairs","i","first","second","push","react_responsive_default","minWidth","pair","renderSubsection","maxWidth","Logo","size","layers","d","cx","cy","r","variant","points","fill","viewBox","OverviewSection","Subsection_Subsection","Logo_Logo","verticalContentAlignment","horizontalContentAlignment","src","alt","marginLeft","experienceClicked","educationClicked","projectsClicked","onExperienceClicked","onEducationClicked","onProjectsClicked","FilterTable","_handlerTable","_stateTable","_updateListeners","handlerTable","Map","stateTable","updateListeners","filter","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","_ref5","_ref2","slicedToArray","fltr","err","return","get","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_ref6","_ref4","context","reg","handler","set","has","delete","ExperienceSection","_platformFilterTable","_languageFilterTable","_frameworkFilterTable","_onPlatformsFilterChanged","_onLanguagesFilterChanged","_onFrameworksFilterChanged","_myRef","onPlatformsFilterChanged","platformsFilter","onLanguagesFilterChanged","languagesFilter","onFrameworksFilterChanged","frameworksFilter","platformFilterTable","languageFilterTable","frameworkFilterTable","items","loading","myRef","React","createRef","current","populateAllData","_this2","filteredPlatforms","split","filteredLanguages","filteredframeworks","filtered","some","indexOf","renderSubsectionsGrid","_populateAllData","asyncToGenerator","regenerator_default","mark","_callee","experienceResponse","experience","_item","_platform","platform","_language","language","_framework","framework","wrap","_context","prev","fetch","sent","json","stop","EducationSection","educationResponse","education","ProjectsSection","ProjectsSection_platformFilterTable","ProjectsSection_languageFilterTable","ProjectsSection_frameworkFilterTable","ProjectsSection_onPlatformsFilterChanged","ProjectsSection_onLanguagesFilterChanged","ProjectsSection_onFrameworksFilterChanged","ProjectsSection_myRef","projectsResponse","projects","Home","OverviewSection_OverviewSection","ExperienceSection_ExperienceSection","ref","experienceRef","EducationSection_EducationSection","educationRef","ProjectsSection_ProjectsSection","projectsRef","dom","ReactDOM","findDOMNode","window","scrollTo","offsetTop","FetchData","forecasts","populateWeatherData","contents","renderForecastsTable","id","_populateWeatherData","response","data","aria-labelledby","forecast","date","temperatureC","temperatureF","summary","Counter","currentCount","incrementCounter","aria-live","MarkdownEditor","md","Remarkable","handleChange","e","target","__html","render","htmlFor","defaultValue","dangerouslySetInnerHTML","getRawMarkup","App","Route","exact","path","component","isLocalhost","Boolean","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","error","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","BrowserRouter","basename","App_App","URL","process","origin","addEventListener","status","headers","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.d8793fb0.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n  static displayName = NavMenu.name;\r\n\r\n  constructor (props) {\r\n    super(props);\r\n\r\n    this.toggleNavbar = this.toggleNavbar.bind(this);\r\n    this.state = {\r\n      collapsed: true\r\n    };\r\n  }\r\n\r\n  toggleNavbar () {\r\n    this.setState({\r\n      collapsed: !this.state.collapsed\r\n    });\r\n  }\r\n\r\n  render () {\r\n    return (\r\n      <header>\r\n        <Navbar className=\"navbar-expand-sm navbar-toggleable-sm ng-white border-bottom box-shadow mb-3\" light>\r\n          <Container>\r\n            <NavbarBrand tag={Link} to=\"/\">website</NavbarBrand>\r\n            <NavbarToggler onClick={this.toggleNavbar} className=\"mr-2\" />\r\n            <Collapse className=\"d-sm-inline-flex flex-sm-row-reverse\" isOpen={!this.state.collapsed} navbar>\r\n              <ul className=\"navbar-nav flex-grow\">\r\n                <NavItem>\r\n                  <NavLink tag={Link} className=\"text-dark\" to=\"/\">Home</NavLink>\r\n                </NavItem>\r\n                <NavItem>\r\n                  <NavLink tag={Link} className=\"text-dark\" to=\"/counter\">Counter</NavLink>\r\n                </NavItem>\r\n                <NavItem>\r\n                    <NavLink tag={Link} className=\"text-dark\" to=\"/fetch-data\">Fetch data</NavLink>\r\n                </NavItem>\r\n                <NavItem>\r\n                    <NavLink tag={Link} className=\"text-dark\" to=\"/markdown-editor\">Markdown editor</NavLink>\r\n                </NavItem>\r\n              </ul>\r\n            </Collapse>\r\n          </Container>\r\n        </Navbar>\r\n      </header>\r\n    );\r\n  }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n  static displayName = Layout.name;\r\n\r\n  render () {\r\n    return (\r\n      <div>\r\n        <NavMenu />\r\n        <Container>\r\n          {this.props.children}\r\n        </Container>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n","import React, { Component } from 'react';\r\nimport './FilterItem.css';\r\n\r\nexport class FilterItem extends Component {\r\n    #handleExternalChange;\r\n\r\n    constructor(props) {\r\n        super(props);\r\n        this.state = { isChecked: false, isPressed: false }\r\n        if (this.props && this.props.table && this.props.item)\r\n            this.state.isChecked = this.props.table.getFilter(this.props.item.value);\r\n        this.handleExternalChange = function(value) {\r\n            if (this.state.isChecked !== value) {\r\n                this.setState({ ...this.state, isChecked: value });\r\n            }\r\n        };\r\n    }\r\n\r\n    componentDidMount() {\r\n        if (this.props && this.props.table && this.props.item) {\r\n            this.props.table.registerChangeListener(this, this.props.item.value, this.handleExternalChange);\r\n        }\r\n    }\r\n\r\n    componentWillUnmount() {\r\n        if (this.props && this.props.table && this.props.item) {\r\n            this.props.table.unregisterChangeListener(this);\r\n        }\r\n    }\r\n\r\n    toggleCheckboxChange = () => {\r\n        //const { handleCheckboxChange, label } = this.props;\r\n\r\n        var isChecked = !this.state.isChecked;\r\n        this.setState({ ...this.state, isChecked: isChecked });\r\n\r\n        if (this.props && this.props.table && this.props.item) {\r\n            this.props.table.setFilter(this.props.item.value, isChecked);\r\n        }\r\n\r\n        //handleCheckboxChange(label);\r\n    }\r\n\r\n    getColors(colorName, isPressed) {\r\n        switch (colorName.toLowerCase()) {\r\n            case \"red\":\r\n                return {\r\n                    border: '#ff0000',\r\n                    background: isPressed ? '#800000' : '#cc0000'\r\n                };\r\n            case \"blue\":\r\n                return {\r\n                    border: '#4f6fe3',\r\n                    background: isPressed ? '#152d84' : '#224bdd'\r\n                };\r\n            case \"cyan\":\r\n                return {\r\n                    border: '#00e5e6',\r\n                    background: isPressed ? '#006666' : '#00b2b3'\r\n                };\r\n            case \"purple\":\r\n                return {\r\n                    border: '#cc00cc',\r\n                    background: isPressed ? '#5c0a5c' : '#a112a1'\r\n                };\r\n            case \"green\":\r\n                return {\r\n                    border: '#00b300',\r\n                    background: isPressed ? '#004d00' : '#008000'\r\n                };\r\n            case \"orange\":\r\n                return {\r\n                    border: '#ff8c00',\r\n                    background: isPressed ? '#995400' : '#e07b00'\r\n                };\r\n            case \"yellow\":\r\n                return {\r\n                    border: '#cccc00',\r\n                    background: isPressed ? '#666600' : '#999900'\r\n                };\r\n            default:\r\n                return {\r\n                    border: colorName,\r\n                    background: colorName\r\n                };\r\n        }\r\n    }\r\n\r\n    mouseDown() {\r\n        this.setState({ ...this.state, isPressed: true });\r\n    }\r\n\r\n    mouseUp() {\r\n        this.setState({ ...this.state, isPressed: false });\r\n    }\r\n\r\n    render() {\r\n        const item = this.props ? this.props.item : { friendlyName: '', labelColor: '' };\r\n        const label = item.friendlyName;\r\n\r\n        const { isChecked, isPressed } = this.state;\r\n        const colors = this.getColors(item.labelColor, isPressed);\r\n        const borderColor = colors.border;\r\n\r\n        const backgroundColor = isChecked ? 'white' : colors.background;\r\n        const textColor = isChecked ? colors.background : 'white';\r\n\r\n        return (<div style={{ display: \"inline-block\" }}\r\n            onMouseDownCapture={this.mouseDown.bind(this)}\r\n            onMouseUpCapture={this.mouseUp.bind(this)} >\r\n            <label className=\"filter-item-label\" style={{\r\n                backgroundColor: backgroundColor,\r\n                color: textColor,\r\n                border: `2px solid ${borderColor}`\r\n            }}>\r\n                <input\r\n                    type=\"checkbox\"\r\n                    value={label}\r\n                    checked={isChecked}\r\n                    onChange={this.toggleCheckboxChange}\r\n                />\r\n                {label}\r\n            </label>\r\n        </div>);\r\n    }\r\n}","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport Markdown from 'react-remarkable';\r\nimport { FilterItem } from './FilterItem';\r\nimport MediaQuery from 'react-responsive';\r\nimport { Grid, Column, Row } from \"react-awesome-grid\";\r\n\r\nexport class Subsection extends Component {\r\n    render() {\r\n        var style = {\r\n            backgroundSize: \"cover\",\r\n            color: \"#FFFFFF\",\r\n            backgroundColor: \"#333333\",\r\n            position: \"absolute\",\r\n            width: \"100%\",\r\n            height: \"100%\",\r\n            left: \"0\",\r\n            right: \"0\",\r\n            top: \"0\",\r\n            bottom: \"0\",\r\n            zIndex: \"-2\"\r\n        };\r\n        if (this.props.imageUrl !== undefined)\r\n            style.backgroundImage = `url(${this.props.imageUrl})`;\r\n        return (<div className=\"subsection\">\r\n            <div style={style} />\r\n            <Container className=\"section\">\r\n                {this.props.children}\r\n            </Container>\r\n        </div>);\r\n    }\r\n\r\n    static renderSubsection(sectionItem, platformsTable, languagesTable, frameworksTable, itemType) {\r\n        const platforms = (sectionItem.platforms && sectionItem.platforms.length > 0) ?\r\n            sectionItem.platforms.map(p => (<FilterItem item={p} table={platformsTable} />))\r\n            : null;\r\n        const languages = (sectionItem.languages && sectionItem.languages.length > 0) ?\r\n            sectionItem.languages.map(p => (<FilterItem item={p} table={languagesTable} />))\r\n            : null;\r\n        const frameworks = (sectionItem.frameworks && sectionItem.frameworks.length > 0) ?\r\n            sectionItem.frameworks.map(p => (<FilterItem item={p} table={frameworksTable} />))\r\n            : null;\r\n\r\n        return (\r\n            <Subsection imageUrl={sectionItem.imageUrl}>\r\n                <Grid>\r\n                    {\r\n                        sectionItem.title ? (<Row height=\"auto\"><h2>{sectionItem.title}</h2></Row>) : ''\r\n                    }\r\n                    {\r\n                        sectionItem.subtitle ? (<Row height=\"auto\"><h4>{sectionItem.subtitle}</h4></Row>) : ''\r\n                    }\r\n                    {\r\n                        sectionItem.overview ? (<Row height=\"auto\"><Markdown>{sectionItem.overview}</Markdown></Row>) : ''\r\n                    }\r\n                    {\r\n                        platforms ? (\r\n                            <>\r\n                                <Row height=\"auto\"><div><strong>Platforms</strong> used in this {itemType}:</div></Row>\r\n                                <Row height=\"auto\"><div className=\"horizontal-scroll\">{platforms}</div></Row>\r\n                            </>\r\n                        ) : ''\r\n                    }\r\n                    {\r\n                        languages ? (\r\n                            <>\r\n                                <Row height=\"auto\"><div><strong>Languages</strong> used in this {itemType}:</div></Row>\r\n                                <Row height=\"auto\"><div className=\" horizontal-scroll\">{languages}</div></Row>\r\n                            </>\r\n                        ) : ''\r\n                    }\r\n                    {\r\n                        frameworks ? (\r\n                            <>\r\n                                <Row height=\"auto\"><div><strong>Frameworks</strong> used in this {itemType}:</div></Row>\r\n                                <Row height=\"auto\"><div className=\" horizontal-scroll\">{frameworks}</div></Row>\r\n                            </>\r\n                        ) : ''\r\n                    }\r\n                </Grid>\r\n            </Subsection>\r\n        );\r\n    }\r\n\r\n    static renderSubsectionsGrid(sectionItems, platformsTable, languagesTable, frameworksTable, widthThreshold, itemType) {\r\n        const pairs = [];\r\n        for (var i = 0; i < sectionItems.length; i += 2) {\r\n            const first = sectionItems[i];\r\n            const second = (i + 1) < sectionItems.length ? sectionItems[i + 1] : null;\r\n            pairs.push({ first: first, second: second });\r\n        }\r\n        return (\r\n            <Grid>\r\n                <MediaQuery minWidth={widthThreshold}>\r\n                        {\r\n                            pairs.map(pair => (\r\n                                <Row height=\"auto\">\r\n                                    <Column width=\"*\" style={{ minWidth: \"0px\" }}>\r\n                                        {\r\n                                            Subsection.renderSubsection(pair.first, platformsTable, languagesTable, frameworksTable, itemType)\r\n                                        }\r\n                                    </Column>\r\n                                    {\r\n                                        pair.second ? (<Column width=\"*\" style={{ minWidth: \"0px\" }}>\r\n                                            {\r\n                                                Subsection.renderSubsection(pair.second, platformsTable, languagesTable, frameworksTable, itemType)\r\n                                            }\r\n                                        </Column>) : ''\r\n                                    }\r\n                                </Row>\r\n                            ))\r\n                        }\r\n                </MediaQuery>\r\n                <MediaQuery maxWidth={widthThreshold - 1}>\r\n                        {\r\n                            sectionItems.map(item => (\r\n                                <Row height=\"auto\">\r\n                                    {\r\n                                        Subsection.renderSubsection(item, platformsTable, languagesTable, frameworksTable, itemType)\r\n                                    }\r\n                                </Row>\r\n                            ))\r\n                        }\r\n                </MediaQuery>\r\n            </Grid>);\r\n    }\r\n}","import React, { Component } from 'react';\r\n\r\nexport class Logo extends Component {\r\n    render() {\r\n        const size = this.props.size === undefined ? 200 : this.props.size;\r\n\r\n        let layers = [(<path d=\"M278,104 L280,106 L280,212 Q284 213 284 215  L284,219 L285,220 L285,225 L320,260 L236,260 L273,225 L273,220 L274,219 L274,215 Q274 213 278 212\"\r\n            className=\"logo-foreground\" />),\r\n            (<circle cx=\"279\" cy=\"260\" r=\"7\" className=\"logo-foreground\" />)];\r\n\r\n        if (this.props.variant === \"experience\")\r\n            layers = [(<polygon className=\"logo-outline-foreground logo-foreground\" points=\"266,143 310,143 298,168 278,168\" />),\r\n                (<polygon className=\"logo-outline-foreground\" points=\"298,168 313,307 288,332 263,307 278,168\" />),\r\n                (<polygon className=\"logo-outline-foreground\" points=\"298,168 325,269 311,290\" />)];\r\n\r\n        if (this.props.variant === \"education\")\r\n            layers = [(<polygon points=\"179,209 254,184 329,209 254,235\"\r\n                className=\"logo-foreground\" />),\r\n            (<path className=\"logo-outline-foreground\" d=\"M296,220 L296,252  Q254, 275 212,252 L212, 220\" />),\r\n            (<polygon fill=\"White\" points=\"316,217 320,215.5 320,260.5 316,262\"\r\n                    className=\"logo-foreground\" />)];\r\n\r\n        if (this.props.variant === \"projects\")\r\n            layers = [(<polygon points=\"200,180 328,180 328,200 200,200\"\r\n                className=\"logo-outline-foreground logo-foreground\" />),\r\n                (<polygon points=\"328,200 328,279 200,279 200,200\"\r\n                    className=\"logo-outline-foreground\" />),\r\n                (<path className=\"logo-outline-foreground\" d=\"M242,256 L213,240 L242,224\" />),\r\n                (<path className=\"logo-outline-foreground\" d=\"M284,256 L313,240 L284,224\" />),\r\n                (<path className=\"logo-outline-foreground\" d=\"M251,272 275,207\" />)];\r\n\r\n        return (\r\n            <svg width={size} height={size} viewBox=\"0 0 400 400\">\r\n                <polygon points=\"0,202 199.5,25 399,202 337,202 337,372 62,372 62,202\"\r\n                    className=\"logo-background\"/>\r\n                <polygon points=\"69,150 104,119 104,366 69,366\"\r\n                    className=\"logo-foreground\"/>\r\n                <polygon points=\"103.5,232.5 211,103 248,103 144.5,228.5 266,366 220,366\"\r\n                    className=\"logo-foreground\" />\r\n                {\r\n                    layers\r\n                }\r\n            </svg>\r\n        );\r\n    }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Subsection } from './Subsection';\r\nimport { Logo } from './Logo';\r\nimport { Grid, Column, Row } from \"react-awesome-grid\";\r\nimport MediaQuery from 'react-responsive';\r\n\r\nexport class OverviewSection extends Component {\r\n    render() {\r\n        return (\r\n            <div className=\"overview section-background\">\r\n                <Subsection imageUrl='OverviewBackground.jpg'>\r\n                    <Grid>\r\n                        <Column width=\"*\">\r\n                            <Row height=\"auto\">\r\n                                <Column width=\"auto\">\r\n                                    <Logo size=\"100\" />\r\n                                </Column>\r\n                                <Column width=\"*\" verticalContentAlignment=\"center\" horizontalContentAlignment=\"center\">\r\n                                    <MediaQuery minWidth={1001}>\r\n                                        <div>\r\n                                            <h1>Alexander Kvenvolden</h1>\r\n                                        </div>\r\n                                    </MediaQuery>\r\n                                    <MediaQuery maxWidth={1000}>\r\n                                        <Row height=\"*\" horizontalContentAlignment=\"center\" verticalContentAlignment=\"bottom\">\r\n                                            <h1>Alexander</h1>\r\n                                        </Row>\r\n                                        <Row height=\"*\" horizontalContentAlignment=\"center\" verticalContentAlignment=\"top\">\r\n                                            <h1>Kvenvolden</h1>\r\n                                        </Row>\r\n                                    </MediaQuery>\r\n                                </Column>\r\n                                <MediaQuery maxWidth={800}>\r\n                                    <Column width=\"auto\" verticalContentAlignment=\"center\">\r\n                                        <img src=\"Headshot.jpg\" alt=\"Head shot\" style={{ width: \"100px\", marginLeft: \"1em\" }} />\r\n                                    </Column>\r\n                                </MediaQuery>\r\n                            </Row>\r\n                            <Row height=\"auto\" horizontalContentAlignment=\"center\">\r\n                                <p>\r\n                                    Hi! I am a Seattle-area software developer, husband, and dad. I like to write apps in my free time. Here you will find an interactive resume of my work, education, and projects. I'm currently looking for work, and am open to a wide variety of software engineering positions.\r\n                                      </p>\r\n                            </Row>\r\n                            <Row height=\"auto\" horizontalContentAlignment=\"space-around\">\r\n                                <button className=\"btn experience\" onClick={this.experienceClicked.bind(this)} > Experience</button>\r\n                                <button className=\"btn education\" onClick={this.educationClicked.bind(this)}>Education</button>\r\n                                <button className=\"btn projects\" onClick={this.projectsClicked.bind(this)}>Projects</button>\r\n                            </Row>\r\n                        </Column>\r\n                        <MediaQuery minWidth={801}>\r\n                            <Column width=\"auto\" verticalContentAlignment=\"center\">\r\n                                <img src=\"Headshot.jpg\" alt=\"Head shot\" style={{ width: \"200px\", marginLeft: \"1em\" }} />\r\n                            </Column>\r\n                        </MediaQuery>\r\n                    </Grid>\r\n                </Subsection>\r\n            </div>);\r\n    }\r\n\r\n    experienceClicked() {\r\n        if (this.props.onExperienceClicked)\r\n            this.props.onExperienceClicked();\r\n    }\r\n\r\n    educationClicked() {\r\n        if (this.props.onEducationClicked)\r\n            this.props.onEducationClicked();\r\n    }\r\n\r\n    projectsClicked() {\r\n        if (this.props.onProjectsClicked)\r\n            this.props.onProjectsClicked();\r\n    }\r\n}","export class FilterTable {\r\n    #handlerTable;\r\n    #stateTable;\r\n    #updateListeners;\r\n    constructor() {\r\n        this.handlerTable = new Map();\r\n        this.stateTable = new Map();\r\n        this.updateListeners = function (filter) {\r\n            let state = \"\";\r\n            for (const [fltr, checked] of this.stateTable) {\r\n                if (checked) {\r\n                    state += (\" \" + fltr);\r\n                }\r\n            }\r\n\r\n            const value = this.stateTable.get(filter);\r\n            for (const [context, reg] of this.handlerTable) {\r\n                if (reg.filter == filter) {\r\n                    reg.handler.bind(context)(value);\r\n                } else if (reg.filter === null) {\r\n                    reg.handler.bind(context)(state);\r\n                }\r\n            }\r\n        };\r\n    }\r\n\r\n    setFilter(filter, value) {\r\n        this.stateTable.set(filter, value);\r\n        this.updateListeners(filter);\r\n    }\r\n\r\n    getFilter(filter) {\r\n        if (this.stateTable.has(filter))\r\n            return this.stateTable.get(filter);\r\n        return false;\r\n    }\r\n\r\n    registerChangeListener(context, filter, handler) {\r\n        this.handlerTable.set(context, { filter: filter, handler: handler });\r\n        if (this.stateTable.has(filter))\r\n            handler.bind(context)(this.stateTable.get(filter));\r\n    }\r\n\r\n    unregisterChangeListener(context) {\r\n        this.handlerTable.delete(context);\r\n    }\r\n}","import React, { Component } from 'react';\r\nimport { Subsection } from './Subsection';\r\nimport { Logo } from './Logo';\r\nimport { Grid, Column, Row } from \"react-awesome-grid\";\r\nimport { FilterItem } from './FilterItem';\r\nimport { FilterTable } from './FilterTable';\r\n\r\nexport class ExperienceSection extends Component {\r\n    #platformFilterTable\r\n    #languageFilterTable\r\n    #frameworkFilterTable\r\n    #onPlatformsFilterChanged\r\n    #onLanguagesFilterChanged\r\n    #onFrameworksFilterChanged\r\n\r\n    #myRef;\r\n\r\n    constructor(props) {\r\n        super(props);\r\n        this.onPlatformsFilterChanged = function (filter) {\r\n            this.setState({ ...this.state, platformsFilter: filter });\r\n        }\r\n        this.onLanguagesFilterChanged = function (filter) {\r\n            this.setState({ ...this.state, languagesFilter: filter });\r\n        }\r\n        this.onFrameworksFilterChanged = function (filter) {\r\n            this.setState({ ...this.state, frameworksFilter: filter });\r\n        }\r\n\r\n        this.platformFilterTable = new FilterTable();\r\n        this.languageFilterTable = new FilterTable();\r\n        this.frameworkFilterTable = new FilterTable();\r\n        this.platformFilterTable.registerChangeListener(\r\n            this, null, this.onPlatformsFilterChanged);\r\n        this.languageFilterTable.registerChangeListener(\r\n            this, null, this.onLanguagesFilterChanged);\r\n        this.frameworkFilterTable.registerChangeListener(\r\n            this, null, this.onFrameworksFilterChanged);\r\n        this.state = {\r\n            platforms: [],\r\n            languages: [],\r\n            frameworks: [],\r\n            platformsFilter: \"\",\r\n            languagesFilter: \"\",\r\n            frameworksFilter: \"\",\r\n            items: [],\r\n            loading: true,\r\n        };\r\n        this.myRef = React.createRef();\r\n    }\r\n\r\n    componentDidMount() {\r\n        this.current = this.myRef.current;\r\n        this.populateAllData();\r\n    }\r\n\r\n    render() {\r\n        const platforms = this.state.platforms.map(\r\n            p => (<FilterItem item={p} table={this.platformFilterTable} />));\r\n        const languages = this.state.languages.map(\r\n            p => (<FilterItem item={p} table={this.languageFilterTable} />));\r\n        const frameworks = this.state.frameworks.map(\r\n            p => (<FilterItem item={p} table={this.frameworkFilterTable} />));\r\n\r\n        const filteredPlatforms = this.state.platformsFilter.split(' ');\r\n        const filteredLanguages = this.state.languagesFilter.split(' ');\r\n        const filteredframeworks = this.state.frameworksFilter.split(' ');\r\n\r\n        let filtered = this.state.items;\r\n        if (this.state.platformsFilter !== \"\") {\r\n            filtered = filtered.filter(item =>\r\n                item.platforms.some(p => filteredPlatforms.indexOf(`${p.value}`) !== -1));\r\n        }\r\n        if (this.state.languagesFilter !== \"\") {\r\n            filtered = filtered.filter(item =>\r\n                item.languages.some(p => filteredLanguages.indexOf(`${p.value}`) !== -1));\r\n        }\r\n        if (this.state.frameworksFilter !== \"\") {\r\n            filtered = filtered.filter(item =>\r\n                item.frameworks.some(p => filteredframeworks.indexOf(`${p.value}`) !== -1));\r\n        }\r\n\r\n        return (\r\n            <div className=\"experience section-background\">\r\n                <Subsection imageUrl='ExperienceBackground.jpg'>\r\n                    <Grid>\r\n                        <Row height=\"auto\">\r\n                            <Column width=\"auto\">\r\n                                <Logo size=\"100\" variant=\"experience\" />\r\n                            </Column>\r\n                            <Column width=\"*\" verticalContentAlignment=\"center\" horizontalContentAlignment=\"center\">\r\n                                <h1>Experience</h1>\r\n                            </Column>\r\n                        </Row>\r\n                        <Row height=\"auto\" horizontalContentAlignment=\"center\">\r\n                            <p>\r\n                                {\r\n                                    this.state.loading ? \"Loading experience...\" :\r\n                                    \"Here are some of the positions I have worked at in the past:\"\r\n                                }\r\n                            </p>\r\n                        </Row>\r\n                        {\r\n                            this.state.loading ? '' :\r\n                                (<><Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                    <div>Filter experience by <strong>platform</strong>.</div>\r\n                                </Row>\r\n                                <Row height=\"auto\"><div className=\"horizontal-scroll\">\r\n                                    {platforms}\r\n                                    </div></Row><Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                        <div>Filter experience by <strong>language</strong>.</div>\r\n                                    </Row>\r\n                                    <Row height=\"auto\"><div className=\"horizontal-scroll\">\r\n                                        {languages}\r\n                                    </div></Row><Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                        <div>Filter experience by <strong>framework</strong>.</div>\r\n                                    </Row>\r\n                                    <Row height=\"auto\"><div className=\"horizontal-scroll\">\r\n                                        {frameworks}\r\n                                    </div></Row></>)\r\n                        }\r\n                        {\r\n                            filtered.length == 0 ?\r\n                                (<Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                    <div><strong>No results.</strong> Try adjusting the filters.</div>\r\n                                </Row>) : ''\r\n                        }\r\n                    </Grid>\r\n                </Subsection>\r\n                {\r\n                    Subsection.renderSubsectionsGrid(filtered,\r\n                        this.platformFilterTable, this.languageFilterTable, this.frameworkFilterTable, 1000, \"role\")\r\n                }\r\n            </div>);\r\n    }\r\n\r\n    async populateAllData() {\r\n        const state = {\r\n            platforms: [],\r\n            languages: [],\r\n            frameworks: [],\r\n            platformsFilter: \"\",\r\n            languagesFilter: \"\",\r\n            frameworksFilter: \"\",\r\n            items: [],\r\n            loading: true,\r\n        };\r\n        const experienceResponse = await fetch('siteData/experience');\r\n        const experience = await experienceResponse.json();\r\n        state.items = experience;\r\n        for (const _item in state.items) {\r\n            const item = state.items[_item];\r\n\r\n            for (const _platform in item.platforms) {\r\n                const platform = item.platforms[_platform];\r\n                if (state.platforms.map(p => p.friendlyName).indexOf(platform.friendlyName) === -1)\r\n                    state.platforms.push(platform);\r\n            }\r\n\r\n            for (const _language in item.languages) {\r\n                const language = item.languages[_language];\r\n                if (state.languages.map(p => p.friendlyName).indexOf(language.friendlyName) === -1)\r\n                    state.languages.push(language);\r\n            }\r\n\r\n            for (const _framework in item.frameworks) {\r\n                const framework = item.frameworks[_framework];\r\n                if (state.frameworks.map(p => p.friendlyName).indexOf(framework.friendlyName) === -1)\r\n                    state.frameworks.push(framework);\r\n            }\r\n        }\r\n\r\n        state.loading = false;\r\n        this.setState(state);\r\n    }\r\n}","import React, { Component } from 'react';\r\nimport { Subsection } from './Subsection';\r\nimport { Logo } from './Logo';\r\nimport { Grid, Column, Row } from \"react-awesome-grid\";\r\nimport MediaQuery from 'react-responsive';\r\n\r\nexport class EducationSection extends Component {\r\n    constructor(props) {\r\n        super(props);\r\n\r\n        this.state = {\r\n            items: [],\r\n            loading: true,\r\n        };\r\n    }\r\n\r\n    componentDidMount() {\r\n        this.populateAllData();\r\n    }\r\n\r\n    render() {\r\n        return (\r\n            <div className=\"education section-background\">\r\n                <Subsection imageUrl='EducationBackground.jpg'>\r\n                    <Grid>\r\n                        <Row height=\"auto\">\r\n                            <Column width=\"auto\">\r\n                                <Logo size=\"100\" variant=\"education\" />\r\n                            </Column>\r\n                            <Column width=\"*\" verticalContentAlignment=\"center\" horizontalContentAlignment=\"center\">\r\n                                <h1>Education</h1>\r\n                            </Column>\r\n                        </Row>\r\n                        <Row height=\"auto\" horizontalContentAlignment=\"center\">\r\n                            <p>\r\n                                {\r\n                                    this.state.loading ? \"Loading education...\" :\r\n                                        \"Here is where I have attended college and what degrees I have:\"\r\n                                }\r\n                            </p>\r\n                        </Row>\r\n                    </Grid>\r\n                </Subsection>\r\n                {\r\n                    Subsection.renderSubsectionsGrid(this.state.items, null, null, null, 1000, \"\")\r\n                }\r\n            </div>);\r\n}\r\n\r\nasync populateAllData() {\r\n    const state = {\r\n        items: [],\r\n        loading: true,\r\n    };\r\n    const educationResponse = await fetch('siteData/education');\r\n    const education = await educationResponse.json();\r\n    state.items = education;\r\n\r\n    state.loading = false;\r\n    this.setState(state);\r\n}\r\n}","import React, { Component } from 'react';\r\nimport { Subsection } from './Subsection';\r\nimport { Logo } from './Logo';\r\nimport { Grid, Column, Row } from \"react-awesome-grid\";\r\nimport { FilterItem } from './FilterItem';\r\nimport { FilterTable } from './FilterTable';\r\n\r\nexport class ProjectsSection extends Component {\r\n    #platformFilterTable\r\n    #languageFilterTable\r\n    #frameworkFilterTable\r\n    #onPlatformsFilterChanged\r\n    #onLanguagesFilterChanged\r\n    #onFrameworksFilterChanged\r\n\r\n    #myRef;\r\n\r\n    constructor(props) {\r\n        super(props);\r\n        this.onPlatformsFilterChanged = function (filter) {\r\n            this.setState({ ...this.state, platformsFilter: filter });\r\n        }\r\n        this.onLanguagesFilterChanged = function (filter) {\r\n            this.setState({ ...this.state, languagesFilter: filter });\r\n        }\r\n        this.onFrameworksFilterChanged = function (filter) {\r\n            this.setState({ ...this.state, frameworksFilter: filter });\r\n        }\r\n\r\n        this.platformFilterTable = new FilterTable();\r\n        this.languageFilterTable = new FilterTable();\r\n        this.frameworkFilterTable = new FilterTable();\r\n        this.platformFilterTable.registerChangeListener(\r\n            this, null, this.onPlatformsFilterChanged);\r\n        this.languageFilterTable.registerChangeListener(\r\n            this, null, this.onLanguagesFilterChanged);\r\n        this.frameworkFilterTable.registerChangeListener(\r\n            this, null, this.onFrameworksFilterChanged);\r\n        this.state = {\r\n            platforms: [],\r\n            languages: [],\r\n            frameworks: [],\r\n            platformsFilter: \"\",\r\n            languagesFilter: \"\",\r\n            frameworksFilter: \"\",\r\n            items: [],\r\n            loading: true,\r\n        };\r\n        this.myRef = React.createRef();\r\n    }\r\n\r\n    componentDidMount() {\r\n        this.current = this.myRef.current;\r\n        this.populateAllData();\r\n    }\r\n\r\n    render() {\r\n        const platforms = this.state.platforms.map(\r\n            p => (<FilterItem item={p} table={this.platformFilterTable} />));\r\n        const languages = this.state.languages.map(\r\n            p => (<FilterItem item={p} table={this.languageFilterTable} />));\r\n        const frameworks = this.state.frameworks.map(\r\n            p => (<FilterItem item={p} table={this.frameworkFilterTable} />));\r\n\r\n        const filteredPlatforms = this.state.platformsFilter.split(' ');\r\n        const filteredLanguages = this.state.languagesFilter.split(' ');\r\n        const filteredframeworks = this.state.frameworksFilter.split(' ');\r\n\r\n        let filtered = this.state.items;\r\n        if (this.state.platformsFilter !== \"\") {\r\n            filtered = filtered.filter(item =>\r\n                item.platforms.some(p => filteredPlatforms.indexOf(`${p.value}`) !== -1));\r\n        }\r\n        if (this.state.languagesFilter !== \"\") {\r\n            filtered = filtered.filter(item =>\r\n                item.languages.some(p => filteredLanguages.indexOf(`${p.value}`) !== -1));\r\n        }\r\n        if (this.state.frameworksFilter !== \"\") {\r\n            filtered = filtered.filter(item =>\r\n                item.frameworks.some(p => filteredframeworks.indexOf(`${p.value}`) !== -1));\r\n        }\r\n\r\n        return (\r\n            <div className=\"projects section-background\">\r\n                <Subsection imageUrl='ProjectsBackground.jpg'>\r\n                    <Grid>\r\n                        <Row height=\"auto\">\r\n                            <Column width=\"auto\">\r\n                                <Logo size=\"100\" variant=\"projects\" />\r\n                            </Column>\r\n                            <Column width=\"*\" verticalContentAlignment=\"center\" horizontalContentAlignment=\"center\">\r\n                                <h1>Projects</h1>\r\n                            </Column>\r\n                        </Row>\r\n                        <Row height=\"auto\" horizontalContentAlignment=\"center\">\r\n                            <p>\r\n                                {\r\n                                    this.state.loading ? \"Loading projects...\" :\r\n                                        \"Here are some of the projects I have worked on in my free time:\"\r\n                                }\r\n                            </p>\r\n                        </Row>\r\n                        {\r\n                            this.state.loading ? '' :\r\n                                (<><Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                    <div>Filter projects by <strong>platform</strong>.</div>\r\n                                </Row>\r\n                                    <Row height=\"auto\"><div className=\"horizontal-scroll\">\r\n                                        {platforms}\r\n                                    </div></Row><Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                        <div>Filter projects by <strong>language</strong>.</div>\r\n                                    </Row>\r\n                                    <Row height=\"auto\"><div className=\"horizontal-scroll\">\r\n                                        {languages}\r\n                                    </div></Row><Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                        <div>Filter projects by <strong>framework</strong>.</div>\r\n                                    </Row>\r\n                                    <Row height=\"auto\"><div className=\"horizontal-scroll\">\r\n                                        {frameworks}\r\n                                    </div></Row></>)\r\n                        }\r\n                        {\r\n                            filtered.length == 0 ?\r\n                                (<Row height=\"auto\" horizontalContentAlignment=\"left\">\r\n                                    <div><strong>No results.</strong> Try adjusting the filters.</div>\r\n                                </Row>) : ''\r\n                        }\r\n                    </Grid>\r\n                </Subsection>\r\n                {\r\n                    Subsection.renderSubsectionsGrid(filtered,\r\n                        this.platformFilterTable, this.languageFilterTable, this.frameworkFilterTable, 1000, \"project\")\r\n                }\r\n            </div>);\r\n    }\r\n\r\n    async populateAllData() {\r\n        const state = {\r\n            platforms: [],\r\n            languages: [],\r\n            frameworks: [],\r\n            platformsFilter: \"\",\r\n            languagesFilter: \"\",\r\n            frameworksFilter: \"\",\r\n            items: [],\r\n            loading: true,\r\n        };\r\n        const projectsResponse = await fetch('siteData/projects');\r\n        const projects = await projectsResponse.json();\r\n        state.items = projects;\r\n        for (const _item in state.items) {\r\n            const item = state.items[_item];\r\n\r\n            for (const _platform in item.platforms) {\r\n                const platform = item.platforms[_platform];\r\n                if (state.platforms.map(p => p.friendlyName).indexOf(platform.friendlyName) === -1)\r\n                    state.platforms.push(platform);\r\n            }\r\n\r\n            for (const _language in item.languages) {\r\n                const language = item.languages[_language];\r\n                if (state.languages.map(p => p.friendlyName).indexOf(language.friendlyName) === -1)\r\n                    state.languages.push(language);\r\n            }\r\n\r\n            for (const _framework in item.frameworks) {\r\n                const framework = item.frameworks[_framework];\r\n                if (state.frameworks.map(p => p.friendlyName).indexOf(framework.friendlyName) === -1)\r\n                    state.frameworks.push(framework);\r\n            }\r\n        }\r\n\r\n        state.loading = false;\r\n        this.setState(state);\r\n    }\r\n}","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Subsection } from './Subsection';\r\nimport { OverviewSection } from './OverviewSection';\r\nimport { ExperienceSection } from './ExperienceSection';\r\nimport { EducationSection } from './EducationSection';\r\nimport { ProjectsSection } from './ProjectsSection';\r\nimport './Home.css'\r\n\r\nexport class Home extends Component {\r\n    static displayName = Home.name;\r\n\r\n\r\n\r\n    render() {\r\n\r\n      return (\r\n          <div>\r\n              <OverviewSection\r\n                  onExperienceClicked={this.experienceClicked.bind(this)}\r\n                  onEducationClicked={this.educationClicked.bind(this)}\r\n                  onProjectsClicked={this.projectsClicked.bind(this)} />\r\n              <ExperienceSection ref={ref => this.experienceRef = ref}/>\r\n              <EducationSection ref={ref => this.educationRef = ref}/>\r\n              <ProjectsSection ref={ref => this.projectsRef = ref}/>\r\n      </div>\r\n        );\r\n    }\r\n\r\n    experienceClicked() {\r\n        if (this.experienceRef) {\r\n            var dom = ReactDOM.findDOMNode(this.experienceRef)\r\n            if (dom)\r\n                window.scrollTo(0, dom.offsetTop);\r\n        }\r\n    }\r\n\r\n    educationClicked() {\r\n        if (this.educationRef) {\r\n            var dom = ReactDOM.findDOMNode(this.educationRef)\r\n            if (dom)\r\n                window.scrollTo(0, dom.offsetTop);\r\n        }\r\n    }\r\n\r\n    projectsClicked() {\r\n        if (this.projectsRef) {\r\n            var dom = ReactDOM.findDOMNode(this.projectsRef)\r\n            if (dom)\r\n                window.scrollTo(0, dom.offsetTop);\r\n        }\r\n    }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class FetchData extends Component {\r\n  static displayName = FetchData.name;\r\n\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = { forecasts: [], loading: true };\r\n  }\r\n\r\n  componentDidMount() {\r\n    this.populateWeatherData();\r\n  }\r\n\r\n  static renderForecastsTable(forecasts) {\r\n    return (\r\n      <table className='table table-striped' aria-labelledby=\"tabelLabel\">\r\n        <thead>\r\n          <tr>\r\n            <th>Date</th>\r\n            <th>Temp. (C)</th>\r\n            <th>Temp. (F)</th>\r\n            <th>Summary</th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          {forecasts.map(forecast =>\r\n            <tr key={forecast.date}>\r\n              <td>{forecast.date}</td>\r\n              <td>{forecast.temperatureC}</td>\r\n              <td>{forecast.temperatureF}</td>\r\n              <td>{forecast.summary}</td>\r\n            </tr>\r\n          )}\r\n        </tbody>\r\n      </table>\r\n    );\r\n  }\r\n\r\n  render() {\r\n    let contents = this.state.loading\r\n      ? <p><em>Loading...</em></p>\r\n      : FetchData.renderForecastsTable(this.state.forecasts);\r\n\r\n    return (\r\n      <div>\r\n        <h1 id=\"tabelLabel\" >Weather forecast</h1>\r\n        <p>This component demonstrates fetching data from the server.</p>\r\n        {contents}\r\n      </div>\r\n    );\r\n  }\r\n\r\n  async populateWeatherData() {\r\n    const response = await fetch('weatherforecast');\r\n    const data = await response.json();\r\n    this.setState({ forecasts: data, loading: false });\r\n  }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class Counter extends Component {\r\n  static displayName = Counter.name;\r\n\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = { currentCount: 0 };\r\n    this.incrementCounter = this.incrementCounter.bind(this);\r\n  }\r\n\r\n  incrementCounter() {\r\n    this.setState({\r\n      currentCount: this.state.currentCount + 1\r\n    });\r\n  }\r\n\r\n  render() {\r\n    return (\r\n      <div>\r\n        <h1>Counter</h1>\r\n\r\n        <p>This is a simple example of a React component.</p>\r\n\r\n        <p aria-live=\"polite\">Current count: <strong>{this.state.currentCount}</strong></p>\r\n\r\n        <button className=\"btn btn-primary\" onClick={this.incrementCounter}>Increment</button>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Remarkable } from 'remarkable';\r\n\r\nexport class MarkdownEditor extends Component {\r\n    constructor(props) {\r\n        super(props);\r\n        this.md = new Remarkable();\r\n        this.handleChange = this.handleChange.bind(this);\r\n        this.state = { value: 'Hello, **world**!' };\r\n    }\r\n\r\n    handleChange(e) {\r\n        this.setState({ value: e.target.value });\r\n    }\r\n\r\n    getRawMarkup() {\r\n        return { __html: this.md.render(this.state.value) };\r\n    }\r\n\r\n    render() {\r\n        return (\r\n            <div className=\"MarkdownEditor\">\r\n                <h3>Input</h3>\r\n                <label htmlFor=\"markdown-content\">\r\n                    Enter some markdown\r\n        </label>\r\n                <textarea\r\n                    id=\"markdown-content\"\r\n                    onChange={this.handleChange}\r\n                    defaultValue={this.state.value}\r\n                />\r\n                <h3>Output</h3>\r\n                <div\r\n                    className=\"content\"\r\n                    dangerouslySetInnerHTML={this.getRawMarkup()}\r\n                />\r\n            </div>\r\n        );\r\n    }\r\n}","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { FetchData } from './components/FetchData';\r\nimport { Counter } from './components/Counter';\r\n\r\nimport './custom.css'\r\nimport { MarkdownEditor } from './components/MarkdownEditor';\r\n\r\nexport default class App extends Component {\r\n  static displayName = App.name;\r\n\r\n  render () {\r\n      return (\r\n        <div>\r\n            <Route exact path='/' component={Home} />\r\n            <Route path='/counter' component={Counter} />\r\n            <Route path='/fetch-data' component={FetchData} />\r\n            <Route path='/markdown-editor' component={MarkdownEditor} />\r\n        </div>\r\n    );\r\n  }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n  // [::1] is the IPv6 localhost address.\r\n  window.location.hostname === '[::1]' ||\r\n  // 127.0.0.1/8 is considered localhost for IPv4.\r\n  window.location.hostname.match(\r\n    /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n  )\r\n);\r\n\r\nexport default function register () {\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Lets check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl);\r\n      } else {\r\n        // Is not local host. Just register service worker\r\n        registerValidSW(swUrl);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then(registration => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the old content will have been purged and\r\n              // the fresh content will have been added to the cache.\r\n              // It's the perfect time to display a \"New content is\r\n              // available; please refresh.\" message in your web app.\r\n              console.log('New content is available; please refresh.');\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.');\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch(error => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl)\r\n    .then(response => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      if (\r\n        response.status === 404 ||\r\n        response.headers.get('content-type').indexOf('javascript') === -1\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then(registration => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log(\r\n        'No internet connection found. App is running in offline mode.'\r\n      );\r\n    });\r\n}\r\n\r\nexport function unregister () {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready.then(registration => {\r\n      registration.unregister();\r\n    });\r\n  }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n  <BrowserRouter basename={baseUrl}>\r\n    <App />\r\n  </BrowserRouter>,\r\n  rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n"],"sourceRoot":""}