2016-10-04 23:39:20 -04:00
|
|
|
/**
|
|
|
|
* @license
|
|
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
|
|
* found in the LICENSE file at https://angular.io/license
|
|
|
|
*/
|
|
|
|
|
2015-08-20 16:19:34 -04:00
|
|
|
/*
|
|
|
|
* Helpers to keep tests DRY
|
|
|
|
*/
|
|
|
|
|
|
|
|
function componentTemplatePath(name) {
|
|
|
|
return './components/' + dashCase(name) + '/' + dashCase(name) + '.html';
|
|
|
|
}
|
|
|
|
|
|
|
|
function componentControllerName(name) {
|
|
|
|
return name[0].toUpperCase() + name.substr(1) + 'Controller';
|
|
|
|
}
|
|
|
|
|
|
|
|
function dashCase(str) {
|
|
|
|
return str.replace(/([A-Z])/g, function ($1) {
|
|
|
|
return '-' + $1.toLowerCase();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function provideHelpers(fn, preInject) {
|
|
|
|
return function () {
|
|
|
|
var elt,
|
|
|
|
$compile,
|
|
|
|
$rootScope,
|
2016-02-17 02:47:49 -05:00
|
|
|
$rootRouter,
|
2015-08-20 16:19:34 -04:00
|
|
|
$templateCache,
|
|
|
|
$controllerProvider;
|
|
|
|
|
|
|
|
module('ng');
|
|
|
|
module('ngNewRouter');
|
|
|
|
module(function(_$controllerProvider_) {
|
|
|
|
$controllerProvider = _$controllerProvider_;
|
|
|
|
});
|
|
|
|
|
2016-02-17 02:47:49 -05:00
|
|
|
inject(function(_$compile_, _$rootScope_, _$rootRouter_, _$templateCache_) {
|
2015-08-20 16:19:34 -04:00
|
|
|
$compile = _$compile_;
|
|
|
|
$rootScope = _$rootScope_;
|
2016-02-17 02:47:49 -05:00
|
|
|
$rootRouter = _$rootRouter_;
|
2015-08-20 16:19:34 -04:00
|
|
|
$templateCache = _$templateCache_;
|
|
|
|
});
|
|
|
|
|
|
|
|
function registerComponent(name, template, config) {
|
|
|
|
if (!template) {
|
|
|
|
template = '';
|
|
|
|
}
|
|
|
|
var ctrl;
|
|
|
|
if (!config) {
|
|
|
|
ctrl = function () {};
|
|
|
|
} else if (angular.isArray(config)) {
|
|
|
|
ctrl = function () {};
|
|
|
|
ctrl.$routeConfig = config;
|
|
|
|
} else if (typeof config === 'function') {
|
|
|
|
ctrl = config;
|
|
|
|
} else {
|
|
|
|
ctrl = function () {};
|
|
|
|
ctrl.prototype = config;
|
|
|
|
}
|
|
|
|
$controllerProvider.register(componentControllerName(name), ctrl);
|
|
|
|
put(name, template);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function put (name, template) {
|
|
|
|
$templateCache.put(componentTemplatePath(name), [200, template, {}]);
|
|
|
|
}
|
|
|
|
|
|
|
|
function compile(template) {
|
|
|
|
var elt = $compile('<div>' + template + '</div>')($rootScope);
|
|
|
|
$rootScope.$digest();
|
|
|
|
return elt;
|
|
|
|
}
|
|
|
|
|
|
|
|
fn({
|
|
|
|
registerComponent: registerComponent,
|
2016-02-17 02:47:49 -05:00
|
|
|
$rootRouter: $rootRouter,
|
2015-08-20 16:19:34 -04:00
|
|
|
put: put,
|
|
|
|
compile: compile
|
2017-09-22 13:51:03 -04:00
|
|
|
});
|
|
|
|
};
|
2015-08-20 16:19:34 -04:00
|
|
|
}
|