Index: third_party/polymer/v1_0/components/iron-iconset-svg/iron-iconset-svg.html |
diff --git a/third_party/polymer/v1_0/components/iron-iconset-svg/iron-iconset-svg.html b/third_party/polymer/v1_0/components/iron-iconset-svg/iron-iconset-svg.html |
deleted file mode 100644 |
index 3cebc2ce1d3283ff6e61dc514cd7699706de4de4..0000000000000000000000000000000000000000 |
--- a/third_party/polymer/v1_0/components/iron-iconset-svg/iron-iconset-svg.html |
+++ /dev/null |
@@ -1,192 +0,0 @@ |
-<!-- |
-@license |
-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="../iron-meta/iron-meta.html"> |
- |
-<script> |
- /** |
- * The `iron-iconset-svg` element allows users to define their own icon sets |
- * that contain svg icons. The svg icon elements should be children of the |
- * `iron-iconset-svg` element. Multiple icons should be given distinct id's. |
- * |
- * Using svg elements to create icons has a few advantages over traditional |
- * bitmap graphics like jpg or png. Icons that use svg are vector based so they |
- * are resolution independent and should look good on any device. They are |
- * stylable via css. Icons can be themed, colorized, and even animated. |
- * |
- * Example: |
- * |
- * <iron-iconset-svg name="my-svg-icons" size="24"> |
- * <svg> |
- * <defs> |
- * <g id="shape"> |
- * <rect x="50" y="50" width="50" height="50" /> |
- * <circle cx="50" cy="50" r="50" /> |
- * </g> |
- * </defs> |
- * </svg> |
- * </iron-iconset-svg> |
- * |
- * This will automatically register the icon set "my-svg-icons" to the iconset |
- * database. To use these icons from within another element, make a |
- * `iron-iconset` element and call the `byId` method |
- * to retrieve a given iconset. To apply a particular icon inside an |
- * element use the `applyIcon` method. For example: |
- * |
- * iconset.applyIcon(iconNode, 'car'); |
- * |
- * @element iron-iconset-svg |
- * @demo demo/index.html |
- */ |
- Polymer({ |
- |
- is: 'iron-iconset-svg', |
- |
- properties: { |
- |
- /** |
- * The name of the iconset. |
- * |
- * @attribute name |
- * @type string |
- */ |
- name: { |
- type: String, |
- observer: '_nameChanged' |
- }, |
- |
- /** |
- * The size of an individual icon. Note that icons must be square. |
- * |
- * @attribute iconSize |
- * @type number |
- * @default 24 |
- */ |
- size: { |
- type: Number, |
- value: 24 |
- } |
- |
- }, |
- |
- /** |
- * Construct an array of all icon names in this iconset. |
- * |
- * @return {!Array} Array of icon names. |
- */ |
- getIconNames: function() { |
- this._icons = this._createIconMap(); |
- return Object.keys(this._icons).map(function(n) { |
- return this.name + ':' + n; |
- }, this); |
- }, |
- |
- /** |
- * Applies an icon to the given element. |
- * |
- * An svg icon is prepended to the element's shadowRoot if it exists, |
- * otherwise to the element itself. |
- * |
- * @method applyIcon |
- * @param {Element} element Element to which the icon is applied. |
- * @param {string} iconName Name of the icon to apply. |
- * @return {Element} The svg element which renders the icon. |
- */ |
- applyIcon: function(element, iconName) { |
- // insert svg element into shadow root, if it exists |
- element = element.root || element; |
- // Remove old svg element |
- this.removeIcon(element); |
- // install new svg element |
- var svg = this._cloneIcon(iconName); |
- if (svg) { |
- var pde = Polymer.dom(element); |
- pde.insertBefore(svg, pde.childNodes[0]); |
- return element._svgIcon = svg; |
- } |
- return null; |
- }, |
- |
- /** |
- * Remove an icon from the given element by undoing the changes effected |
- * by `applyIcon`. |
- * |
- * @param {Element} element The element from which the icon is removed. |
- */ |
- removeIcon: function(element) { |
- // Remove old svg element |
- if (element._svgIcon) { |
- Polymer.dom(element).removeChild(element._svgIcon); |
- element._svgIcon = null; |
- } |
- }, |
- |
- /** |
- * |
- * When name is changed, register iconset metadata |
- * |
- */ |
- _nameChanged: function() { |
- new Polymer.IronMeta({type: 'iconset', key: this.name, value: this}); |
- }, |
- |
- /** |
- * Create a map of child SVG elements by id. |
- * |
- * @return {!Object} Map of id's to SVG elements. |
- */ |
- _createIconMap: function() { |
- // Objects chained to Object.prototype (`{}`) have members. Specifically, |
- // on FF there is a `watch` method that confuses the icon map, so we |
- // need to use a null-based object here. |
- var icons = Object.create(null); |
- Polymer.dom(this).querySelectorAll('[id]') |
- .forEach(function(icon) { |
- icons[icon.id] = icon; |
- }); |
- return icons; |
- }, |
- |
- /** |
- * Produce installable clone of the SVG element matching `id` in this |
- * iconset, or `undefined` if there is no matching element. |
- * |
- * @return {Element} Returns an installable clone of the SVG element |
- * matching `id`. |
- */ |
- _cloneIcon: function(id) { |
- // create the icon map on-demand, since the iconset itself has no discrete |
- // signal to know when it's children are fully parsed |
- this._icons = this._icons || this._createIconMap(); |
- return this._prepareSvgClone(this._icons[id], this.size); |
- }, |
- |
- /** |
- * @param {Element} sourceSvg |
- * @param {number} size |
- * @return {Element} |
- */ |
- _prepareSvgClone: function(sourceSvg, size) { |
- if (sourceSvg) { |
- var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); |
- svg.setAttribute('viewBox', ['0', '0', size, size].join(' ')); |
- svg.setAttribute('preserveAspectRatio', 'xMidYMid meet'); |
- // TODO(dfreedm): `pointer-events: none` works around https://crbug.com/370136 |
- // TODO(sjmiles): inline style may not be ideal, but avoids requiring a shadow-root |
- svg.style.cssText = 'pointer-events: none; display: block; width: 100%; height: 100%;'; |
- svg.appendChild(sourceSvg.cloneNode(true)).removeAttribute('id'); |
- return svg; |
- } |
- return null; |
- } |
- |
- }); |
-</script> |