UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

72 lines (70 loc) 2.99 kB
define(["require", "exports", "react", "react-dom", "./VisualTestState", "./utilities/router/index", "./Utilities"], function (require, exports, React, ReactDOM, VisualTestState_1, index_1, Utilities_1) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Utilities_1.setBaseUrl('./dist/'); var rootElement; var currentBreakpoint; var scrollDistance; var requireContext = require.context('./components', true, /Page.visualtest$/); // This is mostly taken from the react-website project. function _routerDidMount() { if (_hasAnchorLink(window.location.hash)) { var hash = _extractAnchorLink(window.location.hash); var el = document.getElementById(hash); var elRect = el.getBoundingClientRect(); var bodySTop = document.body.scrollTop; var currentScrollPosition = void 0; currentScrollPosition = bodySTop + elRect.top; document.body.scrollTop = currentScrollPosition - scrollDistance; } } function _hasAnchorLink(path) { return (path.match(/#/g) || []).length > 1; } function _extractAnchorLink(path) { var split = path.split('#'); var cleanedSplit = split.filter(function (value) { if (value === '') { return false; } else { return true; } }); return cleanedSplit[cleanedSplit.length - 1]; } function _onLoad() { // Load the app into this element. rootElement = rootElement || document.getElementById('content'); ReactDOM.render(React.createElement("div", { style: { display: 'inline-block' } }, React.createElement(index_1.Router, { onNewRouteLoaded: _routerDidMount }, _getAppRoutes())), rootElement); } function _getAppRoutes() { var routes = []; // Create a route for each top level page, and all of its sub pages VisualTestState_1.VisualTestState.componentPath.forEach(function (path, pathIndex) { var componentNameIndex = path.lastIndexOf('/'); var name = path.substr(componentNameIndex + 1); var url = name.substr(0, name.lastIndexOf('Page.visualtest')); routes.push(React.createElement(index_1.Route, { key: pathIndex, path: '#/' + url, getComponent: getPath(path) })); }); return routes; } function getPath(path) { return (function (cb) { return require.ensure([], function () { return cb(requireContext(path).default); }); }); } function _onUnload() { if (rootElement) { ReactDOM.unmountComponentAtNode(rootElement); } } var isReady = document.readyState === 'interactive' || document.readyState === 'complete'; if (isReady) { _onLoad(); } else { window.onload = _onLoad; } window.onunload = _onUnload; }); //# sourceMappingURL=VisualTestRoot.js.map