Current Directory: /home/astoriaah/www/media/plg_shlib/dist/js/raw
Viewing File: /home/astoriaah/www/media/plg_shlib/dist/js/raw/bs.js
/**
* Shlib - programming library
*
* @author Yannick Gaultier
* @copyright (c) Yannick Gaultier 2020
* @package shlib
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @version 0.4.0.716
* @date 2020-12-07
*/
/*! Copyright Weeblr llc 2020 - Licence: http://www.gnu.org/copyleft/gpl.html GNU/GPL */
var shlBootstrap = shlBootstrap || function ($) {
var tmp = {
updateBootstrap: function () {
$("*[rel=tooltip]").tooltip();
$("select").chosen({
disable_search_threshold: 10,
allow_single_deselect: !0
});
$(".radio.btn-group label").addClass("btn");
$(".btn-group label:not(.active)").click(function () {
var label = $(this);
var input = $("#" + label.attr("for"));
if (!input.prop('checked')) {
label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary');
if (input.val() == '') {
label.addClass('active btn-primary');
} else if (input.val() == 0) {
label.addClass('active btn-danger');
} else {
label.addClass('active btn-success');
}
input.prop('checked', true);
}
});
$(".btn-group input[checked=checked]").each(function () {
if ($(this).val() == '') {
$("label[for=" + $(this).attr('id') + "]").addClass('active btn-primary');
} else if ($(this).val() == 0) {
$("label[for=" + $(this).attr('id') + "]").addClass('active btn-danger');
} else {
$("label[for=" + $(this).attr('id') + "]").addClass('active btn-success');
}
});
},
canOpenModal: !0,
modals: {},
modalTemplate: "<div class='shmodal hide ' id='{%selector%}'><div class='shmodal-header'><button type='button' class='close' data-dismiss='modal'>×</button>{%title%}</div><div id='{%selector%}-container'></div></div>",
selectedIdsUrl: "",
setSelectedIdsUrl: function (e) {
shlBootstrap.selectedIdsUrl = e
},
getModalUrl: function (e) {
return e + shlBootstrap.selectedIdsUrl
},
closeModal: function () {
var $closeModalButton = $("div.shmodal-header button.close");
$closeModalButton.click()
},
setModalTitleFromModal: function (title) {
var $modalTitle = window.parent.jQuery("div.shmodal-header:visible");
$modalTitle.html("<h3>" + title + "</h3>")
},
registerModal: function (modalDefinition) {
var storedDefinition = {};
storedDefinition = $.extend({
selector: "",
title: "",
url: "",
width: .5,
height: .5,
onclose: "",
footer: "",
content: "",
onDisplay: '',
backdrop: !0,
keyboard: !1
}, modalDefinition);
shlBootstrap.modals[storedDefinition.selector] = storedDefinition;
},
renderModal: function (index, modalDefinition) {
var modalContent = shlBootstrap.modalTemplate.replace(new RegExp("{%selector%}", "g"), modalDefinition.selector);
var title = modalDefinition.title ? "<h3>" + modalDefinition.title + "</h3>" : " ";
modalContent = modalContent.replace("{%title%}", title);
$(modalContent).appendTo("#shl-modals-container");
$("#" + modalDefinition.selector).on("show", function () {
if (!shlBootstrap.canOpenModal) {
return !1;
}
var modalDef = shlBootstrap.modals[this.id];
var width = modalDef.width < 1 ? $(window).width() * modalDef.width : modalDef.width;
var height = modalDef.height < 1 ? $(window).height() * modalDef.height : modalDef.height;
var url = shlBootstrap.getModalUrl(modalDef.url);
var $modal = jQuery("#" + modalDef.selector);
var bodyContent;
if (modalDef.content) {
bodyContent = modalDef.content;
} else {
bodyContent = '<iframe class="iframe" src="' + url + '" height="' + height + '" width="' + width + '" ></iframe>'
}
jQuery("#" + modalDef.selector + "-container").html('<div class="shmodal-body" style="height:' + height + "px; width:" + width + 'px;">' + bodyContent + '</div>' + modalDef.footer);
var l = $modal.height(), s = $modal.width(), i = jQuery(window).height(), d = jQuery(window).width(),
c = (d - s) / 2, h = (i - l) / 2;
jQuery("#" + modalDef.selector).css({
"margin-top": h,
top: "0"
});
jQuery("#" + modalDef.selector).css({"margin-left": c, left: "0"});
if (modalDef.onDisplay && typeof window[modalDef.onDisplay] == 'function') {
window[modalDef.onDisplay](this);
}
});
$("#" + modalDefinition.selector).on("hide", function () {
var modal = shlBootstrap.modals[this.id];
modal.onclose && modal.onclose(), jQuery("#" + this.id + "-container").innerHTML = ""
});
$("#" + modalDefinition.selector).modal({
keyboard: modalDefinition.keyboard,
backdrop: modalDefinition.backdrop,
show: !1
});
},
renderModals: function () {
$.each(shlBootstrap.modals, shlBootstrap.renderModal)
},
inputCounters: {},
registerInputCounter: function (counterOptions) {
var defaults = {
maxCharacterSize: -1,
originalStyle: "badge-success",
warningStyle: "badge-warning",
errorStyle: "badge-important",
warningNumber: 20,
errorNumber: 40,
displayFormat: "#left",
style: "shl-char-counter",
title: ""
};
counterOptions = $.extend(defaults, counterOptions);
shlBootstrap.inputCounters[counterOptions.selector] = counterOptions;
},
renderInputCounters: function () {
$.each(shlBootstrap.inputCounters, shlBootstrap.renderInputCounter)
},
renderInputCounter: function (index, counterDef) {
try {
var field = $("#" + counterDef.selector)
field.length && field.textareaCount(counterDef)
} catch (e) {
console.error(e)
}
},
onReady: function () {
$("<div id='shl-modals-container'></div>").appendTo("body"), shlBootstrap.renderModals(), shlBootstrap.renderInputCounters()
}
};
jQuery(document).ready(tmp.onReady);
return tmp;
}(jQuery);
!function (e) {
e.fn.textareaCount = function (t, r) {
function a() {
return v.html(o()), "undefined" != typeof r && r.call(this, l()), !0
}
function o() {
var e = p.val(), r = e.length;
if (t.maxCharacterSize > 0) {
r >= t.maxCharacterSize && (e = e.substring(0, t.maxCharacterSize));
var a = d(e), o = t.maxCharacterSize - a;
if (i() || (o = t.maxCharacterSize), r > o) {
var l = this.scrollTop;
p.val(e.substring(0, o)), this.scrollTop = l
}
v.removeClass(t.warningStyle), v.removeClass(t.originalStyle), r > t.errorNumber ? v.addClass(t.errorStyle) : r > t.warningNumber ? v.addClass(t.warningStyle) : v.addClass(t.originalStyle), f = p.val().length + a, i() || (f = p.val().length), b = h(c(p.val())), g = t.errorNumber - f
} else {
var a = d(e);
f = p.val().length + a, i() || (f = p.val().length), b = h(c(p.val()))
}
return n()
}
function n() {
var e = t.displayFormat;
return e = e.replace("#input", f), e = e.replace("#words", b), m > 0 && (e = e.replace("#max", m), e = e.replace("#left", g)), e
}
function l() {
var e = {input: f, max: m, left: g, words: b};
return e
}
function s(e) {
return e.next(".charleft")
}
function i() {
var e = navigator.appVersion;
return -1 != e.toLowerCase().indexOf("win") ? !0 : !1
}
function d(e) {
for (var t = 0, r = 0; r < e.length; r++) "\n" == e.charAt(r) && t++;
return t
}
function c(e) {
var t = e + " ", r = /^[^A-Za-z0-9]+/gi, a = t.replace(r, ""), o = rExp = /[^A-Za-z0-9]+/gi,
n = a.replace(o, " "), l = n.split(" ");
return l
}
function h(e) {
var t = e.length - 1;
return t
}
var u = {
maxCharacterSize: -1,
originalStyle: "originalTextareaInfo",
warningStyle: "warningTextareaInfo",
errorStyle: "errorTextareaInfo",
warningNumber: 20,
errorNumber: 40,
displayFormat: "#input characters | #words words",
title: ""
}, t = e.extend(u, t), p = e(this);
p.wrap("<div class='shl-char-counter-wrapper'></div>"), e("<div class='charleft badge " + t.style + "' " + (t.title ? "title='" + t.title + "'" : "") + "> </div>").insertAfter(p);
var v = s(p);
v.addClass(t.originalStyle);
var f = 0, m = t.maxCharacterSize, g = 0, b = 0;
p.bind("keyup", function (e) {
a()
}).bind("mouseover", function (e) {
setTimeout(function () {
a()
}, 10)
}).bind("paste", function (e) {
setTimeout(function () {
a()
}, 10)
}), a()
}
}(jQuery);