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

Unified Diff: third_party/polymer/v1_0/components/more-routing/route.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/route.html
diff --git a/third_party/polymer/v1_0/components/more-routing/route.html b/third_party/polymer/v1_0/components/more-routing/route.html
deleted file mode 100644
index e53ccbcc50f0ef2e31c6623e5dbe51492fd700a1..0000000000000000000000000000000000000000
--- a/third_party/polymer/v1_0/components/more-routing/route.html
+++ /dev/null
@@ -1,226 +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="emitter.html">
-<link rel="import" href="params.html">
-
-<script>
-(function(scope) {
-var MoreRouting = scope.MoreRouting = scope.MoreRouting || {};
-MoreRouting.Route = Route;
-
-// Note that this can differ from the part separator defined by the driver. The
-// driver's separator is used when parsing/generating URLs given to the client,
-// whereas this one is for route definitions.
-var PART_SEPARATOR = '/';
-var PARAM_SENTINEL = ':';
-var SEPARATOR_CLEANER = /\/\/+/g;
-
-/**
- * TODO(nevir): Docs.
- */
-function Route(path, parent) {
- // For `MoreRouting.Emitter`; Emits changes for `active`.
- this.__listeners = [];
-
- this.path = path;
- this.parent = parent;
- this.fullPath = path;
- this.compiled = this._compile(this.path);
- this.active = false;
- this.driver = null;
-
- var params = MoreRouting.Params(namedParams(this.compiled), this.parent && this.parent.params);
- params.__subscribe(this._navigateToParams.bind(this));
- Object.defineProperty(this, 'params', {
- get: function() { return params; },
- set: function() { throw new Error('Route#params cannot be overwritten'); },
- });
-
- this.parts = [];
- this.children = [];
-
- // Param values matching the current URL, or an empty object if not `active`.
- //
- // To make data "binding" easy, `Route` guarantees that `params` will always
- // be the same object; just make a reference to it.
- if (this.parent) {
- this.parent.children.push(this);
- this.fullPath = this.parent.fullPath + this.fullPath;
- this.depth = this.parent.depth + this.compiled.length;
- this.numParams = this.parent.numParams + countParams(this.compiled);
- } else {
- this.depth = this.compiled.length;
- this.numParams = countParams(this.compiled);
- }
-}
-Route.prototype = Object.create(MoreRouting.Emitter);
-
-Object.defineProperty(Route.prototype, 'active', {
- get: function() {
- return this._active;
- },
- set: function(value) {
- if (value !== this._active);
- this._active = value;
- this.__notify('active', value);
- },
-});
-
-Route.isPath = function isPath(pathOrName) {
- return pathOrName.indexOf(PART_SEPARATOR) === 0;
-};
-
-Route.joinPath = function joinPath(paths) {
- var joined = Array.prototype.join.call(arguments, PART_SEPARATOR);
- joined = joined.replace(SEPARATOR_CLEANER, PART_SEPARATOR);
-
- var minLength = joined.length - PART_SEPARATOR.length;
- if (joined.substr(minLength) === PART_SEPARATOR) {
- joined = joined.substr(0, minLength);
- }
-
- return joined;
-};
-
-Route.prototype.urlFor = function urlFor(params) {
- return this.driver.urlForParts(this.partsForParams(params));
-};
-
-Route.prototype.navigateTo = function navigateTo(params) {
- return this.driver.navigateToParts(this.partsForParams(params));
-}
-
-Route.prototype.isCurrentUrl = function isCurrentUrl(params) {
- if (!this.active) return false;
- var currentKeys = Object.keys(this.params);
- for (var i = 0, key; key = currentKeys[i]; i++) {
- if (this.params[key] !== String(params[key])) {
- return false;
- }
- }
- return true;
-};
-
-// Driver Interface
-
-Route.prototype.partsForParams = function partsForParams(params, silent) {
- var parts = this.parent && this.parent.partsForParams(params, silent) || [];
- for (var i = 0, config; config = this.compiled[i]; i++) {
- if (config.type === 'static') {
- parts.push(config.part);
- } else if (config.type === 'param') {
- var value
- if (params && config.name in params) {
- value = params[config.name];
- } else {
- value = this.params[config.name];
- }
- if (value === undefined) {
- if (silent) {
- return null;
- } else {
- throw new Error('Missing param "' + config.name + '" for route ' + this);
- }
- }
- parts.push(value);
- }
- }
- return parts;
-};
-
-/**
- * Called by the driver whenever it has detected a change to the URL.
- *
- * @param {Array.<String>|null} parts The parts of the URL, or null if the
- * route should be disabled.
- */
-Route.prototype.processPathParts = function processPathParts(parts) {
- this.parts = parts;
- this.active = this.matchesPathParts(parts);
-
- // We don't want to notify of these changes; they'd be no-op noise.
- this.params.__silent = true;
-
- if (this.active) {
- var keys = Object.keys(this.params);
- for (var i = 0; i < keys.length; i++) {
- delete this.params[keys[i]];
- }
- for (var i = 0, config; config = this.compiled[i]; i++) {
- if (config.type === 'param') {
- this.params[config.name] = parts[i];
- }
- }
- } else {
- for (key in this.params) {
- this.params[key] = undefined;
- }
- }
-
- delete this.params.__silent;
-};
-
-Route.prototype.matchesPathParts = function matchesPathParts(parts) {
- if (!parts) return false;
- if (parts.length < this.compiled.length) return false;
- for (var i = 0, config; config = this.compiled[i]; i++) {
- if (config.type === 'static' && parts[i] !== config.part) {
- return false;
- }
- }
- return true;
-};
-
-Route.prototype.toString = function toString() {
- return this.path;
-};
-
-// Internal Implementation
-
-Route.prototype._compile = function _compile(rawPath) {
- // Not strictly required, but helps us stay consistent w/ `getRoute`, etc.
- if (rawPath.indexOf(PART_SEPARATOR) !== 0) {
- throw new Error('Route paths must begin with a path separator; got: "' + rawPath + '"');
- }
- var path = rawPath.substr(PART_SEPARATOR.length);
- if (path === '') return [];
-
- return path.split(PART_SEPARATOR).map(function(part) {
- // raw fragment.
- if (part.substr(0, 1) == PARAM_SENTINEL) {
- return {type: 'param', name: part.substr(1)};
- } else {
- return {type: 'static', part: part};
- }
- });
-};
-
-Route.prototype._navigateToParams = function _navigateToParams() {
- var parts = this.partsForParams(this.params, true);
- if (!parts) return;
- this.driver.navigateToParts(parts);
-};
-
-function countParams(compiled) {
- return compiled.reduce(function(count, part) {
- return count + (part.type === 'param' ? 1 : 0);
- }, 0);
-}
-
-function namedParams(compiled) {
- var result = [];
- compiled.forEach(function(part) {
- if (part.type === 'static') return;
- result.push(part.name);
- });
- return result;
-}
-
-})(window);
-</script>

Powered by Google App Engine
This is Rietveld 408576698