| Index: third_party/pkg/angular/lib/routing/module.dart
|
| diff --git a/third_party/pkg/angular/lib/routing/module.dart b/third_party/pkg/angular/lib/routing/module.dart
|
| deleted file mode 100644
|
| index 23a2e3a4ddfb846f01223218900e90a77663d980..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/routing/module.dart
|
| +++ /dev/null
|
| @@ -1,196 +0,0 @@
|
| -/**
|
| - * The [routing] library makes it easier to build large single-page
|
| - * applications. The library lets you map the browser address bar to semantic
|
| - * structure of your application and keeps them in sync.
|
| - *
|
| - * Angular uses the [route_hierarchical] package to define application routes
|
| - * and to provide custom tools to make it easier to use routing with Angular
|
| - * templates.
|
| - *
|
| - * Lets consider a simple recipe book application. The application might have
|
| - * the following pages:
|
| - *
|
| - * * recipes list/search
|
| - * * add new recipe
|
| - * * view recipe
|
| - * * edit recipe
|
| - *
|
| - * Each of those pages can be represented by an address:
|
| - *
|
| - * * `/recipes`
|
| - * * `/addRecipe`
|
| - * * `/recipe/:recipeId/view`
|
| - * * `/recipe/:recipeId/edit`
|
| - *
|
| - *
|
| - * Lets try to define those routes in Angular. To get started we need to
|
| - * provide an implementation of [RouteInitializerFn] function.
|
| - *
|
| - * void initRoutes(Router router, ViewFactory view) {
|
| - * // define routes here.
|
| - * }
|
| - *
|
| - * var module = new Module()
|
| - * ..factory(RouteInitializerFn, (_) => initRoutes);
|
| - *
|
| - * Lets see how we could define our routes using the routing framework:
|
| - *
|
| - * void initRoutes(Router router, ViewFactory view) {
|
| - * router
|
| - * ..addRoute(
|
| - * name: 'recipes',
|
| - * path: '/recipes',
|
| - * enter: view('recipes.html'))
|
| - * ..addRoute(
|
| - * name: 'addRecipe',
|
| - * path: '/addRecipe',
|
| - * enter: view('addRecipe.html'))
|
| - * ..addRoute(
|
| - * name: 'viewRecipe',
|
| - * path: '/recipe/:recipeId/view',
|
| - * enter: view('viewRecipe.html'))
|
| - * ..addRoute(
|
| - * name: 'editRecipe',
|
| - * path: '/recipe/:recipeId/edit',
|
| - * enter: view('editRecipe.html'));
|
| - * }
|
| - *
|
| - * We defined 4 routes and for each route we set views (templates) to be
|
| - * displayed when that route is "entered". For example, when the browser URL
|
| - * is set to `/recipes`, the `recipes.html` will be displayed.
|
| - *
|
| - * You have to tell Angular where to load views by putting `<ng-view>` tag in
|
| - * you template.
|
| - *
|
| - * Notice that `viewRecipe` and `editRecipe` route paths have `recipeId`
|
| - * parameter in them. We need to be able to get hold of that parameter in
|
| - * order to know which recipe to load. Lets consider the following
|
| - * `viewRecipe.html`.
|
| - *
|
| - * <view-recipe></view-recipe>
|
| - *
|
| - * The template contains a custom `view-recipe` component that handles
|
| - * displaying the recipe. Now, our `view-recipe` can inject [RouteProvider]
|
| - * to get hold of the route and its parameters. It might look like this:
|
| - *
|
| - * @NgComponent(...)
|
| - * class ViewRecipeComponent {
|
| - * ViewRecipeComponent(RouteProvider routeProvider) {
|
| - * String recipeId = routeProvider.parameters['recipeId'];
|
| - * _loadRecipe(recipeId);
|
| - * }
|
| - * }
|
| - *
|
| - * [RouteProvider] and [Route] can be used to control navigation, specifically,
|
| - * leaving of the route. For example, lets consider "edit recipe" component:
|
| - *
|
| - * @NgComponent(...)
|
| - * class EditRecipeComponent implements NgDetachAware {
|
| - * RouteHandle route;
|
| - * EditRecipeComponent(RouteProvider routeProvider) {
|
| - * RouteHandle route = routeProvider.route.newHandle();
|
| - * _loadRecipe(route);
|
| - * route.onLeave.listen((RouteEvent event) {
|
| - * event.allowLeave(_checkIfOkToLeave());
|
| - * });
|
| - * }
|
| - *
|
| - * /// Check if the editor has unsaved contents and if necessary ask
|
| - * /// the user if OK to leave this page.
|
| - * Future<bool> _checkIfOkToLeave() {/* ... */}
|
| - *
|
| - * detach() {
|
| - * route.discard();
|
| - * }
|
| - * }
|
| - *
|
| - * [Route.onLeave] event is triggered when the browser is routed from an
|
| - * active route to a different route. The active route can delay and
|
| - * potentially veto the navigation by passing a [Future<bool>] to
|
| - * [RouteEvent.allowLeave].
|
| - *
|
| - * Notice that we create a [RouteHandle] for our route. [RouteHandle] are
|
| - * a convinient wrapper around [Route] that makes unsubscribing route events
|
| - * easier. For example, notice that we didn't need to manually call
|
| - * [StreamSubscription.cancel] for subscription to [Route.onLeave]. Calling
|
| - * [RouteHandle.discard] unsubscribes all listeneters created for the handle.
|
| - *
|
| - *
|
| - * # Hierarchical Routes
|
| - *
|
| - * The routing framework allows us to define trees of routes. In our recipes
|
| - * example we could have defined our routes like this:
|
| - *
|
| - * void initRoutes(Router router, ViewFactory view) {
|
| - * router
|
| - * ..addRoute(
|
| - * name: 'recipes',
|
| - * path: '/recipes',
|
| - * enter: view('recipes.html'))
|
| - * ..addRoute(
|
| - * name: 'addRecipe',
|
| - * path: '/addRecipe',
|
| - * enter: view('addRecipe.html'))
|
| - * ..addRoute(
|
| - * name: 'recipe',
|
| - * path: '/recipe/:recipeId',
|
| - * mount: (Route route) => route
|
| - * ..addRoute(
|
| - * name: 'view',
|
| - * path: '/view',
|
| - * enter: view('viewRecipe.html'))
|
| - * ..addRoute(
|
| - * name: 'edit',
|
| - * path: '/edit',
|
| - * enter: view('editRecipe.html')));
|
| - * }
|
| - * }
|
| - */
|
| -library angular.routing;
|
| -
|
| -import 'dart:async';
|
| -import 'dart:html';
|
| -
|
| -import 'package:di/di.dart';
|
| -import 'package:angular/angular.dart';
|
| -import 'package:route_hierarchical/client.dart';
|
| -export 'package:route_hierarchical/client.dart';
|
| -
|
| -part 'routing.dart';
|
| -part 'ng_view.dart';
|
| -part 'ng_bind_route.dart';
|
| -
|
| -class NgRoutingModule extends Module {
|
| - NgRoutingModule({bool usePushState: true}) {
|
| - type(NgRoutingUsePushState);
|
| - factory(Router, (injector) {
|
| - var useFragment = !injector.get(NgRoutingUsePushState).usePushState;
|
| - return new Router(useFragment: useFragment,
|
| - windowImpl: injector.get(Window));
|
| - });
|
| - type(NgRoutingHelper);
|
| - value(RouteProvider, null);
|
| - value(RouteInitializer, null);
|
| - value(RouteInitializerFn, null);
|
| -
|
| - // directives
|
| - value(NgViewDirective, null);
|
| - type(NgBindRouteDirective);
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * Allows configuration of [Router.useFragment]. By default [usePushState] is
|
| - * true, so the router will listen to [Window.onPopState] and route URLs like
|
| - * "http://host:port/foo/bar?baz=qux". Both the path and query parts of the URL
|
| - * are used by the router. If [usePushState] is false, router will listen to
|
| - * [Window.onHashChange] and route URLs like
|
| - * "http://host:port/path#/foo/bar?baz=qux". Everything after hash (#) is used
|
| - * by the router.
|
| - */
|
| -@NgInjectableService()
|
| -class NgRoutingUsePushState {
|
| - final bool usePushState;
|
| - NgRoutingUsePushState(): usePushState = true;
|
| - NgRoutingUsePushState.value(this.usePushState);
|
| -}
|
|
|