office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
70 lines • 3.06 kB
JavaScript
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