Fix OOP <webview> resize and autosize.
[chromium-blink-merge.git] / third_party / polymer / v1_0 / components-chromium / iron-icon / iron-icon-extracted.js
blob7ff1c46ccb45d1af5da18d4db19d903c831772d9
1 Polymer({
3       is: 'iron-icon',
5       properties: {
7         /**
8          * The name of the icon to use. The name should be of the form:
9          * `iconset_name:icon_name`.
10          */
11         icon: {
12           type: String,
13           observer: '_iconChanged'
14         },
16         /**
17          * The name of the theme to used, if one is specified by the
18          * iconset.
19          */
20         theme: {
21           type: String,
22           observer: '_updateIcon'
23         },
25         /**
26          * If using iron-icon without an iconset, you can set the src to be
27          * the URL of an individual icon image file. Note that this will take
28          * precedence over a given icon attribute.
29          */
30         src: {
31           type: String,
32           observer: '_srcChanged'
33         },
34         
35         _meta: {
36           value: Polymer.Base.create('iron-meta', {type: 'iconset'})
37         }
38         
39       },
41       _DEFAULT_ICONSET: 'icons',
43       _iconChanged: function(icon) {
44         var parts = (icon || '').split(':');
45         this._iconName = parts.pop();
46         this._iconsetName = parts.pop() || this._DEFAULT_ICONSET;
47         this._updateIcon();
48       },
50       _srcChanged: function(src) {
51         this._updateIcon();
52       },
54       _usesIconset: function() {
55         return this.icon || !this.src;
56       },
58       /** @suppress {visibility} */
59       _updateIcon: function() {
60         if (this._usesIconset()) {
61           if (this._iconsetName) {
62             this._iconset = this._meta.byKey(this._iconsetName);
63             if (this._iconset) {
64               this._iconset.applyIcon(this, this._iconName, this.theme);
65             } else {
66               this._warn(this._logf('_updateIcon', 'could not find iconset `'
67                 + this._iconsetName + '`, did you import the iconset?'));
68             }
69           }
70         } else {
71           if (!this._img) {
72             this._img = document.createElement('img');
73             this._img.style.width = '100%';
74             this._img.style.height = '100%';
75             this._img.draggable = false;
76           }
77           this._img.src = this.src;
78           Polymer.dom(this.root).appendChild(this._img);
79         }
80       }
82     });