/* * bootstrap-filestyle * doc: http://markusslima.github.io/bootstrap-filestyle/ * github: https://github.com/markusslima/bootstrap-filestyle * * Copyright (c) 2017 Markus Vinicius da Silva Lima * Version 1.2.3 * Licensed under the MIT license. */ !function (t) { "use strict"; var e = 0, i = function (e, i) { this.options = i, this.$elementFilestyle = [], this.$element = t(e) }; i.prototype = { clear: function () { this.$element.val(""), this.$elementFilestyle.find(":text").val(""), this.$elementFilestyle.find(".badge").remove() }, destroy: function () { this.$element.removeAttr("style").removeData("filestyle"), this.$elementFilestyle.remove() }, disabled: function (t) { if (!0 === t) this.options.disabled || (this.$element.attr("disabled", "true"), this.$elementFilestyle.find("label").attr("disabled", "true"), this.options.disabled = !0); else { if (!1 !== t) return this.options.disabled; this.options.disabled && (this.$element.removeAttr("disabled"), this.$elementFilestyle.find("label").removeAttr("disabled"), this.options.disabled = !1) } }, buttonBefore: function (t) { if (!0 === t) this.options.buttonBefore || (this.options.buttonBefore = !0, this.options.input && (this.$elementFilestyle.remove(), this.constructor(), this.pushNameFiles())); else { if (!1 !== t) return this.options.buttonBefore; this.options.buttonBefore && (this.options.buttonBefore = !1, this.options.input && (this.$elementFilestyle.remove(), this.constructor(), this.pushNameFiles())) } }, icon: function (t) { if (!0 === t) this.options.icon || (this.options.icon = !0, this.$elementFilestyle.find("label").prepend(this.htmlIcon())); else { if (!1 !== t) return this.options.icon; this.options.icon && (this.options.icon = !1, this.$elementFilestyle.find(".icon-span-filestyle").remove()) } }, input: function (t) { if (!0 === t) this.options.input || (this.options.input = !0, this.options.buttonBefore ? this.$elementFilestyle.append(this.htmlInput()) : this.$elementFilestyle.prepend(this.htmlInput()), this.$elementFilestyle.find(".badge").remove(), this.pushNameFiles(), this.$elementFilestyle.find(".group-span-filestyle").addClass("input-group-btn")); else { if (!1 !== t) return this.options.input; if (this.options.input) { this.options.input = !1, this.$elementFilestyle.find(":text").remove(); var e = this.pushNameFiles(); e.length > 0 && this.options.badge && this.$elementFilestyle.find("label").append(' ' + e.length + ""), this.$elementFilestyle.find(".group-span-filestyle").removeClass("input-group-btn") } } }, size: function (t) { if (void 0 === t) return this.options.size; var e = this.$elementFilestyle.find("label"), i = this.$elementFilestyle.find("input"); e.removeClass("btn-lg btn-sm"), i.removeClass("input-lg input-sm"), "nr" != t && (e.addClass("btn-" + t), i.addClass("input-" + t)) }, placeholder: function (t) { if (void 0 === t) return this.options.placeholder; this.options.placeholder = t, this.$elementFilestyle.find("input").attr("placeholder", t) }, buttonText: function (t) { if (void 0 === t) return this.options.buttonText; this.options.buttonText = t, this.$elementFilestyle.find("label .buttonText").html(this.options.buttonText) }, buttonName: function (t) { if (void 0 === t) return this.options.buttonName; this.options.buttonName = t, this.$elementFilestyle.find("label").attr({ class: "btn " + this.options.buttonName }) }, iconName: function (t) { if (void 0 === t) return this.options.iconName; this.$elementFilestyle.find(".icon-span-filestyle").attr({ class: "icon-span-filestyle " + this.options.iconName }) }, htmlIcon: function () { return this.options.icon ? ' ' : "" }, htmlInput: function () { return this.options.input ? ' ' : "" }, pushNameFiles: function () { var t = "", e = []; void 0 === this.$element[0].files ? e[0] = { name: this.$element[0] && this.$element[0].value } : e = this.$element[0].files; for (var i = 0; i < e.length; i++)t += e[i].name.split("\\").pop() + ", "; return "" !== t ? this.$elementFilestyle.find(":text").val(t.replace(/\, $/g, "")) : this.$elementFilestyle.find(":text").val(""), e }, constructor: function () { var i = this, n = "", s = i.$element.attr("id"), l = ""; "" !== s && s || (s = "filestyle-" + e, i.$element.attr({ id: s }), e++), l = '", n = i.options.buttonBefore ? l + i.htmlInput() : i.htmlInput() + l, i.$elementFilestyle = t('