-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathf-browser-icon.html
More file actions
39 lines (38 loc) · 1.26 KB
/
f-browser-icon.html
File metadata and controls
39 lines (38 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<link rel="import" href="../polymer/polymer.html">
<link rel="import" href="../iron-icon/iron-icon.html">
<link rel="import" href="./f-browser-iconset.html">
<dom-module id="f-browser-icon">
<template>
<iron-icon icon="[[_icon]]"></iron-icon>
</template>
<script>
window.FirmFirm = window.FirmFirm || {};
FirmFirm.BrowserIcon = class BrowserIcon extends Polymer.Element {
static get is() { return 'f-browser-icon'; }
static get properties() {
return {
icon: {
type: String,
reflectToAttribute: true,
},
_icon: {
type: String,
computed: '_computeIcon(icon)',
},
};
}
_computeIcon(browser) {
if (!browser) return;
let icon = browser.toLowerCase();
if (icon.indexOf('android') >= 0) icon = 'android';
else if (icon.indexOf('chrom') >= 0) icon = 'chrome';
else if (icon.indexOf('opera') >= 0) icon = 'opera';
else if (icon.indexOf('safari') >= 0) icon = 'safari';
else if (icon.indexOf('ie') == 0) icon = 'ie';
else icon = 'default';
return `browsers:${icon}`;
}
}
customElements.define(FirmFirm.BrowserIcon.is, FirmFirm.BrowserIcon);
</script>
</dom-module>