diff --git a/bower.json b/bower.json index 13957afe4b..d9fbcbff04 100644 --- a/bower.json +++ b/bower.json @@ -16,8 +16,7 @@ "blueimp-load-image": "~1.13.0", "autosize": "~4.0.0", "webaudiorecorder": "https://github.com/higuma/web-audio-recorder-js.git", - "mp3lameencoder": "https://github.com/higuma/mp3-lame-encoder-js.git", - "filesize": "https://github.com/avoidwork/filesize.js.git" + "mp3lameencoder": "https://github.com/higuma/mp3-lame-encoder-js.git" }, "devDependencies": { "mocha": "~2.0.1", @@ -83,9 +82,6 @@ ], "mp3lameencoder": [ "lib/Mp3LameEncoder.js" - ], - "filesize": [ - "lib/filesize.js" ] }, "concat": { @@ -102,8 +98,7 @@ "moment", "intl-tel-input", "backbone.typeahead", - "autosize", - "filesize" + "autosize" ], "libtextsecure": [ "long", diff --git a/components/filesize/lib/filesize.js b/components/filesize/lib/filesize.js deleted file mode 100644 index 2d2421ad3d..0000000000 --- a/components/filesize/lib/filesize.js +++ /dev/null @@ -1,167 +0,0 @@ -"use strict"; - -/** - * filesize - * - * @copyright 2017 Jason Mulligan - * @license BSD-3-Clause - * @version 3.5.10 - */ -(function (global) { - var b = /^(b|B)$/, - symbol = { - iec: { - bits: ["b", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib"], - bytes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"] - }, - jedec: { - bits: ["b", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb"], - bytes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] - } - }, - fullform = { - iec: ["", "kibi", "mebi", "gibi", "tebi", "pebi", "exbi", "zebi", "yobi"], - jedec: ["", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta"] - }; - - /** - * filesize - * - * @method filesize - * @param {Mixed} arg String, Int or Float to transform - * @param {Object} descriptor [Optional] Flags - * @return {String} Readable file size String - */ - function filesize(arg) { - var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var result = [], - val = 0, - e = void 0, - base = void 0, - bits = void 0, - ceil = void 0, - full = void 0, - fullforms = void 0, - neg = void 0, - num = void 0, - output = void 0, - round = void 0, - unix = void 0, - spacer = void 0, - standard = void 0, - symbols = void 0; - - if (isNaN(arg)) { - throw new Error("Invalid arguments"); - } - - bits = descriptor.bits === true; - unix = descriptor.unix === true; - base = descriptor.base || 2; - round = descriptor.round !== undefined ? descriptor.round : unix ? 1 : 2; - spacer = descriptor.spacer !== undefined ? descriptor.spacer : unix ? "" : " "; - symbols = descriptor.symbols || descriptor.suffixes || {}; - standard = base === 2 ? descriptor.standard || "jedec" : "jedec"; - output = descriptor.output || "string"; - full = descriptor.fullform === true; - fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : []; - e = descriptor.exponent !== undefined ? descriptor.exponent : -1; - num = Number(arg); - neg = num < 0; - ceil = base > 2 ? 1000 : 1024; - - // Flipping a negative number to determine the size - if (neg) { - num = -num; - } - - // Determining the exponent - if (e === -1 || isNaN(e)) { - e = Math.floor(Math.log(num) / Math.log(ceil)); - - if (e < 0) { - e = 0; - } - } - - // Exceeding supported length, time to reduce & multiply - if (e > 8) { - e = 8; - } - - // Zero is now a special case because bytes divide by 1 - if (num === 0) { - result[0] = 0; - result[1] = unix ? "" : symbol[standard][bits ? "bits" : "bytes"][e]; - } else { - val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e)); - - if (bits) { - val = val * 8; - - if (val >= ceil && e < 8) { - val = val / ceil; - e++; - } - } - - result[0] = Number(val.toFixed(e > 0 ? round : 0)); - result[1] = base === 10 && e === 1 ? bits ? "kb" : "kB" : symbol[standard][bits ? "bits" : "bytes"][e]; - - if (unix) { - result[1] = standard === "jedec" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, "") : result[1]; - - if (b.test(result[1])) { - result[0] = Math.floor(result[0]); - result[1] = ""; - } - } - } - - // Decorating a 'diff' - if (neg) { - result[0] = -result[0]; - } - - // Applying custom symbol - result[1] = symbols[result[1]] || result[1]; - - // Returning Array, Object, or String (default) - if (output === "array") { - return result; - } - - if (output === "exponent") { - return e; - } - - if (output === "object") { - return { value: result[0], suffix: result[1], symbol: result[1] }; - } - - if (full) { - result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? "bit" : "byte") + (result[0] === 1 ? "" : "s"); - } - - return result.join(spacer); - } - - // Partial application for functional programming - filesize.partial = function (opt) { - return function (arg) { - return filesize(arg, opt); - }; - }; - - // CommonJS, AMD, script tag - if (typeof exports !== "undefined") { - module.exports = filesize; - } else if (typeof define === "function" && define.amd) { - define(function () { - return filesize; - }); - } else { - global.filesize = filesize; - } -})(typeof window !== "undefined" ? window : global); diff --git a/js/views/attachment_view.js b/js/views/attachment_view.js index 1fe54e5232..0ac5a5e7f2 100644 --- a/js/views/attachment_view.js +++ b/js/views/attachment_view.js @@ -1,6 +1,7 @@ /* global $: false */ /* global _: false */ /* global Backbone: false */ +/* global filesize: false */ /* global moment: false */ /* global i18n: false */ @@ -244,7 +245,7 @@ model: { mediaType: this.mediaType(), fileName: this.displayName(), - fileSize: window.filesize(this.model.size), + fileSize: filesize(this.model.size), altText: i18n('clickToSave'), }, }); diff --git a/preload.js b/preload.js index aa19f884f7..ad3a0687a0 100644 --- a/preload.js +++ b/preload.js @@ -99,6 +99,7 @@ window.dataURLToBlobSync = require('blueimp-canvas-to-blob'); window.EmojiConvertor = require('emoji-js'); window.emojiData = require('emoji-datasource'); window.EmojiPanel = require('emoji-panel'); +window.filesize = require('filesize'); window.libphonenumber = require('google-libphonenumber').PhoneNumberUtil.getInstance(); window.libphonenumber.PhoneNumberFormat = require('google-libphonenumber').PhoneNumberFormat;