| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| <link rel="import" href="/base/units/size_in_bytes.html"> |
| <polymer-element name="tr-b-u-size-in-bytes-span"> |
| <template> |
| <style> |
| :host { |
| display: flex; |
| flex-direction: row; |
| align-items: center; |
| } |
| </style> |
| <span id="content"></span> |
| </template> |
| <script> |
| 'use strict'; |
| |
| Polymer({ |
| ready: function() { |
| this.$.content.textContent = String.fromCharCode(9888); |
| this.numBytes_ = undefined; |
| }, |
| |
| get numBytes() { |
| return this.numBytes_; |
| }, |
| |
| set numBytes(numBytesOrSizeInBytes) { |
| if (numBytesOrSizeInBytes instanceof tr.b.units.SizeInBytes) |
| this.numBytes_ = numBytesOrSizeInBytes.numBytes; |
| else |
| this.numBytes_ = numBytesOrSizeInBytes; |
| |
| var numBytes = this.numBytes; |
| |
| var signPrefix = ''; |
| if (numBytes < 0) { |
| signPrefix = '-'; |
| numBytes = -numBytes; |
| } |
| |
| var unitPrefixes = ['', 'Ki', 'Mi', 'Gi', 'Ti']; |
| var i = 0; |
| while (numBytes >= 1024 && i < unitPrefixes.length - 1) { |
| numBytes /= 1024; |
| i++; |
| } |
| var sizeString = |
| signPrefix + numBytes.toFixed(1) + ' ' + unitPrefixes[i] + 'B'; |
| |
| this.$.content.textContent = sizeString; |
| }, |
| |
| get stringContent() { |
| return this.$.content.textContent; |
| } |
| }); |
| </script> |
| </polymer-element> |