\r\n \r\n \r\n Baltimore Healthy Start\r\n \r\n {' '}\r\n and partners are enhancing the State of Maryland’s Maternal Mortality Review process with Severe Maternal Morbidity reviews, elevating patient experiences to improve quality care, and encouraging postpartum care services to be provided alongside pediatric visits. They are also hosting events and workshops that aim to strengthen advocacy skills for families, recognize the contributions of Black maternal health leaders, and increase awareness and support to help reduce maternal and infant mortality and morbidity.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Brooklyn, NY
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Black Women’s Blueprint\r\n \r\n {' '}\r\n and collaborators are using a community-driven approach to define, design, and pilot a new model of primary maternity service delivery designed to promote equity and improve outcomes for Black, Indigenous and other women of color.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Camden, NJ
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Camden Coalition of Healthcare Providers\r\n \r\n {' '}\r\n and its partners are strengthening citywide data infrastructures to improve connection to services and care coordination for pregnant and postpartum women. \r\n Through the pregnancy care initiation pilot\r\n {' '}, they are connecting pregnant people with prenatal and other clinical and social care earlier in their pregnancy and addressing the barriers to care for pregnant community members.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Newark, NJ
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Greater Newark Healthcare Coalition\r\n \r\n {' '}\r\n and its partners are educating health care providers on the best practices for maternity care, developing a public education campaign to increase women’s awareness of serious complications associated with pregnancy and the post-natal period, and disseminating recommendations to local stakeholders. \r\n In collaboration with the Rutgers School of Public Health\r\n {' '}, they also conducted community-based participatory research (CBPR) to understand the challenges that mothers face when seeking health care and identify key areas where health care providers could serve as better advocates for the wellbeing of Black mothers across the state.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Philadelphia, PA
\r\n \r\n \r\n
\r\n
The Philadelphia Department of Public Health \r\n in partnership with \r\n \r\n \r\n Health Federation of Philadelphia\r\n \r\n {' '}\r\n are strengthening surveillance and reporting, improving clinical care, integrating community voices in developing solutions, addressing racial disparities in maternal health outcomes, and increasing community-based support for childbearing women through development of a maternal mortality community action team. \r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Pittsburgh, PA
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Jewish Healthcare Foundation\r\n \r\n {' '}\r\n and its partners are improving coordination and\r\n quality of care among local service providers,\r\n educating perinatal health workers, and\r\n building a local maternal health movement.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Trenton, NJ
\r\n \r\n \r\n
\r\n
\r\n \r\n Trenton Health Team\r\n {' '}\r\n and collaborators are creating a robust system of data analytics to expand knowledge of maternal health challenges and enhancing doula services to support women experiencing high-risk pregnancies within Black, Latinx and immigrant communities. They are also providing a system of support to improve patient access to community resources.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Washington, DC
\r\n \r\n \r\n
\r\n
\r\n \r\n Mamatoto Village\r\n {' '}\r\n and collaborators are strengthening maternal health care for Black women and birthing people by advocating for system and policy changes that expand comprehensive, accessible and high-quality perinatal support services and provide sustainable solutions to address homelessness and inequitable housing.\r\n
\r\n \r\n AllianceChicago\r\n \r\n ,{' '}\r\n \r\n Ever Thrive Illinois\r\n {' '}\r\n and its partners are improving the quality and coordination of care to serve women at highest risk, and empowering families and social service providers through community \r\n outreach\r\n {' '}.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Columbus, OH
\r\n \r\n \r\n
\r\n
\r\n \r\n ROOTT\r\n {' '}\r\n and its partners are creating a model of community-based full-spectrum perinatal support doula care, with focus for Black women who have limited or no access to insurance, to ensure that they receive relevant, consistent, safe and equitable care.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Detroit, MI
\r\n \r\n \r\n
\r\n
\r\n The Southeast Michigan Perinatal Quality Improvement Coalition (SEMPQIC), the lead for Project Detroit: Voices for Life, and local collaborators like the Michigan Public Health Institute are building on existing community assets to foster conditions where Black mothers thrive by empowering Black women to advocate for their health needs and supporting care providers to reach their full potential in providing respectful and equitable care. \r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
St. Louis, MO
\r\n \r\n \r\n
\r\n
\r\n \r\n Jamaa Birth Village\r\n {' '}\r\n and{' '}\r\n \r\n Commonsense Childbirth\r\n {' '}\r\n are increasing Black women’s access to culturally congruent holistic maternal health services by building a sustainable doula workforce and integrating doula care into existing health and hospital systems.\r\n
\r\n \r\n \r\n Black Mamas Matter Alliance\r\n \r\n {' '}\r\n and its partners are creating a social safety-net model to link women, particularly Black women, to care and critical services that could be scaled to other communities where access to health care is limited.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Austin, TX
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n The Maternal Health Equity Collaborative\r\n \r\n {' '}\r\n is offering culturally-sensitive and comprehensive perinatal childcare services to complement the wraparound community doula support of the collaborative and ensure that Black mothers and their families are able to access the holistic, whole-person care needed to alleviate maternal health complications and reduce inequities.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Jackson, MS
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Mississippi Public Health Institute\r\n \r\n {' '}\r\n and its partners are providing community-based support to\r\n pregnant and post-partum women, reducing unnecessary caesarean sections, and decreasing adverse maternal health outcomes through specially trained doulas.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
New Orleans, LA
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Institute of Women and Ethnic Studies\r\n \r\n {' '}\r\n and its partners are identifying and linking birthing\r\n people who have unmet health needs and are\r\n disconnected from support to quality care and policy\r\n solutions.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Norfolk, VA
\r\n \r\n \r\n
\r\n
\r\n \r\n Urban Baby Beginnings\r\n {' '}\r\n and collaborators are reducing disparities for\r\n childbearing women of color by building data\r\n infrastructures for state and city officials,\r\n strengthening community-based support systems,\r\n connecting women to services provided by practitioners\r\n of color and raising women’s awareness of the\r\n importance of perinatal care.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Tampa, FL
\r\n \r\n \r\n
\r\n
\r\n \r\n REACHUP, Inc.\r\n {' '}\r\n and collaborators are improving perinatal mental\r\n wellness and reducing racial and ethnic disparities in\r\n perinatal health outcomes by facilitating access to a\r\n holistic, inclusive and responsive continuum of care\r\n for women and their families.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Linkedin\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Tulsa, OK
\r\n \r\n \r\n
\r\n
\r\n The{' '}\r\n \r\n \r\n Tulsa Birth Equity Initiative (TBEI)\r\n \r\n {' '}\r\n equips families in Tulsa to have healthy births with\r\n dignity and reduce maternal health disparities. TBEI\r\n and collaborators will leverage the influence, skills\r\n and experiences of local organizations to improve\r\n maternal health policies, data systems and service\r\n delivery systems for Black, American Indian and\r\n justice-involved women and teens.\r\n
\r\n \r\n SisterWeb\r\n {' '}\r\n and collaborators are increasing Black and Latinx women’s access to culturally-, racially- and ethnically-aligned doula care by providing health advocacy, wellness interventions and mental health services before, during and after birth.\r\n
\r\n
\r\n Follow along:\r\n
\r\n
\r\n
\r\n \r\n Twitter\r\n \r\n
\r\n
\r\n \r\n Facebook\r\n \r\n
\r\n
\r\n \r\n Instagram\r\n \r\n
\r\n
\r\n \r\n \r\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 Cities;\r\n","module.exports = __webpack_public_path__ + \"static/map_usa_NE_mobile-5c268f2d82cdddfc3173df38e2a8ac05.png\";","module.exports = __webpack_public_path__ + \"static/chicago-d84841b02eb06fea86633aa3cd1de74f.png\";","module.exports = __webpack_public_path__ + \"static/tampa-c7b2642f0aaabaa2a1971065b93a2c1f.png\";","module.exports = __webpack_public_path__ + \"static/map_usa_WE-59eac00d3e0fd25dab07205803f993f2.png\";","module.exports = __webpack_public_path__ + \"static/newark-b16a7aec22695150ade73a72845fa41c.png\";","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\nvar _Link = require('./components/Link.js');\nvar _Link2 = _interopRequireDefault(_Link);\nvar _Button = require('./components/Button.js');\nvar _Button2 = _interopRequireDefault(_Button);\nvar _Element = require('./components/Element.js');\nvar _Element2 = _interopRequireDefault(_Element);\nvar _scroller = require('./mixins/scroller.js');\nvar _scroller2 = _interopRequireDefault(_scroller);\nvar _scrollEvents = require('./mixins/scroll-events.js');\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\nvar _scrollSpy = require('./mixins/scroll-spy.js');\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\nvar _animateScroll = require('./mixins/animate-scroll.js');\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\nvar _scrollLink = require('./mixins/scroll-link.js');\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\nvar _scrollElement = require('./mixins/scroll-element.js');\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\nvar _Helpers = require('./mixins/Helpers.js');\nvar _Helpers2 = _interopRequireDefault(_Helpers);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = {\n Link: _Link2.default,\n Button: _Button2.default,\n Element: _Element2.default,\n scroller: _scroller2.default,\n Events: _scrollEvents2.default,\n scrollSpy: _scrollSpy2.default,\n animateScroll: _animateScroll2.default,\n ScrollLink: _scrollLink2.default,\n ScrollElement: _scrollElement2.default,\n Helpers: _Helpers2.default\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _scrollSpy = require('./scroll-spy');\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\nvar _scroller = require('./scroller');\nvar _scroller2 = _interopRequireDefault(_scroller);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _scrollHash = require('./scroll-hash');\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n activeStyle: _propTypes2.default.object,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\nexports.default = function (Component, customScroller) {\n var scroller = customScroller || _scroller2.default;\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n function Link(props) {\n _classCallCheck(this, Link);\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n _initialiseProps.call(_this);\n _this.state = {\n active: false\n };\n return _this;\n }\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n if (container && container.nodeType) {\n return container;\n }\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n var style = {};\n if (this.state && this.state.active) {\n style = _extends({}, this.props.style, this.props.activeStyle);\n } else {\n style = _extends({}, this.props.style);\n }\n var props = _extends({}, this.props);\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n props.className = className;\n props.style = style;\n props.onClick = this.handleClick;\n return _react2.default.createElement(Component, props);\n }\n }]);\n return Link;\n }(_react2.default.PureComponent);\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n this.handleClick = function (event) {\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n var horizontal = _this2.props.horizontal;\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n var activeLink = scroller.getActiveLink();\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({\n active: false\n });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n if (_this2.props.spy) {\n _this2.setState({\n active: true\n });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n ;\n Link.propTypes = protoTypes;\n Link.defaultProps = {\n offset: 0\n };\n return Link;\n};","module.exports = __webpack_public_path__ + \"static/banner-homepage-861ffec84d1398c2e68a03df67616804.jpg\";","module.exports = __webpack_public_path__ + \"static/jackson-9abce81283377eb7048537db2befb17d.png\";","module.exports = __webpack_public_path__ + \"static/austin-b0e78c9c20c93fc65c7ee33b45155c4c.png\";","module.exports = __webpack_public_path__ + \"static/washington-630489e850f0715d869ad2fcf6485d85.png\";","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _reactDom = require('react-dom');\nvar _reactDom2 = _interopRequireDefault(_reactDom);\nvar _scroller = require('./scroller');\nvar _scroller2 = _interopRequireDefault(_scroller);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n function Element(props) {\n _classCallCheck(this, Element);\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, {\n parentBindings: this.childBindings\n }));\n }\n }]);\n return Element;\n }(_react2.default.Component);\n ;\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n return Element;\n};","import React, { useEffect, useState } from 'react';\r\nimport LinkDisclaimer from './LinkDisclaimer';\r\n\r\nconst ExternalLink = (props) => {\r\n const [showDisclaimer, setShowDisclaimer] = useState(false);\r\n useEffect(() => {\r\n if (props.showDisclaimer === true) {\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n document.body.style.overflow = 'unset';\r\n }\r\n }, [props.showDisclaimer]);\r\n\r\n return (\r\n <>\r\n {\r\n setShowDisclaimer(true);\r\n }}\r\n onKeyDown={() => setShowDisclaimer(true)}\r\n >\r\n {props.children}\r\n \r\n \r\n >\r\n );\r\n};\r\n\r\nexport default ExternalLink;\r\n","import React from 'react';\r\nimport { Container, Col, Row } from 'react-bootstrap';\r\n\r\n// import sccIcon from '../assets/images/scc-icon.png';\r\n\r\nclass HeadingBlock extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.children = this.props.children;\r\n\r\n this.title = this.props.title;\r\n this.height = this.props.height;\r\n this.image = this.props.image;\r\n this.reverse = this.props.reverse;\r\n this.light = this.props.light;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.children}\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default HeadingBlock;\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _lodash = require('lodash.throttle');\nvar _lodash2 = _interopRequireDefault(_lodash);\nvar _passiveEventListeners = require('./passive-event-listeners');\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\nvar scrollSpy = {\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n container.spyCallbacks.push(handler);\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n if (scrollSpy.spySetState && scrollSpy.spySetState.length && scrollSpy.spySetState.indexOf(stateHandler) > -1) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\nexports.default = scrollSpy;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n return {\n offsetTop: offsetTop,\n offsetParent: currentOffsetParent\n };\n};\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n return offsetTop;\n }\n return t.offsetTop;\n }\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _animateScroll = require('./animate-scroll');\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\nvar _scrollEvents = require('./scroll-events');\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar __mapped = {};\nvar __activeLink = void 0;\nexports.default = {\n unmount: function unmount() {\n __mapped = {};\n },\n register: function register(name, element) {\n __mapped[name] = element;\n },\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n scrollTo: function scrollTo(to, props) {\n var target = this.get(to);\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n props = _extends({}, props, {\n absolute: false\n });\n var containerId = props.containerId;\n var container = props.container;\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n props.absolute = true;\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};"],"sourceRoot":""}