Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Unified Diff: third_party/polymer/v1_0/components/more-routing/more-route-selection.html

Issue 1269803005: Remove third_party/polymer from .gitignore (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v1_0/components/more-routing/more-route-selection.html
diff --git a/third_party/polymer/v1_0/components/more-routing/more-route-selection.html b/third_party/polymer/v1_0/components/more-routing/more-route-selection.html
deleted file mode 100644
index 04e292fde981140ba97057b4c12b85637d97a1a5..0000000000000000000000000000000000000000
--- a/third_party/polymer/v1_0/components/more-routing/more-route-selection.html
+++ /dev/null
@@ -1,197 +0,0 @@
-<!--
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--->
-<link rel="import" href="../polymer/polymer.html">
-
-<link rel="import" href="more-route-context-aware.html">
-<link rel="import" href="route.html">
-
-<!--
-TODO(nevir): Document.
--->
-<script>
-
- Polymer({
-
- is: 'more-route-selection',
-
- behaviors: [
- MoreRouting.ContextAware,
- ],
-
- properties: {
-
- /**
- * Routes to select from, as either a path expression or route name.
- *
- * You can either specify routes via this attribute, or as child nodes
- * to this element, but not both.
- *
- * @type {String|Array<string|MoreRouting.Route>}
- */
- routes: {
- type: String,
- observer: '_routesChanged',
- },
-
- /**
- * The selected `MoreRouting.Route` object, or `null`.
- *
- * @type {MoreRouting.Route}
- */
- selectedRoute: {
- type: Object,
- value: null,
- readOnly: true,
- notify: true,
- },
-
- /**
- * The index of the selected route (relative to `routes`). -1 when there
- * is no active route.
- */
- selectedIndex: {
- type: Number,
- value: -1,
- readOnly: true,
- notify: true,
- },
-
- /**
- * The _full_ path expression of the selected route, or `null`.
- */
- selectedPath: {
- type: String,
- readOnly: true,
- notify: true,
- },
-
- /**
- * The params of the selected route, or an empty object if no route.
- */
- selectedParams: {
- type: Object,
- readOnly: true,
- notify: true,
- },
-
- },
-
- /**
- * @event more-route-change fires when a new route is selected.
- * @detail {{
- * newRoute: MoreRouting.Route, oldRoute: MoreRouting.Route,
- * newIndex: number, oldIndex: number,
- * newPath: ?string, oldPath: ?string,
- * newParams: Object, oldParams: Object,
- * }}
- */
-
- routingReady: function() {
- this._routesChanged();
- },
-
- _routesChanged: function() {
- if (!this.routingIsReady) return;
- var routes = this.routes || [];
- if (typeof routes === 'string') {
- routes = routes.split(/\s+/);
- }
- this._routeInfo = this._sortIndexes(routes.map(function(route, index) {
- return {
- model: MoreRouting.getRoute(route, this.parentRoute),
- index: index,
- };
- }.bind(this)));
-
- this._observeRoutes();
- this._evaluate();
- },
-
- /**
- * Tracks changes to the routes.
- */
- _observeRoutes: function() {
- if (this._routeListeners) {
- for (var i = 0, listener; listener = this._routeListeners[i]; i++) {
- listener.close();
- }
- }
-
- this._routeListeners = this._routeInfo.map(function(routeInfo) {
- return routeInfo.model.__subscribe(this._evaluate.bind(this));
- }.bind(this));
- },
-
- _evaluate: function() {
- var newIndex = -1;
- var newRoute = null;
- var oldIndex = this.selectedIndex;
-
- for (var i = 0, routeInfo; routeInfo = this._routeInfo[i]; i++) {
- if (routeInfo.model && routeInfo.model.active) {
- newIndex = routeInfo.index;
- newRoute = routeInfo.model;
- break;
- }
- }
- if (newIndex === oldIndex) return;
-
- var oldRoute = this.selectedRoute;
- var oldPath = this.selectedPath;
- var oldParams = this.selectedParams;
-
- var newPath = newRoute ? newRoute.fullPath : null;
- var newParams = newRoute ? newRoute.params : {};
-
- this._setSelectedRoute(newRoute);
- this._setSelectedIndex(newIndex);
- this._setSelectedPath(newPath);
- this._setSelectedParams(newParams);
-
- this.fire('more-route-change', {
- newRoute: newRoute, oldRoute: oldRoute,
- newIndex: newIndex, oldIndex: oldIndex,
- newPath: newPath, oldPath: oldPath,
- newParams: newParams, oldParams: oldParams,
- });
- },
- /**
- * We want the most specific routes to match first, so we must create a
- * mapping of indexes within `routes` that map
- */
- _sortIndexes: function(routeInfo) {
- return routeInfo.sort(function(a, b) {
- if (!a.model) {
- return 1;
- } else if (!b.model) {
- return -1;
- // Routes with more path parts are most definitely more specific.
- } else if (a.model.depth < b.model.depth) {
- return 1;
- } if (a.model.depth > b.model.depth) {
- return -1;
- } else {
-
- // Also, routes with fewer params are more specific. For example
- // `/users/foo` is more specific than `/users/:id`.
- if (a.model.numParams < b.model.numParams) {
- return -1;
- } else if (a.model.numParams > b.model.numParams) {
- return 1;
- } else {
- // Equally specific; we fall back to the default (and hopefully
- // stable) sort order.
- return 0;
- }
- }
- });
- },
-
- });
-</script>

Powered by Google App Engine
This is Rietveld 408576698