angular2
Version:
Angular 2 - a web framework for modern web apps
181 lines • 6.3 kB
JavaScript
'use strict';var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc);
switch (arguments.length) {
case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);
case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);
case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);
}
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var lang_1 = require('angular2/src/facade/lang');
/**
* The `RouteConfig` decorator defines routes for a given component.
*
* It takes an array of {@link RouteDefinition}s.
*/
var RouteConfig = (function () {
function RouteConfig(configs) {
this.configs = configs;
}
RouteConfig = __decorate([
lang_1.CONST(),
__metadata('design:paramtypes', [Array])
], RouteConfig);
return RouteConfig;
})();
exports.RouteConfig = RouteConfig;
/**
* `Route` is a type of {@link RouteDefinition} used to route a path to a component.
*
* It has the following properties:
* - `path` is a string that uses the route matcher DSL.
* - `component` a component type.
* - `name` is an optional `CamelCase` string representing the name of the route.
* - `data` is an optional property of any type representing arbitrary route metadata for the given
* route. It is injectable via {@link RouteData}.
*
* ### Example
* ```
* import {RouteConfig} from 'angular2/router';
*
* @RouteConfig([
* {path: '/home', component: HomeCmp, name: 'HomeCmp' }
* ])
* class MyApp {}
* ```
*/
var Route = (function () {
function Route(_a) {
var path = _a.path, component = _a.component, name = _a.name, data = _a.data;
// added next three properties to work around https://github.com/Microsoft/TypeScript/issues/4107
this.aux = null;
this.loader = null;
this.redirectTo = null;
this.path = path;
this.component = component;
this.name = name;
this.data = data;
}
Route = __decorate([
lang_1.CONST(),
__metadata('design:paramtypes', [Object])
], Route);
return Route;
})();
exports.Route = Route;
/**
* `AuxRoute` is a type of {@link RouteDefinition} used to define an auxiliary route.
*
* It takes an object with the following properties:
* - `path` is a string that uses the route matcher DSL.
* - `component` a component type.
* - `name` is an optional `CamelCase` string representing the name of the route.
* - `data` is an optional property of any type representing arbitrary route metadata for the given
* route. It is injectable via {@link RouteData}.
*
* ### Example
* ```
* import {RouteConfig, AuxRoute} from 'angular2/router';
*
* @RouteConfig([
* new AuxRoute({path: '/home', component: HomeCmp})
* ])
* class MyApp {}
* ```
*/
var AuxRoute = (function () {
function AuxRoute(_a) {
var path = _a.path, component = _a.component, name = _a.name;
this.data = null;
// added next three properties to work around https://github.com/Microsoft/TypeScript/issues/4107
this.aux = null;
this.loader = null;
this.redirectTo = null;
this.path = path;
this.component = component;
this.name = name;
}
AuxRoute = __decorate([
lang_1.CONST(),
__metadata('design:paramtypes', [Object])
], AuxRoute);
return AuxRoute;
})();
exports.AuxRoute = AuxRoute;
/**
* `AsyncRoute` is a type of {@link RouteDefinition} used to route a path to an asynchronously
* loaded component.
*
* It has the following properties:
* - `path` is a string that uses the route matcher DSL.
* - `loader` is a function that returns a promise that resolves to a component.
* - `name` is an optional `CamelCase` string representing the name of the route.
* - `data` is an optional property of any type representing arbitrary route metadata for the given
* route. It is injectable via {@link RouteData}.
*
* ### Example
* ```
* import {RouteConfig} from 'angular2/router';
*
* @RouteConfig([
* {path: '/home', loader: () => Promise.resolve(MyLoadedCmp), name: 'MyLoadedCmp'}
* ])
* class MyApp {}
* ```
*/
var AsyncRoute = (function () {
function AsyncRoute(_a) {
var path = _a.path, loader = _a.loader, name = _a.name, data = _a.data;
this.aux = null;
this.path = path;
this.loader = loader;
this.name = name;
this.data = data;
}
AsyncRoute = __decorate([
lang_1.CONST(),
__metadata('design:paramtypes', [Object])
], AsyncRoute);
return AsyncRoute;
})();
exports.AsyncRoute = AsyncRoute;
/**
* `Redirect` is a type of {@link RouteDefinition} used to route a path to an asynchronously loaded
* component.
*
* It has the following properties:
* - `path` is a string that uses the route matcher DSL.
* - `redirectTo` is a string representing the new URL to be matched against.
*
* ### Example
* ```
* import {RouteConfig} from 'angular2/router';
*
* @RouteConfig([
* {path: '/', redirectTo: '/home'},
* {path: '/home', component: HomeCmp}
* ])
* class MyApp {}
* ```
*/
var Redirect = (function () {
function Redirect(_a) {
var path = _a.path, redirectTo = _a.redirectTo;
this.name = null;
// added next three properties to work around https://github.com/Microsoft/TypeScript/issues/4107
this.loader = null;
this.data = null;
this.aux = null;
this.path = path;
this.redirectTo = redirectTo;
}
Redirect = __decorate([
lang_1.CONST(),
__metadata('design:paramtypes', [Object])
], Redirect);
return Redirect;
})();
exports.Redirect = Redirect;
//# sourceMappingURL=route_config_impl.js.map